Compare commits

...

187 Commits

Author SHA1 Message Date
cf7cf45003 Bump version to 3.11.1
Update NEWS.
2013-10-30 17:04:40 +01:00
633dd0d9de notificationDaemon: Save notifications on source destruction
While the existing comment is correct in that a source's notifications
will be destroyed first, the code takes a shortcut which prevents the
Source::count-updated signal from being emitted. Given that the purpose
of the signal is to keep notification counters up-to-date which is
pointless when the source is about to be destroyed, the shortcut makes
sense; just save notifications explicitly in that case.

https://bugzilla.gnome.org/show_bug.cgi?id=710596
2013-10-30 16:40:33 +01:00
b929320d4c lookingGlass: Remove Memory tab and add a gc Icon to toolbar
With js24 it won't be possible to access gjs memory stats from C code.

https://bugzilla.gnome.org/show_bug.cgi?id=711052
2013-10-30 07:44:34 +11:00
7296bedd8e remove direct access to jsapi
with js24 its not possible to access jsapi directly from C code

https://bugzilla.gnome.org/show_bug.cgi?id=711052
2013-10-30 07:44:34 +11:00
e9fbbf4000 port shell-js to c++
https://bugzilla.gnome.org/show_bug.cgi?id=711052
2013-10-30 07:44:34 +11:00
dd44219aa5 Merge searchDisplay.js and search.js
search.js used to do a lot more, but now that most of the
functionality has been moved to the remote search system,
it doesn't do a lot. Merge searchDisplay.js into it.
2013-10-29 16:02:32 -04:00
8cc1fe007d search: Actually crash when seeing errors from a native search provider
We don't implement many of these, and not catching the error lets us
see stack traces and other such information a lot faster.

https://bugzilla.gnome.org/show_bug.cgi?id=704912
2013-10-29 16:02:32 -04:00
c0b45c9fc4 Remove wanda
It's been broken for quite a bit since we removed Panel.Animation,
and hasn't really ever worked with our new search results. It's also
the only non-remote provider left.

Maybe we'll add it back as a remote provider later, but for now, just
ditch it.
2013-10-29 15:46:49 -04:00
41315f45a9 notificationDaemon: Fix custom icons
The 'icon' property contains a serialized GIcon, so we need to
deserialize it when setting the icon.

https://bugzilla.gnome.org/show_bug.cgi?id=710596
2013-10-28 12:28:37 +01:00
04d28a0eea notificationDaemon: Fix urgency hint
We currently mark notifications as urgent which merely contain the
'urgent' property, even when set to false. Look at the actual value
instead.

https://bugzilla.gnome.org/show_bug.cgi?id=710596
2013-10-28 12:28:37 +01:00
1e9cd3f785 Updated Brazilian Portuguese translation
Fixes "Off" translation
2013-10-27 15:46:38 -02:00
f462dd6a4c Updated Hebrew translation
Maybe DL not updated?
2013-10-27 16:40:28 +02:00
34e75fc595 notificationDaemon: Fix button parameter name
Gio ended up using 'target' rather than 'action-target'.

https://bugzilla.gnome.org/show_bug.cgi?id=710596
2013-10-27 11:38:36 +01:00
dac513e046 notificationDaemon: Unpack button label
deep_unpack() doesn't unpack as deeply as one might hope ...

https://bugzilla.gnome.org/show_bug.cgi?id=710596
2013-10-27 11:38:36 +01:00
2c538d247b catch more errors on extensions enable() and disable()
https://bugzilla.gnome.org/show_bug.cgi?id=688331
2013-10-26 16:35:47 +02:00
f3b7f61e54 AltTabSwitcherPopup: check the number of items after creating the popup child
The popup can be empty if the alt-tab switcher is configured
in workspace-only mode, even if there are applications running.

https://bugzilla.gnome.org/show_bug.cgi?id=710745
2013-10-26 16:29:27 +02:00
d47ecf19f5 need space between item in endsession dialog session-list and app-list
https://bugzilla.gnome.org/show_bug.cgi?id=710543
2013-10-26 16:24:41 +02:00
da19b344b5 RemoteSearch: don't autostart dbus search providers at login
Use the new glib flag that allows us to create the proxy immediately
but only activate the service when making the first call.

https://bugzilla.gnome.org/show_bug.cgi?id=708830
2013-10-26 15:20:52 +02:00
eb66407926 NotificationDaemon: fix more fallout
Missing Gtk import for action-icon buttons.

https://bugzilla.gnome.org/show_bug.cgi?id=710596
2013-10-26 14:56:50 +02:00
61c5b8e7d2 notificationDaemon: Pass the correct id to makeButton()
The function expects the action's ID, not the notification's one.

https://bugzilla.gnome.org/show_bug.cgi?id=710596
2013-10-25 14:15:10 +01:00
4b09d57ec2 Fix fallout from notification changes
Commit 5f081b8f8d moved code without moving a helper function
used.

https://bugzilla.gnome.org/show_bug.cgi?id=710596
2013-10-25 14:15:10 +01:00
a16f699dfc theme: Add some vertical padding on login screen
This was apparently lost during some rewrite this cycle ...

https://bugzilla.gnome.org/show_bug.cgi?id=710555
2013-10-25 14:15:10 +01:00
b908a3d70a Stringify the xml definitions for E4X removal
https://bugzilla.gnome.org/show_bug.cgi?id=691409
2013-10-25 08:57:27 +11:00
d519c7263e Background: Drop "saturation" related source
"saturation" was removed from MetaBackground in mutter with
https://git.gnome.org/browse/mutter/commit/?id=0e589061
2013-10-23 21:37:27 +02:00
5dedc5d8ba shell-app: Remove old unused functionality 2013-10-21 17:49:46 -04:00
3ca1784ff4 notificationDaemon: Fix activating with a target
Targets should not be unpacked, and action IDs should.
2013-10-21 16:50:18 -04:00
b54d512f3f notificationDaemon: Fix loading/saving of notifications 2013-10-21 16:14:14 -04:00
9d8fb19f55 notificationDaemon: Write notifications out to disk
This allows notifications to persist even after reboots and
gnome-shell restarts.

https://bugzilla.gnome.org/show_bug.cgi?id=710137
2013-10-21 14:13:21 -04:00
1ac4ab7edc shell-global: Add new APIs for saving/loading persistent state
https://bugzilla.gnome.org/show_bug.cgi?id=710137
2013-10-21 14:13:21 -04:00
c9b73ac731 shell-global: Handle empty variants better
In cases where we have an array of 0 elements or similar, the
data returned may be NULL. Since g_file_replace_contents will
assert in this case, simply check for this and delete the file
instead.

https://bugzilla.gnome.org/show_bug.cgi?id=710137
2013-10-21 14:13:21 -04:00
e0b87f1e14 notificationDaemon: Implement the new GTK+ notifications API
The new API is designed to support features like persistence and uses
the new org.freedesktop.Application specification for activating
actions on notifications. While we won't add support for persistence
yet, implement the new notification spec with parity of the old one.

https://bugzilla.gnome.org/show_bug.cgi?id=710137
2013-10-21 14:12:47 -04:00
394743efc8 notificationDaemon: Rename the existing implementation to the FdoNotificationSource
We'll add a new, simpler private implementation that's used by the new
GNotification API in gio.

https://bugzilla.gnome.org/show_bug.cgi?id=710137
2013-10-21 12:30:25 -04:00
27a86a4756 notificationDaemon: Move nextNotificationId inside the daemon class
This won't be used by the new notification daemon.

https://bugzilla.gnome.org/show_bug.cgi?id=710137
2013-10-21 12:30:25 -04:00
8ee0ef2cde messageTray: Don't always open the source when clicking on the notification
Some consumers may not always want to open the app, so make clients that
want to do this explicitly connect to the 'clicked' signal.

https://bugzilla.gnome.org/show_bug.cgi?id=710137
2013-10-21 12:30:25 -04:00
43f4682ec4 messageTray: Make addButton/addAction take a callback
This is a much simpler API for consumers to manage.

https://bugzilla.gnome.org/show_bug.cgi?id=710137
2013-10-21 12:30:25 -04:00
5f081b8f8d messageTray: Remove useActionIcons feature
This can be put in the legacy notification daemon with the new
addButtonFull API, to create icon names for actions.

https://bugzilla.gnome.org/show_bug.cgi?id=710137
2013-10-21 12:30:25 -04:00
5023542882 messageTray: Split out addButton to allow consumers to pass a pre-made button
Some consumers may want to construct their buttons specially, so allow them
to do that by adding a new API that takes a button instead of a label.

https://bugzilla.gnome.org/show_bug.cgi?id=710137
2013-10-21 12:30:25 -04:00
88d0731d80 messageTray: Replace setButtonSensitive by simply returning the button
We want to remove 'id's from buttons, and simply returning the button actor
is more powerful anyway.

https://bugzilla.gnome.org/show_bug.cgi?id=710137
2013-10-21 12:30:25 -04:00
06cb8c52d7 Updated Hebrew translation 2013-10-20 19:52:43 +03:00
4d1358b7ed st-widget: Use g_clear_pointer
https://bugzilla.gnome.org/show_bug.cgi?id=710541
2013-10-20 14:25:16 +02:00
0cfa7c1c56 power: Fix undefined variables
A couple of variables that should have been gathered from the proxy
and weren't.
2013-10-19 18:00:08 +02:00
76928390a3 Updated Russian translation 2013-10-18 18:30:12 +04:00
af1f9cd76d network: Don't use StButtons for items in selector
Their use blocks activation of the default button by keyboard, which
is important for accessibility. Use a Clutter.ClickAction instead,
which doesn't have this problem as it only considers mouse events.

https://bugzilla.gnome.org/show_bug.cgi?id=710144
2013-10-17 19:46:30 +02:00
2f39f3d146 Revert "network: being able to use keyboard to connect to a Wireless"
This reverts commit d175a588f7.

https://bugzilla.gnome.org/show_bug.cgi?id=710144
2013-10-17 19:46:29 +02:00
f72f39bc26 messageTray: Only try to focus the summary when summoning the tray by <Super>M
Otherwise, when closing the tray, we'll try to focus an actor, which will
focus the stage window, which will drop the focus from whatever window we
already had focused.

https://bugzilla.gnome.org/show_bug.cgi?id=710347
2013-10-17 13:07:42 -04:00
2659ba6bb4 power: Fix typo
JS ERROR: ReferenceError: this_proxy is not defined
Indicator<._getStatus@/usr/share/gnome-shell/js/ui/status/power.js:66
2013-10-17 18:12:02 +02:00
0b8c0c202e power: Use UPower directly instead of gnome-settings-daemon
UPower master exports a display device that can be used to
compute whether to show a status icon, and what we should show.

https://bugzilla.gnome.org/show_bug.cgi?id=710273
2013-10-17 17:36:27 +02:00
37c8132632 workspace: Adapt to mutter API changes 2013-10-15 15:46:36 -04:00
02f2f694e4 Bump version to 3.10.1
Update NEWS.
2013-10-15 20:27:52 +02:00
d175a588f7 network: being able to use keyboard to connect to a Wireless
https://bugzilla.gnome.org/show_bug.cgi?id=710144
2013-10-15 20:27:05 +02:00
4bb41f2f66 Revert "network: being able to use keyboard to connect to a Wireless"
This reverts commit d581d29198.
2013-10-15 20:14:02 +02:00
088c46c7be Revert "Bump version to 3.10.1"
This reverts commit 4228c40b3d.
2013-10-15 20:14:00 +02:00
4228c40b3d Bump version to 3.10.1
Update NEWS.
2013-10-15 20:06:25 +02:00
d581d29198 network: being able to use keyboard to connect to a Wireless
https://bugzilla.gnome.org/show_bug.cgi?id=710144
2013-10-15 19:10:38 +02:00
5a7e854f9e appDisplay: Remember selected view across sessions
The application picker will always open with the view that was last
selected during the session, but the selection is reset on each
restart. This results in some annoyance for users that use the
ALL view exclusively, as they have to toggle views once each
session - the same would apply to exclusive FREQUENT view users
were the defaults to be changed, so the best solution is to simply
make the selected view persistent by storing it in GSettings.

https://bugzilla.gnome.org/show_bug.cgi?id=710042
2013-10-15 19:06:53 +02:00
6e13823ccc shell-js: fix incorrect G_BEGIN_DECLS in header 2013-10-15 09:21:59 +11:00
5c5f2fdf8f a11y: setting ATK_ROLE_ARROW to object unicodeArrow
https://bugzilla.gnome.org/show_bug.cgi?id=710120
2013-10-14 22:29:09 +02:00
96aa33f4ef messageTray: Don't remove and re-add the focus group on button changes
https://bugzilla.gnome.org/show_bug.cgi?id=710115
2013-10-14 15:24:53 -04:00
25fd23e703 messageTray: Split out the notification's destroy handler
This is complex enough to split out.

https://bugzilla.gnome.org/show_bug.cgi?id=710115
2013-10-14 15:24:53 -04:00
99cf4e5787 messageTray: Only connect to a notification's open/destroy once
If we pushNotification the same notification multiple times, we
won't append it to the array again, but we will attach multiple
handlers needlessly.

https://bugzilla.gnome.org/show_bug.cgi?id=710115
2013-10-14 15:24:53 -04:00
66a4cb5875 messageTray: Move the notification policy classes here
The NotificationDaemon really should be for the hookup of remote
notifications, rather than policies.

https://bugzilla.gnome.org/show_bug.cgi?id=710115
2013-10-14 15:24:53 -04:00
da14e2c349 messageTray: Clean up code that determines if something is clearable
https://bugzilla.gnome.org/show_bug.cgi?id=710115
2013-10-14 15:24:53 -04:00
4cda61a16a gdm: support pre-authenticated logins from oVirt
oVirt is software for managing medium-to-large scale deployments of
virtual machine guests across multiple hosts. It supports a feature
where users can authenticate with a central server and get
transparently connected to a guest system and then automatically get logged
into that guest to an associated user session.

Guests using old versions of GDM support this single-sign-on capability
by means of a greeter plugin, using the old greeter's extension
API.

This commit adds similar support to the gnome-shell based login screen.

How it works:

* The OVirtCredentialsManager singleton listens for

  'org.ovirt.vdsm.Credentials.UserAuthenticated'

  D-Bus signal on the system bus from the

  'org.ovirt.vdsm.Credentials'

  bus name. The service that provides that bus name is called
  the oVirt guest agent. It is also responsible for interacting
  with the the central server to get user credentials.

* This UserAuthenticated signal passes, as a parameter, the a token
  which needs to be passed through to the PAM service that is specifically
  set up to integrate with the oVirt authentication architecture.
  The singleton object keeps the token internally so it can be queried
  later on.

* The OVirtCredentialsManager emits a signal 'user-authenticated' on
  it's object once the dbus signal is triggered

* When the 'user-authenticated' signal is emitted, the login screen
  tells GDM to start user verification using the PAM service. The
  authentication stack of the service includes a PAM module
  provided by oVirt that securely retrieves user credentials
  from the oVirt guest agent. The PAM module then forwards those
  credentials on to other modules in the stack so, e.g.,
  the user's gnome keyring can be automatically unlocked.

* In case of the screen shield being visible, it also will react on that
  'user-authenticated' signal and lift the shield.
  In that case the login screen will check on construction time if
  the signal has already been triggered, and a token is available.
  If a token is available it will immediately trigger the functionality
  as described above.

Signed-off-by: Vinzenz Feenstra <evilissimo@redhat.com>

https://bugzilla.gnome.org/show_bug.cgi?id=702162
2013-10-14 13:54:30 -04:00
002afda503 SearchDisplay: handle certain result IDs specially
Allow the prefix 'special:' applied to result IDs to mark results
that should be always shown, even when they would overflow the
maximum results cap. This will be used by epiphany for the special
"Search the Web" result.

https://bugzilla.gnome.org/show_bug.cgi?id=707055
2013-10-14 18:47:20 +02:00
cb7a2e8c6a shell-global: Use G_VARIANT_TYPE macro for checking 2013-10-14 10:52:45 -04:00
d21ae1dad1 shell-global: Fix an invalid memory botch-up
The value we return is a floating ref, which gjs shouldn't
try to free.

https://bugzilla.gnome.org/show_bug.cgi?id=710104
2013-10-14 09:49:51 -04:00
4548859509 shell-global: Fix a few memory leaks
https://bugzilla.gnome.org/show_bug.cgi?id=710104
2013-10-14 09:49:51 -04:00
09c6e6427a Updated Serbian translation 2013-10-14 10:29:57 +02:00
8c34398a15 Updated Slovenian translation 2013-10-13 23:43:34 +02:00
a65b705080 [l10n] Updated Catalan (Valencian) translation 2013-10-13 22:43:34 +02:00
7e28c71074 [l10n] Update Catalan translation 2013-10-13 22:43:31 +02:00
726f4a6715 Updated Lithuanian translation 2013-10-13 20:06:00 +03:00
a444b43548 Updated Portuguese translation 2013-10-13 12:22:54 +01:00
473bb139d1 Updated Latvian translation 2013-10-13 13:35:18 +03:00
d084770cea NetworkMenu: fix regression for VPN connections
Fix regression from e898e29910,
the code was moved from a method to a global function, but one
call site was not updated.

https://bugzilla.gnome.org/show_bug.cgi?id=710019
2013-10-13 02:11:14 +02:00
619389ed20 NotificationDaemon: fix icons for notifications without an app
NotificationDaemon doesn't pass a gicon to the Notification constructor,
because it calls .update() immediately after, so messageTray.js
calls into Source.createIcon(), which returns null and crashes.
Instead, shortcut the Notification constructor by skipping
.update() completely.

https://bugzilla.gnome.org/show_bug.cgi?id=709998
2013-10-13 01:23:18 +02:00
ad043e009e workspaceThumbnail: Drop the _background hack
The _background hack was added because the old way the zooming animation
worked, it set the allocation of the workspaces view and thumbnails box
to the final position and used animations to smoothly animate.

During the 3.6 cycle when we added the new search view, Cosimo changed the
way the zoom animation works so that rather than set the final allocation
and animate, we actually do adjust the allocation of the workspaces view
and thumbnails box.

So, as the hack is no longer necessary, we can drop it.

https://bugzilla.gnome.org/show_bug.cgi?id=694881
2013-10-12 14:38:13 -04:00
89b9d079b1 overviewControls: Don't use the child's preferred size to slide from
In order for the workspace thumbnails box to have the correct size,
we need to constrain the width of the thumbnails box to the height we're
given, instead of assuming an unlimited height.

https://bugzilla.gnome.org/show_bug.cgi?id=694881
2013-10-12 14:38:13 -04:00
58a8845047 overviewControls: Don't try to align something sliding to the right
0 is already the correct value.

https://bugzilla.gnome.org/show_bug.cgi?id=694881
2013-10-12 14:38:13 -04:00
3e6c8e68b4 overviewControls: Clarify some code with a comment
translationX is sort of a bad name, since it confuses with the
actor's translation, which is used for sliding without allocation.

https://bugzilla.gnome.org/show_bug.cgi?id=694881
2013-10-12 14:38:13 -04:00
40cd92f701 overviewControls: Correct the use of x2 in SlidingControl
The x2 here needs to be more than just the width; it needs to
be added onto the x1.

https://bugzilla.gnome.org/show_bug.cgi?id=694881
2013-10-12 14:38:13 -04:00
e216addf7c Updated Dutch translation 2013-10-12 19:59:34 +02:00
9291594330 app-system: remove outdated comment
This parameter was removed before 3.2 but the comment stuck around.
2013-10-12 10:09:36 -05:00
f6010864ea layout: Flush region update in showOverview
We cannot wait for the queued update region to fire when
xdnd is being used because a wrong input shape can result
into a xdnd leave event when the user moves the pointer fast.

https://bugzilla.gnome.org/show_bug.cgi?id=708887
2013-10-11 20:16:44 +02:00
13e6a6def5 Revert "overview: Ignore dragEnd while the animation is still in progress"
This reverts commit 80a3bb85aa.

https://bugzilla.gnome.org/show_bug.cgi?id=708887
2013-10-11 20:16:44 +02:00
575b373cd5 power: Use the icon from the primary device for status
https://bugzilla.gnome.org/show_bug.cgi?id=709925
2013-10-11 13:37:10 -04:00
0892065649 notificationDaemon: Raise the app when clicking on a notification, not the MRU window
https://bugzilla.gnome.org/show_bug.cgi?id=709866
2013-10-11 13:37:10 -04:00
766ef367fb notificationDaemon: Fix the fallback for image-data
The indentation here is wrong, the else actually belongs to the outer
if statement, not the inner if statement.
2013-10-11 13:37:10 -04:00
0c7d9958f5 notificationDaemon: Remove dead code 2013-10-11 13:37:09 -04:00
425b8f6073 Updated Czech translation 2013-10-11 18:28:52 +02:00
63593e45a6 Make dropdown arrows consistent size
Since the agregate menu does 120% of font-size, make this
for all dropdown arrows in gnome-shell and rename the css
class to make clear that it is used in overall gnome-shell

https://bugzilla.gnome.org/show_bug.cgi?id=709564
2013-10-11 17:32:55 +02:00
a6ee9806de Uploaded Ukranian 2013-10-11 15:02:28 +03:00
a6579f4ceb Updated Brazilian Portuguese translation 2013-10-11 07:24:18 -03:00
639622a4fe [l10n] Updated Italian translation. 2013-10-11 09:41:24 +02:00
e28ec2f5ab Updated Indonesian translation 2013-10-11 10:15:14 +07:00
873753c735 Updated Hebrew translation 2013-10-11 01:14:45 +03:00
ff14951be4 Updated Hebrew translation 2013-10-11 01:11:25 +03:00
b47b445558 Updated Polish translation 2013-10-10 23:43:39 +02:00
6e9a2fea89 messageTray: Add 'Notifications' switch to tray menu
According to the designs, the notifications switch was supposed
to move from the user menu to the new message tray menu. However
so far the new system status implementation only removed the old
switch, so add it back in its new place now.

https://bugzilla.gnome.org/show_bug.cgi?id=707073
2013-10-10 23:13:47 +02:00
64d2679b3c Updated Czech translation 2013-10-10 21:09:42 +02:00
3c3d4dfccb Updated Hungarian translation 2013-10-10 13:43:23 +02:00
0ccffed517 Updated Spanish translation 2013-10-10 10:49:53 +02:00
20c18c1fc0 Suppress animation for titles in overview
Because of the animation and collision with relayout, the title of windows in overview may not appear, mainly
the first time we enter in overview

With an animation delay of 0.1s, you'll not see the difference

https://bugzilla.gnome.org/show_bug.cgi?id=709392
2013-10-10 08:51:13 +02:00
a21c0097c2 Tajik translation updated 2013-10-10 11:48:03 +05:00
404d9ef2af [l10n] Updated Italian translation. 2013-10-10 08:37:21 +02:00
503fa1cbce Updated Indonesian translation 2013-10-10 12:59:23 +07:00
63f7991d0f Updated Brazilian Portuguese translation 2013-10-09 23:26:40 -03:00
ae301c1f39 Updated Galician translations 2013-10-09 23:09:57 +02:00
8e911fb719 Updated Galician translations 2013-10-09 23:04:21 +02:00
a0d84e44c5 L10N: Updated Persian translations 2013-10-10 00:28:17 +03:30
81fb7ebb31 Fix some broken GTK-Doc comment blocks 2013-10-09 20:14:57 +02:00
3751211590 shell-global: Fix introspection issues
Remove stray bullet points, and don't actually mark for introspection
since it's private anyway (it starts with a _)
2013-10-09 13:31:00 -04:00
6b4cba09be Updated Polish translation 2013-10-09 19:04:21 +02:00
6a7d184b7b NetworkMenu: make the settings launcher point to the right devices
Tell gnome-control-center to focus on the associated device when
launching it from one of the submenus.

https://bugzilla.gnome.org/show_bug.cgi?id=709246
2013-10-09 18:39:44 +02:00
bde5cfc8bb NetworkMenu/NMDeviceModem: use the operator name when we have it
Instead of the connection name, as the operator name is usually
shorter and more useful.

https://bugzilla.gnome.org/show_bug.cgi?id=709043
2013-10-09 18:39:44 +02:00
777c7a952b NetworkMenu/NMDeviceModem: fix status texts for airplane mode
Show "Hardware Disabled" when disabled by HW switch, and
generically "Disabled" when airplane mode is active, as
indicated by v4 mockups.
Note that bluetooth is not affected by NM handling of airplane
mode (and generally the firmware makes the USB bluetooth
adapter disappear when rfkilled), so this is in NMDeviceModem
instead of NMConnectionDevice.

https://bugzilla.gnome.org/show_bug.cgi?id=709043
2013-10-09 18:39:44 +02:00
c79bdd9029 NetworkMenu/NMConnectionDevice: fix status text
Be consistent with v4 mockups

https://bugzilla.gnome.org/show_bug.cgi?id=709043
2013-10-09 18:39:44 +02:00
6a154efe65 Network: show Not Connected instead of Off when wifi radio is on
When wifi is powered but not connected, show Not Connected instead
of off. This avoids a Off status next to a Turn Off menu item.

https://bugzilla.gnome.org/show_bug.cgi?id=709043
2013-10-09 18:39:44 +02:00
627f3ef36b keyring: Cancel active prompts on disable()
Since commit 1242a16265, we will use a fake prompt which
cancels alls requests without dialog when the keyring component
is disabled. However this does only apply to new requests, dialogs
that are already active when the session mode changes are kept
open. This is not quite as expected, so cancel the prompt in that
case.

https://bugzilla.gnome.org/show_bug.cgi?id=708910
2013-10-09 17:58:37 +02:00
3d28836f2c keyring: Remove unused global
https://bugzilla.gnome.org/show_bug.cgi?id=708910
2013-10-09 17:58:37 +02:00
c28bd04958 Finnish translation update 2013-10-09 14:23:48 +03:00
a6fb3acb42 NetworkMenu: hide the "Turn On" item when the rfkill is hardware blocked
If wifi is disabled in hardware, there is nothing we can do at
the sw level, so hide the menu item.

https://bugzilla.gnome.org/show_bug.cgi?id=709635
2013-10-08 22:20:27 +02:00
8a8b3bf96e NetworkMenu: fix wireless-enabled property notifications
The property is on the NMClient, not NMDevice. Also, make sure
we disconnect the signal when the item is destroyed.
Also, connect to wireless-hardware-enabled, which we'll use soon.

https://bugzilla.gnome.org/show_bug.cgi?id=709635
2013-10-08 22:20:27 +02:00
f7624e5f05 network: make the icon visible again when going from ethernet to nothing
https://bugzilla.gnome.org/show_bug.cgi?id=709638
2013-10-08 14:26:38 -04:00
55edfd2e4a notificationDaemon: Focus the new window before destroying the notification
Destroying the notification will make the key focus be reset to NULL, which
means that gnome-shell will try to focus the MRU window, thinking the user is
done interacting and wants to go back to whatever they were doing.

Unfortunately, since we focus two windows at the same time, they will have
the same timestamp, meaning that the window that actually gets focused will
be a race as to whoever responds to their WM_TAKE_FOCUS event last.

If we explicitly set the focus beforehand, then gnome-shell will believe it
got key focus taken away from it, and won't try to focus the MRU when the
key focus drops to NULL.

https://bugzilla.gnome.org/show_bug.cgi?id=703265
2013-10-08 13:05:34 -04:00
91878dd52c Updated Indonesian translation 2013-10-08 17:07:23 +07:00
c132358ec9 Updated Latvian translation 2013-10-07 21:54:39 +03:00
e426f8ac47 BoxPointer: account for border width when requesting size
We must reduce the forWidth in the call to get_preferred_height()
with the border width, otherwise we might request a smaller height
that we actually need and overflow.

https://bugzilla.gnome.org/show_bug.cgi?id=696564
2013-10-07 20:18:48 +02:00
740dca8afc build: Bump gjs requirement
https://bugzilla.gnome.org/show_bug.cgi?id=709543
2013-10-07 09:37:59 +02:00
6ae06d319c [l10n] Updated Catalan (Valencian) translation 2013-10-06 21:58:43 +02:00
30bc2b2f9c [l10n] Update Catalan translation 2013-10-06 21:06:39 +02:00
7dc8e9d657 Updated Russian translation 2013-10-06 12:31:47 +04:00
1ab2fa5bf0 [l10n]Updated Turkish translation 2013-10-06 09:19:37 +03:00
779a1077bf Updated Serbian translation 2013-10-05 20:59:51 +02:00
815bf7a53a L10N: Updated Persian translations 2013-10-05 18:06:59 +03:30
91a382dfb5 Fix Lithuanian calendar translation 2013-10-05 16:51:19 +03:00
2d8d4cd57d Updated Serbian translation 2013-10-05 06:49:07 +02:00
0c5fe2b3bf Updated Serbian translation 2013-10-05 06:08:07 +02:00
56c487347f Updated Belarusian translation. 2013-10-03 23:02:05 +03:00
0a572fce1b Updated Norwegian bokmål translation 2013-10-03 20:38:08 +02:00
e898e29910 NetworkMenu/NMConnectionDevice: grab the connection before using it
If the active connection for the device is not the primary or
activating globally, it won't have the _connection and _primaryDevice
expando properties, so grab them from the settings object.

https://bugzilla.gnome.org/show_bug.cgi?id=709043
2013-10-03 16:03:41 +02:00
843f076225 NetworkMenu/NMDeviceWireless: use the device state instead of active connection state
Since we connect to signals for that, we need to sync on that, or
we can miss a notification.

https://bugzilla.gnome.org/show_bug.cgi?id=709043
2013-10-03 16:01:27 +02:00
fdb732c8c2 Bluetooth: fix ngettext call
https://bugzilla.gnome.org/show_bug.cgi?id=709043
2013-10-03 16:01:27 +02:00
33896a4e8f network: fix NMConnectionSection destruction
The patch fixes the following warning, and along with it, the proper
destruction of the NMConnectionSection is performed so that items get
correctly removed from the menu.

(gnome-shell:24528): Gjs-WARNING **: JS ERROR: TypeError:
this.statusItem is undefined
NMConnectionSection<.destroy@/home/aleksander/gnome/install/share/gnome-shell/js/ui/status/network.js:173
wrapper@/home/aleksander/gnome/install/share/gjs-1.0/lang.js:213
_parent@/home/aleksander/gnome/install/share/gjs-1.0/lang.js:175
NMConnectionDevice<.destroy@/home/aleksander/gnome/install/share/gnome-shell/js/ui/status/network.js:292
wrapper@/home/aleksander/gnome/install/share/gjs-1.0/lang.js:213
_parent@/home/aleksander/gnome/install/share/gjs-1.0/lang.js:175
NMDeviceModem<.destroy@/home/aleksander/gnome/install/share/gnome-shell/js/ui/status/network.js:448
wrapper@/home/aleksander/gnome/install/share/gjs-1.0/lang.js:213
NMApplet<._removeDeviceWrapper@/home/aleksander/gnome/install/share/gnome-shell/js/ui/status/network.js:1421
wrapper@/home/aleksander/gnome/install/share/gjs-1.0/lang.js:213
NMApplet<._deviceRemoved@/home/aleksander/gnome/install/share/gnome-shell/js/ui/status/network.js:1416
wrapper@/home/aleksander/gnome/install/share/gjs-1.0/lang.js:213

https://bugzilla.gnome.org/show_bug.cgi?id=709248
2013-10-03 00:50:02 +02:00
51e016a0d6 theme: modify the avatar and user name
Change the avatar and user name border radius, padding
and text size to be consistent with mockups.

https://bugzilla.gnome.org/show_bug.cgi?id=702309
2013-10-02 22:26:30 +02:00
8737b06559 loginDialog: MessageType is now in GdmUtil
https://bugzilla.gnome.org/show_bug.cgi?id=709286
2013-10-02 13:58:09 -04:00
15ab285174 layout: Use monitor index when adding bg managers
Don't assume that this._bgManagers.push() (i.e adding to the end) is always
correct.

On startup we call _createPrimaryBackground which passes in the primary index
which may not be 0.
2013-10-02 15:58:22 +02:00
3a4782cc64 app-system: Fix some enum warnings
https://bugzilla.gnome.org/show_bug.cgi?id=698486
2013-10-02 09:49:03 -04:00
0256a6d47b app: Use g_variant_lookup instead of dict iteration 2013-10-02 09:49:02 -04:00
8b0e846e0e background: Disconnect settings signal handler on destroy
We connect to the changed signal in _init() but never actually disconnect from
it. The callback has a reference to "this" which results into the background
object not getting garbage collected.

Fix that leaks by disconnecting in _destroy()

https://bugzilla.gnome.org/show_bug.cgi?id=709263
2013-10-02 15:43:30 +02:00
41acb5d3cc Updated Czech translation 2013-10-02 09:56:45 +02:00
a2f9b8ea9b workspacesView: Remove dead code 2013-10-01 18:41:26 -04:00
6237a1c505 workspace: Remove unused leftover constant
from the window zooming days
2013-10-01 18:41:26 -04:00
7c08db0b0f [l10n] Updated Italian translation. 2013-10-01 19:22:11 +02:00
df1270ac49 Updated Danish translation 2013-10-01 19:10:05 +02:00
46edc053d4 overview: Add cover pane directly to overviewGroup
The cover pane is used to block events during transitions, but as
workspaces don't share the same container as other overview elements,
they are currently excempt from the event blocking.
Move the cover pane to the top-level overview container instead.

https://bugzilla.gnome.org/show_bug.cgi?id=709034
2013-10-01 17:16:51 +02:00
908046c31a [l10n] Updated Estonian translation 2013-10-01 17:14:01 +03:00
8380c79875 network: Update the network indicator when the VPN state changes 2013-10-01 10:25:46 -04:00
8a4879a96a Updated Traditional Chinese translation(Hong Kong and Taiwan) 2013-09-30 19:40:48 +08:00
cdf1a77f08 Updated Spanish translation 2013-09-30 12:00:58 +02:00
3f9857ccbd Assamese translation updated 2013-09-30 13:32:07 +05:30
1d65a31420 Updated Lithuanian translation 2013-09-29 20:33:17 +03:00
dafdf0838a Updated Slovak translation 2013-09-29 17:41:47 +01:00
f9cf135f68 update Punjabi Translaiton 2013-09-29 05:26:34 -05:00
a1878e54c9 Updated Norwegian bokmål translation 2013-09-29 11:29:08 +02:00
95e5d899a9 Updated Basque language 2013-09-29 10:53:34 +02:00
ee8321df67 Updated Slovenian translation 2013-09-28 21:49:04 +02:00
4918213e68 Tajik translation updated 2013-09-28 19:39:12 +05:00
ed7f349fc6 Updated Galician translations 2013-09-28 16:25:15 +02:00
2888f22a24 Updated Norwegian bokmål translation 2013-09-28 14:53:19 +02:00
fcb217f681 Updated Brazilian Portuguese translation 2013-09-28 05:16:53 -03:00
9ffa9fe1a8 Updated Galician translations 2013-09-27 21:38:08 +02:00
905020c507 Updated Slovak translation 2013-09-27 17:40:35 +01:00
02f5500641 theme: Make indicators checked&active like checked 2013-09-27 17:06:26 +02:00
465af55d6e theme: Add hover/active states to indicators
Until now we had the same svg for hover, active and checked
states in the pagination indicators. Just differentiate between
them using differents svg.

svg files provided by Jakub Steiner

https://bugzilla.gnome.org/show_bug.cgi?id=708852
2013-09-27 15:50:28 +02:00
80a3bb85aa overview: Ignore dragEnd while the animation is still in progress
Moving the mouse fast enough during xdnd will trigger a xdnd-leave event
because the input shape is not updated until after the animation is done.

So simply ignore the leave events while the animation is in progress.

https://bugzilla.gnome.org/show_bug.cgi?id=708887
2013-09-27 12:54:22 +02:00
ea26bd3003 Updated Latvian translation 2013-09-26 23:30:59 +03:00
508a511d2a Revert "overviewControls: Don't allow appearing controls to "pop in""
This reverts commit e31693bbee.

This doesn't properly adjust the allocation, leading to an unbalanced
overview where things aren't centered properly. Just revert for now,
and we'll rethink this next cycle.
2013-09-26 16:20:06 -04:00
2d80cb71db searchDisplay: Scroll results when the user focuses a provider icon
Otherwise, it seems odd to highlight results the user can't see
simply by pressing down a lot.

https://bugzilla.gnome.org/show_bug.cgi?id=708868
2013-09-26 15:17:29 -04:00
e31693bbee overviewControls: Don't allow appearing controls to "pop in"
When coming back from search or apps, the workspace thumbnails and dash
don't slide in but "pop in". This is because of bad timing: when slideIn
is called, we immediately start the translation animation, and it
completes before by the time we fade the new page in.

Fix this by calling slideIn and slideOut at two different times: we now
slide out when the old page with our controls is fading out, and slide in
when the new page with our controls is fading in.

https://bugzilla.gnome.org/show_bug.cgi?id=708340
2013-09-26 13:39:20 -04:00
fb561f10a7 network: Make sure to set the signal icon at dialog item construction time
We forgot to set it here; it would be updated if there was changes in the
signal, but not when it was created.

https://bugzilla.gnome.org/show_bug.cgi?id=708442
2013-09-26 11:06:42 -04:00
0c57d53e03 Update Esperanto translation 2013-09-26 09:09:37 -04:00
3b1b9f589b SystemMenu: wait for a completed paint before switching VT
Activating the GDM login screen switches VT and causes X to freeze
event processing (because it lost the drm master), so must make
sure to have painted the lock screen at least once before proceeding,
or the user can go back and see the unlocked desktop.

https://bugzilla.gnome.org/show_bug.cgi?id=708051
2013-09-26 10:46:42 +02:00
ac8d39acf4 Updated Lithuanian translation 2013-09-25 23:22:27 +03:00
664e795217 [l10n]Updated Turkish translation 2013-09-25 21:16:28 +03:00
82bf323f63 Updated German translation 2013-09-25 15:25:31 +02:00
547ac85113 Updated Basque language 2013-09-25 11:17:01 +02:00
116 changed files with 11414 additions and 13925 deletions

65
NEWS
View File

@ -1,3 +1,68 @@
3.11.1
======
* power: Use UPower directly instead of gnome-settings-daemon [Bastien; #710273]
* Implement support for new GTK+ notification API [Jasper, Giovanni, Florian;
#710137, #710596]
* gdm: Don't allow user-list to fill up the entire screen [Florian; #710555]
* Don't autostart remote search providers at login [Giovanni; #708830]
* Fix spacing in end-session dialog [Sebastien; #710543]
* Prepare for js24 [Tim; #711052]
* Misc bug fixes and cleanups [Jasper, Florian, Adel, Tim, Sebastien; #710347,
#710144, #710541, #691409, #710745, #688331, #704912]
Contributors:
Giovanni Campagna, Adel Gadllah, Sebastien Lafargue, Tim Lunn,
Florian Müllner, Bastien Nocera, Jasper St. Pierre, Rico Tzschichholz
Translations:
Stas Solovey [ru], Yosef Or Boczko [he], Rafael Ferreira [pt_BR]
3.10.1
======
* Make sure lock screen is drawn once before switching user [Giovanni; #708051]
* Fix signal strength indicators in network selector [Jasper; #708442]
* Scroll search results when focusing provider icons [Jasper; #708868]
* Add separate hover/active states to page indicators [Carlos; #708852]
* Tweak appearance of user name and avatar [Yash; #702309]
* Hide "Turn On" in network menu when disabled by hardware [Giovanni; #709635]
* Cancel open keyring prompts when the screen is locked [Florian; #708910]
* Differentiate "Not Connected" and "Off" in network menu [Giovanni; #709043]
* Make network settings items point to the right device [Giovanni; #709246]
* Remove animation of window preview titles [Sebastien; #709392]
* Add 'Notifications' switch to tray menu [Florian; #707073]
* Make dropdown arrows consistent [Carlos; #709564]
* power: Use icon from primary device for status [Jasper; #709925]
* Fix XDND drags to overview [Adel; #708887]
* Fix workspace switcher disappearing with too many workspaces [Jasper; #694881]
* Handle search results with 'special:' prefix specially [Giovanni; #707055]
* gdm: Support pre-authenticated logins from oVirt [Vinzenz; #702162]
* Use ARROW role for labels representing arrows [Alejandro; #710120]
* Make selected view in app picker persistent [Florian; #710042]
* Make network selector navigable by keyboard [Alejandro; #710144]
* Misc bug fixes [Florian, Adel, Jasper, Aleksander, Giovanni, Dan, Michael,
Tim; #709034, #709263, #698486, #709286, #709248, #709543, #696564, #703265,
#709638, #709866, #709998, #710019, #710104, #710115]
Contributors:
Giovanni Campagna, Michael Catanzaro, Vinzenz Feenstra, Adel Gadllah,
Yash Girdhar, Sebastien Lafargue, Tim Lunn, Aleksander Morgado,
Florian Müllner, Alejandro Piñeiro, Carlos Soriano, Jasper St. Pierre,
Dieter Verfaillie, Dan Winship
Translations:
Inaki Larranaga Murgoitio [eu], Christian Kirbach [de], Muhammet Kara [tr],
Aurimas Černius [lt], Ryan Lortie [eo], Rūdolfs Mazurs [lv],
Dušan Kazik [sk], Fran Diéguez [gl], Enrico Nicoletto [pt_BR],
Kjartan Maraas [nb], Victor Ibragimov [tg], Matej Urbančič [sl],
A S Alam [pa], Nilamdyuti Goswami [as], Daniel Mustieles [es],
Cheng-Chia Tseng [zh_HK, zh_TW], Mattias Põldaru [et], Kenneth Nielsen [da],
Milo Casagrande [it], Marek Černocký [cs], Ihar Hrachyshka [be],
Мирослав Николић [sr, sr@latin], Arash Mousavi [fa], Yuri Myasoedov [ru],
Gil Forcada [ca], Carles Ferrando [ca@valencia], Andika Triwidada [id],
Timo Jyrinki [fi], Piotr Drąg [pl], Rafael Ferreira [pt_BR],
Gabor Kelemen [hu], Yosef Or Boczko [he], Daniel Korostil [uk],
Wouter Bolsterlee [nl], António Lima [pt]
3.10.0.1 3.10.0.1
========= =========
* Fix login screen [Ray; #708691] * Fix login screen [Ray; #708691]

View File

@ -1,5 +1,5 @@
AC_PREREQ(2.63) AC_PREREQ(2.63)
AC_INIT([gnome-shell],[3.10.0.1],[https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-shell],[gnome-shell]) AC_INIT([gnome-shell],[3.11.1],[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])
@ -16,6 +16,7 @@ m4_ifdef([AM_SILENT_RULES],[AM_SILENT_RULES([yes])])
# Checks for programs. # Checks for programs.
AC_PROG_CC AC_PROG_CC
AC_PROG_CXX
# Initialize libtool # Initialize libtool
LT_PREREQ([2.2.6]) LT_PREREQ([2.2.6])
@ -59,8 +60,8 @@ AM_CONDITIONAL(BUILD_RECORDER, $build_recorder)
CLUTTER_MIN_VERSION=1.13.4 CLUTTER_MIN_VERSION=1.13.4
GOBJECT_INTROSPECTION_MIN_VERSION=0.10.1 GOBJECT_INTROSPECTION_MIN_VERSION=0.10.1
GJS_MIN_VERSION=1.35.4 GJS_MIN_VERSION=1.38.1
MUTTER_MIN_VERSION=3.10.0 MUTTER_MIN_VERSION=3.11.1
GTK_MIN_VERSION=3.7.9 GTK_MIN_VERSION=3.7.9
GIO_MIN_VERSION=2.37.0 GIO_MIN_VERSION=2.37.0
LIBECAL_MIN_VERSION=3.5.3 LIBECAL_MIN_VERSION=3.5.3

View File

@ -1,6 +1,3 @@
wandadir = $(pkgdatadir)
dist_wanda_DATA = wanda.png
desktopdir=$(datadir)/applications desktopdir=$(datadir)/applications
desktop_DATA = gnome-shell.desktop gnome-shell-extension-prefs.desktop desktop_DATA = gnome-shell.desktop gnome-shell-extension-prefs.desktop
if HAVE_MUTTER_WAYLAND if HAVE_MUTTER_WAYLAND
@ -45,8 +42,10 @@ dist_theme_DATA = \
theme/message-tray-background.png \ theme/message-tray-background.png \
theme/more-results.svg \ theme/more-results.svg \
theme/noise-texture.png \ theme/noise-texture.png \
theme/page-indicator-active.svg \ theme/page-indicator-active.svg \
theme/page-indicator-inactive.svg \ theme/page-indicator-inactive.svg \
theme/page-indicator-checked.svg \
theme/page-indicator-hover.svg \
theme/panel-button-border.svg \ theme/panel-button-border.svg \
theme/panel-button-highlight-narrow.svg \ theme/panel-button-highlight-narrow.svg \
theme/panel-button-highlight-wide.svg \ theme/panel-button-highlight-wide.svg \

View File

@ -37,6 +37,13 @@
application view, rather than being displayed inline in the main view. application view, rather than being displayed inline in the main view.
</_description> </_description>
</key> </key>
<key name="app-picker-view" type="u">
<default>0</default>
<summary>App Picker View</summary>
<description>
Index of the currently selected view in the application picker.
</description>
</key>
<key name="command-history" type="as"> <key name="command-history" type="as">
<default>[]</default> <default>[]</default>
<_summary>History for command (Alt-F2) dialog</_summary> <_summary>History for command (Alt-F2) dialog</_summary>

View File

@ -157,7 +157,7 @@ StScrollBar StButton#vhandle:active {
min-width: 200px; min-width: 200px;
} }
.popup-submenu-menu-item-triangle { .unicode-arrow {
font-size: 120%; font-size: 120%;
} }
@ -306,16 +306,13 @@ StScrollBar StButton#vhandle:active {
font-size: 12pt; font-size: 12pt;
border-bottom: 1px solid #666; border-bottom: 1px solid #666;
padding: 12px; padding: 12px;
}
.nm-dialog-item:checked {
background-color: #333;
}
.nm-dialog-item-box {
spacing: 20px; spacing: 20px;
} }
.nm-dialog-item:selected {
background-color: #333;
}
.nm-dialog-icons { .nm-dialog-icons {
spacing: .5em; spacing: .5em;
} }
@ -693,7 +690,9 @@ StScrollBar StButton#vhandle:active {
padding-bottom: 32px; padding-bottom: 32px;
} }
.workspace-thumbnails-background { .workspace-thumbnails {
spacing: 11px;
visible-width: 32px; /* Amount visible before hovering */
border: 1px solid rgba(128, 128, 128, 0.4); border: 1px solid rgba(128, 128, 128, 0.4);
border-right: 0px; border-right: 0px;
border-radius: 9px 0px 0px 9px; border-radius: 9px 0px 0px 9px;
@ -701,18 +700,13 @@ StScrollBar StButton#vhandle:active {
padding: 11px 7px 11px 11px; padding: 11px 7px 11px 11px;
} }
.workspace-thumbnails-background:rtl { .workspace-thumbnails:rtl {
border-right: 1px; border-right: 1px;
border-left: 0px; border-left: 0px;
border-radius: 0px 9px 9px 0px; border-radius: 0px 9px 9px 0px;
padding: 11px 11px 11px 7px; padding: 11px 11px 11px 7px;
} }
.workspace-thumbnails {
spacing: 11px;
visible-width: 32px; /* Amount visible before hovering */
}
.workspace-thumbnail-indicator { .workspace-thumbnail-indicator {
border: 4px solid rgba(255,255,255,0.7); border: 4px solid rgba(255,255,255,0.7);
border-radius: 4px; border-radius: 4px;
@ -950,11 +944,19 @@ StScrollBar StButton#vhandle:active {
background-image: url(page-indicator-inactive.svg); background-image: url(page-indicator-inactive.svg);
} }
.page-indicator:hover .page-indicator-icon, .page-indicator:hover .page-indicator-icon {
.page-indicator:checked .page-indicator-icon { background-image: url(page-indicator-hover.svg);
}
.page-indicator:active .page-indicator-icon {
background-image: url(page-indicator-active.svg); background-image: url(page-indicator-active.svg);
} }
.page-indicator:checked .page-indicator-icon,
.page-indicator:checked:active .page-indicator-icon {
background-image: url(page-indicator-checked.svg);
}
.no-frequent-applications-label { .no-frequent-applications-label {
font-size: 18pt; font-size: 18pt;
color: #999999; color: #999999;
@ -1965,6 +1967,11 @@ StScrollBar StButton#vhandle:active {
padding-left: 50px; padding-left: 50px;
} }
.end-session-dialog-session-list,
.end-session-dialog-app-list {
spacing: 1em;
}
.end-session-dialog-list-header { .end-session-dialog-list-header {
font-weight: bold; font-weight: bold;
} }
@ -2268,7 +2275,7 @@ StScrollBar StButton#vhandle:active {
.framed-user-icon { .framed-user-icon {
border: 2px solid #8b8b8b; border: 2px solid #8b8b8b;
border-radius: 5px; border-radius: 3px;
background-size: contain; background-size: contain;
} }
@ -2312,7 +2319,7 @@ StScrollBar StButton#vhandle:active {
} }
.login-dialog-user-list-item { .login-dialog-user-list-item {
border-radius: 10px; border-radius: 5px;
padding: .2em; padding: .2em;
} }
@ -2325,19 +2332,20 @@ StScrollBar StButton#vhandle:active {
} }
.login-dialog-user-list-item .login-dialog-user-list-item-name { .login-dialog-user-list-item .login-dialog-user-list-item-name {
font-size: 20pt; font-size: 20px;
padding-left: 9px; padding-left: 18px;
font-weight: bold;
} }
.login-dialog-user-list:expanded .login-dialog-user-list-item { .login-dialog-user-list:expanded .login-dialog-user-list-item {
color: #666666; color: #bfbfbf;
} }
.login-dialog-user-list-item, .login-dialog-user-list-item,
.login-dialog-user-list-item:hover .login-dialog-user-list-item-name, .login-dialog-user-list-item:hover .login-dialog-user-list-item-name,
.login-dialog-user-list:expanded .login-dialog-user-list-item:focus .login-dialog-user-list-item-name, .login-dialog-user-list:expanded .login-dialog-user-list-item:focus .login-dialog-user-list-item-name,
.login-dialog-user-list:expanded .login-dialog-user-list-item:logged-in { .login-dialog-user-list:expanded .login-dialog-user-list-item:logged-in {
color: white; color: #bfbfbf;
text-shadow: black 0px 2px 2px; text-shadow: black 0px 2px 2px;
} }
@ -2369,7 +2377,7 @@ StScrollBar StButton#vhandle:active {
.login-dialog-user-list-item-icon { .login-dialog-user-list-item-icon {
border: 2px solid #8b8b8b; border: 2px solid #8b8b8b;
border-radius: 8px; border-radius: 3px;
width: 64px; width: 64px;
height: 64px; height: 64px;
} }
@ -2381,6 +2389,10 @@ StScrollBar StButton#vhandle:active {
padding-top: 1em; padding-top: 1em;
} }
.login-dialog-user-selection-box {
padding: 100px 0;
}
.login-dialog-user-selection-box .login-dialog-not-listed-label { .login-dialog-user-selection-box .login-dialog-not-listed-label {
padding-left: 2px; padding-left: 2px;
} }
@ -2486,10 +2498,11 @@ StScrollBar StButton#vhandle:active {
} }
.user-widget-label { .user-widget-label {
font-size: 16pt; font-size: 20px;
font-weight: bold; font-weight: bold;
text-align: left; text-align: left;
padding-left: 15px; padding-left: 18px;
color:white;
text-shadow: black 0px 4px 3px 0px; text-shadow: black 0px 4px 3px 0px;
} }

View File

@ -14,7 +14,7 @@
id="svg4703" id="svg4703"
version="1.1" version="1.1"
inkscape:version="0.48.4 r9939" inkscape:version="0.48.4 r9939"
sodipodi:docname="page-indicator-active.svg"> sodipodi:docname="page-indicator-pushed.svg">
<defs <defs
id="defs4705" /> id="defs4705" />
<sodipodi:namedview <sodipodi:namedview
@ -24,18 +24,22 @@
borderopacity="1.0" borderopacity="1.0"
inkscape:pageopacity="0.0" inkscape:pageopacity="0.0"
inkscape:pageshadow="2" inkscape:pageshadow="2"
inkscape:zoom="22.197802" inkscape:zoom="31.392433"
inkscape:cx="2.1522887" inkscape:cx="1.0245308"
inkscape:cy="16.782904" inkscape:cy="13.3715"
inkscape:current-layer="layer1" inkscape:current-layer="layer1"
showgrid="true" showgrid="true"
inkscape:grid-bbox="true" inkscape:grid-bbox="true"
inkscape:document-units="px" inkscape:document-units="px"
inkscape:window-width="1920" inkscape:window-width="2560"
inkscape:window-height="1021" inkscape:window-height="1374"
inkscape:window-x="0" inkscape:window-x="0"
inkscape:window-y="27" inkscape:window-y="27"
inkscape:window-maximized="1" /> inkscape:window-maximized="1">
<inkscape:grid
type="xygrid"
id="grid6140" />
</sodipodi:namedview>
<metadata <metadata
id="metadata4708"> id="metadata4708">
<rdf:RDF> <rdf:RDF>
@ -44,7 +48,7 @@
<dc:format>image/svg+xml</dc:format> <dc:format>image/svg+xml</dc:format>
<dc:type <dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title /> <dc:title></dc:title>
</cc:Work> </cc:Work>
</rdf:RDF> </rdf:RDF>
</metadata> </metadata>
@ -54,14 +58,14 @@
inkscape:groupmode="layer" inkscape:groupmode="layer"
transform="translate(0,2)"> transform="translate(0,2)">
<path <path
transform="matrix(0.72823872,0,0,0.8336417,-1512.2872,-525.55618)" transform="matrix(0.54617904,0,0,0.62523128,-1131.9904,-392.39214)"
d="m 2099.9808,638.83099 c 0,5.29998 -4.9184,9.59645 -10.9854,9.59645 -6.0671,0 -10.9854,-4.29647 -10.9854,-9.59645 0,-5.29997 4.9183,-9.59645 10.9854,-9.59645 6.067,0 10.9854,4.29648 10.9854,9.59645 z" d="m 2099.9808,638.83099 a 10.985409,9.5964489 0 1 1 -21.9708,0 10.985409,9.5964489 0 1 1 21.9708,0 z"
sodipodi:ry="9.5964489" sodipodi:ry="9.5964489"
sodipodi:rx="10.985409" sodipodi:rx="10.985409"
sodipodi:cy="638.83099" sodipodi:cy="638.83099"
sodipodi:cx="2088.9954" sodipodi:cx="2088.9954"
id="path4711" id="path4711"
style="fill:#fdffff;fill-opacity:0.94117647;stroke:none" style="fill:#fdffff;fill-opacity:1;stroke:none"
sodipodi:type="arc" /> sodipodi:type="arc" />
</g> </g>
</svg> </svg>

Before

Width:  |  Height:  |  Size: 2.1 KiB

After

Width:  |  Height:  |  Size: 2.1 KiB

View File

@ -0,0 +1,67 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="18"
height="18"
id="svg4703"
version="1.1"
inkscape:version="0.48.4 r9939"
sodipodi:docname="page-indicator-active.svg">
<defs
id="defs4705" />
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="22.197802"
inkscape:cx="2.1522887"
inkscape:cy="16.782904"
inkscape:current-layer="layer1"
showgrid="true"
inkscape:grid-bbox="true"
inkscape:document-units="px"
inkscape:window-width="1920"
inkscape:window-height="1021"
inkscape:window-x="0"
inkscape:window-y="27"
inkscape:window-maximized="1" />
<metadata
id="metadata4708">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
<g
id="layer1"
inkscape:label="Layer 1"
inkscape:groupmode="layer"
transform="translate(0,2)">
<path
transform="matrix(0.72823872,0,0,0.8336417,-1512.2872,-525.55618)"
d="m 2099.9808,638.83099 c 0,5.29998 -4.9184,9.59645 -10.9854,9.59645 -6.0671,0 -10.9854,-4.29647 -10.9854,-9.59645 0,-5.29997 4.9183,-9.59645 10.9854,-9.59645 6.067,0 10.9854,4.29648 10.9854,9.59645 z"
sodipodi:ry="9.5964489"
sodipodi:rx="10.985409"
sodipodi:cy="638.83099"
sodipodi:cx="2088.9954"
id="path4711"
style="fill:#fdffff;fill-opacity:0.94117647;stroke:none"
sodipodi:type="arc" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.1 KiB

View File

@ -0,0 +1,67 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="18"
height="18"
id="svg5266"
version="1.1"
inkscape:version="0.48.4 r9939"
sodipodi:docname="page-indicator-inactive.svg">
<defs
id="defs5268" />
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:zoom="11.313709"
inkscape:cx="-2.307566"
inkscape:cy="17.859535"
inkscape:current-layer="layer1"
showgrid="true"
inkscape:grid-bbox="true"
inkscape:document-units="px"
inkscape:window-width="2560"
inkscape:window-height="1374"
inkscape:window-x="0"
inkscape:window-y="27"
inkscape:window-maximized="1" />
<metadata
id="metadata5271">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
id="layer1"
inkscape:label="Layer 1"
inkscape:groupmode="layer"
transform="translate(0,2)">
<path
sodipodi:type="arc"
style="fill:none;fill-opacity:0;stroke:#ffffff;stroke-width:2.93356276000000005;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
id="path5274"
sodipodi:cx="2088.9954"
sodipodi:cy="638.83099"
sodipodi:rx="10.985409"
sodipodi:ry="9.5964489"
d="m 2099.9808,638.83099 c 0,5.29998 -4.9184,9.59645 -10.9854,9.59645 -6.0671,0 -10.9854,-4.29647 -10.9854,-9.59645 0,-5.29997 4.9183,-9.59645 10.9854,-9.59645 6.067,0 10.9854,4.29648 10.9854,9.59645 z"
transform="matrix(0.63720887,0,0,0.72943648,-1322.1264,-458.98661)" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.2 KiB

View File

@ -25,14 +25,14 @@
inkscape:pageopacity="0" inkscape:pageopacity="0"
inkscape:pageshadow="2" inkscape:pageshadow="2"
inkscape:zoom="11.313709" inkscape:zoom="11.313709"
inkscape:cx="13.381365" inkscape:cx="-2.307566"
inkscape:cy="17.859535" inkscape:cy="17.859535"
inkscape:current-layer="layer1" inkscape:current-layer="layer1"
showgrid="true" showgrid="true"
inkscape:grid-bbox="true" inkscape:grid-bbox="true"
inkscape:document-units="px" inkscape:document-units="px"
inkscape:window-width="1920" inkscape:window-width="2560"
inkscape:window-height="1021" inkscape:window-height="1374"
inkscape:window-x="0" inkscape:window-x="0"
inkscape:window-y="27" inkscape:window-y="27"
inkscape:window-maximized="1" /> inkscape:window-maximized="1" />
@ -55,7 +55,7 @@
transform="translate(0,2)"> transform="translate(0,2)">
<path <path
sodipodi:type="arc" sodipodi:type="arc"
style="fill:#ffffff;fill-opacity:0;stroke:#ffffff;stroke-width:2.93356276;stroke-miterlimit:4;stroke-opacity:0.39215686;stroke-dasharray:none" style="fill:none;fill-opacity:0;stroke:#ffffff;stroke-width:2.93356276000000005;stroke-miterlimit:4;stroke-opacity:0.39215686000000000;stroke-dasharray:none"
id="path5274" id="path5274"
sodipodi:cx="2088.9954" sodipodi:cx="2088.9954"
sodipodi:cy="638.83099" sodipodi:cy="638.83099"

Before

Width:  |  Height:  |  Size: 2.2 KiB

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

View File

@ -21,6 +21,7 @@ nobase_dist_js_DATA = \
gdm/batch.js \ gdm/batch.js \
gdm/fingerprint.js \ gdm/fingerprint.js \
gdm/loginDialog.js \ gdm/loginDialog.js \
gdm/oVirt.js \
gdm/realmd.js \ gdm/realmd.js \
gdm/util.js \ gdm/util.js \
extensionPrefs/main.js \ extensionPrefs/main.js \
@ -89,7 +90,6 @@ nobase_dist_js_DATA = \
ui/screenShield.js \ ui/screenShield.js \
ui/scripting.js \ ui/scripting.js \
ui/search.js \ ui/search.js \
ui/searchDisplay.js \
ui/shellDBus.js \ ui/shellDBus.js \
ui/status/accessibility.js \ ui/status/accessibility.js \
ui/status/brightness.js \ ui/status/brightness.js \
@ -106,7 +106,6 @@ nobase_dist_js_DATA = \
ui/unlockDialog.js \ ui/unlockDialog.js \
ui/userWidget.js \ ui/userWidget.js \
ui/viewSelector.js \ ui/viewSelector.js \
ui/wanda.js \
ui/windowAttentionHandler.js \ ui/windowAttentionHandler.js \
ui/windowManager.js \ ui/windowManager.js \
ui/workspace.js \ ui/workspace.js \

View File

@ -13,13 +13,15 @@ const _ = Gettext.gettext;
const Config = imports.misc.config; const Config = imports.misc.config;
const ExtensionUtils = imports.misc.extensionUtils; const ExtensionUtils = imports.misc.extensionUtils;
const GnomeShellIface = <interface name="org.gnome.Shell.Extensions"> const GnomeShellIface = '<node> \
<signal name="ExtensionStatusChanged"> <interface name="org.gnome.Shell.Extensions"> \
<arg type="s" name="uuid"/> <signal name="ExtensionStatusChanged"> \
<arg type="i" name="state"/> <arg type="s" name="uuid"/> \
<arg type="s" name="error"/> <arg type="i" name="state"/> \
</signal> <arg type="s" name="error"/> \
</interface>; </signal> \
</interface> \
</node>';
const GnomeShellProxy = Gio.DBusProxy.makeProxyWrapper(GnomeShellIface); const GnomeShellProxy = Gio.DBusProxy.makeProxyWrapper(GnomeShellIface);

View File

@ -59,6 +59,7 @@ const AuthPrompt = new Lang.Class({
this._userVerifier.connect('verification-complete', Lang.bind(this, this._onVerificationComplete)); this._userVerifier.connect('verification-complete', Lang.bind(this, this._onVerificationComplete));
this._userVerifier.connect('reset', Lang.bind(this, this._onReset)); this._userVerifier.connect('reset', Lang.bind(this, this._onReset));
this._userVerifier.connect('smartcard-status-changed', Lang.bind(this, this._onSmartcardStatusChanged)); this._userVerifier.connect('smartcard-status-changed', Lang.bind(this, this._onSmartcardStatusChanged));
this._userVerifier.connect('ovirt-user-authenticated', Lang.bind(this, this._onOVirtUserAuthenticated));
this.smartcardDetected = this._userVerifier.smartcardDetected; this.smartcardDetected = this._userVerifier.smartcardDetected;
this.connect('next', Lang.bind(this, function() { this.connect('next', Lang.bind(this, function() {
@ -219,6 +220,11 @@ const AuthPrompt = new Lang.Class({
this.emit('prompted'); this.emit('prompted');
}, },
_onOVirtUserAuthenticated: function() {
if (this.verificationStatus != AuthPromptStatus.VERIFICATION_SUCCEEDED)
this.reset();
},
_onSmartcardStatusChanged: function() { _onSmartcardStatusChanged: function() {
this.smartcardDetected = this._userVerifier.smartcardDetected; this.smartcardDetected = this._userVerifier.smartcardDetected;
@ -444,10 +450,11 @@ const AuthPrompt = new Lang.Class({
// The user is constant at the unlock screen, so it will immediately // The user is constant at the unlock screen, so it will immediately
// respond to the request with the username // respond to the request with the username
beginRequestType = BeginRequestType.PROVIDE_USERNAME; beginRequestType = BeginRequestType.PROVIDE_USERNAME;
} else if (this.smartcardDetected && } else if (this._userVerifier.serviceIsForeground(GdmUtil.OVIRT_SERVICE_NAME) ||
this._userVerifier.serviceIsForeground(GdmUtil.SMARTCARD_SERVICE_NAME)) { (this.smartcardDetected &&
this._userVerifier.serviceIsForeground(GdmUtil.SMARTCARD_SERVICE_NAME))) {
// We don't need to know the username if the user preempted the login screen // We don't need to know the username if the user preempted the login screen
// with a smartcard. // with a smartcard or with preauthenticated oVirt credentials
beginRequestType = BeginRequestType.DONT_PROVIDE_USERNAME; beginRequestType = BeginRequestType.DONT_PROVIDE_USERNAME;
} else { } else {
// In all other cases, we should get the username up front. // In all other cases, we should get the username up front.

View File

@ -5,11 +5,13 @@ const Lang = imports.lang;
const Shell = imports.gi.Shell; const Shell = imports.gi.Shell;
const Signals = imports.signals; const Signals = imports.signals;
const FprintManagerIface = <interface name='net.reactivated.Fprint.Manager'> const FprintManagerIface = '<node> \
<method name='GetDefaultDevice'> <interface name="net.reactivated.Fprint.Manager"> \
<arg type='o' direction='out' /> <method name="GetDefaultDevice"> \
</method> <arg type="o" direction="out" /> \
</interface>; </method> \
</interface> \
</node>';
const FprintManagerInfo = Gio.DBusInterfaceInfo.new_for_xml(FprintManagerIface); const FprintManagerInfo = Gio.DBusInterfaceInfo.new_for_xml(FprintManagerIface);

View File

@ -619,7 +619,7 @@ const LoginDialog = new Lang.Class({
// Translators: this message is shown below the username entry field // Translators: this message is shown below the username entry field
// to clue the user in on how to login to the local network realm // to clue the user in on how to login to the local network realm
this._authPrompt.setMessage(_("(e.g., user or %s)").format(hint), AuthPrompt.MessageType.HINT); this._authPrompt.setMessage(_("(e.g., user or %s)").format(hint), GdmUtil.MessageType.HINT);
}, },
_askForUsernameAndBeginVerification: function() { _askForUsernameAndBeginVerification: function() {

64
js/gdm/oVirt.js Normal file
View File

@ -0,0 +1,64 @@
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
const Gio = imports.gi.Gio;
const Lang = imports.lang;
const Signals = imports.signals;
const OVirtCredentialsIface = '<node> \
<interface name="org.ovirt.vdsm.Credentials"> \
<signal name="UserAuthenticated"> \
<arg type="s" name="token"/> \
</signal> \
</interface> \
</node>';
const OVirtCredentialsInfo = Gio.DBusInterfaceInfo.new_for_xml(OVirtCredentialsIface);
let _oVirtCredentialsManager = null;
function OVirtCredentials() {
var self = new Gio.DBusProxy({ g_connection: Gio.DBus.system,
g_interface_name: OVirtCredentialsInfo.name,
g_interface_info: OVirtCredentialsInfo,
g_name: 'org.ovirt.vdsm.Credentials',
g_object_path: '/org/ovirt/vdsm/Credentials',
g_flags: (Gio.DBusProxyFlags.DO_NOT_LOAD_PROPERTIES) });
self.init(null);
return self;
}
const OVirtCredentialsManager = new Lang.Class({
Name: 'OVirtCredentialsManager',
_init: function() {
this._token = null;
this._credentials = new OVirtCredentials();
this._credentials.connectSignal('UserAuthenticated',
Lang.bind(this, this._onUserAuthenticated));
},
_onUserAuthenticated: function(proxy, sender, [token]) {
this._token = token;
this.emit('user-authenticated', token);
},
hasToken: function() {
return this._token != null;
},
getToken: function() {
return this._token;
},
resetToken: function() {
this._token = null;
}
});
Signals.addSignalMethods(OVirtCredentialsManager.prototype);
function getOVirtCredentialsManager() {
if (!_oVirtCredentialsManager)
_oVirtCredentialsManager = new OVirtCredentialsManager();
return _oVirtCredentialsManager;
}

View File

@ -5,52 +5,58 @@ const Lang = imports.lang;
const Shell = imports.gi.Shell; const Shell = imports.gi.Shell;
const Signals = imports.signals; const Signals = imports.signals;
const ProviderIface = <interface name='org.freedesktop.realmd.Provider'> const ProviderIface = '<node> \
<property name="Name" type="s" access="read"/> <interface name="org.freedesktop.realmd.Provider"> \
<property name="Version" type="s" access="read"/> <property name="Name" type="s" access="read"/> \
<property name="Realms" type="ao" access="read"/> <property name="Version" type="s" access="read"/> \
<method name="Discover"> <property name="Realms" type="ao" access="read"/> \
<arg name="string" type="s" direction="in"/> <method name="Discover"> \
<arg name="options" type="a{sv}" direction="in"/> <arg name="string" type="s" direction="in"/> \
<arg name="relevance" type="i" direction="out"/> <arg name="options" type="a{sv}" direction="in"/> \
<arg name="realm" type="ao" direction="out"/> <arg name="relevance" type="i" direction="out"/> \
</method> <arg name="realm" type="ao" direction="out"/> \
</interface>; </method> \
</interface> \
</node>';
const Provider = Gio.DBusProxy.makeProxyWrapper(ProviderIface); const Provider = Gio.DBusProxy.makeProxyWrapper(ProviderIface);
const ServiceIface = <interface name="org.freedesktop.realmd.Service"> const ServiceIface = '<node> \
<method name="Cancel"> <interface name="org.freedesktop.realmd.Service"> \
<arg name="operation" type="s" direction="in"/> <method name="Cancel"> \
</method> <arg name="operation" type="s" direction="in"/> \
<method name="Release" /> </method> \
<method name="SetLocale"> <method name="Release" /> \
<arg name="locale" type="s" direction="in"/> <method name="SetLocale"> \
</method> <arg name="locale" type="s" direction="in"/> \
<signal name="Diagnostics"> </method> \
<arg name="data" type="s"/> <signal name="Diagnostics"> \
<arg name="operation" type="s"/> <arg name="data" type="s"/> \
</signal> <arg name="operation" type="s"/> \
</interface>; </signal> \
</interface> \
</node>';
const Service = Gio.DBusProxy.makeProxyWrapper(ServiceIface); const Service = Gio.DBusProxy.makeProxyWrapper(ServiceIface);
const RealmIface = <interface name="org.freedesktop.realmd.Realm"> const RealmIface = '<node> \
<property name="Name" type="s" access="read"/> <interface name="org.freedesktop.realmd.Realm"> \
<property name="Configured" type="s" access="read"/> <property name="Name" type="s" access="read"/> \
<property name="Details" type="a(ss)" access="read"/> <property name="Configured" type="s" access="read"/> \
<property name="LoginFormats" type="as" access="read"/> <property name="Details" type="a(ss)" access="read"/> \
<property name="LoginPolicy" type="s" access="read"/> <property name="LoginFormats" type="as" access="read"/> \
<property name="PermittedLogins" type="as" access="read"/> <property name="LoginPolicy" type="s" access="read"/> \
<property name="SupportedInterfaces" type="as" access="read"/> <property name="PermittedLogins" type="as" access="read"/> \
<method name="ChangeLoginPolicy"> <property name="SupportedInterfaces" type="as" access="read"/> \
<arg name="login_policy" type="s" direction="in"/> <method name="ChangeLoginPolicy"> \
<arg name="permitted_add" type="as" direction="in"/> <arg name="login_policy" type="s" direction="in"/> \
<arg name="permitted_remove" type="as" direction="in"/> <arg name="permitted_add" type="as" direction="in"/> \
<arg name="options" type="a{sv}" direction="in"/> <arg name="permitted_remove" type="as" direction="in"/> \
</method> <arg name="options" type="a{sv}" direction="in"/> \
<method name="Deconfigure"> </method> \
<arg name="options" type="a{sv}" direction="in"/> <method name="Deconfigure"> \
</method> <arg name="options" type="a{sv}" direction="in"/> \
</interface>; </method> \
</interface> \
</node>';
const Realm = Gio.DBusProxy.makeProxyWrapper(RealmIface); const Realm = Gio.DBusProxy.makeProxyWrapper(RealmIface);
const Manager = new Lang.Class({ const Manager = new Lang.Class({

View File

@ -10,6 +10,7 @@ const St = imports.gi.St;
const Batch = imports.gdm.batch; const Batch = imports.gdm.batch;
const Fprint = imports.gdm.fingerprint; const Fprint = imports.gdm.fingerprint;
const OVirt = imports.gdm.oVirt;
const Main = imports.ui.main; const Main = imports.ui.main;
const Params = imports.misc.params; const Params = imports.misc.params;
const ShellEntry = imports.ui.shellEntry; const ShellEntry = imports.ui.shellEntry;
@ -19,6 +20,7 @@ const Tweener = imports.ui.tweener;
const PASSWORD_SERVICE_NAME = 'gdm-password'; const PASSWORD_SERVICE_NAME = 'gdm-password';
const FINGERPRINT_SERVICE_NAME = 'gdm-fingerprint'; const FINGERPRINT_SERVICE_NAME = 'gdm-fingerprint';
const SMARTCARD_SERVICE_NAME = 'gdm-smartcard'; const SMARTCARD_SERVICE_NAME = 'gdm-smartcard';
const OVIRT_SERVICE_NAME = 'gdm-ovirtcred';
const FADE_ANIMATION_TIME = 0.16; const FADE_ANIMATION_TIME = 0.16;
const CLONE_FADE_ANIMATION_TIME = 0.25; const CLONE_FADE_ANIMATION_TIME = 0.25;
@ -151,6 +153,14 @@ const ShellUserVerifier = new Lang.Class({
this.reauthenticating = false; this.reauthenticating = false;
this._failCounter = 0; this._failCounter = 0;
this._oVirtCredentialsManager = OVirt.getOVirtCredentialsManager();
if (this._oVirtCredentialsManager.hasToken())
this._oVirtUserAuthenticated(this._oVirtCredentialsManager.getToken());
this._oVirtCredentialsManager.connect('user-authenticated',
Lang.bind(this, this._oVirtUserAuthenticated));
}, },
begin: function(userName, hold) { begin: function(userName, hold) {
@ -277,6 +287,11 @@ const ShellUserVerifier = new Lang.Class({
})); }));
}, },
_oVirtUserAuthenticated: function(token) {
this._preemptingService = OVIRT_SERVICE_NAME;
this.emit('ovirt-user-authenticated');
},
_checkForSmartcard: function() { _checkForSmartcard: function() {
let smartcardDetected; let smartcardDetected;
@ -455,6 +470,12 @@ const ShellUserVerifier = new Lang.Class({
if (!this.serviceIsForeground(serviceName)) if (!this.serviceIsForeground(serviceName))
return; return;
if (serviceName == OVIRT_SERVICE_NAME) {
// The only question asked by this service is "Token?"
this.answerQuery(serviceName, this._oVirtCredentialsManager.getToken());
return;
}
this.emit('ask-question', serviceName, secretQuestion, '\u25cf'); this.emit('ask-question', serviceName, secretQuestion, '\u25cf');
}, },
@ -515,6 +536,16 @@ const ShellUserVerifier = new Lang.Class({
}, },
_onConversationStopped: function(client, serviceName) { _onConversationStopped: function(client, serviceName) {
// If the login failed with the preauthenticated oVirt credentials
// then discard the credentials and revert to default authentication
// mechanism.
if (this.serviceIsForeground(OVIRT_SERVICE_NAME)) {
this._oVirtCredentialsManager.resetToken();
this._preemptingService = null;
this._verificationFailed(false);
return;
}
// if the password service fails, then cancel everything. // if the password service fails, then cancel everything.
// But if, e.g., fingerprint fails, still give // But if, e.g., fingerprint fails, still give
// password authentication a chance to succeed // password authentication a chance to succeed

View File

@ -4,15 +4,17 @@ const Gio = imports.gi.Gio;
const Lang = imports.lang; const Lang = imports.lang;
const Signals = imports.signals; const Signals = imports.signals;
const PresenceIface = <interface name="org.gnome.SessionManager.Presence"> const PresenceIface = '<node> \
<method name="SetStatus"> <interface name="org.gnome.SessionManager.Presence"> \
<arg type="u" direction="in"/> <method name="SetStatus"> \
</method> <arg type="u" direction="in"/> \
<property name="status" type="u" access="readwrite"/> </method> \
<signal name="StatusChanged"> <property name="status" type="u" access="readwrite"/> \
<arg type="u" direction="out"/> <signal name="StatusChanged"> \
</signal> <arg type="u" direction="out"/> \
</interface>; </signal> \
</interface> \
</node>';
const PresenceStatus = { const PresenceStatus = {
AVAILABLE: 0, AVAILABLE: 0,
@ -30,14 +32,16 @@ function Presence(initCallback, cancellable) {
// Note inhibitors are immutable objects, so they don't // Note inhibitors are immutable objects, so they don't
// change at runtime (changes always come in the form // change at runtime (changes always come in the form
// of new inhibitors) // of new inhibitors)
const InhibitorIface = <interface name="org.gnome.SessionManager.Inhibitor"> const InhibitorIface = '<node> \
<method name="GetAppId"> <interface name="org.gnome.SessionManager.Inhibitor"> \
<arg type="s" direction="out" /> <method name="GetAppId"> \
</method> <arg type="s" direction="out" /> \
<method name="GetReason"> </method> \
<arg type="s" direction="out" /> <method name="GetReason"> \
</method> <arg type="s" direction="out" /> \
</interface>; </method> \
</interface> \
</node>';
var InhibitorProxy = Gio.DBusProxy.makeProxyWrapper(InhibitorIface); var InhibitorProxy = Gio.DBusProxy.makeProxyWrapper(InhibitorIface);
function Inhibitor(objectPath, initCallback, cancellable) { function Inhibitor(objectPath, initCallback, cancellable) {
@ -45,27 +49,29 @@ function Inhibitor(objectPath, initCallback, cancellable) {
} }
// Not the full interface, only the methods we use // Not the full interface, only the methods we use
const SessionManagerIface = <interface name="org.gnome.SessionManager"> const SessionManagerIface = '<node> \
<method name="Logout"> <interface name="org.gnome.SessionManager"> \
<arg type="u" direction="in" /> <method name="Logout"> \
</method> <arg type="u" direction="in" /> \
<method name="Shutdown" /> </method> \
<method name="Reboot" /> <method name="Shutdown" /> \
<method name="CanShutdown"> <method name="Reboot" /> \
<arg type="b" direction="out" /> <method name="CanShutdown"> \
</method> <arg type="b" direction="out" /> \
<method name="IsInhibited"> </method> \
<arg type="u" direction="in" /> <method name="IsInhibited"> \
<arg type="b" direction="out" /> <arg type="u" direction="in" /> \
</method> <arg type="b" direction="out" /> \
<property name="SessionIsActive" type="b" access="read"/> </method> \
<signal name="InhibitorAdded"> <property name="SessionIsActive" type="b" access="read"/> \
<arg type="o" direction="out"/> <signal name="InhibitorAdded"> \
</signal> <arg type="o" direction="out"/> \
<signal name="InhibitorRemoved"> </signal> \
<arg type="o" direction="out"/> <signal name="InhibitorRemoved"> \
</signal> <arg type="o" direction="out"/> \
</interface>; </signal> \
</interface> \
</node>';
var SessionManagerProxy = Gio.DBusProxy.makeProxyWrapper(SessionManagerIface); var SessionManagerProxy = Gio.DBusProxy.makeProxyWrapper(SessionManagerIface);
function SessionManager(initCallback, cancellable) { function SessionManager(initCallback, cancellable) {

View File

@ -7,58 +7,66 @@ const Mainloop = imports.mainloop;
const Shell = imports.gi.Shell; const Shell = imports.gi.Shell;
const Signals = imports.signals; const Signals = imports.signals;
const SystemdLoginManagerIface = <interface name='org.freedesktop.login1.Manager'> const SystemdLoginManagerIface = '<node> \
<method name='Suspend'> <interface name="org.freedesktop.login1.Manager"> \
<arg type='b' direction='in'/> <method name="Suspend"> \
</method> <arg type="b" direction="in"/> \
<method name='CanSuspend'> </method> \
<arg type='s' direction='out'/> <method name="CanSuspend"> \
</method> <arg type="s" direction="out"/> \
<method name='Inhibit'> </method> \
<arg type='s' direction='in'/> <method name="Inhibit"> \
<arg type='s' direction='in'/> <arg type="s" direction="in"/> \
<arg type='s' direction='in'/> <arg type="s" direction="in"/> \
<arg type='s' direction='in'/> <arg type="s" direction="in"/> \
<arg type='h' direction='out'/> <arg type="s" direction="in"/> \
</method> <arg type="h" direction="out"/> \
<method name='GetSession'> </method> \
<arg type='s' direction='in'/> <method name="GetSession"> \
<arg type='o' direction='out'/> <arg type="s" direction="in"/> \
</method> <arg type="o" direction="out"/> \
<method name='ListSessions'> </method> \
<arg name='sessions' type='a(susso)' direction='out'/> <method name="ListSessions"> \
</method> <arg name="sessions" type="a(susso)" direction="out"/> \
<signal name='PrepareForSleep'> </method> \
<arg type='b' direction='out'/> <signal name="PrepareForSleep"> \
</signal> <arg type="b" direction="out"/> \
</interface>; </signal> \
</interface> \
</node>';
const SystemdLoginSessionIface = <interface name='org.freedesktop.login1.Session'> const SystemdLoginSessionIface = '<node> \
<signal name='Lock' /> <interface name="org.freedesktop.login1.Session"> \
<signal name='Unlock' /> <signal name="Lock" /> \
</interface>; <signal name="Unlock" /> \
</interface> \
</node>';
const SystemdLoginManager = Gio.DBusProxy.makeProxyWrapper(SystemdLoginManagerIface); const SystemdLoginManager = Gio.DBusProxy.makeProxyWrapper(SystemdLoginManagerIface);
const SystemdLoginSession = Gio.DBusProxy.makeProxyWrapper(SystemdLoginSessionIface); const SystemdLoginSession = Gio.DBusProxy.makeProxyWrapper(SystemdLoginSessionIface);
const ConsoleKitManagerIface = <interface name='org.freedesktop.ConsoleKit.Manager'> const ConsoleKitManagerIface = '<node> \
<method name='CanRestart'> <interface name="org.freedesktop.ConsoleKit.Manager"> \
<arg type='b' direction='out'/> <method name="CanRestart"> \
</method> <arg type="b" direction="out"/> \
<method name='CanStop'> </method> \
<arg type='b' direction='out'/> <method name="CanStop"> \
</method> <arg type="b" direction="out"/> \
<method name='Restart' /> </method> \
<method name='Stop' /> <method name="Restart" /> \
<method name='GetCurrentSession'> <method name="Stop" /> \
<arg type='o' direction='out' /> <method name="GetCurrentSession"> \
</method> <arg type="o" direction="out" /> \
</interface>; </method> \
</interface> \
</node>';
const ConsoleKitSessionIface = <interface name='org.freedesktop.ConsoleKit.Session'> const ConsoleKitSessionIface = '<node> \
<signal name='Lock' /> <interface name="org.freedesktop.ConsoleKit.Session"> \
<signal name='Unlock' /> <signal name="Lock" /> \
</interface>; <signal name="Unlock" /> \
</interface> \
</node>';
const ConsoleKitSession = Gio.DBusProxy.makeProxyWrapper(ConsoleKitSessionIface); const ConsoleKitSession = Gio.DBusProxy.makeProxyWrapper(ConsoleKitSessionIface);
const ConsoleKitManager = Gio.DBusProxy.makeProxyWrapper(ConsoleKitManagerIface); const ConsoleKitManager = Gio.DBusProxy.makeProxyWrapper(ConsoleKitManagerIface);

View File

@ -92,37 +92,41 @@ function _findProviderForSid(sid) {
// The following are not the complete interfaces, just the methods we need // The following are not the complete interfaces, just the methods we need
// (or may need in the future) // (or may need in the future)
const ModemGsmNetworkInterface = <interface name="org.freedesktop.ModemManager.Modem.Gsm.Network"> const ModemGsmNetworkInterface = '<node> \
<method name="GetRegistrationInfo"> <interface name="org.freedesktop.ModemManager.Modem.Gsm.Network"> \
<arg type="(uss)" direction="out" /> <method name="GetRegistrationInfo"> \
</method> <arg type="(uss)" direction="out" /> \
<method name="GetSignalQuality"> </method> \
<arg type="u" direction="out" /> <method name="GetSignalQuality"> \
</method> <arg type="u" direction="out" /> \
<property name="AccessTechnology" type="u" access="read" /> </method> \
<signal name="SignalQuality"> <property name="AccessTechnology" type="u" access="read" /> \
<arg type="u" direction="out" /> <signal name="SignalQuality"> \
</signal> <arg type="u" direction="out" /> \
<signal name="RegistrationInfo"> </signal> \
<arg type="u" direction="out" /> <signal name="RegistrationInfo"> \
<arg type="s" direction="out" /> <arg type="u" direction="out" /> \
<arg type="s" direction="out" /> <arg type="s" direction="out" /> \
</signal> <arg type="s" direction="out" /> \
</interface>; </signal> \
</interface> \
</node>';
const ModemGsmNetworkProxy = Gio.DBusProxy.makeProxyWrapper(ModemGsmNetworkInterface); const ModemGsmNetworkProxy = Gio.DBusProxy.makeProxyWrapper(ModemGsmNetworkInterface);
const ModemCdmaInterface = <interface name="org.freedesktop.ModemManager.Modem.Cdma"> const ModemCdmaInterface = '<node> \
<method name="GetSignalQuality"> <interface name="org.freedesktop.ModemManager.Modem.Cdma"> \
<arg type="u" direction="out" /> <method name="GetSignalQuality"> \
</method> <arg type="u" direction="out" /> \
<method name="GetServingSystem"> </method> \
<arg type="(usu)" direction="out" /> <method name="GetServingSystem"> \
</method> <arg type="(usu)" direction="out" /> \
<signal name="SignalQuality"> </method> \
<arg type="u" direction="out" /> <signal name="SignalQuality"> \
</signal> <arg type="u" direction="out" /> \
</interface>; </signal> \
</interface> \
</node>';
const ModemCdmaProxy = Gio.DBusProxy.makeProxyWrapper(ModemCdmaInterface); const ModemCdmaProxy = Gio.DBusProxy.makeProxyWrapper(ModemCdmaInterface);
@ -218,20 +222,26 @@ Signals.addSignalMethods(ModemCdma.prototype);
// Support for the new ModemManager1 interface (MM >= 0.7) // Support for the new ModemManager1 interface (MM >= 0.7)
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
const BroadbandModemInterface = <interface name="org.freedesktop.ModemManager1.Modem"> const BroadbandModemInterface = '<node> \
<property name="SignalQuality" type="(ub)" access="read" /> <interface name="org.freedesktop.ModemManager1.Modem"> \
</interface>; <property name="SignalQuality" type="(ub)" access="read" /> \
</interface> \
</node>';
const BroadbandModemProxy = Gio.DBusProxy.makeProxyWrapper(BroadbandModemInterface); const BroadbandModemProxy = Gio.DBusProxy.makeProxyWrapper(BroadbandModemInterface);
const BroadbandModem3gppInterface = <interface name="org.freedesktop.ModemManager1.Modem.Modem3gpp"> const BroadbandModem3gppInterface = '<node> \
<property name="OperatorCode" type="s" access="read" /> <interface name="org.freedesktop.ModemManager1.Modem.Modem3gpp"> \
<property name="OperatorName" type="s" access="read" /> <property name="OperatorCode" type="s" access="read" /> \
</interface>; <property name="OperatorName" type="s" access="read" /> \
</interface> \
</node>';
const BroadbandModem3gppProxy = Gio.DBusProxy.makeProxyWrapper(BroadbandModem3gppInterface); const BroadbandModem3gppProxy = Gio.DBusProxy.makeProxyWrapper(BroadbandModem3gppInterface);
const BroadbandModemCdmaInterface = <interface name="org.freedesktop.ModemManager1.Modem.ModemCdma"> const BroadbandModemCdmaInterface = '<node> \
<property name="Sid" type="u" access="read" /> <interface name="org.freedesktop.ModemManager1.Modem.ModemCdma"> \
</interface>; <property name="Sid" type="u" access="read" /> \
</interface> \
</node>';
const BroadbandModemCdmaProxy = Gio.DBusProxy.makeProxyWrapper(BroadbandModemCdmaInterface); const BroadbandModemCdmaProxy = Gio.DBusProxy.makeProxyWrapper(BroadbandModemCdmaInterface);
const BroadbandModem = new Lang.Class({ const BroadbandModem = new Lang.Class({

View File

@ -8,19 +8,21 @@ const Signals = imports.signals;
// Specified in the D-Bus specification here: // Specified in the D-Bus specification here:
// http://dbus.freedesktop.org/doc/dbus-specification.html#standard-interfaces-objectmanager // http://dbus.freedesktop.org/doc/dbus-specification.html#standard-interfaces-objectmanager
const ObjectManagerIface = <interface name="org.freedesktop.DBus.ObjectManager"> const ObjectManagerIface = '<node> \
<method name="GetManagedObjects"> <interface name="org.freedesktop.DBus.ObjectManager"> \
<arg name="objects" type="a{oa{sa{sv}}}" direction="out"/> <method name="GetManagedObjects"> \
</method> <arg name="objects" type="a{oa{sa{sv}}}" direction="out"/> \
<signal name="InterfacesAdded"> </method> \
<arg name="objectPath" type="o"/> <signal name="InterfacesAdded"> \
<arg name="interfaces" type="a{sa{sv}}" /> <arg name="objectPath" type="o"/> \
</signal> <arg name="interfaces" type="a{sa{sv}}" /> \
<signal name="InterfacesRemoved"> </signal> \
<arg name="objectPath" type="o"/> <signal name="InterfacesRemoved"> \
<arg name="interfaces" type="as" /> <arg name="objectPath" type="o"/> \
</signal> <arg name="interfaces" type="as" /> \
</interface>; </signal> \
</interface> \
</node>';
const ObjectManagerInfo = Gio.DBusInterfaceInfo.new_for_xml(ObjectManagerIface); const ObjectManagerInfo = Gio.DBusInterfaceInfo.new_for_xml(ObjectManagerIface);

View File

@ -7,12 +7,14 @@ const Signals = imports.signals;
const ObjectManager = imports.misc.objectManager; const ObjectManager = imports.misc.objectManager;
const SmartcardTokenIface = <interface name="org.gnome.SettingsDaemon.Smartcard.Token"> const SmartcardTokenIface = '<node> \
<property name="Name" type="s" access="read"/> <interface name="org.gnome.SettingsDaemon.Smartcard.Token"> \
<property name="Driver" type="o" access="read"/> <property name="Name" type="s" access="read"/> \
<property name="IsInserted" type="b" access="read"/> <property name="Driver" type="o" access="read"/> \
<property name="UsedToLogin" type="b" access="read"/> <property name="IsInserted" type="b" access="read"/> \
</interface>; <property name="UsedToLogin" type="b" access="read"/> \
</interface> \
</node>';
let _smartcardManager = null; let _smartcardManager = null;

View File

@ -1,6 +1,7 @@
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*- // -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
const Clutter = imports.gi.Clutter; const Clutter = imports.gi.Clutter;
const Gio = imports.gi.Gio;
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;
@ -79,6 +80,22 @@ function spawnCommandLine(command_line) {
} }
} }
// spawnApp:
// @argv: an argv array
//
// Runs @argv as if it was an application, handling startup notification
function spawnApp(argv) {
try {
let app = Gio.AppInfo.create_from_commandline(argv.join(' '), null,
Gio.AppInfoCreateFlags.SUPPORTS_STARTUP_NOTIFICATION);
let context = global.create_app_launch_context();
app.launch([], context);
} catch(err) {
_handleSpawnError(argv[0], err);
}
}
// trySpawn: // trySpawn:
// @argv: an argv array // @argv: an argv array
// //

View File

@ -106,6 +106,8 @@ const AppSwitcherPopup = new Lang.Class({
this._switcherList = new AppSwitcher(apps, this); this._switcherList = new AppSwitcher(apps, this);
this._items = this._switcherList.icons; this._items = this._switcherList.icons;
if (this._items.length == 0)
return false;
return true; return true;
}, },
@ -375,6 +377,9 @@ const WindowSwitcherPopup = new Lang.Class({
this._switcherList = new WindowList(windows, mode); this._switcherList = new WindowList(windows, mode);
this._items = this._switcherList.icons; this._items = this._switcherList.icons;
if (this._items.length == 0)
return false;
return true; return true;
}, },

View File

@ -744,10 +744,15 @@ const AppDisplay = new Lang.Class({
this._views[i].control.connect('clicked', Lang.bind(this, this._views[i].control.connect('clicked', Lang.bind(this,
function(actor) { function(actor) {
this._showView(viewIndex); this._showView(viewIndex);
global.settings.set_uint('app-picker-view', viewIndex);
})); }));
} }
let initialView = Math.min(global.settings.get_uint('app-picker-view'),
this._views.length - 1);
let frequentUseful = this._views[Views.FREQUENT].view.hasUsefulData(); let frequentUseful = this._views[Views.FREQUENT].view.hasUsefulData();
this._showView(frequentUseful ? Views.FREQUENT : Views.ALL); if (initialView == Views.FREQUENT && !frequentUseful)
initialView = Views.ALL;
this._showView(initialView);
this._updateFrequentVisibility(); this._updateFrequentVisibility();
// We need a dummy actor to catch the keyboard focus if the // We need a dummy actor to catch the keyboard focus if the
@ -877,6 +882,10 @@ const AppSearchProvider = new Lang.Class({
callback(metas); callback(metas);
}, },
filterResults: function(results, maxNumber) {
return results.slice(0, maxNumber);
},
getInitialResultSet: function(terms) { getInitialResultSet: function(terms) {
this.searchSystem.setResults(this, this._appSys.initial_search(terms)); this.searchSystem.setResults(this, this._appSys.initial_search(terms));
}, },

View File

@ -315,13 +315,12 @@ const Background = new Lang.Class({
this._brightness = 1.0; this._brightness = 1.0;
this._vignetteSharpness = 0.2; this._vignetteSharpness = 0.2;
this._saturation = 1.0;
this._cancellable = new Gio.Cancellable(); this._cancellable = new Gio.Cancellable();
this.isLoaded = false; this.isLoaded = false;
this._settings.connect('changed', Lang.bind(this, function() { this._settingsChangedSignalId = this._settings.connect('changed', Lang.bind(this, function() {
this.emit('changed'); this.emit('changed');
})); }));
this._load(); this._load();
}, },
@ -362,6 +361,10 @@ const Background = new Lang.Class({
this.actor.disconnect(this._destroySignalId); this.actor.disconnect(this._destroySignalId);
this._destroySignalId = 0; this._destroySignalId = 0;
if (this._settingsChangedSignalId != 0)
this._settings.disconnect(this._settingsChangedSignalId);
this._settingsChangedSignalId = 0;
}, },
_setLoaded: function() { _setLoaded: function() {
@ -412,7 +415,6 @@ const Background = new Lang.Class({
}, },
_addImage: function(content, index, filename) { _addImage: function(content, index, filename) {
content.saturation = this._saturation;
content.brightness = this._brightness; content.brightness = this._brightness;
content.vignette_sharpness = this._vignetteSharpness; content.vignette_sharpness = this._vignetteSharpness;
@ -428,7 +430,6 @@ const Background = new Lang.Class({
}, },
_updateImage: function(content, index, filename) { _updateImage: function(content, index, filename) {
content.saturation = this._saturation;
content.brightness = this._brightness; content.brightness = this._brightness;
content.vignette_sharpness = this._vignetteSharpness; content.vignette_sharpness = this._vignetteSharpness;
@ -586,24 +587,6 @@ const Background = new Lang.Class({
this._loadFile(filename); this._loadFile(filename);
}, },
get saturation() {
return this._saturation;
},
set saturation(saturation) {
this._saturation = saturation;
if (this._pattern && this._pattern.content)
this._pattern.content.saturation = saturation;
let keys = Object.keys(this._images);
for (let i = 0; i < keys.length; i++) {
let image = this._images[keys[i]];
if (image && image.content)
image.content.saturation = saturation;
}
},
get brightness() { get brightness() {
return this._brightness; return this._brightness;
}, },
@ -747,7 +730,6 @@ const BackgroundManager = new Lang.Class({
let newBackground = this._createBackground(monitorIndex); let newBackground = this._createBackground(monitorIndex);
newBackground.vignetteSharpness = background.vignetteSharpness; newBackground.vignetteSharpness = background.vignetteSharpness;
newBackground.brightness = background.brightness; newBackground.brightness = background.brightness;
newBackground.saturation = background.saturation;
newBackground.visible = background.visible; newBackground.visible = background.visible;
newBackground.loadedSignalId = newBackground.connect('loaded', newBackground.loadedSignalId = newBackground.connect('loaded',

View File

@ -185,7 +185,9 @@ const BoxPointer = new Lang.Class({
}, },
_getPreferredHeight: function(actor, forWidth, alloc) { _getPreferredHeight: function(actor, forWidth, alloc) {
let [minSize, naturalSize] = this.bin.get_preferred_height(forWidth); let themeNode = this.actor.get_theme_node();
let borderWidth = themeNode.get_length('-arrow-border-width');
let [minSize, naturalSize] = this.bin.get_preferred_height(forWidth - 2 * borderWidth);
alloc.min_size = minSize; alloc.min_size = minSize;
alloc.natural_size = naturalSize; alloc.natural_size = naturalSize;
this._adjustAllocationForArrow(false, alloc); this._adjustAllocationForArrow(false, alloc);

View File

@ -190,16 +190,18 @@ const EmptyEventSource = new Lang.Class({
}); });
Signals.addSignalMethods(EmptyEventSource.prototype); Signals.addSignalMethods(EmptyEventSource.prototype);
const CalendarServerIface = <interface name="org.gnome.Shell.CalendarServer"> const CalendarServerIface = '<node> \
<method name="GetEvents"> <interface name="org.gnome.Shell.CalendarServer"> \
<arg type="x" direction="in" /> <method name="GetEvents"> \
<arg type="x" direction="in" /> <arg type="x" direction="in" /> \
<arg type="b" direction="in" /> <arg type="x" direction="in" /> \
<arg type="a(sssbxxa{sv})" direction="out" /> <arg type="b" direction="in" /> \
</method> <arg type="a(sssbxxa{sv})" direction="out" /> \
<property name="HasCalendars" type="b" access="read" /> </method> \
<signal name="Changed" /> <property name="HasCalendars" type="b" access="read" /> \
</interface>; <signal name="Changed" /> \
</interface> \
</node>';
const CalendarServerInfo = Gio.DBusInterfaceInfo.new_for_xml(CalendarServerIface); const CalendarServerInfo = Gio.DBusInterfaceInfo.new_for_xml(CalendarServerIface);

View File

@ -75,12 +75,14 @@ function startAppForMount(app, mount) {
/******************************************/ /******************************************/
const HotplugSnifferIface = <interface name="org.gnome.Shell.HotplugSniffer"> const HotplugSnifferIface = '<node> \
<method name="SniffURI"> <interface name="org.gnome.Shell.HotplugSniffer"> \
<arg type="s" direction="in" /> <method name="SniffURI"> \
<arg type="as" direction="out" /> <arg type="s" direction="in" /> \
</method> <arg type="as" direction="out" /> \
</interface>; </method> \
</interface> \
</node>';
const HotplugSnifferProxy = Gio.DBusProxy.makeProxyWrapper(HotplugSnifferIface); const HotplugSnifferProxy = Gio.DBusProxy.makeProxyWrapper(HotplugSnifferIface);
function HotplugSniffer() { function HotplugSniffer() {

View File

@ -13,8 +13,6 @@ const ModalDialog = imports.ui.modalDialog;
const ShellEntry = imports.ui.shellEntry; const ShellEntry = imports.ui.shellEntry;
const CheckBox = imports.ui.checkBox; const CheckBox = imports.ui.checkBox;
let prompter = null;
const KeyringDialog = new Lang.Class({ const KeyringDialog = new Lang.Class({
Name: 'KeyringDialog', Name: 'KeyringDialog',
Extends: ModalDialog.ModalDialog, Extends: ModalDialog.ModalDialog,
@ -248,11 +246,13 @@ const KeyringPrompter = new Lang.Class({
function() { function() {
let dialog = this._enabled ? new KeyringDialog() let dialog = this._enabled ? new KeyringDialog()
: new KeyringDummyDialog(); : new KeyringDummyDialog();
return dialog.prompt; this._currentPrompt = dialog.prompt;
return this._currentPrompt;
})); }));
this._dbusId = null; this._dbusId = null;
this._registered = false; this._registered = false;
this._enabled = false; this._enabled = false;
this._currentPrompt = null;
}, },
enable: function() { enable: function() {
@ -267,6 +267,10 @@ const KeyringPrompter = new Lang.Class({
disable: function() { disable: function() {
this._enabled = false; this._enabled = false;
if (this._prompter.prompting)
this._currentPrompt.cancel();
this._currentPrompt = null;
} }
}); });

View File

@ -13,7 +13,6 @@ const Tp = imports.gi.TelepathyGLib;
const History = imports.misc.history; const History = imports.misc.history;
const Main = imports.ui.main; const Main = imports.ui.main;
const MessageTray = imports.ui.messageTray; const MessageTray = imports.ui.messageTray;
const NotificationDaemon = imports.ui.notificationDaemon;
const Params = imports.misc.params; const Params = imports.misc.params;
const PopupMenu = imports.ui.popupMenu; const PopupMenu = imports.ui.popupMenu;
@ -416,7 +415,7 @@ const TelepathyClient = new Lang.Class({
_ensureAppSource: function() { _ensureAppSource: function() {
if (this._appSource == null) { if (this._appSource == null) {
this._appSource = new MessageTray.Source(_("Chat"), 'empathy'); this._appSource = new MessageTray.Source(_("Chat"), 'empathy');
this._appSource.policy = new NotificationDaemon.NotificationApplicationPolicy('empathy'); this._appSource.policy = new MessageTray.NotificationApplicationPolicy('empathy');
Main.messageTray.add(this._appSource); Main.messageTray.add(this._appSource);
this._appSource.connect('destroy', Lang.bind(this, function () { this._appSource.connect('destroy', Lang.bind(this, function () {
@ -447,6 +446,7 @@ const ChatSource = new Lang.Class({
this._closedId = this._channel.connect('invalidated', Lang.bind(this, this._channelClosed)); this._closedId = this._channel.connect('invalidated', Lang.bind(this, this._channelClosed));
this._notification = new ChatNotification(this); this._notification = new ChatNotification(this);
this._notification.connect('clicked', Lang.bind(this, this.open));
this._notification.setUrgency(MessageTray.Urgency.HIGH); this._notification.setUrgency(MessageTray.Urgency.HIGH);
this._notifyTimeoutId = 0; this._notifyTimeoutId = 0;
@ -488,7 +488,7 @@ const ChatSource = new Lang.Class({
}, },
_createPolicy: function() { _createPolicy: function() {
return new NotificationDaemon.NotificationApplicationPolicy('empathy'); return new MessageTray.NotificationApplicationPolicy('empathy');
}, },
_updateAlias: function() { _updateAlias: function() {
@ -545,20 +545,19 @@ const ChatSource = new Lang.Class({
this._notification.update(this._notification.title, null, { customContent: true }); this._notification.update(this._notification.title, null, { customContent: true });
}, },
open: function(notification) { open: function() {
if (this._client.is_handling_channel(this._channel)) { if (this._client.is_handling_channel(this._channel)) {
// We are handling the channel, try to pass it to Empathy // We are handling the channel, try to pass it to Empathy
this._client.delegate_channels_async([this._channel], this._client.delegate_channels_async([this._channel],
global.get_current_time(), global.get_current_time(),
'org.freedesktop.Telepathy.Client.Empathy.Chat', null); 'org.freedesktop.Telepathy.Client.Empathy.Chat', null);
} } else {
else { // We are not the handler, just ask to present the channel
// We are not the handler, just ask to present the channel let dbus = Tp.DBusDaemon.dup();
let dbus = Tp.DBusDaemon.dup(); let cd = Tp.ChannelDispatcher.new(dbus);
let cd = Tp.ChannelDispatcher.new(dbus);
cd.present_channel_async(this._channel, global.get_current_time(), null); cd.present_channel_async(this._channel, global.get_current_time(), null);
} }
}, },
_getLogMessages: function() { _getLogMessages: function() {
@ -1061,7 +1060,7 @@ const ApproverSource = new Lang.Class({
}, },
_createPolicy: function() { _createPolicy: function() {
return new NotificationDaemon.NotificationApplicationPolicy('empathy'); return new MessageTray.NotificationApplicationPolicy('empathy');
}, },
destroy: function() { destroy: function() {
@ -1096,22 +1095,16 @@ const RoomInviteNotification = new Lang.Class({
* for example. */ * for example. */
this.addBody(_("%s is inviting you to join %s").format(inviter.get_alias(), channel.get_identifier())); this.addBody(_("%s is inviting you to join %s").format(inviter.get_alias(), channel.get_identifier()));
this.addButton('decline', _("Decline")); this.addAction(_("Decline"), Lang.bind(this, function() {
this.addButton('accept', _("Accept")); dispatchOp.leave_channels_async(Tp.ChannelGroupChangeReason.NONE, '', function(src, result) {
src.leave_channels_finish(result);
this.connect('action-invoked', Lang.bind(this, function(self, action) { });
switch (action) { this.destroy();
case 'decline': }));
dispatchOp.leave_channels_async(Tp.ChannelGroupChangeReason.NONE, this.addAction(_("Accept"), Lang.bind(this, function() {
'', function(src, result) { dispatchOp.handle_with_time_async('', global.get_current_time(), function(src, result) {
src.leave_channels_finish(result)}); src.handle_with_time_finish(result);
break; });
case 'accept':
dispatchOp.handle_with_time_async('', global.get_current_time(),
function(src, result) {
src.handle_with_time_finish(result)});
break;
}
this.destroy(); this.destroy();
})); }));
} }
@ -1137,23 +1130,17 @@ const AudioVideoNotification = new Lang.Class({
this.setUrgency(MessageTray.Urgency.CRITICAL); this.setUrgency(MessageTray.Urgency.CRITICAL);
this.addButton('reject', _("Decline")); this.addAction(_("Decline"), Lang.bind(this, function() {
dispatchOp.leave_channels_async(Tp.ChannelGroupChangeReason.NONE, '', function(src, result) {
src.leave_channels_finish(result);
});
this.destroy();
}));
/* translators: this is a button label (verb), not a noun */ /* translators: this is a button label (verb), not a noun */
this.addButton('answer', _("Answer")); this.addAction(_("Answer"), Lang.bind(this, function() {
dispatchOp.handle_with_time_async('', global.get_current_time(), function(src, result) {
this.connect('action-invoked', Lang.bind(this, function(self, action) { src.handle_with_time_finish(result);
switch (action) { });
case 'reject':
dispatchOp.leave_channels_async(Tp.ChannelGroupChangeReason.NONE,
'', function(src, result) {
src.leave_channels_finish(result)});
break;
case 'answer':
dispatchOp.handle_with_time_async('', global.get_current_time(),
function(src, result) {
src.handle_with_time_finish(result)});
break;
}
this.destroy(); this.destroy();
})); }));
} }
@ -1177,22 +1164,16 @@ const FileTransferNotification = new Lang.Class({
{ customContent: true }); { customContent: true });
this.setResident(true); this.setResident(true);
this.addButton('decline', _("Decline")); this.addAction(_("Decline"), Lang.bind(this, function() {
this.addButton('accept', _("Accept")); dispatchOp.leave_channels_async(Tp.ChannelGroupChangeReason.NONE, '', function(src, result) {
src.leave_channels_finish(result);
this.connect('action-invoked', Lang.bind(this, function(self, action) { });
switch (action) { this.destroy();
case 'decline': }));
dispatchOp.leave_channels_async(Tp.ChannelGroupChangeReason.NONE, this.addAction(_("Accept"), Lang.bind(this, function() {
'', function(src, result) { dispatchOp.handle_with_time_async('', global.get_current_time(), function(src, result) {
src.leave_channels_finish(result)}); src.handle_with_time_finish(result);
break; });
case 'accept':
dispatchOp.handle_with_time_async('', global.get_current_time(),
function(src, result) {
src.handle_with_time_finish(result)});
break;
}
this.destroy(); this.destroy();
})); }));
} }
@ -1240,27 +1221,20 @@ const SubscriptionRequestNotification = new Lang.Class({
this.addActor(layout); this.addActor(layout);
this.addButton('decline', _("Decline")); this.addAction(_("Decline"), Lang.bind(this, function() {
this.addButton('accept', _("Accept")); contact.remove_async(function(src, result) {
src.remove_finish(result);
});
}));
this.addAction(_("Accept"), Lang.bind(this, function() {
// Authorize the contact and request to see his status as well
contact.authorize_publication_async(function(src, result) {
src.authorize_publication_finish(result);
});
this.connect('action-invoked', Lang.bind(this, function(self, action) { contact.request_subscription_async('', function(src, result) {
switch (action) { src.request_subscription_finish(result);
case 'decline': });
contact.remove_async(function(src, result) {
src.remove_finish(result)});
break;
case 'accept':
// Authorize the contact and request to see his status as well
contact.authorize_publication_async(function(src, result) {
src.authorize_publication_finish(result)});
contact.request_subscription_async('', function(src, result) {
src.request_subscription_finish(result)});
break;
}
// rely on _subscriptionStatesChangedCb to destroy the
// notification
})); }));
this._changedId = contact.connect('subscription-states-changed', this._changedId = contact.connect('subscription-states-changed',
@ -1359,18 +1333,11 @@ const AccountNotification = new Lang.Class({
this._account = account; this._account = account;
this.addButton('view', _("View account")); this.addAction(_("View account"), Lang.bind(this, function() {
let cmd = 'empathy-accounts --select-account=' +
this.connect('action-invoked', Lang.bind(this, function(self, action) { account.get_path_suffix();
switch (action) { let app_info = Gio.app_info_create_from_commandline(cmd, null, 0);
case 'view': app_info.launch([], global.create_app_launch_context());
let cmd = 'empathy-accounts --select-account=' +
account.get_path_suffix();
let app_info = Gio.app_info_create_from_commandline(cmd, null, 0);
app_info.launch([], global.create_app_launch_context());
break;
}
this.destroy();
})); }));
this._enabledId = account.connect('notify::enabled', this._enabledId = account.connect('notify::enabled',

View File

@ -43,20 +43,22 @@ const _DIALOG_ICON_SIZE = 32;
const GSM_SESSION_MANAGER_LOGOUT_FORCE = 2; const GSM_SESSION_MANAGER_LOGOUT_FORCE = 2;
const EndSessionDialogIface = <interface name="org.gnome.SessionManager.EndSessionDialog"> const EndSessionDialogIface = '<node> \
<method name="Open"> <interface name="org.gnome.SessionManager.EndSessionDialog"> \
<arg type="u" direction="in" /> <method name="Open"> \
<arg type="u" direction="in" /> <arg type="u" direction="in" /> \
<arg type="u" direction="in" /> <arg type="u" direction="in" /> \
<arg type="ao" direction="in" /> <arg type="u" direction="in" /> \
</method> <arg type="ao" direction="in" /> \
<method name="Close" /> </method> \
<signal name="ConfirmedLogout" /> <method name="Close" /> \
<signal name="ConfirmedReboot" /> <signal name="ConfirmedLogout" /> \
<signal name="ConfirmedShutdown" /> <signal name="ConfirmedReboot" /> \
<signal name="Canceled" /> <signal name="ConfirmedShutdown" /> \
<signal name="Closed" /> <signal name="Canceled" /> \
</interface>; <signal name="Closed" /> \
</interface> \
</node>';
const logoutDialogContent = { const logoutDialogContent = {
subjectWithUser: C_("title", "Log Out %s"), subjectWithUser: C_("title", "Log Out %s"),
@ -131,13 +133,15 @@ const DialogContent = {
const MAX_USERS_IN_SESSION_DIALOG = 5; const MAX_USERS_IN_SESSION_DIALOG = 5;
const LogindSessionIface = <interface name='org.freedesktop.login1.Session'> const LogindSessionIface = '<node> \
<property name="Id" type="s" access="read"/> <interface name="org.freedesktop.login1.Session"> \
<property name="Remote" type="b" access="read"/> <property name="Id" type="s" access="read"/> \
<property name="Class" type="s" access="read"/> <property name="Remote" type="b" access="read"/> \
<property name="Type" type="s" access="read"/> <property name="Class" type="s" access="read"/> \
<property name="State" type="s" access="read"/> <property name="Type" type="s" access="read"/> \
</interface>; <property name="State" type="s" access="read"/> \
</interface> \
</node>';
const LogindSession = Gio.DBusProxy.makeProxyWrapper(LogindSessionIface); const LogindSession = Gio.DBusProxy.makeProxyWrapper(LogindSessionIface);
@ -269,13 +273,15 @@ const EndSessionDialog = new Lang.Class({
this._applicationHeader = new St.Label({ style_class: 'end-session-dialog-list-header', this._applicationHeader = new St.Label({ style_class: 'end-session-dialog-list-header',
text: _("Some applications are busy or have unsaved work.") }); text: _("Some applications are busy or have unsaved work.") });
this._applicationList = new St.BoxLayout({ vertical: true }); this._applicationList = new St.BoxLayout({ style_class: 'end-session-dialog-app-list',
vertical: true });
this._inhibitorSection.add_actor(this._applicationHeader); this._inhibitorSection.add_actor(this._applicationHeader);
this._inhibitorSection.add_actor(this._applicationList); this._inhibitorSection.add_actor(this._applicationList);
this._sessionHeader = new St.Label({ style_class: 'end-session-dialog-list-header', this._sessionHeader = new St.Label({ style_class: 'end-session-dialog-list-header',
text: _("Other users are logged in.") }); text: _("Other users are logged in.") });
this._sessionList = new St.BoxLayout({ vertical: true }); this._sessionList = new St.BoxLayout({ style_class: 'end-session-dialog-session-list',
vertical: true });
this._inhibitorSection.add_actor(this._sessionHeader); this._inhibitorSection.add_actor(this._sessionHeader);
this._inhibitorSection.add_actor(this._sessionList); this._inhibitorSection.add_actor(this._sessionList);

View File

@ -76,7 +76,11 @@ function disableExtension(uuid) {
theme.unload_stylesheet(extension.stylesheet.get_path()); theme.unload_stylesheet(extension.stylesheet.get_path());
} }
extension.stateObj.disable(); try {
extension.stateObj.disable();
} catch(e) {
logExtensionError(uuid, e);
}
for (let i = 0; i < order.length; i++) { for (let i = 0; i < order.length; i++) {
let uuid = order[i]; let uuid = order[i];
@ -89,8 +93,10 @@ function disableExtension(uuid) {
extensionOrder.splice(orderIdx, 1); extensionOrder.splice(orderIdx, 1);
extension.state = ExtensionState.DISABLED; if ( extension.state != ExtensionState.ERROR ) {
_signals.emit('extension-state-changed', extension); extension.state = ExtensionState.DISABLED;
_signals.emit('extension-state-changed', extension);
}
} }
function enableExtension(uuid) { function enableExtension(uuid) {
@ -117,10 +123,15 @@ function enableExtension(uuid) {
} }
} }
extension.stateObj.enable(); try {
extension.stateObj.enable();
extension.state = ExtensionState.ENABLED; extension.state = ExtensionState.ENABLED;
_signals.emit('extension-state-changed', extension); _signals.emit('extension-state-changed', extension);
return;
} catch(e) {
logExtensionError(uuid, e);
return;
}
} }
function logExtensionError(uuid, error) { function logExtensionError(uuid, error) {
@ -150,7 +161,8 @@ function loadExtension(extension) {
} else { } else {
let enabled = enabledExtensions.indexOf(extension.uuid) != -1; let enabled = enabledExtensions.indexOf(extension.uuid) != -1;
if (enabled) { if (enabled) {
initExtension(extension.uuid); if (!initExtension(extension.uuid))
return;
if (extension.state == ExtensionState.DISABLED) if (extension.state == ExtensionState.DISABLED)
enableExtension(extension.uuid); enableExtension(extension.uuid);
} else { } else {
@ -205,7 +217,12 @@ function initExtension(uuid) {
extensionModule = extension.imports.extension; extensionModule = extension.imports.extension;
if (extensionModule.init) { if (extensionModule.init) {
extensionState = extensionModule.init(extension); try {
extensionState = extensionModule.init(extension);
} catch(e) {
logExtensionError(uuid, e);
return false;
}
} }
if (!extensionState) if (!extensionState)
@ -214,6 +231,7 @@ function initExtension(uuid) {
extension.state = ExtensionState.DISABLED; extension.state = ExtensionState.DISABLED;
_signals.emit('extension-loaded', uuid); _signals.emit('extension-loaded', uuid);
return true;
} }
function getEnabledExtensions() { function getEnabledExtensions() {
@ -235,11 +253,7 @@ function onEnabledExtensionsChanged() {
newEnabledExtensions.filter(function(uuid) { newEnabledExtensions.filter(function(uuid) {
return enabledExtensions.indexOf(uuid) == -1; return enabledExtensions.indexOf(uuid) == -1;
}).forEach(function(uuid) { }).forEach(function(uuid) {
try {
enableExtension(uuid); enableExtension(uuid);
} catch(e) {
logExtensionError(uuid, e);
}
}); });
// Find and disable all the newly disabled extensions: UUIDs found in the // Find and disable all the newly disabled extensions: UUIDs found in the
@ -247,11 +261,7 @@ function onEnabledExtensionsChanged() {
enabledExtensions.filter(function(item) { enabledExtensions.filter(function(item) {
return newEnabledExtensions.indexOf(item) == -1; return newEnabledExtensions.indexOf(item) == -1;
}).forEach(function(uuid) { }).forEach(function(uuid) {
try {
disableExtension(uuid); disableExtension(uuid);
} catch(e) {
logExtensionError(uuid, e);
}
}); });
enabledExtensions = newEnabledExtensions; enabledExtensions = newEnabledExtensions;
@ -263,11 +273,7 @@ function _loadExtensions() {
let finder = new ExtensionUtils.ExtensionFinder(); let finder = new ExtensionUtils.ExtensionFinder();
finder.connect('extension-found', function(signals, extension) { finder.connect('extension-found', function(signals, extension) {
try { loadExtension(extension);
loadExtension(extension);
} catch(e) {
logExtensionError(extension.uuid, e);
}
}); });
finder.scanExtensions(); finder.scanExtensions();
} }

View File

@ -23,27 +23,29 @@ const KEYBOARD_TYPE = 'keyboard-type';
const A11Y_APPLICATIONS_SCHEMA = 'org.gnome.desktop.a11y.applications'; const A11Y_APPLICATIONS_SCHEMA = 'org.gnome.desktop.a11y.applications';
const SHOW_KEYBOARD = 'screen-keyboard-enabled'; const SHOW_KEYBOARD = 'screen-keyboard-enabled';
const CaribouKeyboardIface = <interface name='org.gnome.Caribou.Keyboard'> const CaribouKeyboardIface = '<node> \
<method name='Show'> <interface name="org.gnome.Caribou.Keyboard"> \
<arg type='u' direction='in' /> <method name="Show"> \
</method> <arg type="u" direction="in" /> \
<method name='Hide'> </method> \
<arg type='u' direction='in' /> <method name="Hide"> \
</method> <arg type="u" direction="in" /> \
<method name='SetCursorLocation'> </method> \
<arg type='i' direction='in' /> <method name="SetCursorLocation"> \
<arg type='i' direction='in' /> <arg type="i" direction="in" /> \
<arg type='i' direction='in' /> <arg type="i" direction="in" /> \
<arg type='i' direction='in' /> <arg type="i" direction="in" /> \
</method> <arg type="i" direction="in" /> \
<method name='SetEntryLocation'> </method> \
<arg type='i' direction='in' /> <method name="SetEntryLocation"> \
<arg type='i' direction='in' /> <arg type="i" direction="in" /> \
<arg type='i' direction='in' /> <arg type="i" direction="in" /> \
<arg type='i' direction='in' /> <arg type="i" direction="in" /> \
</method> <arg type="i" direction="in" /> \
<property name='Name' access='read' type='s' /> </method> \
</interface>; <property name="Name" access="read" type="s" /> \
</interface> \
</node>';
const Key = new Lang.Class({ const Key = new Lang.Class({
Name: 'Key', Name: 'Key',

View File

@ -251,7 +251,7 @@ const LayoutManager = new Lang.Class({
this._inOverview = true; this._inOverview = true;
this._updateVisibility(); this._updateVisibility();
this._queueUpdateRegions(); this._updateRegions();
}, },
hideOverview: function() { hideOverview: function() {
@ -362,7 +362,7 @@ const LayoutManager = new Lang.Class({
BackgroundMenu.addBackgroundMenu(bgManager.background.actor); BackgroundMenu.addBackgroundMenu(bgManager.background.actor);
})); }));
this._bgManagers.push(bgManager); this._bgManagers[monitorIndex] = bgManager;
return bgManager.background; return bgManager.background;
}, },

View File

@ -629,55 +629,6 @@ const Inspector = new Lang.Class({
Signals.addSignalMethods(Inspector.prototype); Signals.addSignalMethods(Inspector.prototype);
const Memory = new Lang.Class({
Name: 'Memory',
_init: function() {
this.actor = new St.BoxLayout({ vertical: true });
this._glibc_uordblks = new St.Label();
this.actor.add(this._glibc_uordblks);
this._js_bytes = new St.Label();
this.actor.add(this._js_bytes);
this._gjs_boxed = new St.Label();
this.actor.add(this._gjs_boxed);
this._gjs_gobject = new St.Label();
this.actor.add(this._gjs_gobject);
this._gjs_function = new St.Label();
this.actor.add(this._gjs_function);
this._gjs_closure = new St.Label();
this.actor.add(this._gjs_closure);
this._last_gc_seconds_ago = new St.Label();
this.actor.add(this._last_gc_seconds_ago);
this._gcbutton = new St.Button({ label: 'Full GC',
style_class: 'lg-obj-inspector-button' });
this._gcbutton.connect('clicked', Lang.bind(this, function () { System.gc(); this._renderText(); }));
this.actor.add(this._gcbutton, { x_align: St.Align.START,
x_fill: false });
this.actor.connect('notify::mapped', Lang.bind(this, this._renderText));
},
_renderText: function() {
if (!this.actor.mapped)
return;
let memInfo = global.get_memory_info();
this._glibc_uordblks.text = 'glibc_uordblks: ' + memInfo.glibc_uordblks;
this._js_bytes.text = 'js bytes: ' + memInfo.js_bytes;
this._gjs_boxed.text = 'gjs_boxed: ' + memInfo.gjs_boxed;
this._gjs_gobject.text = 'gjs_gobject: ' + memInfo.gjs_gobject;
this._gjs_function.text = 'gjs_function: ' + memInfo.gjs_function;
this._gjs_closure.text = 'gjs_closure: ' + memInfo.gjs_closure;
this._last_gc_seconds_ago.text = 'last_gc_seconds_ago: ' + memInfo.last_gc_seconds_ago;
}
});
const Extensions = new Lang.Class({ const Extensions = new Lang.Class({
Name: 'Extensions', Name: 'Extensions',
@ -880,6 +831,19 @@ const LookingGlass = new Lang.Class({
return true; return true;
})); }));
let gcIcon = new St.Icon({ icon_name: 'gnome-fs-trash-full',
icon_size: 24 });
toolbar.add_actor(gcIcon);
gcIcon.reactive = true;
gcIcon.connect('button-press-event', Lang.bind(this, function () {
gcIcon.icon_name = 'gnome-fs-trash-empty';
System.gc();
this._timeoutId = Mainloop.timeout_add(500, Lang.bind(this, function () {
gcIcon.icon_name = 'gnome-fs-trash-full';
Mainloop.source_remove(this._timeoutId);
}));
}));
let notebook = new Notebook(); let notebook = new Notebook();
this._notebook = notebook; this._notebook = notebook;
this.actor.add(notebook.actor, { expand: true }); this.actor.add(notebook.actor, { expand: true });
@ -907,9 +871,6 @@ const LookingGlass = new Lang.Class({
this._windowList = new WindowList(this); this._windowList = new WindowList(this);
notebook.appendPage('Windows', this._windowList.actor); notebook.appendPage('Windows', this._windowList.actor);
this._memory = new Memory();
notebook.appendPage('Memory', this._memory.actor);
this._extensions = new Extensions(this); this._extensions = new Extensions(this);
notebook.appendPage('Extensions', this._extensions.actor); notebook.appendPage('Extensions', this._extensions.actor);

View File

@ -9,85 +9,89 @@ const ZOOM_SERVICE_PATH = '/org/gnome/Magnifier/ZoomRegion';
// Subset of gnome-mag's Magnifier dbus interface -- to be expanded. See: // Subset of gnome-mag's Magnifier dbus interface -- to be expanded. See:
// http://git.gnome.org/browse/gnome-mag/tree/xml/...Magnifier.xml // http://git.gnome.org/browse/gnome-mag/tree/xml/...Magnifier.xml
const MagnifierIface = <interface name="org.gnome.Magnifier"> const MagnifierIface = '<node> \
<method name="setActive"> <interface name="org.gnome.Magnifier"> \
<arg type="b" direction="in" /> <method name="setActive"> \
</method> <arg type="b" direction="in" /> \
<method name="isActive"> </method> \
<arg type="b" direction="out" /> <method name="isActive"> \
</method> <arg type="b" direction="out" /> \
<method name="showCursor" /> </method> \
<method name="hideCursor" /> <method name="showCursor" /> \
<method name="createZoomRegion"> <method name="hideCursor" /> \
<arg type="d" direction="in" /> <method name="createZoomRegion"> \
<arg type="d" direction="in" /> <arg type="d" direction="in" /> \
<arg type="ai" direction="in" /> <arg type="d" direction="in" /> \
<arg type="ai" direction="in" /> <arg type="ai" direction="in" /> \
<arg type="o" direction="out" /> <arg type="ai" direction="in" /> \
</method> <arg type="o" direction="out" /> \
<method name="addZoomRegion"> </method> \
<arg type="o" direction="in" /> <method name="addZoomRegion"> \
<arg type="b" direction="out" /> <arg type="o" direction="in" /> \
</method> <arg type="b" direction="out" /> \
<method name="getZoomRegions"> </method> \
<arg type="ao" direction="out" /> <method name="getZoomRegions"> \
</method> <arg type="ao" direction="out" /> \
<method name="clearAllZoomRegions" /> </method> \
<method name="fullScreenCapable"> <method name="clearAllZoomRegions" /> \
<arg type="b" direction="out" /> <method name="fullScreenCapable"> \
</method> <arg type="b" direction="out" /> \
<method name="setCrosswireSize"> </method> \
<arg type="i" direction="in" /> <method name="setCrosswireSize"> \
</method> <arg type="i" direction="in" /> \
<method name="getCrosswireSize"> </method> \
<arg type="i" direction="out" /> <method name="getCrosswireSize"> \
</method> <arg type="i" direction="out" /> \
<method name="setCrosswireLength"> </method> \
<arg type="i" direction="in" /> <method name="setCrosswireLength"> \
</method> <arg type="i" direction="in" /> \
<method name="getCrosswireLength"> </method> \
<arg type="i" direction="out" /> <method name="getCrosswireLength"> \
</method> <arg type="i" direction="out" /> \
<method name="setCrosswireClip"> </method> \
<arg type="b" direction="in" /> <method name="setCrosswireClip"> \
</method> <arg type="b" direction="in" /> \
<method name="getCrosswireClip"> </method> \
<arg type="b" direction="out" /> <method name="getCrosswireClip"> \
</method> <arg type="b" direction="out" /> \
<method name="setCrosswireColor"> </method> \
<arg type="u" direction="in" /> <method name="setCrosswireColor"> \
</method> <arg type="u" direction="in" /> \
<method name="getCrosswireColor"> </method> \
<arg type="u" direction="out" /> <method name="getCrosswireColor"> \
</method> <arg type="u" direction="out" /> \
</interface>; </method> \
</interface> \
</node>';
// Subset of gnome-mag's ZoomRegion dbus interface -- to be expanded. See: // Subset of gnome-mag's ZoomRegion dbus interface -- to be expanded. See:
// http://git.gnome.org/browse/gnome-mag/tree/xml/...ZoomRegion.xml // http://git.gnome.org/browse/gnome-mag/tree/xml/...ZoomRegion.xml
const ZoomRegionIface = <interface name="org.gnome.Magnifier.ZoomRegion"> const ZoomRegionIface = '<node> \
<method name="setMagFactor"> <interface name="org.gnome.Magnifier.ZoomRegion"> \
<arg type="d" direction="in" /> <method name="setMagFactor"> \
<arg type="d" direction="in" /> <arg type="d" direction="in" /> \
</method> <arg type="d" direction="in" /> \
<method name="getMagFactor"> </method> \
<arg type="d" direction="out" /> <method name="getMagFactor"> \
<arg type="d" direction="out" /> <arg type="d" direction="out" /> \
</method> <arg type="d" direction="out" /> \
<method name="setRoi"> </method> \
<arg type="ai" direction="in" /> <method name="setRoi"> \
</method> <arg type="ai" direction="in" /> \
<method name="getRoi"> </method> \
<arg type="ai" direction="out" /> <method name="getRoi"> \
</method> <arg type="ai" direction="out" /> \
<method name="shiftContentsTo"> </method> \
<arg type="i" direction="in" /> <method name="shiftContentsTo"> \
<arg type="i" direction="in" /> <arg type="i" direction="in" /> \
<arg type="b" direction="out" /> <arg type="i" direction="in" /> \
</method> <arg type="b" direction="out" /> \
<method name="moveResize"> </method> \
<arg type="ai" direction="in" /> <method name="moveResize"> \
</method> <arg type="ai" direction="in" /> \
</interface>; </method> \
</interface> \
</node>';
// For making unique ZoomRegion DBus proxy object paths of the form: // For making unique ZoomRegion DBus proxy object paths of the form:
// '/org/gnome/Magnifier/ZoomRegion/zoomer0', // '/org/gnome/Magnifier/ZoomRegion/zoomer0',

View File

@ -280,10 +280,6 @@ const URLHighlighter = new Lang.Class({
} }
}); });
function strHasSuffix(string, suffix) {
return string.substr(-suffix.length) == suffix;
}
// NotificationPolicy: // NotificationPolicy:
// An object that holds all bits of configurable policy related to a notification // An object that holds all bits of configurable policy related to a notification
// source, such as whether to play sound or honour the critical bit. // source, such as whether to play sound or honour the critical bit.
@ -310,6 +306,126 @@ const NotificationPolicy = new Lang.Class({
}); });
Signals.addSignalMethods(NotificationPolicy.prototype); Signals.addSignalMethods(NotificationPolicy.prototype);
const NotificationGenericPolicy = new Lang.Class({
Name: 'NotificationGenericPolicy',
Extends: NotificationPolicy,
_init: function() {
// Don't chain to parent, it would try setting
// our properties to the defaults
this.id = 'generic';
this._masterSettings = new Gio.Settings({ schema: 'org.gnome.desktop.notifications' });
this._masterSettings.connect('changed', Lang.bind(this, this._changed));
},
store: function() { },
destroy: function() {
this._masterSettings.run_dispose();
},
_changed: function(settings, key) {
this.emit('policy-changed', key);
},
get enable() {
return true;
},
get enableSound() {
return true;
},
get showBanners() {
return this._masterSettings.get_boolean('show-banners');
},
get forceExpanded() {
return false;
},
get showInLockScreen() {
return this._masterSettings.get_boolean('show-in-lock-screen');
},
get detailsInLockScreen() {
return false;
}
});
const NotificationApplicationPolicy = new Lang.Class({
Name: 'NotificationApplicationPolicy',
Extends: NotificationPolicy,
_init: function(id) {
// Don't chain to parent, it would try setting
// our properties to the defaults
this.id = id;
this._canonicalId = this._canonicalizeId(id);
this._masterSettings = new Gio.Settings({ schema: 'org.gnome.desktop.notifications' });
this._settings = new Gio.Settings({ schema: 'org.gnome.desktop.notifications.application',
path: '/org/gnome/desktop/notifications/application/' + this._canonicalId + '/' });
this._masterSettings.connect('changed', Lang.bind(this, this._changed));
this._settings.connect('changed', Lang.bind(this, this._changed));
},
store: function() {
this._settings.set_string('application-id', this.id + '.desktop');
let apps = this._masterSettings.get_strv('application-children');
if (apps.indexOf(this._canonicalId) < 0) {
apps.push(this._canonicalId);
this._masterSettings.set_strv('application-children', apps);
}
},
destroy: function() {
this._masterSettings.run_dispose();
this._settings.run_dispose();
},
_changed: function(settings, key) {
this.emit('policy-changed', key);
},
_canonicalizeId: function(id) {
// Keys are restricted to lowercase alphanumeric characters and dash,
// and two dashes cannot be in succession
return id.toLowerCase().replace(/[^a-z0-9\-]/g, '-').replace(/--+/g, '-');
},
get enable() {
return this._settings.get_boolean('enable');
},
get enableSound() {
return this._settings.get_boolean('enable-sound-alerts');
},
get showBanners() {
return this._masterSettings.get_boolean('show-banners') &&
this._settings.get_boolean('show-banners');
},
get forceExpanded() {
return this._settings.get_boolean('force-expanded');
},
get showInLockScreen() {
return this._masterSettings.get_boolean('show-in-lock-screen') &&
this._settings.get_boolean('show-in-lock-screen');
},
get detailsInLockScreen() {
return this._settings.get_boolean('details-in-lock-screen');
}
});
// Notification: // Notification:
// @source: the notification's Source // @source: the notification's Source
// @title: the title // @title: the title
@ -383,7 +499,6 @@ const Notification = new Lang.Class({
this.focused = false; this.focused = false;
this.acknowledged = false; this.acknowledged = false;
this._destroyed = false; this._destroyed = false;
this._useActionIcons = false;
this._customContent = false; this._customContent = false;
this.bannerBodyText = null; this.bannerBodyText = null;
this.bannerBodyMarkup = false; this.bannerBodyMarkup = false;
@ -438,7 +553,12 @@ const Notification = new Lang.Class({
this._bannerLabel = this._bannerUrlHighlighter.actor; this._bannerLabel = this._bannerUrlHighlighter.actor;
this._bannerBox.add_actor(this._bannerLabel); this._bannerBox.add_actor(this._bannerLabel);
this.update(title, banner, params); // If called with only one argument we assume the caller
// will call .update() later on. This is the case of
// NotificationDaemon, which wants to use the same code
// for new and updated notifications
if (arguments.length != 1)
this.update(title, banner, params);
}, },
// update: // update:
@ -711,19 +831,8 @@ const Notification = new Lang.Class({
} }
}, },
// addButton: addButton: function(button, callback) {
// @id: the action ID
// @label: the label for the action's button
//
// Adds a button with the given @label to the notification. All
// action buttons will appear in a single row at the bottom of
// the notification.
//
// If the button is clicked, the notification will emit the
// %action-invoked signal with @id as a parameter
addButton: function(id, label) {
if (!this._buttonBox) { if (!this._buttonBox) {
let box = new St.BoxLayout({ style_class: 'notification-actions' }); let box = new St.BoxLayout({ style_class: 'notification-actions' });
this.setActionArea(box, { x_expand: false, this.setActionArea(box, { x_expand: false,
y_expand: false, y_expand: false,
@ -731,49 +840,40 @@ const Notification = new Lang.Class({
y_fill: false, y_fill: false,
x_align: St.Align.END }); x_align: St.Align.END });
this._buttonBox = box; this._buttonBox = box;
global.focus_manager.add_group(this._buttonBox);
} }
let button = new St.Button({ can_focus: true });
button._actionId = id;
let iconName = strHasSuffix(id, '-symbolic') ? id : id + '-symbolic';
if (this._useActionIcons && Gtk.IconTheme.get_default().has_icon(iconName)) {
button.add_style_class_name('notification-icon-button');
button.child = new St.Icon({ icon_name: iconName });
} else {
button.add_style_class_name('notification-button');
button.label = label;
}
if (this._buttonBox.get_n_children() > 0)
global.focus_manager.remove_group(this._buttonBox);
this._buttonBox.add(button); this._buttonBox.add(button);
global.focus_manager.add_group(this._buttonBox); button.connect('clicked', Lang.bind(this, function() {
button.connect('clicked', Lang.bind(this, this._onActionInvoked, id)); callback();
if (!this.resident) {
// We don't hide a resident notification when the user invokes one of its actions,
// because it is common for such notifications to update themselves with new
// information based on the action. We'd like to display the updated information
// in place, rather than pop-up a new notification.
this.emit('done-displaying');
this.destroy();
}
}));
this.updated(); this.updated();
return button;
}, },
// setButtonSensitive: // addAction:
// @id: the action ID // @label: the label for the action's button
// @sensitive: whether the button should be sensitive // @callback: the callback for the action
// //
// If the notification contains a button with action ID @id, // Adds a button with the given @label to the notification. All
// its sensitivity will be set to @sensitive. Insensitive // action buttons will appear in a single row at the bottom of
// buttons cannot be clicked. // the notification.
setButtonSensitive: function(id, sensitive) { addAction: function(label, callback) {
if (!this._buttonBox) let button = new St.Button({ style_class: 'notification-button',
return; label: label,
can_focus: true });
let button = this._buttonBox.get_children().filter(function(b) { return this.addButton(button, callback);
return b._actionId == id;
})[0];
if (!button || button.reactive == sensitive)
return;
button.reactive = sensitive;
}, },
setUrgency: function(urgency) { setUrgency: function(urgency) {
@ -792,10 +892,6 @@ const Notification = new Lang.Class({
this.forFeedback = forFeedback; this.forFeedback = forFeedback;
}, },
setUseActionIcons: function(useIcons) {
this._useActionIcons = useIcons;
},
_styleChanged: function() { _styleChanged: function() {
this._spacing = this._table.get_theme_node().get_length('spacing-columns'); this._spacing = this._table.get_theme_node().get_length('spacing-columns');
}, },
@ -1020,18 +1116,6 @@ const Notification = new Lang.Class({
this.actor.add_style_class_name('notification-unexpanded'); this.actor.add_style_class_name('notification-unexpanded');
}, },
_onActionInvoked: function(actor, mouseButtonClicked, id) {
this.emit('action-invoked', id);
if (!this.resident) {
// We don't hide a resident notification when the user invokes one of its actions,
// because it is common for such notifications to update themselves with new
// information based on the action. We'd like to display the updated information
// in place, rather than pop-up a new notification.
this.emit('done-displaying');
this.destroy();
}
},
_onClicked: function() { _onClicked: function() {
this.emit('clicked'); this.emit('clicked');
// We hide all types of notifications once the user clicks on them because the common // We hide all types of notifications once the user clicks on them because the common
@ -1206,6 +1290,10 @@ const Source = new Lang.Class({
return this.count > 1; return this.count > 1;
}, },
get isClearable() {
return !this.trayIcon && !this.isChat && !this.resident;
},
countUpdated: function() { countUpdated: function() {
this.emit('count-updated'); this.emit('count-updated');
}, },
@ -1277,25 +1365,25 @@ const Source = new Lang.Class({
return this._mainIcon.actor; return this._mainIcon.actor;
}, },
_onNotificationDestroy: function(notification) {
let index = this.notifications.indexOf(notification);
if (index < 0)
return;
this.notifications.splice(index, 1);
if (this.notifications.length == 0)
this._lastNotificationRemoved();
this.countUpdated();
},
pushNotification: function(notification) { pushNotification: function(notification) {
if (this.notifications.indexOf(notification) < 0) { if (this.notifications.indexOf(notification) >= 0)
this.notifications.push(notification); return;
this.emit('notification-added', notification);
}
notification.connect('clicked', Lang.bind(this, this.open)); notification.connect('destroy', Lang.bind(this, this._onNotificationDestroy));
notification.connect('destroy', Lang.bind(this, this.notifications.push(notification);
function () { this.emit('notification-added', notification);
let index = this.notifications.indexOf(notification);
if (index < 0)
return;
this.notifications.splice(index, 1);
if (this.notifications.length == 0)
this._lastNotificationRemoved();
this.countUpdated();
}));
this.countUpdated(); this.countUpdated();
}, },
@ -1507,26 +1595,42 @@ const MessageTrayMenu = new Lang.Class({
this._tray = tray; this._tray = tray;
this._presence = new GnomeSession.Presence(Lang.bind(this, function(proxy, error) {
if (error) {
logError(error, 'Error while reading gnome-session presence');
return;
}
this._onStatusChanged(proxy.status);
}));
this._presence.connectSignal('StatusChanged', Lang.bind(this, function(proxy, senderName, [status]) {
this._onStatusChanged(status);
}));
this._accountManager = Tp.AccountManager.dup();
this._accountManager.connect('most-available-presence-changed',
Lang.bind(this, this._onIMPresenceChanged));
this._accountManager.prepare_async(null, Lang.bind(this, this._onIMPresenceChanged));
this.actor.hide(); this.actor.hide();
Main.layoutManager.addChrome(this.actor); Main.layoutManager.addChrome(this.actor);
this._busyItem = new PopupMenu.PopupSwitchMenuItem(_("Notifications"));
this._busyItem.connect('toggled', Lang.bind(this, this._updatePresence));
this.addMenuItem(this._busyItem);
let separator = new PopupMenu.PopupSeparatorMenuItem();
this.addMenuItem(separator);
this._clearItem = this.addAction(_("Clear Messages"), function() { this._clearItem = this.addAction(_("Clear Messages"), function() {
let toDestroy = []; let toDestroy = tray.getSources().filter(function(source) {
let sources = tray.getSources(); return source.isClearable;
for (let i = 0; i < sources.length; i++) { })
// We exclude trayIcons, chat and resident sources
if (sources[i].trayIcon ||
sources[i].isChat ||
sources[i].resident)
continue;
toDestroy.push(sources[i]);
}
for (let i = 0; i < toDestroy.length; i++) { toDestroy.forEach(function(source) {
toDestroy[i].destroy(); source.destroy();
} });
toDestroy = null;
tray.close(); tray.close();
}); });
@ -1541,9 +1645,43 @@ const MessageTrayMenu = new Lang.Class({
settingsItem.connect('activate', function() { tray.close(); }); settingsItem.connect('activate', function() { tray.close(); });
}, },
_onStatusChanged: function(status) {
this._sessionStatus = status;
this._busyItem.setToggleState(status != GnomeSession.PresenceStatus.BUSY);
},
_onIMPresenceChanged: function(am, type) {
if (type == Tp.ConnectionPresenceType.AVAILABLE &&
this._sessionStatus == GnomeSession.PresenceStatus.BUSY)
this._presence.SetStatusRemote(GnomeSession.PresenceStatus.AVAILABLE);
},
_updateClearSensitivity: function() { _updateClearSensitivity: function() {
this._clearItem.setSensitive(this._tray.clearableCount > 0); this._clearItem.setSensitive(this._tray.clearableCount > 0);
}, },
_updatePresence: function(item, state) {
let status = state ? GnomeSession.PresenceStatus.AVAILABLE
: GnomeSession.PresenceStatus.BUSY;
this._presence.SetStatusRemote(status);
let [type, s ,msg] = this._accountManager.get_most_available_presence();
let newType = 0;
let newStatus;
if (status == GnomeSession.PresenceStatus.BUSY &&
type == Tp.ConnectionPresenceType.AVAILABLE) {
newType = Tp.ConnectionPresenceType.BUSY;
newStatus = 'busy';
} else if (status == GnomeSession.PresenceStatus.AVAILABLE &&
type == Tp.ConnectionPresenceType.BUSY) {
newType = Tp.ConnectionPresenceType.AVAILABLE;
newStatus = 'available';
}
if (newType > 0)
this._accountManager.set_all_requested_presences(newType,
newStatus, msg);
}
}); });
const MessageTrayMenuButton = new Lang.Class({ const MessageTrayMenuButton = new Lang.Class({
@ -1926,7 +2064,7 @@ const MessageTray = new Lang.Class({
this._summary.insert_child_at_index(summaryItem.actor, this._chatSummaryItemsCount); this._summary.insert_child_at_index(summaryItem.actor, this._chatSummaryItemsCount);
} }
if (!source.trayIcon && !source.isChat && !source.resident) if (source.isClearable)
this.clearableCount++; this.clearableCount++;
this._sources.set(source, obj); this._sources.set(source, obj);
@ -1970,7 +2108,7 @@ const MessageTray = new Lang.Class({
if (source.isChat) if (source.isChat)
this._chatSummaryItemsCount--; this._chatSummaryItemsCount--;
if (!source.trayIcon && !source.isChat && !source.resident) if (source.isClearable)
this.clearableCount--; this.clearableCount--;
source.disconnect(obj.notifyId); source.disconnect(obj.notifyId);
@ -2035,7 +2173,10 @@ const MessageTray = new Lang.Class({
}, },
toggleAndNavigate: function() { toggleAndNavigate: function() {
if (this.toggle()) if (!this.toggle())
return;
if (this._traySummoned)
this._summary.navigate_focus(null, Gtk.DirectionType.TAB_FORWARD, false); this._summary.navigate_focus(null, Gtk.DirectionType.TAB_FORWARD, false);
}, },

View File

@ -4,6 +4,7 @@ const Clutter = imports.gi.Clutter;
const GdkPixbuf = imports.gi.GdkPixbuf; const GdkPixbuf = imports.gi.GdkPixbuf;
const Gio = imports.gi.Gio; const Gio = imports.gi.Gio;
const GLib = imports.gi.GLib; const GLib = imports.gi.GLib;
const Gtk = imports.gi.Gtk;
const Lang = imports.lang; const Lang = imports.lang;
const Shell = imports.gi.Shell; const Shell = imports.gi.Shell;
const Mainloop = imports.mainloop; const Mainloop = imports.mainloop;
@ -15,54 +16,56 @@ const MessageTray = imports.ui.messageTray;
const Params = imports.misc.params; const Params = imports.misc.params;
const Util = imports.misc.util; const Util = imports.misc.util;
let nextNotificationId = 1;
// Should really be defined in Gio.js // Should really be defined in Gio.js
const BusIface = <interface name="org.freedesktop.DBus"> const BusIface = '<node> \
<method name="GetConnectionUnixProcessID"> <interface name="org.freedesktop.DBus"> \
<arg type="s" direction="in" /> <method name="GetConnectionUnixProcessID"> \
<arg type="u" direction="out" /> <arg type="s" direction="in" /> \
</method> <arg type="u" direction="out" /> \
</interface>; </method> \
</interface> \
</node>';
var BusProxy = Gio.DBusProxy.makeProxyWrapper(BusIface); var BusProxy = Gio.DBusProxy.makeProxyWrapper(BusIface);
function Bus() { function Bus() {
return new BusProxy(Gio.DBus.session, 'org.freedesktop.DBus', '/org/freedesktop/DBus'); return new BusProxy(Gio.DBus.session, 'org.freedesktop.DBus', '/org/freedesktop/DBus');
} }
const NotificationDaemonIface = <interface name="org.freedesktop.Notifications"> const FdoNotificationsIface = '<node> \
<method name="Notify"> <interface name="org.freedesktop.Notifications"> \
<arg type="s" direction="in"/> <method name="Notify"> \
<arg type="u" direction="in"/> <arg type="s" direction="in"/> \
<arg type="s" direction="in"/> <arg type="u" direction="in"/> \
<arg type="s" direction="in"/> <arg type="s" direction="in"/> \
<arg type="s" direction="in"/> <arg type="s" direction="in"/> \
<arg type="as" direction="in"/> <arg type="s" direction="in"/> \
<arg type="a{sv}" direction="in"/> <arg type="as" direction="in"/> \
<arg type="i" direction="in"/> <arg type="a{sv}" direction="in"/> \
<arg type="u" direction="out"/> <arg type="i" direction="in"/> \
</method> <arg type="u" direction="out"/> \
<method name="CloseNotification"> </method> \
<arg type="u" direction="in"/> <method name="CloseNotification"> \
</method> <arg type="u" direction="in"/> \
<method name="GetCapabilities"> </method> \
<arg type="as" direction="out"/> <method name="GetCapabilities"> \
</method> <arg type="as" direction="out"/> \
<method name="GetServerInformation"> </method> \
<arg type="s" direction="out"/> <method name="GetServerInformation"> \
<arg type="s" direction="out"/> <arg type="s" direction="out"/> \
<arg type="s" direction="out"/> <arg type="s" direction="out"/> \
<arg type="s" direction="out"/> <arg type="s" direction="out"/> \
</method> <arg type="s" direction="out"/> \
<signal name="NotificationClosed"> </method> \
<arg type="u"/> <signal name="NotificationClosed"> \
<arg type="u"/> <arg type="u"/> \
</signal> <arg type="u"/> \
<signal name="ActionInvoked"> </signal> \
<arg type="u"/> <signal name="ActionInvoked"> \
<arg type="s"/> <arg type="u"/> \
</signal> <arg type="s"/> \
</interface>; </signal> \
</interface> \
</node>';
const NotificationClosedReason = { const NotificationClosedReason = {
EXPIRED: 1, EXPIRED: 1,
@ -103,131 +106,11 @@ const STANDARD_TRAY_ICON_IMPLEMENTATIONS = {
'ibus-ui-gtk': 'keyboard' 'ibus-ui-gtk': 'keyboard'
}; };
const NotificationGenericPolicy = new Lang.Class({ const FdoNotificationDaemon = new Lang.Class({
Name: 'NotificationGenericPolicy', Name: 'FdoNotificationDaemon',
Extends: MessageTray.NotificationPolicy,
_init: function() { _init: function() {
// Don't chain to parent, it would try setting this._dbusImpl = Gio.DBusExportedObject.wrapJSObject(FdoNotificationsIface, this);
// our properties to the defaults
this.id = 'generic';
this._masterSettings = new Gio.Settings({ schema: 'org.gnome.desktop.notifications' });
this._masterSettings.connect('changed', Lang.bind(this, this._changed));
},
store: function() { },
destroy: function() {
this._masterSettings.run_dispose();
},
_changed: function(settings, key) {
this.emit('policy-changed', key);
},
get enable() {
return true;
},
get enableSound() {
return true;
},
get showBanners() {
return this._masterSettings.get_boolean('show-banners');
},
get forceExpanded() {
return false;
},
get showInLockScreen() {
return this._masterSettings.get_boolean('show-in-lock-screen');
},
get detailsInLockScreen() {
return false;
}
});
const NotificationApplicationPolicy = new Lang.Class({
Name: 'NotificationApplicationPolicy',
Extends: MessageTray.NotificationPolicy,
_init: function(id) {
// Don't chain to parent, it would try setting
// our properties to the defaults
this.id = id;
this._canonicalId = this._canonicalizeId(id)
this._masterSettings = new Gio.Settings({ schema: 'org.gnome.desktop.notifications' });
this._settings = new Gio.Settings({ schema: 'org.gnome.desktop.notifications.application',
path: '/org/gnome/desktop/notifications/application/' + this._canonicalId + '/' });
this._masterSettings.connect('changed', Lang.bind(this, this._changed));
this._settings.connect('changed', Lang.bind(this, this._changed));
},
store: function() {
this._settings.set_string('application-id', this.id + '.desktop');
let apps = this._masterSettings.get_strv('application-children');
if (apps.indexOf(this._canonicalId) < 0) {
apps.push(this._canonicalId);
this._masterSettings.set_strv('application-children', apps);
}
},
destroy: function() {
this._masterSettings.run_dispose();
this._settings.run_dispose();
},
_changed: function(settings, key) {
this.emit('policy-changed', key);
},
_canonicalizeId: function(id) {
// Keys are restricted to lowercase alphanumeric characters and dash,
// and two dashes cannot be in succession
return id.toLowerCase().replace(/[^a-z0-9\-]/g, '-').replace(/--+/g, '-');
},
get enable() {
return this._settings.get_boolean('enable');
},
get enableSound() {
return this._settings.get_boolean('enable-sound-alerts');
},
get showBanners() {
return this._masterSettings.get_boolean('show-banners') &&
this._settings.get_boolean('show-banners');
},
get forceExpanded() {
return this._settings.get_boolean('force-expanded');
},
get showInLockScreen() {
return this._masterSettings.get_boolean('show-in-lock-screen') &&
this._settings.get_boolean('show-in-lock-screen');
},
get detailsInLockScreen() {
return this._settings.get_boolean('details-in-lock-screen');
}
});
const NotificationDaemon = new Lang.Class({
Name: 'NotificationDaemon',
_init: function() {
this._dbusImpl = Gio.DBusExportedObject.wrapJSObject(NotificationDaemonIface, this);
this._dbusImpl.export(Gio.DBus.session, '/org/freedesktop/Notifications'); this._dbusImpl.export(Gio.DBus.session, '/org/freedesktop/Notifications');
this._sources = []; this._sources = [];
@ -235,6 +118,8 @@ const NotificationDaemon = new Lang.Class({
this._notifications = {}; this._notifications = {};
this._busProxy = new Bus(); this._busProxy = new Bus();
this._nextNotificationId = 1;
this._trayManager = new Shell.TrayManager(); this._trayManager = new Shell.TrayManager();
this._trayIconAddedId = this._trayManager.connect('tray-icon-added', Lang.bind(this, this._onTrayIconAdded)); this._trayIconAddedId = this._trayManager.connect('tray-icon-added', Lang.bind(this, this._onTrayIconAdded));
this._trayIconRemovedId = this._trayManager.connect('tray-icon-removed', Lang.bind(this, this._onTrayIconRemoved)); this._trayIconRemovedId = this._trayManager.connect('tray-icon-removed', Lang.bind(this, this._onTrayIconRemoved));
@ -333,7 +218,7 @@ const NotificationDaemon = new Lang.Class({
} }
} }
let source = new Source(title, pid, sender, trayIcon, ndata ? ndata.hints['desktop-entry'] : null); let source = new FdoNotificationDaemonSource(title, pid, sender, trayIcon, ndata ? ndata.hints['desktop-entry'] : null);
source.setTransient(isForTransientNotification); source.setTransient(isForTransientNotification);
if (!isForTransientNotification) { if (!isForTransientNotification) {
@ -372,7 +257,7 @@ const NotificationDaemon = new Lang.Class({
hints['category'] == 'presence.offline')) { hints['category'] == 'presence.offline')) {
// Ignore replacesId since we already sent back a // Ignore replacesId since we already sent back a
// NotificationClosed for that id. // NotificationClosed for that id.
id = nextNotificationId++; id = this._nextNotificationId++;
Mainloop.idle_add(Lang.bind(this, Mainloop.idle_add(Lang.bind(this,
function () { function () {
this._emitNotificationClosed(id, NotificationClosedReason.DISMISSED); this._emitNotificationClosed(id, NotificationClosedReason.DISMISSED);
@ -396,12 +281,13 @@ const NotificationDaemon = new Lang.Class({
if (!hints['image-path'] && hints['image_path']) if (!hints['image-path'] && hints['image_path'])
hints['image-path'] = hints['image_path']; // version 1.1 of the spec hints['image-path'] = hints['image_path']; // version 1.1 of the spec
if (!hints['image-data']) if (!hints['image-data']) {
if (hints['image_data']) if (hints['image_data'])
hints['image-data'] = hints['image_data']; // version 1.1 of the spec hints['image-data'] = hints['image_data']; // version 1.1 of the spec
else if (hints['icon_data'] && !hints['image-path']) else if (hints['icon_data'] && !hints['image-path'])
// early versions of the spec; 'icon_data' should only be used if 'image-path' is not available // early versions of the spec; 'icon_data' should only be used if 'image-path' is not available
hints['image-data'] = hints['icon_data']; hints['image-data'] = hints['icon_data'];
}
let ndata = { appName: appName, let ndata = { appName: appName,
icon: icon, icon: icon,
@ -415,7 +301,7 @@ const NotificationDaemon = new Lang.Class({
ndata.notification = this._notifications[replacesId].notification; ndata.notification = this._notifications[replacesId].notification;
} else { } else {
replacesId = 0; replacesId = 0;
ndata.id = id = nextNotificationId++; ndata.id = id = this._nextNotificationId++;
} }
this._notifications[id] = ndata; this._notifications[id] = ndata;
@ -470,6 +356,19 @@ const NotificationDaemon = new Lang.Class({
return invocation.return_value(GLib.Variant.new('(u)', [id])); return invocation.return_value(GLib.Variant.new('(u)', [id]));
}, },
_makeButton: function(id, label, useActionIcons) {
let button = new St.Button({ can_focus: true });
let iconName = id.endsWith('-symbolic') ? id : id + '-symbolic';
if (useActionIcons && Gtk.IconTheme.get_default().has_icon(iconName)) {
button.add_style_class_name('notification-icon-button');
button.child = new St.Icon({ icon_name: iconName });
} else {
button.add_style_class_name('notification-button');
button.label = label;
}
return button;
},
_notifyForSource: function(source, ndata) { _notifyForSource: function(source, ndata) {
let [id, icon, summary, body, actions, hints, notification] = let [id, icon, summary, body, actions, hints, notification] =
[ndata.id, ndata.icon, ndata.summary, ndata.body, [ndata.id, ndata.icon, ndata.summary, ndata.body,
@ -495,10 +394,6 @@ const NotificationDaemon = new Lang.Class({
} }
this._emitNotificationClosed(ndata.id, notificationClosedReason); this._emitNotificationClosed(ndata.id, notificationClosedReason);
})); }));
notification.connect('action-invoked', Lang.bind(this,
function(n, actionId) {
this._emitActionInvoked(ndata.id, actionId);
}));
} }
// Mark music notifications so they can be shown in the screen shield // Mark music notifications so they can be shown in the screen shield
@ -532,18 +427,33 @@ const NotificationDaemon = new Lang.Class({
soundName: hints['sound-name'] }); soundName: hints['sound-name'] });
notification.setImage(image); notification.setImage(image);
let hasDefaultAction = false;
if (actions.length) { if (actions.length) {
notification.setUseActionIcons(hints['action-icons'] == true); let useActionIcons = (hints['action-icons'] == true);
for (let i = 0; i < actions.length - 1; i += 2) { for (let i = 0; i < actions.length - 1; i += 2) {
if (actions[i] == 'default') let [actionId, label] = [actions[i], actions[i+1]];
notification.connect('clicked', Lang.bind(this, if (actionId == 'default') {
function() { hasDefaultAction = true;
this._emitActionInvoked(ndata.id, "default"); } else {
})); notification.addButton(this._makeButton(actionId, label, useActionIcons), Lang.bind(this, function() {
else this._emitActionInvoked(ndata.id, actionId);
notification.addButton(actions[i], actions[i + 1]); }));
}
} }
} }
if (hasDefaultAction) {
notification.connect('clicked', Lang.bind(this, function() {
this._emitActionInvoked(ndata.id, 'default');
}));
} else {
notification.connect('clicked', Lang.bind(this, function() {
source.open();
}));
}
switch (hints.urgency) { switch (hints.urgency) {
case Urgency.LOW: case Urgency.LOW:
notification.setUrgency(MessageTray.Urgency.LOW); notification.setUrgency(MessageTray.Urgency.LOW);
@ -636,8 +546,8 @@ const NotificationDaemon = new Lang.Class({
} }
}); });
const Source = new Lang.Class({ const FdoNotificationDaemonSource = new Lang.Class({
Name: 'NotificationDaemonSource', Name: 'FdoNotificationDaemonSource',
Extends: MessageTray.Source, Extends: MessageTray.Source,
_init: function(title, pid, sender, trayIcon, appId) { _init: function(title, pid, sender, trayIcon, appId) {
@ -674,9 +584,9 @@ const Source = new Lang.Class({
_createPolicy: function() { _createPolicy: function() {
if (this.app) { if (this.app) {
let id = this.app.get_id().replace(/\.desktop$/,''); let id = this.app.get_id().replace(/\.desktop$/,'');
return new NotificationApplicationPolicy(id); return new MessageTray.NotificationApplicationPolicy(id);
} else { } else {
return new NotificationGenericPolicy(); return new MessageTray.NotificationGenericPolicy();
} }
}, },
@ -752,22 +662,6 @@ const Source = new Lang.Class({
return null; return null;
}, },
_setApp: function(appId) {
if (this.app)
return;
this.app = this._getApp(appId);
if (!this.app)
return;
// Only override the icon if we were previously using
// notification-based icons (ie, not a trayicon) or if it was unset before
if (!this.trayIcon) {
this.useNotificationIcon = false;
this.iconUpdated();
}
},
setTitle: function(title) { setTitle: function(title) {
// Do nothing if .app is set, we don't want to override the // Do nothing if .app is set, we don't want to override the
// app name with whatever is provided through libnotify (usually // app name with whatever is provided through libnotify (usually
@ -778,9 +672,9 @@ const Source = new Lang.Class({
this.parent(title); this.parent(title);
}, },
open: function(notification) { open: function() {
this.destroyNonResidentNotifications();
this.openApp(); this.openApp();
this.destroyNonResidentNotifications();
}, },
_lastNotificationRemoved: function() { _lastNotificationRemoved: function() {
@ -792,11 +686,8 @@ const Source = new Lang.Class({
if (this.app == null) if (this.app == null)
return; return;
let windows = this.app.get_windows(); this.app.activate();
if (windows.length > 0) { Main.overview.hide();
let mostRecentWindow = windows[0];
Main.activateWindow(mostRecentWindow);
}
}, },
destroy: function() { destroy: function() {
@ -823,3 +714,276 @@ const Source = new Lang.Class({
} }
} }
}); });
const GtkNotificationDaemonNotification = new Lang.Class({
Name: 'GtkNotificationDaemonNotification',
Extends: MessageTray.Notification,
_init: function(source, notification) {
this.parent(source);
this._serialized = GLib.Variant.new('a{sv}', notification);
let { "title": title,
"body": body,
"icon": gicon,
"urgent": urgent,
"buttons": buttons,
"default-action": defaultAction,
"default-action-target": defaultActionTarget } = notification;
this.setUrgency(urgent.unpack() ? MessageTray.Urgency.CRITICAL
: MessageTray.Urgency.NORMAL);
if (buttons) {
buttons.deep_unpack().forEach(Lang.bind(this, function(button) {
this.addAction(button.label.unpack(),
Lang.bind(this, this._onButtonClicked, button));
}));
}
this._defaultAction = defaultAction ? defaultAction.unpack() : null;
this._defaultActionTarget = defaultActionTarget;
this.update(title.unpack(), body ? body.unpack() : null,
{ gicon: gicon ? Gio.icon_deserialize(gicon) : null });
},
_activateAction: function(namespacedActionId, target) {
if (namespacedActionId) {
if (namespacedActionId.startsWith('app.')) {
let actionId = namespacedActionId.slice('app.'.length);
this.source.activateAction(actionId, target);
}
} else {
this.source.open();
}
},
_onButtonClicked: function(button) {
let { 'action': action, 'target': actionTarget } = button;
this._activateAction(action.unpack(), actionTarget);
},
_onClicked: function() {
this._activateAction(this._defaultAction, this._defaultActionTarget);
this.parent();
},
serialize: function() {
return this._serialized;
},
});
const FdoApplicationIface = '<node> \
<interface name="org.freedesktop.Application"> \
<method name="ActivateAction"> \
<arg type="s" direction="in" /> \
<arg type="av" direction="in" /> \
<arg type="a{sv}" direction="in" /> \
</method> \
<method name="Activate"> \
<arg type="a{sv}" direction="in" /> \
</method> \
</interface> \
</node>';
const FdoApplicationProxy = Gio.DBusProxy.makeProxyWrapper(FdoApplicationIface);
function objectPathFromAppId(appId) {
return '/' + appId.replace(/\./g, '/');
}
function getPlatformData() {
let startupId = GLib.Variant.new('s', '_TIME' + global.get_current_time());
return { "desktop-startup-id": startupId };
}
function InvalidAppError() {}
const GtkNotificationDaemonAppSource = new Lang.Class({
Name: 'GtkNotificationDaemonAppSource',
Extends: MessageTray.Source,
_init: function(appId) {
this._appId = appId;
this._objectPath = objectPathFromAppId(appId);
this._app = Shell.AppSystem.get_default().lookup_app(appId + '.desktop');
if (!this._app)
throw new InvalidAppError();
this._notifications = {};
this.parent(this._app.get_name());
},
createIcon: function(size) {
return this._app.create_icon_texture(size);
},
_createPolicy: function() {
return new MessageTray.NotificationApplicationPolicy(this._appId);
},
_createApp: function() {
return new FdoApplicationProxy(Gio.DBus.session, this._appId, this._objectPath);
},
activateAction: function(actionId, target) {
let app = this._createApp();
app.ActivateActionRemote(actionId, target ? [target] : [], getPlatformData());
},
open: function() {
let app = this._createApp();
app.ActivateRemote(getPlatformData());
},
addNotification: function(notificationId, notificationParams, showBanner) {
if (this._notifications[notificationId])
this._notifications[notificationId].destroy();
let notification = new GtkNotificationDaemonNotification(this, notificationParams);
notification.connect('destroy', Lang.bind(this, function() {
delete this._notifications[notificationId];
}));
this._notifications[notificationId] = notification;
if (showBanner)
this.notify(notification);
else
this.pushNotification(notification);
},
removeNotification: function(notificationId) {
if (this._notifications[notificationId])
this._notifications[notificationId].destroy(MessageTray.NotificationDestroyedReason.SOURCE_CLOSED);
},
serialize: function() {
let notifications = [];
for (let notificationId in this._notifications) {
let notification = this._notifications[notificationId];
notifications.push([notificationId, notification.serialize()]);
}
return [this._appId, notifications];
},
});
const GtkNotificationsIface = '<node> \
<interface name="org.gtk.Notifications"> \
<method name="AddNotification"> \
<arg type="s" direction="in" /> \
<arg type="s" direction="in" /> \
<arg type="a{sv}" direction="in" /> \
</method> \
<method name="RemoveNotification"> \
<arg type="s" direction="in" /> \
<arg type="s" direction="in" /> \
</method> \
</interface> \
</node>';
const GtkNotificationDaemon = new Lang.Class({
Name: 'GtkNotificationDaemon',
_init: function() {
this._sources = {};
this._loadNotifications();
this._dbusImpl = Gio.DBusExportedObject.wrapJSObject(GtkNotificationsIface, this);
this._dbusImpl.export(Gio.DBus.session, '/org/gtk/Notifications');
Gio.DBus.session.own_name('org.gtk.Notifications', Gio.BusNameOwnerFlags.REPLACE, null, null);
},
_ensureAppSource: function(appId) {
if (this._sources[appId])
return this._sources[appId];
let source = new GtkNotificationDaemonAppSource(appId);
source.connect('destroy', Lang.bind(this, function() {
delete this._sources[appId];
this._saveNotifications();
}));
source.connect('count-updated', Lang.bind(this, this._saveNotifications));
Main.messageTray.add(source);
this._sources[appId] = source;
return source;
},
_loadNotifications: function() {
this._isLoading = true;
let value = global.get_persistent_state('a(sa(sv))', 'notifications');
if (value) {
let sources = value.deep_unpack();
sources.forEach(Lang.bind(this, function([appId, notifications]) {
if (notifications.length == 0)
return;
let source;
try {
source = this._ensureAppSource(appId);
} catch(e if e instanceof InvalidAppError) {
return;
}
notifications.forEach(function([notificationId, notification]) {
source.addNotification(notificationId, notification.deep_unpack(), false);
});
}));
}
this._isLoading = false;
},
_saveNotifications: function() {
if (this._isLoading)
return;
let sources = [];
for (let appId in this._sources) {
let source = this._sources[appId];
sources.push(source.serialize());
}
global.set_persistent_state('notifications', new GLib.Variant('a(sa(sv))', sources));
},
AddNotificationAsync: function(params, invocation) {
let [appId, notificationId, notification] = params;
let source;
try {
source = this._ensureAppSource(appId);
} catch(e if e instanceof InvalidAppError) {
invocation.return_dbus_error('org.gtk.Notifications.InvalidApp', 'The app by ID "%s" could not be found'.format(appId));
return;
}
source.addNotification(notificationId, notification, true);
invocation.return_value(null);
},
RemoveNotificationAsync: function(params, invocation) {
let [appId, notificationId] = params;
let source = this._sources[appId];
if (source)
source.removeNotification(notificationId);
invocation.return_value(null);
},
});
const NotificationDaemon = new Lang.Class({
Name: 'NotificationDaemon',
_init: function() {
this._fdoNotificationDaemon = new FdoNotificationDaemon();
this._gtkNotificationDaemon = new GtkNotificationDaemon();
},
});

View File

@ -78,10 +78,8 @@ const ShellInfo = new Lang.Class({
} }
this._undoCallback = undoCallback; this._undoCallback = undoCallback;
if (undoCallback) { if (undoCallback)
notification.addButton('system-undo', _("Undo")); notification.addAction(_("Undo"), Lang.bind(this, this._onUndoClicked));
notification.connect('action-invoked', Lang.bind(this, this._onUndoClicked));
}
this._source.notify(notification); this._source.notify(notification);
} }
@ -148,7 +146,7 @@ const Overview = new Lang.Class({
// Dash elements, or mouseover handlers in the workspaces. // Dash elements, or mouseover handlers in the workspaces.
this._coverPane = new Clutter.Actor({ opacity: 0, this._coverPane = new Clutter.Actor({ opacity: 0,
reactive: true }); reactive: true });
this._stack.add_actor(this._coverPane); Main.layoutManager.overviewGroup.add_child(this._coverPane);
this._coverPane.connect('event', Lang.bind(this, function (actor, event) { return true; })); this._coverPane.connect('event', Lang.bind(this, function (actor, event) { return true; }));
this._stack.add_actor(this._overview); this._stack.add_actor(this._overview);

View File

@ -55,18 +55,21 @@ const SlideLayout = new Lang.Class({
vfunc_allocate: function(container, box, flags) { vfunc_allocate: function(container, box, flags) {
let child = container.get_first_child(); let child = container.get_first_child();
let [, , natWidth, natHeight] = child.get_preferred_size();
let availWidth = Math.round(box.x2 - box.x1); let availWidth = Math.round(box.x2 - box.x1);
let availHeight = Math.round(box.y2 - box.y1); let availHeight = Math.round(box.y2 - box.y1);
let [, natWidth] = child.get_preferred_width(availHeight);
// Align the actor inside the clipped box, as the actor's alignment
// flags only determine what to do if the allocated box is bigger
// than the actor's box.
let realDirection = getRtlSlideDirection(this._direction, child); let realDirection = getRtlSlideDirection(this._direction, child);
let translationX = (realDirection == SlideDirection.LEFT) ? let alignX = (realDirection == SlideDirection.LEFT) ? (availWidth - natWidth) : 0;
(availWidth - natWidth) : (natWidth - availWidth);
let actorBox = new Clutter.ActorBox({ x1: translationX, let actorBox = new Clutter.ActorBox();
y1: 0, actorBox.x1 = alignX;
x2: child.x_expand ? availWidth : natWidth, actorBox.x2 = actorBox.x1 + child.x_expand ? availWidth : natWidth;
y2: child.y_expand ? availHeight : natHeight }); actorBox.y1 = 0;
actorBox.y2 = actorBox.y1 + availHeight;
child.allocate(actorBox, flags); child.allocate(actorBox, flags);
}, },
@ -236,11 +239,6 @@ const ThumbnailsSlider = new Lang.Class({
this._thumbnailsBox = thumbnailsBox; this._thumbnailsBox = thumbnailsBox;
// SlideLayout reads the actor's expand flags to decide
// whether to allocate the natural size to its child, or the whole
// available allocation
this._thumbnailsBox.actor.y_expand = true;
this.actor.request_mode = Clutter.RequestMode.WIDTH_FOR_HEIGHT; this.actor.request_mode = Clutter.RequestMode.WIDTH_FOR_HEIGHT;
this.actor.reactive = true; this.actor.reactive = true;
this.actor.track_hover = true; this.actor.track_hover = true;
@ -324,7 +322,6 @@ const DashSlider = new Lang.Class({
// whether to allocate the natural size to its child, or the whole // whether to allocate the natural size to its child, or the whole
// available allocation // available allocation
this._dash.actor.x_expand = true; this._dash.actor.x_expand = true;
this._dash.actor.y_expand = true;
this.actor.x_align = Clutter.ActorAlign.START; this.actor.x_align = Clutter.ActorAlign.START;
this.actor.y_expand = true; this.actor.y_expand = true;

View File

@ -213,9 +213,7 @@ const AppMenuButton = new Lang.Class({
this._label = new TextShadower(); this._label = new TextShadower();
this._label.actor.y_align = Clutter.ActorAlign.CENTER; this._label.actor.y_align = Clutter.ActorAlign.CENTER;
this._hbox.add_actor(this._label.actor); this._hbox.add_actor(this._label.actor);
this._arrow = new St.Label({ text: '\u25BE', this._arrow = PopupMenu.unicodeArrow(St.Side.BOTTOM);
y_expand: true,
y_align: Clutter.ActorAlign.CENTER });
this._hbox.add_actor(this._arrow); this._hbox.add_actor(this._arrow);
this._iconBottomClip = 0; this._iconBottomClip = 0;
@ -833,9 +831,7 @@ const AggregateMenu = new Lang.Class({
this._indicators.add_child(this._rfkill.indicators); this._indicators.add_child(this._rfkill.indicators);
this._indicators.add_child(this._volume.indicators); this._indicators.add_child(this._volume.indicators);
this._indicators.add_child(this._power.indicators); this._indicators.add_child(this._power.indicators);
this._indicators.add_child(new St.Label({ text: '\u25BE', this._indicators.add_child(PopupMenu.unicodeArrow(St.Side.BOTTOM));
y_expand: true,
y_align: Clutter.ActorAlign.CENTER }));
this.menu.addMenuItem(this._volume.menu); this.menu.addMenuItem(this._volume.menu);
this.menu.addMenuItem(this._brightness.menu); this.menu.addMenuItem(this._brightness.menu);

View File

@ -42,6 +42,33 @@ function isPopupMenuItemVisible(child) {
return child.visible; return child.visible;
} }
/**
* @side Side to which the arrow points.
*/
function unicodeArrow(side) {
let arrowChar;
switch (side) {
case St.Side.TOP:
arrowChar = '\u25B4';
break;
case St.Side.RIGHT:
arrowChar = '\u25B8';
break;
case St.Side.BOTTOM:
arrowChar = '\u25BE';
break;
case St.Side.LEFT:
arrowChar = '\u25C2';
break;
}
return new St.Label({ text: arrowChar,
style_class: 'unicode-arrow',
accessible_role: Atk.Role.ARROW,
y_expand: true,
y_align: Clutter.ActorAlign.CENTER });
}
const PopupBaseMenuItem = new Lang.Class({ const PopupBaseMenuItem = new Lang.Class({
Name: 'PopupBaseMenuItem', Name: 'PopupBaseMenuItem',
@ -962,8 +989,7 @@ const PopupSubMenuMenuItem = new Lang.Class({
y_align: Clutter.ActorAlign.CENTER }); y_align: Clutter.ActorAlign.CENTER });
this.actor.add_child(this.status); this.actor.add_child(this.status);
this._triangle = new St.Label({ text: '\u25B8', this._triangle = unicodeArrow(St.Side.RIGHT);
style_class: 'popup-submenu-menu-item-triangle' });
this._triangle.pivot_point = new Clutter.Point({ x: 0.5, y: 0.6 }); this._triangle.pivot_point = new Clutter.Point({ x: 0.5, y: 0.6 });
this._triangleBin = new St.Widget({ y_expand: true, this._triangleBin = new St.Widget({ y_expand: true,

View File

@ -11,52 +11,56 @@ const Search = imports.ui.search;
const KEY_FILE_GROUP = 'Shell Search Provider'; const KEY_FILE_GROUP = 'Shell Search Provider';
const SearchProviderIface = <interface name="org.gnome.Shell.SearchProvider"> const SearchProviderIface = '<node> \
<method name="GetInitialResultSet"> <interface name="org.gnome.Shell.SearchProvider"> \
<arg type="as" direction="in" /> <method name="GetInitialResultSet"> \
<arg type="as" direction="out" /> <arg type="as" direction="in" /> \
</method> <arg type="as" direction="out" /> \
<method name="GetSubsearchResultSet"> </method> \
<arg type="as" direction="in" /> <method name="GetSubsearchResultSet"> \
<arg type="as" direction="in" /> <arg type="as" direction="in" /> \
<arg type="as" direction="out" /> <arg type="as" direction="in" /> \
</method> <arg type="as" direction="out" /> \
<method name="GetResultMetas"> </method> \
<arg type="as" direction="in" /> <method name="GetResultMetas"> \
<arg type="aa{sv}" direction="out" /> <arg type="as" direction="in" /> \
</method> <arg type="aa{sv}" direction="out" /> \
<method name="ActivateResult"> </method> \
<arg type="s" direction="in" /> <method name="ActivateResult"> \
</method> <arg type="s" direction="in" /> \
</interface>; </method> \
</interface> \
</node>';
const SearchProvider2Iface = <interface name="org.gnome.Shell.SearchProvider2"> const SearchProvider2Iface = '<node> \
<method name="GetInitialResultSet"> <interface name="org.gnome.Shell.SearchProvider2"> \
<arg type="as" direction="in" /> <method name="GetInitialResultSet"> \
<arg type="as" direction="out" /> <arg type="as" direction="in" /> \
</method> <arg type="as" direction="out" /> \
<method name="GetSubsearchResultSet"> </method> \
<arg type="as" direction="in" /> <method name="GetSubsearchResultSet"> \
<arg type="as" direction="in" /> <arg type="as" direction="in" /> \
<arg type="as" direction="out" /> <arg type="as" direction="in" /> \
</method> <arg type="as" direction="out" /> \
<method name="GetResultMetas"> </method> \
<arg type="as" direction="in" /> <method name="GetResultMetas"> \
<arg type="aa{sv}" direction="out" /> <arg type="as" direction="in" /> \
</method> <arg type="aa{sv}" direction="out" /> \
<method name="ActivateResult"> </method> \
<arg type="s" direction="in" /> <method name="ActivateResult"> \
<arg type="as" direction="in" /> <arg type="s" direction="in" /> \
<arg type="u" direction="in" /> <arg type="as" direction="in" /> \
</method> <arg type="u" direction="in" /> \
<method name="LaunchSearch"> </method> \
<arg type="as" direction="in" /> <method name="LaunchSearch"> \
<arg type="u" direction="in" /> <arg type="as" direction="in" /> \
</method> <arg type="u" direction="in" /> \
</interface>; </method> \
</interface> \
</node>';
var SearchProviderProxy = Gio.DBusProxy.makeProxyWrapper(SearchProviderIface); var SearchProviderProxyInfo = Gio.DBusInterfaceInfo.new_for_xml(SearchProviderIface);
var SearchProvider2Proxy = Gio.DBusProxy.makeProxyWrapper(SearchProvider2Iface); var SearchProvider2ProxyInfo = Gio.DBusInterfaceInfo.new_for_xml(SearchProvider2Iface);
function loadRemoteSearchProviders(addProviderCallback) { function loadRemoteSearchProviders(addProviderCallback) {
let objectPaths = {}; let objectPaths = {};
@ -172,12 +176,18 @@ function loadRemoteSearchProviders(addProviderCallback) {
const RemoteSearchProvider = new Lang.Class({ const RemoteSearchProvider = new Lang.Class({
Name: 'RemoteSearchProvider', Name: 'RemoteSearchProvider',
_init: function(appInfo, dbusName, dbusPath, proxyType) { _init: function(appInfo, dbusName, dbusPath, proxyInfo) {
if (!proxyType) if (!proxyInfo)
proxyType = SearchProviderProxy; proxyInfo = SearchProviderProxyInfo;
this.proxy = new proxyType(Gio.DBus.session, this.proxy = new Gio.DBusProxy({ g_bus_type: Gio.BusType.SESSION,
dbusName, dbusPath, Lang.bind(this, this._onProxyConstructed)); g_name: dbusName,
g_object_path: dbusPath,
g_interface_info: proxyInfo,
g_interface_name: proxyInfo.name,
g_flags: (Gio.DBusProxyFlags.DO_NOT_AUTO_START_AT_CONSTRUCTION |
Gio.DBusProxyFlags.DO_NOT_LOAD_PROPERTIES) });
this.proxy.init_async(GLib.PRIORITY_DEFAULT, null, null);
this.appInfo = appInfo; this.appInfo = appInfo;
this.id = appInfo.get_id(); this.id = appInfo.get_id();
@ -186,10 +196,6 @@ const RemoteSearchProvider = new Lang.Class({
this._cancellable = new Gio.Cancellable(); this._cancellable = new Gio.Cancellable();
}, },
_onProxyConstructed: function(proxy) {
// Do nothing
},
createIcon: function(size, meta) { createIcon: function(size, meta) {
let gicon; let gicon;
if (meta['icon']) { if (meta['icon']) {
@ -207,40 +213,45 @@ const RemoteSearchProvider = new Lang.Class({
icon_size: size }); icon_size: size });
}, },
filterResults: function(results, maxNumber) {
if (results.length <= maxNumber)
return results;
let regularResults = results.filter(function(r) { return !r.startsWith('special:'); });
let specialResults = results.filter(function(r) { return r.startsWith('special:'); });
return regularResults.slice(0, maxNumber).concat(specialResults.slice(0, maxNumber));
},
_getResultsFinished: function(results, error) { _getResultsFinished: function(results, error) {
if (error) if (error) {
return; if (!error.matches(Gio.IOErrorEnum, Gio.IOErrorEnum.CANCELLED))
this.searchSystem.setResults(this, results[0]); log('Received error from DBus search provider %s: %s'.format(this.id, String(error)));
} else {
this.searchSystem.setResults(this, results[0]);
}
}, },
getInitialResultSet: function(terms) { getInitialResultSet: function(terms) {
this._cancellable.cancel(); this._cancellable.cancel();
this._cancellable.reset(); this._cancellable.reset();
try { this.proxy.GetInitialResultSetRemote(terms,
this.proxy.GetInitialResultSetRemote(terms, Lang.bind(this, this._getResultsFinished),
Lang.bind(this, this._getResultsFinished), this._cancellable);
this._cancellable);
} catch(e) {
log('Error calling GetInitialResultSet for provider %s: %s'.format(this.id, e.toString()));
this.searchSystem.setResults(this, []);
}
}, },
getSubsearchResultSet: function(previousResults, newTerms) { getSubsearchResultSet: function(previousResults, newTerms) {
this._cancellable.cancel(); this._cancellable.cancel();
this._cancellable.reset(); this._cancellable.reset();
try { this.proxy.GetSubsearchResultSetRemote(previousResults, newTerms,
this.proxy.GetSubsearchResultSetRemote(previousResults, newTerms, Lang.bind(this, this._getResultsFinished),
Lang.bind(this, this._getResultsFinished), this._cancellable);
this._cancellable);
} catch(e) {
log('Error calling GetSubsearchResultSet for provider %s: %s'.format(this.id, e.toString()));
this.searchSystem.setResults(this, []);
}
}, },
_getResultMetasFinished: function(results, error, callback) { _getResultMetasFinished: function(results, error, callback) {
if (error) { if (error) {
if (!error.matches(Gio.IOErrorEnum, Gio.IOErrorEnum.CANCELLED))
log('Received error from DBus search provider %s during GetResultMetas: %s'.format(this.id, String(error)));
callback([]); callback([]);
return; return;
} }
@ -265,14 +276,9 @@ const RemoteSearchProvider = new Lang.Class({
getResultMetas: function(ids, callback) { getResultMetas: function(ids, callback) {
this._cancellable.cancel(); this._cancellable.cancel();
this._cancellable.reset(); this._cancellable.reset();
try { this.proxy.GetResultMetasRemote(ids,
this.proxy.GetResultMetasRemote(ids, Lang.bind(this, this._getResultMetasFinished, callback),
Lang.bind(this, this._getResultMetasFinished, callback), this._cancellable);
this._cancellable);
} catch(e) {
log('Error calling GetResultMetas for provider %s: %s'.format(this.id, e.toString()));
callback([]);
}
}, },
activateResult: function(id) { activateResult: function(id) {
@ -292,7 +298,7 @@ const RemoteSearchProvider2 = new Lang.Class({
Extends: RemoteSearchProvider, Extends: RemoteSearchProvider,
_init: function(appInfo, dbusName, dbusPath) { _init: function(appInfo, dbusName, dbusPath) {
this.parent(appInfo, dbusName, dbusPath, SearchProvider2Proxy); this.parent(appInfo, dbusName, dbusPath, SearchProvider2ProxyInfo);
this.canLaunchSearch = true; this.canLaunchSearch = true;
}, },

View File

@ -19,6 +19,7 @@ const Background = imports.ui.background;
const GnomeSession = imports.misc.gnomeSession; const GnomeSession = imports.misc.gnomeSession;
const Hash = imports.misc.hash; const Hash = imports.misc.hash;
const Layout = imports.ui.layout; const Layout = imports.ui.layout;
const OVirt = imports.gdm.oVirt;
const LoginManager = imports.misc.loginManager; const LoginManager = imports.misc.loginManager;
const Lightbox = imports.ui.lightbox; const Lightbox = imports.ui.lightbox;
const Main = imports.ui.main; const Main = imports.ui.main;
@ -545,6 +546,13 @@ const ScreenShield = new Lang.Class({
this._liftShield(true, 0); this._liftShield(true, 0);
})); }));
this._oVirtCredentialsManager = OVirt.getOVirtCredentialsManager();
this._oVirtCredentialsManager.connect('user-authenticated',
Lang.bind(this, function() {
if (this._isLocked)
this._liftShield(true, 0);
}));
this._inhibitor = null; this._inhibitor = null;
this._aboutToSuspend = false; this._aboutToSuspend = false;
this._loginManager = LoginManager.getLoginManager(); this._loginManager = LoginManager.getLoginManager();

View File

@ -9,27 +9,29 @@ const Signals = imports.signals;
const Hash = imports.misc.hash; const Hash = imports.misc.hash;
const Main = imports.ui.main; const Main = imports.ui.main;
const ScreencastIface = <interface name="org.gnome.Shell.Screencast"> const ScreencastIface = '<node> \
<method name="Screencast"> <interface name="org.gnome.Shell.Screencast"> \
<arg type="s" direction="in" name="file_template"/> <method name="Screencast"> \
<arg type="a{sv}" direction="in" name="options"/> <arg type="s" direction="in" name="file_template"/> \
<arg type="b" direction="out" name="success"/> <arg type="a{sv}" direction="in" name="options"/> \
<arg type="s" direction="out" name="filename_used"/> <arg type="b" direction="out" name="success"/> \
</method> <arg type="s" direction="out" name="filename_used"/> \
<method name="ScreencastArea"> </method> \
<arg type="i" direction="in" name="x"/> <method name="ScreencastArea"> \
<arg type="i" direction="in" name="y"/> <arg type="i" direction="in" name="x"/> \
<arg type="i" direction="in" name="width"/> <arg type="i" direction="in" name="y"/> \
<arg type="i" direction="in" name="height"/> <arg type="i" direction="in" name="width"/> \
<arg type="s" direction="in" name="file_template"/> <arg type="i" direction="in" name="height"/> \
<arg type="a{sv}" direction="in" name="options"/> <arg type="s" direction="in" name="file_template"/> \
<arg type="b" direction="out" name="success"/> <arg type="a{sv}" direction="in" name="options"/> \
<arg type="s" direction="out" name="filename_used"/> <arg type="b" direction="out" name="success"/> \
</method> <arg type="s" direction="out" name="filename_used"/> \
<method name="StopScreencast"> </method> \
<arg type="b" direction="out" name="success"/> <method name="StopScreencast"> \
</method> <arg type="b" direction="out" name="success"/> \
</interface>; </method> \
</interface> \
</node>';
const ScreencastService = new Lang.Class({ const ScreencastService = new Lang.Class({
Name: 'ScreencastService', Name: 'ScreencastService',

View File

@ -15,45 +15,47 @@ const Lightbox = imports.ui.lightbox;
const Main = imports.ui.main; const Main = imports.ui.main;
const Tweener = imports.ui.tweener; const Tweener = imports.ui.tweener;
const ScreenshotIface = <interface name="org.gnome.Shell.Screenshot"> const ScreenshotIface = '<node> \
<method name="ScreenshotArea"> <interface name="org.gnome.Shell.Screenshot"> \
<arg type="i" direction="in" name="x"/> <method name="ScreenshotArea"> \
<arg type="i" direction="in" name="y"/> <arg type="i" direction="in" name="x"/> \
<arg type="i" direction="in" name="width"/> <arg type="i" direction="in" name="y"/> \
<arg type="i" direction="in" name="height"/> <arg type="i" direction="in" name="width"/> \
<arg type="b" direction="in" name="flash"/> <arg type="i" direction="in" name="height"/> \
<arg type="s" direction="in" name="filename"/> <arg type="b" direction="in" name="flash"/> \
<arg type="b" direction="out" name="success"/> <arg type="s" direction="in" name="filename"/> \
<arg type="s" direction="out" name="filename_used"/> <arg type="b" direction="out" name="success"/> \
</method> <arg type="s" direction="out" name="filename_used"/> \
<method name="ScreenshotWindow"> </method> \
<arg type="b" direction="in" name="include_frame"/> <method name="ScreenshotWindow"> \
<arg type="b" direction="in" name="include_cursor"/> <arg type="b" direction="in" name="include_frame"/> \
<arg type="b" direction="in" name="flash"/> <arg type="b" direction="in" name="include_cursor"/> \
<arg type="s" direction="in" name="filename"/> <arg type="b" direction="in" name="flash"/> \
<arg type="b" direction="out" name="success"/> <arg type="s" direction="in" name="filename"/> \
<arg type="s" direction="out" name="filename_used"/> <arg type="b" direction="out" name="success"/> \
</method> <arg type="s" direction="out" name="filename_used"/> \
<method name="Screenshot"> </method> \
<arg type="b" direction="in" name="include_cursor"/> <method name="Screenshot"> \
<arg type="b" direction="in" name="flash"/> <arg type="b" direction="in" name="include_cursor"/> \
<arg type="s" direction="in" name="filename"/> <arg type="b" direction="in" name="flash"/> \
<arg type="b" direction="out" name="success"/> <arg type="s" direction="in" name="filename"/> \
<arg type="s" direction="out" name="filename_used"/> <arg type="b" direction="out" name="success"/> \
</method> <arg type="s" direction="out" name="filename_used"/> \
<method name="SelectArea"> </method> \
<arg type="i" direction="out" name="x"/> <method name="SelectArea"> \
<arg type="i" direction="out" name="y"/> <arg type="i" direction="out" name="x"/> \
<arg type="i" direction="out" name="width"/> <arg type="i" direction="out" name="y"/> \
<arg type="i" direction="out" name="height"/> <arg type="i" direction="out" name="width"/> \
</method> <arg type="i" direction="out" name="height"/> \
<method name="FlashArea"> </method> \
<arg type="i" direction="in" name="x"/> <method name="FlashArea"> \
<arg type="i" direction="in" name="y"/> <arg type="i" direction="in" name="x"/> \
<arg type="i" direction="in" name="width"/> <arg type="i" direction="in" name="y"/> \
<arg type="i" direction="in" name="height"/> <arg type="i" direction="in" name="width"/> \
</method> <arg type="i" direction="in" name="height"/> \
</interface>; </method> \
</interface> \
</node>';
const ScreenshotService = new Lang.Class({ const ScreenshotService = new Lang.Class({
Name: 'ScreenshotService', Name: 'ScreenshotService',

View File

@ -69,16 +69,18 @@ function waitLeisure() {
}; };
} }
const PerfHelperIface = <interface name="org.gnome.Shell.PerfHelper"> const PerfHelperIface = '<node> \
<method name="CreateWindow"> <interface name="org.gnome.Shell.PerfHelper"> \
<arg type="i" direction="in" /> <method name="CreateWindow"> \
<arg type="i" direction="in" /> <arg type="i" direction="in" /> \
<arg type="b" direction="in" /> <arg type="i" direction="in" /> \
<arg type="b" direction="in" /> <arg type="b" direction="in" /> \
</method> <arg type="b" direction="in" /> \
<method name="WaitWindows" /> </method> \
<method name="DestroyWindows" /> <method name="WaitWindows" /> \
</interface>; <method name="DestroyWindows" /> \
</interface> \
</node>';
var PerfHelperProxy = Gio.DBusProxy.makeProxyWrapper(PerfHelperIface); var PerfHelperProxy = Gio.DBusProxy.makeProxyWrapper(PerfHelperIface);
function PerfHelper() { function PerfHelper() {

View File

@ -1,10 +1,26 @@
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*- // -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
const Clutter = imports.gi.Clutter;
const Lang = imports.lang; const Lang = imports.lang;
const Gtk = imports.gi.Gtk;
const Meta = imports.gi.Meta;
const Signals = imports.signals; const Signals = imports.signals;
const St = imports.gi.St;
const Atk = imports.gi.Atk;
const DND = imports.ui.dnd;
const IconGrid = imports.ui.iconGrid;
const Main = imports.ui.main;
const Overview = imports.ui.overview;
const Separator = imports.ui.separator;
const Search = imports.ui.search;
const Util = imports.misc.util;
const SEARCH_PROVIDERS_SCHEMA = 'org.gnome.desktop.search-providers'; const SEARCH_PROVIDERS_SCHEMA = 'org.gnome.desktop.search-providers';
const MAX_LIST_SEARCH_RESULTS_ROWS = 3;
const MAX_GRID_SEARCH_RESULTS_ROWS = 1;
const SearchSystem = new Lang.Class({ const SearchSystem = new Lang.Class({
Name: 'SearchSystem', Name: 'SearchSystem',
@ -82,24 +98,563 @@ const SearchSystem = new Lang.Class({
if (isSubSearch) { if (isSubSearch) {
for (let i = 0; i < this._providers.length; i++) { for (let i = 0; i < this._providers.length; i++) {
let [provider, previousResults] = previousResultsArr[i]; let [provider, previousResults] = previousResultsArr[i];
try { results.push([provider, []]);
results.push([provider, []]); provider.getSubsearchResultSet(previousResults, terms);
provider.getSubsearchResultSet(previousResults, terms);
} catch (error) {
log('A ' + error.name + ' has occured in ' + provider.id + ': ' + error.message);
}
} }
} else { } else {
for (let i = 0; i < this._providers.length; i++) { for (let i = 0; i < this._providers.length; i++) {
let provider = this._providers[i]; let provider = this._providers[i];
try { results.push([provider, []]);
results.push([provider, []]); provider.getInitialResultSet(terms);
provider.getInitialResultSet(terms);
} catch (error) {
log('A ' + error.name + ' has occured in ' + provider.id + ': ' + error.message);
}
} }
} }
} }
}); });
Signals.addSignalMethods(SearchSystem.prototype); Signals.addSignalMethods(SearchSystem.prototype);
const MaxWidthBin = new Lang.Class({
Name: 'MaxWidthBin',
Extends: St.Bin,
vfunc_allocate: function(box, flags) {
let themeNode = this.get_theme_node();
let maxWidth = themeNode.get_max_width();
let availWidth = box.x2 - box.x1;
let adjustedBox = box;
if (availWidth > maxWidth) {
let excessWidth = availWidth - maxWidth;
adjustedBox.x1 += Math.floor(excessWidth / 2);
adjustedBox.x2 -= Math.floor(excessWidth / 2);
}
this.parent(adjustedBox, flags);
}
});
const SearchResult = new Lang.Class({
Name: 'SearchResult',
_init: function(provider, metaInfo, terms) {
this.provider = provider;
this.metaInfo = metaInfo;
this.terms = terms;
this.actor = new St.Button({ reactive: true,
can_focus: true,
track_hover: true,
x_align: St.Align.START,
y_fill: true });
this.actor._delegate = this;
this.actor.connect('clicked', Lang.bind(this, this.activate));
},
activate: function() {
this.provider.activateResult(this.metaInfo.id, this.terms);
Main.overview.toggle();
},
setSelected: function(selected) {
if (selected)
this.actor.add_style_pseudo_class('selected');
else
this.actor.remove_style_pseudo_class('selected');
}
});
const ListSearchResult = new Lang.Class({
Name: 'ListSearchResult',
Extends: SearchResult,
ICON_SIZE: 64,
_init: function(provider, metaInfo, terms) {
this.parent(provider, metaInfo, terms);
this.actor.style_class = 'list-search-result';
this.actor.x_fill = true;
let content = new St.BoxLayout({ style_class: 'list-search-result-content',
vertical: false });
this.actor.set_child(content);
// An icon for, or thumbnail of, content
let icon = this.metaInfo['createIcon'](this.ICON_SIZE);
if (icon) {
content.add(icon);
}
let details = new St.BoxLayout({ vertical: true });
content.add(details, { x_fill: true,
y_fill: false,
x_align: St.Align.START,
y_align: St.Align.MIDDLE });
let title = new St.Label({ style_class: 'list-search-result-title',
text: this.metaInfo['name'] })
details.add(title, { x_fill: false,
y_fill: false,
x_align: St.Align.START,
y_align: St.Align.START });
this.actor.label_actor = title;
if (this.metaInfo['description']) {
let description = new St.Label({ style_class: 'list-search-result-description' });
description.clutter_text.set_markup(this.metaInfo['description']);
details.add(description, { x_fill: false,
y_fill: false,
x_align: St.Align.START,
y_align: St.Align.END });
}
}
});
const GridSearchResult = new Lang.Class({
Name: 'GridSearchResult',
Extends: SearchResult,
_init: function(provider, metaInfo, terms) {
this.parent(provider, metaInfo, terms);
this.actor.style_class = 'grid-search-result';
let content = provider.createResultObject(metaInfo, terms);
let dragSource = null;
if (content == null) {
let actor = new St.Bin();
let icon = new IconGrid.BaseIcon(this.metaInfo['name'],
{ createIcon: this.metaInfo['createIcon'] });
actor.set_child(icon.actor);
actor.label_actor = icon.label;
dragSource = icon.icon;
content = { actor: actor, icon: icon };
} else {
if (content._delegate && content._delegate.getDragActorSource)
dragSource = content._delegate.getDragActorSource();
}
this.actor.set_child(content.actor);
this.actor.label_actor = content.actor.label_actor;
this.icon = content.icon;
let draggable = DND.makeDraggable(this.actor);
draggable.connect('drag-begin',
Lang.bind(this, function() {
Main.overview.beginItemDrag(this);
}));
draggable.connect('drag-cancelled',
Lang.bind(this, function() {
Main.overview.cancelledItemDrag(this);
}));
draggable.connect('drag-end',
Lang.bind(this, function() {
Main.overview.endItemDrag(this);
}));
if (!dragSource)
// not exactly right, but alignment problems are hard to notice
dragSource = content;
this._dragActorSource = dragSource;
},
getDragActorSource: function() {
return this._dragActorSource;
},
getDragActor: function() {
return this.metaInfo['createIcon'](Main.overview.dashIconSize);
},
shellWorkspaceLaunch: function(params) {
if (this.provider.dragActivateResult)
this.provider.dragActivateResult(this.metaInfo.id, params);
else
this.provider.activateResult(this.metaInfo.id, this.terms);
}
});
const SearchResultsBase = new Lang.Class({
Name: 'SearchResultsBase',
_init: function(provider) {
this.provider = provider;
this._terms = [];
this.actor = new St.BoxLayout({ style_class: 'search-section',
vertical: true });
this._resultDisplayBin = new St.Bin({ x_fill: true,
y_fill: true });
this.actor.add(this._resultDisplayBin, { expand: true });
let separator = new Separator.HorizontalSeparator({ style_class: 'search-section-separator' });
this.actor.add(separator.actor);
},
destroy: function() {
this.actor.destroy();
this._terms = [];
},
_clearResultDisplay: function() {
},
clear: function() {
this._clearResultDisplay();
this.actor.hide();
},
_keyFocusIn: function(actor) {
this.emit('key-focus-in', actor);
},
_setMoreIconVisible: function(visible) {
},
updateSearch: function(providerResults, terms, callback) {
this._terms = terms;
if (providerResults.length == 0) {
this._clearResultDisplay();
this.actor.hide();
callback();
} else {
let maxResults = this._getMaxDisplayedResults();
let results = this.provider.filterResults(providerResults, maxResults);
let hasMoreResults = results.length < providerResults.length;
this.provider.getResultMetas(results, Lang.bind(this, function(metas) {
this.clear();
// To avoid CSS transitions causing flickering when
// the first search result stays the same, we hide the
// content while filling in the results.
this.actor.hide();
this._clearResultDisplay();
this._renderResults(metas);
this._setMoreIconVisible(hasMoreResults && this.provider.canLaunchSearch);
this.actor.show();
callback();
}));
}
}
});
const ListSearchResults = new Lang.Class({
Name: 'ListSearchResults',
Extends: SearchResultsBase,
_init: function(provider) {
this.parent(provider);
this._container = new St.BoxLayout({ style_class: 'search-section-content' });
this.providerIcon = new ProviderIcon(provider);
this.providerIcon.connect('key-focus-in', Lang.bind(this, this._keyFocusIn));
this.providerIcon.connect('clicked', Lang.bind(this,
function() {
provider.launchSearch(this._terms);
Main.overview.toggle();
}));
this._container.add(this.providerIcon, { x_fill: false,
y_fill: false,
x_align: St.Align.START,
y_align: St.Align.START });
this._content = new St.BoxLayout({ style_class: 'list-search-results',
vertical: true });
this._container.add(this._content, { expand: true });
this._resultDisplayBin.set_child(this._container);
},
_setMoreIconVisible: function(visible) {
this.providerIcon.moreIcon.visible = true;
},
_getMaxDisplayedResults: function() {
return MAX_LIST_SEARCH_RESULTS_ROWS;
},
_renderResults: function(metas) {
for (let i = 0; i < metas.length; i++) {
let display = new ListSearchResult(this.provider, metas[i], this._terms);
display.actor.connect('key-focus-in', Lang.bind(this, this._keyFocusIn));
this._content.add_actor(display.actor);
}
},
_clearResultDisplay: function () {
this._content.destroy_all_children();
},
getFirstResult: function() {
if (this._content.get_n_children() > 0)
return this._content.get_child_at_index(0)._delegate;
else
return null;
}
});
Signals.addSignalMethods(ListSearchResults.prototype);
const GridSearchResults = new Lang.Class({
Name: 'GridSearchResults',
Extends: SearchResultsBase,
_init: function(provider) {
this.parent(provider);
this._grid = new IconGrid.IconGrid({ rowLimit: MAX_GRID_SEARCH_RESULTS_ROWS,
xAlign: St.Align.START });
this._bin = new St.Bin({ x_align: St.Align.MIDDLE });
this._bin.set_child(this._grid.actor);
this._resultDisplayBin.set_child(this._bin);
},
_getMaxDisplayedResults: function() {
return this._grid.columnsForWidth(this._bin.width) * this._grid.getRowLimit();
},
_renderResults: function(metas) {
for (let i = 0; i < metas.length; i++) {
let display = new GridSearchResult(this.provider, metas[i], this._terms);
display.actor.connect('key-focus-in', Lang.bind(this, this._keyFocusIn));
this._grid.addItem(display);
}
},
_clearResultDisplay: function () {
this._grid.removeAll();
},
getFirstResult: function() {
if (this._grid.visibleItemsCount() > 0)
return this._grid.getItemAtIndex(0)._delegate;
else
return null;
}
});
Signals.addSignalMethods(GridSearchResults.prototype);
const SearchResults = new Lang.Class({
Name: 'SearchResults',
_init: function(searchSystem) {
this._searchSystem = searchSystem;
this._searchSystem.connect('search-updated', Lang.bind(this, this._updateResults));
this.actor = new St.BoxLayout({ name: 'searchResults',
vertical: true });
this._content = new St.BoxLayout({ name: 'searchResultsContent',
vertical: true });
this._contentBin = new MaxWidthBin({ name: 'searchResultsBin',
x_fill: true,
y_fill: true,
child: this._content });
let scrollChild = new St.BoxLayout();
scrollChild.add(this._contentBin, { expand: true });
this._scrollView = new St.ScrollView({ x_fill: true,
y_fill: false,
overlay_scrollbars: true,
style_class: 'search-display vfade' });
this._scrollView.set_policy(Gtk.PolicyType.NEVER, Gtk.PolicyType.AUTOMATIC);
this._scrollView.add_actor(scrollChild);
let action = new Clutter.PanAction({ interpolate: true });
action.connect('pan', Lang.bind(this, this._onPan));
this._scrollView.add_action(action);
this.actor.add(this._scrollView, { x_fill: true,
y_fill: true,
expand: true,
x_align: St.Align.START,
y_align: St.Align.START });
this._statusText = new St.Label({ style_class: 'search-statustext' });
this._statusBin = new St.Bin({ x_align: St.Align.MIDDLE,
y_align: St.Align.MIDDLE });
this._content.add(this._statusBin, { expand: true });
this._statusBin.add_actor(this._statusText);
this._providers = this._searchSystem.getProviders();
this._providerDisplays = {};
for (let i = 0; i < this._providers.length; i++) {
this.createProviderDisplay(this._providers[i]);
}
this._highlightDefault = false;
this._defaultResult = null;
},
_onPan: function(action) {
let [dist, dx, dy] = action.get_motion_delta(0);
let adjustment = this._scrollView.vscroll.adjustment;
adjustment.value -= (dy / this.actor.height) * adjustment.page_size;
return false;
},
_keyFocusIn: function(provider, actor) {
Util.ensureActorVisibleInScrollView(this._scrollView, actor);
},
createProviderDisplay: function(provider) {
let providerDisplay = null;
if (provider.appInfo) {
providerDisplay = new ListSearchResults(provider);
} else {
providerDisplay = new GridSearchResults(provider);
}
providerDisplay.connect('key-focus-in', Lang.bind(this, this._keyFocusIn));
this._providerDisplays[provider.id] = providerDisplay;
this._content.add(providerDisplay.actor);
},
destroyProviderDisplay: function(provider) {
this._providerDisplays[provider.id].destroy();
delete this._providerDisplays[provider.id];
},
_clearDisplay: function() {
for (let i = 0; i < this._providers.length; i++) {
let provider = this._providers[i];
let providerDisplay = this._providerDisplays[provider.id];
providerDisplay.clear();
}
},
reset: function() {
this._searchSystem.reset();
this._statusBin.hide();
this._clearDisplay();
this._defaultResult = null;
},
startingSearch: function() {
this.reset();
this._statusText.set_text(_("Searching…"));
this._statusBin.show();
},
_maybeSetInitialSelection: function() {
let newDefaultResult = null;
for (let i = 0; i < this._providers.length; i++) {
let provider = this._providers[i];
let display = this._providerDisplays[provider.id];
if (!display.actor.visible)
continue;
let firstResult = display.getFirstResult();
if (firstResult) {
newDefaultResult = firstResult;
break; // select this one!
}
}
if (newDefaultResult != this._defaultResult) {
if (this._defaultResult)
this._defaultResult.setSelected(false);
if (newDefaultResult)
newDefaultResult.setSelected(this._highlightDefault);
this._defaultResult = newDefaultResult;
}
},
_updateStatusText: function () {
let haveResults = false;
for (let i = 0; i < this._providers.length; i++) {
let provider = this._providers[i];
let display = this._providerDisplays[provider.id];
if (display.getFirstResult()) {
haveResults = true;
break;
}
}
if (!haveResults) {
this._statusText.set_text(_("No results."));
this._statusBin.show();
} else {
this._statusBin.hide();
}
},
_updateResults: function(searchSystem, results) {
let terms = searchSystem.getTerms();
let [provider, providerResults] = results;
let display = this._providerDisplays[provider.id];
display.updateSearch(providerResults, terms, Lang.bind(this, function() {
this._maybeSetInitialSelection();
this._updateStatusText();
}));
},
activateDefault: function() {
if (this._defaultResult)
this._defaultResult.activate();
},
highlightDefault: function(highlight) {
this._highlightDefault = highlight;
if (this._defaultResult)
this._defaultResult.setSelected(highlight);
},
navigateFocus: function(direction) {
let rtl = this.actor.get_text_direction() == Clutter.TextDirection.RTL;
if (direction == Gtk.DirectionType.TAB_BACKWARD ||
direction == (rtl ? Gtk.DirectionType.RIGHT
: Gtk.DirectionType.LEFT) ||
direction == Gtk.DirectionType.UP) {
this.actor.navigate_focus(null, direction, false);
return;
}
let from = this._defaultResult ? this._defaultResult.actor : null;
this.actor.navigate_focus(from, direction, false);
}
});
const ProviderIcon = new Lang.Class({
Name: 'ProviderIcon',
Extends: St.Button,
PROVIDER_ICON_SIZE: 48,
_init: function(provider) {
this.provider = provider;
this.parent({ style_class: 'search-provider-icon',
reactive: true,
can_focus: true,
accessible_name: provider.appInfo.get_name(),
track_hover: true });
this._content = new St.Widget({ layout_manager: new Clutter.BinLayout() });
this.set_child(this._content);
let rtl = (this.get_text_direction() == Clutter.TextDirection.RTL);
this.moreIcon = new St.Widget({ style_class: 'search-provider-icon-more',
visible: false,
x_align: rtl ? Clutter.ActorAlign.START : Clutter.ActorAlign.END,
y_align: Clutter.ActorAlign.END,
x_expand: true,
y_expand: true });
let icon = new St.Icon({ icon_size: this.PROVIDER_ICON_SIZE,
gicon: provider.appInfo.get_icon() });
this._content.add_actor(icon);
this._content.add_actor(this.moreIcon);
}
});

View File

@ -1,566 +0,0 @@
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
const Clutter = imports.gi.Clutter;
const Lang = imports.lang;
const Gtk = imports.gi.Gtk;
const Meta = imports.gi.Meta;
const Signals = imports.signals;
const St = imports.gi.St;
const Atk = imports.gi.Atk;
const DND = imports.ui.dnd;
const IconGrid = imports.ui.iconGrid;
const Main = imports.ui.main;
const Overview = imports.ui.overview;
const Separator = imports.ui.separator;
const Search = imports.ui.search;
const Util = imports.misc.util;
const MAX_LIST_SEARCH_RESULTS_ROWS = 3;
const MAX_GRID_SEARCH_RESULTS_ROWS = 1;
const MaxWidthBin = new Lang.Class({
Name: 'MaxWidthBin',
Extends: St.Bin,
vfunc_allocate: function(box, flags) {
let themeNode = this.get_theme_node();
let maxWidth = themeNode.get_max_width();
let availWidth = box.x2 - box.x1;
let adjustedBox = box;
if (availWidth > maxWidth) {
let excessWidth = availWidth - maxWidth;
adjustedBox.x1 += Math.floor(excessWidth / 2);
adjustedBox.x2 -= Math.floor(excessWidth / 2);
}
this.parent(adjustedBox, flags);
}
});
const SearchResult = new Lang.Class({
Name: 'SearchResult',
_init: function(provider, metaInfo, terms) {
this.provider = provider;
this.metaInfo = metaInfo;
this.terms = terms;
this.actor = new St.Button({ reactive: true,
can_focus: true,
track_hover: true,
x_align: St.Align.START,
y_fill: true });
this.actor._delegate = this;
this.actor.connect('clicked', Lang.bind(this, this.activate));
},
activate: function() {
this.provider.activateResult(this.metaInfo.id, this.terms);
Main.overview.toggle();
},
setSelected: function(selected) {
if (selected)
this.actor.add_style_pseudo_class('selected');
else
this.actor.remove_style_pseudo_class('selected');
}
});
const ListSearchResult = new Lang.Class({
Name: 'ListSearchResult',
Extends: SearchResult,
ICON_SIZE: 64,
_init: function(provider, metaInfo, terms) {
this.parent(provider, metaInfo, terms);
this.actor.style_class = 'list-search-result';
this.actor.x_fill = true;
let content = new St.BoxLayout({ style_class: 'list-search-result-content',
vertical: false });
this.actor.set_child(content);
// An icon for, or thumbnail of, content
let icon = this.metaInfo['createIcon'](this.ICON_SIZE);
if (icon) {
content.add(icon);
}
let details = new St.BoxLayout({ vertical: true });
content.add(details, { x_fill: true,
y_fill: false,
x_align: St.Align.START,
y_align: St.Align.MIDDLE });
let title = new St.Label({ style_class: 'list-search-result-title',
text: this.metaInfo['name'] })
details.add(title, { x_fill: false,
y_fill: false,
x_align: St.Align.START,
y_align: St.Align.START });
this.actor.label_actor = title;
if (this.metaInfo['description']) {
let description = new St.Label({ style_class: 'list-search-result-description' });
description.clutter_text.set_markup(this.metaInfo['description']);
details.add(description, { x_fill: false,
y_fill: false,
x_align: St.Align.START,
y_align: St.Align.END });
}
}
});
const GridSearchResult = new Lang.Class({
Name: 'GridSearchResult',
Extends: SearchResult,
_init: function(provider, metaInfo, terms) {
this.parent(provider, metaInfo, terms);
this.actor.style_class = 'grid-search-result';
let content = provider.createResultObject(metaInfo, terms);
let dragSource = null;
if (content == null) {
let actor = new St.Bin();
let icon = new IconGrid.BaseIcon(this.metaInfo['name'],
{ createIcon: this.metaInfo['createIcon'] });
actor.set_child(icon.actor);
actor.label_actor = icon.label;
dragSource = icon.icon;
content = { actor: actor, icon: icon };
} else {
if (content._delegate && content._delegate.getDragActorSource)
dragSource = content._delegate.getDragActorSource();
}
this.actor.set_child(content.actor);
this.actor.label_actor = content.actor.label_actor;
this.icon = content.icon;
let draggable = DND.makeDraggable(this.actor);
draggable.connect('drag-begin',
Lang.bind(this, function() {
Main.overview.beginItemDrag(this);
}));
draggable.connect('drag-cancelled',
Lang.bind(this, function() {
Main.overview.cancelledItemDrag(this);
}));
draggable.connect('drag-end',
Lang.bind(this, function() {
Main.overview.endItemDrag(this);
}));
if (!dragSource)
// not exactly right, but alignment problems are hard to notice
dragSource = content;
this._dragActorSource = dragSource;
},
getDragActorSource: function() {
return this._dragActorSource;
},
getDragActor: function() {
return this.metaInfo['createIcon'](Main.overview.dashIconSize);
},
shellWorkspaceLaunch: function(params) {
if (this.provider.dragActivateResult)
this.provider.dragActivateResult(this.metaInfo.id, params);
else
this.provider.activateResult(this.metaInfo.id, this.terms);
}
});
const SearchResultsBase = new Lang.Class({
Name: 'SearchResultsBase',
_init: function(provider) {
this.provider = provider;
this._terms = [];
this.actor = new St.BoxLayout({ style_class: 'search-section',
vertical: true });
this._resultDisplayBin = new St.Bin({ x_fill: true,
y_fill: true });
this.actor.add(this._resultDisplayBin, { expand: true });
let separator = new Separator.HorizontalSeparator({ style_class: 'search-section-separator' });
this.actor.add(separator.actor);
},
destroy: function() {
this.actor.destroy();
this._terms = [];
},
_clearResultDisplay: function() {
},
clear: function() {
this._clearResultDisplay();
this.actor.hide();
},
_keyFocusIn: function(icon) {
this.emit('key-focus-in', icon);
},
_setMoreIconVisible: function(visible) {
},
updateSearch: function(providerResults, terms, callback) {
this._terms = terms;
if (providerResults.length == 0) {
this._clearResultDisplay();
this.actor.hide();
callback();
} else {
let maxResults = this._getMaxDisplayedResults();
let results = providerResults.slice(0, maxResults);
let hasMoreResults = results.length < providerResults.length;
this.provider.getResultMetas(results, Lang.bind(this, function(metas) {
this.clear();
// To avoid CSS transitions causing flickering when
// the first search result stays the same, we hide the
// content while filling in the results.
this.actor.hide();
this._clearResultDisplay();
this._renderResults(metas);
this._setMoreIconVisible(hasMoreResults && this.provider.canLaunchSearch);
this.actor.show();
callback();
}));
}
}
});
const ListSearchResults = new Lang.Class({
Name: 'ListSearchResults',
Extends: SearchResultsBase,
_init: function(provider) {
this.parent(provider);
this._container = new St.BoxLayout({ style_class: 'search-section-content' });
this.providerIcon = new ProviderIcon(provider);
this.providerIcon.connect('clicked', Lang.bind(this,
function() {
provider.launchSearch(this._terms);
Main.overview.toggle();
}));
this._container.add(this.providerIcon, { x_fill: false,
y_fill: false,
x_align: St.Align.START,
y_align: St.Align.START });
this._content = new St.BoxLayout({ style_class: 'list-search-results',
vertical: true });
this._container.add(this._content, { expand: true });
this._resultDisplayBin.set_child(this._container);
},
_setMoreIconVisible: function(visible) {
this.providerIcon.moreIcon.visible = true;
},
_getMaxDisplayedResults: function() {
return MAX_LIST_SEARCH_RESULTS_ROWS;
},
_renderResults: function(metas) {
for (let i = 0; i < metas.length; i++) {
let display = new ListSearchResult(this.provider, metas[i], this._terms);
display.actor.connect('key-focus-in', Lang.bind(this, this._keyFocusIn));
this._content.add_actor(display.actor);
}
},
_clearResultDisplay: function () {
this._content.destroy_all_children();
},
getFirstResult: function() {
if (this._content.get_n_children() > 0)
return this._content.get_child_at_index(0)._delegate;
else
return null;
}
});
Signals.addSignalMethods(ListSearchResults.prototype);
const GridSearchResults = new Lang.Class({
Name: 'GridSearchResults',
Extends: SearchResultsBase,
_init: function(provider) {
this.parent(provider);
this._grid = new IconGrid.IconGrid({ rowLimit: MAX_GRID_SEARCH_RESULTS_ROWS,
xAlign: St.Align.START });
this._bin = new St.Bin({ x_align: St.Align.MIDDLE });
this._bin.set_child(this._grid.actor);
this._resultDisplayBin.set_child(this._bin);
},
_getMaxDisplayedResults: function() {
return this._grid.columnsForWidth(this._bin.width) * this._grid.getRowLimit();
},
_renderResults: function(metas) {
for (let i = 0; i < metas.length; i++) {
let display = new GridSearchResult(this.provider, metas[i], this._terms);
display.actor.connect('key-focus-in', Lang.bind(this, this._keyFocusIn));
this._grid.addItem(display);
}
},
_clearResultDisplay: function () {
this._grid.removeAll();
},
getFirstResult: function() {
if (this._grid.visibleItemsCount() > 0)
return this._grid.getItemAtIndex(0)._delegate;
else
return null;
}
});
Signals.addSignalMethods(GridSearchResults.prototype);
const SearchResults = new Lang.Class({
Name: 'SearchResults',
_init: function(searchSystem) {
this._searchSystem = searchSystem;
this._searchSystem.connect('search-updated', Lang.bind(this, this._updateResults));
this.actor = new St.BoxLayout({ name: 'searchResults',
vertical: true });
this._content = new St.BoxLayout({ name: 'searchResultsContent',
vertical: true });
this._contentBin = new MaxWidthBin({ name: 'searchResultsBin',
x_fill: true,
y_fill: true,
child: this._content });
let scrollChild = new St.BoxLayout();
scrollChild.add(this._contentBin, { expand: true });
this._scrollView = new St.ScrollView({ x_fill: true,
y_fill: false,
overlay_scrollbars: true,
style_class: 'search-display vfade' });
this._scrollView.set_policy(Gtk.PolicyType.NEVER, Gtk.PolicyType.AUTOMATIC);
this._scrollView.add_actor(scrollChild);
let action = new Clutter.PanAction({ interpolate: true });
action.connect('pan', Lang.bind(this, this._onPan));
this._scrollView.add_action(action);
this.actor.add(this._scrollView, { x_fill: true,
y_fill: true,
expand: true,
x_align: St.Align.START,
y_align: St.Align.START });
this._statusText = new St.Label({ style_class: 'search-statustext' });
this._statusBin = new St.Bin({ x_align: St.Align.MIDDLE,
y_align: St.Align.MIDDLE });
this._content.add(this._statusBin, { expand: true });
this._statusBin.add_actor(this._statusText);
this._providers = this._searchSystem.getProviders();
this._providerDisplays = {};
for (let i = 0; i < this._providers.length; i++) {
this.createProviderDisplay(this._providers[i]);
}
this._highlightDefault = false;
this._defaultResult = null;
},
_onPan: function(action) {
let [dist, dx, dy] = action.get_motion_delta(0);
let adjustment = this._scrollView.vscroll.adjustment;
adjustment.value -= (dy / this.actor.height) * adjustment.page_size;
return false;
},
_keyFocusIn: function(provider, icon) {
Util.ensureActorVisibleInScrollView(this._scrollView, icon);
},
createProviderDisplay: function(provider) {
let providerDisplay = null;
if (provider.appInfo) {
providerDisplay = new ListSearchResults(provider);
} else {
providerDisplay = new GridSearchResults(provider);
}
providerDisplay.connect('key-focus-in', Lang.bind(this, this._keyFocusIn));
this._providerDisplays[provider.id] = providerDisplay;
this._content.add(providerDisplay.actor);
},
destroyProviderDisplay: function(provider) {
this._providerDisplays[provider.id].destroy();
delete this._providerDisplays[provider.id];
},
_clearDisplay: function() {
for (let i = 0; i < this._providers.length; i++) {
let provider = this._providers[i];
let providerDisplay = this._providerDisplays[provider.id];
providerDisplay.clear();
}
},
reset: function() {
this._searchSystem.reset();
this._statusBin.hide();
this._clearDisplay();
this._defaultResult = null;
},
startingSearch: function() {
this.reset();
this._statusText.set_text(_("Searching…"));
this._statusBin.show();
},
_maybeSetInitialSelection: function() {
let newDefaultResult = null;
for (let i = 0; i < this._providers.length; i++) {
let provider = this._providers[i];
let display = this._providerDisplays[provider.id];
if (!display.actor.visible)
continue;
let firstResult = display.getFirstResult();
if (firstResult) {
newDefaultResult = firstResult;
break; // select this one!
}
}
if (newDefaultResult != this._defaultResult) {
if (this._defaultResult)
this._defaultResult.setSelected(false);
if (newDefaultResult)
newDefaultResult.setSelected(this._highlightDefault);
this._defaultResult = newDefaultResult;
}
},
_updateStatusText: function () {
let haveResults = false;
for (let i = 0; i < this._providers.length; i++) {
let provider = this._providers[i];
let display = this._providerDisplays[provider.id];
if (display.getFirstResult()) {
haveResults = true;
break;
}
}
if (!haveResults) {
this._statusText.set_text(_("No results."));
this._statusBin.show();
} else {
this._statusBin.hide();
}
},
_updateResults: function(searchSystem, results) {
let terms = searchSystem.getTerms();
let [provider, providerResults] = results;
let display = this._providerDisplays[provider.id];
display.updateSearch(providerResults, terms, Lang.bind(this, function() {
this._maybeSetInitialSelection();
this._updateStatusText();
}));
},
activateDefault: function() {
if (this._defaultResult)
this._defaultResult.activate();
},
highlightDefault: function(highlight) {
this._highlightDefault = highlight;
if (this._defaultResult)
this._defaultResult.setSelected(highlight);
},
navigateFocus: function(direction) {
let rtl = this.actor.get_text_direction() == Clutter.TextDirection.RTL;
if (direction == Gtk.DirectionType.TAB_BACKWARD ||
direction == (rtl ? Gtk.DirectionType.RIGHT
: Gtk.DirectionType.LEFT) ||
direction == Gtk.DirectionType.UP) {
this.actor.navigate_focus(null, direction, false);
return;
}
let from = this._defaultResult ? this._defaultResult.actor : null;
this.actor.navigate_focus(from, direction, false);
}
});
const ProviderIcon = new Lang.Class({
Name: 'ProviderIcon',
Extends: St.Button,
PROVIDER_ICON_SIZE: 48,
_init: function(provider) {
this.provider = provider;
this.parent({ style_class: 'search-provider-icon',
reactive: true,
can_focus: true,
accessible_name: provider.appInfo.get_name(),
track_hover: true });
this._content = new St.Widget({ layout_manager: new Clutter.BinLayout() });
this.set_child(this._content);
let rtl = (this.get_text_direction() == Clutter.TextDirection.RTL);
this.moreIcon = new St.Widget({ style_class: 'search-provider-icon-more',
visible: false,
x_align: rtl ? Clutter.ActorAlign.START : Clutter.ActorAlign.END,
y_align: Clutter.ActorAlign.END,
x_expand: true,
y_expand: true });
let icon = new St.Icon({ icon_size: this.PROVIDER_ICON_SIZE,
gicon: provider.appInfo.get_icon() });
this._content.add_actor(icon);
this._content.add_actor(this.moreIcon);
}
});

View File

@ -15,59 +15,63 @@ const Main = imports.ui.main;
const Screenshot = imports.ui.screenshot; const Screenshot = imports.ui.screenshot;
const ViewSelector = imports.ui.viewSelector; const ViewSelector = imports.ui.viewSelector;
const GnomeShellIface = <interface name="org.gnome.Shell"> const GnomeShellIface = '<node> \
<method name="Eval"> <interface name="org.gnome.Shell"> \
<arg type="s" direction="in" name="script" /> <method name="Eval"> \
<arg type="b" direction="out" name="success" /> <arg type="s" direction="in" name="script" /> \
<arg type="s" direction="out" name="result" /> <arg type="b" direction="out" name="success" /> \
</method> <arg type="s" direction="out" name="result" /> \
<method name="FocusSearch"/> </method> \
<method name="ShowOSD"> <method name="FocusSearch"/> \
<arg type="a{sv}" direction="in" name="params"/> <method name="ShowOSD"> \
</method> <arg type="a{sv}" direction="in" name="params"/> \
<method name="FocusApp"> </method> \
<arg type="s" direction="in" name="id"/> <method name="FocusApp"> \
</method> <arg type="s" direction="in" name="id"/> \
<method name="ShowApplications" /> </method> \
<method name="GrabAccelerator"> <method name="ShowApplications" /> \
<arg type="s" direction="in" name="accelerator"/> <method name="GrabAccelerator"> \
<arg type="u" direction="in" name="flags"/> <arg type="s" direction="in" name="accelerator"/> \
<arg type="u" direction="out" name="action"/> <arg type="u" direction="in" name="flags"/> \
</method> <arg type="u" direction="out" name="action"/> \
<method name="GrabAccelerators"> </method> \
<arg type="a(su)" direction="in" name="accelerators"/> <method name="GrabAccelerators"> \
<arg type="au" direction="out" name="actions"/> <arg type="a(su)" direction="in" name="accelerators"/> \
</method> <arg type="au" direction="out" name="actions"/> \
<method name="UngrabAccelerator"> </method> \
<arg type="u" direction="in" name="action"/> <method name="UngrabAccelerator"> \
<arg type="b" direction="out" name="success"/> <arg type="u" direction="in" name="action"/> \
</method> <arg type="b" direction="out" name="success"/> \
<signal name="AcceleratorActivated"> </method> \
<arg name="action" type="u" /> <signal name="AcceleratorActivated"> \
<arg name="deviceid" type="u" /> <arg name="action" type="u" /> \
<arg name="timestamp" type="u" /> <arg name="deviceid" type="u" /> \
</signal> <arg name="timestamp" type="u" /> \
<property name="Mode" type="s" access="read" /> </signal> \
<property name="OverviewActive" type="b" access="readwrite" /> <property name="Mode" type="s" access="read" /> \
<property name="ShellVersion" type="s" access="read" /> <property name="OverviewActive" type="b" access="readwrite" /> \
</interface>; <property name="ShellVersion" type="s" access="read" /> \
</interface> \
</node>';
const ScreenSaverIface = <interface name="org.gnome.ScreenSaver"> const ScreenSaverIface = '<node> \
<method name="Lock"> <interface name="org.gnome.ScreenSaver"> \
</method> <method name="Lock"> \
<method name="GetActive"> </method> \
<arg name="active" direction="out" type="b" /> <method name="GetActive"> \
</method> <arg name="active" direction="out" type="b" /> \
<method name="SetActive"> </method> \
<arg name="value" direction="in" type="b" /> <method name="SetActive"> \
</method> <arg name="value" direction="in" type="b" /> \
<method name="GetActiveTime"> </method> \
<arg name="value" direction="out" type="u" /> <method name="GetActiveTime"> \
</method> <arg name="value" direction="out" type="u" /> \
<signal name="ActiveChanged"> </method> \
<arg name="new_value" type="b" /> <signal name="ActiveChanged"> \
</signal> <arg name="new_value" type="b" /> \
</interface>; </signal> \
</interface> \
</node>';
const GnomeShell = new Lang.Class({ const GnomeShell = new Lang.Class({
Name: 'GnomeShellDBus', Name: 'GnomeShellDBus',
@ -246,41 +250,43 @@ const GnomeShell = new Lang.Class({
ShellVersion: Config.PACKAGE_VERSION ShellVersion: Config.PACKAGE_VERSION
}); });
const GnomeShellExtensionsIface = <interface name="org.gnome.Shell.Extensions"> const GnomeShellExtensionsIface = '<node> \
<method name="ListExtensions"> <interface name="org.gnome.Shell.Extensions"> \
<arg type="a{sa{sv}}" direction="out" name="extensions" /> <method name="ListExtensions"> \
</method> <arg type="a{sa{sv}}" direction="out" name="extensions" /> \
<method name="GetExtensionInfo"> </method> \
<arg type="s" direction="in" name="extension" /> <method name="GetExtensionInfo"> \
<arg type="a{sv}" direction="out" name="info" /> <arg type="s" direction="in" name="extension" /> \
</method> <arg type="a{sv}" direction="out" name="info" /> \
<method name="GetExtensionErrors"> </method> \
<arg type="s" direction="in" name="extension" /> <method name="GetExtensionErrors"> \
<arg type="as" direction="out" name="errors" /> <arg type="s" direction="in" name="extension" /> \
</method> <arg type="as" direction="out" name="errors" /> \
<signal name="ExtensionStatusChanged"> </method> \
<arg type="s" name="uuid"/> <signal name="ExtensionStatusChanged"> \
<arg type="i" name="state"/> <arg type="s" name="uuid"/> \
<arg type="s" name="error"/> <arg type="i" name="state"/> \
</signal> <arg type="s" name="error"/> \
<method name="InstallRemoteExtension"> </signal> \
<arg type="s" direction="in" name="uuid"/> <method name="InstallRemoteExtension"> \
<arg type="s" direction="out" name="result"/> <arg type="s" direction="in" name="uuid"/> \
</method> <arg type="s" direction="out" name="result"/> \
<method name="UninstallExtension"> </method> \
<arg type="s" direction="in" name="uuid"/> <method name="UninstallExtension"> \
<arg type="b" direction="out" name="success"/> <arg type="s" direction="in" name="uuid"/> \
</method> <arg type="b" direction="out" name="success"/> \
<method name="LaunchExtensionPrefs"> </method> \
<arg type="s" direction="in" name="uuid"/> <method name="LaunchExtensionPrefs"> \
</method> <arg type="s" direction="in" name="uuid"/> \
<method name="ReloadExtension"> </method> \
<arg type="s" direction="in" name="uuid"/> <method name="ReloadExtension"> \
</method> <arg type="s" direction="in" name="uuid"/> \
<method name="CheckForUpdates"> </method> \
</method> <method name="CheckForUpdates"> \
<property name="ShellVersion" type="s" access="read" /> </method> \
</interface>; <property name="ShellVersion" type="s" access="read" /> \
</interface> \
</node>';
const GnomeShellExtensions = new Lang.Class({ const GnomeShellExtensions = new Lang.Class({
Name: 'GnomeShellExtensionsDBus', Name: 'GnomeShellExtensionsDBus',

View File

@ -521,36 +521,38 @@ const ShellProcessesDialog = new Lang.Class({
}); });
Signals.addSignalMethods(ShellProcessesDialog.prototype); Signals.addSignalMethods(ShellProcessesDialog.prototype);
const GnomeShellMountOpIface = <interface name="org.Gtk.MountOperationHandler"> const GnomeShellMountOpIface = '<node> \
<method name="AskPassword"> <interface name="org.Gtk.MountOperationHandler"> \
<arg type="s" direction="in" name="object_id"/> <method name="AskPassword"> \
<arg type="s" direction="in" name="message"/> <arg type="s" direction="in" name="object_id"/> \
<arg type="s" direction="in" name="icon_name"/> <arg type="s" direction="in" name="message"/> \
<arg type="s" direction="in" name="default_user"/> <arg type="s" direction="in" name="icon_name"/> \
<arg type="s" direction="in" name="default_domain"/> <arg type="s" direction="in" name="default_user"/> \
<arg type="u" direction="in" name="flags"/> <arg type="s" direction="in" name="default_domain"/> \
<arg type="u" direction="out" name="response"/> <arg type="u" direction="in" name="flags"/> \
<arg type="a{sv}" direction="out" name="response_details"/> <arg type="u" direction="out" name="response"/> \
</method> <arg type="a{sv}" direction="out" name="response_details"/> \
<method name="AskQuestion"> </method> \
<arg type="s" direction="in" name="object_id"/> <method name="AskQuestion"> \
<arg type="s" direction="in" name="message"/> <arg type="s" direction="in" name="object_id"/> \
<arg type="s" direction="in" name="icon_name"/> <arg type="s" direction="in" name="message"/> \
<arg type="as" direction="in" name="choices"/> <arg type="s" direction="in" name="icon_name"/> \
<arg type="u" direction="out" name="response"/> <arg type="as" direction="in" name="choices"/> \
<arg type="a{sv}" direction="out" name="response_details"/> <arg type="u" direction="out" name="response"/> \
</method> <arg type="a{sv}" direction="out" name="response_details"/> \
<method name="ShowProcesses"> </method> \
<arg type="s" direction="in" name="object_id"/> <method name="ShowProcesses"> \
<arg type="s" direction="in" name="message"/> <arg type="s" direction="in" name="object_id"/> \
<arg type="s" direction="in" name="icon_name"/> <arg type="s" direction="in" name="message"/> \
<arg type="ai" direction="in" name="application_pids"/> <arg type="s" direction="in" name="icon_name"/> \
<arg type="as" direction="in" name="choices"/> <arg type="ai" direction="in" name="application_pids"/> \
<arg type="u" direction="out" name="response"/> <arg type="as" direction="in" name="choices"/> \
<arg type="a{sv}" direction="out" name="response_details"/> <arg type="u" direction="out" name="response"/> \
</method> <arg type="a{sv}" direction="out" name="response_details"/> \
<method name="Close"/> </method> \
</interface>; <method name="Close"/> \
</interface> \
</node>';
const ShellMountOperationType = { const ShellMountOperationType = {
NONE: 0, NONE: 0,

View File

@ -43,9 +43,7 @@ const ATIndicator = new Lang.Class({
this._hbox = new St.BoxLayout({ style_class: 'panel-status-menu-box' }); this._hbox = new St.BoxLayout({ style_class: 'panel-status-menu-box' });
this._hbox.add_child(new St.Icon({ style_class: 'system-status-icon', this._hbox.add_child(new St.Icon({ style_class: 'system-status-icon',
icon_name: 'preferences-desktop-accessibility-symbolic' })); icon_name: 'preferences-desktop-accessibility-symbolic' }));
this._hbox.add_child(new St.Label({ text: '\u25BE', this._hbox.add_child(PopupMenu.unicodeArrow(St.Side.BOTTOM));
y_expand: true,
y_align: Clutter.ActorAlign.CENTER }));
this.actor.add_child(this._hbox); this.actor.add_child(this._hbox);

View File

@ -9,7 +9,6 @@ const St = imports.gi.St;
const Main = imports.ui.main; const Main = imports.ui.main;
const MessageTray = imports.ui.messageTray; const MessageTray = imports.ui.messageTray;
const NotificationDaemon = imports.ui.notificationDaemon;
const PanelMenu = imports.ui.panelMenu; const PanelMenu = imports.ui.panelMenu;
const PopupMenu = imports.ui.popupMenu; const PopupMenu = imports.ui.popupMenu;
@ -55,13 +54,13 @@ const Indicator = new Lang.Class({
this._item.actor.visible = on; this._item.actor.visible = on;
if (on) if (on)
this._item.status.text = ngettext("%d Connected Device", "%d Connected Devices").format(nDevices); this._item.status.text = ngettext("%d Connected Device", "%d Connected Devices", nDevices).format(nDevices);
}, },
_ensureSource: function() { _ensureSource: function() {
if (!this._source) { if (!this._source) {
this._source = new MessageTray.Source(_("Bluetooth"), 'bluetooth-active'); this._source = new MessageTray.Source(_("Bluetooth"), 'bluetooth-active');
this._source.policy = new NotificationDaemon.NotificationApplicationPolicy('gnome-bluetooth-panel'); this._source.policy = new MessageTray.NotificationApplicationPolicy('gnome-bluetooth-panel');
Main.messageTray.add(this._source); Main.messageTray.add(this._source);
} }
}, },
@ -106,8 +105,8 @@ const AuthNotification = new Lang.Class({
this._devicePath = device_path; this._devicePath = device_path;
this.addBody(_("Device %s wants to pair with this computer").format(long_name)); this.addBody(_("Device %s wants to pair with this computer").format(long_name));
this.addButton('allow', _("Allow")); this.addAction('allow', _("Allow"));
this.addButton('deny', _("Deny")); this.addAction('deny', _("Deny"));
this.connect('action-invoked', Lang.bind(this, function(self, action) { this.connect('action-invoked', Lang.bind(this, function(self, action) {
if (action == 'allow') if (action == 'allow')
@ -134,9 +133,9 @@ const AuthServiceNotification = new Lang.Class({
this._devicePath = device_path; this._devicePath = device_path;
this.addBody(_("Device %s wants access to the service '%s'").format(long_name, uuid)); this.addBody(_("Device %s wants access to the service '%s'").format(long_name, uuid));
this.addButton('always-grant', _("Always grant access")); this.addAction('always-grant', _("Always grant access"));
this.addButton('grant', _("Grant this time only")); this.addAction('grant', _("Grant this time only"));
this.addButton('reject', _("Reject")); this.addAction('reject', _("Reject"));
this.connect('action-invoked', Lang.bind(this, function(self, action) { this.connect('action-invoked', Lang.bind(this, function(self, action) {
switch (action) { switch (action) {
@ -173,8 +172,8 @@ const ConfirmNotification = new Lang.Class({
this.addBody(_("Please confirm whether the Passkey '%06d' matches the one on the device.").format(pin)); this.addBody(_("Please confirm whether the Passkey '%06d' matches the one on the device.").format(pin));
/* Translators: this is the verb, not the noun */ /* Translators: this is the verb, not the noun */
this.addButton('matches', _("Matches")); this.addAction('matches', _("Matches"));
this.addButton('does-not-match', _("Does not match")); this.addAction('does-not-match', _("Does not match"));
this.connect('action-invoked', Lang.bind(this, function(self, action) { this.connect('action-invoked', Lang.bind(this, function(self, action) {
if (action == 'matches') if (action == 'matches')
@ -208,47 +207,48 @@ const PinNotification = new Lang.Class({
let key = event.get_key_symbol(); let key = event.get_key_symbol();
if (key == Clutter.KEY_Return) { if (key == Clutter.KEY_Return) {
if (this._canActivateOkButton()) if (this._canActivateOkButton())
this.emit('action-invoked', 'ok'); this._ok();
return true; return true;
} else if (key == Clutter.KEY_Escape) { } else if (key == Clutter.KEY_Escape) {
this.emit('action-invoked', 'cancel'); this._cancel();
return true; return true;
} }
return false; return false;
})); }));
this.addActor(this._entry); this.addActor(this._entry);
this.addButton('ok', _("OK")); let okButton = this.addAction(_("OK"), Lang.bind(this, this._ok));
this.addButton('cancel', _("Cancel")); this.addAction(_("Cancel"), Lang.bind(this, this._cancel));
this.setButtonSensitive('ok', this._canActivateOkButton()); okButton.reactive = this._canActivateOkButton();
this._entry.clutter_text.connect('text-changed', Lang.bind(this, this._entry.clutter_text.connect('text-changed', Lang.bind(this, function() {
function() { okButton.reactive = this._canActivateOkButton();
this.setButtonSensitive('ok', this._canActivateOkButton());
}));
this.connect('action-invoked', Lang.bind(this, function(self, action) {
if (action == 'ok') {
if (this._numeric) {
let num = parseInt(this._entry.text);
if (isNaN(num)) {
// user reply was empty, or was invalid
// cancel the operation
num = -1;
}
this._applet.agent_reply_passkey(this._devicePath, num);
} else
this._applet.agent_reply_pincode(this._devicePath, this._entry.text);
} else {
if (this._numeric)
this._applet.agent_reply_passkey(this._devicePath, -1);
else
this._applet.agent_reply_pincode(this._devicePath, null);
}
this.destroy();
})); }));
}, },
_ok: function() {
if (this._numeric) {
let num = parseInt(this._entry.text);
if (isNaN(num)) {
// user reply was empty, or was invalid
// cancel the operation
num = -1;
}
this._applet.agent_reply_passkey(this._devicePath, num);
} else {
this._applet.agent_reply_pincode(this._devicePath, this._entry.text);
}
this.destroy();
},
_cancel: function() {
if (this._numeric)
this._applet.agent_reply_passkey(this._devicePath, -1);
else
this._applet.agent_reply_pincode(this._devicePath, null);
this.destroy();
},
_canActivateOkButton: function() { _canActivateOkButton: function() {
// PINs have a fixed length of 6 // PINs have a fixed length of 6
if (this._numeric) if (this._numeric)

View File

@ -11,9 +11,11 @@ const Slider = imports.ui.slider;
const BUS_NAME = 'org.gnome.SettingsDaemon.Power'; const BUS_NAME = 'org.gnome.SettingsDaemon.Power';
const OBJECT_PATH = '/org/gnome/SettingsDaemon/Power'; const OBJECT_PATH = '/org/gnome/SettingsDaemon/Power';
const BrightnessInterface = <interface name="org.gnome.SettingsDaemon.Power.Screen"> const BrightnessInterface = '<node> \
<property name='Brightness' type='i' access='readwrite'/> <interface name="org.gnome.SettingsDaemon.Power.Screen"> \
</interface>; <property name="Brightness" type="i" access="readwrite"/> \
</interface> \
</node>';
const BrightnessProxy = Gio.DBusProxy.makeProxyWrapper(BrightnessInterface); const BrightnessProxy = Gio.DBusProxy.makeProxyWrapper(BrightnessInterface);

View File

@ -41,11 +41,13 @@ const MAX_INPUT_SOURCE_ACTIVATION_TIME = 4000; // ms
const BUS_NAME = 'org.gnome.SettingsDaemon.Keyboard'; const BUS_NAME = 'org.gnome.SettingsDaemon.Keyboard';
const OBJECT_PATH = '/org/gnome/SettingsDaemon/Keyboard'; const OBJECT_PATH = '/org/gnome/SettingsDaemon/Keyboard';
const KeyboardManagerInterface = <interface name="org.gnome.SettingsDaemon.Keyboard"> const KeyboardManagerInterface = '<node> \
<method name="SetInputSource"> <interface name="org.gnome.SettingsDaemon.Keyboard"> \
<arg type="u" direction="in" /> <method name="SetInputSource"> \
</method> <arg type="u" direction="in" /> \
</interface>; </method> \
</interface> \
</node>';
const KeyboardManagerProxy = Gio.DBusProxy.makeProxyWrapper(KeyboardManagerInterface); const KeyboardManagerProxy = Gio.DBusProxy.makeProxyWrapper(KeyboardManagerInterface);
@ -339,9 +341,7 @@ const InputSourceIndicator = new Lang.Class({
this._hbox = new St.BoxLayout({ style_class: 'panel-status-menu-box' }); this._hbox = new St.BoxLayout({ style_class: 'panel-status-menu-box' });
this._hbox.add_child(this._container); this._hbox.add_child(this._container);
this._hbox.add_child(new St.Label({ text: '\u25BE', this._hbox.add_child(PopupMenu.unicodeArrow(St.Side.BOTTOM));
y_expand: true,
y_align: Clutter.ActorAlign.CENTER }));
this.actor.add_child(this._hbox); this.actor.add_child(this._hbox);
this.actor.add_style_class_name('panel-status-button'); this.actor.add_style_class_name('panel-status-button');

View File

@ -16,7 +16,6 @@ const Main = imports.ui.main;
const PanelMenu = imports.ui.panelMenu; const PanelMenu = imports.ui.panelMenu;
const PopupMenu = imports.ui.popupMenu; const PopupMenu = imports.ui.popupMenu;
const MessageTray = imports.ui.messageTray; const MessageTray = imports.ui.messageTray;
const NotificationDaemon = imports.ui.notificationDaemon;
const ModalDialog = imports.ui.modalDialog; const ModalDialog = imports.ui.modalDialog;
const ModemManager = imports.misc.modemManager; const ModemManager = imports.misc.modemManager;
const Util = imports.misc.util; const Util = imports.misc.util;
@ -73,6 +72,27 @@ function ssidToLabel(ssid) {
return label; return label;
} }
function ensureActiveConnectionProps(active, settings) {
if (!active._connection) {
active._connection = settings.get_connection_by_path(active.connection);
// This list is guaranteed to have only one device in it.
let device = active.get_devices()[0]._delegate;
active._primaryDevice = device;
}
}
function createSettingsAction(label, device) {
let item = new PopupMenu.PopupMenuItem(label);
item.connect('activate', function() {
Util.spawnApp(['gnome-control-center', 'network', 'show-device',
device.get_path()]);
});
return item;
}
const NMConnectionItem = new Lang.Class({ const NMConnectionItem = new Lang.Class({
Name: 'NMConnectionItem', Name: 'NMConnectionItem',
@ -170,8 +190,7 @@ const NMConnectionSection = new Lang.Class({
}, },
destroy: function() { destroy: function() {
this.statusItem.destroy(); this.item.destroy();
this.section.destroy();
}, },
_sync: function() { _sync: function() {
@ -268,12 +287,12 @@ const NMConnectionDevice = new Lang.Class({
Extends: NMConnectionSection, Extends: NMConnectionSection,
Abstract: true, Abstract: true,
_init: function(client, device) { _init: function(client, device, settings) {
this.parent(client); this.parent(client);
this._device = device; this._device = device;
this._settings = settings;
this._autoConnectItem = this.item.menu.addAction(_("Connect"), Lang.bind(this, this._autoConnect)); this._autoConnectItem = this.item.menu.addAction(_("Connect"), Lang.bind(this, this._autoConnect));
this.item.menu.addSettingsAction(_("Network Settings"), 'gnome-network-panel.desktop');
this._stateChangedId = this._device.connect('state-changed', Lang.bind(this, this._deviceStateChanged)); this._stateChangedId = this._device.connect('state-changed', Lang.bind(this, this._deviceStateChanged));
this._activeConnectionChangedId = this._device.connect('notify::active-connection', Lang.bind(this, this._activeConnectionChanged)); this._activeConnectionChangedId = this._device.connect('notify::active-connection', Lang.bind(this, this._activeConnectionChanged));
@ -301,6 +320,7 @@ const NMConnectionDevice = new Lang.Class({
this._activeConnection = this._device.active_connection; this._activeConnection = this._device.active_connection;
if (this._activeConnection) { if (this._activeConnection) {
ensureActiveConnectionProps(this._activeConnection, this._settings);
let item = this._connectionItems.get(this._activeConnection._connection.get_uuid()); let item = this._connectionItems.get(this._activeConnection._connection.get_uuid());
item.setActiveConnection(this._activeConnection); item.setActiveConnection(this._activeConnection);
} }
@ -356,8 +376,9 @@ const NMConnectionDevice = new Lang.Class({
switch(this._device.state) { switch(this._device.state) {
case NetworkManager.DeviceState.DISCONNECTED: case NetworkManager.DeviceState.DISCONNECTED:
return _("Off");
case NetworkManager.DeviceState.ACTIVATED: case NetworkManager.DeviceState.ACTIVATED:
return ''; return this.parent();
case NetworkManager.DeviceState.UNMANAGED: case NetworkManager.DeviceState.UNMANAGED:
/* 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) */
@ -399,8 +420,11 @@ const NMDeviceModem = new Lang.Class({
Extends: NMConnectionDevice, Extends: NMConnectionDevice,
category: NMConnectionCategory.WWAN, category: NMConnectionCategory.WWAN,
_init: function(client, device) { _init: function(client, device, settings) {
this.parent(client, device); this.parent(client, device, settings);
this.item.menu.addMenuItem(createSettingsAction(_("Mobile Broadband Settings"), device));
this._mobileDevice = null; this._mobileDevice = null;
let capabilities = device.current_capabilities; let capabilities = device.current_capabilities;
@ -414,16 +438,7 @@ const NMDeviceModem = new Lang.Class({
this._mobileDevice = new ModemManager.ModemGsm(device.udi); this._mobileDevice = new ModemManager.ModemGsm(device.udi);
if (this._mobileDevice) { if (this._mobileDevice) {
this._operatorNameId = this._mobileDevice.connect('notify::operator-name', Lang.bind(this, function() { this._operatorNameId = this._mobileDevice.connect('notify::operator-name', Lang.bind(this, this._sync));
if (this._operatorItem) {
let name = this._mobileDevice.operator_name;
if (name) {
this._operatorItem.label.text = name;
this._operatorItem.actor.show();
} else
this._operatorItem.actor.hide();
}
}));
this._signalQualityId = this._mobileDevice.connect('notify::signal-quality', Lang.bind(this, function() { this._signalQualityId = this._mobileDevice.connect('notify::signal-quality', Lang.bind(this, function() {
this.emit('icon-changed'); this.emit('icon-changed');
})); }));
@ -448,6 +463,20 @@ const NMDeviceModem = new Lang.Class({
this.parent(); this.parent();
}, },
_getStatus: function() {
if (!this._client.wwan_hardware_enabled)
return _("Hardware Disabled");
else if (!this._client.wwan_enabled)
/* Translators: this is for a network device that cannot be activated
because it's disabled by rfkill (airplane mode) */
return _("Disabled");
else if (this._device.state == NetworkManager.DeviceState.ACTIVATED &&
this._mobileDevice && this._mobileDevice.operator_name)
return this._mobileDevice.operator_name;
else
return this.parent();
},
_getMenuIcon: function() { _getMenuIcon: function() {
if (this._device.active_connection) if (this._device.active_connection)
return this.getIndicatorIcon(); return this.getIndicatorIcon();
@ -477,6 +506,12 @@ const NMDeviceBluetooth = new Lang.Class({
Extends: NMConnectionDevice, Extends: NMConnectionDevice,
category: NMConnectionCategory.WWAN, category: NMConnectionCategory.WWAN,
_init: function(client, device, settings) {
this.parent(client, device, settings);
this.item.menu.addMenuItem(createSettingsAction(_("Mobile Broadband Settings"), device));
},
_autoConnect: function() { _autoConnect: function() {
// FIXME: DUN devices are configured like modems, so // FIXME: DUN devices are configured like modems, so
// We need to spawn the mobile wizard // We need to spawn the mobile wizard
@ -514,31 +549,30 @@ const NMWirelessDialogItem = new Lang.Class({
this._network = network; this._network = network;
this._ap = network.accessPoints[0]; this._ap = network.accessPoints[0];
this.actor = new St.Button({ style_class: 'nm-dialog-item', this.actor = new St.BoxLayout({ style_class: 'nm-dialog-item',
can_focus: true, can_focus: true,
x_fill: true }); reactive: true });
this.actor.connect('key-focus-in', Lang.bind(this, function() { this.actor.connect('key-focus-in', Lang.bind(this, function() {
this.emit('selected'); this.emit('selected');
})); }));
this.actor.connect('clicked', Lang.bind(this, function() { let action = new Clutter.ClickAction();
action.connect('clicked', Lang.bind(this, function() {
this.actor.grab_key_focus(); this.actor.grab_key_focus();
})); }));
this.actor.add_action(action);
this._content = new St.BoxLayout({ style_class: 'nm-dialog-item-box' });
this.actor.set_child(this._content);
let title = ssidToLabel(this._ap.get_ssid()); let title = ssidToLabel(this._ap.get_ssid());
this._label = new St.Label({ text: title }); this._label = new St.Label({ text: title });
this.actor.label_actor = this._label; this.actor.label_actor = this._label;
this._content.add(this._label, { x_align: St.Align.START }); this.actor.add(this._label, { x_align: St.Align.START });
this._selectedIcon = new St.Icon({ style_class: 'nm-dialog-icon', this._selectedIcon = new St.Icon({ style_class: 'nm-dialog-icon',
icon_name: 'object-select-symbolic' }); icon_name: 'object-select-symbolic' });
this._content.add(this._selectedIcon); this.actor.add(this._selectedIcon);
this._icons = new St.BoxLayout({ style_class: 'nm-dialog-icons' }); this._icons = new St.BoxLayout({ style_class: 'nm-dialog-icons' });
this._content.add(this._icons, { expand: true, x_fill: false, x_align: St.Align.END }); this.actor.add(this._icons, { expand: true, x_fill: false, x_align: St.Align.END });
this._secureIcon = new St.Icon({ style_class: 'nm-dialog-icon' }); this._secureIcon = new St.Icon({ style_class: 'nm-dialog-icon' });
if (this._ap._secType != NMAccessPointSecurity.NONE) if (this._ap._secType != NMAccessPointSecurity.NONE)
@ -547,18 +581,24 @@ const NMWirelessDialogItem = new Lang.Class({
this._signalIcon = new St.Icon({ style_class: 'nm-dialog-icon' }); this._signalIcon = new St.Icon({ style_class: 'nm-dialog-icon' });
this._icons.add_actor(this._signalIcon); this._icons.add_actor(this._signalIcon);
this._sync();
},
_sync: function() {
this._signalIcon.icon_name = this._getSignalIcon();
}, },
updateBestAP: function(ap) { updateBestAP: function(ap) {
this._ap = ap; this._ap = ap;
this._signalIcon.icon_name = this._getIcon(); this._sync();
}, },
setActive: function(isActive) { setActive: function(isActive) {
this._selectedIcon.opacity = isActive ? 255 : 0; this._selectedIcon.opacity = isActive ? 255 : 0;
}, },
_getIcon: function() { _getSignalIcon: function() {
if (this._ap.mode == NM80211Mode.ADHOC) if (this._ap.mode == NM80211Mode.ADHOC)
return 'network-workgroup-symbolic'; return 'network-workgroup-symbolic';
else else
@ -915,13 +955,13 @@ const NMWirelessDialog = new Lang.Class({
_selectNetwork: function(network) { _selectNetwork: function(network) {
if (this._selectedNetwork) if (this._selectedNetwork)
this._selectedNetwork.item.actor.checked = false; this._selectedNetwork.item.actor.remove_style_pseudo_class('selected');
this._selectedNetwork = network; this._selectedNetwork = network;
this._updateSensitivity(); this._updateSensitivity();
if (this._selectedNetwork) if (this._selectedNetwork)
this._selectedNetwork.item.actor.checked = true; this._selectedNetwork.item.actor.add_style_pseudo_class('selected');
}, },
_createNetworkItem: function(network) { _createNetworkItem: function(network) {
@ -952,9 +992,10 @@ const NMDeviceWireless = new Lang.Class({
this._toggleItem.connect('activate', Lang.bind(this, this._toggleWifi)); this._toggleItem.connect('activate', Lang.bind(this, this._toggleWifi));
this.item.menu.addMenuItem(this._toggleItem); this.item.menu.addMenuItem(this._toggleItem);
this.item.menu.addSettingsAction(_("Network Settings"), 'gnome-network-panel.desktop'); this.item.menu.addMenuItem(createSettingsAction(_("Wi-Fi Settings"), device));
this._wirelessEnabledChangedId = this._device.connect('notify::wireless-enabled', Lang.bind(this, this._sync)); this._wirelessEnabledChangedId = this._client.connect('notify::wireless-enabled', Lang.bind(this, this._sync));
this._wirelessHwEnabledChangedId = this._client.connect('notify::wireless-hardware-enabled', Lang.bind(this, this._sync));
this._activeApChangedId = this._device.connect('notify::active-access-point', Lang.bind(this, this._activeApChanged)); this._activeApChangedId = this._device.connect('notify::active-access-point', Lang.bind(this, this._activeApChanged));
this._stateChangedId = this._device.connect('state-changed', Lang.bind(this, this._deviceStateChanged)); this._stateChangedId = this._device.connect('state-changed', Lang.bind(this, this._deviceStateChanged));
@ -974,6 +1015,14 @@ const NMDeviceWireless = new Lang.Class({
this._activeAccessPoint.disconnect(this._strengthChangedId); this._activeAccessPoint.disconnect(this._strengthChangedId);
this._strengthChangedId = 0; this._strengthChangedId = 0;
} }
if (this._wirelessEnabledChangedId) {
this._client.disconnect(this._wirelessEnabledChangedId);
this._wirelessEnabledChangedId = 0;
}
if (this._wirelessHwEnabledChangedId) {
this._client.disconnect(this._wirelessHwEnabledChangedId);
this._wirelessHwEnabledChangedId = 0;
}
this.item.destroy(); this.item.destroy();
}, },
@ -1032,6 +1081,7 @@ const NMDeviceWireless = new Lang.Class({
_sync: function() { _sync: function() {
this._toggleItem.label.text = this._client.wireless_enabled ? _("Turn Off") : _("Turn On"); this._toggleItem.label.text = this._client.wireless_enabled ? _("Turn Off") : _("Turn On");
this._toggleItem.actor.visible = this._client.wireless_hardware_enabled;
this.item.status.text = this._getStatus(); this.item.status.text = this._getStatus();
this.item.icon.icon_name = this._getMenuIcon(); this.item.icon.icon_name = this._getMenuIcon();
@ -1045,10 +1095,17 @@ const NMDeviceWireless = new Lang.Class({
_getStatus: function() { _getStatus: function() {
let ap = this._device.active_access_point; let ap = this._device.active_access_point;
if (!ap)
return _("Off"); // XXX -- interpret actual status
return ssidToLabel(ap.get_ssid()); if (ap)
return ssidToLabel(ap.get_ssid());
else if (!this._client.wireless_hardware_enabled)
return _("Hardware Disabled");
else if (!this._client.wireless_enabled)
return _("Off");
else if (this._device.state == NetworkManager.DeviceState.DISCONNECTED)
return _("Not Connected");
else
return '';
}, },
_getMenuIcon: function() { _getMenuIcon: function() {
@ -1059,7 +1116,8 @@ const NMDeviceWireless = new Lang.Class({
}, },
getIndicatorIcon: function() { getIndicatorIcon: function() {
if (this._device.active_connection.state == NetworkManager.ActiveConnectionState.ACTIVATING) if (this._device.state >= NetworkManager.DeviceState.PREPARE &&
this._device.state < NetworkManager.DeviceState.ACTIVATED)
return 'network-wireless-acquiring-symbolic'; return 'network-wireless-acquiring-symbolic';
let ap = this._device.active_access_point; let ap = this._device.active_access_point;
@ -1117,6 +1175,7 @@ const NMVPNConnectionItem = new Lang.Class({
this.emit('activation-failed', reason); this.emit('activation-failed', reason);
} }
this.emit('icon-changed');
this.parent(); this.parent();
}, },
@ -1306,7 +1365,7 @@ const NMApplet = new Lang.Class({
if (!this._source) { if (!this._source) {
this._source = new MessageTray.Source(_("Network Manager"), this._source = new MessageTray.Source(_("Network Manager"),
'network-transmit-receive'); 'network-transmit-receive');
this._source.policy = new NotificationDaemon.NotificationApplicationPolicy('gnome-network-panel'); this._source.policy = new MessageTray.NotificationApplicationPolicy('gnome-network-panel');
this._source.connect('destroy', Lang.bind(this, function() { this._source.connect('destroy', Lang.bind(this, function() {
this._source = null; this._source = null;
@ -1418,28 +1477,18 @@ const NMApplet = new Lang.Class({
devices.splice(pos, 1); devices.splice(pos, 1);
}, },
_ensureActiveConnectionProps: function(a) {
if (!a._connection) {
a._connection = this._settings.get_connection_by_path(a.connection);
// This list is guaranteed to have only one device in it.
let device = a.get_devices()[0]._delegate;
a._primaryDevice = device;
}
},
_getMainConnection: function() { _getMainConnection: function() {
let connection; let connection;
connection = this._client.get_primary_connection(); connection = this._client.get_primary_connection();
if (connection) { if (connection) {
this._ensureActiveConnectionProps(connection); ensureActiveConnectionProps(connection, this._settings);
return connection; return connection;
} }
connection = this._client.get_activating_connection(); connection = this._client.get_activating_connection();
if (connection) { if (connection) {
this._ensureActiveConnectionProps(connection); ensureActiveConnectionProps(connection, this._settings);
return connection; return connection;
} }
@ -1475,7 +1524,7 @@ const NMApplet = new Lang.Class({
return (a instanceof NMClient.VPNConnection); return (a instanceof NMClient.VPNConnection);
}); });
vpnConnections.forEach(Lang.bind(this, function(a) { vpnConnections.forEach(Lang.bind(this, function(a) {
this._ensureActiveConnectionProps(a); ensureActiveConnectionProps(a, this._settings);
})); }));
this._vpnSection.setActiveConnections(vpnConnections); this._vpnSection.setActiveConnections(vpnConnections);
@ -1578,6 +1627,7 @@ const NMApplet = new Lang.Class({
_updateIcon: function() { _updateIcon: function() {
if (!this._client.networking_enabled || !this._mainConnection) { if (!this._client.networking_enabled || !this._mainConnection) {
this._primaryIndicator.icon_name = 'network-offline-symbolic'; this._primaryIndicator.icon_name = 'network-offline-symbolic';
this._primaryIndicator.visible = true;
} else { } else {
let dev = this._mainConnection._primaryDevice; let dev = this._mainConnection._primaryDevice;
this._primaryIndicator.visible = (dev != null); this._primaryIndicator.visible = (dev != null);

View File

@ -8,20 +8,22 @@ const Main = imports.ui.main;
const PanelMenu = imports.ui.panelMenu; const PanelMenu = imports.ui.panelMenu;
const PopupMenu = imports.ui.popupMenu; const PopupMenu = imports.ui.popupMenu;
const BUS_NAME = 'org.gnome.SettingsDaemon.Power'; const BUS_NAME = 'org.freedesktop.UPower';
const OBJECT_PATH = '/org/gnome/SettingsDaemon/Power'; const OBJECT_PATH = '/org/freedesktop/UPower/devices/DisplayDevice';
const PowerManagerInterface = <interface name="org.gnome.SettingsDaemon.Power"> const DisplayDeviceInterface = '<node> \
<method name="GetDevices"> <interface name="org.freedesktop.UPower.Device"> \
<arg type="a(susdut)" direction="out" /> <property name="Type" type="u" access="read"/> \
</method> <property name="State" type="u" access="read"/> \
<method name="GetPrimaryDevice"> <property name="Percentage" type="d" access="read"/> \
<arg type="(susdut)" direction="out" /> <property name="TimeToEmpty" type="x" access="read"/> \
</method> <property name="TimeToFull" type="x" access="read"/> \
<property name="Icon" type="s" access="read" /> <property name="IsPresent" type="b" access="read"/> \
</interface>; <property name="IconName" type="s" access="read"/> \
</interface> \
</node>';
const PowerManagerProxy = Gio.DBusProxy.makeProxyWrapper(PowerManagerInterface); const PowerManagerProxy = Gio.DBusProxy.makeProxyWrapper(DisplayDeviceInterface);
const Indicator = new Lang.Class({ const Indicator = new Lang.Class({
Name: 'PowerIndicator', Name: 'PowerIndicator',
@ -32,7 +34,7 @@ const Indicator = new Lang.Class({
this._indicator = this._addIndicator(); this._indicator = this._addIndicator();
this._proxy = new PowerManagerProxy(Gio.DBus.session, BUS_NAME, OBJECT_PATH, this._proxy = new PowerManagerProxy(Gio.DBus.system, BUS_NAME, OBJECT_PATH,
Lang.bind(this, function(proxy, error) { Lang.bind(this, function(proxy, error) {
if (error) { if (error) {
log(error.message); log(error.message);
@ -43,7 +45,7 @@ const Indicator = new Lang.Class({
this._sync(); this._sync();
})); }));
this._item = new PopupMenu.PopupSubMenuMenuItem(_("Battery"), true); this._item = new PopupMenu.PopupSubMenuMenuItem("", true);
this._item.menu.addSettingsAction(_("Power Settings"), 'gnome-power-panel.desktop'); this._item.menu.addSettingsAction(_("Power Settings"), 'gnome-power-panel.desktop');
this.menu.addMenuItem(this._item); this.menu.addMenuItem(this._item);
@ -56,11 +58,18 @@ const Indicator = new Lang.Class({
this.menu.setSensitive(sensitive); this.menu.setSensitive(sensitive);
}, },
_statusForDevice: function(device) { _getStatus: function() {
let [device_id, device_type, icon, percentage, state, seconds] = device; let seconds = 0;
if (state == UPower.DeviceState.FULLY_CHARGED) if (this._proxy.State == UPower.DeviceState.FULLY_CHARGED)
return _("Fully Charged"); return _("Fully Charged");
else if (this._proxy.State == UPower.DeviceState.CHARGING)
seconds = this._proxy.TimeToFull;
else if (this._proxy.State == UPower.DeviceState.DISCHARGING)
seconds = this._proxy.TimeToEmpty;
// state is one of PENDING_CHARGING, PENDING_DISCHARGING
else
return _("Estimating…");
let time = Math.round(seconds / 60); let time = Math.round(seconds / 60);
if (time == 0) { if (time == 0) {
@ -72,52 +81,43 @@ const Indicator = new Lang.Class({
let minutes = time % 60; let minutes = time % 60;
let hours = Math.floor(time / 60); let hours = Math.floor(time / 60);
if (state == UPower.DeviceState.DISCHARGING) { if (this._proxy.State == UPower.DeviceState.DISCHARGING) {
// Translators: this is <hours>:<minutes> Remaining (<percentage>) // Translators: this is <hours>:<minutes> Remaining (<percentage>)
return _("%d\u2236%02d Remaining (%d%%)").format(hours, minutes, percentage); return _("%d\u2236%02d Remaining (%d%%)").format(hours, minutes, this._proxy.Percentage);
} }
if (state == UPower.DeviceState.CHARGING) { if (this._proxy.State == UPower.DeviceState.CHARGING) {
// Translators: this is <hours>:<minutes> Until Full (<percentage>) // Translators: this is <hours>:<minutes> Until Full (<percentage>)
return _("%d\u2236%02d Until Full (%d%%)").format(hours, minutes, percentage); return _("%d\u2236%02d Until Full (%d%%)").format(hours, minutes, this._proxy.Percentage);
} }
// state is one of PENDING_CHARGING, PENDING_DISCHARGING return null;
return _("Estimating…");
},
_syncStatusLabel: function() {
this._proxy.GetPrimaryDeviceRemote(Lang.bind(this, function(result, error) {
if (error) {
this._item.actor.hide();
return;
}
let [device] = result;
let [device_id, device_type] = device;
if (device_type == UPower.DeviceKind.BATTERY) {
this._item.status.text = this._statusForDevice(device);
this._item.actor.show();
} else {
this._item.actor.hide();
}
}));
},
_syncIcon: function() {
let icon = this._proxy.Icon;
if (icon) {
let gicon = Gio.icon_new_for_string(icon);
this._indicator.gicon = gicon;
this._item.icon.gicon = gicon;
} else {
// If there's no battery, then we use the power icon.
this._indicator.icon_name = 'system-shutdown-symbolic';
}
}, },
_sync: function() { _sync: function() {
this._syncIcon(); // Do we have batteries or a UPS?
this._syncStatusLabel(); let visible = this._proxy.IsPresent;
} if (visible) {
this._item.actor.show();
} else {
// If there's no battery, then we use the power icon.
this._item.actor.hide();
this._indicator.icon_name = 'system-shutdown-symbolic';
return;
}
// The icons
let icon = this._proxy.IconName;
this._indicator.icon_name = icon;
this._item.icon.icon_name = icon;
// The status label
this._item.status.text = this._getStatus();
// The sub-menu heading
if (this._proxy.Type == UPower.DeviceKind.UPS)
this._item.label.text = _("UPS");
else
this._item.label.text = _("Battery");
},
}); });

View File

@ -9,9 +9,11 @@ const PopupMenu = imports.ui.popupMenu;
const BUS_NAME = 'org.gnome.SettingsDaemon.Rfkill'; const BUS_NAME = 'org.gnome.SettingsDaemon.Rfkill';
const OBJECT_PATH = '/org/gnome/SettingsDaemon/Rfkill'; const OBJECT_PATH = '/org/gnome/SettingsDaemon/Rfkill';
const RfkillManagerInterface = <interface name="org.gnome.SettingsDaemon.Rfkill"> const RfkillManagerInterface = '<node> \
<property name="AirplaneMode" type="b" access="readwrite" /> <interface name="org.gnome.SettingsDaemon.Rfkill"> \
</interface>; <property name="AirplaneMode" type="b" access="readwrite" /> \
</interface> \
</node>';
const RfkillManagerProxy = Gio.DBusProxy.makeProxyWrapper(RfkillManagerInterface); const RfkillManagerProxy = Gio.DBusProxy.makeProxyWrapper(RfkillManagerInterface);

View File

@ -372,7 +372,11 @@ const Indicator = new Lang.Class({
Main.overview.hide(); Main.overview.hide();
if (Main.screenShield) if (Main.screenShield)
Main.screenShield.lock(false); Main.screenShield.lock(false);
Gdm.goto_login_session_sync(null);
Clutter.threads_add_repaint_func_full(Clutter.RepaintFlags.POST_PAINT, function() {
Gdm.goto_login_session_sync(null);
return false;
});
}, },
_onQuitSessionActivate: function() { _onQuitSessionActivate: function() {

View File

@ -16,10 +16,8 @@ const OverviewControls = imports.ui.overviewControls;
const Params = imports.misc.params; const Params = imports.misc.params;
const RemoteSearch = imports.ui.remoteSearch; const RemoteSearch = imports.ui.remoteSearch;
const Search = imports.ui.search; const Search = imports.ui.search;
const SearchDisplay = imports.ui.searchDisplay;
const ShellEntry = imports.ui.shellEntry; const ShellEntry = imports.ui.shellEntry;
const Tweener = imports.ui.tweener; const Tweener = imports.ui.tweener;
const Wanda = imports.ui.wanda;
const WorkspacesView = imports.ui.workspacesView; const WorkspacesView = imports.ui.workspacesView;
const SHELL_KEYBINDINGS_SCHEMA = 'org.gnome.shell.keybindings'; const SHELL_KEYBINDINGS_SCHEMA = 'org.gnome.shell.keybindings';
@ -103,7 +101,7 @@ const ViewSelector = new Lang.Class({
this._appsPage = this._addPage(this.appDisplay.actor, this._appsPage = this._addPage(this.appDisplay.actor,
_("Applications"), 'view-grid-symbolic'); _("Applications"), 'view-grid-symbolic');
this._searchResults = new SearchDisplay.SearchResults(this._searchSystem); this._searchResults = new Search.SearchResults(this._searchSystem);
this._searchPage = this._addPage(this._searchResults.actor, this._searchPage = this._addPage(this._searchResults.actor,
_("Search"), 'edit-find-symbolic', _("Search"), 'edit-find-symbolic',
{ a11yFocus: this._entry }); { a11yFocus: this._entry });
@ -114,8 +112,6 @@ const ViewSelector = new Lang.Class({
this._searchSettings.connect('changed::sort-order', Lang.bind(this, this._reloadRemoteProviders)); this._searchSettings.connect('changed::sort-order', Lang.bind(this, this._reloadRemoteProviders));
// Default search providers // Default search providers
// Wanda comes obviously first
this.addSearchProvider(new Wanda.WandaSearchProvider());
this.addSearchProvider(new AppDisplay.AppSearchProvider()); this.addSearchProvider(new AppDisplay.AppSearchProvider());
// Load remote search providers provided by applications // Load remote search providers provided by applications

View File

@ -1,156 +0,0 @@
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
const GdkPixbuf = imports.gi.GdkPixbuf;
const GLib = imports.gi.GLib;
const Gio = imports.gi.Gio;
const Lang = imports.lang;
const St = imports.gi.St;
const IconGrid = imports.ui.iconGrid;
const Layout = imports.ui.layout;
const Main = imports.ui.main;
const Panel = imports.ui.panel;
const FISH_NAME = 'wanda';
const FISH_FILENAME = 'wanda.png';
const FISH_SPEED = 300;
const FISH_COMMAND = 'fortune';
// The size of an individual frame in the animation
const FISH_HEIGHT = 22;
const FISH_WIDTH = 36;
const FISH_GROUP = 'Fish Animation';
const MAGIC_FISH_KEY = 'free the fish';
const WandaIcon = new Lang.Class({
Name: 'WandaIcon',
Extends: IconGrid.BaseIcon,
_init : function(fish, label, params) {
this.parent(label, params);
this._fish = fish;
this._imageFile = GLib.build_filenamev([global.datadir, fish + '.png']);
this._imgHeight = FISH_HEIGHT;
this._imgWidth = FISH_WIDTH;
},
createIcon: function(iconSize) {
this._animations = new Panel.Animation(this._imageFile, this._imgWidth, this._imgHeight, FISH_SPEED);
this._animations.play();
return this._animations.actor;
},
_createIconTexture: function(size) {
if (size == this.iconSize)
return;
this.parent(size);
}
});
const WandaIconBin = new Lang.Class({
Name: 'WandaIconBin',
_init: function(fish, label, params) {
this.actor = new St.Bin({ reactive: true,
track_hover: true });
this.icon = new WandaIcon(fish, label, params);
this.actor.child = this.icon.actor;
this.actor.label_actor = this.icon.label;
},
});
const FortuneDialog = new Lang.Class({
Name: 'FortuneDialog',
_init: function(name, command) {
let text;
try {
let [res, stdout, stderr, status] = GLib.spawn_command_line_sync(command);
text = String.fromCharCode.apply(null, stdout);
} catch(e) {
text = _("Sorry, no wisdom for you today:\n%s").format(e.message);
}
this._title = new St.Label({ style_class: 'prompt-dialog-headline',
text: _("%s the Oracle says").format(name) });
this._label = new St.Label({ style_class: 'prompt-dialog-description',
text: text });
this._label.clutter_text.line_wrap = true;
this._box = new St.BoxLayout({ vertical: true,
style_class: 'prompt-dialog' // this is just to force a reasonable width
});
this._box.add(this._title, { align: St.Align.MIDDLE });
this._box.add(this._label, { expand: true });
this._button = new St.Button({ button_mask: St.ButtonMask.ONE,
style_class: 'modal-dialog',
reactive: true });
this._button.connect('clicked', Lang.bind(this, this.destroy));
this._button.child = this._box;
this._bin = new St.Bin({ x_align: St.Align.MIDDLE,
y_align: St.Align.MIDDLE });
this._bin.add_constraint(new Layout.MonitorConstraint({ primary: true }));
this._bin.add_actor(this._button);
Main.layoutManager.addChrome(this._bin);
GLib.timeout_add_seconds(GLib.PRIORITY_DEFAULT, 10, Lang.bind(this, this.destroy));
},
destroy: function() {
this._bin.destroy();
}
});
function capitalize(str) {
return str[0].toUpperCase() + str.substring(1, str.length);
}
const WandaSearchProvider = new Lang.Class({
Name: 'WandaSearchProvider',
_init: function() {
this.id = 'wanda';
},
getResultMetas: function(fish, callback) {
callback([{ 'id': fish[0], // there may be many fish in the sea, but
// only one which speaks the truth!
'name': capitalize(fish[0]),
'createIcon': function(iconSize) {
return new St.Icon({ gicon: Gio.icon_new_for_string('face-smile'),
icon_size: iconSize });
}
}]);
},
getInitialResultSet: function(terms) {
if (terms.join(' ') == MAGIC_FISH_KEY) {
this.searchSystem.setResults(this, [ FISH_NAME ]);
} else {
this.searchSystem.setResults(this, []);
}
},
getSubsearchResultSet: function(previousResults, terms) {
this.getInitialResultSet(terms);
},
activateResult: function(fish) {
if (this._dialog)
this._dialog.destroy();
this._dialog = new FortuneDialog(capitalize(fish), FISH_COMMAND);
},
createResultObject: function (resultMeta, terms) {
return new WandaIconBin(resultMeta.id, resultMeta.name);
}
});

View File

@ -39,6 +39,9 @@ const WindowAttentionHandler = new Lang.Class({
let [title, banner] = this._getTitleAndBanner(app, window); let [title, banner] = this._getTitleAndBanner(app, window);
let notification = new MessageTray.Notification(source, title, banner); let notification = new MessageTray.Notification(source, title, banner);
notification.connect('clicked', function() {
source.open();
});
notification.setForFeedback(true); notification.setForFeedback(true);
source.notify(notification); source.notify(notification);
@ -79,7 +82,7 @@ const Source = new Lang.Class({
return this._app.create_icon_texture(size); return this._app.create_icon_texture(size);
}, },
open : function(notification) { open: function() {
Main.activateWindow(this._window); Main.activateWindow(this._window);
this.destroy(); this.destroy();
} }

View File

@ -20,8 +20,6 @@ const FOCUS_ANIMATION_TIME = 0.15;
const WINDOW_DND_SIZE = 256; const WINDOW_DND_SIZE = 256;
const SCROLL_SCALE_AMOUNT = 100 / 5;
const WINDOW_CLONE_MAXIMUM_SCALE = 0.7; const WINDOW_CLONE_MAXIMUM_SCALE = 0.7;
const LIGHTBOX_FADE_TIME = 0.1; const LIGHTBOX_FADE_TIME = 0.1;
@ -345,19 +343,6 @@ const WindowOverlay = new Lang.Class({
this._animateVisible(); this._animateVisible();
}, },
fadeIn: function() {
if (!this._hidden)
return;
this.show();
this.title.opacity = 0;
this._parentActor.raise_top();
Tweener.addTween(this.title,
{ opacity: 255,
time: CLOSE_BUTTON_FADE_TIME,
transition: 'easeOutQuad' });
},
chromeHeights: function () { chromeHeights: function () {
return [Math.max(this.borderSize, this.closeButton.height - this.closeButton._overlap), return [Math.max(this.borderSize, this.closeButton.height - this.closeButton._overlap),
this.title.height + this.title._spacing]; this.title.height + this.title._spacing];
@ -374,7 +359,6 @@ const WindowOverlay = new Lang.Class({
let border = this.border; let border = this.border;
Tweener.removeTweens(button); Tweener.removeTweens(button);
Tweener.removeTweens(title);
Tweener.removeTweens(border); Tweener.removeTweens(border);
let [cloneX, cloneY, cloneWidth, cloneHeight] = this._windowClone.slot; let [cloneX, cloneY, cloneWidth, cloneHeight] = this._windowClone.slot;
@ -1144,7 +1128,7 @@ const Workspace = new Lang.Class({
clone.actor.set_scale(scale, scale); clone.actor.set_scale(scale, scale);
clone.actor.set_opacity(255); clone.actor.set_opacity(255);
clone.overlay.relayout(false); clone.overlay.relayout(false);
this._showWindowOverlay(clone, overlay, isOnCurrentWorkspace); this._showWindowOverlay(clone, overlay);
} }
} }
}, },
@ -1174,23 +1158,19 @@ const Workspace = new Lang.Class({
time: Overview.ANIMATION_TIME, time: Overview.ANIMATION_TIME,
transition: 'easeOutQuad', transition: 'easeOutQuad',
onComplete: Lang.bind(this, function() { onComplete: Lang.bind(this, function() {
this._showWindowOverlay(clone, overlay, true); this._showWindowOverlay(clone, overlay);
}) })
}); });
clone.overlay.relayout(true); clone.overlay.relayout(true);
}, },
_showWindowOverlay: function(clone, overlay, fade) { _showWindowOverlay: function(clone, overlay) {
if (clone.inDrag) if (clone.inDrag)
return; return;
if (overlay) { if (overlay && overlay._hidden)
if (fade)
overlay.fadeIn();
else
overlay.show(); overlay.show();
}
}, },
_delayedWindowRepositioning: function() { _delayedWindowRepositioning: function() {
@ -1641,9 +1621,7 @@ const Workspace = new Lang.Class({
metaWindow.move_to_monitor(this.monitorIndex); metaWindow.move_to_monitor(this.monitorIndex);
let index = this.metaWorkspace ? this.metaWorkspace.index() : global.screen.get_active_workspace_index(); let index = this.metaWorkspace ? this.metaWorkspace.index() : global.screen.get_active_workspace_index();
metaWindow.change_workspace_by_index(index, metaWindow.change_workspace_by_index(index, false);
false, // don't create workspace
time);
return true; return true;
} else if (source.shellWorkspaceLaunch) { } else if (source.shellWorkspaceLaunch) {
source.shellWorkspaceLaunch({ workspace: this.metaWorkspace ? this.metaWorkspace.index() : -1, source.shellWorkspaceLaunch({ workspace: this.metaWorkspace ? this.metaWorkspace.index() : -1,

View File

@ -507,9 +507,7 @@ const WorkspaceThumbnail = new Lang.Class({
if (metaWindow.get_monitor() != this.monitorIndex) if (metaWindow.get_monitor() != this.monitorIndex)
metaWindow.move_to_monitor(this.monitorIndex); metaWindow.move_to_monitor(this.monitorIndex);
metaWindow.change_workspace_by_index(this.metaWorkspace.index(), metaWindow.change_workspace_by_index(this.metaWorkspace.index(), false);
false, // don't create workspace
time);
return true; return true;
} else if (source.shellWorkspaceLaunch) { } else if (source.shellWorkspaceLaunch) {
source.shellWorkspaceLaunch({ workspace: this.metaWorkspace ? this.metaWorkspace.index() : -1, source.shellWorkspaceLaunch({ workspace: this.metaWorkspace ? this.metaWorkspace.index() : -1,
@ -536,20 +534,6 @@ const ThumbnailsBox = new Lang.Class({
this.actor.connect('allocate', Lang.bind(this, this._allocate)); this.actor.connect('allocate', Lang.bind(this, this._allocate));
this.actor._delegate = this; this.actor._delegate = this;
// When we animate the scale, we don't animate the requested size of the thumbnails, rather
// we ask for our final size and then animate within that size. This slightly simplifies the
// interaction with the main workspace windows (instead of constantly reallocating them
// to a new size, they get a new size once, then use the standard window animation code
// allocate the windows to their new positions), however it causes problems for drawing
// the background and border wrapped around the thumbnail as we animate - we can't just pack
// the container into a box and set style properties on the box since that box would wrap
// around the final size not the animating size. So instead we fake the background with
// an actor underneath the content and adjust the allocation of our children to leave space
// for the border and padding of the background actor.
this._background = new St.Bin({ style_class: 'workspace-thumbnails-background' });
this.actor.add_actor(this._background);
let indicator = new St.Bin({ style_class: 'workspace-thumbnail-indicator' }); let indicator = new St.Bin({ style_class: 'workspace-thumbnail-indicator' });
// We don't want the indicator to affect drag-and-drop // We don't want the indicator to affect drag-and-drop
@ -753,14 +737,12 @@ const ThumbnailsBox = new Lang.Class({
// ... move them down one. // ... move them down one.
windows.forEach(function(win) { windows.forEach(function(win) {
win.meta_window.change_workspace_by_index(win.get_workspace() + 1, win.meta_window.change_workspace_by_index(win.get_workspace() + 1, true);
true, time);
}); });
if (isWindow) if (isWindow)
// ... and bam, a workspace, good as new. // ... and bam, a workspace, good as new.
source.metaWindow.change_workspace_by_index(newWorkspaceIndex, source.metaWindow.change_workspace_by_index(newWorkspaceIndex, true);
true, time);
else if (source.shellWorkspaceLaunch) { else if (source.shellWorkspaceLaunch) {
source.shellWorkspaceLaunch({ workspace: newWorkspaceIndex, source.shellWorkspaceLaunch({ workspace: newWorkspaceIndex,
timestamp: time }); timestamp: time });
@ -1042,9 +1024,6 @@ const ThumbnailsBox = new Lang.Class({
}, },
_getPreferredHeight: function(actor, forWidth, alloc) { _getPreferredHeight: function(actor, forWidth, alloc) {
// See comment about this._background in _init()
let themeNode = this._background.get_theme_node();
// Note that for getPreferredWidth/Height we cheat a bit and skip propagating // Note that for getPreferredWidth/Height we cheat a bit and skip propagating
// the size request to our children because we know how big they are and know // the size request to our children because we know how big they are and know
// that the actors aren't depending on the virtual functions being called. // that the actors aren't depending on the virtual functions being called.
@ -1052,24 +1031,21 @@ const ThumbnailsBox = new Lang.Class({
if (this._thumbnails.length == 0) if (this._thumbnails.length == 0)
return; return;
let spacing = this.actor.get_theme_node().get_length('spacing'); let themeNode = this.actor.get_theme_node();
let spacing = themeNode.get_length('spacing');
let nWorkspaces = global.screen.n_workspaces; let nWorkspaces = global.screen.n_workspaces;
let totalSpacing = (nWorkspaces - 1) * spacing; let totalSpacing = (nWorkspaces - 1) * spacing;
[alloc.min_size, alloc.natural_size] = alloc.min_size = totalSpacing;
themeNode.adjust_preferred_height(totalSpacing, alloc.natural_size = totalSpacing + nWorkspaces * this._porthole.height * MAX_THUMBNAIL_SCALE;
totalSpacing + nWorkspaces * this._porthole.height * MAX_THUMBNAIL_SCALE);
}, },
_getPreferredWidth: function(actor, forHeight, alloc) { _getPreferredWidth: function(actor, forHeight, alloc) {
// See comment about this._background in _init()
let themeNode = this._background.get_theme_node();
if (this._thumbnails.length == 0) if (this._thumbnails.length == 0)
return; return;
// We don't animate our preferred width, which is always reported according let themeNode = this.actor.get_theme_node();
// to the actual number of current workspaces, we just animate within that
let spacing = this.actor.get_theme_node().get_length('spacing'); let spacing = this.actor.get_theme_node().get_length('spacing');
let nWorkspaces = global.screen.n_workspaces; let nWorkspaces = global.screen.n_workspaces;
@ -1081,28 +1057,26 @@ const ThumbnailsBox = new Lang.Class({
scale = Math.min(scale, MAX_THUMBNAIL_SCALE); scale = Math.min(scale, MAX_THUMBNAIL_SCALE);
let width = Math.round(this._porthole.width * scale); let width = Math.round(this._porthole.width * scale);
[alloc.min_size, alloc.natural_size] = alloc.min_size = width;
themeNode.adjust_preferred_width(width, width); alloc.natural_size = width;
}, },
_allocate: function(actor, box, flags) { _allocate: function(actor, box, flags) {
let rtl = (Clutter.get_default_text_direction () == Clutter.TextDirection.RTL); let rtl = (Clutter.get_default_text_direction () == Clutter.TextDirection.RTL);
// See comment about this._background in _init()
let themeNode = this._background.get_theme_node();
let contentBox = themeNode.get_content_box(box);
if (this._thumbnails.length == 0) // not visible if (this._thumbnails.length == 0) // not visible
return; return;
let themeNode = this.actor.get_theme_node();
let portholeWidth = this._porthole.width; let portholeWidth = this._porthole.width;
let portholeHeight = this._porthole.height; let portholeHeight = this._porthole.height;
let spacing = this.actor.get_theme_node().get_length('spacing'); let spacing = themeNode.get_length('spacing');
// Compute the scale we'll need once everything is updated // Compute the scale we'll need once everything is updated
let nWorkspaces = global.screen.n_workspaces; let nWorkspaces = global.screen.n_workspaces;
let totalSpacing = (nWorkspaces - 1) * spacing; let totalSpacing = (nWorkspaces - 1) * spacing;
let avail = (contentBox.y2 - contentBox.y1) - totalSpacing; let avail = (box.y2 - box.y1) - totalSpacing;
let newScale = (avail / nWorkspaces) / portholeHeight; let newScale = (avail / nWorkspaces) / portholeHeight;
newScale = Math.min(newScale, MAX_THUMBNAIL_SCALE); newScale = Math.min(newScale, MAX_THUMBNAIL_SCALE);
@ -1131,21 +1105,6 @@ const ThumbnailsBox = new Lang.Class({
else else
slideOffset = thumbnailWidth + themeNode.get_padding(St.Side.RIGHT); slideOffset = thumbnailWidth + themeNode.get_padding(St.Side.RIGHT);
let childBox = new Clutter.ActorBox();
// The background is horizontally restricted to correspond to the current thumbnail size
// but otherwise covers the entire allocation
if (rtl) {
childBox.x1 = box.x1;
childBox.x2 = box.x2 - ((contentBox.x2 - contentBox.x1) - thumbnailWidth);
} else {
childBox.x1 = box.x1 + ((contentBox.x2 - contentBox.x1) - thumbnailWidth);
childBox.x2 = box.x2;
}
childBox.y1 = box.y1;
childBox.y2 = box.y2;
this._background.allocate(childBox, flags);
let indicatorY1 = this._indicatorY; let indicatorY1 = this._indicatorY;
let indicatorY2; let indicatorY2;
// when not animating, the workspace position overrides this._indicatorY // when not animating, the workspace position overrides this._indicatorY
@ -1157,7 +1116,7 @@ const ThumbnailsBox = new Lang.Class({
let indicatorLeftFullBorder = indicatorThemeNode.get_padding(St.Side.LEFT) + indicatorThemeNode.get_border_width(St.Side.LEFT); let indicatorLeftFullBorder = indicatorThemeNode.get_padding(St.Side.LEFT) + indicatorThemeNode.get_border_width(St.Side.LEFT);
let indicatorRightFullBorder = indicatorThemeNode.get_padding(St.Side.RIGHT) + indicatorThemeNode.get_border_width(St.Side.RIGHT); let indicatorRightFullBorder = indicatorThemeNode.get_padding(St.Side.RIGHT) + indicatorThemeNode.get_border_width(St.Side.RIGHT);
let y = contentBox.y1; let y = box.y1;
if (this._dropPlaceholderPos == -1) { if (this._dropPlaceholderPos == -1) {
Meta.later_add(Meta.LaterType.BEFORE_REDRAW, Lang.bind(this, function() { Meta.later_add(Meta.LaterType.BEFORE_REDRAW, Lang.bind(this, function() {
@ -1165,6 +1124,8 @@ const ThumbnailsBox = new Lang.Class({
})); }));
} }
let childBox = new Clutter.ActorBox();
for (let i = 0; i < this._thumbnails.length; i++) { for (let i = 0; i < this._thumbnails.length; i++) {
let thumbnail = this._thumbnails[i]; let thumbnail = this._thumbnails[i];
@ -1173,10 +1134,10 @@ const ThumbnailsBox = new Lang.Class({
let x1, x2; let x1, x2;
if (rtl) { if (rtl) {
x1 = contentBox.x1 + slideOffset * thumbnail.slidePosition; x1 = box.x1 + slideOffset * thumbnail.slidePosition;
x2 = x1 + thumbnailWidth; x2 = x1 + thumbnailWidth;
} else { } else {
x1 = contentBox.x2 - thumbnailWidth + slideOffset * thumbnail.slidePosition; x1 = box.x2 - thumbnailWidth + slideOffset * thumbnail.slidePosition;
x2 = x1 + thumbnailWidth; x2 = x1 + thumbnailWidth;
} }
@ -1223,11 +1184,11 @@ const ThumbnailsBox = new Lang.Class({
} }
if (rtl) { if (rtl) {
childBox.x1 = contentBox.x1; childBox.x1 = box.x1;
childBox.x2 = contentBox.x1 + thumbnailWidth; childBox.x2 = box.x1 + thumbnailWidth;
} else { } else {
childBox.x1 = contentBox.x2 - thumbnailWidth; childBox.x1 = box.x2 - thumbnailWidth;
childBox.x2 = contentBox.x2; childBox.x2 = box.x2;
} }
childBox.x1 -= indicatorLeftFullBorder; childBox.x1 -= indicatorLeftFullBorder;
childBox.x2 += indicatorRightFullBorder; childBox.x2 += indicatorRightFullBorder;

View File

@ -62,7 +62,6 @@ const WorkspacesView = new Lang.Class({
this._animating = false; // tweening this._animating = false; // tweening
this._scrolling = false; // swipe-scrolling this._scrolling = false; // swipe-scrolling
this._animatingScroll = false; // programatically updating the adjustment this._animatingScroll = false; // programatically updating the adjustment
this._zoomOut = false; // zoom to a larger area
this._inDrag = false; // dragging a window this._inDrag = false; // dragging a window
this._settings = new Gio.Settings({ schema: OVERRIDE_SCHEMA }); this._settings = new Gio.Settings({ schema: OVERRIDE_SCHEMA });
@ -168,14 +167,6 @@ const WorkspacesView = new Lang.Class({
this._workspaces[i].setActualGeometry(geom); this._workspaces[i].setActualGeometry(geom);
}, },
_lookupWorkspaceForMetaWindow: function (metaWindow) {
for (let i = 0; i < this._workspaces.length; i++) {
if (this._workspaces[i].containsMetaWindow(metaWindow))
return this._workspaces[i];
}
return null;
},
getActiveWorkspace: function() { getActiveWorkspace: function() {
let active = global.screen.get_active_workspace_index(); let active = global.screen.get_active_workspace_index();
return this._workspaces[active]; return this._workspaces[active];
@ -433,10 +424,6 @@ const WorkspacesView = new Lang.Class({
this._workspaces[i].actor.y += dy; this._workspaces[i].actor.y += dy;
} }
}, },
_getWorkspaceIndexToRemove: function() {
return global.screen.get_active_workspace_index();
}
}); });
Signals.addSignalMethods(WorkspacesView.prototype); Signals.addSignalMethods(WorkspacesView.prototype);

View File

@ -38,7 +38,7 @@ js/ui/panel.js
js/ui/popupMenu.js js/ui/popupMenu.js
js/ui/runDialog.js js/ui/runDialog.js
js/ui/screenShield.js js/ui/screenShield.js
js/ui/searchDisplay.js js/ui/search.js
js/ui/shellEntry.js js/ui/shellEntry.js
js/ui/shellMountOperation.js js/ui/shellMountOperation.js
js/ui/status/accessibility.js js/ui/status/accessibility.js
@ -52,7 +52,6 @@ js/ui/status/system.js
js/ui/status/volume.js js/ui/status/volume.js
js/ui/unlockDialog.js js/ui/unlockDialog.js
js/ui/viewSelector.js js/ui/viewSelector.js
js/ui/wanda.js
js/ui/windowAttentionHandler.js js/ui/windowAttentionHandler.js
js/ui/windowManager.js js/ui/windowManager.js
src/calendar-server/evolution-calendar.desktop.in.in src/calendar-server/evolution-calendar.desktop.in.in

326
po/as.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: 2013-09-23 13:35+0000\n" "POT-Creation-Date: 2013-09-28 19:49+0000\n"
"PO-Revision-Date: 2013-09-24 14:24+0530\n" "PO-Revision-Date: 2013-09-30 13:31+0530\n"
"Last-Translator: Nilamdyuti Goswami <ngoswami@redhat.com>\n" "Last-Translator: Nilamdyuti Goswami <ngoswami@redhat.com>\n"
"Language-Team: Assamese <kde-i18n-doc@kde.org>\n" "Language-Team: Assamese <kde-i18n-doc@kde.org>\n"
"Language: as_IN\n" "Language: as_IN\n"
@ -54,7 +54,6 @@ msgid "Window management and application launching"
msgstr "উইন্ডো ব্যৱস্থাপনা আৰু এপ্লিকেচনৰ লঞ্চ" msgstr "উইন্ডো ব্যৱস্থাপনা আৰু এপ্লিকেচনৰ লঞ্চ"
#: ../data/gnome-shell-extension-prefs.desktop.in.in.h:1 #: ../data/gnome-shell-extension-prefs.desktop.in.in.h:1
#: ../js/extensionPrefs/main.js:153
msgid "GNOME Shell Extension Preferences" msgid "GNOME Shell Extension Preferences"
msgstr "GNOME শ্বেল সম্প্ৰসাৰন পছন্দসমূহ" msgstr "GNOME শ্বেল সম্প্ৰসাৰন পছন্দসমূহ"
@ -276,15 +275,6 @@ msgid "Delay focus changes in mouse mode until the pointer stops moving"
msgstr "" msgstr ""
"বিলম্বৰ ফকাচ মাউছ অৱস্থাত পৰিবৰ্তন হয় যেতিয়ালৈকে পইন্টাৰে গমন কৰা বন্ধ নকৰে" "বিলম্বৰ ফকাচ মাউছ অৱস্থাত পৰিবৰ্তন হয় যেতিয়ালৈকে পইন্টাৰে গমন কৰা বন্ধ নকৰে"
#: ../js/extensionPrefs/main.js:125
#, c-format
msgid "There was an error loading the preferences dialog for %s:"
msgstr "%s ৰ বাবে পছন্দসমূহ ডাইলগ ল'ড কৰোতে এটা ত্ৰুটি হৈছিল:"
#: ../js/extensionPrefs/main.js:165
msgid "Extension"
msgstr "প্ৰসাৰন"
#: ../js/extensionPrefs/main.js:189 #: ../js/extensionPrefs/main.js:189
msgid "Select an extension to configure using the combobox above." msgid "Select an extension to configure using the combobox above."
msgstr "উপৰত দিয়া কম্বোবাকচ ব্যৱহাৰ কৰি সংৰূপণ কৰিবলে এটা সম্প্ৰসাৰন বাছক।" msgstr "উপৰত দিয়া কম্বোবাকচ ব্যৱহাৰ কৰি সংৰূপণ কৰিবলে এটা সম্প্ৰসাৰন বাছক।"
@ -292,7 +282,7 @@ msgstr "উপৰত দিয়া কম্বোবাকচ ব্যৱহা
#: ../js/gdm/authPrompt.js:145 ../js/ui/components/networkAgent.js:136 #: ../js/gdm/authPrompt.js:145 ../js/ui/components/networkAgent.js:136
#: ../js/ui/components/polkitAgent.js:161 ../js/ui/endSessionDialog.js:351 #: ../js/ui/components/polkitAgent.js:161 ../js/ui/endSessionDialog.js:351
#: ../js/ui/extensionDownloader.js:195 ../js/ui/shellMountOperation.js:399 #: ../js/ui/extensionDownloader.js:195 ../js/ui/shellMountOperation.js:399
#: ../js/ui/status/bluetooth.js:222 ../js/ui/status/network.js:686 #: ../js/ui/status/bluetooth.js:222 ../js/ui/status/network.js:692
msgid "Cancel" msgid "Cancel"
msgstr "বাতিল কৰক" msgstr "বাতিল কৰক"
@ -314,23 +304,15 @@ msgstr "ছাইন ইন কৰক"
msgid "Choose Session" msgid "Choose Session"
msgstr "অধিবেশন বাছক" msgstr "অধিবেশন বাছক"
#. 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:454 #: ../js/gdm/loginDialog.js:454
msgid "Not listed?" msgid "Not listed?"
msgstr "তালিকাভুক্ত নহয়?" msgstr "তালিকাভুক্ত নহয়?"
#. 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:622 #: ../js/gdm/loginDialog.js:622
#, c-format #, javascript-format
msgid "(e.g., user or %s)" msgid "(e.g., user or %s)"
msgstr "(উদাহৰণ, ব্যৱহাৰকাৰী অথবা %s)" msgstr "(উদাহৰণ, ব্যৱহাৰকাৰী অথবা %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:627 ../js/ui/components/networkAgent.js:259 #: ../js/gdm/loginDialog.js:627 ../js/ui/components/networkAgent.js:259
#: ../js/ui/components/networkAgent.js:277 #: ../js/ui/components/networkAgent.js:277
msgid "Username: " msgid "Username: "
@ -344,11 +326,6 @@ msgstr "লগিন উইন্ডো"
msgid "Authentication error" msgid "Authentication error"
msgstr "প্ৰমাণীকৰণ ত্ৰুটি" msgstr "প্ৰমাণীকৰণ ত্ৰুটি"
#. 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:436 #: ../js/gdm/util.js:436
msgid "(or swipe finger)" msgid "(or swipe finger)"
msgstr "(অথবা আঙুলি স্বাইপ কৰক)" msgstr "(অথবা আঙুলি স্বাইপ কৰক)"
@ -357,14 +334,12 @@ msgstr "(অথবা আঙুলি স্বাইপ কৰক)"
msgid "Command not found" msgid "Command not found"
msgstr "কমান্ড পোৱা নগল" msgstr "কমান্ড পোৱা নগল"
#. Replace "Error invoking GLib.shell_parse_argv: " with
#. something nicer
#: ../js/misc/util.js:131 #: ../js/misc/util.js:131
msgid "Could not parse command:" msgid "Could not parse command:"
msgstr "কমান্ড বিশ্লেষন কৰিব নোৱাৰি:" msgstr "কমান্ড বিশ্লেষন কৰিব নোৱাৰি:"
#: ../js/misc/util.js:139 #: ../js/misc/util.js:139
#, c-format #, javascript-format
msgid "Execution of '%s' failed:" msgid "Execution of '%s' failed:"
msgstr "'%s' ৰ প্ৰেৰণ ব্যৰ্থ হল:" msgstr "'%s' ৰ প্ৰেৰণ ব্যৰ্থ হল:"
@ -393,16 +368,16 @@ msgid "Add to Favorites"
msgstr "পছন্দলে যোগ কৰক" msgstr "পছন্দলে যোগ কৰক"
#: ../js/ui/appFavorites.js:87 #: ../js/ui/appFavorites.js:87
#, c-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:121 #: ../js/ui/appFavorites.js:121
#, c-format #, javascript-format
msgid "%s has been removed from your favorites." msgid "%s has been removed from your favorites."
msgstr "%s ক আপোনাৰ পছন্দৰ পৰা আতৰোৱা হৈছে।" msgstr "%s ক আপোনাৰ পছন্দৰ পৰা আতৰোৱা হৈছে।"
#: ../js/ui/backgroundMenu.js:19 ../js/ui/panel.js:807 #: ../js/ui/backgroundMenu.js:19 ../js/ui/panel.js:808
#: ../js/ui/status/system.js:325 #: ../js/ui/status/system.js:325
msgid "Settings" msgid "Settings"
msgstr "সংহতিসমূহ" msgstr "সংহতিসমূহ"
@ -413,68 +388,68 @@ msgstr "পটভূমি পৰিবৰ্তন কৰক…"
#. 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:62 #: ../js/ui/calendar.js:62
msgctxt "event list time" msgctxt "event list time"
msgid "All Day" msgid "All Day"
msgstr "গোটেই দিনটো" msgstr "গোটেই দিনটো"
#. 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:68 #: ../js/ui/calendar.js:68
msgctxt "event list time" msgctxt "event list time"
msgid "%H\\u2236%M" msgid "%H%M"
msgstr "%H\\u2236%M" 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:77 #: ../js/ui/calendar.js:77
msgctxt "event list time" msgctxt "event list time"
msgid "%l\\u2236%M\\u2009%p" msgid "%l%M%p"
msgstr "%l\\u2236%M\\u2009%p" msgstr "%l%M%p"
#. Translators: Calendar grid abbreviation for Sunday. #. Translators: Calendar grid abbreviation for Sunday.
#. * #. *
#. * 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:108 #: ../js/ui/calendar.js:108
msgctxt "grid sunday" msgctxt "grid sunday"
msgid "S" msgid "S"
msgstr "S" msgstr "S"
#. Translators: Calendar grid abbreviation for Monday #. Translators: Calendar grid abbreviation for Monday */
#: ../js/ui/calendar.js:110 #: ../js/ui/calendar.js:110
msgctxt "grid monday" msgctxt "grid monday"
msgid "M" msgid "M"
msgstr "M" msgstr "M"
#. Translators: Calendar grid abbreviation for Tuesday #. Translators: Calendar grid abbreviation for Tuesday */
#: ../js/ui/calendar.js:112 #: ../js/ui/calendar.js:112
msgctxt "grid tuesday" msgctxt "grid tuesday"
msgid "T" msgid "T"
msgstr "T" msgstr "T"
#. Translators: Calendar grid abbreviation for Wednesday #. Translators: Calendar grid abbreviation for Wednesday */
#: ../js/ui/calendar.js:114 #: ../js/ui/calendar.js:114
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:116 #: ../js/ui/calendar.js:116
msgctxt "grid thursday" msgctxt "grid thursday"
msgid "T" msgid "T"
msgstr "T" msgstr "T"
#. Translators: Calendar grid abbreviation for Friday #. Translators: Calendar grid abbreviation for Friday */
#: ../js/ui/calendar.js:118 #: ../js/ui/calendar.js:118
msgctxt "grid friday" msgctxt "grid friday"
msgid "F" msgid "F"
msgstr "F" msgstr "F"
#. Translators: Calendar grid abbreviation for Saturday #. Translators: Calendar grid abbreviation for Saturday */
#: ../js/ui/calendar.js:120 #: ../js/ui/calendar.js:120
msgctxt "grid saturday" msgctxt "grid saturday"
msgid "S" msgid "S"
@ -485,48 +460,52 @@ 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:133 #: ../js/ui/calendar.js:133
msgctxt "list sunday" msgctxt "list sunday"
msgid "Su" msgid "Su"
msgstr "Su" msgstr "Su"
#. Translators: Event list abbreviation for Monday #. Translators: Event list abbreviation for Monday */
#: ../js/ui/calendar.js:135 #: ../js/ui/calendar.js:135
msgctxt "list monday" msgctxt "list monday"
msgid "M" msgid "M"
msgstr "M" msgstr "M"
#. Translators: Event list abbreviation for Tuesday #. Translators: Event list abbreviation for Tuesday */
#: ../js/ui/calendar.js:137 #: ../js/ui/calendar.js:137
msgctxt "list tuesday" msgctxt "list tuesday"
msgid "T" msgid "T"
msgstr "T" msgstr "T"
#. Translators: Event list abbreviation for Wednesday #. Translators: Event list abbreviation for Wednesday */
#: ../js/ui/calendar.js:139 #: ../js/ui/calendar.js:139
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:141 #: ../js/ui/calendar.js:141
msgctxt "list thursday" msgctxt "list thursday"
msgid "Th" msgid "Th"
msgstr "Th" msgstr "Th"
#. Translators: Event list abbreviation for Friday #. Translators: Event list abbreviation for Friday */
#: ../js/ui/calendar.js:143 #: ../js/ui/calendar.js:143
msgctxt "list friday" msgctxt "list friday"
msgid "F" msgid "F"
msgstr "F" msgstr "F"
#. Translators: Event list abbreviation for Saturday #. Translators: Event list abbreviation for Saturday */
#: ../js/ui/calendar.js:145 #: ../js/ui/calendar.js:145
msgctxt "list saturday" msgctxt "list saturday"
msgid "S" msgid "S"
msgstr "S" msgstr "S"
#: ../js/ui/calendar.js:389
msgid "calendar:MY"
msgstr "কেলেন্ডাৰ:MY"
#: ../js/ui/calendar.js:447 #: ../js/ui/calendar.js:447
msgid "Previous month" msgid "Previous month"
msgstr "যোৱা মাহ" msgstr "যোৱা মাহ"
@ -535,18 +514,18 @@ msgstr "যোৱা মাহ"
msgid "Next month" msgid "Next month"
msgstr "অহা মাহ" msgstr "অহা মাহ"
#. Translators: Text to show if there are no events #. Translators: Text to show if there are no events */
#: ../js/ui/calendar.js:753 #: ../js/ui/calendar.js:753
msgid "Nothing Scheduled" msgid "Nothing Scheduled"
msgstr "একো অনুসূচীত কৰা হোৱা নাই" msgstr "একো অনুসূচীত কৰা হোৱা নাই"
#. 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:771 #: ../js/ui/calendar.js:771
msgctxt "calendar heading" msgctxt "calendar heading"
msgid "%A, %B %d" msgid "%A, %B %d"
msgstr "%A, %B %d" msgstr "%A, %B %d"
#. 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:774 #: ../js/ui/calendar.js:774
msgctxt "calendar heading" msgctxt "calendar heading"
msgid "%A, %B %d, %Y" msgid "%A, %B %d, %Y"
@ -581,7 +560,7 @@ msgid "Removable Devices"
msgstr "আতৰাব পৰা ডিভাইচসমূহ" msgstr "আতৰাব পৰা ডিভাইচসমূহ"
#: ../js/ui/components/autorunManager.js:594 #: ../js/ui/components/autorunManager.js:594
#, c-format #, javascript-format
msgid "Open with %s" msgid "Open with %s"
msgstr "%s ৰ সৈতে খোলক" msgstr "%s ৰ সৈতে খোলক"
@ -598,11 +577,10 @@ msgid "Type again:"
msgstr "আকৌ টাইপ কৰক:" msgstr "আকৌ টাইপ কৰক:"
#: ../js/ui/components/networkAgent.js:131 ../js/ui/status/network.js:112 #: ../js/ui/components/networkAgent.js:131 ../js/ui/status/network.js:112
#: ../js/ui/status/network.js:275 ../js/ui/status/network.js:689 #: ../js/ui/status/network.js:275 ../js/ui/status/network.js:695
msgid "Connect" msgid "Connect"
msgstr "সংযোগ কৰক" msgstr "সংযোগ কৰক"
#. Cisco LEAP
#: ../js/ui/components/networkAgent.js:222 #: ../js/ui/components/networkAgent.js:222
#: ../js/ui/components/networkAgent.js:234 #: ../js/ui/components/networkAgent.js:234
#: ../js/ui/components/networkAgent.js:261 #: ../js/ui/components/networkAgent.js:261
@ -611,7 +589,6 @@ msgstr "সংযোগ কৰক"
msgid "Password: " msgid "Password: "
msgstr "পাছৱাৰ্ড: " msgstr "পাছৱাৰ্ড: "
#. static WEP
#: ../js/ui/components/networkAgent.js:227 #: ../js/ui/components/networkAgent.js:227
msgid "Key: " msgid "Key: "
msgstr "কি': " msgstr "কি': "
@ -633,7 +610,7 @@ msgid "Authentication required by wireless network"
msgstr "বেতাঁৰ নেটৱাৰ্কৰ দ্বাৰা প্ৰমাণীকৰণৰ প্ৰয়োজন" msgstr "বেতাঁৰ নেটৱাৰ্কৰ দ্বাৰা প্ৰমাণীকৰণৰ প্ৰয়োজন"
#: ../js/ui/components/networkAgent.js:309 #: ../js/ui/components/networkAgent.js:309
#, c-format #, javascript-format
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'."
@ -670,7 +647,7 @@ msgid "Mobile broadband network password"
msgstr "মবাইল ব্ৰডবেণ্ড নেটৱাৰ্ক পাছৱাৰ্ড" msgstr "মবাইল ব্ৰডবেণ্ড নেটৱাৰ্ক পাছৱাৰ্ড"
#: ../js/ui/components/networkAgent.js:336 #: ../js/ui/components/networkAgent.js:336
#, c-format #, javascript-format
msgid "A password is required to connect to '%s'." msgid "A password is required to connect to '%s'."
msgstr "'%s' লে সংযোগ কৰিবলে এটা পাছৱাৰ্ডৰ প্ৰয়োজন।" msgstr "'%s' লে সংযোগ কৰিবলে এটা পাছৱাৰ্ডৰ প্ৰয়োজন।"
@ -689,23 +666,19 @@ msgstr "প্ৰমাণীত কৰক"
#. 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:266 ../js/ui/shellMountOperation.js:383 #: ../js/ui/components/polkitAgent.js:266 ../js/ui/shellMountOperation.js:383
msgid "Sorry, that didn't work. Please try again." msgid "Sorry, that didn't work. Please try again."
msgstr "ক্ষমা কৰিব, সেয়া কাম নকৰিলে। অনুগ্ৰহ কৰি পুনৰ চেষ্টা কৰক।" msgstr "ক্ষমা কৰিব, সেয়া কাম নকৰিলে। অনুগ্ৰহ কৰি পুনৰ চেষ্টা কৰক।"
#. FIXME: We don't have a 'chat room' icon (bgo #653737) use
#. system-users for now as Empathy does.
#: ../js/ui/components/telepathyClient.js:238 #: ../js/ui/components/telepathyClient.js:238
msgid "Invitation" msgid "Invitation"
msgstr "নিমন্ত্ৰণ" msgstr "নিমন্ত্ৰণ"
#. We got the TpContact
#: ../js/ui/components/telepathyClient.js:298 #: ../js/ui/components/telepathyClient.js:298
msgid "Call" msgid "Call"
msgstr "কল" msgstr "কল"
#. We got the TpContact
#: ../js/ui/components/telepathyClient.js:314 #: ../js/ui/components/telepathyClient.js:314
msgid "File Transfer" msgid "File Transfer"
msgstr "ফাইল স্থানান্তৰ" msgstr "ফাইল স্থানান্তৰ"
@ -722,49 +695,45 @@ msgstr "অমৌন কৰক"
msgid "Mute" msgid "Mute"
msgstr "মোন কৰক" msgstr "মোন কৰক"
#. Translators: this is the word "Yesterday" followed by a time string. i.e. "Yesterday, 14:30" #. Translators: this is the word "Yesterday" followed by a time string. i.e. "Yesterday, 14:30"*/
#: ../js/ui/components/telepathyClient.js:942 #: ../js/ui/components/telepathyClient.js:942
#, no-c-format
msgid "<b>Yesterday</b>, <b>%H:%M</b>" msgid "<b>Yesterday</b>, <b>%H:%M</b>"
msgstr "<b>যোৱাকালী</b>, <b>%H:%M</b>" msgstr "<b>যোৱাকালী</b>, <b>%H:%M</b>"
#. Translators: this is the week day name followed by a time string. i.e. "Monday, 14:30 #. Translators: this is the week day name followed by a time string. i.e. "Monday, 14:30*/
#: ../js/ui/components/telepathyClient.js:948 #: ../js/ui/components/telepathyClient.js:948
#, no-c-format
msgid "<b>%A</b>, <b>%H:%M</b>" msgid "<b>%A</b>, <b>%H:%M</b>"
msgstr "<b>%A</b>, <b>%H:%M</b>" msgstr "<b>%A</b>, <b>%H:%M</b>"
#. Translators: this is the month name and day number followed by a time string. i.e. "May 25, 14:30" #. Translators: this is the month name and day number followed by a time string. i.e. "May 25, 14:30"*/
#: ../js/ui/components/telepathyClient.js:953 #: ../js/ui/components/telepathyClient.js:953
#, no-c-format
msgid "<b>%B</b> <b>%d</b>, <b>%H:%M</b>" msgid "<b>%B</b> <b>%d</b>, <b>%H:%M</b>"
msgstr "<b>%B</b> <b>%d</b>, <b>%H:%M</b>" msgstr "<b>%B</b> <b>%d</b>, <b>%H:%M</b>"
#. Translators: this is the month name, day number, year number followed by a time string. i.e. "May 25 2012, 14:30" #. Translators: this is the month name, day number, year number followed by a time string. i.e. "May 25 2012, 14:30"*/
#: ../js/ui/components/telepathyClient.js:957 #: ../js/ui/components/telepathyClient.js:957
#, no-c-format
msgid "<b>%B</b> <b>%d</b> <b>%Y</b>, <b>%H:%M</b> " msgid "<b>%B</b> <b>%d</b> <b>%Y</b>, <b>%H:%M</b> "
msgstr "<b>%B</b> <b>%d</b> <b>%Y</b>, <b>%H:%M</b> " msgstr "<b>%B</b> <b>%d</b> <b>%Y</b>, <b>%H:%M</b> "
#. 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:986 #: ../js/ui/components/telepathyClient.js:986
#, c-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:1089 #: ../js/ui/components/telepathyClient.js:1089
#, c-format #, javascript-format
msgid "Invitation to %s" msgid "Invitation to %s"
msgstr "%s লে নিমন্ত্ৰণ" 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:1097 #: ../js/ui/components/telepathyClient.js:1097
#, c-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 ত অংশগ্ৰহণ কৰিবলে আমন্ত্ৰণ জনাইছে"
@ -781,19 +750,19 @@ msgstr "নাকচ কৰক"
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:1130 #: ../js/ui/components/telepathyClient.js:1130
#, c-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:1133 #: ../js/ui/components/telepathyClient.js:1133
#, c-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:1142 #: ../js/ui/components/telepathyClient.js:1142
msgid "Answer" msgid "Answer"
msgstr "উত্তৰ দিয়ক" msgstr "উত্তৰ দিয়ক"
@ -802,15 +771,15 @@ msgstr "উত্তৰ দিয়ক"
#. * 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:1174 #: ../js/ui/components/telepathyClient.js:1174
#, c-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:1209 #: ../js/ui/components/telepathyClient.js:1209
#, c-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 এ অনুমতি বিচাৰিব"
@ -920,9 +889,9 @@ 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:1357 #: ../js/ui/components/telepathyClient.js:1357
#, c-format #, javascript-format
msgid "Unable to connect to %s" msgid "Unable to connect to %s"
msgstr "%s ৰ সৈতে সংযোগ কৰিবলে অক্ষম" msgstr "%s ৰ সৈতে সংযোগ কৰিবলে অক্ষম"
@ -942,8 +911,6 @@ msgstr "উইন্ডোসমূহ"
msgid "Show Applications" msgid "Show Applications"
msgstr "এপ্লিকেচনসমূহ দেখুৱাওক" msgstr "এপ্লিকেচনসমূহ দেখুৱাওক"
#. Translators: this is the name of the dock/favorites area on
#. the left of the overview
#: ../js/ui/dash.js:442 #: ../js/ui/dash.js:442
msgid "Dash" msgid "Dash"
msgstr "ডেশ" msgstr "ডেশ"
@ -962,13 +929,13 @@ 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:202 #: ../js/ui/dateMenu.js:202
msgid "%A %B %e, %Y" msgid "%A %B %e, %Y"
msgstr "%A %B %e, %Y" msgstr "%A %B %e, %Y"
#: ../js/ui/endSessionDialog.js:62 #: ../js/ui/endSessionDialog.js:62
#, c-format #, javascript-format
msgctxt "title" msgctxt "title"
msgid "Log Out %s" msgid "Log Out %s"
msgstr "%s লগ আউট কৰক" msgstr "%s লগ আউট কৰক"
@ -979,14 +946,14 @@ msgid "Log Out"
msgstr "লগ আউট কৰক" msgstr "লগ আউট কৰক"
#: ../js/ui/endSessionDialog.js:65 #: ../js/ui/endSessionDialog.js:65
#, c-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:70 #: ../js/ui/endSessionDialog.js:70
#, c-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 ছেকেণ্ড পিছত লগ আউট হৈ যাব।"
@ -1003,7 +970,7 @@ msgid "Power Off"
msgstr "বন্ধ কৰক" msgstr "বন্ধ কৰক"
#: ../js/ui/endSessionDialog.js:83 #: ../js/ui/endSessionDialog.js:83
#, c-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 ছেকেণ্ড পিছত স্বচালিতভাৱে বন্ধ কৰক হব। "
@ -1025,7 +992,7 @@ msgid "Restart"
msgstr "পুনৰাম্ভ কৰক" msgstr "পুনৰাম্ভ কৰক"
#: ../js/ui/endSessionDialog.js:99 #: ../js/ui/endSessionDialog.js:99
#, c-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 ছেকেণ্ডত স্বচালিতভাৱে পুনৰাম্ভ হব।"
@ -1037,7 +1004,7 @@ msgid "Restart & Install Updates"
msgstr "পুনাৰম্ভ কৰক আৰু আপডেইটসমূহ ইনস্টল কৰক" msgstr "পুনাৰম্ভ কৰক আৰু আপডেইটসমূহ ইনস্টল কৰক"
#: ../js/ui/endSessionDialog.js:114 #: ../js/ui/endSessionDialog.js:114
#, c-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."
@ -1061,15 +1028,15 @@ msgstr ""
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:479 #: ../js/ui/endSessionDialog.js:479
#, c-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:482 #: ../js/ui/endSessionDialog.js:482
#, c-format #, javascript-format
msgid "%s (console)" msgid "%s (console)"
msgstr "%s (কনচৌল)" msgstr "%s (কনচৌল)"
@ -1078,11 +1045,11 @@ msgid "Install"
msgstr "ইনস্টল কৰক" msgstr "ইনস্টল কৰক"
#: ../js/ui/extensionDownloader.js:204 #: ../js/ui/extensionDownloader.js:204
#, c-format #, javascript-format
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:619 ../js/ui/status/keyboard.js:333 #: ../js/ui/keyboard.js:619
msgid "Keyboard" msgid "Keyboard"
msgstr "কিবৰ্ড" msgstr "কিবৰ্ড"
@ -1090,9 +1057,9 @@ msgstr "কিবৰ্ড"
msgid "No extensions installed" msgid "No extensions installed"
msgstr "কোনো সম্প্ৰসাৰন ইনস্টল কৰা হোৱা নাই" msgstr "কোনো সম্প্ৰসাৰন ইনস্টল কৰা হোৱা নাই"
#. Translators: argument is an extension UUID. #. Translators: argument is an extension UUID. */
#: ../js/ui/lookingGlass.js:743 #: ../js/ui/lookingGlass.js:743
#, c-format #, javascript-format
msgid "%s has not emitted any errors." msgid "%s has not emitted any errors."
msgstr "%s এ কোনো ত্ৰুটি প্ৰেৰণ কৰা নাই।" msgstr "%s এ কোনো ত্ৰুটি প্ৰেৰণ কৰা নাই।"
@ -1172,7 +1139,7 @@ msgid "Unknown"
msgstr "অজ্ঞাত" msgstr "অজ্ঞাত"
#: ../js/ui/overviewControls.js:491 ../js/ui/screenShield.js:152 #: ../js/ui/overviewControls.js:491 ../js/ui/screenShield.js:152
#, c-format #, javascript-format
msgid "%d new message" msgid "%d new message"
msgid_plural "%d new messages" msgid_plural "%d new messages"
msgstr[0] "%d নতুন বাৰ্তা" msgstr[0] "%d নতুন বাৰ্তা"
@ -1189,7 +1156,7 @@ msgstr "অভাৰভিউ"
#. 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:258 #: ../js/ui/overview.js:258
msgid "Type to search…" msgid "Type to search…"
msgstr "সন্ধান কৰিবলে টাইপ কৰক…" msgstr "সন্ধান কৰিবলে টাইপ কৰক…"
@ -1199,20 +1166,15 @@ msgid "Quit"
msgstr "প্ৰস্থান কৰক" msgstr "প্ৰস্থান কৰক"
#. 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:570 #: ../js/ui/panel.js:570
msgid "Activities" msgid "Activities"
msgstr "কাৰ্য্যসমূহ" msgstr "কাৰ্য্যসমূহ"
#: ../js/ui/panel.js:903 #: ../js/ui/panel.js:904
msgid "Top Bar" msgid "Top Bar"
msgstr "উপৰৰ বাৰ" msgstr "উপৰৰ বাৰ"
#. 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:233 #: ../js/ui/popupMenu.js:233
msgid "toggle-switch-us" msgid "toggle-switch-us"
msgstr "toggle-switch-us" msgstr "toggle-switch-us"
@ -1226,13 +1188,13 @@ msgid "Close"
msgstr "বন্ধ কৰক" msgstr "বন্ধ কৰক"
#. 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, %B %d" msgstr "%A, %B %d"
#: ../js/ui/screenShield.js:154 #: ../js/ui/screenShield.js:154
#, c-format #, javascript-format
msgid "%d new notification" msgid "%d new notification"
msgid_plural "%d new notifications" msgid_plural "%d new notifications"
msgstr[0] "%d নতুন অধিসূচনা" msgstr[0] "%d নতুন অধিসূচনা"
@ -1246,13 +1208,6 @@ msgstr "লক কৰক"
msgid "GNOME needs to lock the screen" msgid "GNOME needs to lock the screen"
msgstr "GNOME এ পৰ্দা লক কৰিব লাগিব" msgstr "GNOME এ পৰ্দা লক কৰিব লাগিব"
#. 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:831 ../js/ui/screenShield.js:1297 #: ../js/ui/screenShield.js:831 ../js/ui/screenShield.js:1297
msgid "Unable to lock" msgid "Unable to lock"
msgstr "লক কৰিবলে অক্ষম" msgstr "লক কৰিবলে অক্ষম"
@ -1261,11 +1216,11 @@ msgstr "লক কৰিবলে অক্ষম"
msgid "Lock was blocked by an application" msgid "Lock was blocked by an application"
msgstr "লক কাৰ্য্য এটা এপ্লিকেচন দ্বাৰা প্ৰতিৰোধ কৰা হৈছিল" msgstr "লক কাৰ্য্য এটা এপ্লিকেচন দ্বাৰা প্ৰতিৰোধ কৰা হৈছিল"
#: ../js/ui/searchDisplay.js:447 #: ../js/ui/searchDisplay.js:448
msgid "Searching…" msgid "Searching…"
msgstr "সন্ধান কৰা হৈছে…" msgstr "সন্ধান কৰা হৈছে…"
#: ../js/ui/searchDisplay.js:491 #: ../js/ui/searchDisplay.js:492
msgid "No results." msgid "No results."
msgstr "কোনো ফলাফল নাই।" msgstr "কোনো ফলাফল নাই।"
@ -1337,8 +1292,6 @@ msgstr "উচ্চ কন্ট্ৰাস্ট"
msgid "Large Text" msgid "Large Text"
msgstr "ডাঙৰ লিখনী" msgstr "ডাঙৰ লিখনী"
#. 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:28 ../js/ui/status/bluetooth.js:63 #: ../js/ui/status/bluetooth.js:28 ../js/ui/status/bluetooth.js:63
#: ../js/ui/status/bluetooth.js:100 ../js/ui/status/bluetooth.js:128 #: ../js/ui/status/bluetooth.js:100 ../js/ui/status/bluetooth.js:128
#: ../js/ui/status/bluetooth.js:164 ../js/ui/status/bluetooth.js:195 #: ../js/ui/status/bluetooth.js:164 ../js/ui/status/bluetooth.js:195
@ -1346,7 +1299,7 @@ msgid "Bluetooth"
msgstr "ব্লুটুথ" msgstr "ব্লুটুথ"
#: ../js/ui/status/bluetooth.js:30 ../js/ui/status/network.js:112 #: ../js/ui/status/bluetooth.js:30 ../js/ui/status/network.js:112
#: ../js/ui/status/network.js:1034 ../js/ui/status/rfkill.js:46 #: ../js/ui/status/network.js:1040 ../js/ui/status/rfkill.js:46
msgid "Turn Off" msgid "Turn Off"
msgstr "বন্ধ কৰক" msgstr "বন্ধ কৰক"
@ -1355,20 +1308,20 @@ msgid "Bluetooth Settings"
msgstr "ব্লুটুথ সংহতিসমূহ" msgstr "ব্লুটুথ সংহতিসমূহ"
#: ../js/ui/status/bluetooth.js:58 #: ../js/ui/status/bluetooth.js:58
#, c-format #, javascript-format
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:101 ../js/ui/status/bluetooth.js:129 #: ../js/ui/status/bluetooth.js:101 ../js/ui/status/bluetooth.js:129
#, c-format #, javascript-format
msgid "Authorization request from %s" msgid "Authorization request from %s"
msgstr "%s ৰ পৰা প্ৰমাণীকৰণ অনুৰোধ" msgstr "%s ৰ পৰা প্ৰমাণীকৰণ অনুৰোধ"
#: ../js/ui/status/bluetooth.js:107 ../js/ui/status/bluetooth.js:172 #: ../js/ui/status/bluetooth.js:107 ../js/ui/status/bluetooth.js:172
#: ../js/ui/status/bluetooth.js:203 #: ../js/ui/status/bluetooth.js:203
#, c-format #, javascript-format
msgid "Device %s wants to pair with this computer" msgid "Device %s wants to pair with this computer"
msgstr "ডিভাইচ %s এ এই কমপিউটাৰৰ লগত সংযোগ কৰিব বিচাৰে" msgstr "ডিভাইচ %s এ এই কমপিউটাৰৰ লগত সংযোগ কৰিব বিচাৰে"
@ -1381,7 +1334,7 @@ msgid "Deny"
msgstr "নাকচ কৰক" msgstr "নাকচ কৰক"
#: ../js/ui/status/bluetooth.js:135 #: ../js/ui/status/bluetooth.js:135
#, c-format #, javascript-format
msgid "Device %s wants access to the service '%s'" msgid "Device %s wants access to the service '%s'"
msgstr "ডিভাইচ %s এ সেৱা '%s' লে অভিগম বিচাৰে" msgstr "ডিভাইচ %s এ সেৱা '%s' লে অভিগম বিচাৰে"
@ -1397,19 +1350,19 @@ msgstr "কেৱল এইবাৰৰ কাৰণে প্ৰদান ক
msgid "Reject" msgid "Reject"
msgstr "নাকচ কৰক" msgstr "নাকচ কৰক"
#. Translators: argument is the device short name #. Translators: argument is the device short name */
#: ../js/ui/status/bluetooth.js:166 #: ../js/ui/status/bluetooth.js:166
#, c-format #, javascript-format
msgid "Pairing confirmation for %s" msgid "Pairing confirmation for %s"
msgstr "%s ৰ কাৰণে যোৰ প্ৰতিশ্ৰুতি" msgstr "%s ৰ কাৰণে যোৰ প্ৰতিশ্ৰুতি"
#: ../js/ui/status/bluetooth.js:173 #: ../js/ui/status/bluetooth.js:173
#, c-format #, javascript-format
msgid "" msgid ""
"Please confirm whether the Passkey '%06d' matches the one on the device." "Please confirm whether the Passkey '%06d' matches the one on the device."
msgstr "অনুগ্ৰহ কৰি সুনিশ্চিত কৰক যে পাছকি '%06d' ডিভাইচত থকাটোৰ সৈতে মিল খায়।" msgstr "অনুগ্ৰহ কৰি সুনিশ্চিত কৰক যে পাছকি '%06d' ডিভাইচত থকাটোৰ সৈতে মিল খায়।"
#. Translators: this is the verb, not the noun #. Translators: this is the verb, not the noun */
#: ../js/ui/status/bluetooth.js:176 #: ../js/ui/status/bluetooth.js:176
msgid "Matches" msgid "Matches"
msgstr "মিলসমূহ" msgstr "মিলসমূহ"
@ -1419,7 +1372,7 @@ msgid "Does not match"
msgstr "মিল নাখায়" msgstr "মিল নাখায়"
#: ../js/ui/status/bluetooth.js:196 #: ../js/ui/status/bluetooth.js:196
#, c-format #, javascript-format
msgid "Pairing request for %s" msgid "Pairing request for %s"
msgstr "%s ৰ কাৰণে যোৰ অনুৰোধ" msgstr "%s ৰ কাৰণে যোৰ অনুৰোধ"
@ -1435,25 +1388,21 @@ msgstr "ঠিক আছে"
msgid "Brightness" msgid "Brightness"
msgstr "উজ্জ্বলতা" msgstr "উজ্জ্বলতা"
#: ../js/ui/status/keyboard.js:403
msgid "Show Keyboard Layout"
msgstr "কিবৰ্ড বিন্যাস দেখুৱাওক"
#: ../js/ui/status/network.js:72 #: ../js/ui/status/network.js:72
msgid "<unknown>" msgid "<unknown>"
msgstr "<unknown>" msgstr "<unknown>"
#: ../js/ui/status/network.js:203 ../js/ui/status/network.js:1049 #: ../js/ui/status/network.js:203 ../js/ui/status/network.js:1055
msgid "Off" msgid "Off"
msgstr "অফ" msgstr "অফ"
#: ../js/ui/status/network.js:276 ../js/ui/status/network.js:955 #: ../js/ui/status/network.js:276 ../js/ui/status/network.js:961
#: ../js/ui/status/rfkill.js:49 #: ../js/ui/status/rfkill.js:49
msgid "Network Settings" msgid "Network Settings"
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:364 #: ../js/ui/status/network.js:364
msgid "unmanaged" msgid "unmanaged"
msgstr "অব্যৱস্থাপিত" msgstr "অব্যৱস্থাপিত"
@ -1462,64 +1411,64 @@ msgstr "অব্যৱস্থাপিত"
msgid "disconnecting..." msgid "disconnecting..."
msgstr "বিচ্ছিনিত কৰা হৈছে..." msgstr "বিচ্ছিনিত কৰা হৈছে..."
#: ../js/ui/status/network.js:372 ../js/ui/status/network.js:1100 #: ../js/ui/status/network.js:372 ../js/ui/status/network.js:1106
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:375 ../js/ui/status/network.js:1103 #: ../js/ui/status/network.js:375 ../js/ui/status/network.js:1109
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:383 #: ../js/ui/status/network.js:383
msgid "firmware missing" msgid "firmware missing"
msgstr "ফাৰ্মৱেৰ সন্ধানহীন" msgstr "ফাৰ্মৱেৰ সন্ধানহীন"
#. 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:387 #: ../js/ui/status/network.js:387
msgid "unavailable" msgid "unavailable"
msgstr "উপলব্ধ নাই" msgstr "উপলব্ধ নাই"
#: ../js/ui/status/network.js:389 ../js/ui/status/network.js:1105 #: ../js/ui/status/network.js:389 ../js/ui/status/network.js:1111
msgid "connection failed" msgid "connection failed"
msgstr "সংযোগ ব্যৰ্থ" msgstr "সংযোগ ব্যৰ্থ"
#: ../js/ui/status/network.js:654 #: ../js/ui/status/network.js:660
msgid "Wi-Fi Networks" msgid "Wi-Fi Networks"
msgstr "Wi-Fi নেটৱাৰ্কসমূহ" msgstr "Wi-Fi নেটৱাৰ্কসমূহ"
#: ../js/ui/status/network.js:656 #: ../js/ui/status/network.js:662
msgid "Select a network" msgid "Select a network"
msgstr "এটা নেটৱাৰ্ক বাছক" msgstr "এটা নেটৱাৰ্ক বাছক"
#: ../js/ui/status/network.js:680 #: ../js/ui/status/network.js:686
msgid "No Networks" msgid "No Networks"
msgstr "কোনো নেটৱাৰ্ক নাই" msgstr "কোনো নেটৱাৰ্ক নাই"
#: ../js/ui/status/network.js:949 #: ../js/ui/status/network.js:955
msgid "Select Network" msgid "Select Network"
msgstr "নেটৱাৰ্ক বাছক" msgstr "নেটৱাৰ্ক বাছক"
#: ../js/ui/status/network.js:1034 #: ../js/ui/status/network.js:1040
msgid "Turn On" msgid "Turn On"
msgstr "অন কৰক" msgstr "অন কৰক"
#: ../js/ui/status/network.js:1167 #: ../js/ui/status/network.js:1173
msgid "VPN" msgid "VPN"
msgstr "VPN" msgstr "VPN"
#: ../js/ui/status/network.js:1307 #: ../js/ui/status/network.js:1313
msgid "Network Manager" msgid "Network Manager"
msgstr "নেটৱাৰ্ক ব্যৱস্থাপক" msgstr "নেটৱাৰ্ক ব্যৱস্থাপক"
#: ../js/ui/status/network.js:1346 #: ../js/ui/status/network.js:1352
msgid "Connection failed" msgid "Connection failed"
msgstr "সংযোগ ব্যৰ্থ" msgstr "সংযোগ ব্যৰ্থ"
#: ../js/ui/status/network.js:1347 #: ../js/ui/status/network.js:1353
msgid "Activation of network connection failed" msgid "Activation of network connection failed"
msgstr "নেটৱাৰ্ক সংযোগ সক্ৰিয়কৰণ ব্যৰ্থ হল" msgstr "নেটৱাৰ্ক সংযোগ সক্ৰিয়কৰণ ব্যৰ্থ হল"
@ -1535,28 +1484,22 @@ msgstr "শক্তি সংহতিসমূহ"
msgid "Fully Charged" msgid "Fully Charged"
msgstr "সম্পূৰ্ণ চাৰ্জ হৈছে" msgstr "সম্পূৰ্ণ চাৰ্জ হৈছে"
#. 0 is reported when UPower does not have enough data
#. to estimate battery life
#. state is one of PENDING_CHARGING, PENDING_DISCHARGING
#: ../js/ui/status/power.js:69 ../js/ui/status/power.js:86 #: ../js/ui/status/power.js:69 ../js/ui/status/power.js:86
msgid "Estimating…" msgid "Estimating…"
msgstr "অনুমান কৰা হৈছে…" msgstr "অনুমান কৰা হৈছে…"
#. Translators: this is <hours>:<minutes> Remaining (<percentage>)
#: ../js/ui/status/power.js:77 #: ../js/ui/status/power.js:77
#, c-format #, javascript-format
msgid "%d\\u2236%02d Remaining (%d%%)" #| msgid "%d\\u2236%02d Remaining (%d%%)"
msgstr "%d\\u2236%02d অৱশিষ্ট (%d%%)" msgid "%d%02d Remaining (%d%%)"
msgstr "%d%02d অৱশিষ্ট (%d%%)"
#. Translators: this is <hours>:<minutes> Until Full (<percentage>)
#: ../js/ui/status/power.js:82 #: ../js/ui/status/power.js:82
#, c-format #, javascript-format
msgid "%d\\u2236%02d Until Full (%d%%)" #| msgid "%d\\u2236%02d Until Full (%d%%)"
msgstr "%d\\u2236%02d সম্পূৰ্ণ হোৱালৈ (%d%%)" msgid "%d%02d Until Full (%d%%)"
msgstr "%d%02d সম্পূৰ্ণ হোৱালৈ (%d%%)"
#. 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:43 #: ../js/ui/status/rfkill.js:43
msgid "Airplane Mode" msgid "Airplane Mode"
msgstr "বিমান অৱস্থা" msgstr "বিমান অৱস্থা"
@ -1614,7 +1557,7 @@ msgid "Search"
msgstr "সন্ধান কৰক" msgstr "সন্ধান কৰক"
#: ../js/ui/wanda.js:77 #: ../js/ui/wanda.js:77
#, c-format #, javascript-format
msgid "" msgid ""
"Sorry, no wisdom for you today:\n" "Sorry, no wisdom for you today:\n"
"%s" "%s"
@ -1623,12 +1566,12 @@ msgstr ""
"%s" "%s"
#: ../js/ui/wanda.js:81 #: ../js/ui/wanda.js:81
#, c-format #, javascript-format
msgid "%s the Oracle says" msgid "%s the Oracle says"
msgstr "%s Oracle এ ক'য়" msgstr "%s Oracle এ ক'য়"
#: ../js/ui/windowAttentionHandler.js:19 #: ../js/ui/windowAttentionHandler.js:19
#, c-format #, javascript-format
msgid "'%s' is ready" msgid "'%s' is ready"
msgstr "'%s' প্ৰস্তুত" msgstr "'%s' প্ৰস্তুত"
@ -1638,7 +1581,7 @@ msgstr "আপুনি এই প্ৰদৰ্শন সংহতিসমূ
#. 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:75 #: ../js/ui/windowManager.js:75
msgid "Revert Settings" msgid "Revert Settings"
msgstr "সংহতিসমূহক পূৰ্ব অৱস্থালৈ নিয়ক" msgstr "সংহতিসমূহক পূৰ্ব অৱস্থালৈ নিয়ক"
@ -1648,7 +1591,7 @@ msgid "Keep Changes"
msgstr "পৰিৱৰ্তনসমূহ ৰাখক" msgstr "পৰিৱৰ্তনসমূহ ৰাখক"
#: ../js/ui/windowManager.js:97 #: ../js/ui/windowManager.js:97
#, c-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] "সংহতিসমূহৰ পৰিবৰ্তন %d ছেকেণ্ডত পূৰ্ব অৱস্থালৈ যাব" msgstr[0] "সংহতিসমূহৰ পৰিবৰ্তন %d ছেকেণ্ডত পূৰ্ব অৱস্থালৈ যাব"
@ -1713,6 +1656,23 @@ msgstr "পাছৱাৰ্ড ৰিক্ত হব নোৱাৰিব"
msgid "Authentication dialog was dismissed by the user" msgid "Authentication dialog was dismissed by the user"
msgstr "প্ৰমাণীকৰণ ডাইলগ ব্যৱহাৰকাৰী দ্বাৰা নাকচ কৰা হৈছিল" msgstr "প্ৰমাণীকৰণ ডাইলগ ব্যৱহাৰকাৰী দ্বাৰা নাকচ কৰা হৈছিল"
#~ msgid "There was an error loading the preferences dialog for %s:"
#~ msgstr "%s ৰ বাবে পছন্দসমূহ ডাইলগ ল'ড কৰোতে এটা ত্ৰুটি হৈছিল:"
#~ msgid "Extension"
#~ msgstr "প্ৰসাৰন"
#~ msgctxt "event list time"
#~ msgid "%H\\u2236%M"
#~ msgstr "%H\\u2236%M"
#~ msgctxt "event list time"
#~ msgid "%l\\u2236%M\\u2009%p"
#~ msgstr "%l\\u2236%M\\u2009%p"
#~ msgid "Show Keyboard Layout"
#~ msgstr "কিবৰ্ড বিন্যাস দেখুৱাওক"
#~ msgid "Settings Menu" #~ msgid "Settings Menu"
#~ msgstr "সংহতিসমূহ মেনু" #~ msgstr "সংহতিসমূহ মেনু"

309
po/be.po
View File

@ -5,7 +5,7 @@ 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: 2013-09-23 13:35+0000\n" "POT-Creation-Date: 2013-10-02 17:58+0000\n"
"PO-Revision-Date: 2012-10-16 12:05+0300\n" "PO-Revision-Date: 2012-10-16 12:05+0300\n"
"Last-Translator: Kasia Bondarava <kasia.bondarava@gmail.com>\n" "Last-Translator: Kasia Bondarava <kasia.bondarava@gmail.com>\n"
"Language-Team: Belarusian <i18n-bel-gnome@googlegroups.com>\n" "Language-Team: Belarusian <i18n-bel-gnome@googlegroups.com>\n"
@ -52,7 +52,6 @@ msgid "Window management and application launching"
msgstr "Кіраванне вокнамі і пуск праграм" msgstr "Кіраванне вокнамі і пуск праграм"
#: ../data/gnome-shell-extension-prefs.desktop.in.in.h:1 #: ../data/gnome-shell-extension-prefs.desktop.in.in.h:1
#: ../js/extensionPrefs/main.js:153
msgid "GNOME Shell Extension Preferences" msgid "GNOME Shell Extension Preferences"
msgstr "Настройкі пашырэння абалонкі GNOME" msgstr "Настройкі пашырэння абалонкі GNOME"
@ -265,16 +264,8 @@ msgstr "Прасторы працы толькі для асноўнага ма
#: ../data/org.gnome.shell.gschema.xml.in.in.h:38 #: ../data/org.gnome.shell.gschema.xml.in.in.h:38
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 ""
"Затрымліваць змяненне фокусу ў рэжыме мышы да спынення руху яе паказальніка"
#: ../js/extensionPrefs/main.js:125
#, c-format
msgid "There was an error loading the preferences dialog for %s:"
msgstr "Падчас загрузкі дыялогу настроек для %s узнікла памылка:"
#: ../js/extensionPrefs/main.js:165
msgid "Extension"
msgstr "Пашырэнне"
#: ../js/extensionPrefs/main.js:189 #: ../js/extensionPrefs/main.js:189
msgid "Select an extension to configure using the combobox above." msgid "Select an extension to configure using the combobox above."
@ -285,7 +276,7 @@ msgstr ""
#: ../js/gdm/authPrompt.js:145 ../js/ui/components/networkAgent.js:136 #: ../js/gdm/authPrompt.js:145 ../js/ui/components/networkAgent.js:136
#: ../js/ui/components/polkitAgent.js:161 ../js/ui/endSessionDialog.js:351 #: ../js/ui/components/polkitAgent.js:161 ../js/ui/endSessionDialog.js:351
#: ../js/ui/extensionDownloader.js:195 ../js/ui/shellMountOperation.js:399 #: ../js/ui/extensionDownloader.js:195 ../js/ui/shellMountOperation.js:399
#: ../js/ui/status/bluetooth.js:222 ../js/ui/status/network.js:686 #: ../js/ui/status/bluetooth.js:222 ../js/ui/status/network.js:692
msgid "Cancel" msgid "Cancel"
msgstr "Скасаваць" msgstr "Скасаваць"
@ -307,23 +298,15 @@ msgstr "Увайсці"
msgid "Choose Session" msgid "Choose Session"
msgstr "Выбар сеанса" msgstr "Выбар сеанса"
#. 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:454 #: ../js/gdm/loginDialog.js:454
msgid "Not listed?" msgid "Not listed?"
msgstr "Няма ў спісе?" msgstr "Няма ў спісе?"
#. 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:622 #: ../js/gdm/loginDialog.js:622
#, c-format #, javascript-format
msgid "(e.g., user or %s)" msgid "(e.g., user or %s)"
msgstr "(напр., карыстальнік ці %s)" msgstr "(напр., карыстальнік ці %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:627 ../js/ui/components/networkAgent.js:259 #: ../js/gdm/loginDialog.js:627 ../js/ui/components/networkAgent.js:259
#: ../js/ui/components/networkAgent.js:277 #: ../js/ui/components/networkAgent.js:277
msgid "Username: " msgid "Username: "
@ -337,11 +320,6 @@ msgstr "Акно ўваходу"
msgid "Authentication error" msgid "Authentication error"
msgstr "Памылка ідэнтыфікацыі" msgstr "Памылка ідэнтыфікацыі"
#. 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:436 #: ../js/gdm/util.js:436
msgid "(or swipe finger)" msgid "(or swipe finger)"
msgstr "(або правядзіце пальцам)" msgstr "(або правядзіце пальцам)"
@ -350,14 +328,12 @@ msgstr "(або правядзіце пальцам)"
msgid "Command not found" msgid "Command not found"
msgstr "Загад не знойдзены" msgstr "Загад не знойдзены"
#. Replace "Error invoking GLib.shell_parse_argv: " with
#. something nicer
#: ../js/misc/util.js:131 #: ../js/misc/util.js:131
msgid "Could not parse command:" msgid "Could not parse command:"
msgstr "Не ўдалося разабраць загад:" msgstr "Не ўдалося разабраць загад:"
#: ../js/misc/util.js:139 #: ../js/misc/util.js:139
#, c-format #, javascript-format
msgid "Execution of '%s' failed:" msgid "Execution of '%s' failed:"
msgstr "Не ўдалося выканаць \"%s\":" msgstr "Не ўдалося выканаць \"%s\":"
@ -386,16 +362,16 @@ msgid "Add to Favorites"
msgstr "Дадаць у спіс упадабанага" msgstr "Дадаць у спіс упадабанага"
#: ../js/ui/appFavorites.js:87 #: ../js/ui/appFavorites.js:87
#, c-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:121 #: ../js/ui/appFavorites.js:121
#, c-format #, javascript-format
msgid "%s has been removed from your favorites." msgid "%s has been removed from your favorites."
msgstr "%s выдалены з вашага спіса ўпадабанага." msgstr "%s выдалены з вашага спіса ўпадабанага."
#: ../js/ui/backgroundMenu.js:19 ../js/ui/panel.js:807 #: ../js/ui/backgroundMenu.js:19 ../js/ui/panel.js:808
#: ../js/ui/status/system.js:325 #: ../js/ui/status/system.js:325
msgid "Settings" msgid "Settings"
msgstr "Настройкі" msgstr "Настройкі"
@ -406,68 +382,68 @@ msgstr "Змяніць фон..."
#. 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:62 #: ../js/ui/calendar.js:62
msgctxt "event list time" msgctxt "event list time"
msgid "All Day" msgid "All Day"
msgstr "Увесь дзень" msgstr "Увесь дзень"
#. 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:68 #: ../js/ui/calendar.js:68
msgctxt "event list time" msgctxt "event list time"
msgid "%H\\u2236%M" msgid "%H%M"
msgstr "%H\\u2236%M" 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:77 #: ../js/ui/calendar.js:77
msgctxt "event list time" msgctxt "event list time"
msgid "%l\\u2236%M\\u2009%p" msgid "%l%M%p"
msgstr "%l\\u2236%M\\u2009%p" msgstr "%l%M%p"
#. Translators: Calendar grid abbreviation for Sunday. #. Translators: Calendar grid abbreviation for Sunday.
#. * #. *
#. * 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:108 #: ../js/ui/calendar.js:108
msgctxt "grid sunday" msgctxt "grid sunday"
msgid "S" msgid "S"
msgstr "Н" msgstr "Н"
#. Translators: Calendar grid abbreviation for Monday #. Translators: Calendar grid abbreviation for Monday */
#: ../js/ui/calendar.js:110 #: ../js/ui/calendar.js:110
msgctxt "grid monday" msgctxt "grid monday"
msgid "M" msgid "M"
msgstr "П" msgstr "П"
#. Translators: Calendar grid abbreviation for Tuesday #. Translators: Calendar grid abbreviation for Tuesday */
#: ../js/ui/calendar.js:112 #: ../js/ui/calendar.js:112
msgctxt "grid tuesday" msgctxt "grid tuesday"
msgid "T" msgid "T"
msgstr "А" msgstr "А"
#. Translators: Calendar grid abbreviation for Wednesday #. Translators: Calendar grid abbreviation for Wednesday */
#: ../js/ui/calendar.js:114 #: ../js/ui/calendar.js:114
msgctxt "grid wednesday" msgctxt "grid wednesday"
msgid "W" msgid "W"
msgstr "С" msgstr "С"
#. Translators: Calendar grid abbreviation for Thursday #. Translators: Calendar grid abbreviation for Thursday */
#: ../js/ui/calendar.js:116 #: ../js/ui/calendar.js:116
msgctxt "grid thursday" msgctxt "grid thursday"
msgid "T" msgid "T"
msgstr "Ч" msgstr "Ч"
#. Translators: Calendar grid abbreviation for Friday #. Translators: Calendar grid abbreviation for Friday */
#: ../js/ui/calendar.js:118 #: ../js/ui/calendar.js:118
msgctxt "grid friday" msgctxt "grid friday"
msgid "F" msgid "F"
msgstr "П" msgstr "П"
#. Translators: Calendar grid abbreviation for Saturday #. Translators: Calendar grid abbreviation for Saturday */
#: ../js/ui/calendar.js:120 #: ../js/ui/calendar.js:120
msgctxt "grid saturday" msgctxt "grid saturday"
msgid "S" msgid "S"
@ -478,48 +454,52 @@ msgstr "С"
#. * 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:133 #: ../js/ui/calendar.js:133
msgctxt "list sunday" msgctxt "list sunday"
msgid "Su" msgid "Su"
msgstr "Н" msgstr "Н"
#. Translators: Event list abbreviation for Monday #. Translators: Event list abbreviation for Monday */
#: ../js/ui/calendar.js:135 #: ../js/ui/calendar.js:135
msgctxt "list monday" msgctxt "list monday"
msgid "M" msgid "M"
msgstr "Пн" msgstr "Пн"
#. Translators: Event list abbreviation for Tuesday #. Translators: Event list abbreviation for Tuesday */
#: ../js/ui/calendar.js:137 #: ../js/ui/calendar.js:137
msgctxt "list tuesday" msgctxt "list tuesday"
msgid "T" msgid "T"
msgstr "А" msgstr "А"
#. Translators: Event list abbreviation for Wednesday #. Translators: Event list abbreviation for Wednesday */
#: ../js/ui/calendar.js:139 #: ../js/ui/calendar.js:139
msgctxt "list wednesday" msgctxt "list wednesday"
msgid "W" msgid "W"
msgstr "Ср" msgstr "Ср"
#. Translators: Event list abbreviation for Thursday #. Translators: Event list abbreviation for Thursday */
#: ../js/ui/calendar.js:141 #: ../js/ui/calendar.js:141
msgctxt "list thursday" msgctxt "list thursday"
msgid "Th" msgid "Th"
msgstr "Ч" msgstr "Ч"
#. Translators: Event list abbreviation for Friday #. Translators: Event list abbreviation for Friday */
#: ../js/ui/calendar.js:143 #: ../js/ui/calendar.js:143
msgctxt "list friday" msgctxt "list friday"
msgid "F" msgid "F"
msgstr "Пт" msgstr "Пт"
#. Translators: Event list abbreviation for Saturday #. Translators: Event list abbreviation for Saturday */
#: ../js/ui/calendar.js:145 #: ../js/ui/calendar.js:145
msgctxt "list saturday" msgctxt "list saturday"
msgid "S" msgid "S"
msgstr "Сб" msgstr "Сб"
#: ../js/ui/calendar.js:389
msgid "calendar:MY"
msgstr "calendar:MY"
#: ../js/ui/calendar.js:447 #: ../js/ui/calendar.js:447
msgid "Previous month" msgid "Previous month"
msgstr "Папярэдні месяц" msgstr "Папярэдні месяц"
@ -528,18 +508,18 @@ msgstr "Папярэдні месяц"
msgid "Next month" msgid "Next month"
msgstr "Наступны месяц" msgstr "Наступны месяц"
#. Translators: Text to show if there are no events #. Translators: Text to show if there are no events */
#: ../js/ui/calendar.js:753 #: ../js/ui/calendar.js:753
msgid "Nothing Scheduled" msgid "Nothing Scheduled"
msgstr "Нічога не прымеркавана" msgstr "Нічога не прымеркавана"
#. 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:771 #: ../js/ui/calendar.js:771
msgctxt "calendar heading" msgctxt "calendar heading"
msgid "%A, %B %d" msgid "%A, %B %d"
msgstr "%A, %d %B" msgstr "%A, %d %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:774 #: ../js/ui/calendar.js:774
msgctxt "calendar heading" msgctxt "calendar heading"
msgid "%A, %B %d, %Y" msgid "%A, %B %d, %Y"
@ -574,7 +554,7 @@ msgid "Removable Devices"
msgstr "Зменныя прыстасаванні" msgstr "Зменныя прыстасаванні"
#: ../js/ui/components/autorunManager.js:594 #: ../js/ui/components/autorunManager.js:594
#, c-format #, javascript-format
msgid "Open with %s" msgid "Open with %s"
msgstr "Адкрыць у %s" msgstr "Адкрыць у %s"
@ -591,11 +571,10 @@ msgid "Type again:"
msgstr "Паўтарыце пароль:" msgstr "Паўтарыце пароль:"
#: ../js/ui/components/networkAgent.js:131 ../js/ui/status/network.js:112 #: ../js/ui/components/networkAgent.js:131 ../js/ui/status/network.js:112
#: ../js/ui/status/network.js:275 ../js/ui/status/network.js:689 #: ../js/ui/status/network.js:275 ../js/ui/status/network.js:695
msgid "Connect" msgid "Connect"
msgstr "Злучыць" msgstr "Злучыць"
#. Cisco LEAP
#: ../js/ui/components/networkAgent.js:222 #: ../js/ui/components/networkAgent.js:222
#: ../js/ui/components/networkAgent.js:234 #: ../js/ui/components/networkAgent.js:234
#: ../js/ui/components/networkAgent.js:261 #: ../js/ui/components/networkAgent.js:261
@ -604,7 +583,6 @@ msgstr "Злучыць"
msgid "Password: " msgid "Password: "
msgstr "Пароль: " msgstr "Пароль: "
#. static WEP
#: ../js/ui/components/networkAgent.js:227 #: ../js/ui/components/networkAgent.js:227
msgid "Key: " msgid "Key: "
msgstr "Ключ: " msgstr "Ключ: "
@ -626,7 +604,7 @@ msgid "Authentication required by wireless network"
msgstr "Для бесправадной сеткі патрэбная ідэнтыфікацыя" msgstr "Для бесправадной сеткі патрэбная ідэнтыфікацыя"
#: ../js/ui/components/networkAgent.js:309 #: ../js/ui/components/networkAgent.js:309
#, c-format #, javascript-format
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'."
@ -665,7 +643,7 @@ msgid "Mobile broadband network password"
msgstr "Пароль да шырокапалоснай мабільнай сеткі" msgstr "Пароль да шырокапалоснай мабільнай сеткі"
#: ../js/ui/components/networkAgent.js:336 #: ../js/ui/components/networkAgent.js:336
#, c-format #, javascript-format
msgid "A password is required to connect to '%s'." msgid "A password is required to connect to '%s'."
msgstr "Каб злучыцца з \"%s\", патрэбны пароль." msgstr "Каб злучыцца з \"%s\", патрэбны пароль."
@ -684,23 +662,19 @@ msgstr "Ідэнтыфікаваць"
#. 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:266 ../js/ui/shellMountOperation.js:383 #: ../js/ui/components/polkitAgent.js:266 ../js/ui/shellMountOperation.js:383
msgid "Sorry, that didn't work. Please try again." msgid "Sorry, that didn't work. Please try again."
msgstr "На жаль, ідэнтыфікацыя не адбылася. Паўтарыце спробу." msgstr "На жаль, ідэнтыфікацыя не адбылася. Паўтарыце спробу."
#. FIXME: We don't have a 'chat room' icon (bgo #653737) use
#. system-users for now as Empathy does.
#: ../js/ui/components/telepathyClient.js:238 #: ../js/ui/components/telepathyClient.js:238
msgid "Invitation" msgid "Invitation"
msgstr "Запрашэнне" msgstr "Запрашэнне"
#. We got the TpContact
#: ../js/ui/components/telepathyClient.js:298 #: ../js/ui/components/telepathyClient.js:298
msgid "Call" msgid "Call"
msgstr "Званок" msgstr "Званок"
#. We got the TpContact
#: ../js/ui/components/telepathyClient.js:314 #: ../js/ui/components/telepathyClient.js:314
msgid "File Transfer" msgid "File Transfer"
msgstr "Перадача файла" msgstr "Перадача файла"
@ -717,49 +691,45 @@ msgstr "Вярнуць гук"
msgid "Mute" msgid "Mute"
msgstr "Абязгучыць" msgstr "Абязгучыць"
#. Translators: this is the word "Yesterday" followed by a time string. i.e. "Yesterday, 14:30" #. Translators: this is the word "Yesterday" followed by a time string. i.e. "Yesterday, 14:30"*/
#: ../js/ui/components/telepathyClient.js:942 #: ../js/ui/components/telepathyClient.js:942
#, no-c-format
msgid "<b>Yesterday</b>, <b>%H:%M</b>" msgid "<b>Yesterday</b>, <b>%H:%M</b>"
msgstr "<b>Учора</b>, <b>%H:%M</b>" msgstr "<b>Учора</b>, <b>%H:%M</b>"
#. Translators: this is the week day name followed by a time string. i.e. "Monday, 14:30 #. Translators: this is the week day name followed by a time string. i.e. "Monday, 14:30*/
#: ../js/ui/components/telepathyClient.js:948 #: ../js/ui/components/telepathyClient.js:948
#, no-c-format
msgid "<b>%A</b>, <b>%H:%M</b>" msgid "<b>%A</b>, <b>%H:%M</b>"
msgstr "<b>%A</b>, <b>%H:%M</b>" msgstr "<b>%A</b>, <b>%H:%M</b>"
#. Translators: this is the month name and day number followed by a time string. i.e. "May 25, 14:30" #. Translators: this is the month name and day number followed by a time string. i.e. "May 25, 14:30"*/
#: ../js/ui/components/telepathyClient.js:953 #: ../js/ui/components/telepathyClient.js:953
#, no-c-format
msgid "<b>%B</b> <b>%d</b>, <b>%H:%M</b>" msgid "<b>%B</b> <b>%d</b>, <b>%H:%M</b>"
msgstr "<b>%d</b> <b>%B</b>, <b>%H:%M</b>" msgstr "<b>%d</b> <b>%B</b>, <b>%H:%M</b>"
#. Translators: this is the month name, day number, year number followed by a time string. i.e. "May 25 2012, 14:30" #. Translators: this is the month name, day number, year number followed by a time string. i.e. "May 25 2012, 14:30"*/
#: ../js/ui/components/telepathyClient.js:957 #: ../js/ui/components/telepathyClient.js:957
#, no-c-format
msgid "<b>%B</b> <b>%d</b> <b>%Y</b>, <b>%H:%M</b> " msgid "<b>%B</b> <b>%d</b> <b>%Y</b>, <b>%H:%M</b> "
msgstr "<b>%d</b> <b>%B</b> <b>%Y</b>, <b>%H:%M</b> " msgstr "<b>%d</b> <b>%B</b> <b>%Y</b>, <b>%H:%M</b> "
#. 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:986 #: ../js/ui/components/telepathyClient.js:986
#, c-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:1089 #: ../js/ui/components/telepathyClient.js:1089
#, c-format #, javascript-format
msgid "Invitation to %s" msgid "Invitation to %s"
msgstr "Запрашэнне ў %s" 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:1097 #: ../js/ui/components/telepathyClient.js:1097
#, c-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"
@ -776,19 +746,19 @@ msgstr "Адмовіцца"
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:1130 #: ../js/ui/components/telepathyClient.js:1130
#, c-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:1133 #: ../js/ui/components/telepathyClient.js:1133
#, c-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:1142 #: ../js/ui/components/telepathyClient.js:1142
msgid "Answer" msgid "Answer"
msgstr "Адказаць" msgstr "Адказаць"
@ -797,15 +767,15 @@ msgstr "Адказаць"
#. * 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:1174 #: ../js/ui/components/telepathyClient.js:1174
#, c-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:1209 #: ../js/ui/components/telepathyClient.js:1209
#, c-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 просіць дазволу на прагляд вашага сеткавага стану"
@ -912,9 +882,9 @@ 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:1357 #: ../js/ui/components/telepathyClient.js:1357
#, c-format #, javascript-format
msgid "Unable to connect to %s" msgid "Unable to connect to %s"
msgstr "Не ўдалося злучыцца з %s" msgstr "Не ўдалося злучыцца з %s"
@ -934,8 +904,6 @@ msgstr "Вокны"
msgid "Show Applications" msgid "Show Applications"
msgstr "Паказаць праграмы" msgstr "Паказаць праграмы"
#. Translators: this is the name of the dock/favorites area on
#. the left of the overview
#: ../js/ui/dash.js:442 #: ../js/ui/dash.js:442
msgid "Dash" msgid "Dash"
msgstr "Прыборная дошка" msgstr "Прыборная дошка"
@ -954,13 +922,13 @@ 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:202 #: ../js/ui/dateMenu.js:202
msgid "%A %B %e, %Y" msgid "%A %B %e, %Y"
msgstr "%A, %e %B, %Y" msgstr "%A, %e %B, %Y"
#: ../js/ui/endSessionDialog.js:62 #: ../js/ui/endSessionDialog.js:62
#, c-format #, javascript-format
msgctxt "title" msgctxt "title"
msgid "Log Out %s" msgid "Log Out %s"
msgstr "Заканчэнне сеанса (%s)" msgstr "Заканчэнне сеанса (%s)"
@ -971,7 +939,7 @@ msgid "Log Out"
msgstr "Заканчэнне сеанса" msgstr "Заканчэнне сеанса"
#: ../js/ui/endSessionDialog.js:65 #: ../js/ui/endSessionDialog.js:65
#, c-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 секунду."
@ -979,7 +947,7 @@ msgstr[1] "%s аўтаматычна скончыць сеанс працы з
msgstr[2] "%s аўтаматычна скончыць сеанс працы з сістэмай праз %d секунд." msgstr[2] "%s аўтаматычна скончыць сеанс працы з сістэмай праз %d секунд."
#: ../js/ui/endSessionDialog.js:70 #: ../js/ui/endSessionDialog.js:70
#, c-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 секунду."
@ -997,7 +965,7 @@ msgid "Power Off"
msgstr "Выключэнне камп'ютара" msgstr "Выключэнне камп'ютара"
#: ../js/ui/endSessionDialog.js:83 #: ../js/ui/endSessionDialog.js:83
#, c-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 секунду."
@ -1020,7 +988,7 @@ msgid "Restart"
msgstr "Перазапуск сістэмы" msgstr "Перазапуск сістэмы"
#: ../js/ui/endSessionDialog.js:99 #: ../js/ui/endSessionDialog.js:99
#, c-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 секунду."
@ -1033,7 +1001,7 @@ msgid "Restart & Install Updates"
msgstr "Перазапуск і ўсталяванне абнаўленняў" msgstr "Перазапуск і ўсталяванне абнаўленняў"
#: ../js/ui/endSessionDialog.js:114 #: ../js/ui/endSessionDialog.js:114
#, c-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."
@ -1057,15 +1025,15 @@ msgstr "Некаторыя праграмы занятыя або маюць н
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:479 #: ../js/ui/endSessionDialog.js:479
#, c-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:482 #: ../js/ui/endSessionDialog.js:482
#, c-format #, javascript-format
msgid "%s (console)" msgid "%s (console)"
msgstr "%s (кансоль)" msgstr "%s (кансоль)"
@ -1074,11 +1042,11 @@ msgid "Install"
msgstr "Усталяваць" msgstr "Усталяваць"
#: ../js/ui/extensionDownloader.js:204 #: ../js/ui/extensionDownloader.js:204
#, c-format #, javascript-format
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:619 ../js/ui/status/keyboard.js:333 #: ../js/ui/keyboard.js:619
msgid "Keyboard" msgid "Keyboard"
msgstr "Клавіятура" msgstr "Клавіятура"
@ -1086,9 +1054,9 @@ msgstr "Клавіятура"
msgid "No extensions installed" msgid "No extensions installed"
msgstr "Няма ўсталяваных пашырэнняў" msgstr "Няма ўсталяваных пашырэнняў"
#. Translators: argument is an extension UUID. #. Translators: argument is an extension UUID. */
#: ../js/ui/lookingGlass.js:743 #: ../js/ui/lookingGlass.js:743
#, c-format #, javascript-format
msgid "%s has not emitted any errors." msgid "%s has not emitted any errors."
msgstr "%s не зрабіў ніякіх памылак." msgstr "%s не зрабіў ніякіх памылак."
@ -1168,7 +1136,7 @@ msgid "Unknown"
msgstr "Невядомая" msgstr "Невядомая"
#: ../js/ui/overviewControls.js:491 ../js/ui/screenShield.js:152 #: ../js/ui/overviewControls.js:491 ../js/ui/screenShield.js:152
#, c-format #, javascript-format
msgid "%d new message" msgid "%d new message"
msgid_plural "%d new messages" msgid_plural "%d new messages"
msgstr[0] "%d новае паведамленне" msgstr[0] "%d новае паведамленне"
@ -1186,7 +1154,7 @@ msgstr "Агляд"
#. 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:258 #: ../js/ui/overview.js:258
msgid "Type to search…" msgid "Type to search…"
msgstr "Увядзіце тэкст для пошуку..." msgstr "Увядзіце тэкст для пошуку..."
@ -1196,20 +1164,15 @@ msgid "Quit"
msgstr "Выйсці" msgstr "Выйсці"
#. 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:570 #: ../js/ui/panel.js:570
msgid "Activities" msgid "Activities"
msgstr "Заняткі" msgstr "Заняткі"
#: ../js/ui/panel.js:903 #: ../js/ui/panel.js:904
msgid "Top Bar" msgid "Top Bar"
msgstr "Верхняя панэль" msgstr "Верхняя панэль"
#. 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:233 #: ../js/ui/popupMenu.js:233
msgid "toggle-switch-us" msgid "toggle-switch-us"
msgstr "toggle-switch-intl" msgstr "toggle-switch-intl"
@ -1223,13 +1186,13 @@ msgid "Close"
msgstr "Закрыць" msgstr "Закрыць"
#. 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 %B" msgstr "%A, %d %B"
#: ../js/ui/screenShield.js:154 #: ../js/ui/screenShield.js:154
#, c-format #, javascript-format
msgid "%d new notification" msgid "%d new notification"
msgid_plural "%d new notifications" msgid_plural "%d new notifications"
msgstr[0] "%d новае апавяшчэнне" msgstr[0] "%d новае апавяшчэнне"
@ -1244,13 +1207,6 @@ msgstr "Заблакіраваць"
msgid "GNOME needs to lock the screen" msgid "GNOME needs to lock the screen"
msgstr "GNOME патрабуе блакіравання экрана" msgstr "GNOME патрабуе блакіравання экрана"
#. 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:831 ../js/ui/screenShield.js:1297 #: ../js/ui/screenShield.js:831 ../js/ui/screenShield.js:1297
msgid "Unable to lock" msgid "Unable to lock"
msgstr "Не ўдалося заблакіраваць" msgstr "Не ўдалося заблакіраваць"
@ -1259,11 +1215,11 @@ msgstr "Не ўдалося заблакіраваць"
msgid "Lock was blocked by an application" msgid "Lock was blocked by an application"
msgstr "Блакіраванне стрымана праграмай" msgstr "Блакіраванне стрымана праграмай"
#: ../js/ui/searchDisplay.js:447 #: ../js/ui/searchDisplay.js:448
msgid "Searching…" msgid "Searching…"
msgstr "Пошук..." msgstr "Пошук..."
#: ../js/ui/searchDisplay.js:491 #: ../js/ui/searchDisplay.js:492
msgid "No results." msgid "No results."
msgstr "Нічога не знойдзена." msgstr "Нічога не знойдзена."
@ -1335,8 +1291,6 @@ msgstr "Высокая кантраснасць"
msgid "Large Text" msgid "Large Text"
msgstr "Буйны тэкст" msgstr "Буйны тэкст"
#. 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:28 ../js/ui/status/bluetooth.js:63 #: ../js/ui/status/bluetooth.js:28 ../js/ui/status/bluetooth.js:63
#: ../js/ui/status/bluetooth.js:100 ../js/ui/status/bluetooth.js:128 #: ../js/ui/status/bluetooth.js:100 ../js/ui/status/bluetooth.js:128
#: ../js/ui/status/bluetooth.js:164 ../js/ui/status/bluetooth.js:195 #: ../js/ui/status/bluetooth.js:164 ../js/ui/status/bluetooth.js:195
@ -1344,7 +1298,7 @@ msgid "Bluetooth"
msgstr "Bluetooth" msgstr "Bluetooth"
#: ../js/ui/status/bluetooth.js:30 ../js/ui/status/network.js:112 #: ../js/ui/status/bluetooth.js:30 ../js/ui/status/network.js:112
#: ../js/ui/status/network.js:1034 ../js/ui/status/rfkill.js:46 #: ../js/ui/status/network.js:1040 ../js/ui/status/rfkill.js:46
msgid "Turn Off" msgid "Turn Off"
msgstr "Выключыць" msgstr "Выключыць"
@ -1353,7 +1307,7 @@ msgid "Bluetooth Settings"
msgstr "Настройкі Bluetooth" msgstr "Настройкі Bluetooth"
#: ../js/ui/status/bluetooth.js:58 #: ../js/ui/status/bluetooth.js:58
#, c-format #, javascript-format
msgid "%d Connected Device" msgid "%d Connected Device"
msgid_plural "%d Connected Devices" msgid_plural "%d Connected Devices"
msgstr[0] "%d злучанае прыстасаванне" msgstr[0] "%d злучанае прыстасаванне"
@ -1361,13 +1315,13 @@ msgstr[1] "%d злучаныя прыстасаванні"
msgstr[2] "%d злучаных прыстасаванняў" msgstr[2] "%d злучаных прыстасаванняў"
#: ../js/ui/status/bluetooth.js:101 ../js/ui/status/bluetooth.js:129 #: ../js/ui/status/bluetooth.js:101 ../js/ui/status/bluetooth.js:129
#, c-format #, javascript-format
msgid "Authorization request from %s" msgid "Authorization request from %s"
msgstr "Запыт на ўпаўнаважанне ад %s" msgstr "Запыт на ўпаўнаважанне ад %s"
#: ../js/ui/status/bluetooth.js:107 ../js/ui/status/bluetooth.js:172 #: ../js/ui/status/bluetooth.js:107 ../js/ui/status/bluetooth.js:172
#: ../js/ui/status/bluetooth.js:203 #: ../js/ui/status/bluetooth.js:203
#, c-format #, javascript-format
msgid "Device %s wants to pair with this computer" msgid "Device %s wants to pair with this computer"
msgstr "Прыстасаванне %s хоча спарыцца з гэтым камп'ютарам" msgstr "Прыстасаванне %s хоча спарыцца з гэтым камп'ютарам"
@ -1380,7 +1334,7 @@ msgid "Deny"
msgstr "Адмовіць" msgstr "Адмовіць"
#: ../js/ui/status/bluetooth.js:135 #: ../js/ui/status/bluetooth.js:135
#, c-format #, javascript-format
msgid "Device %s wants access to the service '%s'" msgid "Device %s wants access to the service '%s'"
msgstr "Прыстасаванне %s хоча даступіцца да паслугі \"%s\"" msgstr "Прыстасаванне %s хоча даступіцца да паслугі \"%s\""
@ -1396,19 +1350,19 @@ msgstr "Даць дазвол аднойчы"
msgid "Reject" msgid "Reject"
msgstr "Адмовіць" msgstr "Адмовіць"
#. Translators: argument is the device short name #. Translators: argument is the device short name */
#: ../js/ui/status/bluetooth.js:166 #: ../js/ui/status/bluetooth.js:166
#, c-format #, javascript-format
msgid "Pairing confirmation for %s" msgid "Pairing confirmation for %s"
msgstr "Пацвярджэнне спарвання з %s" msgstr "Пацвярджэнне спарвання з %s"
#: ../js/ui/status/bluetooth.js:173 #: ../js/ui/status/bluetooth.js:173
#, c-format #, javascript-format
msgid "" msgid ""
"Please confirm whether the Passkey '%06d' matches the one on the device." "Please confirm whether the Passkey '%06d' matches the one on the device."
msgstr "Праверце, ці супадае пароль \"%06d\" з нумарам на прыстасаванні." msgstr "Праверце, ці супадае пароль \"%06d\" з нумарам на прыстасаванні."
#. Translators: this is the verb, not the noun #. Translators: this is the verb, not the noun */
#: ../js/ui/status/bluetooth.js:176 #: ../js/ui/status/bluetooth.js:176
msgid "Matches" msgid "Matches"
msgstr "Супадае" msgstr "Супадае"
@ -1418,7 +1372,7 @@ msgid "Does not match"
msgstr "Не супадае" msgstr "Не супадае"
#: ../js/ui/status/bluetooth.js:196 #: ../js/ui/status/bluetooth.js:196
#, c-format #, javascript-format
msgid "Pairing request for %s" msgid "Pairing request for %s"
msgstr "Запыт на спарванне з %s" msgstr "Запыт на спарванне з %s"
@ -1434,25 +1388,21 @@ msgstr "Добра"
msgid "Brightness" msgid "Brightness"
msgstr "Яркасць" msgstr "Яркасць"
#: ../js/ui/status/keyboard.js:403
msgid "Show Keyboard Layout"
msgstr "Паказаць раскладку"
#: ../js/ui/status/network.js:72 #: ../js/ui/status/network.js:72
msgid "<unknown>" msgid "<unknown>"
msgstr "<невядома>" msgstr "<невядома>"
#: ../js/ui/status/network.js:203 ../js/ui/status/network.js:1049 #: ../js/ui/status/network.js:203 ../js/ui/status/network.js:1055
msgid "Off" msgid "Off"
msgstr "Выключана" msgstr "Выключана"
#: ../js/ui/status/network.js:276 ../js/ui/status/network.js:955 #: ../js/ui/status/network.js:276 ../js/ui/status/network.js:961
#: ../js/ui/status/rfkill.js:49 #: ../js/ui/status/rfkill.js:49
msgid "Network Settings" msgid "Network Settings"
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:364 #: ../js/ui/status/network.js:364
msgid "unmanaged" msgid "unmanaged"
msgstr "непадкантрольна" msgstr "непадкантрольна"
@ -1461,64 +1411,64 @@ msgstr "непадкантрольна"
msgid "disconnecting..." msgid "disconnecting..."
msgstr "адлучэнне..." msgstr "адлучэнне..."
#: ../js/ui/status/network.js:372 ../js/ui/status/network.js:1100 #: ../js/ui/status/network.js:372 ../js/ui/status/network.js:1106
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:375 ../js/ui/status/network.js:1103 #: ../js/ui/status/network.js:375 ../js/ui/status/network.js:1109
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:383 #: ../js/ui/status/network.js:383
msgid "firmware missing" msgid "firmware missing"
msgstr "няма апаратнага апраграмавання" msgstr "няма апаратнага апраграмавання"
#. 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:387 #: ../js/ui/status/network.js:387
msgid "unavailable" msgid "unavailable"
msgstr "недаступна" msgstr "недаступна"
#: ../js/ui/status/network.js:389 ../js/ui/status/network.js:1105 #: ../js/ui/status/network.js:389 ../js/ui/status/network.js:1111
msgid "connection failed" msgid "connection failed"
msgstr "не ўдалося злучыцца" msgstr "не ўдалося злучыцца"
#: ../js/ui/status/network.js:654 #: ../js/ui/status/network.js:660
msgid "Wi-Fi Networks" msgid "Wi-Fi Networks"
msgstr "Сеткі Wi-Fi" msgstr "Сеткі Wi-Fi"
#: ../js/ui/status/network.js:656 #: ../js/ui/status/network.js:662
msgid "Select a network" msgid "Select a network"
msgstr "Выберыце сетку" msgstr "Выберыце сетку"
#: ../js/ui/status/network.js:680 #: ../js/ui/status/network.js:686
msgid "No Networks" msgid "No Networks"
msgstr "Няма сетак" msgstr "Няма сетак"
#: ../js/ui/status/network.js:949 #: ../js/ui/status/network.js:955
msgid "Select Network" msgid "Select Network"
msgstr "Выбраць сетку" msgstr "Выбраць сетку"
#: ../js/ui/status/network.js:1034 #: ../js/ui/status/network.js:1040
msgid "Turn On" msgid "Turn On"
msgstr "Уключыць" msgstr "Уключыць"
#: ../js/ui/status/network.js:1167 #: ../js/ui/status/network.js:1174
msgid "VPN" msgid "VPN"
msgstr "VPN" msgstr "VPN"
#: ../js/ui/status/network.js:1307 #: ../js/ui/status/network.js:1314
msgid "Network Manager" msgid "Network Manager"
msgstr "Сеткавы кіраўнік" msgstr "Сеткавы кіраўнік"
#: ../js/ui/status/network.js:1346 #: ../js/ui/status/network.js:1353
msgid "Connection failed" msgid "Connection failed"
msgstr "Не ўдалося злучыцца" msgstr "Не ўдалося злучыцца"
#: ../js/ui/status/network.js:1347 #: ../js/ui/status/network.js:1354
msgid "Activation of network connection failed" msgid "Activation of network connection failed"
msgstr "Не ўдалося ўключыць сеткавае злучэнне" msgstr "Не ўдалося ўключыць сеткавае злучэнне"
@ -1534,28 +1484,20 @@ msgstr "Настройкі сілкавання"
msgid "Fully Charged" msgid "Fully Charged"
msgstr "Поўны зарад" msgstr "Поўны зарад"
#. 0 is reported when UPower does not have enough data
#. to estimate battery life
#. state is one of PENDING_CHARGING, PENDING_DISCHARGING
#: ../js/ui/status/power.js:69 ../js/ui/status/power.js:86 #: ../js/ui/status/power.js:69 ../js/ui/status/power.js:86
msgid "Estimating…" msgid "Estimating…"
msgstr "Прыблізная ацэнка..." msgstr "Прыблізная ацэнка..."
#. Translators: this is <hours>:<minutes> Remaining (<percentage>)
#: ../js/ui/status/power.js:77 #: ../js/ui/status/power.js:77
#, c-format #, javascript-format
msgid "%d\\u2236%02d Remaining (%d%%)" msgid "%d%02d Remaining (%d%%)"
msgstr "Засталося: %d\\u2236%02d (%d%%)" msgstr "Засталося: %d%02d (%d%%)"
#. Translators: this is <hours>:<minutes> Until Full (<percentage>)
#: ../js/ui/status/power.js:82 #: ../js/ui/status/power.js:82
#, c-format #, javascript-format
msgid "%d\\u2236%02d Until Full (%d%%)" msgid "%d%02d Until Full (%d%%)"
msgstr "Да поўнага зараду: %d\\u2236%02d (%d%%)" msgstr "Да поўнага зараду: %d%02d (%d%%)"
#. 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:43 #: ../js/ui/status/rfkill.js:43
msgid "Airplane Mode" msgid "Airplane Mode"
msgstr "Рэжым самалёта" msgstr "Рэжым самалёта"
@ -1613,7 +1555,7 @@ msgid "Search"
msgstr "Пошук" msgstr "Пошук"
#: ../js/ui/wanda.js:77 #: ../js/ui/wanda.js:77
#, c-format #, javascript-format
msgid "" msgid ""
"Sorry, no wisdom for you today:\n" "Sorry, no wisdom for you today:\n"
"%s" "%s"
@ -1622,12 +1564,12 @@ msgstr ""
"%s" "%s"
#: ../js/ui/wanda.js:81 #: ../js/ui/wanda.js:81
#, c-format #, javascript-format
msgid "%s the Oracle says" msgid "%s the Oracle says"
msgstr "Так сказаў Вяшчун %s" msgstr "Так сказаў Вяшчун %s"
#: ../js/ui/windowAttentionHandler.js:19 #: ../js/ui/windowAttentionHandler.js:19
#, c-format #, javascript-format
msgid "'%s' is ready" msgid "'%s' is ready"
msgstr "\"%s\" гатова" msgstr "\"%s\" гатова"
@ -1637,7 +1579,7 @@ msgstr "Захаваць гэтыя настройкі дысплея?"
#. 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:75 #: ../js/ui/windowManager.js:75
msgid "Revert Settings" msgid "Revert Settings"
msgstr "Вярнуць былыя настройкі" msgstr "Вярнуць былыя настройкі"
@ -1647,7 +1589,7 @@ msgid "Keep Changes"
msgstr "Захаваць змены" msgstr "Захаваць змены"
#: ../js/ui/windowManager.js:97 #: ../js/ui/windowManager.js:97
#, c-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] "Змены настроек будуць скасаваныя праз %d секунду" msgstr[0] "Змены настроек будуць скасаваныя праз %d секунду"
@ -1714,3 +1656,4 @@ msgstr "Пароль не можа быць пустым"
#: ../src/shell-polkit-authentication-agent.c:343 #: ../src/shell-polkit-authentication-agent.c:343
msgid "Authentication dialog was dismissed by the user" msgid "Authentication dialog was dismissed by the user"
msgstr "Карыстальнік праігнараваў дыялогавае акенца ідэнтыфікацыі" msgstr "Карыстальнік праігнараваў дыялогавае акенца ідэнтыфікацыі"

1866
po/ca.po

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

375
po/cs.po
View File

@ -12,8 +12,8 @@ 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: 2013-09-23 13:35+0000\n" "POT-Creation-Date: 2013-10-10 21:27+0000\n"
"PO-Revision-Date: 2013-09-24 16:09+0200\n" "PO-Revision-Date: 2013-10-11 16:28+0200\n"
"Last-Translator: Marek Černocký <marek@manet.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"
@ -58,7 +58,6 @@ msgid "Window management and application launching"
msgstr "Správa oken a spouštění aplikací" msgstr "Správa oken a spouštění aplikací"
#: ../data/gnome-shell-extension-prefs.desktop.in.in.h:1 #: ../data/gnome-shell-extension-prefs.desktop.in.in.h:1
#: ../js/extensionPrefs/main.js:153
msgid "GNOME Shell Extension Preferences" msgid "GNOME Shell Extension Preferences"
msgstr "Předvolby rozšíření GNOME Shell" msgstr "Předvolby rozšíření GNOME Shell"
@ -269,16 +268,6 @@ msgstr "Pracovní plochy jen na hlavním monitoru"
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 "Se změnou zaměření v režimu myši čekat na zastavení pohybu ukazatele" msgstr "Se změnou zaměření v režimu myši čekat na zastavení pohybu ukazatele"
#: ../js/extensionPrefs/main.js:125
#, c-format
msgid "There was an error loading the preferences dialog for %s:"
msgstr ""
"Při načítání dialogového okna s vlastnostmi rozšíření %s se vyskytla chyba:"
#: ../js/extensionPrefs/main.js:165
msgid "Extension"
msgstr "Rozšíření"
#: ../js/extensionPrefs/main.js:189 #: ../js/extensionPrefs/main.js:189
msgid "Select an extension to configure using the combobox above." msgid "Select an extension to configure using the combobox above."
msgstr "" msgstr ""
@ -287,7 +276,7 @@ msgstr ""
#: ../js/gdm/authPrompt.js:145 ../js/ui/components/networkAgent.js:136 #: ../js/gdm/authPrompt.js:145 ../js/ui/components/networkAgent.js:136
#: ../js/ui/components/polkitAgent.js:161 ../js/ui/endSessionDialog.js:351 #: ../js/ui/components/polkitAgent.js:161 ../js/ui/endSessionDialog.js:351
#: ../js/ui/extensionDownloader.js:195 ../js/ui/shellMountOperation.js:399 #: ../js/ui/extensionDownloader.js:195 ../js/ui/shellMountOperation.js:399
#: ../js/ui/status/bluetooth.js:222 ../js/ui/status/network.js:686 #: ../js/ui/status/bluetooth.js:222 ../js/ui/status/network.js:728
msgid "Cancel" msgid "Cancel"
msgstr "Zrušit" msgstr "Zrušit"
@ -309,23 +298,15 @@ msgstr "Přihlásit se"
msgid "Choose Session" msgid "Choose Session"
msgstr "Vybrat sezení" msgstr "Vybrat sezení"
#. 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:454 #: ../js/gdm/loginDialog.js:454
msgid "Not listed?" msgid "Not listed?"
msgstr "Nejste na seznamu?" msgstr "Nejste na seznamu?"
#. 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:622 #: ../js/gdm/loginDialog.js:622
#, c-format #, javascript-format
msgid "(e.g., user or %s)" msgid "(e.g., user or %s)"
msgstr "(např. uživatel nebo %s)" msgstr "(např. uživatel nebo %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:627 ../js/ui/components/networkAgent.js:259 #: ../js/gdm/loginDialog.js:627 ../js/ui/components/networkAgent.js:259
#: ../js/ui/components/networkAgent.js:277 #: ../js/ui/components/networkAgent.js:277
msgid "Username: " msgid "Username: "
@ -339,27 +320,20 @@ msgstr "Přihlašovací okno"
msgid "Authentication error" msgid "Authentication error"
msgstr "Chyba ověření" msgstr "Chyba ověření"
#. 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:436 #: ../js/gdm/util.js:436
msgid "(or swipe finger)" msgid "(or swipe finger)"
msgstr "(nebo otiskněte prst)" msgstr "(nebo otiskněte prst)"
#: ../js/misc/util.js:98 #: ../js/misc/util.js:115
msgid "Command not found" msgid "Command not found"
msgstr "Příkaz nenalezen" msgstr "Příkaz nenalezen"
#. Replace "Error invoking GLib.shell_parse_argv: " with #: ../js/misc/util.js:148
#. something nicer
#: ../js/misc/util.js:131
msgid "Could not parse command:" msgid "Could not parse command:"
msgstr "Nelze analyzovat příkaz:" msgstr "Nelze analyzovat příkaz:"
#: ../js/misc/util.js:139 #: ../js/misc/util.js:156
#, c-format #, javascript-format
msgid "Execution of '%s' failed:" msgid "Execution of '%s' failed:"
msgstr "Vykonání „%s“ selhalo:" msgstr "Vykonání „%s“ selhalo:"
@ -388,16 +362,16 @@ msgid "Add to Favorites"
msgstr "Přidat mezi oblíbené" msgstr "Přidat mezi oblíbené"
#: ../js/ui/appFavorites.js:87 #: ../js/ui/appFavorites.js:87
#, c-format #, javascript-format
msgid "%s has been added to your favorites." msgid "%s has been added to your favorites."
msgstr "%s byl přidán mezi oblíbené." msgstr "%s byl přidán mezi oblíbené."
#: ../js/ui/appFavorites.js:121 #: ../js/ui/appFavorites.js:121
#, c-format #, javascript-format
msgid "%s has been removed from your favorites." msgid "%s has been removed from your favorites."
msgstr "%s byl odstraněn z oblíbených." msgstr "%s byl odstraněn z oblíbených."
#: ../js/ui/backgroundMenu.js:19 ../js/ui/panel.js:807 #: ../js/ui/backgroundMenu.js:19 ../js/ui/panel.js:808
#: ../js/ui/status/system.js:325 #: ../js/ui/status/system.js:325
msgid "Settings" msgid "Settings"
msgstr "Nastavení" msgstr "Nastavení"
@ -408,68 +382,68 @@ msgstr "Změnit pozadí…"
#. 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:62 #: ../js/ui/calendar.js:62
msgctxt "event list time" msgctxt "event list time"
msgid "All Day" msgid "All Day"
msgstr "Celý den" msgstr "Celý den"
#. 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:68 #: ../js/ui/calendar.js:68
msgctxt "event list time" msgctxt "event list time"
msgid "%H\\u2236%M" msgid "%H%M"
msgstr "%H:%M" msgstr "%k%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:77 #: ../js/ui/calendar.js:77
msgctxt "event list time" msgctxt "event list time"
msgid "%l\\u2236%M\\u2009%p" msgid "%l%M%p"
msgstr "%l:%M\\u2009%p" msgstr "%l%M%p"
#. Translators: Calendar grid abbreviation for Sunday. #. Translators: Calendar grid abbreviation for Sunday.
#. * #. *
#. * 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:108 #: ../js/ui/calendar.js:108
msgctxt "grid sunday" msgctxt "grid sunday"
msgid "S" msgid "S"
msgstr "Ne" msgstr "Ne"
#. Translators: Calendar grid abbreviation for Monday #. Translators: Calendar grid abbreviation for Monday */
#: ../js/ui/calendar.js:110 #: ../js/ui/calendar.js:110
msgctxt "grid monday" msgctxt "grid monday"
msgid "M" msgid "M"
msgstr "Po" msgstr "Po"
#. Translators: Calendar grid abbreviation for Tuesday #. Translators: Calendar grid abbreviation for Tuesday */
#: ../js/ui/calendar.js:112 #: ../js/ui/calendar.js:112
msgctxt "grid tuesday" msgctxt "grid tuesday"
msgid "T" msgid "T"
msgstr "Út" msgstr "Út"
#. Translators: Calendar grid abbreviation for Wednesday #. Translators: Calendar grid abbreviation for Wednesday */
#: ../js/ui/calendar.js:114 #: ../js/ui/calendar.js:114
msgctxt "grid wednesday" msgctxt "grid wednesday"
msgid "W" msgid "W"
msgstr "St" msgstr "St"
#. Translators: Calendar grid abbreviation for Thursday #. Translators: Calendar grid abbreviation for Thursday */
#: ../js/ui/calendar.js:116 #: ../js/ui/calendar.js:116
msgctxt "grid thursday" msgctxt "grid thursday"
msgid "T" msgid "T"
msgstr "Čt" msgstr "Čt"
#. Translators: Calendar grid abbreviation for Friday #. Translators: Calendar grid abbreviation for Friday */
#: ../js/ui/calendar.js:118 #: ../js/ui/calendar.js:118
msgctxt "grid friday" msgctxt "grid friday"
msgid "F" msgid "F"
msgstr "Pá" msgstr "Pá"
#. Translators: Calendar grid abbreviation for Saturday #. Translators: Calendar grid abbreviation for Saturday */
#: ../js/ui/calendar.js:120 #: ../js/ui/calendar.js:120
msgctxt "grid saturday" msgctxt "grid saturday"
msgid "S" msgid "S"
@ -480,48 +454,52 @@ msgstr "So"
#. * 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:133 #: ../js/ui/calendar.js:133
msgctxt "list sunday" msgctxt "list sunday"
msgid "Su" msgid "Su"
msgstr "Ne" msgstr "Ne"
#. Translators: Event list abbreviation for Monday #. Translators: Event list abbreviation for Monday */
#: ../js/ui/calendar.js:135 #: ../js/ui/calendar.js:135
msgctxt "list monday" msgctxt "list monday"
msgid "M" msgid "M"
msgstr "Po" msgstr "Po"
#. Translators: Event list abbreviation for Tuesday #. Translators: Event list abbreviation for Tuesday */
#: ../js/ui/calendar.js:137 #: ../js/ui/calendar.js:137
msgctxt "list tuesday" msgctxt "list tuesday"
msgid "T" msgid "T"
msgstr "Út" msgstr "Út"
#. Translators: Event list abbreviation for Wednesday #. Translators: Event list abbreviation for Wednesday */
#: ../js/ui/calendar.js:139 #: ../js/ui/calendar.js:139
msgctxt "list wednesday" msgctxt "list wednesday"
msgid "W" msgid "W"
msgstr "St" msgstr "St"
#. Translators: Event list abbreviation for Thursday #. Translators: Event list abbreviation for Thursday */
#: ../js/ui/calendar.js:141 #: ../js/ui/calendar.js:141
msgctxt "list thursday" msgctxt "list thursday"
msgid "Th" msgid "Th"
msgstr "Čt" msgstr "Čt"
#. Translators: Event list abbreviation for Friday #. Translators: Event list abbreviation for Friday */
#: ../js/ui/calendar.js:143 #: ../js/ui/calendar.js:143
msgctxt "list friday" msgctxt "list friday"
msgid "F" msgid "F"
msgstr "Pá" msgstr "Pá"
#. Translators: Event list abbreviation for Saturday #. Translators: Event list abbreviation for Saturday */
#: ../js/ui/calendar.js:145 #: ../js/ui/calendar.js:145
msgctxt "list saturday" msgctxt "list saturday"
msgid "S" msgid "S"
msgstr "So" msgstr "So"
#: ../js/ui/calendar.js:389
msgid "calendar:MY"
msgstr "calendar:MY"
#: ../js/ui/calendar.js:447 #: ../js/ui/calendar.js:447
msgid "Previous month" msgid "Previous month"
msgstr "Předchozí měsíc" msgstr "Předchozí měsíc"
@ -530,18 +508,18 @@ msgstr "Předchozí měsíc"
msgid "Next month" msgid "Next month"
msgstr "Následující měsíc" msgstr "Následující měsíc"
#. Translators: Text to show if there are no events #. Translators: Text to show if there are no events */
#: ../js/ui/calendar.js:753 #: ../js/ui/calendar.js:753
msgid "Nothing Scheduled" msgid "Nothing Scheduled"
msgstr "Nic nenaplánováno" msgstr "Nic nenaplánováno"
#. 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:771 #: ../js/ui/calendar.js:771
msgctxt "calendar heading" msgctxt "calendar heading"
msgid "%A, %B %d" msgid "%A, %B %d"
msgstr "%A, %e. %B" msgstr "%A, %e. %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:774 #: ../js/ui/calendar.js:774
msgctxt "calendar heading" msgctxt "calendar heading"
msgid "%A, %B %d, %Y" msgid "%A, %B %d, %Y"
@ -576,7 +554,7 @@ msgid "Removable Devices"
msgstr "Výměnná zařízení" msgstr "Výměnná zařízení"
#: ../js/ui/components/autorunManager.js:594 #: ../js/ui/components/autorunManager.js:594
#, c-format #, javascript-format
msgid "Open with %s" msgid "Open with %s"
msgstr "Otevřít s %s" msgstr "Otevřít s %s"
@ -584,20 +562,19 @@ msgstr "Otevřít s %s"
msgid "Eject" msgid "Eject"
msgstr "Vysunout" msgstr "Vysunout"
#: ../js/ui/components/keyring.js:91 ../js/ui/components/polkitAgent.js:280 #: ../js/ui/components/keyring.js:89 ../js/ui/components/polkitAgent.js:280
msgid "Password:" msgid "Password:"
msgstr "Heslo:" msgstr "Heslo:"
#: ../js/ui/components/keyring.js:110 #: ../js/ui/components/keyring.js:108
msgid "Type again:" msgid "Type again:"
msgstr "Napište znovu:" msgstr "Napište znovu:"
#: ../js/ui/components/networkAgent.js:131 ../js/ui/status/network.js:112 #: ../js/ui/components/networkAgent.js:131 ../js/ui/status/network.js:133
#: ../js/ui/status/network.js:275 ../js/ui/status/network.js:689 #: ../js/ui/status/network.js:296 ../js/ui/status/network.js:731
msgid "Connect" msgid "Connect"
msgstr "Připojit" msgstr "Připojit"
#. Cisco LEAP
#: ../js/ui/components/networkAgent.js:222 #: ../js/ui/components/networkAgent.js:222
#: ../js/ui/components/networkAgent.js:234 #: ../js/ui/components/networkAgent.js:234
#: ../js/ui/components/networkAgent.js:261 #: ../js/ui/components/networkAgent.js:261
@ -606,7 +583,6 @@ msgstr "Připojit"
msgid "Password: " msgid "Password: "
msgstr "Heslo: " msgstr "Heslo: "
#. static WEP
#: ../js/ui/components/networkAgent.js:227 #: ../js/ui/components/networkAgent.js:227
msgid "Key: " msgid "Key: "
msgstr "Klíč: " msgstr "Klíč: "
@ -628,7 +604,7 @@ msgid "Authentication required by wireless network"
msgstr "K bezdrátové síti je vyžadováno ověření" msgstr "K bezdrátové síti je vyžadováno ověření"
#: ../js/ui/components/networkAgent.js:309 #: ../js/ui/components/networkAgent.js:309
#, c-format #, javascript-format
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'."
@ -665,7 +641,7 @@ msgid "Mobile broadband network password"
msgstr "Heslo k mobilní širokopásmové síti" msgstr "Heslo k mobilní širokopásmové síti"
#: ../js/ui/components/networkAgent.js:336 #: ../js/ui/components/networkAgent.js:336
#, c-format #, javascript-format
msgid "A password is required to connect to '%s'." msgid "A password is required to connect to '%s'."
msgstr "Pro připojení k „%s“ je vyžadováno heslo." msgstr "Pro připojení k „%s“ je vyžadováno heslo."
@ -684,23 +660,19 @@ msgstr "Ověřit"
#. 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:266 ../js/ui/shellMountOperation.js:383 #: ../js/ui/components/polkitAgent.js:266 ../js/ui/shellMountOperation.js:383
msgid "Sorry, that didn't work. Please try again." msgid "Sorry, that didn't work. Please try again."
msgstr "Ověření bohužel nebylo úspěšné. Zkuste to prosím znovu." msgstr "Ověření bohužel nebylo úspěšné. Zkuste to prosím znovu."
#. FIXME: We don't have a 'chat room' icon (bgo #653737) use
#. system-users for now as Empathy does.
#: ../js/ui/components/telepathyClient.js:238 #: ../js/ui/components/telepathyClient.js:238
msgid "Invitation" msgid "Invitation"
msgstr "Pozvání" msgstr "Pozvání"
#. We got the TpContact
#: ../js/ui/components/telepathyClient.js:298 #: ../js/ui/components/telepathyClient.js:298
msgid "Call" msgid "Call"
msgstr "Hovor" msgstr "Hovor"
#. We got the TpContact
#: ../js/ui/components/telepathyClient.js:314 #: ../js/ui/components/telepathyClient.js:314
msgid "File Transfer" msgid "File Transfer"
msgstr "Přenos souborů" msgstr "Přenos souborů"
@ -717,49 +689,45 @@ msgstr "Zrušit ztlumení"
msgid "Mute" msgid "Mute"
msgstr "Ztlumit" msgstr "Ztlumit"
#. Translators: this is the word "Yesterday" followed by a time string. i.e. "Yesterday, 14:30" #. Translators: this is the word "Yesterday" followed by a time string. i.e. "Yesterday, 14:30"*/
#: ../js/ui/components/telepathyClient.js:942 #: ../js/ui/components/telepathyClient.js:942
#, no-c-format
msgid "<b>Yesterday</b>, <b>%H:%M</b>" msgid "<b>Yesterday</b>, <b>%H:%M</b>"
msgstr "<b>Včera</b>, <b>%H.%M</b>" msgstr "<b>Včera</b>, <b>%H.%M</b>"
#. Translators: this is the week day name followed by a time string. i.e. "Monday, 14:30 #. Translators: this is the week day name followed by a time string. i.e. "Monday, 14:30*/
#: ../js/ui/components/telepathyClient.js:948 #: ../js/ui/components/telepathyClient.js:948
#, no-c-format
msgid "<b>%A</b>, <b>%H:%M</b>" msgid "<b>%A</b>, <b>%H:%M</b>"
msgstr "<b>%A</b>, <b>%H:%M</b>" msgstr "<b>%A</b>, <b>%H:%M</b>"
#. Translators: this is the month name and day number followed by a time string. i.e. "May 25, 14:30" #. Translators: this is the month name and day number followed by a time string. i.e. "May 25, 14:30"*/
#: ../js/ui/components/telepathyClient.js:953 #: ../js/ui/components/telepathyClient.js:953
#, no-c-format
msgid "<b>%B</b> <b>%d</b>, <b>%H:%M</b>" msgid "<b>%B</b> <b>%d</b>, <b>%H:%M</b>"
msgstr "<b>%d.</b> <b>%B</b>, <b>%H:%M</b>" msgstr "<b>%d.</b> <b>%B</b>, <b>%H:%M</b>"
#. Translators: this is the month name, day number, year number followed by a time string. i.e. "May 25 2012, 14:30" #. Translators: this is the month name, day number, year number followed by a time string. i.e. "May 25 2012, 14:30"*/
#: ../js/ui/components/telepathyClient.js:957 #: ../js/ui/components/telepathyClient.js:957
#, no-c-format
msgid "<b>%B</b> <b>%d</b> <b>%Y</b>, <b>%H:%M</b> " msgid "<b>%B</b> <b>%d</b> <b>%Y</b>, <b>%H:%M</b> "
msgstr "<b>%d.</b> <b>%B</b> <b>%Y</b>, <b>%H:%M</b> " msgstr "<b>%d.</b> <b>%B</b> <b>%Y</b>, <b>%H:%M</b> "
#. 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:986 #: ../js/ui/components/telepathyClient.js:986
#, c-format #, javascript-format
msgid "%s is now known as %s" msgid "%s is now known as %s"
msgstr "%s je teď znám jako %s" msgstr "%s je teď znám jako %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:1089 #: ../js/ui/components/telepathyClient.js:1089
#, c-format #, javascript-format
msgid "Invitation to %s" msgid "Invitation to %s"
msgstr "Pozvánka na připojení k %s" msgstr "Pozvánka na připojení k %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:1097 #: ../js/ui/components/telepathyClient.js:1097
#, c-format #, javascript-format
msgid "%s is inviting you to join %s" msgid "%s is inviting you to join %s"
msgstr "%s vás zve do %s" msgstr "%s vás zve do %s"
@ -776,19 +744,19 @@ msgstr "Odmítnout"
msgid "Accept" msgid "Accept"
msgstr "Přijmout" msgstr "Přijmout"
#. 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:1130 #: ../js/ui/components/telepathyClient.js:1130
#, c-format #, javascript-format
msgid "Video call from %s" msgid "Video call from %s"
msgstr "Videohovor od %s" msgstr "Videohovor od %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:1133 #: ../js/ui/components/telepathyClient.js:1133
#, c-format #, javascript-format
msgid "Call from %s" msgid "Call from %s"
msgstr "Hovor od %s" msgstr "Hovor od %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:1142 #: ../js/ui/components/telepathyClient.js:1142
msgid "Answer" msgid "Answer"
msgstr "Zvednout" msgstr "Zvednout"
@ -797,15 +765,15 @@ msgstr "Zvednout"
#. * 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:1174 #: ../js/ui/components/telepathyClient.js:1174
#, c-format #, javascript-format
msgid "%s is sending you %s" msgid "%s is sending you %s"
msgstr "%s vám posílá %s" msgstr "%s vám posílá %s"
#. To translators: The parameter is the contact's alias #. To translators: The parameter is the contact's alias */
#: ../js/ui/components/telepathyClient.js:1209 #: ../js/ui/components/telepathyClient.js:1209
#, c-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 vás žádá o oprávnění vidět, že jste dostupní" msgstr "%s vás žádá o oprávnění vidět, že jste dostupní"
@ -914,9 +882,9 @@ msgid "Internal error"
msgstr "Vnitřní chyba" msgstr "Vnitřní chyba"
#. 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:1357 #: ../js/ui/components/telepathyClient.js:1357
#, c-format #, javascript-format
msgid "Unable to connect to %s" msgid "Unable to connect to %s"
msgstr "Nelze se připojit k „%s“" msgstr "Nelze se připojit k „%s“"
@ -936,8 +904,6 @@ msgstr "Okna"
msgid "Show Applications" msgid "Show Applications"
msgstr "Zobrazit aplikace" msgstr "Zobrazit aplikace"
#. Translators: this is the name of the dock/favorites area on
#. the left of the overview
#: ../js/ui/dash.js:442 #: ../js/ui/dash.js:442
msgid "Dash" msgid "Dash"
msgstr "Oblíbené" msgstr "Oblíbené"
@ -957,13 +923,13 @@ msgstr "Nastavení data a času"
# Not sure whether we've enough space for it, but anyway, looks more aesthetically with "%A". # Not sure whether we've enough space for it, but anyway, looks more aesthetically with "%A".
#. 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:202 #: ../js/ui/dateMenu.js:202
msgid "%A %B %e, %Y" msgid "%A %B %e, %Y"
msgstr "%A, %e. %B, %Y" msgstr "%A, %e. %B, %Y"
#: ../js/ui/endSessionDialog.js:62 #: ../js/ui/endSessionDialog.js:62
#, c-format #, javascript-format
msgctxt "title" msgctxt "title"
msgid "Log Out %s" msgid "Log Out %s"
msgstr "Odhlásit uživatele %s" msgstr "Odhlásit uživatele %s"
@ -974,7 +940,7 @@ msgid "Log Out"
msgstr "Odhlášení" msgstr "Odhlášení"
#: ../js/ui/endSessionDialog.js:65 #: ../js/ui/endSessionDialog.js:65
#, c-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] "Uživatel %s bude automaticky odhlášen za %d sekundu." msgstr[0] "Uživatel %s bude automaticky odhlášen za %d sekundu."
@ -982,7 +948,7 @@ msgstr[1] "Uživatel %s bude automaticky odhlášen za %d sekundy."
msgstr[2] "Uživatel %s bude automaticky odhlášen za %d sekund." msgstr[2] "Uživatel %s bude automaticky odhlášen za %d sekund."
#: ../js/ui/endSessionDialog.js:70 #: ../js/ui/endSessionDialog.js:70
#, c-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] "Budete automaticky odhlášeni za %d sekundu." msgstr[0] "Budete automaticky odhlášeni za %d sekundu."
@ -1000,7 +966,7 @@ msgid "Power Off"
msgstr "Vypnutí" msgstr "Vypnutí"
#: ../js/ui/endSessionDialog.js:83 #: ../js/ui/endSessionDialog.js:83
#, c-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] "Systém bude automaticky vypnut za %d sekundu." msgstr[0] "Systém bude automaticky vypnut za %d sekundu."
@ -1023,7 +989,7 @@ msgid "Restart"
msgstr "Restart" msgstr "Restart"
#: ../js/ui/endSessionDialog.js:99 #: ../js/ui/endSessionDialog.js:99
#, c-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] "Systém bude automaticky restartován za %d sekundu." msgstr[0] "Systém bude automaticky restartován za %d sekundu."
@ -1036,7 +1002,7 @@ msgid "Restart & Install Updates"
msgstr "Restartovat a nainstalovat aktualizace" msgstr "Restartovat a nainstalovat aktualizace"
#: ../js/ui/endSessionDialog.js:114 #: ../js/ui/endSessionDialog.js:114
#, c-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."
@ -1063,15 +1029,15 @@ msgstr "Některé aplikace jsou zaneprázdněny nebo obsahují neuloženou prác
msgid "Other users are logged in." msgid "Other users are logged in."
msgstr "Jsou přihlášeni jiní uživatelé." msgstr "Jsou přihlášeni jiní uživatelé."
#. 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:479 #: ../js/ui/endSessionDialog.js:479
#, c-format #, javascript-format
msgid "%s (remote)" msgid "%s (remote)"
msgstr "%s (vzdálený)" msgstr "%s (vzdálený)"
#. 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:482 #: ../js/ui/endSessionDialog.js:482
#, c-format #, javascript-format
msgid "%s (console)" msgid "%s (console)"
msgstr "%s (konzola)" msgstr "%s (konzola)"
@ -1080,11 +1046,11 @@ msgid "Install"
msgstr "Instalovat" msgstr "Instalovat"
#: ../js/ui/extensionDownloader.js:204 #: ../js/ui/extensionDownloader.js:204
#, c-format #, javascript-format
msgid "Download and install '%s' from extensions.gnome.org?" msgid "Download and install '%s' from extensions.gnome.org?"
msgstr "Stáhnout a nainstalovat „%s“ z extensions.gnome.org?" msgstr "Stáhnout a nainstalovat „%s“ z extensions.gnome.org?"
#: ../js/ui/keyboard.js:619 ../js/ui/status/keyboard.js:333 #: ../js/ui/keyboard.js:619
msgid "Keyboard" msgid "Keyboard"
msgstr "Klávesnice" msgstr "Klávesnice"
@ -1092,9 +1058,9 @@ msgstr "Klávesnice"
msgid "No extensions installed" msgid "No extensions installed"
msgstr "Nejsou nainstalována žádná rozšíření" msgstr "Nejsou nainstalována žádná rozšíření"
#. Translators: argument is an extension UUID. #. Translators: argument is an extension UUID. */
#: ../js/ui/lookingGlass.js:743 #: ../js/ui/lookingGlass.js:743
#, c-format #, javascript-format
msgid "%s has not emitted any errors." msgid "%s has not emitted any errors."
msgstr "Rozšíření %s nevyvolalo žádné chyby." msgstr "Rozšíření %s nevyvolalo žádné chyby."
@ -1110,9 +1076,12 @@ msgstr "Zobrazovat chyby"
msgid "Enabled" msgid "Enabled"
msgstr "Povoleno" msgstr "Povoleno"
#. Translators: this is for a network device that cannot be activated
#. because it's disabled by rfkill (airplane mode) */
#. translators: #. translators:
#. * The device has been disabled #. * The device has been disabled
#: ../js/ui/lookingGlass.js:765 ../src/gvc/gvc-mixer-control.c:1830 #: ../js/ui/lookingGlass.js:765 ../js/ui/status/network.js:473
#: ../src/gvc/gvc-mixer-control.c:1830
msgid "Disabled" msgid "Disabled"
msgstr "Zakázáno" msgstr "Zakázáno"
@ -1144,27 +1113,31 @@ msgstr "Otevřít"
msgid "Remove" msgid "Remove"
msgstr "Odstranit" msgstr "Odstranit"
#: ../js/ui/messageTray.js:1513 #: ../js/ui/messageTray.js:1530
msgid "Notifications"
msgstr "Upozornění"
#: ../js/ui/messageTray.js:1537
msgid "Clear Messages" msgid "Clear Messages"
msgstr "Vymazat zprávy" msgstr "Vymazat zprávy"
#: ../js/ui/messageTray.js:1540 #: ../js/ui/messageTray.js:1564
msgid "Notification Settings" msgid "Notification Settings"
msgstr "Nastavení upozornění" msgstr "Nastavení upozornění"
#: ../js/ui/messageTray.js:1559 #: ../js/ui/messageTray.js:1617
msgid "Tray Menu" msgid "Tray Menu"
msgstr "Nabídka lišty zpráv" msgstr "Nabídka lišty zpráv"
#: ../js/ui/messageTray.js:1775 #: ../js/ui/messageTray.js:1833
msgid "No Messages" msgid "No Messages"
msgstr "Žádné zprávy" msgstr "Žádné zprávy"
#: ../js/ui/messageTray.js:1813 #: ../js/ui/messageTray.js:1871
msgid "Message Tray" msgid "Message Tray"
msgstr "Lišta zpráv" msgstr "Lišta zpráv"
#: ../js/ui/messageTray.js:2788 #: ../js/ui/messageTray.js:2846
msgid "System Information" msgid "System Information"
msgstr "Informace o systému" msgstr "Informace o systému"
@ -1174,7 +1147,7 @@ msgid "Unknown"
msgstr "Neznámé" msgstr "Neznámé"
#: ../js/ui/overviewControls.js:491 ../js/ui/screenShield.js:152 #: ../js/ui/overviewControls.js:491 ../js/ui/screenShield.js:152
#, c-format #, javascript-format
msgid "%d new message" msgid "%d new message"
msgid_plural "%d new messages" msgid_plural "%d new messages"
msgstr[0] "%d nová zpráva" msgstr[0] "%d nová zpráva"
@ -1192,7 +1165,7 @@ msgstr "Přehled"
#. 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:258 #: ../js/ui/overview.js:258
msgid "Type to search…" msgid "Type to search…"
msgstr "Vyhledávejte psaním…" msgstr "Vyhledávejte psaním…"
@ -1202,20 +1175,15 @@ msgid "Quit"
msgstr "Ukončit" msgstr "Ukončit"
#. 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:570 #: ../js/ui/panel.js:570
msgid "Activities" msgid "Activities"
msgstr "Činnosti" msgstr "Činnosti"
#: ../js/ui/panel.js:903 #: ../js/ui/panel.js:904
msgid "Top Bar" msgid "Top Bar"
msgstr "Horní lišta" msgstr "Horní lišta"
#. 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:233 #: ../js/ui/popupMenu.js:233
msgid "toggle-switch-us" msgid "toggle-switch-us"
msgstr "toggle-switch-intl" msgstr "toggle-switch-intl"
@ -1229,13 +1197,13 @@ msgid "Close"
msgstr "Zavřít" msgstr "Zavřít"
#. 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, %e. %B" msgstr "%A, %e. %B"
#: ../js/ui/screenShield.js:154 #: ../js/ui/screenShield.js:154
#, c-format #, javascript-format
msgid "%d new notification" msgid "%d new notification"
msgid_plural "%d new notifications" msgid_plural "%d new notifications"
msgstr[0] "%d nové upozornění" msgstr[0] "%d nové upozornění"
@ -1250,13 +1218,6 @@ msgstr "Uzamknout"
msgid "GNOME needs to lock the screen" msgid "GNOME needs to lock the screen"
msgstr "GNOME potřebuje uzamknout obrazovku" msgstr "GNOME potřebuje uzamknout obrazovku"
#. 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:831 ../js/ui/screenShield.js:1297 #: ../js/ui/screenShield.js:831 ../js/ui/screenShield.js:1297
msgid "Unable to lock" msgid "Unable to lock"
msgstr "Nelze uzamknout obrazovku" msgstr "Nelze uzamknout obrazovku"
@ -1265,11 +1226,11 @@ msgstr "Nelze uzamknout obrazovku"
msgid "Lock was blocked by an application" msgid "Lock was blocked by an application"
msgstr "Zamknutí bylo zablokováno některou z aplikací" msgstr "Zamknutí bylo zablokováno některou z aplikací"
#: ../js/ui/searchDisplay.js:447 #: ../js/ui/searchDisplay.js:448
msgid "Searching…" msgid "Searching…"
msgstr "Hledá se…" msgstr "Hledá se…"
#: ../js/ui/searchDisplay.js:491 #: ../js/ui/searchDisplay.js:492
msgid "No results." msgid "No results."
msgstr "Žádné výsledky." msgstr "Žádné výsledky."
@ -1341,16 +1302,14 @@ msgstr "Vysoký kontrast"
msgid "Large Text" msgid "Large Text"
msgstr "Styl velkého textu" msgstr "Styl velkého textu"
#. 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:28 ../js/ui/status/bluetooth.js:63 #: ../js/ui/status/bluetooth.js:28 ../js/ui/status/bluetooth.js:63
#: ../js/ui/status/bluetooth.js:100 ../js/ui/status/bluetooth.js:128 #: ../js/ui/status/bluetooth.js:100 ../js/ui/status/bluetooth.js:128
#: ../js/ui/status/bluetooth.js:164 ../js/ui/status/bluetooth.js:195 #: ../js/ui/status/bluetooth.js:164 ../js/ui/status/bluetooth.js:195
msgid "Bluetooth" msgid "Bluetooth"
msgstr "Bluetooth" msgstr "Bluetooth"
#: ../js/ui/status/bluetooth.js:30 ../js/ui/status/network.js:112 #: ../js/ui/status/bluetooth.js:30 ../js/ui/status/network.js:133
#: ../js/ui/status/network.js:1034 ../js/ui/status/rfkill.js:46 #: ../js/ui/status/network.js:1085 ../js/ui/status/rfkill.js:46
msgid "Turn Off" msgid "Turn Off"
msgstr "Vypnout" msgstr "Vypnout"
@ -1359,7 +1318,7 @@ msgid "Bluetooth Settings"
msgstr "Nastavení Bluetooth" msgstr "Nastavení Bluetooth"
#: ../js/ui/status/bluetooth.js:58 #: ../js/ui/status/bluetooth.js:58
#, c-format #, javascript-format
msgid "%d Connected Device" msgid "%d Connected Device"
msgid_plural "%d Connected Devices" msgid_plural "%d Connected Devices"
msgstr[0] "%d připojené zařízení" msgstr[0] "%d připojené zařízení"
@ -1367,13 +1326,13 @@ msgstr[1] "%d připojená zařízení"
msgstr[2] "%d připojených zařízení" msgstr[2] "%d připojených zařízení"
#: ../js/ui/status/bluetooth.js:101 ../js/ui/status/bluetooth.js:129 #: ../js/ui/status/bluetooth.js:101 ../js/ui/status/bluetooth.js:129
#, c-format #, javascript-format
msgid "Authorization request from %s" msgid "Authorization request from %s"
msgstr "Požadavek na autorizaci od %s" msgstr "Požadavek na autorizaci od %s"
#: ../js/ui/status/bluetooth.js:107 ../js/ui/status/bluetooth.js:172 #: ../js/ui/status/bluetooth.js:107 ../js/ui/status/bluetooth.js:172
#: ../js/ui/status/bluetooth.js:203 #: ../js/ui/status/bluetooth.js:203
#, c-format #, javascript-format
msgid "Device %s wants to pair with this computer" msgid "Device %s wants to pair with this computer"
msgstr "Zařízení %s se chce spárovat s tímto počítačem" msgstr "Zařízení %s se chce spárovat s tímto počítačem"
@ -1386,7 +1345,7 @@ msgid "Deny"
msgstr "Zamítnout" msgstr "Zamítnout"
#: ../js/ui/status/bluetooth.js:135 #: ../js/ui/status/bluetooth.js:135
#, c-format #, javascript-format
msgid "Device %s wants access to the service '%s'" msgid "Device %s wants access to the service '%s'"
msgstr "Zařízení %s požaduje přístup ke službě „%s“" msgstr "Zařízení %s požaduje přístup ke službě „%s“"
@ -1402,19 +1361,19 @@ msgstr "Udělit pouze tentokrát"
msgid "Reject" msgid "Reject"
msgstr "Odmítnout" msgstr "Odmítnout"
#. Translators: argument is the device short name #. Translators: argument is the device short name */
#: ../js/ui/status/bluetooth.js:166 #: ../js/ui/status/bluetooth.js:166
#, c-format #, javascript-format
msgid "Pairing confirmation for %s" msgid "Pairing confirmation for %s"
msgstr "Potvrzení spárování pro %s" msgstr "Potvrzení spárování pro %s"
#: ../js/ui/status/bluetooth.js:173 #: ../js/ui/status/bluetooth.js:173
#, c-format #, javascript-format
msgid "" msgid ""
"Please confirm whether the Passkey '%06d' matches the one on the device." "Please confirm whether the Passkey '%06d' matches the one on the device."
msgstr "Ověřte prosím, zda klíč „%06d“ odpovídá tomu na zařízení." msgstr "Ověřte prosím, zda klíč „%06d“ odpovídá tomu na zařízení."
#. Translators: this is the verb, not the noun #. Translators: this is the verb, not the noun */
#: ../js/ui/status/bluetooth.js:176 #: ../js/ui/status/bluetooth.js:176
msgid "Matches" msgid "Matches"
msgstr "Souhlasí" msgstr "Souhlasí"
@ -1424,7 +1383,7 @@ msgid "Does not match"
msgstr "Nesouhlasí" msgstr "Nesouhlasí"
#: ../js/ui/status/bluetooth.js:196 #: ../js/ui/status/bluetooth.js:196
#, c-format #, javascript-format
msgid "Pairing request for %s" msgid "Pairing request for %s"
msgstr "Požadavek na spárování pro %s" msgstr "Požadavek na spárování pro %s"
@ -1440,91 +1399,99 @@ msgstr "Budiž"
msgid "Brightness" msgid "Brightness"
msgstr "Jas" msgstr "Jas"
#: ../js/ui/status/keyboard.js:403
msgid "Show Keyboard Layout"
msgstr "Zobrazit rozložení klávesnice"
#: ../js/ui/status/network.js:72 #: ../js/ui/status/network.js:72
msgid "<unknown>" msgid "<unknown>"
msgstr "<neznámé>" msgstr "<neznámé>"
#: ../js/ui/status/network.js:203 ../js/ui/status/network.js:1049 #: ../js/ui/status/network.js:223 ../js/ui/status/network.js:380
#: ../js/ui/status/network.js:1106
msgid "Off" msgid "Off"
msgstr "Vypnuto" msgstr "Vypnuto"
#: ../js/ui/status/network.js:276 ../js/ui/status/network.js:955
#: ../js/ui/status/rfkill.js:49
msgid "Network Settings"
msgstr "Nastavení sítě"
#. 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:364 #: ../js/ui/status/network.js:386
msgid "unmanaged" msgid "unmanaged"
msgstr "nespravováno" msgstr "nespravováno"
#: ../js/ui/status/network.js:366 #: ../js/ui/status/network.js:388
msgid "disconnecting..." msgid "disconnecting..."
msgstr "odpojování…" msgstr "odpojování…"
#: ../js/ui/status/network.js:372 ../js/ui/status/network.js:1100 #: ../js/ui/status/network.js:394 ../js/ui/status/network.js:1160
msgid "connecting..." msgid "connecting..."
msgstr "připojování…" msgstr "připojování…"
#. 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:375 ../js/ui/status/network.js:1103 #: ../js/ui/status/network.js:397 ../js/ui/status/network.js:1163
msgid "authentication required" msgid "authentication required"
msgstr "je vyžadováno ověření" msgstr "je vyžadováno ověření"
#. 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:383 #: ../js/ui/status/network.js:405
msgid "firmware missing" msgid "firmware missing"
msgstr "nedostupný firmware" msgstr "nedostupný 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:387 #: ../js/ui/status/network.js:409
msgid "unavailable" msgid "unavailable"
msgstr "nedostupné" msgstr "nedostupné"
#: ../js/ui/status/network.js:389 ../js/ui/status/network.js:1105 #: ../js/ui/status/network.js:411 ../js/ui/status/network.js:1165
msgid "connection failed" msgid "connection failed"
msgstr "připojení selhalo" msgstr "připojení selhalo"
#: ../js/ui/status/network.js:654 #: ../js/ui/status/network.js:427 ../js/ui/status/network.js:513
msgid "Mobile Broadband Settings"
msgstr "Nastavení mobilní širokopásmové sítě"
#: ../js/ui/status/network.js:469 ../js/ui/status/network.js:1104
msgid "Hardware Disabled"
msgstr "Hardware zakázán"
#: ../js/ui/status/network.js:696
msgid "Wi-Fi Networks" msgid "Wi-Fi Networks"
msgstr "Sítě WiFi" msgstr "Sítě WiFi"
#: ../js/ui/status/network.js:656 #: ../js/ui/status/network.js:698
msgid "Select a network" msgid "Select a network"
msgstr "Vyberte síť" msgstr "Vyberte síť"
#: ../js/ui/status/network.js:680 #: ../js/ui/status/network.js:722
msgid "No Networks" msgid "No Networks"
msgstr "Žádné sítě" msgstr "Žádné sítě"
#: ../js/ui/status/network.js:949 #: ../js/ui/status/network.js:991
msgid "Select Network" msgid "Select Network"
msgstr "Vybrat síť" msgstr "Vybrat síť"
#: ../js/ui/status/network.js:1034 #: ../js/ui/status/network.js:997
msgid "Wi-Fi Settings"
msgstr "Nastavení WiFi"
#: ../js/ui/status/network.js:1085
msgid "Turn On" msgid "Turn On"
msgstr "Zapnout" msgstr "Zapnout"
#: ../js/ui/status/network.js:1167 #: ../js/ui/status/network.js:1108
msgid "Not Connected"
msgstr "Nepřipojeno"
#: ../js/ui/status/network.js:1228
msgid "VPN" msgid "VPN"
msgstr "VPN" msgstr "VPN"
#: ../js/ui/status/network.js:1307 #: ../js/ui/status/network.js:1368
msgid "Network Manager" msgid "Network Manager"
msgstr "Network Manager" msgstr "Network Manager"
#: ../js/ui/status/network.js:1346 #: ../js/ui/status/network.js:1407
msgid "Connection failed" msgid "Connection failed"
msgstr "Připojení selhalo" msgstr "Připojení selhalo"
#: ../js/ui/status/network.js:1347 #: ../js/ui/status/network.js:1408
msgid "Activation of network connection failed" msgid "Activation of network connection failed"
msgstr "Aktivace síťového připojení selhala" msgstr "Aktivace síťového připojení selhala"
@ -1540,28 +1507,20 @@ msgstr "Nastavení napájení"
msgid "Fully Charged" msgid "Fully Charged"
msgstr "Plně nabito" msgstr "Plně nabito"
#. 0 is reported when UPower does not have enough data
#. to estimate battery life
#. state is one of PENDING_CHARGING, PENDING_DISCHARGING
#: ../js/ui/status/power.js:69 ../js/ui/status/power.js:86 #: ../js/ui/status/power.js:69 ../js/ui/status/power.js:86
msgid "Estimating…" msgid "Estimating…"
msgstr "Odhaduje se…" msgstr "Odhaduje se…"
#. Translators: this is <hours>:<minutes> Remaining (<percentage>)
#: ../js/ui/status/power.js:77 #: ../js/ui/status/power.js:77
#, c-format #, javascript-format
msgid "%d\\u2236%02d Remaining (%d%%)" msgid "%d%02d Remaining (%d%%)"
msgstr "Zbývá %d\\u2236%02d (%d%%)" msgstr "Zbývá %d%02d (%d%%)"
#. Translators: this is <hours>:<minutes> Until Full (<percentage>)
#: ../js/ui/status/power.js:82 #: ../js/ui/status/power.js:82
#, c-format #, javascript-format
msgid "%d\\u2236%02d Until Full (%d%%)" msgid "%d%02d Until Full (%d%%)"
msgstr "%d\\u2236%02d do nabití (%d%%)" msgstr "%d%02d do nabití (%d%%)"
#. 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:43 #: ../js/ui/status/rfkill.js:43
msgid "Airplane Mode" msgid "Airplane Mode"
msgstr "Režim „letadlo“" msgstr "Režim „letadlo“"
@ -1570,6 +1529,10 @@ msgstr "Režim „letadlo“"
msgid "On" msgid "On"
msgstr "Zapnuto" msgstr "Zapnuto"
#: ../js/ui/status/rfkill.js:49
msgid "Network Settings"
msgstr "Nastavení sítě"
#: ../js/ui/status/system.js:305 #: ../js/ui/status/system.js:305
msgid "Switch User" msgid "Switch User"
msgstr "Přepnout uživatele" msgstr "Přepnout uživatele"
@ -1619,7 +1582,7 @@ msgid "Search"
msgstr "Hledat" msgstr "Hledat"
#: ../js/ui/wanda.js:77 #: ../js/ui/wanda.js:77
#, c-format #, javascript-format
msgid "" msgid ""
"Sorry, no wisdom for you today:\n" "Sorry, no wisdom for you today:\n"
"%s" "%s"
@ -1628,12 +1591,12 @@ msgstr ""
"%s" "%s"
#: ../js/ui/wanda.js:81 #: ../js/ui/wanda.js:81
#, c-format #, javascript-format
msgid "%s the Oracle says" msgid "%s the Oracle says"
msgstr "%s říká Prorok" msgstr "%s říká Prorok"
#: ../js/ui/windowAttentionHandler.js:19 #: ../js/ui/windowAttentionHandler.js:19
#, c-format #, javascript-format
msgid "'%s' is ready" msgid "'%s' is ready"
msgstr "Připraveno „%s“" msgstr "Připraveno „%s“"
@ -1643,7 +1606,7 @@ msgstr "Chcete zachovat nastavení displeje?"
#. 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:75 #: ../js/ui/windowManager.js:75
msgid "Revert Settings" msgid "Revert Settings"
msgstr "Obnovit původní" msgstr "Obnovit původní"
@ -1653,7 +1616,7 @@ msgid "Keep Changes"
msgstr "Zachovat" msgstr "Zachovat"
#: ../js/ui/windowManager.js:97 #: ../js/ui/windowManager.js:97
#, c-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] "Nastavení se obnoví na původní za %d sekundu" msgstr[0] "Nastavení se obnoví na původní za %d sekundu"

View File

@ -17,8 +17,8 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: gnome-shell\n" "Project-Id-Version: gnome-shell\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2013-09-23 19:41+0200\n" "POT-Creation-Date: 2013-10-01 19:10+0200\n"
"PO-Revision-Date: 2013-09-23 19:43+0200\n" "PO-Revision-Date: 2013-10-01 19:06+0200\n"
"Last-Translator: Kris Thomsen <mail@kristhomsen.dk>\n" "Last-Translator: Kris Thomsen <mail@kristhomsen.dk>\n"
"Language-Team: Danish <dansk@dansk-gruppen.dk>\n" "Language-Team: Danish <dansk@dansk-gruppen.dk>\n"
"Language: da\n" "Language: da\n"
@ -276,7 +276,9 @@ msgstr "Arbejdsområder kun på den primære skærm"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:38 #: ../data/org.gnome.shell.gschema.xml.in.in.h:38
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 "Forsink fokusændringer i musetilstand indtil pegeren holder op med at bevæge sig" msgstr ""
"Forsink fokusændringer i musetilstand indtil pegeren holder op med at bevæge "
"sig"
#: ../js/extensionPrefs/main.js:125 #: ../js/extensionPrefs/main.js:125
#, c-format #, c-format
@ -295,7 +297,7 @@ msgstr ""
#: ../js/gdm/authPrompt.js:145 ../js/ui/components/networkAgent.js:136 #: ../js/gdm/authPrompt.js:145 ../js/ui/components/networkAgent.js:136
#: ../js/ui/components/polkitAgent.js:161 ../js/ui/endSessionDialog.js:351 #: ../js/ui/components/polkitAgent.js:161 ../js/ui/endSessionDialog.js:351
#: ../js/ui/extensionDownloader.js:195 ../js/ui/shellMountOperation.js:399 #: ../js/ui/extensionDownloader.js:195 ../js/ui/shellMountOperation.js:399
#: ../js/ui/status/bluetooth.js:222 ../js/ui/status/network.js:686 #: ../js/ui/status/bluetooth.js:222 ../js/ui/status/network.js:692
msgid "Cancel" msgid "Cancel"
msgstr "Annullér" msgstr "Annullér"
@ -405,7 +407,7 @@ msgstr "%s er blevet føjet til dine favoritter."
msgid "%s has been removed from your favorites." msgid "%s has been removed from your favorites."
msgstr "%s er blevet fjernet fra dine favoritter." msgstr "%s er blevet fjernet fra dine favoritter."
#: ../js/ui/backgroundMenu.js:19 ../js/ui/panel.js:807 #: ../js/ui/backgroundMenu.js:19 ../js/ui/panel.js:808
#: ../js/ui/status/system.js:325 #: ../js/ui/status/system.js:325
msgid "Settings" msgid "Settings"
msgstr "Indstillinger" msgstr "Indstillinger"
@ -601,7 +603,7 @@ msgid "Type again:"
msgstr "Indtast igen:" msgstr "Indtast igen:"
#: ../js/ui/components/networkAgent.js:131 ../js/ui/status/network.js:112 #: ../js/ui/components/networkAgent.js:131 ../js/ui/status/network.js:112
#: ../js/ui/status/network.js:275 ../js/ui/status/network.js:689 #: ../js/ui/status/network.js:275 ../js/ui/status/network.js:695
msgid "Connect" msgid "Connect"
msgstr "Forbind" msgstr "Forbind"
@ -1206,7 +1208,7 @@ msgstr "Afslut"
msgid "Activities" msgid "Activities"
msgstr "Aktiviteter" msgstr "Aktiviteter"
#: ../js/ui/panel.js:903 #: ../js/ui/panel.js:904
msgid "Top Bar" msgid "Top Bar"
msgstr "Toppanel" msgstr "Toppanel"
@ -1263,11 +1265,11 @@ msgstr "Kunne ikke låse"
msgid "Lock was blocked by an application" msgid "Lock was blocked by an application"
msgstr "Lås blev blokeret af et program" msgstr "Lås blev blokeret af et program"
#: ../js/ui/searchDisplay.js:447 #: ../js/ui/searchDisplay.js:448
msgid "Searching…" msgid "Searching…"
msgstr "Søger…" msgstr "Søger…"
#: ../js/ui/searchDisplay.js:491 #: ../js/ui/searchDisplay.js:492
msgid "No results." msgid "No results."
msgstr "Ingen resultater." msgstr "Ingen resultater."
@ -1348,7 +1350,7 @@ msgid "Bluetooth"
msgstr "Bluetooth" msgstr "Bluetooth"
#: ../js/ui/status/bluetooth.js:30 ../js/ui/status/network.js:112 #: ../js/ui/status/bluetooth.js:30 ../js/ui/status/network.js:112
#: ../js/ui/status/network.js:1034 ../js/ui/status/rfkill.js:46 #: ../js/ui/status/network.js:1040 ../js/ui/status/rfkill.js:46
msgid "Turn Off" msgid "Turn Off"
msgstr "Sluk" msgstr "Sluk"
@ -1447,11 +1449,11 @@ msgstr "Vis tastaturlayout"
msgid "<unknown>" msgid "<unknown>"
msgstr "<ukendt>" msgstr "<ukendt>"
#: ../js/ui/status/network.js:203 ../js/ui/status/network.js:1049 #: ../js/ui/status/network.js:203 ../js/ui/status/network.js:1055
msgid "Off" msgid "Off"
msgstr "Slukket" msgstr "Slukket"
#: ../js/ui/status/network.js:276 ../js/ui/status/network.js:955 #: ../js/ui/status/network.js:276 ../js/ui/status/network.js:961
#: ../js/ui/status/rfkill.js:49 #: ../js/ui/status/rfkill.js:49
msgid "Network Settings" msgid "Network Settings"
msgstr "Indstillinger for netværk" msgstr "Indstillinger for netværk"
@ -1466,12 +1468,12 @@ msgstr "ikke håndteret"
msgid "disconnecting..." msgid "disconnecting..."
msgstr "frakobler..." msgstr "frakobler..."
#: ../js/ui/status/network.js:372 ../js/ui/status/network.js:1100 #: ../js/ui/status/network.js:372 ../js/ui/status/network.js:1106
msgid "connecting..." msgid "connecting..."
msgstr "forbinder..." msgstr "forbinder..."
#. 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:375 ../js/ui/status/network.js:1103 #: ../js/ui/status/network.js:375 ../js/ui/status/network.js:1109
msgid "authentication required" msgid "authentication required"
msgstr "godkendelse påkrævet" msgstr "godkendelse påkrævet"
@ -1487,43 +1489,43 @@ msgstr "firmware mangler"
msgid "unavailable" msgid "unavailable"
msgstr "utilgængelig" msgstr "utilgængelig"
#: ../js/ui/status/network.js:389 ../js/ui/status/network.js:1105 #: ../js/ui/status/network.js:389 ../js/ui/status/network.js:1111
msgid "connection failed" msgid "connection failed"
msgstr "forbindelse mislykkedes" msgstr "forbindelse mislykkedes"
#: ../js/ui/status/network.js:654 #: ../js/ui/status/network.js:660
msgid "Wi-Fi Networks" msgid "Wi-Fi Networks"
msgstr "Trådløse netværk" msgstr "Trådløse netværk"
#: ../js/ui/status/network.js:656 #: ../js/ui/status/network.js:662
msgid "Select a network" msgid "Select a network"
msgstr "Vælg et netværk" msgstr "Vælg et netværk"
#: ../js/ui/status/network.js:680 #: ../js/ui/status/network.js:686
msgid "No Networks" msgid "No Networks"
msgstr "Ingen netværk" msgstr "Ingen netværk"
#: ../js/ui/status/network.js:949 #: ../js/ui/status/network.js:955
msgid "Select Network" msgid "Select Network"
msgstr "Vælg netværk" msgstr "Vælg netværk"
#: ../js/ui/status/network.js:1034 #: ../js/ui/status/network.js:1040
msgid "Turn On" msgid "Turn On"
msgstr "Tænd" msgstr "Tænd"
#: ../js/ui/status/network.js:1167 #: ../js/ui/status/network.js:1174
msgid "VPN" msgid "VPN"
msgstr "VPN" msgstr "VPN"
#: ../js/ui/status/network.js:1307 #: ../js/ui/status/network.js:1314
msgid "Network Manager" msgid "Network Manager"
msgstr "Netværkshåndtering" msgstr "Netværkshåndtering"
#: ../js/ui/status/network.js:1346 #: ../js/ui/status/network.js:1353
msgid "Connection failed" msgid "Connection failed"
msgstr "Forbindelse mislykkedes" msgstr "Forbindelse mislykkedes"
#: ../js/ui/status/network.js:1347 #: ../js/ui/status/network.js:1354
msgid "Activation of network connection failed" msgid "Activation of network connection failed"
msgstr "Aktivering af netværksforbindelse mislykkedes" msgstr "Aktivering af netværksforbindelse mislykkedes"
@ -1548,15 +1550,15 @@ msgstr "Udregner…"
#. Translators: this is <hours>:<minutes> Remaining (<percentage>) #. Translators: this is <hours>:<minutes> Remaining (<percentage>)
#: ../js/ui/status/power.js:77 #: ../js/ui/status/power.js:77
#, c-format #, fuzzy, c-format
msgid "%d\\u2236%02d Remaining (%d%%)" msgid "%d\\u2236%02d Remaining (%d%%)"
msgstr "%d\\u2236%02d tilbage (%d%%)" msgstr "%d%02d tilbage (%d%%)"
#. Translators: this is <hours>:<minutes> Until Full (<percentage>) #. Translators: this is <hours>:<minutes> Until Full (<percentage>)
#: ../js/ui/status/power.js:82 #: ../js/ui/status/power.js:82
#, c-format #, fuzzy, c-format
msgid "%d\\u2236%02d Until Full (%d%%)" msgid "%d\\u2236%02d Until Full (%d%%)"
msgstr "%d\\u2236%02d indtil fuld (%d%%)" msgstr "%d%02d indtil fuld (%d%%)"
#. The menu only appears when airplane mode is on, so just #. The menu only appears when airplane mode is on, so just
#. statically build it as if it was on, rather than dynamically #. statically build it as if it was on, rather than dynamically
@ -1717,6 +1719,28 @@ msgstr "Adgangskode må ikke være tom"
msgid "Authentication dialog was dismissed by the user" msgid "Authentication dialog was dismissed by the user"
msgstr "Godkendelsesdialogen blev afvist af brugeren" msgstr "Godkendelsesdialogen blev afvist af brugeren"
#~ msgctxt "event list time"
#~ msgid "%H%M"
#~ msgstr "%H%M"
#~ msgctxt "event list time"
#~ msgid "%l%M%p"
#~ msgstr "%l%M%p"
# Dette her er kode for at skrive måned før år jvf. kommentar for samme streng i gtk+:
#
# Translate to calendar:YM if you want years to be displayed
# before months; otherwise translate to calendar:MY.
# Do *not* translate it to anything else, if it
# it isn't calendar:YM or calendar:MY it will not work.
#
# Note that the ordering described here is logical order, which is
# further influenced by BIDI ordering. Thus, if you have a default
# text direction of RTL and specify "calendar:YM", then the year
# will appear to the right of the month.
#~ msgid "calendar:MY"
#~ msgstr "calendar:MY"
#~ msgid "Settings Menu" #~ msgid "Settings Menu"
#~ msgstr "Menu for indstillinger" #~ msgstr "Menu for indstillinger"

142
po/de.po
View File

@ -18,18 +18,17 @@
msgid "" msgid ""
msgstr "" 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: \n"
"shell&keywords=I18N+L10N&component=general\n" "POT-Creation-Date: 2013-09-25 15:24+0200\n"
"POT-Creation-Date: 2013-09-12 17:36+0000\n" "PO-Revision-Date: 2013-09-25 15:25+0100\n"
"PO-Revision-Date: 2013-09-13 19:29+0100\n" "Last-Translator: Christian Kirbach <christian.kirbach@gmail.com>\n"
"Last-Translator: Benjamin Steinwender <b@stbe.at>\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"
"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: Poedit 1.5.7\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"
@ -282,6 +281,11 @@ msgstr "Arbeitsflächen dynamisch verwalten"
msgid "Workspaces only on primary monitor" msgid "Workspaces only on primary monitor"
msgstr "Arbeitsflächen nur auf dem primären Bildschirm" msgstr "Arbeitsflächen nur auf dem primären Bildschirm"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:38
msgid "Delay focus changes in mouse mode until the pointer stops moving"
msgstr ""
"Fokuswechsel im Mausmodus verzögern, bis sich der Zeiger nicht mehr bewegt."
#: ../js/extensionPrefs/main.js:125 #: ../js/extensionPrefs/main.js:125
#, c-format #, c-format
msgid "There was an error loading the preferences dialog for %s:" msgid "There was an error loading the preferences dialog for %s:"
@ -295,10 +299,10 @@ msgstr "Erweiterung"
msgid "Select an extension to configure using the combobox above." msgid "Select an extension to configure using the combobox above."
msgstr "Wählen Sie oben eine Erweiterung aus, die Sie konfigurieren wollen." msgstr "Wählen Sie oben eine Erweiterung aus, die Sie konfigurieren wollen."
#: ../js/gdm/authPrompt.js:145 ../js/ui/components/networkAgent.js:132 #: ../js/gdm/authPrompt.js:145 ../js/ui/components/networkAgent.js:136
#: ../js/ui/components/polkitAgent.js:161 ../js/ui/endSessionDialog.js:351 #: ../js/ui/components/polkitAgent.js:161 ../js/ui/endSessionDialog.js:351
#: ../js/ui/extensionDownloader.js:195 ../js/ui/shellMountOperation.js:399 #: ../js/ui/extensionDownloader.js:195 ../js/ui/shellMountOperation.js:399
#: ../js/ui/status/bluetooth.js:221 ../js/ui/status/network.js:686 #: ../js/ui/status/bluetooth.js:222 ../js/ui/status/network.js:686
msgid "Cancel" msgid "Cancel"
msgstr "Abbrechen" msgstr "Abbrechen"
@ -337,8 +341,8 @@ msgstr "(z.B. Benutzer oder %s)"
#. TTLS and PEAP are actually much more complicated, but this complication #. TTLS and PEAP are actually much more complicated, but this complication
#. is not visible here since we only care about phase2 authentication #. is not visible here since we only care about phase2 authentication
#. (and don't even care of which one) #. (and don't even care of which one)
#: ../js/gdm/loginDialog.js:627 ../js/ui/components/networkAgent.js:255 #: ../js/gdm/loginDialog.js:627 ../js/ui/components/networkAgent.js:259
#: ../js/ui/components/networkAgent.js:273 #: ../js/ui/components/networkAgent.js:277
msgid "Username: " msgid "Username: "
msgstr "Benutzername:" msgstr "Benutzername:"
@ -374,27 +378,27 @@ msgstr "Befehl konnte nicht verarbeitet werden:"
msgid "Execution of '%s' failed:" msgid "Execution of '%s' failed:"
msgstr "Ausführung von »%s« ist gescheitert:" msgstr "Ausführung von »%s« ist gescheitert:"
#: ../js/ui/appDisplay.js:573 #: ../js/ui/appDisplay.js:596
msgid "Frequently used applications will appear here" msgid "Frequently used applications will appear here"
msgstr "Häufig genutzte Anwendungen werden hier erscheinen" msgstr "Häufig genutzte Anwendungen werden hier erscheinen"
#: ../js/ui/appDisplay.js:689 #: ../js/ui/appDisplay.js:712
msgid "Frequent" msgid "Frequent"
msgstr "Häufig" msgstr "Häufig"
#: ../js/ui/appDisplay.js:696 #: ../js/ui/appDisplay.js:719
msgid "All" msgid "All"
msgstr "Alle" msgstr "Alle"
#: ../js/ui/appDisplay.js:1491 #: ../js/ui/appDisplay.js:1514
msgid "New Window" msgid "New Window"
msgstr "Neues Fenster" msgstr "Neues Fenster"
#: ../js/ui/appDisplay.js:1494 ../js/ui/dash.js:284 #: ../js/ui/appDisplay.js:1517 ../js/ui/dash.js:284
msgid "Remove from Favorites" msgid "Remove from Favorites"
msgstr "Aus Favoriten entfernen" msgstr "Aus Favoriten entfernen"
#: ../js/ui/appDisplay.js:1495 #: ../js/ui/appDisplay.js:1518
msgid "Add to Favorites" msgid "Add to Favorites"
msgstr "Zu Favoriten hinzufügen" msgstr "Zu Favoriten hinzufügen"
@ -408,7 +412,8 @@ msgstr "%s wurde zu Ihren Favoriten hinzugefügt"
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"
#: ../js/ui/backgroundMenu.js:19 ../js/ui/status/system.js:325 #: ../js/ui/backgroundMenu.js:19 ../js/ui/panel.js:808
#: ../js/ui/status/system.js:325
msgid "Settings" msgid "Settings"
msgstr "Einstellungen" msgstr "Einstellungen"
@ -597,50 +602,50 @@ msgstr "Öffnen mit %s"
msgid "Eject" msgid "Eject"
msgstr "Auswerfen" msgstr "Auswerfen"
#: ../js/ui/components/keyring.js:88 ../js/ui/components/polkitAgent.js:280 #: ../js/ui/components/keyring.js:91 ../js/ui/components/polkitAgent.js:280
msgid "Password:" msgid "Password:"
msgstr "Passwort:" msgstr "Passwort:"
#: ../js/ui/components/keyring.js:107 #: ../js/ui/components/keyring.js:110
msgid "Type again:" msgid "Type again:"
msgstr "Erneut eingeben:" msgstr "Erneut eingeben:"
#: ../js/ui/components/networkAgent.js:127 ../js/ui/status/network.js:112 #: ../js/ui/components/networkAgent.js:131 ../js/ui/status/network.js:112
#: ../js/ui/status/network.js:275 ../js/ui/status/network.js:689 #: ../js/ui/status/network.js:275 ../js/ui/status/network.js:689
msgid "Connect" msgid "Connect"
msgstr "Verbinden" msgstr "Verbinden"
#. Cisco LEAP #. Cisco LEAP
#: ../js/ui/components/networkAgent.js:218 #: ../js/ui/components/networkAgent.js:222
#: ../js/ui/components/networkAgent.js:230 #: ../js/ui/components/networkAgent.js:234
#: ../js/ui/components/networkAgent.js:257 #: ../js/ui/components/networkAgent.js:261
#: ../js/ui/components/networkAgent.js:277 #: ../js/ui/components/networkAgent.js:281
#: ../js/ui/components/networkAgent.js:287 #: ../js/ui/components/networkAgent.js:291
msgid "Password: " msgid "Password: "
msgstr "Passwort:" msgstr "Passwort:"
#. static WEP #. static WEP
#: ../js/ui/components/networkAgent.js:223 #: ../js/ui/components/networkAgent.js:227
msgid "Key: " msgid "Key: "
msgstr "Schlüssel:" msgstr "Schlüssel:"
#: ../js/ui/components/networkAgent.js:261 #: ../js/ui/components/networkAgent.js:265
msgid "Identity: " msgid "Identity: "
msgstr "Identität:" msgstr "Identität:"
#: ../js/ui/components/networkAgent.js:263 #: ../js/ui/components/networkAgent.js:267
msgid "Private key password: " msgid "Private key password: "
msgstr "Passwort für geheimen Schlüssel:" msgstr "Passwort für geheimen Schlüssel:"
#: ../js/ui/components/networkAgent.js:275 #: ../js/ui/components/networkAgent.js:279
msgid "Service: " msgid "Service: "
msgstr "Dienst:" msgstr "Dienst:"
#: ../js/ui/components/networkAgent.js:304 #: ../js/ui/components/networkAgent.js:308
msgid "Authentication required by wireless network" msgid "Authentication required by wireless network"
msgstr "Legitimierung für Funknetzwerk wird benötigt" msgstr "Legitimierung für Funknetzwerk wird benötigt"
#: ../js/ui/components/networkAgent.js:305 #: ../js/ui/components/networkAgent.js:309
#, c-format #, c-format
msgid "" msgid ""
"Passwords or encryption keys are required to access the wireless network " "Passwords or encryption keys are required to access the wireless network "
@ -649,35 +654,35 @@ msgstr ""
"Passwörter oder Schlüssel sind erforderlich, um auf das Funknetzwerk »%s« " "Passwörter oder Schlüssel sind erforderlich, um auf das Funknetzwerk »%s« "
"zuzugreifen." "zuzugreifen."
#: ../js/ui/components/networkAgent.js:309 #: ../js/ui/components/networkAgent.js:313
msgid "Wired 802.1X authentication" msgid "Wired 802.1X authentication"
msgstr "Kabelgebundene 802.1X-Legitimierung" msgstr "Kabelgebundene 802.1X-Legitimierung"
#: ../js/ui/components/networkAgent.js:311 #: ../js/ui/components/networkAgent.js:315
msgid "Network name: " msgid "Network name: "
msgstr "Netzwerkname:" msgstr "Netzwerkname:"
#: ../js/ui/components/networkAgent.js:316 #: ../js/ui/components/networkAgent.js:320
msgid "DSL authentication" msgid "DSL authentication"
msgstr "DSL-Legitimierung" msgstr "DSL-Legitimierung"
#: ../js/ui/components/networkAgent.js:323 #: ../js/ui/components/networkAgent.js:327
msgid "PIN code required" msgid "PIN code required"
msgstr "PIN-Code ist erforderlich" msgstr "PIN-Code ist erforderlich"
#: ../js/ui/components/networkAgent.js:324 #: ../js/ui/components/networkAgent.js:328
msgid "PIN code is needed for the mobile broadband device" msgid "PIN code is needed for the mobile broadband device"
msgstr "Für das mobile Breitbandgerät wird ein PIN-Code benötigt." msgstr "Für das mobile Breitbandgerät wird ein PIN-Code benötigt."
#: ../js/ui/components/networkAgent.js:325 #: ../js/ui/components/networkAgent.js:329
msgid "PIN: " msgid "PIN: "
msgstr "PIN: " msgstr "PIN: "
#: ../js/ui/components/networkAgent.js:331 #: ../js/ui/components/networkAgent.js:335
msgid "Mobile broadband network password" msgid "Mobile broadband network password"
msgstr "Passwort der mobilen Breitbandverbindung" msgstr "Passwort der mobilen Breitbandverbindung"
#: ../js/ui/components/networkAgent.js:332 #: ../js/ui/components/networkAgent.js:336
#, c-format #, c-format
msgid "A password is required to connect to '%s'." msgid "A password is required to connect to '%s'."
msgstr "Es wird ein Passwort benötigt, um sich mit »%s« zu verbinden." msgstr "Es wird ein Passwort benötigt, um sich mit »%s« zu verbinden."
@ -1169,11 +1174,11 @@ msgstr "Benachrichtigungsfeldmenü"
msgid "No Messages" msgid "No Messages"
msgstr "Keine Nachrichten" msgstr "Keine Nachrichten"
#: ../js/ui/messageTray.js:1812 #: ../js/ui/messageTray.js:1813
msgid "Message Tray" msgid "Message Tray"
msgstr "Benachrichtigungsfeld" msgstr "Benachrichtigungsfeld"
#: ../js/ui/messageTray.js:2787 #: ../js/ui/messageTray.js:2788
msgid "System Information" msgid "System Information"
msgstr "Systeminformationen" msgstr "Systeminformationen"
@ -1215,11 +1220,7 @@ msgstr "Beenden"
msgid "Activities" msgid "Activities"
msgstr "Aktivitäten" msgstr "Aktivitäten"
#: ../js/ui/panel.js:807 #: ../js/ui/panel.js:904
msgid "Settings Menu"
msgstr "Einstellungsmenü"
#: ../js/ui/panel.js:903
msgid "Top Bar" msgid "Top Bar"
msgstr "Oberes Panel" msgstr "Oberes Panel"
@ -1357,9 +1358,9 @@ msgstr "Große Schrift"
#. The Bluetooth menu only appears when Bluetooth is in use, #. The Bluetooth menu only appears when Bluetooth is in use,
#. so just statically build it with a "Turn Off" menu item. #. so just statically build it with a "Turn Off" menu item.
#: ../js/ui/status/bluetooth.js:28 ../js/ui/status/bluetooth.js:62 #: ../js/ui/status/bluetooth.js:28 ../js/ui/status/bluetooth.js:63
#: ../js/ui/status/bluetooth.js:99 ../js/ui/status/bluetooth.js:127 #: ../js/ui/status/bluetooth.js:100 ../js/ui/status/bluetooth.js:128
#: ../js/ui/status/bluetooth.js:163 ../js/ui/status/bluetooth.js:194 #: ../js/ui/status/bluetooth.js:164 ../js/ui/status/bluetooth.js:195
msgid "Bluetooth" msgid "Bluetooth"
msgstr "Bluetooth" msgstr "Bluetooth"
@ -1372,56 +1373,56 @@ msgstr "Ausschalten"
msgid "Bluetooth Settings" msgid "Bluetooth Settings"
msgstr "Bluetooth-Einstellungen" msgstr "Bluetooth-Einstellungen"
#: ../js/ui/status/bluetooth.js:57 #: ../js/ui/status/bluetooth.js:58
#, c-format #, c-format
msgid "%d Connected Device" msgid "%d Connected Device"
msgid_plural "%d Connected Devices" msgid_plural "%d Connected Devices"
msgstr[0] "%d Verbundes Gerät" msgstr[0] "%d Verbundes Gerät"
msgstr[1] "%d Verbundene Geräte" msgstr[1] "%d Verbundene Geräte"
#: ../js/ui/status/bluetooth.js:100 ../js/ui/status/bluetooth.js:128 #: ../js/ui/status/bluetooth.js:101 ../js/ui/status/bluetooth.js:129
#, c-format #, c-format
msgid "Authorization request from %s" msgid "Authorization request from %s"
msgstr "Legitimierungsanfrage von %s" msgstr "Legitimierungsanfrage von %s"
#: ../js/ui/status/bluetooth.js:106 ../js/ui/status/bluetooth.js:171 #: ../js/ui/status/bluetooth.js:107 ../js/ui/status/bluetooth.js:172
#: ../js/ui/status/bluetooth.js:202 #: ../js/ui/status/bluetooth.js:203
#, c-format #, c-format
msgid "Device %s wants to pair with this computer" msgid "Device %s wants to pair with this computer"
msgstr "Gerät »%s« möchte mit diesem Rechner gekoppelt werden" msgstr "Gerät »%s« möchte mit diesem Rechner gekoppelt werden"
#: ../js/ui/status/bluetooth.js:108 #: ../js/ui/status/bluetooth.js:109
msgid "Allow" msgid "Allow"
msgstr "Erlauben" msgstr "Erlauben"
#: ../js/ui/status/bluetooth.js:109 #: ../js/ui/status/bluetooth.js:110
msgid "Deny" msgid "Deny"
msgstr "Verweigern" msgstr "Verweigern"
#: ../js/ui/status/bluetooth.js:134 #: ../js/ui/status/bluetooth.js:135
#, c-format #, c-format
msgid "Device %s wants access to the service '%s'" msgid "Device %s wants access to the service '%s'"
msgstr "Gerät »%s« bittet um Zugriff auf den Dienst »%s«" msgstr "Gerät »%s« bittet um Zugriff auf den Dienst »%s«"
#: ../js/ui/status/bluetooth.js:136 #: ../js/ui/status/bluetooth.js:137
msgid "Always grant access" msgid "Always grant access"
msgstr "Immer Zugriff gewähren" msgstr "Immer Zugriff gewähren"
#: ../js/ui/status/bluetooth.js:137 #: ../js/ui/status/bluetooth.js:138
msgid "Grant this time only" msgid "Grant this time only"
msgstr "Nur dieses Mal gewähren" msgstr "Nur dieses Mal gewähren"
#: ../js/ui/status/bluetooth.js:138 #: ../js/ui/status/bluetooth.js:139
msgid "Reject" msgid "Reject"
msgstr "Abweisen" msgstr "Abweisen"
#. Translators: argument is the device short name #. Translators: argument is the device short name
#: ../js/ui/status/bluetooth.js:165 #: ../js/ui/status/bluetooth.js:166
#, c-format #, c-format
msgid "Pairing confirmation for %s" msgid "Pairing confirmation for %s"
msgstr "Koppelungsbestätigung für %s" msgstr "Koppelungsbestätigung für %s"
#: ../js/ui/status/bluetooth.js:172 #: ../js/ui/status/bluetooth.js:173
#, c-format #, c-format
msgid "" msgid ""
"Please confirm whether the Passkey '%06d' matches the one on the device." "Please confirm whether the Passkey '%06d' matches the one on the device."
@ -1429,24 +1430,24 @@ msgstr ""
"Bitte bestätigen Sie, ob die PIN »%06d« mit der des Gerätes übereinstimmt." "Bitte bestätigen Sie, ob die PIN »%06d« mit der des Gerätes übereinstimmt."
#. Translators: this is the verb, not the noun #. Translators: this is the verb, not the noun
#: ../js/ui/status/bluetooth.js:175 #: ../js/ui/status/bluetooth.js:176
msgid "Matches" msgid "Matches"
msgstr "Stimmt überein" msgstr "Stimmt überein"
#: ../js/ui/status/bluetooth.js:176 #: ../js/ui/status/bluetooth.js:177
msgid "Does not match" msgid "Does not match"
msgstr "Stimmt nicht überein" msgstr "Stimmt nicht überein"
#: ../js/ui/status/bluetooth.js:195 #: ../js/ui/status/bluetooth.js:196
#, c-format #, c-format
msgid "Pairing request for %s" msgid "Pairing request for %s"
msgstr "Koppelungsanfrage für %s" msgstr "Koppelungsanfrage für %s"
#: ../js/ui/status/bluetooth.js:203 #: ../js/ui/status/bluetooth.js:204
msgid "Please enter the PIN mentioned on the device." msgid "Please enter the PIN mentioned on the device."
msgstr "Bitte geben Sie die auf dem Gerät angezeigte PIN ein." msgstr "Bitte geben Sie die auf dem Gerät angezeigte PIN ein."
#: ../js/ui/status/bluetooth.js:220 #: ../js/ui/status/bluetooth.js:221
msgid "OK" msgid "OK"
msgstr "OK" msgstr "OK"
@ -1530,15 +1531,15 @@ msgstr "Einschalten"
msgid "VPN" msgid "VPN"
msgstr "VPN" msgstr "VPN"
#: ../js/ui/status/network.js:1306 #: ../js/ui/status/network.js:1307
msgid "Network Manager" msgid "Network Manager"
msgstr "Netzwerk-Verwaltung" msgstr "Netzwerk-Verwaltung"
#: ../js/ui/status/network.js:1345 #: ../js/ui/status/network.js:1346
msgid "Connection failed" msgid "Connection failed"
msgstr "Verbindung gescheitert" msgstr "Verbindung gescheitert"
#: ../js/ui/status/network.js:1346 #: ../js/ui/status/network.js:1347
msgid "Activation of network connection failed" msgid "Activation of network connection failed"
msgstr "Aktivierung der Netzwerkverbindung ist gescheitert" msgstr "Aktivierung der Netzwerkverbindung ist gescheitert"
@ -1734,6 +1735,9 @@ msgstr "Das Passwort darf nicht leer sein"
msgid "Authentication dialog was dismissed by the user" msgid "Authentication dialog was dismissed by the user"
msgstr "Der Dialog zur Legitimierung wurde vom Benutzer geschlossen" msgstr "Der Dialog zur Legitimierung wurde vom Benutzer geschlossen"
#~ msgid "Settings Menu"
#~ msgstr "Einstellungsmenü"
#~ msgid "" #~ msgid ""
#~ "Internally used to store the last IM presence explicitly set by the user. " #~ "Internally used to store the last IM presence explicitly set by the user. "
#~ "The value here is from the TpConnectionPresenceType enumeration." #~ "The value here is from the TpConnectionPresenceType enumeration."

396
po/eo.po

File diff suppressed because it is too large Load Diff

345
po/es.po
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: 2013-09-23 13:35+0000\n" "POT-Creation-Date: 2013-10-09 16:40+0000\n"
"PO-Revision-Date: 2013-09-24 12:34+0200\n" "PO-Revision-Date: 2013-10-10 10:33+0200\n"
"Last-Translator: Daniel Mustieles <daniel.mustieles@gmail.com>\n" "Last-Translator: Daniel Mustieles <daniel.mustieles@gmail.com>\n"
"Language-Team: Español <gnome-es-list@gnome.org>\n" "Language-Team: Español <gnome-es-list@gnome.org>\n"
"Language: es\n" "Language: es\n"
@ -55,7 +55,6 @@ msgid "Window management and application launching"
msgstr "Gestión de ventanas e inicio de aplicaciones" msgstr "Gestión de ventanas e inicio de aplicaciones"
#: ../data/gnome-shell-extension-prefs.desktop.in.in.h:1 #: ../data/gnome-shell-extension-prefs.desktop.in.in.h:1
#: ../js/extensionPrefs/main.js:153
msgid "GNOME Shell Extension Preferences" msgid "GNOME Shell Extension Preferences"
msgstr "Preferencias de las extensiones de GNOME Shell" msgstr "Preferencias de las extensiones de GNOME Shell"
@ -276,15 +275,6 @@ msgid "Delay focus changes in mouse mode until the pointer stops moving"
msgstr "" msgstr ""
"Retardo al cambiar el foco del ratón hasta que el puntero deja de moverse" "Retardo al cambiar el foco del ratón hasta que el puntero deja de moverse"
#: ../js/extensionPrefs/main.js:125
#, c-format
msgid "There was an error loading the preferences dialog for %s:"
msgstr "Hubo un error al lanzar el diálogo de preferencias para %s:"
#: ../js/extensionPrefs/main.js:165
msgid "Extension"
msgstr "Extensión"
#: ../js/extensionPrefs/main.js:189 #: ../js/extensionPrefs/main.js:189
msgid "Select an extension to configure using the combobox above." msgid "Select an extension to configure using the combobox above."
msgstr "" msgstr ""
@ -293,7 +283,7 @@ msgstr ""
#: ../js/gdm/authPrompt.js:145 ../js/ui/components/networkAgent.js:136 #: ../js/gdm/authPrompt.js:145 ../js/ui/components/networkAgent.js:136
#: ../js/ui/components/polkitAgent.js:161 ../js/ui/endSessionDialog.js:351 #: ../js/ui/components/polkitAgent.js:161 ../js/ui/endSessionDialog.js:351
#: ../js/ui/extensionDownloader.js:195 ../js/ui/shellMountOperation.js:399 #: ../js/ui/extensionDownloader.js:195 ../js/ui/shellMountOperation.js:399
#: ../js/ui/status/bluetooth.js:222 ../js/ui/status/network.js:686 #: ../js/ui/status/bluetooth.js:222 ../js/ui/status/network.js:728
msgid "Cancel" msgid "Cancel"
msgstr "Cancelar" msgstr "Cancelar"
@ -315,23 +305,14 @@ msgstr "Iniciar sesión"
msgid "Choose Session" msgid "Choose Session"
msgstr "Elegir sesión" msgstr "Elegir 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:454 #: ../js/gdm/loginDialog.js:454
msgid "Not listed?" msgid "Not listed?"
msgstr "¿No está en la lista?" msgstr "¿No está en la 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:622 #: ../js/gdm/loginDialog.js:622
#, c-format
msgid "(e.g., user or %s)" msgid "(e.g., user or %s)"
msgstr "(ej., usuario o %s)" msgstr "(ej., usuario o %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:627 ../js/ui/components/networkAgent.js:259 #: ../js/gdm/loginDialog.js:627 ../js/ui/components/networkAgent.js:259
#: ../js/ui/components/networkAgent.js:277 #: ../js/ui/components/networkAgent.js:277
msgid "Username: " msgid "Username: "
@ -345,27 +326,19 @@ msgstr "Ventana de inicio de sesión"
msgid "Authentication error" msgid "Authentication error"
msgstr "Error de autenticación" msgstr "Error 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:436 #: ../js/gdm/util.js:436
msgid "(or swipe finger)" msgid "(or swipe finger)"
msgstr "(o pase el dedo)" msgstr "(o pase el dedo)"
#: ../js/misc/util.js:98 #: ../js/misc/util.js:115
msgid "Command not found" msgid "Command not found"
msgstr "Comando no encontrado" msgstr "Comando no encontrado"
#. Replace "Error invoking GLib.shell_parse_argv: " with #: ../js/misc/util.js:148
#. something nicer
#: ../js/misc/util.js:131
msgid "Could not parse command:" msgid "Could not parse command:"
msgstr "No se pudo analizar el comando:" msgstr "No se pudo analizar el comando:"
#: ../js/misc/util.js:139 #: ../js/misc/util.js:156
#, c-format
msgid "Execution of '%s' failed:" msgid "Execution of '%s' failed:"
msgstr "Falló la ejecución de «%s»:" msgstr "Falló la ejecución de «%s»:"
@ -394,16 +367,14 @@ msgid "Add to Favorites"
msgstr "Añadir a los favoritos" msgstr "Añadir a los favoritos"
#: ../js/ui/appFavorites.js:87 #: ../js/ui/appFavorites.js:87
#, c-format
msgid "%s has been added to your favorites." msgid "%s has been added to your favorites."
msgstr "Se ha añadido %s a sus favoritos." msgstr "Se ha añadido %s a sus favoritos."
#: ../js/ui/appFavorites.js:121 #: ../js/ui/appFavorites.js:121
#, c-format
msgid "%s has been removed from your favorites." msgid "%s has been removed from your favorites."
msgstr "Se ha quitado %s de sus favoritos." msgstr "Se ha quitado %s de sus favoritos."
#: ../js/ui/backgroundMenu.js:19 ../js/ui/panel.js:807 #: ../js/ui/backgroundMenu.js:19 ../js/ui/panel.js:808
#: ../js/ui/status/system.js:325 #: ../js/ui/status/system.js:325
msgid "Settings" msgid "Settings"
msgstr "Configuración" msgstr "Configuración"
@ -414,68 +385,68 @@ msgstr "Cambiar el fondo…"
#. 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:62 #: ../js/ui/calendar.js:62
msgctxt "event list time" msgctxt "event list time"
msgid "All Day" msgid "All Day"
msgstr "Todo el día" msgstr "Todo el 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:68 #: ../js/ui/calendar.js:68
msgctxt "event list time" msgctxt "event list time"
msgid "%H\\u2236%M" msgid "%H%M"
msgstr "%H\\u2236%M" 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:77 #: ../js/ui/calendar.js:77
msgctxt "event list time" msgctxt "event list time"
msgid "%l\\u2236%M\\u2009%p" msgid "%l%M%p"
msgstr "%l\\u2236%M\\u2009%p" msgstr "%l%M%p"
#. Translators: Calendar grid abbreviation for Sunday. #. Translators: Calendar grid abbreviation for Sunday.
#. * #. *
#. * 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:108 #: ../js/ui/calendar.js:108
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:110 #: ../js/ui/calendar.js:110
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:112 #: ../js/ui/calendar.js:112
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:114 #: ../js/ui/calendar.js:114
msgctxt "grid wednesday" msgctxt "grid wednesday"
msgid "W" msgid "W"
msgstr "X" msgstr "X"
#. Translators: Calendar grid abbreviation for Thursday #. Translators: Calendar grid abbreviation for Thursday */
#: ../js/ui/calendar.js:116 #: ../js/ui/calendar.js:116
msgctxt "grid thursday" msgctxt "grid thursday"
msgid "T" msgid "T"
msgstr "J" msgstr "J"
#. Translators: Calendar grid abbreviation for Friday #. Translators: Calendar grid abbreviation for Friday */
#: ../js/ui/calendar.js:118 #: ../js/ui/calendar.js:118
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:120 #: ../js/ui/calendar.js:120
msgctxt "grid saturday" msgctxt "grid saturday"
msgid "S" msgid "S"
@ -486,48 +457,52 @@ 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:133 #: ../js/ui/calendar.js:133
msgctxt "list sunday" msgctxt "list sunday"
msgid "Su" msgid "Su"
msgstr "Dom" msgstr "Dom"
#. Translators: Event list abbreviation for Monday #. Translators: Event list abbreviation for Monday */
#: ../js/ui/calendar.js:135 #: ../js/ui/calendar.js:135
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:137 #: ../js/ui/calendar.js:137
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:139 #: ../js/ui/calendar.js:139
msgctxt "list wednesday" msgctxt "list wednesday"
msgid "W" msgid "W"
msgstr "X" msgstr "X"
#. Translators: Event list abbreviation for Thursday #. Translators: Event list abbreviation for Thursday */
#: ../js/ui/calendar.js:141 #: ../js/ui/calendar.js:141
msgctxt "list thursday" msgctxt "list thursday"
msgid "Th" msgid "Th"
msgstr "J" msgstr "J"
#. Translators: Event list abbreviation for Friday #. Translators: Event list abbreviation for Friday */
#: ../js/ui/calendar.js:143 #: ../js/ui/calendar.js:143
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:145 #: ../js/ui/calendar.js:145
msgctxt "list saturday" msgctxt "list saturday"
msgid "S" msgid "S"
msgstr "S" msgstr "S"
#: ../js/ui/calendar.js:389
msgid "calendar:MY"
msgstr "calendario:MA"
#: ../js/ui/calendar.js:447 #: ../js/ui/calendar.js:447
msgid "Previous month" msgid "Previous month"
msgstr "Mes anterior" msgstr "Mes anterior"
@ -536,18 +511,18 @@ msgstr "Mes anterior"
msgid "Next month" msgid "Next month"
msgstr "Siguiente mes" msgstr "Siguiente mes"
#. Translators: Text to show if there are no events #. Translators: Text to show if there are no events */
#: ../js/ui/calendar.js:753 #: ../js/ui/calendar.js:753
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:771 #: ../js/ui/calendar.js:771
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:774 #: ../js/ui/calendar.js:774
msgctxt "calendar heading" msgctxt "calendar heading"
msgid "%A, %B %d, %Y" msgid "%A, %B %d, %Y"
@ -582,7 +557,6 @@ msgid "Removable Devices"
msgstr "Dispositivos extraíbles" msgstr "Dispositivos extraíbles"
#: ../js/ui/components/autorunManager.js:594 #: ../js/ui/components/autorunManager.js:594
#, c-format
msgid "Open with %s" msgid "Open with %s"
msgstr "Abrir con %s" msgstr "Abrir con %s"
@ -590,20 +564,19 @@ msgstr "Abrir con %s"
msgid "Eject" msgid "Eject"
msgstr "Expulsar" msgstr "Expulsar"
#: ../js/ui/components/keyring.js:91 ../js/ui/components/polkitAgent.js:280 #: ../js/ui/components/keyring.js:89 ../js/ui/components/polkitAgent.js:280
msgid "Password:" msgid "Password:"
msgstr "Contraseña:" msgstr "Contraseña:"
#: ../js/ui/components/keyring.js:110 #: ../js/ui/components/keyring.js:108
msgid "Type again:" msgid "Type again:"
msgstr "Escriba de nuevo:" msgstr "Escriba de nuevo:"
#: ../js/ui/components/networkAgent.js:131 ../js/ui/status/network.js:112 #: ../js/ui/components/networkAgent.js:131 ../js/ui/status/network.js:133
#: ../js/ui/status/network.js:275 ../js/ui/status/network.js:689 #: ../js/ui/status/network.js:296 ../js/ui/status/network.js:731
msgid "Connect" msgid "Connect"
msgstr "Conectar" msgstr "Conectar"
#. Cisco LEAP
#: ../js/ui/components/networkAgent.js:222 #: ../js/ui/components/networkAgent.js:222
#: ../js/ui/components/networkAgent.js:234 #: ../js/ui/components/networkAgent.js:234
#: ../js/ui/components/networkAgent.js:261 #: ../js/ui/components/networkAgent.js:261
@ -612,7 +585,6 @@ msgstr "Conectar"
msgid "Password: " msgid "Password: "
msgstr "Contraseña: " msgstr "Contraseña: "
#. static WEP
#: ../js/ui/components/networkAgent.js:227 #: ../js/ui/components/networkAgent.js:227
msgid "Key: " msgid "Key: "
msgstr "Clave:" msgstr "Clave:"
@ -634,7 +606,6 @@ msgid "Authentication required by wireless network"
msgstr "La red inalámbrica requiere autenticación" msgstr "La red inalámbrica requiere autenticación"
#: ../js/ui/components/networkAgent.js:309 #: ../js/ui/components/networkAgent.js:309
#, c-format
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'."
@ -671,7 +642,6 @@ msgid "Mobile broadband network password"
msgstr "Contraseña de la red de banda ancha móvil" msgstr "Contraseña de la red de banda ancha móvil"
#: ../js/ui/components/networkAgent.js:336 #: ../js/ui/components/networkAgent.js:336
#, c-format
msgid "A password is required to connect to '%s'." msgid "A password is required to connect to '%s'."
msgstr "Se requiere una contraseña para conectar a «%s»." msgstr "Se requiere una contraseña para conectar a «%s»."
@ -690,23 +660,19 @@ 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:266 ../js/ui/shellMountOperation.js:383 #: ../js/ui/components/polkitAgent.js:266 ../js/ui/shellMountOperation.js:383
msgid "Sorry, that didn't work. Please try again." msgid "Sorry, that didn't work. Please try again."
msgstr "Inténtelo de nuevo," msgstr "Inténtelo de nuevo,"
#. FIXME: We don't have a 'chat room' icon (bgo #653737) use
#. system-users for now as Empathy does.
#: ../js/ui/components/telepathyClient.js:238 #: ../js/ui/components/telepathyClient.js:238
msgid "Invitation" msgid "Invitation"
msgstr "Invitación" msgstr "Invitación"
#. We got the TpContact
#: ../js/ui/components/telepathyClient.js:298 #: ../js/ui/components/telepathyClient.js:298
msgid "Call" msgid "Call"
msgstr "Llamar" msgstr "Llamar"
#. We got the TpContact
#: ../js/ui/components/telepathyClient.js:314 #: ../js/ui/components/telepathyClient.js:314
msgid "File Transfer" msgid "File Transfer"
msgstr "Transferencia de archivos" msgstr "Transferencia de archivos"
@ -723,49 +689,42 @@ msgstr "Dar voz"
msgid "Mute" msgid "Mute"
msgstr "Silenciar" msgstr "Silenciar"
#. Translators: this is the word "Yesterday" followed by a time string. i.e. "Yesterday, 14:30" #. Translators: this is the word "Yesterday" followed by a time string. i.e. "Yesterday, 14:30"*/
#: ../js/ui/components/telepathyClient.js:942 #: ../js/ui/components/telepathyClient.js:942
#, no-c-format
msgid "<b>Yesterday</b>, <b>%H:%M</b>" msgid "<b>Yesterday</b>, <b>%H:%M</b>"
msgstr "<b>Ayer</b>, <b>%H:%M</b>" msgstr "<b>Ayer</b>, <b>%H:%M</b>"
#. Translators: this is the week day name followed by a time string. i.e. "Monday, 14:30 #. Translators: this is the week day name followed by a time string. i.e. "Monday, 14:30*/
#: ../js/ui/components/telepathyClient.js:948 #: ../js/ui/components/telepathyClient.js:948
#, no-c-format
msgid "<b>%A</b>, <b>%H:%M</b>" msgid "<b>%A</b>, <b>%H:%M</b>"
msgstr "<b>%A</b>, <b>%H:%M</b>" msgstr "<b>%A</b>, <b>%H:%M</b>"
#. Translators: this is the month name and day number followed by a time string. i.e. "May 25, 14:30" #. Translators: this is the month name and day number followed by a time string. i.e. "May 25, 14:30"*/
#: ../js/ui/components/telepathyClient.js:953 #: ../js/ui/components/telepathyClient.js:953
#, no-c-format
msgid "<b>%B</b> <b>%d</b>, <b>%H:%M</b>" msgid "<b>%B</b> <b>%d</b>, <b>%H:%M</b>"
msgstr "<b>%d</b> de <b>%B</b>, <b>%H:%M</b>" msgstr "<b>%d</b> de <b>%B</b>, <b>%H:%M</b>"
#. Translators: this is the month name, day number, year number followed by a time string. i.e. "May 25 2012, 14:30" #. Translators: this is the month name, day number, year number followed by a time string. i.e. "May 25 2012, 14:30"*/
#: ../js/ui/components/telepathyClient.js:957 #: ../js/ui/components/telepathyClient.js:957
#, no-c-format
msgid "<b>%B</b> <b>%d</b> <b>%Y</b>, <b>%H:%M</b> " msgid "<b>%B</b> <b>%d</b> <b>%Y</b>, <b>%H:%M</b> "
msgstr "<b>%d</b> de <b>%B</b> <b>%Y</b>, <b>%H:%M</b> " msgstr "<b>%d</b> de <b>%B</b> <b>%Y</b>, <b>%H:%M</b> "
#. 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:986 #: ../js/ui/components/telepathyClient.js:986
#, c-format
msgid "%s is now known as %s" msgid "%s is now known as %s"
msgstr "Ahora %s se llama %s" msgstr "Ahora %s se llama %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:1089 #: ../js/ui/components/telepathyClient.js:1089
#, c-format
msgid "Invitation to %s" msgid "Invitation to %s"
msgstr "Invitación a %s" msgstr "Invitación 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:1097 #: ../js/ui/components/telepathyClient.js:1097
#, c-format
msgid "%s is inviting you to join %s" msgid "%s is inviting you to join %s"
msgstr "%s le está invitando a unirse a %s" msgstr "%s le está invitando a unirse a %s"
@ -782,19 +741,17 @@ msgstr "Rechazar"
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:1130 #: ../js/ui/components/telepathyClient.js:1130
#, c-format
msgid "Video call from %s" msgid "Video call from %s"
msgstr "Videollamada de %s" msgstr "Videollamada 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:1133 #: ../js/ui/components/telepathyClient.js:1133
#, c-format
msgid "Call from %s" msgid "Call from %s"
msgstr "Llamada de %s" msgstr "Llamada 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:1142 #: ../js/ui/components/telepathyClient.js:1142
msgid "Answer" msgid "Answer"
msgstr "Responder" msgstr "Responder"
@ -803,15 +760,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:1174 #: ../js/ui/components/telepathyClient.js:1174
#, c-format
msgid "%s is sending you %s" msgid "%s is sending you %s"
msgstr "%s le está enviando %s" msgstr "%s le está enviando %s"
#. To translators: The parameter is the contact's alias #. To translators: The parameter is the contact's alias */
#: ../js/ui/components/telepathyClient.js:1209 #: ../js/ui/components/telepathyClient.js:1209
#, c-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 solicita permiso para ver cuándo está en línea" msgstr "%s solicita permiso para ver cuándo está en línea"
@ -923,9 +878,8 @@ msgid "Internal error"
msgstr "Error interno" msgstr "Error 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:1357 #: ../js/ui/components/telepathyClient.js:1357
#, c-format
msgid "Unable to connect to %s" msgid "Unable to connect to %s"
msgstr "No se pudo conectar a %s" msgstr "No se pudo conectar a %s"
@ -945,8 +899,6 @@ msgstr "Ventanas"
msgid "Show Applications" msgid "Show Applications"
msgstr "Mostrar aplicaciones" msgstr "Mostrar aplicaciones"
#. Translators: this is the name of the dock/favorites area on
#. the left of the overview
#: ../js/ui/dash.js:442 #: ../js/ui/dash.js:442
msgid "Dash" msgid "Dash"
msgstr "Tablero" msgstr "Tablero"
@ -965,13 +917,12 @@ 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:202 #: ../js/ui/dateMenu.js:202
msgid "%A %B %e, %Y" msgid "%A %B %e, %Y"
msgstr "%A, %e de %B de %Y" msgstr "%A, %e de %B de %Y"
#: ../js/ui/endSessionDialog.js:62 #: ../js/ui/endSessionDialog.js:62
#, c-format
msgctxt "title" msgctxt "title"
msgid "Log Out %s" msgid "Log Out %s"
msgstr "Cerrar la sesión %s" msgstr "Cerrar la sesión %s"
@ -982,14 +933,12 @@ msgid "Log Out"
msgstr "Cerrar la sesión" msgstr "Cerrar la sesión"
#: ../js/ui/endSessionDialog.js:65 #: ../js/ui/endSessionDialog.js:65
#, c-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] "se cerrará automáticamente la sesión de %s en %d segundo." msgstr[0] "se cerrará automáticamente la sesión de %s en %d segundo."
msgstr[1] "se cerrará automáticamente la sesión de %s en %d segundos." msgstr[1] "se cerrará automáticamente la sesión de %s en %d segundos."
#: ../js/ui/endSessionDialog.js:70 #: ../js/ui/endSessionDialog.js:70
#, c-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] "Su sesión se cerrará automáticamente en %d segundo." msgstr[0] "Su sesión se cerrará automáticamente en %d segundo."
@ -1006,7 +955,6 @@ msgid "Power Off"
msgstr "Apagar" msgstr "Apagar"
#: ../js/ui/endSessionDialog.js:83 #: ../js/ui/endSessionDialog.js:83
#, c-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] "El sistema se apagará automáticamente en %d segundo." msgstr[0] "El sistema se apagará automáticamente en %d segundo."
@ -1028,7 +976,6 @@ msgid "Restart"
msgstr "Reiniciar" msgstr "Reiniciar"
#: ../js/ui/endSessionDialog.js:99 #: ../js/ui/endSessionDialog.js:99
#, c-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] "El sistema se reiniciará automáticamente en %d segundo." msgstr[0] "El sistema se reiniciará automáticamente en %d segundo."
@ -1040,7 +987,6 @@ msgid "Restart & Install Updates"
msgstr "Reiniciar e instalar actualizaciones" msgstr "Reiniciar e instalar actualizaciones"
#: ../js/ui/endSessionDialog.js:114 #: ../js/ui/endSessionDialog.js:114
#, c-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."
@ -1064,15 +1010,13 @@ msgstr "Algunas aplicaciones están ocupadas o tienen trabajo sin guardar."
msgid "Other users are logged in." msgid "Other users are logged in."
msgstr "Hay otros usuarios con la sesión iniciada" msgstr "Hay otros usuarios con la sesión iniciada"
#. 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:479 #: ../js/ui/endSessionDialog.js:479
#, c-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:482 #: ../js/ui/endSessionDialog.js:482
#, c-format
msgid "%s (console)" msgid "%s (console)"
msgstr "%s (consola)" msgstr "%s (consola)"
@ -1081,11 +1025,10 @@ msgid "Install"
msgstr "Instalar" msgstr "Instalar"
#: ../js/ui/extensionDownloader.js:204 #: ../js/ui/extensionDownloader.js:204
#, c-format
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:619 ../js/ui/status/keyboard.js:333 #: ../js/ui/keyboard.js:619
msgid "Keyboard" msgid "Keyboard"
msgstr "Teclado" msgstr "Teclado"
@ -1093,9 +1036,8 @@ msgstr "Teclado"
msgid "No extensions installed" msgid "No extensions installed"
msgstr "No hay extensiones instaladas" msgstr "No hay extensiones instaladas"
#. Translators: argument is an extension UUID. #. Translators: argument is an extension UUID. */
#: ../js/ui/lookingGlass.js:743 #: ../js/ui/lookingGlass.js:743
#, c-format
msgid "%s has not emitted any errors." msgid "%s has not emitted any errors."
msgstr "%s no ha generado ningún error." msgstr "%s no ha generado ningún error."
@ -1111,9 +1053,12 @@ msgstr "Mostrar errores"
msgid "Enabled" msgid "Enabled"
msgstr "Activado" msgstr "Activado"
#. Translators: this is for a network device that cannot be activated
#. because it's disabled by rfkill (airplane mode) */
#. translators: #. translators:
#. * The device has been disabled #. * The device has been disabled
#: ../js/ui/lookingGlass.js:765 ../src/gvc/gvc-mixer-control.c:1830 #: ../js/ui/lookingGlass.js:765 ../js/ui/status/network.js:473
#: ../src/gvc/gvc-mixer-control.c:1830
msgid "Disabled" msgid "Disabled"
msgstr "Desactivado" msgstr "Desactivado"
@ -1175,7 +1120,6 @@ msgid "Unknown"
msgstr "Desconocido" msgstr "Desconocido"
#: ../js/ui/overviewControls.js:491 ../js/ui/screenShield.js:152 #: ../js/ui/overviewControls.js:491 ../js/ui/screenShield.js:152
#, c-format
msgid "%d new message" msgid "%d new message"
msgid_plural "%d new messages" msgid_plural "%d new messages"
msgstr[0] "%d mensaje nuevo" msgstr[0] "%d mensaje nuevo"
@ -1192,7 +1136,7 @@ msgstr "Vista general"
#. 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:258 #: ../js/ui/overview.js:258
msgid "Type to search…" msgid "Type to search…"
msgstr "Escribir para buscar…" msgstr "Escribir para buscar…"
@ -1202,20 +1146,15 @@ msgid "Quit"
msgstr "Salir" msgstr "Salir"
#. 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:570 #: ../js/ui/panel.js:570
msgid "Activities" msgid "Activities"
msgstr "Actividades" msgstr "Actividades"
#: ../js/ui/panel.js:903 #: ../js/ui/panel.js:904
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:233 #: ../js/ui/popupMenu.js:233
msgid "toggle-switch-us" msgid "toggle-switch-us"
msgstr "toggle-switch-intl" msgstr "toggle-switch-intl"
@ -1229,13 +1168,12 @@ msgid "Close"
msgstr "Cerrar" msgstr "Cerrar"
#. 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"
#: ../js/ui/screenShield.js:154 #: ../js/ui/screenShield.js:154
#, c-format
msgid "%d new notification" msgid "%d new notification"
msgid_plural "%d new notifications" msgid_plural "%d new notifications"
msgstr[0] "%d notificación nueva" msgstr[0] "%d notificación nueva"
@ -1249,13 +1187,6 @@ msgstr "Bloquear"
msgid "GNOME needs to lock the screen" msgid "GNOME needs to lock the screen"
msgstr "GNOME necesita bloquear la pantalla" msgstr "GNOME necesita bloquear la 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:831 ../js/ui/screenShield.js:1297 #: ../js/ui/screenShield.js:831 ../js/ui/screenShield.js:1297
msgid "Unable to lock" msgid "Unable to lock"
msgstr "No se pudo bloquear" msgstr "No se pudo bloquear"
@ -1264,11 +1195,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/searchDisplay.js:447 #: ../js/ui/searchDisplay.js:448
msgid "Searching…" msgid "Searching…"
msgstr "Buscando…" msgstr "Buscando…"
#: ../js/ui/searchDisplay.js:491 #: ../js/ui/searchDisplay.js:492
msgid "No results." msgid "No results."
msgstr "No se encontraron resultados." msgstr "No se encontraron resultados."
@ -1340,16 +1271,14 @@ 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:28 ../js/ui/status/bluetooth.js:63 #: ../js/ui/status/bluetooth.js:28 ../js/ui/status/bluetooth.js:63
#: ../js/ui/status/bluetooth.js:100 ../js/ui/status/bluetooth.js:128 #: ../js/ui/status/bluetooth.js:100 ../js/ui/status/bluetooth.js:128
#: ../js/ui/status/bluetooth.js:164 ../js/ui/status/bluetooth.js:195 #: ../js/ui/status/bluetooth.js:164 ../js/ui/status/bluetooth.js:195
msgid "Bluetooth" msgid "Bluetooth"
msgstr "Bluetooth" msgstr "Bluetooth"
#: ../js/ui/status/bluetooth.js:30 ../js/ui/status/network.js:112 #: ../js/ui/status/bluetooth.js:30 ../js/ui/status/network.js:133
#: ../js/ui/status/network.js:1034 ../js/ui/status/rfkill.js:46 #: ../js/ui/status/network.js:1085 ../js/ui/status/rfkill.js:46
msgid "Turn Off" msgid "Turn Off"
msgstr "Apagar" msgstr "Apagar"
@ -1358,20 +1287,17 @@ msgid "Bluetooth Settings"
msgstr "Configuración de Bluetooth" msgstr "Configuración de Bluetooth"
#: ../js/ui/status/bluetooth.js:58 #: ../js/ui/status/bluetooth.js:58
#, c-format
msgid "%d Connected Device" msgid "%d Connected Device"
msgid_plural "%d Connected Devices" msgid_plural "%d Connected Devices"
msgstr[0] "%d dispositivo conectado" msgstr[0] "%d dispositivo conectado"
msgstr[1] "%d dispositivos conectados" msgstr[1] "%d dispositivos conectados"
#: ../js/ui/status/bluetooth.js:101 ../js/ui/status/bluetooth.js:129 #: ../js/ui/status/bluetooth.js:101 ../js/ui/status/bluetooth.js:129
#, c-format
msgid "Authorization request from %s" msgid "Authorization request from %s"
msgstr "Solicitud de autorización de %s" msgstr "Solicitud de autorización de %s"
#: ../js/ui/status/bluetooth.js:107 ../js/ui/status/bluetooth.js:172 #: ../js/ui/status/bluetooth.js:107 ../js/ui/status/bluetooth.js:172
#: ../js/ui/status/bluetooth.js:203 #: ../js/ui/status/bluetooth.js:203
#, c-format
msgid "Device %s wants to pair with this computer" msgid "Device %s wants to pair with this computer"
msgstr "El dispositivo «%s» quiere emparejarse con este equipo" msgstr "El dispositivo «%s» quiere emparejarse con este equipo"
@ -1384,7 +1310,6 @@ msgid "Deny"
msgstr "Denegar" msgstr "Denegar"
#: ../js/ui/status/bluetooth.js:135 #: ../js/ui/status/bluetooth.js:135
#, c-format
msgid "Device %s wants access to the service '%s'" msgid "Device %s wants access to the service '%s'"
msgstr "El dispositivo %s quiere acceder al servicio «%s»" msgstr "El dispositivo %s quiere acceder al servicio «%s»"
@ -1400,20 +1325,18 @@ msgstr "Conceder sólo esta vez"
msgid "Reject" msgid "Reject"
msgstr "Rechazar" msgstr "Rechazar"
#. Translators: argument is the device short name #. Translators: argument is the device short name */
#: ../js/ui/status/bluetooth.js:166 #: ../js/ui/status/bluetooth.js:166
#, c-format
msgid "Pairing confirmation for %s" msgid "Pairing confirmation for %s"
msgstr "Confirmación de emparejamiento para «%s»" msgstr "Confirmación de emparejamiento para «%s»"
#: ../js/ui/status/bluetooth.js:173 #: ../js/ui/status/bluetooth.js:173
#, c-format
msgid "" msgid ""
"Please confirm whether the Passkey '%06d' matches the one on the device." "Please confirm whether the Passkey '%06d' matches the one on the device."
msgstr "" msgstr ""
"Confirme que la clave mostrada en «%06d» coincide con la del dispositivo." "Confirme que la clave mostrada en «%06d» coincide con la del dispositivo."
#. Translators: this is the verb, not the noun #. Translators: this is the verb, not the noun */
#: ../js/ui/status/bluetooth.js:176 #: ../js/ui/status/bluetooth.js:176
msgid "Matches" msgid "Matches"
msgstr "Coincide" msgstr "Coincide"
@ -1423,7 +1346,6 @@ msgid "Does not match"
msgstr "No coincide" msgstr "No coincide"
#: ../js/ui/status/bluetooth.js:196 #: ../js/ui/status/bluetooth.js:196
#, c-format
msgid "Pairing request for %s" msgid "Pairing request for %s"
msgstr "Solicitud de emparejamiento para «%s»" msgstr "Solicitud de emparejamiento para «%s»"
@ -1439,91 +1361,103 @@ msgstr "Aceptar"
msgid "Brightness" msgid "Brightness"
msgstr "Brillo" msgstr "Brillo"
#: ../js/ui/status/keyboard.js:403
msgid "Show Keyboard Layout"
msgstr "Mostrar la distribución del teclado"
#: ../js/ui/status/network.js:72 #: ../js/ui/status/network.js:72
msgid "<unknown>" msgid "<unknown>"
msgstr "<desconocido>" msgstr "<desconocido>"
#: ../js/ui/status/network.js:203 ../js/ui/status/network.js:1049 #: ../js/ui/status/network.js:223 ../js/ui/status/network.js:380
#: ../js/ui/status/network.js:1106
msgid "Off" msgid "Off"
msgstr "Desconectado" msgstr "Desconectado"
#: ../js/ui/status/network.js:276 ../js/ui/status/network.js:955
#: ../js/ui/status/rfkill.js:49
msgid "Network Settings"
msgstr "Configuración de la red"
#. 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:364 #: ../js/ui/status/network.js:386
msgid "unmanaged" msgid "unmanaged"
msgstr "no gestionada" msgstr "no gestionada"
#: ../js/ui/status/network.js:366 #: ../js/ui/status/network.js:388
msgid "disconnecting..." msgid "disconnecting..."
msgstr "deconectando…" msgstr "deconectando…"
#: ../js/ui/status/network.js:372 ../js/ui/status/network.js:1100 #: ../js/ui/status/network.js:394 ../js/ui/status/network.js:1160
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:375 ../js/ui/status/network.js:1103 #: ../js/ui/status/network.js:397 ../js/ui/status/network.js:1163
msgid "authentication required" msgid "authentication required"
msgstr "se necesita autenticación" msgstr "se necesita 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:383 #: ../js/ui/status/network.js:405
msgid "firmware missing" msgid "firmware missing"
msgstr "falta el «firmware»" msgstr "falta el «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:387 #: ../js/ui/status/network.js:409
msgid "unavailable" msgid "unavailable"
msgstr "no disponible" msgstr "no disponible"
#: ../js/ui/status/network.js:389 ../js/ui/status/network.js:1105 #: ../js/ui/status/network.js:411 ../js/ui/status/network.js:1165
msgid "connection failed" msgid "connection failed"
msgstr "falló la conexión" msgstr "falló la conexión"
#: ../js/ui/status/network.js:654 #: ../js/ui/status/network.js:427 ../js/ui/status/network.js:513
#| msgid "Mobile broadband"
msgid "Mobile Broadband Settings"
msgstr "Configuración de banda ancha móvil"
#: ../js/ui/status/network.js:469 ../js/ui/status/network.js:1104
#| msgid "hardware disabled"
msgid "Hardware Disabled"
msgstr "Hardware desactivado"
#: ../js/ui/status/network.js:696
msgid "Wi-Fi Networks" msgid "Wi-Fi Networks"
msgstr "Redes Wi-Fi" msgstr "Redes Wi-Fi"
#: ../js/ui/status/network.js:656 #: ../js/ui/status/network.js:698
msgid "Select a network" msgid "Select a network"
msgstr "Seleccionar una red" msgstr "Seleccionar una red"
#: ../js/ui/status/network.js:680 #: ../js/ui/status/network.js:722
msgid "No Networks" msgid "No Networks"
msgstr "No hay redes" msgstr "No hay redes"
#: ../js/ui/status/network.js:949 #: ../js/ui/status/network.js:991
msgid "Select Network" msgid "Select Network"
msgstr "Seleccionar red" msgstr "Seleccionar red"
#: ../js/ui/status/network.js:1034 #: ../js/ui/status/network.js:997
#| msgid "Settings"
msgid "Wi-Fi Settings"
msgstr "Configuración de Wi-Fi"
#: ../js/ui/status/network.js:1085
msgid "Turn On" msgid "Turn On"
msgstr "Enceder" msgstr "Enceder"
#: ../js/ui/status/network.js:1167 #: ../js/ui/status/network.js:1108
#| msgid "Connect"
msgid "Not Connected"
msgstr "No conectado"
#: ../js/ui/status/network.js:1228
msgid "VPN" msgid "VPN"
msgstr "VPN" msgstr "VPN"
#: ../js/ui/status/network.js:1307 #: ../js/ui/status/network.js:1368
msgid "Network Manager" msgid "Network Manager"
msgstr "Gestor de la red" msgstr "Gestor de la red"
#: ../js/ui/status/network.js:1346 #: ../js/ui/status/network.js:1407
msgid "Connection failed" msgid "Connection failed"
msgstr "Falló la conexión" msgstr "Falló la conexión"
#: ../js/ui/status/network.js:1347 #: ../js/ui/status/network.js:1408
msgid "Activation of network connection failed" msgid "Activation of network connection failed"
msgstr "Falló la activación de la conexión de red" msgstr "Falló la activación de la conexión de red"
@ -1539,28 +1473,18 @@ msgstr "Configuración de energía"
msgid "Fully Charged" msgid "Fully Charged"
msgstr "Cargada completamente" msgstr "Cargada completamente"
#. 0 is reported when UPower does not have enough data
#. to estimate battery life
#. state is one of PENDING_CHARGING, PENDING_DISCHARGING
#: ../js/ui/status/power.js:69 ../js/ui/status/power.js:86 #: ../js/ui/status/power.js:69 ../js/ui/status/power.js:86
msgid "Estimating…" msgid "Estimating…"
msgstr "Estimando…" msgstr "Estimando…"
#. Translators: this is <hours>:<minutes> Remaining (<percentage>)
#: ../js/ui/status/power.js:77 #: ../js/ui/status/power.js:77
#, c-format msgid "%d%02d Remaining (%d%%)"
msgid "%d\\u2236%02d Remaining (%d%%)" msgstr "Quedan %d%02d (%d%%)"
msgstr "Quedan %d\\u2236%02d (%d%%)"
#. Translators: this is <hours>:<minutes> Until Full (<percentage>)
#: ../js/ui/status/power.js:82 #: ../js/ui/status/power.js:82
#, c-format msgid "%d%02d Until Full (%d%%)"
msgid "%d\\u2236%02d Until Full (%d%%)" msgstr "%d%02d para la carga completa (%d%%)"
msgstr "%d\\u2236%d para la carga completa (%d%%)"
#. 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:43 #: ../js/ui/status/rfkill.js:43
msgid "Airplane Mode" msgid "Airplane Mode"
msgstr "Modo avión" msgstr "Modo avión"
@ -1569,6 +1493,10 @@ msgstr "Modo avión"
msgid "On" msgid "On"
msgstr "Encender" msgstr "Encender"
#: ../js/ui/status/rfkill.js:49
msgid "Network Settings"
msgstr "Configuración de la red"
#: ../js/ui/status/system.js:305 #: ../js/ui/status/system.js:305
msgid "Switch User" msgid "Switch User"
msgstr "Cambiar de usuario" msgstr "Cambiar de usuario"
@ -1618,7 +1546,6 @@ msgid "Search"
msgstr "Buscar" msgstr "Buscar"
#: ../js/ui/wanda.js:77 #: ../js/ui/wanda.js:77
#, c-format
msgid "" msgid ""
"Sorry, no wisdom for you today:\n" "Sorry, no wisdom for you today:\n"
"%s" "%s"
@ -1627,12 +1554,10 @@ msgstr ""
"%s" "%s"
#: ../js/ui/wanda.js:81 #: ../js/ui/wanda.js:81
#, c-format
msgid "%s the Oracle says" msgid "%s the Oracle says"
msgstr "%s el oráculo dice" msgstr "%s el oráculo dice"
#: ../js/ui/windowAttentionHandler.js:19 #: ../js/ui/windowAttentionHandler.js:19
#, c-format
msgid "'%s' is ready" msgid "'%s' is ready"
msgstr "«%s» está preparado" msgstr "«%s» está preparado"
@ -1642,7 +1567,7 @@ msgstr "¿Quiere mantener esta configuración de la 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:75 #: ../js/ui/windowManager.js:75
msgid "Revert Settings" msgid "Revert Settings"
msgstr "Revertir configuración" msgstr "Revertir configuración"
@ -1652,7 +1577,6 @@ msgid "Keep Changes"
msgstr "Mantener cambios" msgstr "Mantener cambios"
#: ../js/ui/windowManager.js:97 #: ../js/ui/windowManager.js:97
#, c-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] "La configuración se revertirá en %d segundo" msgstr[0] "La configuración se revertirá en %d segundo"
@ -1719,6 +1643,23 @@ msgstr "La contraseña no puede estar vacía"
msgid "Authentication dialog was dismissed by the user" msgid "Authentication dialog was dismissed by the user"
msgstr "El usuario rechazó el diálogo de autenticación" msgstr "El usuario rechazó el diálogo de autenticación"
#~ msgid "There was an error loading the preferences dialog for %s:"
#~ msgstr "Hubo un error al lanzar el diálogo de preferencias para %s:"
#~ msgid "Extension"
#~ msgstr "Extensión"
#~ msgctxt "event list time"
#~ msgid "%H\\u2236%M"
#~ msgstr "%H\\u2236%M"
#~ msgctxt "event list time"
#~ msgid "%l\\u2236%M\\u2009%p"
#~ msgstr "%l\\u2236%M\\u2009%p"
#~ msgid "Show Keyboard Layout"
#~ msgstr "Mostrar la distribución del teclado"
#~ msgid "Settings Menu" #~ msgid "Settings Menu"
#~ msgstr "Menú de configuración" #~ msgstr "Menú de configuración"
@ -1833,9 +1774,6 @@ msgstr "El usuario rechazó el diálogo de autenticación"
#~ msgid "Set Up a New Device…" #~ msgid "Set Up a New Device…"
#~ msgstr "Configurar un dispositivo nuevo…" #~ msgstr "Configurar un dispositivo nuevo…"
#~ msgid "hardware disabled"
#~ msgstr "hardware desactivado"
#~ msgid "Connection" #~ msgid "Connection"
#~ msgstr "Conexión" #~ msgstr "Conexión"
@ -1854,9 +1792,6 @@ msgstr "El usuario rechazó el diálogo de autenticación"
#~ msgid "Wired" #~ msgid "Wired"
#~ msgstr "Cableada" #~ msgstr "Cableada"
#~ msgid "Mobile broadband"
#~ msgstr "Banda ancha móvil"
#~ msgid "Networking is disabled" #~ msgid "Networking is disabled"
#~ msgstr "La red está desactivada" #~ msgstr "La red está desactivada"

247
po/et.po
View File

@ -13,8 +13,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: 2013-09-11 19:26+0000\n" "POT-Creation-Date: 2013-09-30 11:41+0000\n"
"PO-Revision-Date: 2013-09-11 22:32+0300\n" "PO-Revision-Date: 2013-10-01 16:40+0300\n"
"Last-Translator: Mattias Põldaru <mahfiaz@gmail.com>\n" "Last-Translator: Mattias Põldaru <mahfiaz@gmail.com>\n"
"Language-Team: Estonian <>\n" "Language-Team: Estonian <>\n"
"Language: et\n" "Language: et\n"
@ -54,6 +54,9 @@ msgstr "GNOME Shelli laienduste eelistused"
msgid "Configure GNOME Shell Extensions" msgid "Configure GNOME Shell Extensions"
msgstr "GNOME Shelli laienduste seadistamine" msgstr "GNOME Shelli laienduste seadistamine"
msgid "GNOME Shell (wayland compositor)"
msgstr "GNOME Shell (waylandi komposiitor)"
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 "" msgstr ""
"Arendajate ja testijate jaoks sisemiste tööriistade lubamine Alt-F2 alt" "Arendajate ja testijate jaoks sisemiste tööriistade lubamine Alt-F2 alt"
@ -212,12 +215,8 @@ msgstr "Tööalasid hallatakse dünaamiliselt"
msgid "Workspaces only on primary monitor" msgid "Workspaces only on primary monitor"
msgstr "Tööalad peamisel monitoril" msgstr "Tööalad peamisel monitoril"
#, c-format msgid "Delay focus changes in mouse mode until the pointer stops moving"
msgid "There was an error loading the preferences dialog for %s:" msgstr "Hiire all asuv aken saab fookuse alles hiire peatumisel"
msgstr "%s jaoks eelistuste dialoogi laadimisel esines viga:"
msgid "Extension"
msgstr "Laiendus"
msgid "Select an extension to configure using the combobox above." msgid "Select an extension to configure using the combobox above."
msgstr "Vali seadistatav laiendus kasutades ülemist valikukasti." msgstr "Vali seadistatav laiendus kasutades ülemist valikukasti."
@ -238,21 +237,12 @@ msgstr "Logi sisse"
msgid "Choose Session" msgid "Choose Session"
msgstr "Seansi valimine" msgstr "Seansi valimine"
#. 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.
msgid "Not listed?" msgid "Not listed?"
msgstr "Pole loendis?" msgstr "Pole loendis?"
#. Translators: this message is shown below the username entry field
#. to clue the user in on how to login to the local network realm
#, c-format
msgid "(e.g., user or %s)" msgid "(e.g., user or %s)"
msgstr "(nt 'user' või %s)" msgstr "(nt 'user' või %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)
msgid "Username: " msgid "Username: "
msgstr "Kasutajanimi: " msgstr "Kasutajanimi: "
@ -262,23 +252,15 @@ msgstr "Sisselogimisaken"
msgid "Authentication error" msgid "Authentication error"
msgstr "Viga autentimisel" msgstr "Viga autentimisel"
#. 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
msgid "(or swipe finger)" msgid "(or swipe finger)"
msgstr "(või libista näpp üle lugeja)" msgstr "(või libista näpp üle lugeja)"
msgid "Command not found" msgid "Command not found"
msgstr "Käsku ei leitud" msgstr "Käsku ei leitud"
#. Replace "Error invoking GLib.shell_parse_argv: " with
#. something nicer
msgid "Could not parse command:" msgid "Could not parse command:"
msgstr "Käsku pole võimalik analüüsida:" msgstr "Käsku pole võimalik analüüsida:"
#, c-format
msgid "Execution of '%s' failed:" msgid "Execution of '%s' failed:"
msgstr "'%s' käivitamine nurjus:" msgstr "'%s' käivitamine nurjus:"
@ -286,7 +268,7 @@ msgid "Frequently used applications will appear here"
msgstr "Siia ilmuvad tihti kasutatud rakendused" msgstr "Siia ilmuvad tihti kasutatud rakendused"
msgid "Frequent" msgid "Frequent"
msgstr "Sage" msgstr "Tihti"
msgid "All" msgid "All"
msgstr "Kõik" msgstr "Kõik"
@ -300,11 +282,9 @@ msgstr "Eemalda lemmikutest"
msgid "Add to Favorites" msgid "Add to Favorites"
msgstr "Lisa lemmikutesse" msgstr "Lisa lemmikutesse"
#, c-format
msgid "%s has been added to your favorites." msgid "%s has been added to your favorites."
msgstr "%s lisati lemmikutesse." msgstr "%s lisati lemmikutesse."
#, c-format
msgid "%s has been removed from your favorites." msgid "%s has been removed from your favorites."
msgstr "%s eemaldati lemmikutest." msgstr "%s eemaldati lemmikutest."
@ -316,59 +296,59 @@ msgstr "Muuda tausta…"
#. 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
#. #. */
msgctxt "event list time" msgctxt "event list time"
msgid "All Day" msgid "All Day"
msgstr "Kogu päev" msgstr "Kogu päev"
#. 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 : */
msgctxt "event list time" msgctxt "event list time"
msgid "%H\\u2236%M" msgid "%H%M"
msgstr "%H\\u2236%M" 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 */
msgctxt "event list time" msgctxt "event list time"
msgid "%l\\u2236%M\\u2009%p" msgid "%l%M%p"
msgstr "%l\\u2236%M\\u2009%p" msgstr "%l%M%p"
#. Translators: Calendar grid abbreviation for Sunday. #. Translators: Calendar grid abbreviation for Sunday.
#. * #. *
#. * 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".
#. #. */
msgctxt "grid sunday" msgctxt "grid sunday"
msgid "S" msgid "S"
msgstr "P" msgstr "P"
#. Translators: Calendar grid abbreviation for Monday #. Translators: Calendar grid abbreviation for Monday */
msgctxt "grid monday" msgctxt "grid monday"
msgid "M" msgid "M"
msgstr "E" msgstr "E"
#. Translators: Calendar grid abbreviation for Tuesday #. Translators: Calendar grid abbreviation for Tuesday */
msgctxt "grid tuesday" msgctxt "grid tuesday"
msgid "T" msgid "T"
msgstr "T" msgstr "T"
#. Translators: Calendar grid abbreviation for Wednesday #. Translators: Calendar grid abbreviation for Wednesday */
msgctxt "grid wednesday" msgctxt "grid wednesday"
msgid "W" msgid "W"
msgstr "K" msgstr "K"
#. Translators: Calendar grid abbreviation for Thursday #. Translators: Calendar grid abbreviation for Thursday */
msgctxt "grid thursday" msgctxt "grid thursday"
msgid "T" msgid "T"
msgstr "N" msgstr "N"
#. Translators: Calendar grid abbreviation for Friday #. Translators: Calendar grid abbreviation for Friday */
msgctxt "grid friday" msgctxt "grid friday"
msgid "F" msgid "F"
msgstr "R" msgstr "R"
#. Translators: Calendar grid abbreviation for Saturday #. Translators: Calendar grid abbreviation for Saturday */
msgctxt "grid saturday" msgctxt "grid saturday"
msgid "S" msgid "S"
msgstr "L" msgstr "L"
@ -378,57 +358,60 @@ msgstr "L"
#. * 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').
#. #. */
msgctxt "list sunday" msgctxt "list sunday"
msgid "Su" msgid "Su"
msgstr "P" msgstr "P"
#. Translators: Event list abbreviation for Monday #. Translators: Event list abbreviation for Monday */
msgctxt "list monday" msgctxt "list monday"
msgid "M" msgid "M"
msgstr "E" msgstr "E"
#. Translators: Event list abbreviation for Tuesday #. Translators: Event list abbreviation for Tuesday */
msgctxt "list tuesday" msgctxt "list tuesday"
msgid "T" msgid "T"
msgstr "T" msgstr "T"
#. Translators: Event list abbreviation for Wednesday #. Translators: Event list abbreviation for Wednesday */
msgctxt "list wednesday" msgctxt "list wednesday"
msgid "W" msgid "W"
msgstr "K" msgstr "K"
#. Translators: Event list abbreviation for Thursday #. Translators: Event list abbreviation for Thursday */
msgctxt "list thursday" msgctxt "list thursday"
msgid "Th" msgid "Th"
msgstr "N" msgstr "N"
#. Translators: Event list abbreviation for Friday #. Translators: Event list abbreviation for Friday */
msgctxt "list friday" msgctxt "list friday"
msgid "F" msgid "F"
msgstr "R" msgstr "R"
#. Translators: Event list abbreviation for Saturday #. Translators: Event list abbreviation for Saturday */
msgctxt "list saturday" msgctxt "list saturday"
msgid "S" msgid "S"
msgstr "L" msgstr "L"
msgid "calendar:MY"
msgstr "Minu"
msgid "Previous month" msgid "Previous month"
msgstr "Eelmine kuu" msgstr "Eelmine kuu"
msgid "Next month" msgid "Next month"
msgstr "Järgmine kuu" msgstr "Järgmine kuu"
#. Translators: Text to show if there are no events #. Translators: Text to show if there are no events */
msgid "Nothing Scheduled" msgid "Nothing Scheduled"
msgstr "Ühtegi sündmust pole plaanitud" msgstr "Ühtegi sündmust pole plaanitud"
#. Translators: Shown on calendar heading when selected day occurs on current year #. Translators: Shown on calendar heading when selected day occurs on current year */
msgctxt "calendar heading" msgctxt "calendar heading"
msgid "%A, %B %d" msgid "%A, %B %d"
msgstr "%A, %d. %B" msgstr "%A, %d. %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 */
msgctxt "calendar heading" msgctxt "calendar heading"
msgid "%A, %B %d, %Y" msgid "%A, %B %d, %Y"
msgstr "%A, %d. %B %Y" msgstr "%A, %d. %B %Y"
@ -454,7 +437,6 @@ msgstr "Väline ketas eemaldati"
msgid "Removable Devices" msgid "Removable Devices"
msgstr "Eemaldatavad seadmed" msgstr "Eemaldatavad seadmed"
#, c-format
msgid "Open with %s" msgid "Open with %s"
msgstr "Ava programmiga %s" msgstr "Ava programmiga %s"
@ -470,11 +452,9 @@ msgstr "Sisesta uuesti:"
msgid "Connect" msgid "Connect"
msgstr "Ühendu" msgstr "Ühendu"
#. Cisco LEAP
msgid "Password: " msgid "Password: "
msgstr "Parool: " msgstr "Parool: "
#. static WEP
msgid "Key: " msgid "Key: "
msgstr "Võti: " msgstr "Võti: "
@ -490,7 +470,6 @@ msgstr "Teenus: "
msgid "Authentication required by wireless network" msgid "Authentication required by wireless network"
msgstr "Juhtmeta võrgu jaoks on vajalik autentimine" msgstr "Juhtmeta võrgu jaoks on vajalik autentimine"
#, c-format
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'."
@ -518,7 +497,6 @@ msgstr "PIN: "
msgid "Mobile broadband network password" msgid "Mobile broadband network password"
msgstr "Mobiiliühenduse võrgu parool" msgstr "Mobiiliühenduse võrgu parool"
#, c-format
msgid "A password is required to connect to '%s'." msgid "A password is required to connect to '%s'."
msgstr "'%s' ühenduse loomiseks on vaja parooli." msgstr "'%s' ühenduse loomiseks on vaja parooli."
@ -534,20 +512,16 @@ msgstr "Autendi"
#. 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. */
msgid "Sorry, that didn't work. Please try again." msgid "Sorry, that didn't work. Please try again."
msgstr "Kahjuks see ei sobinud. Palun proovi uuesti." msgstr "Kahjuks see ei sobinud. Palun proovi uuesti."
#. FIXME: We don't have a 'chat room' icon (bgo #653737) use
#. system-users for now as Empathy does.
msgid "Invitation" msgid "Invitation"
msgstr "Kutse" msgstr "Kutse"
#. We got the TpContact
msgid "Call" msgid "Call"
msgstr "Helista" msgstr "Helista"
#. We got the TpContact
msgid "File Transfer" msgid "File Transfer"
msgstr "Failiülekanne" msgstr "Failiülekanne"
@ -560,42 +534,35 @@ msgstr "Heli peale"
msgid "Mute" msgid "Mute"
msgstr "Heli maha" msgstr "Heli maha"
#. Translators: this is the word "Yesterday" followed by a time string. i.e. "Yesterday, 14:30" #. Translators: this is the word "Yesterday" followed by a time string. i.e. "Yesterday, 14:30"*/
#, no-c-format
msgid "<b>Yesterday</b>, <b>%H:%M</b>" msgid "<b>Yesterday</b>, <b>%H:%M</b>"
msgstr "<b>Eile</b> <b>%H:%M</b>" msgstr "<b>Eile</b> <b>%H:%M</b>"
#. Translators: this is the week day name followed by a time string. i.e. "Monday, 14:30 #. Translators: this is the week day name followed by a time string. i.e. "Monday, 14:30*/
#, no-c-format
msgid "<b>%A</b>, <b>%H:%M</b>" msgid "<b>%A</b>, <b>%H:%M</b>"
msgstr "<b>%A</b>, <b>%H:%M</b>" msgstr "<b>%A</b>, <b>%H:%M</b>"
#. Translators: this is the month name and day number followed by a time string. i.e. "May 25, 14:30" #. Translators: this is the month name and day number followed by a time string. i.e. "May 25, 14:30"*/
#, no-c-format
msgid "<b>%B</b> <b>%d</b>, <b>%H:%M</b>" msgid "<b>%B</b> <b>%d</b>, <b>%H:%M</b>"
msgstr "<b>%d. %B</b>, <b>%H:%M</b>" msgstr "<b>%d. %B</b>, <b>%H:%M</b>"
#. Translators: this is the month name, day number, year number followed by a time string. i.e. "May 25 2012, 14:30" #. Translators: this is the month name, day number, year number followed by a time string. i.e. "May 25 2012, 14:30"*/
#, no-c-format
msgid "<b>%B</b> <b>%d</b> <b>%Y</b>, <b>%H:%M</b> " msgid "<b>%B</b> <b>%d</b> <b>%Y</b>, <b>%H:%M</b> "
msgstr "<b>%d. %B %Y</b>, <b>%H:%M</b>" msgstr "<b>%d. %B %Y</b>, <b>%H:%M</b>"
#. 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. */
#, c-format
msgid "%s is now known as %s" msgid "%s is now known as %s"
msgstr "%s nimi on nüüd %s" msgstr "%s nimi on nüüd %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. */
#, c-format
msgid "Invitation to %s" msgid "Invitation to %s"
msgstr "Kutse: %s" msgstr "Kutse: %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. */
#, c-format
msgid "%s is inviting you to join %s" msgid "%s is inviting you to join %s"
msgstr "%s kutsub sind liituma: %s" msgstr "%s kutsub sind liituma: %s"
@ -605,17 +572,15 @@ msgstr "Keeldu"
msgid "Accept" msgid "Accept"
msgstr "Nõustu" msgstr "Nõustu"
#. translators: argument is a contact name like Alice for example. #. translators: argument is a contact name like Alice for example. */
#, c-format
msgid "Video call from %s" msgid "Video call from %s"
msgstr "%s tahab alustada videokõnet" msgstr "%s tahab alustada videokõnet"
#. translators: argument is a contact name like Alice for example. #. translators: argument is a contact name like Alice for example. */
#, c-format
msgid "Call from %s" msgid "Call from %s"
msgstr "%s helistab" msgstr "%s helistab"
#. translators: this is a button label (verb), not a noun #. translators: this is a button label (verb), not a noun */
msgid "Answer" msgid "Answer"
msgstr "Vasta" msgstr "Vasta"
@ -623,13 +588,11 @@ msgstr "Vasta"
#. * 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"
#. #. */
#, c-format
msgid "%s is sending you %s" msgid "%s is sending you %s"
msgstr "%s saadab sulle %s" msgstr "%s saadab sulle %s"
#. To translators: The parameter is the contact's alias #. To translators: The parameter is the contact's alias */
#, c-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 palub sinu luba, et näha, kui sa oled võrgus" msgstr "%s palub sinu luba, et näha, kui sa oled võrgus"
@ -713,8 +676,7 @@ msgid "Internal error"
msgstr "Sisemine viga" msgstr "Sisemine viga"
#. translators: argument is the account name, like #. translators: argument is the account name, like
#. * name@jabber.org for example. #. * name@jabber.org for example. */
#, c-format
msgid "Unable to connect to %s" msgid "Unable to connect to %s"
msgstr "Pole võimalik ühenduda võrguga %s" msgstr "Pole võimalik ühenduda võrguga %s"
@ -730,8 +692,6 @@ msgstr "Aknad"
msgid "Show Applications" msgid "Show Applications"
msgstr "Rakenduste kuvamine" msgstr "Rakenduste kuvamine"
#. Translators: this is the name of the dock/favorites area on
#. the left of the overview
msgid "Dash" msgid "Dash"
msgstr "Dokk" msgstr "Dokk"
@ -746,11 +706,10 @@ msgstr "Kuupäeva ja kella sätted"
#. 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").
#. #. */
msgid "%A %B %e, %Y" msgid "%A %B %e, %Y"
msgstr "%A, %d. %B %Y" msgstr "%A, %d. %B %Y"
#, c-format
msgctxt "title" msgctxt "title"
msgid "Log Out %s" msgid "Log Out %s"
msgstr "%s väljalogimine" msgstr "%s väljalogimine"
@ -759,13 +718,11 @@ msgctxt "title"
msgid "Log Out" msgid "Log Out"
msgstr "Väljalogimine" msgstr "Väljalogimine"
#, c-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 logitakse %d sekundi pärast automaatselt välja." msgstr[0] "%s logitakse %d sekundi pärast automaatselt välja."
msgstr[1] "%s logitakse %d sekundi pärast automaatselt välja." msgstr[1] "%s logitakse %d sekundi pärast automaatselt välja."
#, c-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] "Sind logitakse %d sekundi pärast automaatselt välja." msgstr[0] "Sind logitakse %d sekundi pärast automaatselt välja."
@ -779,7 +736,6 @@ msgctxt "title"
msgid "Power Off" msgid "Power Off"
msgstr "Väljalülitamine" msgstr "Väljalülitamine"
#, c-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 sekundi pärast lülitub süsteem automaatselt välja." msgstr[0] "%d sekundi pärast lülitub süsteem automaatselt välja."
@ -797,7 +753,6 @@ msgctxt "title"
msgid "Restart" msgid "Restart"
msgstr "Taaskäivitamine" msgstr "Taaskäivitamine"
#, c-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] "Süsteem taaskäivitub automaatselt %d sekundi pärast." msgstr[0] "Süsteem taaskäivitub automaatselt %d sekundi pärast."
@ -807,7 +762,6 @@ msgctxt "title"
msgid "Restart & Install Updates" msgid "Restart & Install Updates"
msgstr "Taaskäivitamine ja uuenduste paigaldamine" msgstr "Taaskäivitamine ja uuenduste paigaldamine"
#, c-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."
@ -824,20 +778,17 @@ msgstr "Mõned rakendused on tegevuses või on neis salvestamata asju."
msgid "Other users are logged in." msgid "Other users are logged in."
msgstr "Teised kasutajad on sisse logitud." msgstr "Teised kasutajad on sisse logitud."
#. Translators: Remote here refers to a remote session, like a ssh login #. Translators: Remote here refers to a remote session, like a ssh login */
#, c-format
msgid "%s (remote)" msgid "%s (remote)"
msgstr "%s (kaugühendus)" msgstr "%s (kaugühendus)"
#. Translators: Console here refers to a tty like a VT console #. Translators: Console here refers to a tty like a VT console */
#, c-format
msgid "%s (console)" msgid "%s (console)"
msgstr "%s (konsool)" msgstr "%s (konsool)"
msgid "Install" msgid "Install"
msgstr "Paigalda" msgstr "Paigalda"
#, c-format
msgid "Download and install '%s' from extensions.gnome.org?" msgid "Download and install '%s' from extensions.gnome.org?"
msgstr "Kas laadida alla ja paigaldada '%s' aadressilt extensions.gnome.org?" msgstr "Kas laadida alla ja paigaldada '%s' aadressilt extensions.gnome.org?"
@ -847,8 +798,7 @@ msgstr "Klaviatuur"
msgid "No extensions installed" msgid "No extensions installed"
msgstr "Ühtegi laiendust pole paigaldatud" msgstr "Ühtegi laiendust pole paigaldatud"
#. Translators: argument is an extension UUID. #. Translators: argument is an extension UUID. */
#, c-format
msgid "%s has not emitted any errors." msgid "%s has not emitted any errors."
msgstr "%s ei ole väljastanud ühtegi veateadet." msgstr "%s ei ole väljastanud ühtegi veateadet."
@ -909,7 +859,6 @@ msgctxt "program"
msgid "Unknown" msgid "Unknown"
msgstr "Tundmatu" msgstr "Tundmatu"
#, c-format
msgid "%d new message" msgid "%d new message"
msgid_plural "%d new messages" msgid_plural "%d new messages"
msgstr[0] "%d uus sõnum" msgstr[0] "%d uus sõnum"
@ -924,7 +873,7 @@ msgstr "Ülevaade"
#. 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. */
msgid "Type to search…" msgid "Type to search…"
msgstr "Otsing…" msgstr "Otsing…"
@ -932,21 +881,13 @@ msgid "Quit"
msgstr "Sulge" msgstr "Sulge"
#. 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". */
msgid "Activities" msgid "Activities"
msgstr "Tegevused" msgstr "Tegevused"
msgid "Settings Menu"
msgstr "Sätete menüü"
msgid "Top Bar" msgid "Top Bar"
msgstr "Ülemine riba" msgstr "Ülemine riba"
#. 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.
msgid "toggle-switch-us" msgid "toggle-switch-us"
msgstr "toggle-switch-intl" msgstr "toggle-switch-intl"
@ -957,11 +898,10 @@ msgid "Close"
msgstr "Sulge" msgstr "Sulge"
#. Translators: This is a time format for a date in #. Translators: This is a time format for a date in
#. long format #. long format */
msgid "%A, %B %d" msgid "%A, %B %d"
msgstr "%A, %d. %B" msgstr "%A, %d. %B"
#, c-format
msgid "%d new notification" msgid "%d new notification"
msgid_plural "%d new notifications" msgid_plural "%d new notifications"
msgstr[0] "%d uus märguanne" msgstr[0] "%d uus märguanne"
@ -973,13 +913,6 @@ msgstr "Lukusta"
msgid "GNOME needs to lock the screen" msgid "GNOME needs to lock the screen"
msgstr "GNOME peab ekraani lukustama" msgstr "GNOME peab ekraani lukustama"
#. 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
msgid "Unable to lock" msgid "Unable to lock"
msgstr "Pole võimalik lukustada" msgstr "Pole võimalik lukustada"
@ -1043,8 +976,6 @@ msgstr "Kõrgkontrastne"
msgid "Large Text" msgid "Large Text"
msgstr "Suur tekst" msgstr "Suur tekst"
#. The Bluetooth menu only appears when Bluetooth is in use,
#. so just statically build it with a "Turn Off" menu item.
msgid "Bluetooth" msgid "Bluetooth"
msgstr "Bluetooth" msgstr "Bluetooth"
@ -1054,17 +985,14 @@ msgstr "Lülita välja"
msgid "Bluetooth Settings" msgid "Bluetooth Settings"
msgstr "Bluetoothi sätted" msgstr "Bluetoothi sätted"
#, c-format
msgid "%d Connected Device" msgid "%d Connected Device"
msgid_plural "%d Connected Devices" msgid_plural "%d Connected Devices"
msgstr[0] "%d ühendatud seade" msgstr[0] "%d ühendatud seade"
msgstr[1] "%d ühendatud seadet" msgstr[1] "%d ühendatud seadet"
#, c-format
msgid "Authorization request from %s" msgid "Authorization request from %s"
msgstr "Autoriseerimise päring seadmelt %s" msgstr "Autoriseerimise päring seadmelt %s"
#, c-format
msgid "Device %s wants to pair with this computer" msgid "Device %s wants to pair with this computer"
msgstr "Seade '%s' tahab selle arvutiga paarduda" msgstr "Seade '%s' tahab selle arvutiga paarduda"
@ -1074,7 +1002,6 @@ msgstr "Luba"
msgid "Deny" msgid "Deny"
msgstr "Keela" msgstr "Keela"
#, c-format
msgid "Device %s wants access to the service '%s'" msgid "Device %s wants access to the service '%s'"
msgstr "Seade %s soovib ligipääsu teenusele '%s'" msgstr "Seade %s soovib ligipääsu teenusele '%s'"
@ -1087,24 +1014,21 @@ msgstr "Luba ainult seekord"
msgid "Reject" msgid "Reject"
msgstr "Lükka tagasi" msgstr "Lükka tagasi"
#. Translators: argument is the device short name #. Translators: argument is the device short name */
#, c-format
msgid "Pairing confirmation for %s" msgid "Pairing confirmation for %s"
msgstr "Paardumise kinnitus seadmele %s" msgstr "Paardumise kinnitus seadmele %s"
#, c-format
msgid "" msgid ""
"Please confirm whether the Passkey '%06d' matches the one on the device." "Please confirm whether the Passkey '%06d' matches the one on the device."
msgstr "Palun kontrolli, kas parool '%06d' kattub seadme parooliga." msgstr "Palun kontrolli, kas parool '%06d' kattub seadme parooliga."
#. Translators: this is the verb, not the noun #. Translators: this is the verb, not the noun */
msgid "Matches" msgid "Matches"
msgstr "Kattub" msgstr "Kattub"
msgid "Does not match" msgid "Does not match"
msgstr "Ei kattu" msgstr "Ei kattu"
#, c-format
msgid "Pairing request for %s" msgid "Pairing request for %s"
msgstr "Seadmega %s paardumise päring" msgstr "Seadmega %s paardumise päring"
@ -1117,9 +1041,6 @@ msgstr "Olgu"
msgid "Brightness" msgid "Brightness"
msgstr "Heledus" msgstr "Heledus"
msgid "Show Keyboard Layout"
msgstr "Klaviatuuripaigutuse kuvamine"
msgid "<unknown>" msgid "<unknown>"
msgstr "<tundmatu>" msgstr "<tundmatu>"
@ -1130,7 +1051,7 @@ msgid "Network Settings"
msgstr "Võrgusätted" msgstr "Võrgusätted"
#. 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) */
msgid "unmanaged" msgid "unmanaged"
msgstr "pole hallatud" msgstr "pole hallatud"
@ -1140,17 +1061,17 @@ msgstr "ühenduse katkestamine..."
msgid "connecting..." msgid "connecting..."
msgstr "ühendumine..." msgstr "ühendumine..."
#. 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 */
msgid "authentication required" msgid "authentication required"
msgstr "vajalik on autentimine" msgstr "vajalik on autentimine"
#. 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 */
msgid "firmware missing" msgid "firmware missing"
msgstr "püsivara puudub" msgstr "püsivara puudub"
#. 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 */
msgid "unavailable" msgid "unavailable"
msgstr "pole saadaval" msgstr "pole saadaval"
@ -1193,25 +1114,15 @@ msgstr "Toitesätted..."
msgid "Fully Charged" msgid "Fully Charged"
msgstr "Täiesti täis" msgstr "Täiesti täis"
#. 0 is reported when UPower does not have enough data
#. to estimate battery life
#. state is one of PENDING_CHARGING, PENDING_DISCHARGING
msgid "Estimating…" msgid "Estimating…"
msgstr "Andmete kogumine…" msgstr "Andmete kogumine…"
#. Translators: this is <hours>:<minutes> Remaining (<percentage>) msgid "%d%02d Remaining (%d%%)"
#, c-format msgstr "%d%02d jäänud (%d%%)"
msgid "%d\\u2236%02d Remaining (%d%%)"
msgstr "%d\\u2236%02d jäänud (%d%%)"
#. Translators: this is <hours>:<minutes> Until Full (<percentage>) msgid "%d%02d Until Full (%d%%)"
#, c-format msgstr "%d%02d täitumiseni (%d%%)"
msgid "%d\\u2236%02d Until Full (%d%%)"
msgstr "%d\\u2236%02d täitumiseni (%d%%)"
#. 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.
msgid "Airplane Mode" msgid "Airplane Mode"
msgstr "Lennukirežiim" msgstr "Lennukirežiim"
@ -1254,7 +1165,6 @@ msgstr "Rakendused"
msgid "Search" msgid "Search"
msgstr "Otsing" msgstr "Otsing"
#, c-format
msgid "" msgid ""
"Sorry, no wisdom for you today:\n" "Sorry, no wisdom for you today:\n"
"%s" "%s"
@ -1262,11 +1172,9 @@ msgstr ""
"Vabandust, tänaseks tarkuseteri pole:\n" "Vabandust, tänaseks tarkuseteri pole:\n"
"%s" "%s"
#, c-format
msgid "%s the Oracle says" msgid "%s the Oracle says"
msgstr "Oraakel %s ütleb" msgstr "Oraakel %s ütleb"
#, c-format
msgid "'%s' is ready" msgid "'%s' is ready"
msgstr "'%s' on valmis" msgstr "'%s' on valmis"
@ -1275,14 +1183,13 @@ msgstr "Kas tahad säilitada need kuvasätted?"
#. 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.
#. #. */
msgid "Revert Settings" msgid "Revert Settings"
msgstr "Taasta sätted" msgstr "Taasta sätted"
msgid "Keep Changes" msgid "Keep Changes"
msgstr "Säilita muudatused" msgstr "Säilita muudatused"
#, c-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] "Sätete muudatused ennistatakse %d sekundi pärast" msgstr[0] "Sätete muudatused ennistatakse %d sekundi pärast"
@ -1335,6 +1242,26 @@ msgstr "Parool ei saa olla tühi"
msgid "Authentication dialog was dismissed by the user" msgid "Authentication dialog was dismissed by the user"
msgstr "Kasutaja katkestas autentimisdialoogi" msgstr "Kasutaja katkestas autentimisdialoogi"
#~ msgid "There was an error loading the preferences dialog for %s:"
#~ msgstr "%s jaoks eelistuste dialoogi laadimisel esines viga:"
#~ msgid "Extension"
#~ msgstr "Laiendus"
#~ msgctxt "event list time"
#~ msgid "%H\\u2236%M"
#~ msgstr "%H\\u2236%M"
#~ msgctxt "event list time"
#~ msgid "%l\\u2236%M\\u2009%p"
#~ msgstr "%l\\u2236%M\\u2009%p"
#~ msgid "Show Keyboard Layout"
#~ msgstr "Klaviatuuripaigutuse kuvamine"
#~ msgid "Settings Menu"
#~ msgstr "Sätete menüü"
#~ msgid "Screenshots" #~ msgid "Screenshots"
#~ msgstr "Ekraanipildid" #~ msgstr "Ekraanipildid"

461
po/eu.po

File diff suppressed because it is too large Load Diff

1798
po/fa.po

File diff suppressed because it is too large Load Diff

431
po/fi.po

File diff suppressed because it is too large Load Diff

382
po/gl.po

File diff suppressed because it is too large Load Diff

690
po/he.po

File diff suppressed because it is too large Load Diff

497
po/hu.po

File diff suppressed because it is too large Load Diff

334
po/id.po
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: 2013-09-23 13:35+0000\n" "POT-Creation-Date: 2013-10-10 21:27+0000\n"
"PO-Revision-Date: 2013-09-23 21:24+0700\n" "PO-Revision-Date: 2013-10-11 10:13+0700\n"
"Last-Translator: Andika Triwidada <andika@gmail.com>\n" "Last-Translator: Andika Triwidada <andika@gmail.com>\n"
"Language-Team: Indonesian <gnome@i15n.org>\n" "Language-Team: Indonesian <gnome@i15n.org>\n"
"Language: id\n" "Language: id\n"
@ -56,7 +56,6 @@ msgid "Window management and application launching"
msgstr "Manajemen jendela dan peluncuran aplikasi" msgstr "Manajemen jendela dan peluncuran aplikasi"
#: ../data/gnome-shell-extension-prefs.desktop.in.in.h:1 #: ../data/gnome-shell-extension-prefs.desktop.in.in.h:1
#: ../js/extensionPrefs/main.js:153
msgid "GNOME Shell Extension Preferences" msgid "GNOME Shell Extension Preferences"
msgstr "Preferensi Ekstensi GNOME Shell" msgstr "Preferensi Ekstensi GNOME Shell"
@ -275,15 +274,6 @@ msgid "Delay focus changes in mouse mode until the pointer stops moving"
msgstr "" msgstr ""
"Tunda perubahan fokus dalam mode tetikus sampai penunjuk berhenti bergerak" "Tunda perubahan fokus dalam mode tetikus sampai penunjuk berhenti bergerak"
#: ../js/extensionPrefs/main.js:125
#, c-format
msgid "There was an error loading the preferences dialog for %s:"
msgstr "Terjadi galat sewaktu memuat dialog preferensi untuk %s:"
#: ../js/extensionPrefs/main.js:165
msgid "Extension"
msgstr "Ekstensi"
#: ../js/extensionPrefs/main.js:189 #: ../js/extensionPrefs/main.js:189
msgid "Select an extension to configure using the combobox above." msgid "Select an extension to configure using the combobox above."
msgstr "Pilih ekstensi yang ingin dikonfigurasi pada kotak di atas." msgstr "Pilih ekstensi yang ingin dikonfigurasi pada kotak di atas."
@ -291,7 +281,7 @@ msgstr "Pilih ekstensi yang ingin dikonfigurasi pada kotak di atas."
#: ../js/gdm/authPrompt.js:145 ../js/ui/components/networkAgent.js:136 #: ../js/gdm/authPrompt.js:145 ../js/ui/components/networkAgent.js:136
#: ../js/ui/components/polkitAgent.js:161 ../js/ui/endSessionDialog.js:351 #: ../js/ui/components/polkitAgent.js:161 ../js/ui/endSessionDialog.js:351
#: ../js/ui/extensionDownloader.js:195 ../js/ui/shellMountOperation.js:399 #: ../js/ui/extensionDownloader.js:195 ../js/ui/shellMountOperation.js:399
#: ../js/ui/status/bluetooth.js:222 ../js/ui/status/network.js:686 #: ../js/ui/status/bluetooth.js:222 ../js/ui/status/network.js:728
msgid "Cancel" msgid "Cancel"
msgstr "Batal" msgstr "Batal"
@ -313,23 +303,14 @@ msgstr "Masuk"
msgid "Choose Session" msgid "Choose Session"
msgstr "Pilih Sesi" msgstr "Pilih Sesi"
#. 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:454 #: ../js/gdm/loginDialog.js:454
msgid "Not listed?" msgid "Not listed?"
msgstr "Tak masuk daftar?" msgstr "Tak masuk daftar?"
#. 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:622 #: ../js/gdm/loginDialog.js:622
#, c-format
msgid "(e.g., user or %s)" msgid "(e.g., user or %s)"
msgstr "(cth., pengguna dari %s)" msgstr "(cth., pengguna dari %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:627 ../js/ui/components/networkAgent.js:259 #: ../js/gdm/loginDialog.js:627 ../js/ui/components/networkAgent.js:259
#: ../js/ui/components/networkAgent.js:277 #: ../js/ui/components/networkAgent.js:277
msgid "Username: " msgid "Username: "
@ -343,27 +324,19 @@ msgstr "Jendela Log Masuk"
msgid "Authentication error" msgid "Authentication error"
msgstr "Galat otentikasi" msgstr "Galat otentikasi"
#. 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:436 #: ../js/gdm/util.js:436
msgid "(or swipe finger)" msgid "(or swipe finger)"
msgstr "(atau gesekkan jari)" msgstr "(atau gesekkan jari)"
#: ../js/misc/util.js:98 #: ../js/misc/util.js:115
msgid "Command not found" msgid "Command not found"
msgstr "Perintah tidak ditemukan" msgstr "Perintah tidak ditemukan"
#. Replace "Error invoking GLib.shell_parse_argv: " with #: ../js/misc/util.js:148
#. something nicer
#: ../js/misc/util.js:131
msgid "Could not parse command:" msgid "Could not parse command:"
msgstr "Tidak dapat mengurai perintah:" msgstr "Tidak dapat mengurai perintah:"
#: ../js/misc/util.js:139 #: ../js/misc/util.js:156
#, c-format
msgid "Execution of '%s' failed:" msgid "Execution of '%s' failed:"
msgstr "Eksekusi '%s' gagal:" msgstr "Eksekusi '%s' gagal:"
@ -392,16 +365,14 @@ msgid "Add to Favorites"
msgstr "Tambah ke Favorit" msgstr "Tambah ke Favorit"
#: ../js/ui/appFavorites.js:87 #: ../js/ui/appFavorites.js:87
#, c-format
msgid "%s has been added to your favorites." msgid "%s has been added to your favorites."
msgstr "%s telah ditambahkan ke favorit Anda." msgstr "%s telah ditambahkan ke favorit Anda."
#: ../js/ui/appFavorites.js:121 #: ../js/ui/appFavorites.js:121
#, c-format
msgid "%s has been removed from your favorites." msgid "%s has been removed from your favorites."
msgstr "%s telah dihapus dari favorit Anda." msgstr "%s telah dihapus dari favorit Anda."
#: ../js/ui/backgroundMenu.js:19 ../js/ui/panel.js:807 #: ../js/ui/backgroundMenu.js:19 ../js/ui/panel.js:808
#: ../js/ui/status/system.js:325 #: ../js/ui/status/system.js:325
msgid "Settings" msgid "Settings"
msgstr "Pengaturan" msgstr "Pengaturan"
@ -412,68 +383,68 @@ msgstr "Ubah Latar…"
#. 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:62 #: ../js/ui/calendar.js:62
msgctxt "event list time" msgctxt "event list time"
msgid "All Day" msgid "All Day"
msgstr "Sepanjang Hari" msgstr "Sepanjang Hari"
#. 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:68 #: ../js/ui/calendar.js:68
msgctxt "event list time" msgctxt "event list time"
msgid "%H\\u2236%M" msgid "%H%M"
msgstr "%H\\u2236%M" 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:77 #: ../js/ui/calendar.js:77
msgctxt "event list time" msgctxt "event list time"
msgid "%l\\u2236%M\\u2009%p" msgid "%l%M%p"
msgstr "%l\\u2236%M\\u2009%p" msgstr "%l%M%p"
#. Translators: Calendar grid abbreviation for Sunday. #. Translators: Calendar grid abbreviation for Sunday.
#. * #. *
#. * 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:108 #: ../js/ui/calendar.js:108
msgctxt "grid sunday" msgctxt "grid sunday"
msgid "S" msgid "S"
msgstr "M" msgstr "M"
#. Translators: Calendar grid abbreviation for Monday #. Translators: Calendar grid abbreviation for Monday */
#: ../js/ui/calendar.js:110 #: ../js/ui/calendar.js:110
msgctxt "grid monday" msgctxt "grid monday"
msgid "M" msgid "M"
msgstr "S" msgstr "S"
#. Translators: Calendar grid abbreviation for Tuesday #. Translators: Calendar grid abbreviation for Tuesday */
#: ../js/ui/calendar.js:112 #: ../js/ui/calendar.js:112
msgctxt "grid tuesday" msgctxt "grid tuesday"
msgid "T" msgid "T"
msgstr "S" msgstr "S"
#. Translators: Calendar grid abbreviation for Wednesday #. Translators: Calendar grid abbreviation for Wednesday */
#: ../js/ui/calendar.js:114 #: ../js/ui/calendar.js:114
msgctxt "grid wednesday" msgctxt "grid wednesday"
msgid "W" msgid "W"
msgstr "R" msgstr "R"
#. Translators: Calendar grid abbreviation for Thursday #. Translators: Calendar grid abbreviation for Thursday */
#: ../js/ui/calendar.js:116 #: ../js/ui/calendar.js:116
msgctxt "grid thursday" msgctxt "grid thursday"
msgid "T" msgid "T"
msgstr "K" msgstr "K"
#. Translators: Calendar grid abbreviation for Friday #. Translators: Calendar grid abbreviation for Friday */
#: ../js/ui/calendar.js:118 #: ../js/ui/calendar.js:118
msgctxt "grid friday" msgctxt "grid friday"
msgid "F" msgid "F"
msgstr "J" msgstr "J"
#. Translators: Calendar grid abbreviation for Saturday #. Translators: Calendar grid abbreviation for Saturday */
#: ../js/ui/calendar.js:120 #: ../js/ui/calendar.js:120
msgctxt "grid saturday" msgctxt "grid saturday"
msgid "S" msgid "S"
@ -484,48 +455,52 @@ 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:133 #: ../js/ui/calendar.js:133
msgctxt "list sunday" msgctxt "list sunday"
msgid "Su" msgid "Su"
msgstr "Min" msgstr "Min"
#. Translators: Event list abbreviation for Monday #. Translators: Event list abbreviation for Monday */
#: ../js/ui/calendar.js:135 #: ../js/ui/calendar.js:135
msgctxt "list monday" msgctxt "list monday"
msgid "M" msgid "M"
msgstr "Sen" msgstr "Sen"
#. Translators: Event list abbreviation for Tuesday #. Translators: Event list abbreviation for Tuesday */
#: ../js/ui/calendar.js:137 #: ../js/ui/calendar.js:137
msgctxt "list tuesday" msgctxt "list tuesday"
msgid "T" msgid "T"
msgstr "Sel" msgstr "Sel"
#. Translators: Event list abbreviation for Wednesday #. Translators: Event list abbreviation for Wednesday */
#: ../js/ui/calendar.js:139 #: ../js/ui/calendar.js:139
msgctxt "list wednesday" msgctxt "list wednesday"
msgid "W" msgid "W"
msgstr "Rab" msgstr "Rab"
#. Translators: Event list abbreviation for Thursday #. Translators: Event list abbreviation for Thursday */
#: ../js/ui/calendar.js:141 #: ../js/ui/calendar.js:141
msgctxt "list thursday" msgctxt "list thursday"
msgid "Th" msgid "Th"
msgstr "Kam" msgstr "Kam"
#. Translators: Event list abbreviation for Friday #. Translators: Event list abbreviation for Friday */
#: ../js/ui/calendar.js:143 #: ../js/ui/calendar.js:143
msgctxt "list friday" msgctxt "list friday"
msgid "F" msgid "F"
msgstr "Jum" msgstr "Jum"
#. Translators: Event list abbreviation for Saturday #. Translators: Event list abbreviation for Saturday */
#: ../js/ui/calendar.js:145 #: ../js/ui/calendar.js:145
msgctxt "list saturday" msgctxt "list saturday"
msgid "S" msgid "S"
msgstr "Sab" msgstr "Sab"
#: ../js/ui/calendar.js:389
msgid "calendar:MY"
msgstr "calendar:MY"
#: ../js/ui/calendar.js:447 #: ../js/ui/calendar.js:447
msgid "Previous month" msgid "Previous month"
msgstr "Bulan sebelumnya" msgstr "Bulan sebelumnya"
@ -534,18 +509,18 @@ msgstr "Bulan sebelumnya"
msgid "Next month" msgid "Next month"
msgstr "Bulan selanjutnya" msgstr "Bulan selanjutnya"
#. Translators: Text to show if there are no events #. Translators: Text to show if there are no events */
#: ../js/ui/calendar.js:753 #: ../js/ui/calendar.js:753
msgid "Nothing Scheduled" msgid "Nothing Scheduled"
msgstr "Tidak Ada Jadwal" msgstr "Tidak Ada Jadwal"
#. 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:771 #: ../js/ui/calendar.js:771
msgctxt "calendar heading" msgctxt "calendar heading"
msgid "%A, %B %d" msgid "%A, %B %d"
msgstr "%A, %d %B" msgstr "%A, %d %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:774 #: ../js/ui/calendar.js:774
msgctxt "calendar heading" msgctxt "calendar heading"
msgid "%A, %B %d, %Y" msgid "%A, %B %d, %Y"
@ -580,7 +555,6 @@ msgid "Removable Devices"
msgstr "Perangkat Yang Dapat Dicabut" msgstr "Perangkat Yang Dapat Dicabut"
#: ../js/ui/components/autorunManager.js:594 #: ../js/ui/components/autorunManager.js:594
#, c-format
msgid "Open with %s" msgid "Open with %s"
msgstr "Buka dengan %s" msgstr "Buka dengan %s"
@ -588,20 +562,19 @@ msgstr "Buka dengan %s"
msgid "Eject" msgid "Eject"
msgstr "Keluarkan" msgstr "Keluarkan"
#: ../js/ui/components/keyring.js:91 ../js/ui/components/polkitAgent.js:280 #: ../js/ui/components/keyring.js:89 ../js/ui/components/polkitAgent.js:280
msgid "Password:" msgid "Password:"
msgstr "Sandi:" msgstr "Sandi:"
#: ../js/ui/components/keyring.js:110 #: ../js/ui/components/keyring.js:108
msgid "Type again:" msgid "Type again:"
msgstr "Ketik lagi:" msgstr "Ketik lagi:"
#: ../js/ui/components/networkAgent.js:131 ../js/ui/status/network.js:112 #: ../js/ui/components/networkAgent.js:131 ../js/ui/status/network.js:133
#: ../js/ui/status/network.js:275 ../js/ui/status/network.js:689 #: ../js/ui/status/network.js:296 ../js/ui/status/network.js:731
msgid "Connect" msgid "Connect"
msgstr "Sambung" msgstr "Sambung"
#. Cisco LEAP
#: ../js/ui/components/networkAgent.js:222 #: ../js/ui/components/networkAgent.js:222
#: ../js/ui/components/networkAgent.js:234 #: ../js/ui/components/networkAgent.js:234
#: ../js/ui/components/networkAgent.js:261 #: ../js/ui/components/networkAgent.js:261
@ -610,7 +583,6 @@ msgstr "Sambung"
msgid "Password: " msgid "Password: "
msgstr "Sandi: " msgstr "Sandi: "
#. static WEP
#: ../js/ui/components/networkAgent.js:227 #: ../js/ui/components/networkAgent.js:227
msgid "Key: " msgid "Key: "
msgstr "Tombol: " msgstr "Tombol: "
@ -632,7 +604,6 @@ msgid "Authentication required by wireless network"
msgstr "Otentikasi dibutuhkan oleh jaringan nirkabel" msgstr "Otentikasi dibutuhkan oleh jaringan nirkabel"
#: ../js/ui/components/networkAgent.js:309 #: ../js/ui/components/networkAgent.js:309
#, c-format
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'."
@ -669,7 +640,6 @@ msgid "Mobile broadband network password"
msgstr "Sandi jaringan data seluler" msgstr "Sandi jaringan data seluler"
#: ../js/ui/components/networkAgent.js:336 #: ../js/ui/components/networkAgent.js:336
#, c-format
msgid "A password is required to connect to '%s'." msgid "A password is required to connect to '%s'."
msgstr "Sebuah kata sandi dibutuhkan untuk menyambung ke '%s'." msgstr "Sebuah kata sandi dibutuhkan untuk menyambung ke '%s'."
@ -688,23 +658,19 @@ msgstr "Otentikasi"
#. 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:266 ../js/ui/shellMountOperation.js:383 #: ../js/ui/components/polkitAgent.js:266 ../js/ui/shellMountOperation.js:383
msgid "Sorry, that didn't work. Please try again." msgid "Sorry, that didn't work. Please try again."
msgstr "Maaf, tidak berhasil. Silakan coba lagi." msgstr "Maaf, tidak berhasil. Silakan coba lagi."
#. FIXME: We don't have a 'chat room' icon (bgo #653737) use
#. system-users for now as Empathy does.
#: ../js/ui/components/telepathyClient.js:238 #: ../js/ui/components/telepathyClient.js:238
msgid "Invitation" msgid "Invitation"
msgstr "Undangan" msgstr "Undangan"
#. We got the TpContact
#: ../js/ui/components/telepathyClient.js:298 #: ../js/ui/components/telepathyClient.js:298
msgid "Call" msgid "Call"
msgstr "Panggil" msgstr "Panggil"
#. We got the TpContact
#: ../js/ui/components/telepathyClient.js:314 #: ../js/ui/components/telepathyClient.js:314
msgid "File Transfer" msgid "File Transfer"
msgstr "Transfer Berkas" msgstr "Transfer Berkas"
@ -721,49 +687,42 @@ msgstr "Bersuara"
msgid "Mute" msgid "Mute"
msgstr "Bisu" msgstr "Bisu"
#. Translators: this is the word "Yesterday" followed by a time string. i.e. "Yesterday, 14:30" #. Translators: this is the word "Yesterday" followed by a time string. i.e. "Yesterday, 14:30"*/
#: ../js/ui/components/telepathyClient.js:942 #: ../js/ui/components/telepathyClient.js:942
#, no-c-format
msgid "<b>Yesterday</b>, <b>%H:%M</b>" msgid "<b>Yesterday</b>, <b>%H:%M</b>"
msgstr "<b>Kemarin</b>, <b>%H:%M</b>" msgstr "<b>Kemarin</b>, <b>%H:%M</b>"
#. Translators: this is the week day name followed by a time string. i.e. "Monday, 14:30 #. Translators: this is the week day name followed by a time string. i.e. "Monday, 14:30*/
#: ../js/ui/components/telepathyClient.js:948 #: ../js/ui/components/telepathyClient.js:948
#, no-c-format
msgid "<b>%A</b>, <b>%H:%M</b>" msgid "<b>%A</b>, <b>%H:%M</b>"
msgstr "<b>%A</b>, <b>%H:%M</b>" msgstr "<b>%A</b>, <b>%H:%M</b>"
#. Translators: this is the month name and day number followed by a time string. i.e. "May 25, 14:30" #. Translators: this is the month name and day number followed by a time string. i.e. "May 25, 14:30"*/
#: ../js/ui/components/telepathyClient.js:953 #: ../js/ui/components/telepathyClient.js:953
#, no-c-format
msgid "<b>%B</b> <b>%d</b>, <b>%H:%M</b>" msgid "<b>%B</b> <b>%d</b>, <b>%H:%M</b>"
msgstr "<b>%d</b> <b>%B</b>, <b>%H:%M</b>" msgstr "<b>%d</b> <b>%B</b>, <b>%H:%M</b>"
#. Translators: this is the month name, day number, year number followed by a time string. i.e. "May 25 2012, 14:30" #. Translators: this is the month name, day number, year number followed by a time string. i.e. "May 25 2012, 14:30"*/
#: ../js/ui/components/telepathyClient.js:957 #: ../js/ui/components/telepathyClient.js:957
#, no-c-format
msgid "<b>%B</b> <b>%d</b> <b>%Y</b>, <b>%H:%M</b> " msgid "<b>%B</b> <b>%d</b> <b>%Y</b>, <b>%H:%M</b> "
msgstr "<b>%d</b> <b>%B</b> <b>%Y</b>, <b>%H:%M</b> " msgstr "<b>%d</b> <b>%B</b> <b>%Y</b>, <b>%H:%M</b> "
#. 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:986 #: ../js/ui/components/telepathyClient.js:986
#, c-format
msgid "%s is now known as %s" msgid "%s is now known as %s"
msgstr "%s sekarang dikenal sebagai %s" msgstr "%s sekarang dikenal sebagai %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:1089 #: ../js/ui/components/telepathyClient.js:1089
#, c-format
msgid "Invitation to %s" msgid "Invitation to %s"
msgstr "Undangan ke %s" msgstr "Undangan ke %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:1097 #: ../js/ui/components/telepathyClient.js:1097
#, c-format
msgid "%s is inviting you to join %s" msgid "%s is inviting you to join %s"
msgstr "%s mengundang Anda untuk bergabung dengan %s" msgstr "%s mengundang Anda untuk bergabung dengan %s"
@ -780,19 +739,17 @@ msgstr "Tolak"
msgid "Accept" msgid "Accept"
msgstr "Terima" msgstr "Terima"
#. 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:1130 #: ../js/ui/components/telepathyClient.js:1130
#, c-format
msgid "Video call from %s" msgid "Video call from %s"
msgstr "Panggilan video dari %s" msgstr "Panggilan video dari %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:1133 #: ../js/ui/components/telepathyClient.js:1133
#, c-format
msgid "Call from %s" msgid "Call from %s"
msgstr "Panggilan dari %s" msgstr "Panggilan dari %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:1142 #: ../js/ui/components/telepathyClient.js:1142
msgid "Answer" msgid "Answer"
msgstr "Jawab" msgstr "Jawab"
@ -801,15 +758,13 @@ msgstr "Jawab"
#. * 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:1174 #: ../js/ui/components/telepathyClient.js:1174
#, c-format
msgid "%s is sending you %s" msgid "%s is sending you %s"
msgstr "%s sedang mengirimi Anda %s" msgstr "%s sedang mengirimi Anda %s"
#. To translators: The parameter is the contact's alias #. To translators: The parameter is the contact's alias */
#: ../js/ui/components/telepathyClient.js:1209 #: ../js/ui/components/telepathyClient.js:1209
#, c-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 ingin minta ijin melihat Anda ketika Anda daring" msgstr "%s ingin minta ijin melihat Anda ketika Anda daring"
@ -919,9 +874,8 @@ msgid "Internal error"
msgstr "Galat internal" msgstr "Galat internal"
#. 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:1357 #: ../js/ui/components/telepathyClient.js:1357
#, c-format
msgid "Unable to connect to %s" msgid "Unable to connect to %s"
msgstr "Tak bisa menyambung ke %s" msgstr "Tak bisa menyambung ke %s"
@ -941,8 +895,6 @@ msgstr "Jendela"
msgid "Show Applications" msgid "Show Applications"
msgstr "Tampilkan Aplikasi" msgstr "Tampilkan Aplikasi"
#. Translators: this is the name of the dock/favorites area on
#. the left of the overview
#: ../js/ui/dash.js:442 #: ../js/ui/dash.js:442
msgid "Dash" msgid "Dash"
msgstr "Dash" msgstr "Dash"
@ -961,13 +913,12 @@ msgstr "Pengaturan Waktu & Tanggal"
#. 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:202 #: ../js/ui/dateMenu.js:202
msgid "%A %B %e, %Y" msgid "%A %B %e, %Y"
msgstr "%A, %e %B %Y" msgstr "%A, %e %B %Y"
#: ../js/ui/endSessionDialog.js:62 #: ../js/ui/endSessionDialog.js:62
#, c-format
msgctxt "title" msgctxt "title"
msgid "Log Out %s" msgid "Log Out %s"
msgstr "Keluar %s" msgstr "Keluar %s"
@ -978,13 +929,11 @@ msgid "Log Out"
msgstr "Keluar" msgstr "Keluar"
#: ../js/ui/endSessionDialog.js:65 #: ../js/ui/endSessionDialog.js:65
#, c-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 akan log keluar otomatis dalam %d detik.\t\t" msgstr[0] "%s akan log keluar otomatis dalam %d detik.\t\t"
#: ../js/ui/endSessionDialog.js:70 #: ../js/ui/endSessionDialog.js:70
#, c-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] "Anda akan log keluar otomatis dalam %d detik." msgstr[0] "Anda akan log keluar otomatis dalam %d detik."
@ -1000,7 +949,6 @@ msgid "Power Off"
msgstr "Matikan" msgstr "Matikan"
#: ../js/ui/endSessionDialog.js:83 #: ../js/ui/endSessionDialog.js:83
#, c-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] "Sistem ini akan otomatis dimatikan dalam %d detik." msgstr[0] "Sistem ini akan otomatis dimatikan dalam %d detik."
@ -1021,7 +969,6 @@ msgid "Restart"
msgstr "Nyalakan Ulang" msgstr "Nyalakan Ulang"
#: ../js/ui/endSessionDialog.js:99 #: ../js/ui/endSessionDialog.js:99
#, c-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] "Sistem ini akan otomatis dimulai ulang dalam %d detik." msgstr[0] "Sistem ini akan otomatis dimulai ulang dalam %d detik."
@ -1032,7 +979,6 @@ msgid "Restart & Install Updates"
msgstr "Start Ulang & Pasang Pemutakhiran" msgstr "Start Ulang & Pasang Pemutakhiran"
#: ../js/ui/endSessionDialog.js:114 #: ../js/ui/endSessionDialog.js:114
#, c-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."
@ -1053,15 +999,13 @@ msgstr "Beberapa aplikasi sedang sibuk atau belum disimpan perubahannya."
msgid "Other users are logged in." msgid "Other users are logged in."
msgstr "Pengguna lain sedang log masuk." msgstr "Pengguna lain sedang log masuk."
#. 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:479 #: ../js/ui/endSessionDialog.js:479
#, c-format
msgid "%s (remote)" msgid "%s (remote)"
msgstr "%s (jarak jauh)" msgstr "%s (jarak jauh)"
#. 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:482 #: ../js/ui/endSessionDialog.js:482
#, c-format
msgid "%s (console)" msgid "%s (console)"
msgstr "%s (konsol)" msgstr "%s (konsol)"
@ -1070,11 +1014,10 @@ msgid "Install"
msgstr "Pasang" msgstr "Pasang"
#: ../js/ui/extensionDownloader.js:204 #: ../js/ui/extensionDownloader.js:204
#, c-format
msgid "Download and install '%s' from extensions.gnome.org?" msgid "Download and install '%s' from extensions.gnome.org?"
msgstr "Unduh dan pasang '%s' dari extensions.gnome.org?" msgstr "Unduh dan pasang '%s' dari extensions.gnome.org?"
#: ../js/ui/keyboard.js:619 ../js/ui/status/keyboard.js:333 #: ../js/ui/keyboard.js:619
msgid "Keyboard" msgid "Keyboard"
msgstr "Papan Ketik" msgstr "Papan Ketik"
@ -1082,9 +1025,8 @@ msgstr "Papan Ketik"
msgid "No extensions installed" msgid "No extensions installed"
msgstr "Tak ada ekstensi terpasang" msgstr "Tak ada ekstensi terpasang"
#. Translators: argument is an extension UUID. #. Translators: argument is an extension UUID. */
#: ../js/ui/lookingGlass.js:743 #: ../js/ui/lookingGlass.js:743
#, c-format
msgid "%s has not emitted any errors." msgid "%s has not emitted any errors."
msgstr "%s tidak menampilkan galat apa pun." msgstr "%s tidak menampilkan galat apa pun."
@ -1100,9 +1042,12 @@ msgstr "Tampilkan Galat"
msgid "Enabled" msgid "Enabled"
msgstr "Diaktifkan" msgstr "Diaktifkan"
#. Translators: this is for a network device that cannot be activated
#. because it's disabled by rfkill (airplane mode) */
#. translators: #. translators:
#. * The device has been disabled #. * The device has been disabled
#: ../js/ui/lookingGlass.js:765 ../src/gvc/gvc-mixer-control.c:1830 #: ../js/ui/lookingGlass.js:765 ../js/ui/status/network.js:473
#: ../src/gvc/gvc-mixer-control.c:1830
msgid "Disabled" msgid "Disabled"
msgstr "Dinonaktifkan" msgstr "Dinonaktifkan"
@ -1134,27 +1079,31 @@ msgstr "Buka"
msgid "Remove" msgid "Remove"
msgstr "Hapus" msgstr "Hapus"
#: ../js/ui/messageTray.js:1513 #: ../js/ui/messageTray.js:1530
msgid "Notifications"
msgstr "Pemberitahuan"
#: ../js/ui/messageTray.js:1537
msgid "Clear Messages" msgid "Clear Messages"
msgstr "Bersihkan Pesan" msgstr "Bersihkan Pesan"
#: ../js/ui/messageTray.js:1540 #: ../js/ui/messageTray.js:1564
msgid "Notification Settings" msgid "Notification Settings"
msgstr "Pengaturan Pemberitahuan" msgstr "Pengaturan Pemberitahuan"
#: ../js/ui/messageTray.js:1559 #: ../js/ui/messageTray.js:1617
msgid "Tray Menu" msgid "Tray Menu"
msgstr "Menu Baki" msgstr "Menu Baki"
#: ../js/ui/messageTray.js:1775 #: ../js/ui/messageTray.js:1833
msgid "No Messages" msgid "No Messages"
msgstr "Tiada Pesan" msgstr "Tiada Pesan"
#: ../js/ui/messageTray.js:1813 #: ../js/ui/messageTray.js:1871
msgid "Message Tray" msgid "Message Tray"
msgstr "Baki Pesan" msgstr "Baki Pesan"
#: ../js/ui/messageTray.js:2788 #: ../js/ui/messageTray.js:2846
msgid "System Information" msgid "System Information"
msgstr "Informasi Sistem" msgstr "Informasi Sistem"
@ -1164,7 +1113,6 @@ msgid "Unknown"
msgstr "Tak dikenal" msgstr "Tak dikenal"
#: ../js/ui/overviewControls.js:491 ../js/ui/screenShield.js:152 #: ../js/ui/overviewControls.js:491 ../js/ui/screenShield.js:152
#, c-format
msgid "%d new message" msgid "%d new message"
msgid_plural "%d new messages" msgid_plural "%d new messages"
msgstr[0] "%d pesan baru" msgstr[0] "%d pesan baru"
@ -1180,7 +1128,7 @@ msgstr "Gambaran"
#. 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:258 #: ../js/ui/overview.js:258
msgid "Type to search…" msgid "Type to search…"
msgstr "Ketik untuk mencari…" msgstr "Ketik untuk mencari…"
@ -1190,21 +1138,16 @@ msgid "Quit"
msgstr "Keluar" msgstr "Keluar"
#. 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:570 #: ../js/ui/panel.js:570
msgid "Activities" msgid "Activities"
msgstr "Aktivitas" msgstr "Aktivitas"
#: ../js/ui/panel.js:903 #: ../js/ui/panel.js:904
msgid "Top Bar" msgid "Top Bar"
msgstr "Bar Atas" msgstr "Bar Atas"
# Dirgita: Hayo, enaknya pake I/O atau ON/OFF?^^ # Dirgita: Hayo, enaknya pake I/O atau ON/OFF?^^
#. 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:233 #: ../js/ui/popupMenu.js:233
msgid "toggle-switch-us" msgid "toggle-switch-us"
msgstr "toggle-switch-intl" msgstr "toggle-switch-intl"
@ -1218,13 +1161,12 @@ msgid "Close"
msgstr "Tutup" msgstr "Tutup"
#. 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 %B" msgstr "%A, %d %B"
#: ../js/ui/screenShield.js:154 #: ../js/ui/screenShield.js:154
#, c-format
msgid "%d new notification" msgid "%d new notification"
msgid_plural "%d new notifications" msgid_plural "%d new notifications"
msgstr[0] "%d pemberitahuan baru" msgstr[0] "%d pemberitahuan baru"
@ -1237,13 +1179,6 @@ msgstr "Kunci"
msgid "GNOME needs to lock the screen" msgid "GNOME needs to lock the screen"
msgstr "GNOME perlu mengunci layar" msgstr "GNOME perlu mengunci layar"
#. 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:831 ../js/ui/screenShield.js:1297 #: ../js/ui/screenShield.js:831 ../js/ui/screenShield.js:1297
msgid "Unable to lock" msgid "Unable to lock"
msgstr "Tak bisa mengunci" msgstr "Tak bisa mengunci"
@ -1252,11 +1187,11 @@ msgstr "Tak bisa mengunci"
msgid "Lock was blocked by an application" msgid "Lock was blocked by an application"
msgstr "Kunci diblokir oleh suatu aplikasi" msgstr "Kunci diblokir oleh suatu aplikasi"
#: ../js/ui/searchDisplay.js:447 #: ../js/ui/searchDisplay.js:448
msgid "Searching…" msgid "Searching…"
msgstr "Mencari…" msgstr "Mencari…"
#: ../js/ui/searchDisplay.js:491 #: ../js/ui/searchDisplay.js:492
msgid "No results." msgid "No results."
msgstr "Tidak ada yang cocok." msgstr "Tidak ada yang cocok."
@ -1328,16 +1263,14 @@ msgstr "Kontras Tinggi"
msgid "Large Text" msgid "Large Text"
msgstr "Teks Besar" msgstr "Teks Besar"
#. 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:28 ../js/ui/status/bluetooth.js:63 #: ../js/ui/status/bluetooth.js:28 ../js/ui/status/bluetooth.js:63
#: ../js/ui/status/bluetooth.js:100 ../js/ui/status/bluetooth.js:128 #: ../js/ui/status/bluetooth.js:100 ../js/ui/status/bluetooth.js:128
#: ../js/ui/status/bluetooth.js:164 ../js/ui/status/bluetooth.js:195 #: ../js/ui/status/bluetooth.js:164 ../js/ui/status/bluetooth.js:195
msgid "Bluetooth" msgid "Bluetooth"
msgstr "Bluetooth" msgstr "Bluetooth"
#: ../js/ui/status/bluetooth.js:30 ../js/ui/status/network.js:112 #: ../js/ui/status/bluetooth.js:30 ../js/ui/status/network.js:133
#: ../js/ui/status/network.js:1034 ../js/ui/status/rfkill.js:46 #: ../js/ui/status/network.js:1085 ../js/ui/status/rfkill.js:46
msgid "Turn Off" msgid "Turn Off"
msgstr "Matikan" msgstr "Matikan"
@ -1346,19 +1279,16 @@ msgid "Bluetooth Settings"
msgstr "Pengaturan Bluetooth" msgstr "Pengaturan Bluetooth"
#: ../js/ui/status/bluetooth.js:58 #: ../js/ui/status/bluetooth.js:58
#, c-format
msgid "%d Connected Device" msgid "%d Connected Device"
msgid_plural "%d Connected Devices" msgid_plural "%d Connected Devices"
msgstr[0] "%d Perangkat Tersambung" msgstr[0] "%d Perangkat Tersambung"
#: ../js/ui/status/bluetooth.js:101 ../js/ui/status/bluetooth.js:129 #: ../js/ui/status/bluetooth.js:101 ../js/ui/status/bluetooth.js:129
#, c-format
msgid "Authorization request from %s" msgid "Authorization request from %s"
msgstr "Permintaan otorisasi dari %s" msgstr "Permintaan otorisasi dari %s"
#: ../js/ui/status/bluetooth.js:107 ../js/ui/status/bluetooth.js:172 #: ../js/ui/status/bluetooth.js:107 ../js/ui/status/bluetooth.js:172
#: ../js/ui/status/bluetooth.js:203 #: ../js/ui/status/bluetooth.js:203
#, c-format
msgid "Device %s wants to pair with this computer" msgid "Device %s wants to pair with this computer"
msgstr "Perangkat %s ingin berpasangan dengan komputer ini" msgstr "Perangkat %s ingin berpasangan dengan komputer ini"
@ -1371,7 +1301,6 @@ msgid "Deny"
msgstr "Tolak" msgstr "Tolak"
#: ../js/ui/status/bluetooth.js:135 #: ../js/ui/status/bluetooth.js:135
#, c-format
msgid "Device %s wants access to the service '%s'" msgid "Device %s wants access to the service '%s'"
msgstr "Perangkat %s ingin mengakses layanan '%s'" msgstr "Perangkat %s ingin mengakses layanan '%s'"
@ -1387,20 +1316,18 @@ msgstr "Hanya untuk saat ini"
msgid "Reject" msgid "Reject"
msgstr "Tolak" msgstr "Tolak"
#. Translators: argument is the device short name #. Translators: argument is the device short name */
#: ../js/ui/status/bluetooth.js:166 #: ../js/ui/status/bluetooth.js:166
#, c-format
msgid "Pairing confirmation for %s" msgid "Pairing confirmation for %s"
msgstr "Konfirmasi berpasangan untuk %s" msgstr "Konfirmasi berpasangan untuk %s"
#: ../js/ui/status/bluetooth.js:173 #: ../js/ui/status/bluetooth.js:173
#, c-format
msgid "" msgid ""
"Please confirm whether the Passkey '%06d' matches the one on the device." "Please confirm whether the Passkey '%06d' matches the one on the device."
msgstr "" msgstr ""
"Harap konfirmasi apakah Passkey '%06d' sesuai dengan salah satu perangkat." "Harap konfirmasi apakah Passkey '%06d' sesuai dengan salah satu perangkat."
#. Translators: this is the verb, not the noun #. Translators: this is the verb, not the noun */
#: ../js/ui/status/bluetooth.js:176 #: ../js/ui/status/bluetooth.js:176
msgid "Matches" msgid "Matches"
msgstr "Cocok" msgstr "Cocok"
@ -1410,7 +1337,6 @@ msgid "Does not match"
msgstr "Tidak cocok" msgstr "Tidak cocok"
#: ../js/ui/status/bluetooth.js:196 #: ../js/ui/status/bluetooth.js:196
#, c-format
msgid "Pairing request for %s" msgid "Pairing request for %s"
msgstr "Permintaan berpasangan untuk %s" msgstr "Permintaan berpasangan untuk %s"
@ -1426,91 +1352,99 @@ msgstr "Oke"
msgid "Brightness" msgid "Brightness"
msgstr "Kecerahan" msgstr "Kecerahan"
#: ../js/ui/status/keyboard.js:403
msgid "Show Keyboard Layout"
msgstr "Tampilkan Tata Letak Papan Tik"
#: ../js/ui/status/network.js:72 #: ../js/ui/status/network.js:72
msgid "<unknown>" msgid "<unknown>"
msgstr "<tak dikenal>" msgstr "<tak dikenal>"
#: ../js/ui/status/network.js:203 ../js/ui/status/network.js:1049 #: ../js/ui/status/network.js:223 ../js/ui/status/network.js:380
#: ../js/ui/status/network.js:1106
msgid "Off" msgid "Off"
msgstr "Mati" msgstr "Mati"
#: ../js/ui/status/network.js:276 ../js/ui/status/network.js:955
#: ../js/ui/status/rfkill.js:49
msgid "Network Settings"
msgstr "Pengaturan Jaringan"
#. 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:364 #: ../js/ui/status/network.js:386
msgid "unmanaged" msgid "unmanaged"
msgstr "tak dikelola" msgstr "tak dikelola"
#: ../js/ui/status/network.js:366 #: ../js/ui/status/network.js:388
msgid "disconnecting..." msgid "disconnecting..."
msgstr "memutus..." msgstr "memutus..."
#: ../js/ui/status/network.js:372 ../js/ui/status/network.js:1100 #: ../js/ui/status/network.js:394 ../js/ui/status/network.js:1160
msgid "connecting..." msgid "connecting..."
msgstr "menghubungi..." msgstr "menghubungi..."
#. 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:375 ../js/ui/status/network.js:1103 #: ../js/ui/status/network.js:397 ../js/ui/status/network.js:1163
msgid "authentication required" msgid "authentication required"
msgstr "diperlukan otentikasi" msgstr "diperlukan otentikasi"
#. 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:383 #: ../js/ui/status/network.js:405
msgid "firmware missing" msgid "firmware missing"
msgstr "firmware hilang" msgstr "firmware hilang"
#. 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:387 #: ../js/ui/status/network.js:409
msgid "unavailable" msgid "unavailable"
msgstr "tidak tersedia" msgstr "tidak tersedia"
#: ../js/ui/status/network.js:389 ../js/ui/status/network.js:1105 #: ../js/ui/status/network.js:411 ../js/ui/status/network.js:1165
msgid "connection failed" msgid "connection failed"
msgstr "koneksi gagal" msgstr "koneksi gagal"
#: ../js/ui/status/network.js:654 #: ../js/ui/status/network.js:427 ../js/ui/status/network.js:513
msgid "Mobile Broadband Settings"
msgstr "Pengaturan Data Seluler"
#: ../js/ui/status/network.js:469 ../js/ui/status/network.js:1104
msgid "Hardware Disabled"
msgstr "Perangkat Keras Dinonaktifkan"
#: ../js/ui/status/network.js:696
msgid "Wi-Fi Networks" msgid "Wi-Fi Networks"
msgstr "Jaringan Wi-Fi" msgstr "Jaringan Wi-Fi"
#: ../js/ui/status/network.js:656 #: ../js/ui/status/network.js:698
msgid "Select a network" msgid "Select a network"
msgstr "Pilih jaringan" msgstr "Pilih jaringan"
#: ../js/ui/status/network.js:680 #: ../js/ui/status/network.js:722
msgid "No Networks" msgid "No Networks"
msgstr "Tiada Jaringan" msgstr "Tiada Jaringan"
#: ../js/ui/status/network.js:949 #: ../js/ui/status/network.js:991
msgid "Select Network" msgid "Select Network"
msgstr "Pilih Jaringan" msgstr "Pilih Jaringan"
#: ../js/ui/status/network.js:1034 #: ../js/ui/status/network.js:997
msgid "Wi-Fi Settings"
msgstr "Pengaturan Wi-Fi"
#: ../js/ui/status/network.js:1085
msgid "Turn On" msgid "Turn On"
msgstr "Nyalakan" msgstr "Nyalakan"
#: ../js/ui/status/network.js:1167 #: ../js/ui/status/network.js:1108
msgid "Not Connected"
msgstr "Tak Tersambung"
#: ../js/ui/status/network.js:1228
msgid "VPN" msgid "VPN"
msgstr "VPN" msgstr "VPN"
#: ../js/ui/status/network.js:1307 #: ../js/ui/status/network.js:1368
msgid "Network Manager" msgid "Network Manager"
msgstr "Manajer Jaringan" msgstr "Manajer Jaringan"
#: ../js/ui/status/network.js:1346 #: ../js/ui/status/network.js:1407
msgid "Connection failed" msgid "Connection failed"
msgstr "Koneksi gagal" msgstr "Koneksi gagal"
#: ../js/ui/status/network.js:1347 #: ../js/ui/status/network.js:1408
msgid "Activation of network connection failed" msgid "Activation of network connection failed"
msgstr "Aktivasi koneksi jaringan gagal" msgstr "Aktivasi koneksi jaringan gagal"
@ -1526,28 +1460,18 @@ msgstr "Pengaturan Daya"
msgid "Fully Charged" msgid "Fully Charged"
msgstr "Terisi Penuh" msgstr "Terisi Penuh"
#. 0 is reported when UPower does not have enough data
#. to estimate battery life
#. state is one of PENDING_CHARGING, PENDING_DISCHARGING
#: ../js/ui/status/power.js:69 ../js/ui/status/power.js:86 #: ../js/ui/status/power.js:69 ../js/ui/status/power.js:86
msgid "Estimating…" msgid "Estimating…"
msgstr "Memperkirakan…" msgstr "Memperkirakan…"
#. Translators: this is <hours>:<minutes> Remaining (<percentage>)
#: ../js/ui/status/power.js:77 #: ../js/ui/status/power.js:77
#, c-format msgid "%d%02d Remaining (%d%%)"
msgid "%d\\u2236%02d Remaining (%d%%)" msgstr "%d:%02d Tersisa (%d%%)"
msgstr "%d\\u2236%02d Tersisa (%d%%)"
#. Translators: this is <hours>:<minutes> Until Full (<percentage>)
#: ../js/ui/status/power.js:82 #: ../js/ui/status/power.js:82
#, c-format msgid "%d%02d Until Full (%d%%)"
msgid "%d\\u2236%02d Until Full (%d%%)" msgstr "%d:%02d Sampai Penuh (%d%%)"
msgstr "%d\\u2236%02d Sampai Penuh (%d%%)"
#. 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:43 #: ../js/ui/status/rfkill.js:43
msgid "Airplane Mode" msgid "Airplane Mode"
msgstr "Mode Pesawat Terbang" msgstr "Mode Pesawat Terbang"
@ -1556,6 +1480,10 @@ msgstr "Mode Pesawat Terbang"
msgid "On" msgid "On"
msgstr "Nyala" msgstr "Nyala"
#: ../js/ui/status/rfkill.js:49
msgid "Network Settings"
msgstr "Pengaturan Jaringan"
#: ../js/ui/status/system.js:305 #: ../js/ui/status/system.js:305
msgid "Switch User" msgid "Switch User"
msgstr "Ganti Pengguna" msgstr "Ganti Pengguna"
@ -1605,7 +1533,6 @@ msgid "Search"
msgstr "Cari" msgstr "Cari"
#: ../js/ui/wanda.js:77 #: ../js/ui/wanda.js:77
#, c-format
msgid "" msgid ""
"Sorry, no wisdom for you today:\n" "Sorry, no wisdom for you today:\n"
"%s" "%s"
@ -1614,12 +1541,10 @@ msgstr ""
"%s" "%s"
#: ../js/ui/wanda.js:81 #: ../js/ui/wanda.js:81
#, c-format
msgid "%s the Oracle says" msgid "%s the Oracle says"
msgstr "%s sang Peramal berkata" msgstr "%s sang Peramal berkata"
#: ../js/ui/windowAttentionHandler.js:19 #: ../js/ui/windowAttentionHandler.js:19
#, c-format
msgid "'%s' is ready" msgid "'%s' is ready"
msgstr "'%s' telah siap" msgstr "'%s' telah siap"
@ -1629,7 +1554,7 @@ msgstr "Apakah Anda ingin mempertahankan pengaturan tampilan ini?"
#. 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:75 #: ../js/ui/windowManager.js:75
msgid "Revert Settings" msgid "Revert Settings"
msgstr "Balikkan Tatanan" msgstr "Balikkan Tatanan"
@ -1639,7 +1564,6 @@ msgid "Keep Changes"
msgstr "Simpan Perubahan" msgstr "Simpan Perubahan"
#: ../js/ui/windowManager.js:97 #: ../js/ui/windowManager.js:97
#, c-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] "Perubahan tatanan akan dikembalikan dalam %d detik" msgstr[0] "Perubahan tatanan akan dikembalikan dalam %d detik"

338
po/it.po
View File

@ -1,6 +1,6 @@
# Italian translations for gnome-shell package. # Italian translations for gnome-shell package.
# Copyright (C) 2009, 2010, the gnome-shell copyright holder # Copyright (C) 2009, 2010, the gnome-shell copyright holder
# Copyright (C) 2011, 2012, the Free Software Foundation # Copyright (C) 2011, 2012, 2013 the Free Software Foundation
# 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.
# #
# Luca Ferretti <lferrett@gnome.org>, 2010, 2011, 2012, 2013. # Luca Ferretti <lferrett@gnome.org>, 2010, 2011, 2012, 2013.
@ -9,9 +9,10 @@
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: gnome-shell\n" "Project-Id-Version: gnome-shell\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
"POT-Creation-Date: 2013-09-23 16:21+0200\n" "shell&keywords=I18N+L10N&component=general\n"
"PO-Revision-Date: 2013-09-23 16:21+0200\n" "POT-Creation-Date: 2013-10-10 21:27+0000\n"
"PO-Revision-Date: 2013-10-11 09:41+0200\n"
"Last-Translator: Milo Casagrande <milo@ubuntu.com>\n" "Last-Translator: Milo Casagrande <milo@ubuntu.com>\n"
"Language-Team: Italian <tp@lists.linux.it>\n" "Language-Team: Italian <tp@lists.linux.it>\n"
"Language: it\n" "Language: it\n"
@ -58,7 +59,6 @@ msgid "Window management and application launching"
msgstr "Gestisce finestre e avvia applicazioni" msgstr "Gestisce finestre e avvia applicazioni"
#: ../data/gnome-shell-extension-prefs.desktop.in.in.h:1 #: ../data/gnome-shell-extension-prefs.desktop.in.in.h:1
#: ../js/extensionPrefs/main.js:153
msgid "GNOME Shell Extension Preferences" msgid "GNOME Shell Extension Preferences"
msgstr "Preferenze estensioni di GNOME Shell" msgstr "Preferenze estensioni di GNOME Shell"
@ -281,16 +281,6 @@ msgstr ""
"Ritarda il cambio del focus nella modalità mouse finché il puntantore non si " "Ritarda il cambio del focus nella modalità mouse finché il puntantore non si "
"ferma" "ferma"
#: ../js/extensionPrefs/main.js:125
#, c-format
msgid "There was an error loading the preferences dialog for %s:"
msgstr ""
"Si è verificato un errore nel caricare il dialogo delle preferenze per %s:"
#: ../js/extensionPrefs/main.js:165
msgid "Extension"
msgstr "Estensione"
#: ../js/extensionPrefs/main.js:189 #: ../js/extensionPrefs/main.js:189
msgid "Select an extension to configure using the combobox above." msgid "Select an extension to configure using the combobox above."
msgstr "" msgstr ""
@ -300,7 +290,7 @@ msgstr ""
#: ../js/gdm/authPrompt.js:145 ../js/ui/components/networkAgent.js:136 #: ../js/gdm/authPrompt.js:145 ../js/ui/components/networkAgent.js:136
#: ../js/ui/components/polkitAgent.js:161 ../js/ui/endSessionDialog.js:351 #: ../js/ui/components/polkitAgent.js:161 ../js/ui/endSessionDialog.js:351
#: ../js/ui/extensionDownloader.js:195 ../js/ui/shellMountOperation.js:399 #: ../js/ui/extensionDownloader.js:195 ../js/ui/shellMountOperation.js:399
#: ../js/ui/status/bluetooth.js:222 ../js/ui/status/network.js:686 #: ../js/ui/status/bluetooth.js:222 ../js/ui/status/network.js:728
msgid "Cancel" msgid "Cancel"
msgstr "Annulla" msgstr "Annulla"
@ -322,23 +312,14 @@ msgstr "Accedi"
msgid "Choose Session" msgid "Choose Session"
msgstr "Scegli sessione" msgstr "Scegli sessione"
#. 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:454 #: ../js/gdm/loginDialog.js:454
msgid "Not listed?" msgid "Not listed?"
msgstr "Non elencato?" msgstr "Non elencato?"
#. 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:622 #: ../js/gdm/loginDialog.js:622
#, c-format
msgid "(e.g., user or %s)" msgid "(e.g., user or %s)"
msgstr "(p.e. utente o %s)" msgstr "(p.e. utente o %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:627 ../js/ui/components/networkAgent.js:259 #: ../js/gdm/loginDialog.js:627 ../js/ui/components/networkAgent.js:259
#: ../js/ui/components/networkAgent.js:277 #: ../js/ui/components/networkAgent.js:277
msgid "Username: " msgid "Username: "
@ -352,27 +333,19 @@ msgstr "Finestra di accesso"
msgid "Authentication error" msgid "Authentication error"
msgstr "Errore di autenticazione" msgstr "Errore di autenticazione"
#. 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:436 #: ../js/gdm/util.js:436
msgid "(or swipe finger)" msgid "(or swipe finger)"
msgstr "(o passare il dito)" msgstr "(o passare il dito)"
#: ../js/misc/util.js:98 #: ../js/misc/util.js:115
msgid "Command not found" msgid "Command not found"
msgstr "Comando non trovato" msgstr "Comando non trovato"
#. Replace "Error invoking GLib.shell_parse_argv: " with #: ../js/misc/util.js:148
#. something nicer
#: ../js/misc/util.js:131
msgid "Could not parse command:" msgid "Could not parse command:"
msgstr "Impossibile analizzare il comando:" msgstr "Impossibile analizzare il comando:"
#: ../js/misc/util.js:139 #: ../js/misc/util.js:156
#, c-format
msgid "Execution of '%s' failed:" msgid "Execution of '%s' failed:"
msgstr "Esecuzione di «%s» non riuscita:" msgstr "Esecuzione di «%s» non riuscita:"
@ -403,16 +376,14 @@ msgstr "Aggiungi ai preferiti"
# (ndt) e usare: # (ndt) e usare:
# L'elemento %s è stato rimosso... ? # L'elemento %s è stato rimosso... ?
#: ../js/ui/appFavorites.js:87 #: ../js/ui/appFavorites.js:87
#, c-format
msgid "%s has been added to your favorites." msgid "%s has been added to your favorites."
msgstr "%s è stato aggiunto ai preferiti." msgstr "%s è stato aggiunto ai preferiti."
#: ../js/ui/appFavorites.js:121 #: ../js/ui/appFavorites.js:121
#, c-format
msgid "%s has been removed from your favorites." msgid "%s has been removed from your favorites."
msgstr "%s è stato rimosso dai preferiti." msgstr "%s è stato rimosso dai preferiti."
#: ../js/ui/backgroundMenu.js:19 ../js/ui/panel.js:807 #: ../js/ui/backgroundMenu.js:19 ../js/ui/panel.js:808
#: ../js/ui/status/system.js:325 #: ../js/ui/status/system.js:325
msgid "Settings" msgid "Settings"
msgstr "Impostazioni" msgstr "Impostazioni"
@ -423,68 +394,68 @@ msgstr "Cambia sfondo…"
#. 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:62 #: ../js/ui/calendar.js:62
msgctxt "event list time" msgctxt "event list time"
msgid "All Day" msgid "All Day"
msgstr "Giornata" msgstr "Giornata"
#. 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:68 #: ../js/ui/calendar.js:68
msgctxt "event list time" msgctxt "event list time"
msgid "%H\\u2236%M" msgid "%H%M"
msgstr "%H.%M" msgstr "%k.%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:77 #: ../js/ui/calendar.js:77
msgctxt "event list time" msgctxt "event list time"
msgid "%l\\u2236%M\\u2009%p" msgid "%l%M%p"
msgstr "%l.%M\\u2009%p" msgstr "%l.%M%P"
#. Translators: Calendar grid abbreviation for Sunday. #. Translators: Calendar grid abbreviation for Sunday.
#. * #. *
#. * 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:108 #: ../js/ui/calendar.js:108
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:110 #: ../js/ui/calendar.js:110
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:112 #: ../js/ui/calendar.js:112
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:114 #: ../js/ui/calendar.js:114
msgctxt "grid wednesday" msgctxt "grid wednesday"
msgid "W" msgid "W"
msgstr "M" msgstr "M"
#. Translators: Calendar grid abbreviation for Thursday #. Translators: Calendar grid abbreviation for Thursday */
#: ../js/ui/calendar.js:116 #: ../js/ui/calendar.js:116
msgctxt "grid thursday" msgctxt "grid thursday"
msgid "T" msgid "T"
msgstr "G" msgstr "G"
#. Translators: Calendar grid abbreviation for Friday #. Translators: Calendar grid abbreviation for Friday */
#: ../js/ui/calendar.js:118 #: ../js/ui/calendar.js:118
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:120 #: ../js/ui/calendar.js:120
msgctxt "grid saturday" msgctxt "grid saturday"
msgid "S" msgid "S"
@ -495,48 +466,52 @@ 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:133 #: ../js/ui/calendar.js:133
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:135 #: ../js/ui/calendar.js:135
msgctxt "list monday" msgctxt "list monday"
msgid "M" msgid "M"
msgstr "Lu" msgstr "Lu"
#. Translators: Event list abbreviation for Tuesday #. Translators: Event list abbreviation for Tuesday */
#: ../js/ui/calendar.js:137 #: ../js/ui/calendar.js:137
msgctxt "list tuesday" msgctxt "list tuesday"
msgid "T" msgid "T"
msgstr "Ma" msgstr "Ma"
#. Translators: Event list abbreviation for Wednesday #. Translators: Event list abbreviation for Wednesday */
#: ../js/ui/calendar.js:139 #: ../js/ui/calendar.js:139
msgctxt "list wednesday" msgctxt "list wednesday"
msgid "W" msgid "W"
msgstr "Me" msgstr "Me"
#. Translators: Event list abbreviation for Thursday #. Translators: Event list abbreviation for Thursday */
#: ../js/ui/calendar.js:141 #: ../js/ui/calendar.js:141
msgctxt "list thursday" msgctxt "list thursday"
msgid "Th" msgid "Th"
msgstr "Gi" msgstr "Gi"
#. Translators: Event list abbreviation for Friday #. Translators: Event list abbreviation for Friday */
#: ../js/ui/calendar.js:143 #: ../js/ui/calendar.js:143
msgctxt "list friday" msgctxt "list friday"
msgid "F" msgid "F"
msgstr "Ve" msgstr "Ve"
#. Translators: Event list abbreviation for Saturday #. Translators: Event list abbreviation for Saturday */
#: ../js/ui/calendar.js:145 #: ../js/ui/calendar.js:145
msgctxt "list saturday" msgctxt "list saturday"
msgid "S" msgid "S"
msgstr "Sa" msgstr "Sa"
#: ../js/ui/calendar.js:389
msgid "calendar:MY"
msgstr "calendar:MY"
#: ../js/ui/calendar.js:447 #: ../js/ui/calendar.js:447
msgid "Previous month" msgid "Previous month"
msgstr "Mese precedente" msgstr "Mese precedente"
@ -545,18 +520,18 @@ msgstr "Mese precedente"
msgid "Next month" msgid "Next month"
msgstr "Mese successivo" msgstr "Mese successivo"
#. Translators: Text to show if there are no events #. Translators: Text to show if there are no events */
#: ../js/ui/calendar.js:753 #: ../js/ui/calendar.js:753
msgid "Nothing Scheduled" msgid "Nothing Scheduled"
msgstr "Nessun evento" msgstr "Nessun evento"
#. 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:771 #: ../js/ui/calendar.js:771
msgctxt "calendar heading" msgctxt "calendar heading"
msgid "%A, %B %d" msgid "%A, %B %d"
msgstr "%A, %e %B" msgstr "%A, %e %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:774 #: ../js/ui/calendar.js:774
msgctxt "calendar heading" msgctxt "calendar heading"
msgid "%A, %B %d, %Y" msgid "%A, %B %d, %Y"
@ -591,7 +566,6 @@ msgid "Removable Devices"
msgstr "Dispositivi rimovibili" msgstr "Dispositivi rimovibili"
#: ../js/ui/components/autorunManager.js:594 #: ../js/ui/components/autorunManager.js:594
#, c-format
msgid "Open with %s" msgid "Open with %s"
msgstr "Apri con %s" msgstr "Apri con %s"
@ -599,20 +573,19 @@ msgstr "Apri con %s"
msgid "Eject" msgid "Eject"
msgstr "Espelli" msgstr "Espelli"
#: ../js/ui/components/keyring.js:91 ../js/ui/components/polkitAgent.js:280 #: ../js/ui/components/keyring.js:89 ../js/ui/components/polkitAgent.js:280
msgid "Password:" msgid "Password:"
msgstr "Password:" msgstr "Password:"
#: ../js/ui/components/keyring.js:110 #: ../js/ui/components/keyring.js:108
msgid "Type again:" msgid "Type again:"
msgstr "Inserire di nuovo:" msgstr "Inserire di nuovo:"
#: ../js/ui/components/networkAgent.js:131 ../js/ui/status/network.js:112 #: ../js/ui/components/networkAgent.js:131 ../js/ui/status/network.js:133
#: ../js/ui/status/network.js:275 ../js/ui/status/network.js:689 #: ../js/ui/status/network.js:296 ../js/ui/status/network.js:731
msgid "Connect" msgid "Connect"
msgstr "Connetti" msgstr "Connetti"
#. Cisco LEAP
#: ../js/ui/components/networkAgent.js:222 #: ../js/ui/components/networkAgent.js:222
#: ../js/ui/components/networkAgent.js:234 #: ../js/ui/components/networkAgent.js:234
#: ../js/ui/components/networkAgent.js:261 #: ../js/ui/components/networkAgent.js:261
@ -621,7 +594,6 @@ msgstr "Connetti"
msgid "Password: " msgid "Password: "
msgstr "Password: " msgstr "Password: "
#. static WEP
#: ../js/ui/components/networkAgent.js:227 #: ../js/ui/components/networkAgent.js:227
msgid "Key: " msgid "Key: "
msgstr "Chiave: " msgstr "Chiave: "
@ -643,7 +615,6 @@ msgid "Authentication required by wireless network"
msgstr "Richiesta autenticazione dalla rete wireless" msgstr "Richiesta autenticazione dalla rete wireless"
#: ../js/ui/components/networkAgent.js:309 #: ../js/ui/components/networkAgent.js:309
#, c-format
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'."
@ -680,7 +651,6 @@ msgid "Mobile broadband network password"
msgstr "Password rete mobile" msgstr "Password rete mobile"
#: ../js/ui/components/networkAgent.js:336 #: ../js/ui/components/networkAgent.js:336
#, c-format
msgid "A password is required to connect to '%s'." msgid "A password is required to connect to '%s'."
msgstr "È richiesta una password per connettersi a «%s»." msgstr "È richiesta una password per connettersi a «%s»."
@ -699,24 +669,20 @@ msgstr "Autentica"
#. 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:266 ../js/ui/shellMountOperation.js:383 #: ../js/ui/components/polkitAgent.js:266 ../js/ui/shellMountOperation.js:383
msgid "Sorry, that didn't work. Please try again." msgid "Sorry, that didn't work. Please try again."
msgstr "Errore nell'autenticazione. Provare di nuovo." msgstr "Errore nell'autenticazione. Provare di nuovo."
#. FIXME: We don't have a 'chat room' icon (bgo #653737) use
#. system-users for now as Empathy does.
#: ../js/ui/components/telepathyClient.js:238 #: ../js/ui/components/telepathyClient.js:238
msgid "Invitation" msgid "Invitation"
msgstr "Invito" msgstr "Invito"
# A memora del test che ho fatto è "chiamata"... da verificare meglio # A memora del test che ho fatto è "chiamata"... da verificare meglio
#. We got the TpContact
#: ../js/ui/components/telepathyClient.js:298 #: ../js/ui/components/telepathyClient.js:298
msgid "Call" msgid "Call"
msgstr "Chiamata" msgstr "Chiamata"
#. We got the TpContact
#: ../js/ui/components/telepathyClient.js:314 #: ../js/ui/components/telepathyClient.js:314
msgid "File Transfer" msgid "File Transfer"
msgstr "Trasferimento file" msgstr "Trasferimento file"
@ -734,49 +700,42 @@ msgstr "Attiva notifiche"
msgid "Mute" msgid "Mute"
msgstr "Disattiva notifiche" msgstr "Disattiva notifiche"
#. Translators: this is the word "Yesterday" followed by a time string. i.e. "Yesterday, 14:30" #. Translators: this is the word "Yesterday" followed by a time string. i.e. "Yesterday, 14:30"*/
#: ../js/ui/components/telepathyClient.js:942 #: ../js/ui/components/telepathyClient.js:942
#, no-c-format
msgid "<b>Yesterday</b>, <b>%H:%M</b>" msgid "<b>Yesterday</b>, <b>%H:%M</b>"
msgstr "<b>Ieri</b>, <b>%-H.%M</b>" msgstr "<b>Ieri</b>, <b>%-H.%M</b>"
#. Translators: this is the week day name followed by a time string. i.e. "Monday, 14:30 #. Translators: this is the week day name followed by a time string. i.e. "Monday, 14:30*/
#: ../js/ui/components/telepathyClient.js:948 #: ../js/ui/components/telepathyClient.js:948
#, no-c-format
msgid "<b>%A</b>, <b>%H:%M</b>" msgid "<b>%A</b>, <b>%H:%M</b>"
msgstr "<b>%A</b>, <b>%-H.%M</b>" msgstr "<b>%A</b>, <b>%-H.%M</b>"
#. Translators: this is the month name and day number followed by a time string. i.e. "May 25, 14:30" #. Translators: this is the month name and day number followed by a time string. i.e. "May 25, 14:30"*/
#: ../js/ui/components/telepathyClient.js:953 #: ../js/ui/components/telepathyClient.js:953
#, no-c-format
msgid "<b>%B</b> <b>%d</b>, <b>%H:%M</b>" msgid "<b>%B</b> <b>%d</b>, <b>%H:%M</b>"
msgstr "<b>%d</b> <b>%B</b>, <b>%-H.%M</b>" msgstr "<b>%d</b> <b>%B</b>, <b>%-H.%M</b>"
#. Translators: this is the month name, day number, year number followed by a time string. i.e. "May 25 2012, 14:30" #. Translators: this is the month name, day number, year number followed by a time string. i.e. "May 25 2012, 14:30"*/
#: ../js/ui/components/telepathyClient.js:957 #: ../js/ui/components/telepathyClient.js:957
#, no-c-format
msgid "<b>%B</b> <b>%d</b> <b>%Y</b>, <b>%H:%M</b> " msgid "<b>%B</b> <b>%d</b> <b>%Y</b>, <b>%H:%M</b> "
msgstr "<b>%d</b> <b>%B</b> <b>%Y</b>, <b>%-H.%M</b>" msgstr "<b>%d</b> <b>%B</b> <b>%Y</b>, <b>%-H.%M</b>"
#. 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:986 #: ../js/ui/components/telepathyClient.js:986
#, c-format
msgid "%s is now known as %s" msgid "%s is now known as %s"
msgstr "%s ha cambiato nome in %s" msgstr "%s ha cambiato nome in %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:1089 #: ../js/ui/components/telepathyClient.js:1089
#, c-format
msgid "Invitation to %s" msgid "Invitation to %s"
msgstr "Invio su %s" msgstr "Invio su %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:1097 #: ../js/ui/components/telepathyClient.js:1097
#, c-format
msgid "%s is inviting you to join %s" msgid "%s is inviting you to join %s"
msgstr "%s ti sta invitando su %s" msgstr "%s ti sta invitando su %s"
@ -793,19 +752,17 @@ msgstr "Declina"
msgid "Accept" msgid "Accept"
msgstr "Accetta" msgstr "Accetta"
#. 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:1130 #: ../js/ui/components/telepathyClient.js:1130
#, c-format
msgid "Video call from %s" msgid "Video call from %s"
msgstr "Videochiamata da %s" msgstr "Videochiamata da %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:1133 #: ../js/ui/components/telepathyClient.js:1133
#, c-format
msgid "Call from %s" msgid "Call from %s"
msgstr "Chiamata da %s" msgstr "Chiamata da %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:1142 #: ../js/ui/components/telepathyClient.js:1142
msgid "Answer" msgid "Answer"
msgstr "Rispondi" msgstr "Rispondi"
@ -814,15 +771,13 @@ msgstr "Rispondi"
#. * 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:1174 #: ../js/ui/components/telepathyClient.js:1174
#, c-format
msgid "%s is sending you %s" msgid "%s is sending you %s"
msgstr "%s ti sta inviando %s" msgstr "%s ti sta inviando %s"
#. To translators: The parameter is the contact's alias #. To translators: The parameter is the contact's alias */
#: ../js/ui/components/telepathyClient.js:1209 #: ../js/ui/components/telepathyClient.js:1209
#, c-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 chiede il permesso di vedere quando sei online" msgstr "%s chiede il permesso di vedere quando sei online"
@ -936,9 +891,8 @@ msgid "Internal error"
msgstr "Errore interno" msgstr "Errore 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:1357 #: ../js/ui/components/telepathyClient.js:1357
#, c-format
msgid "Unable to connect to %s" msgid "Unable to connect to %s"
msgstr "Impossibile connettersi a %s" msgstr "Impossibile connettersi a %s"
@ -959,8 +913,6 @@ msgid "Show Applications"
msgstr "Mostra applicazioni" msgstr "Mostra applicazioni"
# cruscotto?!?!?!?!?!?!? # cruscotto?!?!?!?!?!?!?
#. Translators: this is the name of the dock/favorites area on
#. the left of the overview
#: ../js/ui/dash.js:442 #: ../js/ui/dash.js:442
msgid "Dash" msgid "Dash"
msgstr "Dash" msgstr "Dash"
@ -979,13 +931,12 @@ msgstr "Impostazioni data e ora"
#. 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:202 #: ../js/ui/dateMenu.js:202
msgid "%A %B %e, %Y" msgid "%A %B %e, %Y"
msgstr "%a %e %B %Y" msgstr "%a %e %B %Y"
#: ../js/ui/endSessionDialog.js:62 #: ../js/ui/endSessionDialog.js:62
#, c-format
msgctxt "title" msgctxt "title"
msgid "Log Out %s" msgid "Log Out %s"
msgstr "Termina sessione di %s" msgstr "Termina sessione di %s"
@ -996,14 +947,12 @@ msgid "Log Out"
msgstr "Termina sessione" msgstr "Termina sessione"
#: ../js/ui/endSessionDialog.js:65 #: ../js/ui/endSessionDialog.js:65
#, c-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] "La sessione di %s verrà terminata automaticamente tra %d secondo." msgstr[0] "La sessione di %s verrà terminata automaticamente tra %d secondo."
msgstr[1] "La sessione di %s verrà terminata automaticamente tra %d secondi." msgstr[1] "La sessione di %s verrà terminata automaticamente tra %d secondi."
#: ../js/ui/endSessionDialog.js:70 #: ../js/ui/endSessionDialog.js:70
#, c-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] "La sessione verrà terminata automaticamente tra %d secondo." msgstr[0] "La sessione verrà terminata automaticamente tra %d secondo."
@ -1020,7 +969,6 @@ msgid "Power Off"
msgstr "Spegni" msgstr "Spegni"
#: ../js/ui/endSessionDialog.js:83 #: ../js/ui/endSessionDialog.js:83
#, c-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] "Il sistema verrà spento automaticamente tra %d secondo." msgstr[0] "Il sistema verrà spento automaticamente tra %d secondo."
@ -1042,7 +990,6 @@ msgid "Restart"
msgstr "Riavvia" msgstr "Riavvia"
#: ../js/ui/endSessionDialog.js:99 #: ../js/ui/endSessionDialog.js:99
#, c-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] "Il sistema verrà riavviato automaticamente tra %d secondo." msgstr[0] "Il sistema verrà riavviato automaticamente tra %d secondo."
@ -1054,7 +1001,6 @@ msgid "Restart & Install Updates"
msgstr "Riavvia e installa aggiornamenti" msgstr "Riavvia e installa aggiornamenti"
#: ../js/ui/endSessionDialog.js:114 #: ../js/ui/endSessionDialog.js:114
#, c-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."
@ -1078,15 +1024,13 @@ msgstr "Alcune applicazioni risultano occupate o con lavoro non salvato."
msgid "Other users are logged in." msgid "Other users are logged in."
msgstr "Sono connessi altri utenti." msgstr "Sono connessi altri utenti."
#. 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:479 #: ../js/ui/endSessionDialog.js:479
#, c-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:482 #: ../js/ui/endSessionDialog.js:482
#, c-format
msgid "%s (console)" msgid "%s (console)"
msgstr "%s (console)" msgstr "%s (console)"
@ -1095,11 +1039,10 @@ msgid "Install"
msgstr "Installa" msgstr "Installa"
#: ../js/ui/extensionDownloader.js:204 #: ../js/ui/extensionDownloader.js:204
#, c-format
msgid "Download and install '%s' from extensions.gnome.org?" msgid "Download and install '%s' from extensions.gnome.org?"
msgstr "Scaricare e installare «%s» da extensions.gnome.org?" msgstr "Scaricare e installare «%s» da extensions.gnome.org?"
#: ../js/ui/keyboard.js:619 ../js/ui/status/keyboard.js:333 #: ../js/ui/keyboard.js:619
msgid "Keyboard" msgid "Keyboard"
msgstr "Tastiera" msgstr "Tastiera"
@ -1107,9 +1050,8 @@ msgstr "Tastiera"
msgid "No extensions installed" msgid "No extensions installed"
msgstr "Nessuna estensione installata" msgstr "Nessuna estensione installata"
#. Translators: argument is an extension UUID. #. Translators: argument is an extension UUID. */
#: ../js/ui/lookingGlass.js:743 #: ../js/ui/lookingGlass.js:743
#, c-format
msgid "%s has not emitted any errors." msgid "%s has not emitted any errors."
msgstr "%s non ha emesso alcun errore." msgstr "%s non ha emesso alcun errore."
@ -1127,9 +1069,12 @@ msgid "Enabled"
msgstr "Abilitato" msgstr "Abilitato"
# (ndt) o disabilitata? # (ndt) o disabilitata?
#. Translators: this is for a network device that cannot be activated
#. because it's disabled by rfkill (airplane mode) */
#. translators: #. translators:
#. * The device has been disabled #. * The device has been disabled
#: ../js/ui/lookingGlass.js:765 ../src/gvc/gvc-mixer-control.c:1830 #: ../js/ui/lookingGlass.js:765 ../js/ui/status/network.js:473
#: ../src/gvc/gvc-mixer-control.c:1830
msgid "Disabled" msgid "Disabled"
msgstr "Disabilitato" msgstr "Disabilitato"
@ -1161,27 +1106,32 @@ msgstr "Apri"
msgid "Remove" msgid "Remove"
msgstr "Rimuovi" msgstr "Rimuovi"
#: ../js/ui/messageTray.js:1513 #: ../js/ui/messageTray.js:1530
#| msgid "Notification Settings"
msgid "Notifications"
msgstr "Notifiche"
#: ../js/ui/messageTray.js:1537
msgid "Clear Messages" msgid "Clear Messages"
msgstr "Pulisci messaggi" msgstr "Pulisci messaggi"
#: ../js/ui/messageTray.js:1540 #: ../js/ui/messageTray.js:1564
msgid "Notification Settings" msgid "Notification Settings"
msgstr "Impostazioni notifiche" msgstr "Impostazioni notifiche"
#: ../js/ui/messageTray.js:1559 #: ../js/ui/messageTray.js:1617
msgid "Tray Menu" msgid "Tray Menu"
msgstr "Menu tray" msgstr "Menu tray"
#: ../js/ui/messageTray.js:1775 #: ../js/ui/messageTray.js:1833
msgid "No Messages" msgid "No Messages"
msgstr "Nessun messaggio" msgstr "Nessun messaggio"
#: ../js/ui/messageTray.js:1813 #: ../js/ui/messageTray.js:1871
msgid "Message Tray" msgid "Message Tray"
msgstr "Cassetto messaggi" msgstr "Cassetto messaggi"
#: ../js/ui/messageTray.js:2788 #: ../js/ui/messageTray.js:2846
msgid "System Information" msgid "System Information"
msgstr "Informazione di sistema" msgstr "Informazione di sistema"
@ -1191,7 +1141,6 @@ msgid "Unknown"
msgstr "Sconosciuto" msgstr "Sconosciuto"
#: ../js/ui/overviewControls.js:491 ../js/ui/screenShield.js:152 #: ../js/ui/overviewControls.js:491 ../js/ui/screenShield.js:152
#, c-format
msgid "%d new message" msgid "%d new message"
msgid_plural "%d new messages" msgid_plural "%d new messages"
msgstr[0] "%d nuovo messaggio" msgstr[0] "%d nuovo messaggio"
@ -1208,7 +1157,7 @@ msgstr "Panoramica"
#. 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:258 #: ../js/ui/overview.js:258
msgid "Type to search…" msgid "Type to search…"
msgstr "Digita per cercare…" msgstr "Digita per cercare…"
@ -1218,20 +1167,15 @@ msgid "Quit"
msgstr "Esci" msgstr "Esci"
#. 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:570 #: ../js/ui/panel.js:570
msgid "Activities" msgid "Activities"
msgstr "Attività" msgstr "Attività"
#: ../js/ui/panel.js:903 #: ../js/ui/panel.js:904
msgid "Top Bar" msgid "Top Bar"
msgstr "Barra superiore" msgstr "Barra superiore"
#. 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:233 #: ../js/ui/popupMenu.js:233
msgid "toggle-switch-us" msgid "toggle-switch-us"
msgstr "toggle-switch-us" msgstr "toggle-switch-us"
@ -1245,13 +1189,12 @@ msgid "Close"
msgstr "Chiudi" msgstr "Chiudi"
#. 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 %B" msgstr "%A, %d %B"
#: ../js/ui/screenShield.js:154 #: ../js/ui/screenShield.js:154
#, c-format
msgid "%d new notification" msgid "%d new notification"
msgid_plural "%d new notifications" msgid_plural "%d new notifications"
msgstr[0] "%d nuova notifica" msgstr[0] "%d nuova notifica"
@ -1265,13 +1208,6 @@ msgstr "Blocca"
msgid "GNOME needs to lock the screen" msgid "GNOME needs to lock the screen"
msgstr "GNOME deve bloccare lo schermo" msgstr "GNOME deve bloccare lo schermo"
#. 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:831 ../js/ui/screenShield.js:1297 #: ../js/ui/screenShield.js:831 ../js/ui/screenShield.js:1297
msgid "Unable to lock" msgid "Unable to lock"
msgstr "Impossibile bloccare" msgstr "Impossibile bloccare"
@ -1280,11 +1216,11 @@ msgstr "Impossibile bloccare"
msgid "Lock was blocked by an application" msgid "Lock was blocked by an application"
msgstr "Il blocco è stato impedito da un'applicazione." msgstr "Il blocco è stato impedito da un'applicazione."
#: ../js/ui/searchDisplay.js:447 #: ../js/ui/searchDisplay.js:448
msgid "Searching…" msgid "Searching…"
msgstr "Ricerca…" msgstr "Ricerca…"
#: ../js/ui/searchDisplay.js:491 #: ../js/ui/searchDisplay.js:492
msgid "No results." msgid "No results."
msgstr "Nessun risultato." msgstr "Nessun risultato."
@ -1357,16 +1293,14 @@ msgstr "Contrasto elevato"
msgid "Large Text" msgid "Large Text"
msgstr "Caratteri grandi" msgstr "Caratteri grandi"
#. 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:28 ../js/ui/status/bluetooth.js:63 #: ../js/ui/status/bluetooth.js:28 ../js/ui/status/bluetooth.js:63
#: ../js/ui/status/bluetooth.js:100 ../js/ui/status/bluetooth.js:128 #: ../js/ui/status/bluetooth.js:100 ../js/ui/status/bluetooth.js:128
#: ../js/ui/status/bluetooth.js:164 ../js/ui/status/bluetooth.js:195 #: ../js/ui/status/bluetooth.js:164 ../js/ui/status/bluetooth.js:195
msgid "Bluetooth" msgid "Bluetooth"
msgstr "Bluetooth" msgstr "Bluetooth"
#: ../js/ui/status/bluetooth.js:30 ../js/ui/status/network.js:112 #: ../js/ui/status/bluetooth.js:30 ../js/ui/status/network.js:133
#: ../js/ui/status/network.js:1034 ../js/ui/status/rfkill.js:46 #: ../js/ui/status/network.js:1085 ../js/ui/status/rfkill.js:46
msgid "Turn Off" msgid "Turn Off"
msgstr "Spegni" msgstr "Spegni"
@ -1375,20 +1309,17 @@ msgid "Bluetooth Settings"
msgstr "Impostazioni Bluetooth" msgstr "Impostazioni Bluetooth"
#: ../js/ui/status/bluetooth.js:58 #: ../js/ui/status/bluetooth.js:58
#, c-format
msgid "%d Connected Device" msgid "%d Connected Device"
msgid_plural "%d Connected Devices" msgid_plural "%d Connected Devices"
msgstr[0] "%d dispositivo connesso" msgstr[0] "%d dispositivo connesso"
msgstr[1] "%d dispositivi connessi" msgstr[1] "%d dispositivi connessi"
#: ../js/ui/status/bluetooth.js:101 ../js/ui/status/bluetooth.js:129 #: ../js/ui/status/bluetooth.js:101 ../js/ui/status/bluetooth.js:129
#, c-format
msgid "Authorization request from %s" msgid "Authorization request from %s"
msgstr "Richesta autorizzazione da %s" msgstr "Richesta autorizzazione da %s"
#: ../js/ui/status/bluetooth.js:107 ../js/ui/status/bluetooth.js:172 #: ../js/ui/status/bluetooth.js:107 ../js/ui/status/bluetooth.js:172
#: ../js/ui/status/bluetooth.js:203 #: ../js/ui/status/bluetooth.js:203
#, c-format
msgid "Device %s wants to pair with this computer" msgid "Device %s wants to pair with this computer"
msgstr "Il dispositivo %s vuole associarsi con questo computer" msgstr "Il dispositivo %s vuole associarsi con questo computer"
@ -1401,7 +1332,6 @@ msgid "Deny"
msgstr "Nega" msgstr "Nega"
#: ../js/ui/status/bluetooth.js:135 #: ../js/ui/status/bluetooth.js:135
#, c-format
msgid "Device %s wants access to the service '%s'" msgid "Device %s wants access to the service '%s'"
msgstr "Il dispositivo %s vuole accedere al servizio «%s»" msgstr "Il dispositivo %s vuole accedere al servizio «%s»"
@ -1417,20 +1347,18 @@ msgstr "Accorda solo stavolta"
msgid "Reject" msgid "Reject"
msgstr "Rifiuta" msgstr "Rifiuta"
#. Translators: argument is the device short name #. Translators: argument is the device short name */
#: ../js/ui/status/bluetooth.js:166 #: ../js/ui/status/bluetooth.js:166
#, c-format
msgid "Pairing confirmation for %s" msgid "Pairing confirmation for %s"
msgstr "Conferma associazione per %s" msgstr "Conferma associazione per %s"
#: ../js/ui/status/bluetooth.js:173 #: ../js/ui/status/bluetooth.js:173
#, c-format
msgid "" msgid ""
"Please confirm whether the Passkey '%06d' matches the one on the device." "Please confirm whether the Passkey '%06d' matches the one on the device."
msgstr "" msgstr ""
"Confermare la corrispondenza del PIN «%06d» con quello sul dispositivo." "Confermare la corrispondenza del PIN «%06d» con quello sul dispositivo."
#. Translators: this is the verb, not the noun #. Translators: this is the verb, not the noun */
#: ../js/ui/status/bluetooth.js:176 #: ../js/ui/status/bluetooth.js:176
msgid "Matches" msgid "Matches"
msgstr "Corrisponde" msgstr "Corrisponde"
@ -1440,7 +1368,6 @@ msgid "Does not match"
msgstr "Non corrisponde" msgstr "Non corrisponde"
#: ../js/ui/status/bluetooth.js:196 #: ../js/ui/status/bluetooth.js:196
#, c-format
msgid "Pairing request for %s" msgid "Pairing request for %s"
msgstr "Richiesta di associazione per %s" msgstr "Richiesta di associazione per %s"
@ -1456,92 +1383,101 @@ msgstr "OK"
msgid "Brightness" msgid "Brightness"
msgstr "Luminosità" msgstr "Luminosità"
#: ../js/ui/status/keyboard.js:403
msgid "Show Keyboard Layout"
msgstr "Mostra disposizione tastiera"
#: ../js/ui/status/network.js:72 #: ../js/ui/status/network.js:72
msgid "<unknown>" msgid "<unknown>"
msgstr "<sconosciuto>" msgstr "<sconosciuto>"
#: ../js/ui/status/network.js:203 ../js/ui/status/network.js:1049 #: ../js/ui/status/network.js:223 ../js/ui/status/network.js:380
#: ../js/ui/status/network.js:1106
msgid "Off" msgid "Off"
msgstr "Off" msgstr "Off"
#: ../js/ui/status/network.js:276 ../js/ui/status/network.js:955
#: ../js/ui/status/rfkill.js:49
msgid "Network Settings"
msgstr "Impostazioni rete"
# FIXME o femminile? boh # FIXME o femminile? boh
#. 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:364 #: ../js/ui/status/network.js:386
msgid "unmanaged" msgid "unmanaged"
msgstr "non gestito" msgstr "non gestito"
#: ../js/ui/status/network.js:366 #: ../js/ui/status/network.js:388
msgid "disconnecting..." msgid "disconnecting..."
msgstr "disconnessione..." msgstr "disconnessione..."
#: ../js/ui/status/network.js:372 ../js/ui/status/network.js:1100 #: ../js/ui/status/network.js:394 ../js/ui/status/network.js:1160
msgid "connecting..." msgid "connecting..."
msgstr "connessione..." msgstr "connessione..."
#. 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:375 ../js/ui/status/network.js:1103 #: ../js/ui/status/network.js:397 ../js/ui/status/network.js:1163
msgid "authentication required" msgid "authentication required"
msgstr "richiesta autenticazione" msgstr "richiesta autenticazione"
#. 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:383 #: ../js/ui/status/network.js:405
msgid "firmware missing" msgid "firmware missing"
msgstr "firmware mancante" msgstr "firmware mancante"
#. 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:387 #: ../js/ui/status/network.js:409
msgid "unavailable" msgid "unavailable"
msgstr "non disponibile" msgstr "non disponibile"
#: ../js/ui/status/network.js:389 ../js/ui/status/network.js:1105 #: ../js/ui/status/network.js:411 ../js/ui/status/network.js:1165
msgid "connection failed" msgid "connection failed"
msgstr "connessione non riuscita" msgstr "connessione non riuscita"
#: ../js/ui/status/network.js:654 #: ../js/ui/status/network.js:427 ../js/ui/status/network.js:513
msgid "Mobile Broadband Settings"
msgstr "Impostazioni banda larga mobile"
# (ndt) o disabilitata?
#: ../js/ui/status/network.js:469 ../js/ui/status/network.js:1104
msgid "Hardware Disabled"
msgstr "Hardware disabilitato"
#: ../js/ui/status/network.js:696
msgid "Wi-Fi Networks" msgid "Wi-Fi Networks"
msgstr "Reti Wi-Fi" msgstr "Reti Wi-Fi"
#: ../js/ui/status/network.js:656 #: ../js/ui/status/network.js:698
msgid "Select a network" msgid "Select a network"
msgstr "Seleziona una rete" msgstr "Seleziona una rete"
#: ../js/ui/status/network.js:680 #: ../js/ui/status/network.js:722
msgid "No Networks" msgid "No Networks"
msgstr "Nessuna rete" msgstr "Nessuna rete"
#: ../js/ui/status/network.js:949 #: ../js/ui/status/network.js:991
msgid "Select Network" msgid "Select Network"
msgstr "Seleziona rete" msgstr "Seleziona rete"
#: ../js/ui/status/network.js:1034 #: ../js/ui/status/network.js:997
msgid "Wi-Fi Settings"
msgstr "Impostazioni Wi-Fi"
#: ../js/ui/status/network.js:1085
msgid "Turn On" msgid "Turn On"
msgstr "Accendi" msgstr "Accendi"
#: ../js/ui/status/network.js:1167 #: ../js/ui/status/network.js:1108
msgid "Not Connected"
msgstr "Non collegato"
#: ../js/ui/status/network.js:1228
msgid "VPN" msgid "VPN"
msgstr "VPN" msgstr "VPN"
#: ../js/ui/status/network.js:1307 #: ../js/ui/status/network.js:1368
msgid "Network Manager" msgid "Network Manager"
msgstr "Gestore reti" msgstr "Gestore reti"
#: ../js/ui/status/network.js:1346 #: ../js/ui/status/network.js:1407
msgid "Connection failed" msgid "Connection failed"
msgstr "Connessione non riuscita" msgstr "Connessione non riuscita"
#: ../js/ui/status/network.js:1347 #: ../js/ui/status/network.js:1408
msgid "Activation of network connection failed" msgid "Activation of network connection failed"
msgstr "Attivazione della connessione di rete non riuscita" msgstr "Attivazione della connessione di rete non riuscita"
@ -1557,29 +1493,19 @@ msgstr "Impostazioni alimentazione"
msgid "Fully Charged" msgid "Fully Charged"
msgstr "Carica" msgstr "Carica"
#. 0 is reported when UPower does not have enough data
#. to estimate battery life
#. state is one of PENDING_CHARGING, PENDING_DISCHARGING
#: ../js/ui/status/power.js:69 ../js/ui/status/power.js:86 #: ../js/ui/status/power.js:69 ../js/ui/status/power.js:86
msgid "Estimating…" msgid "Estimating…"
msgstr "In stima…" msgstr "In stima…"
#. Translators: this is <hours>:<minutes> Remaining (<percentage>)
#: ../js/ui/status/power.js:77 #: ../js/ui/status/power.js:77
#, c-format msgid "%d%02d Remaining (%d%%)"
msgid "%d\\u2236%02d Remaining (%d%%)"
msgstr "%d.%02d rimanente (%d%%)" msgstr "%d.%02d rimanente (%d%%)"
# in stile MacOS sarebbe "al pieno" :P # in stile MacOS sarebbe "al pieno" :P
#. Translators: this is <hours>:<minutes> Until Full (<percentage>)
#: ../js/ui/status/power.js:82 #: ../js/ui/status/power.js:82
#, c-format msgid "%d%02d Until Full (%d%%)"
msgid "%d\\u2236%02d Until Full (%d%%)"
msgstr "%d.%02d alla carica (%d%%)" msgstr "%d.%02d alla carica (%d%%)"
#. 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:43 #: ../js/ui/status/rfkill.js:43
msgid "Airplane Mode" msgid "Airplane Mode"
msgstr "Modalità aeroplano" msgstr "Modalità aeroplano"
@ -1588,6 +1514,10 @@ msgstr "Modalità aeroplano"
msgid "On" msgid "On"
msgstr "On" msgstr "On"
#: ../js/ui/status/rfkill.js:49
msgid "Network Settings"
msgstr "Impostazioni rete"
#: ../js/ui/status/system.js:305 #: ../js/ui/status/system.js:305
msgid "Switch User" msgid "Switch User"
msgstr "Cambia utente" msgstr "Cambia utente"
@ -1637,7 +1567,6 @@ msgid "Search"
msgstr "Cerca" msgstr "Cerca"
#: ../js/ui/wanda.js:77 #: ../js/ui/wanda.js:77
#, c-format
msgid "" msgid ""
"Sorry, no wisdom for you today:\n" "Sorry, no wisdom for you today:\n"
"%s" "%s"
@ -1648,13 +1577,11 @@ msgstr ""
# %s dovrebbe diventare "Wanda", il nome del pesce: a giudicare dal codice # %s dovrebbe diventare "Wanda", il nome del pesce: a giudicare dal codice
# non mi pare che per ora sia modificabile dall'utente però # non mi pare che per ora sia modificabile dall'utente però
#: ../js/ui/wanda.js:81 #: ../js/ui/wanda.js:81
#, c-format
msgid "%s the Oracle says" msgid "%s the Oracle says"
msgstr "%s l'oracolo dice" msgstr "%s l'oracolo dice"
# (ndt) dovrebbe essere il nome dell'applicazione # (ndt) dovrebbe essere il nome dell'applicazione
#: ../js/ui/windowAttentionHandler.js:19 #: ../js/ui/windowAttentionHandler.js:19
#, c-format
msgid "'%s' is ready" msgid "'%s' is ready"
msgstr "«%s» è pronto" msgstr "«%s» è pronto"
@ -1664,7 +1591,7 @@ msgstr "Mantenere queste impostazioni per il monitor?"
#. 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:75 #: ../js/ui/windowManager.js:75
msgid "Revert Settings" msgid "Revert Settings"
msgstr "Ripristina impostazioni" msgstr "Ripristina impostazioni"
@ -1674,7 +1601,6 @@ msgid "Keep Changes"
msgstr "Mantieni modifiche" msgstr "Mantieni modifiche"
#: ../js/ui/windowManager.js:97 #: ../js/ui/windowManager.js:97
#, c-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] "Le modifiche alle impostazioni saranno ripristinate tra %d secondo" msgstr[0] "Le modifiche alle impostazioni saranno ripristinate tra %d secondo"

442
po/lt.po

File diff suppressed because it is too large Load Diff

500
po/lv.po

File diff suppressed because it is too large Load Diff

View File

@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: gnome-shell 3.9.x\n" "Project-Id-Version: gnome-shell 3.9.x\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2013-09-24 19:37+0200\n" "POT-Creation-Date: 2013-10-03 20:38+0200\n"
"PO-Revision-Date: 2013-09-24 19:38+0200\n" "PO-Revision-Date: 2013-09-24 19:38+0200\n"
"Last-Translator: Kjartan Maraas <kmaraas@gnome.org>\n" "Last-Translator: Kjartan Maraas <kmaraas@gnome.org>\n"
"Language-Team: Norwegian bokmål <i18n-nb@lister.ping.uio.no>\n" "Language-Team: Norwegian bokmål <i18n-nb@lister.ping.uio.no>\n"
@ -268,7 +268,7 @@ msgstr "Velg en utvidelse som skal konfigureres med komboboksen over."
#: ../js/gdm/authPrompt.js:145 ../js/ui/components/networkAgent.js:136 #: ../js/gdm/authPrompt.js:145 ../js/ui/components/networkAgent.js:136
#: ../js/ui/components/polkitAgent.js:161 ../js/ui/endSessionDialog.js:351 #: ../js/ui/components/polkitAgent.js:161 ../js/ui/endSessionDialog.js:351
#: ../js/ui/extensionDownloader.js:195 ../js/ui/shellMountOperation.js:399 #: ../js/ui/extensionDownloader.js:195 ../js/ui/shellMountOperation.js:399
#: ../js/ui/status/bluetooth.js:222 ../js/ui/status/network.js:686 #: ../js/ui/status/bluetooth.js:222 ../js/ui/status/network.js:703
msgid "Cancel" msgid "Cancel"
msgstr "Avbryt" msgstr "Avbryt"
@ -573,8 +573,8 @@ msgstr "Passord:"
msgid "Type again:" msgid "Type again:"
msgstr "Skriv på nytt:" msgstr "Skriv på nytt:"
#: ../js/ui/components/networkAgent.js:131 ../js/ui/status/network.js:112 #: ../js/ui/components/networkAgent.js:131 ../js/ui/status/network.js:122
#: ../js/ui/status/network.js:275 ../js/ui/status/network.js:689 #: ../js/ui/status/network.js:285 ../js/ui/status/network.js:706
msgid "Connect" msgid "Connect"
msgstr "Koble til" msgstr "Koble til"
@ -1236,11 +1236,11 @@ msgstr "Kan ikke låse"
msgid "Lock was blocked by an application" msgid "Lock was blocked by an application"
msgstr "Låsing ble stoppet av et program" msgstr "Låsing ble stoppet av et program"
#: ../js/ui/searchDisplay.js:447 #: ../js/ui/searchDisplay.js:448
msgid "Searching…" msgid "Searching…"
msgstr "Søker …" msgstr "Søker …"
#: ../js/ui/searchDisplay.js:491 #: ../js/ui/searchDisplay.js:492
msgid "No results." msgid "No results."
msgstr "Ingen resultater." msgstr "Ingen resultater."
@ -1320,8 +1320,8 @@ msgstr "Stor tekst"
msgid "Bluetooth" msgid "Bluetooth"
msgstr "Bluetooth" msgstr "Bluetooth"
#: ../js/ui/status/bluetooth.js:30 ../js/ui/status/network.js:112 #: ../js/ui/status/bluetooth.js:30 ../js/ui/status/network.js:122
#: ../js/ui/status/network.js:1034 ../js/ui/status/rfkill.js:46 #: ../js/ui/status/network.js:1051 ../js/ui/status/rfkill.js:46
msgid "Turn Off" msgid "Turn Off"
msgstr "Slå av" msgstr "Slå av"
@ -1418,83 +1418,83 @@ msgstr "Vis tastaturutforming"
msgid "<unknown>" msgid "<unknown>"
msgstr "<ukjent>" msgstr "<ukjent>"
#: ../js/ui/status/network.js:203 ../js/ui/status/network.js:1049 #: ../js/ui/status/network.js:212 ../js/ui/status/network.js:1066
msgid "Off" msgid "Off"
msgstr "Av" msgstr "Av"
#: ../js/ui/status/network.js:276 ../js/ui/status/network.js:955 #: ../js/ui/status/network.js:286 ../js/ui/status/network.js:972
#: ../js/ui/status/rfkill.js:49 #: ../js/ui/status/rfkill.js:49
msgid "Network Settings" msgid "Network Settings"
msgstr "Innstillinger for nettverk" msgstr "Innstillinger for nettverk"
#. 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:364 #: ../js/ui/status/network.js:375
msgid "unmanaged" msgid "unmanaged"
msgstr "ikke håndtert" msgstr "ikke håndtert"
#: ../js/ui/status/network.js:366 #: ../js/ui/status/network.js:377
msgid "disconnecting..." msgid "disconnecting..."
msgstr "kobler fra …" msgstr "kobler fra …"
#: ../js/ui/status/network.js:372 ../js/ui/status/network.js:1100 #: ../js/ui/status/network.js:383 ../js/ui/status/network.js:1118
msgid "connecting..." msgid "connecting..."
msgstr "kobler til …" msgstr "kobler til …"
#. 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:375 ../js/ui/status/network.js:1103 #: ../js/ui/status/network.js:386 ../js/ui/status/network.js:1121
msgid "authentication required" msgid "authentication required"
msgstr "autentisering kreves" msgstr "autentisering kreves"
#. 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:383 #: ../js/ui/status/network.js:394
msgid "firmware missing" msgid "firmware missing"
msgstr "fastvare mangler" msgstr "fastvare mangler"
#. 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:387 #: ../js/ui/status/network.js:398
msgid "unavailable" msgid "unavailable"
msgstr "ikke tilgjengelig" msgstr "ikke tilgjengelig"
#: ../js/ui/status/network.js:389 ../js/ui/status/network.js:1105 #: ../js/ui/status/network.js:400 ../js/ui/status/network.js:1123
msgid "connection failed" msgid "connection failed"
msgstr "tilkobling feilet" msgstr "tilkobling feilet"
#: ../js/ui/status/network.js:654 #: ../js/ui/status/network.js:671
msgid "Wi-Fi Networks" msgid "Wi-Fi Networks"
msgstr "Wi-Fi nettverk" msgstr "Wi-Fi nettverk"
#: ../js/ui/status/network.js:656 #: ../js/ui/status/network.js:673
msgid "Select a network" msgid "Select a network"
msgstr "Velg et nettverk" msgstr "Velg et nettverk"
#: ../js/ui/status/network.js:680 #: ../js/ui/status/network.js:697
msgid "No Networks" msgid "No Networks"
msgstr "Ingen nettverk" msgstr "Ingen nettverk"
#: ../js/ui/status/network.js:949 #: ../js/ui/status/network.js:966
msgid "Select Network" msgid "Select Network"
msgstr "Velg nettverk" msgstr "Velg nettverk"
#: ../js/ui/status/network.js:1034 #: ../js/ui/status/network.js:1051
msgid "Turn On" msgid "Turn On"
msgstr "Slå på" msgstr "Slå på"
#: ../js/ui/status/network.js:1167 #: ../js/ui/status/network.js:1186
msgid "VPN" msgid "VPN"
msgstr "VPN" msgstr "VPN"
#: ../js/ui/status/network.js:1307 #: ../js/ui/status/network.js:1326
msgid "Network Manager" msgid "Network Manager"
msgstr "Nettverkshåndtering" msgstr "Nettverkshåndtering"
#: ../js/ui/status/network.js:1346 #: ../js/ui/status/network.js:1365
msgid "Connection failed" msgid "Connection failed"
msgstr "Tilkobling feilet" msgstr "Tilkobling feilet"
#: ../js/ui/status/network.js:1347 #: ../js/ui/status/network.js:1366
msgid "Activation of network connection failed" msgid "Activation of network connection failed"
msgstr "Aktivering av nettverkstilkobling feilet" msgstr "Aktivering av nettverkstilkobling feilet"

270
po/nl.po
View File

@ -14,11 +14,10 @@
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: \n"
"shell&keywords=I18N+L10N&component=general\n" "POT-Creation-Date: 2013-10-12 19:57+0200\n"
"POT-Creation-Date: 2013-09-14 18:10+0000\n" "PO-Revision-Date: 2013-10-12 19:59+0200\n"
"PO-Revision-Date: 2013-09-21 22:46+0100\n" "Last-Translator: Wouter Bolsterlee <wbolster@gnome.org>\n"
"Last-Translator: Reinout van Schouwen <reinouts@gnome.org>\n"
"Language-Team: Dutch <vertaling@vrijschrift.org>\n" "Language-Team: Dutch <vertaling@vrijschrift.org>\n"
"Language: nl\n" "Language: nl\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
@ -269,6 +268,10 @@ msgstr "Werkbladen dynamisch beheren"
msgid "Workspaces only on primary monitor" msgid "Workspaces only on primary monitor"
msgstr "Alleen werkbladen op hoofdmonitor" msgstr "Alleen werkbladen op hoofdmonitor"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:38
msgid "Delay focus changes in mouse mode until the pointer stops moving"
msgstr "Focus pas wijzigen nadat de muisaanwijzer is gestopt met bewegen"
#: ../js/extensionPrefs/main.js:125 #: ../js/extensionPrefs/main.js:125
#, c-format #, c-format
msgid "There was an error loading the preferences dialog for %s:" msgid "There was an error loading the preferences dialog for %s:"
@ -282,10 +285,10 @@ msgstr "Uitbreiding"
msgid "Select an extension to configure using the combobox above." msgid "Select an extension to configure using the combobox above."
msgstr "Selecteer de te configureren uitbreiding uit de keuzelijst hierboven." msgstr "Selecteer de te configureren uitbreiding uit de keuzelijst hierboven."
#: ../js/gdm/authPrompt.js:145 ../js/ui/components/networkAgent.js:132 #: ../js/gdm/authPrompt.js:145 ../js/ui/components/networkAgent.js:136
#: ../js/ui/components/polkitAgent.js:161 ../js/ui/endSessionDialog.js:351 #: ../js/ui/components/polkitAgent.js:161 ../js/ui/endSessionDialog.js:351
#: ../js/ui/extensionDownloader.js:195 ../js/ui/shellMountOperation.js:399 #: ../js/ui/extensionDownloader.js:195 ../js/ui/shellMountOperation.js:399
#: ../js/ui/status/bluetooth.js:221 ../js/ui/status/network.js:686 #: ../js/ui/status/bluetooth.js:222 ../js/ui/status/network.js:728
msgid "Cancel" msgid "Cancel"
msgstr "Annuleren" msgstr "Annuleren"
@ -324,8 +327,8 @@ msgstr "(bijv. gebruiker of %s)"
#. TTLS and PEAP are actually much more complicated, but this complication #. TTLS and PEAP are actually much more complicated, but this complication
#. is not visible here since we only care about phase2 authentication #. is not visible here since we only care about phase2 authentication
#. (and don't even care of which one) #. (and don't even care of which one)
#: ../js/gdm/loginDialog.js:627 ../js/ui/components/networkAgent.js:255 #: ../js/gdm/loginDialog.js:627 ../js/ui/components/networkAgent.js:259
#: ../js/ui/components/networkAgent.js:273 #: ../js/ui/components/networkAgent.js:277
msgid "Username: " msgid "Username: "
msgstr "Gebruikersnaam: " msgstr "Gebruikersnaam: "
@ -346,42 +349,42 @@ msgstr "Authenticatie mislukt"
msgid "(or swipe finger)" msgid "(or swipe finger)"
msgstr "(of vinger aanbieden)" msgstr "(of vinger aanbieden)"
#: ../js/misc/util.js:98 #: ../js/misc/util.js:115
msgid "Command not found" msgid "Command not found"
msgstr "Opdracht niet gevonden" msgstr "Opdracht niet gevonden"
#. Replace "Error invoking GLib.shell_parse_argv: " with #. Replace "Error invoking GLib.shell_parse_argv: " with
#. something nicer #. something nicer
#: ../js/misc/util.js:131 #: ../js/misc/util.js:148
msgid "Could not parse command:" msgid "Could not parse command:"
msgstr "Kon opdracht niet parsen:" msgstr "Kon opdracht niet parsen:"
#: ../js/misc/util.js:139 #: ../js/misc/util.js:156
#, c-format #, c-format
msgid "Execution of '%s' failed:" msgid "Execution of '%s' failed:"
msgstr "Uitvoeren van %s mislukt:" msgstr "Uitvoeren van %s mislukt:"
#: ../js/ui/appDisplay.js:598 #: ../js/ui/appDisplay.js:596
msgid "Frequently used applications will appear here" msgid "Frequently used applications will appear here"
msgstr "Vaak gebruikte toepassingen verschijnen hier" msgstr "Vaak gebruikte toepassingen verschijnen hier"
#: ../js/ui/appDisplay.js:714 #: ../js/ui/appDisplay.js:712
msgid "Frequent" msgid "Frequent"
msgstr "Vaak gebruikt" msgstr "Vaak gebruikt"
#: ../js/ui/appDisplay.js:721 #: ../js/ui/appDisplay.js:719
msgid "All" msgid "All"
msgstr "Alles" msgstr "Alles"
#: ../js/ui/appDisplay.js:1516 #: ../js/ui/appDisplay.js:1514
msgid "New Window" msgid "New Window"
msgstr "Nieuw venster" msgstr "Nieuw venster"
#: ../js/ui/appDisplay.js:1519 ../js/ui/dash.js:284 #: ../js/ui/appDisplay.js:1517 ../js/ui/dash.js:284
msgid "Remove from Favorites" msgid "Remove from Favorites"
msgstr "Uit favorieten verwijderen" msgstr "Uit favorieten verwijderen"
#: ../js/ui/appDisplay.js:1520 #: ../js/ui/appDisplay.js:1518
msgid "Add to Favorites" msgid "Add to Favorites"
msgstr "Aan favorieten toevoegen" msgstr "Aan favorieten toevoegen"
@ -395,7 +398,7 @@ msgstr "%s is toegevoegd aan uw favorieten."
msgid "%s has been removed from your favorites." msgid "%s has been removed from your favorites."
msgstr "%s is verwijderd uit uw favorieten." msgstr "%s is verwijderd uit uw favorieten."
#: ../js/ui/backgroundMenu.js:19 ../js/ui/panel.js:807 #: ../js/ui/backgroundMenu.js:19 ../js/ui/panel.js:806
#: ../js/ui/status/system.js:325 #: ../js/ui/status/system.js:325
msgid "Settings" msgid "Settings"
msgstr "Voorkeuren" msgstr "Voorkeuren"
@ -583,50 +586,50 @@ msgstr "Openen met %s"
msgid "Eject" msgid "Eject"
msgstr "Uitwerpen" msgstr "Uitwerpen"
#: ../js/ui/components/keyring.js:88 ../js/ui/components/polkitAgent.js:280 #: ../js/ui/components/keyring.js:89 ../js/ui/components/polkitAgent.js:280
msgid "Password:" msgid "Password:"
msgstr "Wachtwoord:" msgstr "Wachtwoord:"
#: ../js/ui/components/keyring.js:107 #: ../js/ui/components/keyring.js:108
msgid "Type again:" msgid "Type again:"
msgstr "Nogmaals:" msgstr "Nogmaals:"
#: ../js/ui/components/networkAgent.js:127 ../js/ui/status/network.js:112 #: ../js/ui/components/networkAgent.js:131 ../js/ui/status/network.js:133
#: ../js/ui/status/network.js:275 ../js/ui/status/network.js:689 #: ../js/ui/status/network.js:296 ../js/ui/status/network.js:731
msgid "Connect" msgid "Connect"
msgstr "Verbinden" msgstr "Verbinden"
#. Cisco LEAP #. Cisco LEAP
#: ../js/ui/components/networkAgent.js:218 #: ../js/ui/components/networkAgent.js:222
#: ../js/ui/components/networkAgent.js:230 #: ../js/ui/components/networkAgent.js:234
#: ../js/ui/components/networkAgent.js:257 #: ../js/ui/components/networkAgent.js:261
#: ../js/ui/components/networkAgent.js:277 #: ../js/ui/components/networkAgent.js:281
#: ../js/ui/components/networkAgent.js:287 #: ../js/ui/components/networkAgent.js:291
msgid "Password: " msgid "Password: "
msgstr "Wachtwoord:" msgstr "Wachtwoord:"
#. static WEP #. static WEP
#: ../js/ui/components/networkAgent.js:223 #: ../js/ui/components/networkAgent.js:227
msgid "Key: " msgid "Key: "
msgstr "Sleutel: " msgstr "Sleutel: "
#: ../js/ui/components/networkAgent.js:261 #: ../js/ui/components/networkAgent.js:265
msgid "Identity: " msgid "Identity: "
msgstr "Identiteit: " msgstr "Identiteit: "
#: ../js/ui/components/networkAgent.js:263 #: ../js/ui/components/networkAgent.js:267
msgid "Private key password: " msgid "Private key password: "
msgstr "Wachtwoord van privésleutel: " msgstr "Wachtwoord van privésleutel: "
#: ../js/ui/components/networkAgent.js:275 #: ../js/ui/components/networkAgent.js:279
msgid "Service: " msgid "Service: "
msgstr "Service: " msgstr "Service: "
#: ../js/ui/components/networkAgent.js:304 #: ../js/ui/components/networkAgent.js:308
msgid "Authentication required by wireless network" msgid "Authentication required by wireless network"
msgstr "Authenticatie nodig voor draadloos netwerk" msgstr "Authenticatie nodig voor draadloos netwerk"
#: ../js/ui/components/networkAgent.js:305 #: ../js/ui/components/networkAgent.js:309
#, c-format #, c-format
msgid "" msgid ""
"Passwords or encryption keys are required to access the wireless network " "Passwords or encryption keys are required to access the wireless network "
@ -635,35 +638,35 @@ msgstr ""
"Er is een wachtwoord of een sleutel voor encryptie nodig voor toegang tot " "Er is een wachtwoord of een sleutel voor encryptie nodig voor toegang tot "
"het draadloze netwerk %s." "het draadloze netwerk %s."
#: ../js/ui/components/networkAgent.js:309 #: ../js/ui/components/networkAgent.js:313
msgid "Wired 802.1X authentication" msgid "Wired 802.1X authentication"
msgstr "802.1X-authenticatie (bedraad)" msgstr "802.1X-authenticatie (bedraad)"
#: ../js/ui/components/networkAgent.js:311 #: ../js/ui/components/networkAgent.js:315
msgid "Network name: " msgid "Network name: "
msgstr "Netwerknaam: " msgstr "Netwerknaam: "
#: ../js/ui/components/networkAgent.js:316 #: ../js/ui/components/networkAgent.js:320
msgid "DSL authentication" msgid "DSL authentication"
msgstr "DSL-authenticatie" msgstr "DSL-authenticatie"
#: ../js/ui/components/networkAgent.js:323 #: ../js/ui/components/networkAgent.js:327
msgid "PIN code required" msgid "PIN code required"
msgstr "PIN-code vereist" msgstr "PIN-code vereist"
#: ../js/ui/components/networkAgent.js:324 #: ../js/ui/components/networkAgent.js:328
msgid "PIN code is needed for the mobile broadband device" msgid "PIN code is needed for the mobile broadband device"
msgstr "PIN-code vereist voor het apparaat voor mobiel breedband" msgstr "PIN-code vereist voor het apparaat voor mobiel breedband"
#: ../js/ui/components/networkAgent.js:325 #: ../js/ui/components/networkAgent.js:329
msgid "PIN: " msgid "PIN: "
msgstr "PIN: " msgstr "PIN: "
#: ../js/ui/components/networkAgent.js:331 #: ../js/ui/components/networkAgent.js:335
msgid "Mobile broadband network password" msgid "Mobile broadband network password"
msgstr "Netwerkwachtwoord voor mobiel breedband" msgstr "Netwerkwachtwoord voor mobiel breedband"
#: ../js/ui/components/networkAgent.js:332 #: ../js/ui/components/networkAgent.js:336
#, c-format #, c-format
msgid "A password is required to connect to '%s'." msgid "A password is required to connect to '%s'."
msgstr "Er is een wachtwoord nodig om met %s te verbinden." msgstr "Er is een wachtwoord nodig om met %s te verbinden."
@ -1034,11 +1037,14 @@ msgid "Restart & Install Updates"
msgstr "Opnieuw opstarten en updates installeren" msgstr "Opnieuw opstarten en updates installeren"
#: ../js/ui/endSessionDialog.js:114 #: ../js/ui/endSessionDialog.js:114
#, c-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] "De computer zal opnieuw opstarten en updates installeren over %d seconde." msgstr[0] ""
msgstr[1] "De computer zal opnieuw opstarten en updates installeren over %d seconden." "De computer zal opnieuw opstarten en updates installeren over %d seconde."
msgstr[1] ""
"De computer zal opnieuw opstarten en updates installeren over %d seconden."
#: ../js/ui/endSessionDialog.js:119 #: ../js/ui/endSessionDialog.js:119
msgctxt "button" msgctxt "button"
@ -1100,9 +1106,12 @@ msgstr "Fouten tonen"
msgid "Enabled" msgid "Enabled"
msgstr "Ingeschakeld" msgstr "Ingeschakeld"
#. Translators: this is for a network device that cannot be activated
#. because it's disabled by rfkill (airplane mode)
#. translators: #. translators:
#. * The device has been disabled #. * The device has been disabled
#: ../js/ui/lookingGlass.js:765 ../src/gvc/gvc-mixer-control.c:1830 #: ../js/ui/lookingGlass.js:765 ../js/ui/status/network.js:473
#: ../src/gvc/gvc-mixer-control.c:1830
msgid "Disabled" msgid "Disabled"
msgstr "Uitgeschakeld" msgstr "Uitgeschakeld"
@ -1134,31 +1143,35 @@ msgstr "Openen"
msgid "Remove" msgid "Remove"
msgstr "Verwijderen" msgstr "Verwijderen"
#: ../js/ui/messageTray.js:1513 #: ../js/ui/messageTray.js:1530
msgid "Notifications"
msgstr "Notificaties"
#: ../js/ui/messageTray.js:1537
msgid "Clear Messages" msgid "Clear Messages"
msgstr "Berichten wissen" msgstr "Berichten wissen"
#: ../js/ui/messageTray.js:1540 #: ../js/ui/messageTray.js:1564
msgid "Notification Settings" msgid "Notification Settings"
msgstr "Notificatie-instellingen" msgstr "Notificatie-instellingen"
#: ../js/ui/messageTray.js:1559 #: ../js/ui/messageTray.js:1617
msgid "Tray Menu" msgid "Tray Menu"
msgstr "Overzichtmenu" msgstr "Overzichtmenu"
#: ../js/ui/messageTray.js:1775 #: ../js/ui/messageTray.js:1833
msgid "No Messages" msgid "No Messages"
msgstr "Geen berichten" msgstr "Geen berichten"
#: ../js/ui/messageTray.js:1812 #: ../js/ui/messageTray.js:1871
msgid "Message Tray" msgid "Message Tray"
msgstr "Berichtenoverzicht" msgstr "Berichtenoverzicht"
#: ../js/ui/messageTray.js:2787 #: ../js/ui/messageTray.js:2846
msgid "System Information" msgid "System Information"
msgstr "Systeeminformatie" msgstr "Systeeminformatie"
#: ../js/ui/notificationDaemon.js:629 ../src/shell-app.c:396 #: ../js/ui/notificationDaemon.js:630 ../src/shell-app.c:396
msgctxt "program" msgctxt "program"
msgid "Unknown" msgid "Unknown"
msgstr "Onbekend" msgstr "Onbekend"
@ -1186,17 +1199,17 @@ msgstr "Overzicht"
msgid "Type to search…" msgid "Type to search…"
msgstr "Typ om te zoeken…" msgstr "Typ om te zoeken…"
#: ../js/ui/panel.js:518 #: ../js/ui/panel.js:516
msgid "Quit" msgid "Quit"
msgstr "Afsluiten" msgstr "Afsluiten"
#. 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:570 #: ../js/ui/panel.js:568
msgid "Activities" msgid "Activities"
msgstr "Activiteiten" msgstr "Activiteiten"
#: ../js/ui/panel.js:903 #: ../js/ui/panel.js:900
msgid "Top Bar" msgid "Top Bar"
msgstr "Bovenbalk" msgstr "Bovenbalk"
@ -1205,7 +1218,7 @@ msgstr "Bovenbalk"
#. "ON" and "OFF") or "toggle-switch-intl" (for toggle #. "ON" and "OFF") or "toggle-switch-intl" (for toggle
#. switches containing "◯" and "|"). Other values will #. switches containing "◯" and "|"). Other values will
#. simply result in invisible toggle switches. #. simply result in invisible toggle switches.
#: ../js/ui/popupMenu.js:233 #: ../js/ui/popupMenu.js:259
msgid "toggle-switch-us" msgid "toggle-switch-us"
msgstr "toggle-switch-intl" msgstr "toggle-switch-intl"
@ -1253,11 +1266,11 @@ msgstr "Kon niet vergrendelen"
msgid "Lock was blocked by an application" msgid "Lock was blocked by an application"
msgstr "Vergrendelen is door een toepassing voorkomen" msgstr "Vergrendelen is door een toepassing voorkomen"
#: ../js/ui/searchDisplay.js:447 #: ../js/ui/searchDisplay.js:448
msgid "Searching…" msgid "Searching…"
msgstr "Zoeken…" msgstr "Zoeken…"
#: ../js/ui/searchDisplay.js:491 #: ../js/ui/searchDisplay.js:492
msgid "No results." msgid "No results."
msgstr "Geen resultaten" msgstr "Geen resultaten"
@ -1289,56 +1302,56 @@ msgstr "Wachtwoord onthouden"
msgid "Accessibility" msgid "Accessibility"
msgstr "Toegankelijkheid" msgstr "Toegankelijkheid"
#: ../js/ui/status/accessibility.js:58 #: ../js/ui/status/accessibility.js:56
msgid "Zoom" msgid "Zoom"
msgstr "Zoomen" msgstr "Zoomen"
#: ../js/ui/status/accessibility.js:65 #: ../js/ui/status/accessibility.js:63
msgid "Screen Reader" msgid "Screen Reader"
msgstr "Schermlezer" msgstr "Schermlezer"
#: ../js/ui/status/accessibility.js:69 #: ../js/ui/status/accessibility.js:67
msgid "Screen Keyboard" msgid "Screen Keyboard"
msgstr "Schermtoetsenbord" msgstr "Schermtoetsenbord"
#: ../js/ui/status/accessibility.js:73 #: ../js/ui/status/accessibility.js:71
msgid "Visual Alerts" msgid "Visual Alerts"
msgstr "Visuele alerteringen" msgstr "Visuele alerteringen"
#: ../js/ui/status/accessibility.js:76 #: ../js/ui/status/accessibility.js:74
msgid "Sticky Keys" msgid "Sticky Keys"
msgstr "Plaktoetsen" msgstr "Plaktoetsen"
#: ../js/ui/status/accessibility.js:79 #: ../js/ui/status/accessibility.js:77
msgid "Slow Keys" msgid "Slow Keys"
msgstr "Trage Toetsen" msgstr "Trage Toetsen"
#: ../js/ui/status/accessibility.js:82 #: ../js/ui/status/accessibility.js:80
msgid "Bounce Keys" msgid "Bounce Keys"
msgstr "Springende toetsen" msgstr "Springende toetsen"
#: ../js/ui/status/accessibility.js:85 #: ../js/ui/status/accessibility.js:83
msgid "Mouse Keys" msgid "Mouse Keys"
msgstr "Muistoetsen" msgstr "Muistoetsen"
#: ../js/ui/status/accessibility.js:144 #: ../js/ui/status/accessibility.js:142
msgid "High Contrast" msgid "High Contrast"
msgstr "Hoog contrast" msgstr "Hoog contrast"
#: ../js/ui/status/accessibility.js:193 #: ../js/ui/status/accessibility.js:191
msgid "Large Text" msgid "Large Text"
msgstr "Grote tekst" msgstr "Grote tekst"
#. The Bluetooth menu only appears when Bluetooth is in use, #. The Bluetooth menu only appears when Bluetooth is in use,
#. so just statically build it with a "Turn Off" menu item. #. so just statically build it with a "Turn Off" menu item.
#: ../js/ui/status/bluetooth.js:28 ../js/ui/status/bluetooth.js:62 #: ../js/ui/status/bluetooth.js:28 ../js/ui/status/bluetooth.js:63
#: ../js/ui/status/bluetooth.js:99 ../js/ui/status/bluetooth.js:127 #: ../js/ui/status/bluetooth.js:100 ../js/ui/status/bluetooth.js:128
#: ../js/ui/status/bluetooth.js:163 ../js/ui/status/bluetooth.js:194 #: ../js/ui/status/bluetooth.js:164 ../js/ui/status/bluetooth.js:195
msgid "Bluetooth" msgid "Bluetooth"
msgstr "Bluetooth" msgstr "Bluetooth"
#: ../js/ui/status/bluetooth.js:30 ../js/ui/status/network.js:112 #: ../js/ui/status/bluetooth.js:30 ../js/ui/status/network.js:133
#: ../js/ui/status/network.js:1034 ../js/ui/status/rfkill.js:46 #: ../js/ui/status/network.js:1085 ../js/ui/status/rfkill.js:46
msgid "Turn Off" msgid "Turn Off"
msgstr "Uitschakelen" msgstr "Uitschakelen"
@ -1346,79 +1359,81 @@ msgstr "Uitschakelen"
msgid "Bluetooth Settings" msgid "Bluetooth Settings"
msgstr "Bluetooth-instellingen" msgstr "Bluetooth-instellingen"
#: ../js/ui/status/bluetooth.js:57 #: ../js/ui/status/bluetooth.js:58
#, c-format
msgid "%d Connected Device" msgid "%d Connected Device"
msgid_plural "%d Connected Devices" msgid_plural "%d Connected Devices"
msgstr[0] "%d Verbonden apparaat" msgstr[0] "%d Verbonden apparaat"
msgstr[1] "%d Verbonden apparaten" msgstr[1] "%d Verbonden apparaten"
#: ../js/ui/status/bluetooth.js:100 ../js/ui/status/bluetooth.js:128 #: ../js/ui/status/bluetooth.js:101 ../js/ui/status/bluetooth.js:129
#, c-format #, c-format
msgid "Authorization request from %s" msgid "Authorization request from %s"
msgstr "Autorisatie-aanvraag van %s" msgstr "Autorisatie-aanvraag van %s"
#: ../js/ui/status/bluetooth.js:106 ../js/ui/status/bluetooth.js:171 #: ../js/ui/status/bluetooth.js:107 ../js/ui/status/bluetooth.js:172
#: ../js/ui/status/bluetooth.js:202 #: ../js/ui/status/bluetooth.js:203
#, c-format #, c-format
msgid "Device %s wants to pair with this computer" msgid "Device %s wants to pair with this computer"
msgstr "Het apparaat %s wil aankoppelen met deze computer" msgstr "Het apparaat %s wil aankoppelen met deze computer"
#: ../js/ui/status/bluetooth.js:108 #: ../js/ui/status/bluetooth.js:109
msgid "Allow" msgid "Allow"
msgstr "Toestaan" msgstr "Toestaan"
#: ../js/ui/status/bluetooth.js:109 #: ../js/ui/status/bluetooth.js:110
msgid "Deny" msgid "Deny"
msgstr "Weigeren" msgstr "Weigeren"
#: ../js/ui/status/bluetooth.js:134 #: ../js/ui/status/bluetooth.js:135
#, c-format #, c-format
msgid "Device %s wants access to the service '%s'" msgid "Device %s wants access to the service '%s'"
msgstr "Het apparaat %s wil toegang tot de dienst %s" msgstr "Het apparaat %s wil toegang tot de dienst %s"
#: ../js/ui/status/bluetooth.js:136 #: ../js/ui/status/bluetooth.js:137
msgid "Always grant access" msgid "Always grant access"
msgstr "Altijd toestaan" msgstr "Altijd toestaan"
#: ../js/ui/status/bluetooth.js:137 #: ../js/ui/status/bluetooth.js:138
msgid "Grant this time only" msgid "Grant this time only"
msgstr "Eenmalig toestaan" msgstr "Eenmalig toestaan"
#: ../js/ui/status/bluetooth.js:138 #: ../js/ui/status/bluetooth.js:139
msgid "Reject" msgid "Reject"
msgstr "Afwijzen" msgstr "Afwijzen"
#. Translators: argument is the device short name #. Translators: argument is the device short name
#: ../js/ui/status/bluetooth.js:165 #: ../js/ui/status/bluetooth.js:166
#, c-format #, c-format
msgid "Pairing confirmation for %s" msgid "Pairing confirmation for %s"
msgstr "Koppelbevestiging voor %s" msgstr "Koppelbevestiging voor %s"
#: ../js/ui/status/bluetooth.js:172 #: ../js/ui/status/bluetooth.js:173
#, c-format
msgid "" msgid ""
"Please confirm whether the Passkey '%06d' matches the one on the device." "Please confirm whether the Passkey '%06d' matches the one on the device."
msgstr msgstr ""
"Bevestig dat de toegangscode %06d hetzelfde is als die van het apparaat." "Bevestig dat de toegangscode %06d hetzelfde is als die van het apparaat."
#. Translators: this is the verb, not the noun #. Translators: this is the verb, not the noun
#: ../js/ui/status/bluetooth.js:175 #: ../js/ui/status/bluetooth.js:176
msgid "Matches" msgid "Matches"
msgstr "Komt overeen" msgstr "Komt overeen"
#: ../js/ui/status/bluetooth.js:176 #: ../js/ui/status/bluetooth.js:177
msgid "Does not match" msgid "Does not match"
msgstr "Komt niet overeen" msgstr "Komt niet overeen"
#: ../js/ui/status/bluetooth.js:195 #: ../js/ui/status/bluetooth.js:196
#, c-format #, c-format
msgid "Pairing request for %s" msgid "Pairing request for %s"
msgstr "Verzoek tot koppelen met %s" msgstr "Verzoek tot koppelen met %s"
#: ../js/ui/status/bluetooth.js:203 #: ../js/ui/status/bluetooth.js:204
msgid "Please enter the PIN mentioned on the device." msgid "Please enter the PIN mentioned on the device."
msgstr "Geef de op het apparaat aangegeven PIN-code." msgstr "Geef de op het apparaat aangegeven PIN-code."
#: ../js/ui/status/bluetooth.js:220 #: ../js/ui/status/bluetooth.js:221
msgid "OK" msgid "OK"
msgstr "OK" msgstr "OK"
@ -1426,7 +1441,7 @@ msgstr "OK"
msgid "Brightness" msgid "Brightness"
msgstr "Helderheid" msgstr "Helderheid"
#: ../js/ui/status/keyboard.js:403 #: ../js/ui/status/keyboard.js:401
msgid "Show Keyboard Layout" msgid "Show Keyboard Layout"
msgstr "Toetsenbordindeling tonen" msgstr "Toetsenbordindeling tonen"
@ -1434,83 +1449,95 @@ msgstr "Toetsenbordindeling tonen"
msgid "<unknown>" msgid "<unknown>"
msgstr "<onbekend>" msgstr "<onbekend>"
#: ../js/ui/status/network.js:203 ../js/ui/status/network.js:1049 #: ../js/ui/status/network.js:223 ../js/ui/status/network.js:380
#: ../js/ui/status/network.js:1106
msgid "Off" msgid "Off"
msgstr "Uit" msgstr "Uit"
#: ../js/ui/status/network.js:276 ../js/ui/status/network.js:955
#: ../js/ui/status/rfkill.js:49
msgid "Network Settings"
msgstr "Netwerkinstellingen"
#. 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:364 #: ../js/ui/status/network.js:386
msgid "unmanaged" msgid "unmanaged"
msgstr "niet gemanaged" msgstr "niet gemanaged"
#: ../js/ui/status/network.js:366 #: ../js/ui/status/network.js:388
msgid "disconnecting..." msgid "disconnecting..."
msgstr "verbinding verbreken…" msgstr "verbinding verbreken…"
#: ../js/ui/status/network.js:372 ../js/ui/status/network.js:1100 #: ../js/ui/status/network.js:394 ../js/ui/status/network.js:1160
msgid "connecting..." msgid "connecting..."
msgstr "verbinden…" msgstr "verbinden…"
#. 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:375 ../js/ui/status/network.js:1103 #: ../js/ui/status/network.js:397 ../js/ui/status/network.js:1163
msgid "authentication required" msgid "authentication required"
msgstr "authenticatie nodig" msgstr "authenticatie nodig"
#. 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:383 #: ../js/ui/status/network.js:405
msgid "firmware missing" msgid "firmware missing"
msgstr "firmware ontbreekt" msgstr "firmware ontbreekt"
#. 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:387 #: ../js/ui/status/network.js:409
msgid "unavailable" msgid "unavailable"
msgstr "niet beschikbaar" msgstr "niet beschikbaar"
#: ../js/ui/status/network.js:389 ../js/ui/status/network.js:1105 #: ../js/ui/status/network.js:411 ../js/ui/status/network.js:1165
msgid "connection failed" msgid "connection failed"
msgstr "verbinding mislukt" msgstr "verbinding mislukt"
#: ../js/ui/status/network.js:654 #: ../js/ui/status/network.js:427 ../js/ui/status/network.js:513
msgid "Mobile Broadband Settings"
msgstr "Instellingen voor mobiel breedband"
#: ../js/ui/status/network.js:469 ../js/ui/status/network.js:1104
msgid "Hardware Disabled"
msgstr "Uitgeschakeld in hardware"
#: ../js/ui/status/network.js:696
msgid "Wi-Fi Networks" msgid "Wi-Fi Networks"
msgstr "Wi-Fi-netwerken" msgstr "Wi-Fi-netwerken"
#: ../js/ui/status/network.js:656 #: ../js/ui/status/network.js:698
msgid "Select a network" msgid "Select a network"
msgstr "Selecteer een netwerk" msgstr "Selecteer een netwerk"
#: ../js/ui/status/network.js:680 #: ../js/ui/status/network.js:722
msgid "No Networks" msgid "No Networks"
msgstr "Geen netwerken" msgstr "Geen netwerken"
#: ../js/ui/status/network.js:949 #: ../js/ui/status/network.js:991
msgid "Select Network" msgid "Select Network"
msgstr "Selecteer netwerk" msgstr "Selecteer netwerk"
#: ../js/ui/status/network.js:1034 #: ../js/ui/status/network.js:997
msgid "Wi-Fi Settings"
msgstr "Instellingen voor Wi-Fi"
#: ../js/ui/status/network.js:1085
msgid "Turn On" msgid "Turn On"
msgstr "Inschakelen" msgstr "Inschakelen"
#: ../js/ui/status/network.js:1167 #: ../js/ui/status/network.js:1108
msgid "Not Connected"
msgstr "Niet verbonden"
#: ../js/ui/status/network.js:1228
msgid "VPN" msgid "VPN"
msgstr "VPN" msgstr "VPN"
#: ../js/ui/status/network.js:1306 #: ../js/ui/status/network.js:1368
msgid "Network Manager" msgid "Network Manager"
msgstr "Netwerk-manager" msgstr "Netwerk-manager"
#: ../js/ui/status/network.js:1345 #: ../js/ui/status/network.js:1407
msgid "Connection failed" msgid "Connection failed"
msgstr "Verbinding mislukt" msgstr "Verbinding mislukt"
#: ../js/ui/status/network.js:1346 #: ../js/ui/status/network.js:1408
msgid "Activation of network connection failed" msgid "Activation of network connection failed"
msgstr "Activeren van netwerkverbinding mislukt" msgstr "Activeren van netwerkverbinding mislukt"
@ -1556,6 +1583,10 @@ msgstr "Vliegtuigstand"
msgid "On" msgid "On"
msgstr "Aan" msgstr "Aan"
#: ../js/ui/status/rfkill.js:49
msgid "Network Settings"
msgstr "Netwerkinstellingen"
#: ../js/ui/status/system.js:305 #: ../js/ui/status/system.js:305
msgid "Switch User" msgid "Switch User"
msgstr "Gebruiker wisselen" msgstr "Gebruiker wisselen"
@ -1667,7 +1698,7 @@ msgid_plural "%u Inputs"
msgstr[0] "%u invoerkanaal" msgstr[0] "%u invoerkanaal"
msgstr[1] "%u invoerkanalen" msgstr[1] "%u invoerkanalen"
#: ../src/gvc/gvc-mixer-control.c:2373 #: ../src/gvc/gvc-mixer-control.c:2371
msgid "System Sounds" msgid "System Sounds"
msgstr "Systeemgeluiden" msgstr "Systeemgeluiden"
@ -1846,9 +1877,6 @@ msgstr "Authenticatievenster is door de gebruiker afgesloten"
#~ msgid "Set Up a New Device…" #~ msgid "Set Up a New Device…"
#~ msgstr "Nieuw apparaat instellen…" #~ msgstr "Nieuw apparaat instellen…"
#~ msgid "hardware disabled"
#~ msgstr "uitgeschakeld in hardware"
#~ msgid "Connection" #~ msgid "Connection"
#~ msgstr "Verbinding" #~ msgstr "Verbinding"
@ -1886,9 +1914,6 @@ msgstr "Authenticatievenster is door de gebruiker afgesloten"
#~ msgid "Auto Ethernet" #~ msgid "Auto Ethernet"
#~ msgstr "Automatisch ethernetverbinding" #~ msgstr "Automatisch ethernetverbinding"
#~ msgid "Mobile broadband"
#~ msgstr "Mobiel breedband"
#~ msgid "Auto broadband" #~ msgid "Auto broadband"
#~ msgstr "Automatische breedbandverbinding" #~ msgstr "Automatische breedbandverbinding"
@ -1986,9 +2011,6 @@ msgstr "Authenticatievenster is door de gebruiker afgesloten"
#~ msgid "Idle" #~ msgid "Idle"
#~ msgstr "Inactief" #~ msgstr "Inactief"
#~ msgid "Notifications"
#~ msgstr "Notificaties"
#~ msgid "Your chat status will be set to busy" #~ msgid "Your chat status will be set to busy"
#~ msgstr "De chatstatus zal op bezig gezet worden" #~ msgstr "De chatstatus zal op bezig gezet worden"

326
po/pa.po
View File

@ -7,8 +7,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: 2013-09-23 13:35+0000\n" "POT-Creation-Date: 2013-09-28 19:49+0000\n"
"PO-Revision-Date: 2013-09-24 07:52-0500\n" "PO-Revision-Date: 2013-09-29 05:26-0500\n"
"Last-Translator: A S Alam <aalam@users.sf.net>\n" "Last-Translator: A S Alam <aalam@users.sf.net>\n"
"Language-Team: Punjabi/Panjabi <punjabi-users@lists.sf.net>\n" "Language-Team: Punjabi/Panjabi <punjabi-users@lists.sf.net>\n"
"Language: pa\n" "Language: pa\n"
@ -52,7 +52,6 @@ msgid "Window management and application launching"
msgstr "ਵਿੰਡੋ ਪਰਬੰਧ ਅਤੇ ਐਪਲੀਕੇਸ਼ਨ ਚਲਾਓ" msgstr "ਵਿੰਡੋ ਪਰਬੰਧ ਅਤੇ ਐਪਲੀਕੇਸ਼ਨ ਚਲਾਓ"
#: ../data/gnome-shell-extension-prefs.desktop.in.in.h:1 #: ../data/gnome-shell-extension-prefs.desktop.in.in.h:1
#: ../js/extensionPrefs/main.js:153
msgid "GNOME Shell Extension Preferences" msgid "GNOME Shell Extension Preferences"
msgstr "ਗਨੋਮ ਸ਼ੈੱਲ ਇਕਸਟੈਨਸ਼ਨ ਪਸੰਦ" msgstr "ਗਨੋਮ ਸ਼ੈੱਲ ਇਕਸਟੈਨਸ਼ਨ ਪਸੰਦ"
@ -270,15 +269,6 @@ msgstr "ਪ੍ਰਾਈਮਰੀ ਮਾਨੀਟਰ ਉੱਤੇ ਕੇਵਲ
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 "ਪੁਆਇੰਟਰ ਦੇ ਹਿਲਣ ਤੋਂ ਰੁਕਣ ਤੱਕ ਮਾਊਸ ਮੋਡ ਵਿੱਚ ਫੋਕਸ ਬਦਲਾਅ ਵਿੱਚ ਦੇਰੀ"
#: ../js/extensionPrefs/main.js:125
#, c-format
msgid "There was an error loading the preferences dialog for %s:"
msgstr "%s ਲਈ ਪਸੰਦ ਡਾਈਲਾਗ ਨੂੰ ਲੋਡ ਕਰਨ ਦੌਰਾਨ ਸਮੱਸਿਆ:"
#: ../js/extensionPrefs/main.js:165
msgid "Extension"
msgstr "ਇਕਸਟੈਸ਼ਨ"
#: ../js/extensionPrefs/main.js:189 #: ../js/extensionPrefs/main.js:189
msgid "Select an extension to configure using the combobox above." msgid "Select an extension to configure using the combobox above."
msgstr "ਉੱਤੇ ਦਿੱਤੇ ਕੰਬੋਬਾਕਸ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਇਕਸਟੈਸ਼ਨ ਦੀ ਸੰਰਚਨਾ ਕਰਨ ਲਈ ਚੋਣ ਕਰੋ।" msgstr "ਉੱਤੇ ਦਿੱਤੇ ਕੰਬੋਬਾਕਸ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਇਕਸਟੈਸ਼ਨ ਦੀ ਸੰਰਚਨਾ ਕਰਨ ਲਈ ਚੋਣ ਕਰੋ।"
@ -286,7 +276,7 @@ msgstr "ਉੱਤੇ ਦਿੱਤੇ ਕੰਬੋਬਾਕਸ ਦੀ ਵਰਤ
#: ../js/gdm/authPrompt.js:145 ../js/ui/components/networkAgent.js:136 #: ../js/gdm/authPrompt.js:145 ../js/ui/components/networkAgent.js:136
#: ../js/ui/components/polkitAgent.js:161 ../js/ui/endSessionDialog.js:351 #: ../js/ui/components/polkitAgent.js:161 ../js/ui/endSessionDialog.js:351
#: ../js/ui/extensionDownloader.js:195 ../js/ui/shellMountOperation.js:399 #: ../js/ui/extensionDownloader.js:195 ../js/ui/shellMountOperation.js:399
#: ../js/ui/status/bluetooth.js:222 ../js/ui/status/network.js:686 #: ../js/ui/status/bluetooth.js:222 ../js/ui/status/network.js:692
msgid "Cancel" msgid "Cancel"
msgstr "ਰੱਦ ਕਰੋ" msgstr "ਰੱਦ ਕਰੋ"
@ -308,23 +298,15 @@ msgstr "ਸਾਇਨ ਇਨ"
msgid "Choose Session" msgid "Choose Session"
msgstr "ਸ਼ੈਸ਼ਨ ਚੁਣੋ" msgstr "ਸ਼ੈਸ਼ਨ ਚੁਣੋ"
#. 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:454 #: ../js/gdm/loginDialog.js:454
msgid "Not listed?" msgid "Not listed?"
msgstr "ਲਿਸਟ ਵਿੱਚ ਨਹੀਂ ਹੈ?" msgstr "ਲਿਸਟ ਵਿੱਚ ਨਹੀਂ ਹੈ?"
#. 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:622 #: ../js/gdm/loginDialog.js:622
#, c-format #, javascript-format
msgid "(e.g., user or %s)" msgid "(e.g., user or %s)"
msgstr "(ਜਿਵੇਂ ਕਿ ਯੂਜ਼ਰ ਜਾਂ %s)" msgstr "(ਜਿਵੇਂ ਕਿ ਯੂਜ਼ਰ ਜਾਂ %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:627 ../js/ui/components/networkAgent.js:259 #: ../js/gdm/loginDialog.js:627 ../js/ui/components/networkAgent.js:259
#: ../js/ui/components/networkAgent.js:277 #: ../js/ui/components/networkAgent.js:277
msgid "Username: " msgid "Username: "
@ -338,11 +320,6 @@ msgstr "ਲਾਗਇਨ ਵਿੰਡੋ"
msgid "Authentication error" msgid "Authentication error"
msgstr "ਪਰਮਾਣਕਿਤਾ ਗਲਤੀ" msgstr "ਪਰਮਾਣਕਿਤਾ ਗਲਤੀ"
#. 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:436 #: ../js/gdm/util.js:436
msgid "(or swipe finger)" msgid "(or swipe finger)"
msgstr "(ਜਾਂ ਉਂਗਲ ਰੱਖੋ)" msgstr "(ਜਾਂ ਉਂਗਲ ਰੱਖੋ)"
@ -351,14 +328,12 @@ msgstr "(ਜਾਂ ਉਂਗਲ ਰੱਖੋ)"
msgid "Command not found" msgid "Command not found"
msgstr "ਕਮਾਂਡ ਨਹੀਂ ਲੱਭੀ" msgstr "ਕਮਾਂਡ ਨਹੀਂ ਲੱਭੀ"
#. Replace "Error invoking GLib.shell_parse_argv: " with
#. something nicer
#: ../js/misc/util.js:131 #: ../js/misc/util.js:131
msgid "Could not parse command:" msgid "Could not parse command:"
msgstr "ਕਮਾਂਡ ਪਾਰਸ ਨਹੀਂ ਕੀਤੀ ਜਾ ਸਕੀ:" msgstr "ਕਮਾਂਡ ਪਾਰਸ ਨਹੀਂ ਕੀਤੀ ਜਾ ਸਕੀ:"
#: ../js/misc/util.js:139 #: ../js/misc/util.js:139
#, c-format #, javascript-format
msgid "Execution of '%s' failed:" msgid "Execution of '%s' failed:"
msgstr "'%s' ਚਲਾਉਣ ਲਈ ਫੇਲ੍ਹ:" msgstr "'%s' ਚਲਾਉਣ ਲਈ ਫੇਲ੍ਹ:"
@ -387,16 +362,16 @@ msgid "Add to Favorites"
msgstr "ਪਸੰਦ 'ਚ ਸ਼ਾਮਲ ਕਰੋ" msgstr "ਪਸੰਦ 'ਚ ਸ਼ਾਮਲ ਕਰੋ"
#: ../js/ui/appFavorites.js:87 #: ../js/ui/appFavorites.js:87
#, c-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:121 #: ../js/ui/appFavorites.js:121
#, c-format #, javascript-format
msgid "%s has been removed from your favorites." msgid "%s has been removed from your favorites."
msgstr "%s ਨੂੰ ਤੁਹਾਡੀ ਪਸੰਦ ਤੋਂ ਹਟਾਇਆ ਜਾ ਚੁੱਕਿਆ ਹੈ।" msgstr "%s ਨੂੰ ਤੁਹਾਡੀ ਪਸੰਦ ਤੋਂ ਹਟਾਇਆ ਜਾ ਚੁੱਕਿਆ ਹੈ।"
#: ../js/ui/backgroundMenu.js:19 ../js/ui/panel.js:807 #: ../js/ui/backgroundMenu.js:19 ../js/ui/panel.js:808
#: ../js/ui/status/system.js:325 #: ../js/ui/status/system.js:325
msgid "Settings" msgid "Settings"
msgstr "ਸੈਟਿੰਗ" msgstr "ਸੈਟਿੰਗ"
@ -407,68 +382,68 @@ msgstr "…ਬੈਕਗਰਾਊਂਡ ਬਦਲੋ"
#. 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:62 #: ../js/ui/calendar.js:62
msgctxt "event list time" msgctxt "event list time"
msgid "All Day" msgid "All Day"
msgstr "ਸਭ ਦਿਨ" msgstr "ਸਭ ਦਿਨ"
#. 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:68 #: ../js/ui/calendar.js:68
msgctxt "event list time" msgctxt "event list time"
msgid "%H\\u2236%M" msgid "%H%M"
msgstr "%H\\u2236%M" 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:77 #: ../js/ui/calendar.js:77
msgctxt "event list time" msgctxt "event list time"
msgid "%l\\u2236%M\\u2009%p" msgid "%l%M%p"
msgstr "%l\\u2236%M\\u2009%p" msgstr "%l%M%p"
#. Translators: Calendar grid abbreviation for Sunday. #. Translators: Calendar grid abbreviation for Sunday.
#. * #. *
#. * 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:108 #: ../js/ui/calendar.js:108
msgctxt "grid sunday" msgctxt "grid sunday"
msgid "S" msgid "S"
msgstr "ਐ" msgstr "ਐ"
#. Translators: Calendar grid abbreviation for Monday #. Translators: Calendar grid abbreviation for Monday */
#: ../js/ui/calendar.js:110 #: ../js/ui/calendar.js:110
msgctxt "grid monday" msgctxt "grid monday"
msgid "M" msgid "M"
msgstr "ਸੋ" msgstr "ਸੋ"
#. Translators: Calendar grid abbreviation for Tuesday #. Translators: Calendar grid abbreviation for Tuesday */
#: ../js/ui/calendar.js:112 #: ../js/ui/calendar.js:112
msgctxt "grid tuesday" msgctxt "grid tuesday"
msgid "T" msgid "T"
msgstr "ਮੰ" msgstr "ਮੰ"
#. Translators: Calendar grid abbreviation for Wednesday #. Translators: Calendar grid abbreviation for Wednesday */
#: ../js/ui/calendar.js:114 #: ../js/ui/calendar.js:114
msgctxt "grid wednesday" msgctxt "grid wednesday"
msgid "W" msgid "W"
msgstr "ਬੁੱ" msgstr "ਬੁੱ"
#. Translators: Calendar grid abbreviation for Thursday #. Translators: Calendar grid abbreviation for Thursday */
#: ../js/ui/calendar.js:116 #: ../js/ui/calendar.js:116
msgctxt "grid thursday" msgctxt "grid thursday"
msgid "T" msgid "T"
msgstr "ਵੀ" msgstr "ਵੀ"
#. Translators: Calendar grid abbreviation for Friday #. Translators: Calendar grid abbreviation for Friday */
#: ../js/ui/calendar.js:118 #: ../js/ui/calendar.js:118
msgctxt "grid friday" msgctxt "grid friday"
msgid "F" msgid "F"
msgstr "ਸ਼ੁੱ" msgstr "ਸ਼ੁੱ"
#. Translators: Calendar grid abbreviation for Saturday #. Translators: Calendar grid abbreviation for Saturday */
#: ../js/ui/calendar.js:120 #: ../js/ui/calendar.js:120
msgctxt "grid saturday" msgctxt "grid saturday"
msgid "S" msgid "S"
@ -479,48 +454,52 @@ msgstr "ਸ਼"
#. * 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:133 #: ../js/ui/calendar.js:133
msgctxt "list sunday" msgctxt "list sunday"
msgid "Su" msgid "Su"
msgstr "ਐ" msgstr "ਐ"
#. Translators: Event list abbreviation for Monday #. Translators: Event list abbreviation for Monday */
#: ../js/ui/calendar.js:135 #: ../js/ui/calendar.js:135
msgctxt "list monday" msgctxt "list monday"
msgid "M" msgid "M"
msgstr "ਸੋ" msgstr "ਸੋ"
#. Translators: Event list abbreviation for Tuesday #. Translators: Event list abbreviation for Tuesday */
#: ../js/ui/calendar.js:137 #: ../js/ui/calendar.js:137
msgctxt "list tuesday" msgctxt "list tuesday"
msgid "T" msgid "T"
msgstr "ਮੰ" msgstr "ਮੰ"
#. Translators: Event list abbreviation for Wednesday #. Translators: Event list abbreviation for Wednesday */
#: ../js/ui/calendar.js:139 #: ../js/ui/calendar.js:139
msgctxt "list wednesday" msgctxt "list wednesday"
msgid "W" msgid "W"
msgstr "ਬੁੱ" msgstr "ਬੁੱ"
#. Translators: Event list abbreviation for Thursday #. Translators: Event list abbreviation for Thursday */
#: ../js/ui/calendar.js:141 #: ../js/ui/calendar.js:141
msgctxt "list thursday" msgctxt "list thursday"
msgid "Th" msgid "Th"
msgstr "ਵੀ" msgstr "ਵੀ"
#. Translators: Event list abbreviation for Friday #. Translators: Event list abbreviation for Friday */
#: ../js/ui/calendar.js:143 #: ../js/ui/calendar.js:143
msgctxt "list friday" msgctxt "list friday"
msgid "F" msgid "F"
msgstr "ਸ਼ੁੱ" msgstr "ਸ਼ੁੱ"
#. Translators: Event list abbreviation for Saturday #. Translators: Event list abbreviation for Saturday */
#: ../js/ui/calendar.js:145 #: ../js/ui/calendar.js:145
msgctxt "list saturday" msgctxt "list saturday"
msgid "S" msgid "S"
msgstr "ਸ਼" msgstr "ਸ਼"
#: ../js/ui/calendar.js:389
msgid "calendar:MY"
msgstr "calendar:MY"
#: ../js/ui/calendar.js:447 #: ../js/ui/calendar.js:447
msgid "Previous month" msgid "Previous month"
msgstr "ਪਿੱਛੇ ਮਹੀਨੇ" msgstr "ਪਿੱਛੇ ਮਹੀਨੇ"
@ -529,18 +508,18 @@ msgstr "ਪਿੱਛੇ ਮਹੀਨੇ"
msgid "Next month" msgid "Next month"
msgstr "ਅਗਲੇ ਮਹੀਨੇ" msgstr "ਅਗਲੇ ਮਹੀਨੇ"
#. Translators: Text to show if there are no events #. Translators: Text to show if there are no events */
#: ../js/ui/calendar.js:753 #: ../js/ui/calendar.js:753
msgid "Nothing Scheduled" msgid "Nothing Scheduled"
msgstr "ਕੋਈ ਵੀ ਸੈਡਿਊਲ ਨਹੀਂ ਹੈ" msgstr "ਕੋਈ ਵੀ ਸੈਡਿਊਲ ਨਹੀਂ ਹੈ"
#. 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:771 #: ../js/ui/calendar.js:771
msgctxt "calendar heading" msgctxt "calendar heading"
msgid "%A, %B %d" msgid "%A, %B %d"
msgstr "%A, %d %B" msgstr "%A, %d %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:774 #: ../js/ui/calendar.js:774
msgctxt "calendar heading" msgctxt "calendar heading"
msgid "%A, %B %d, %Y" msgid "%A, %B %d, %Y"
@ -575,7 +554,7 @@ msgid "Removable Devices"
msgstr "ਹਟਾਉਣਯੋਗ ਜੰਤਰ" msgstr "ਹਟਾਉਣਯੋਗ ਜੰਤਰ"
#: ../js/ui/components/autorunManager.js:594 #: ../js/ui/components/autorunManager.js:594
#, c-format #, javascript-format
msgid "Open with %s" msgid "Open with %s"
msgstr "%s ਨਾਲ ਖੋਲ੍ਹੋ" msgstr "%s ਨਾਲ ਖੋਲ੍ਹੋ"
@ -592,11 +571,10 @@ msgid "Type again:"
msgstr "ਮੁੜ-ਕੋਸ਼ਿਸ਼:" msgstr "ਮੁੜ-ਕੋਸ਼ਿਸ਼:"
#: ../js/ui/components/networkAgent.js:131 ../js/ui/status/network.js:112 #: ../js/ui/components/networkAgent.js:131 ../js/ui/status/network.js:112
#: ../js/ui/status/network.js:275 ../js/ui/status/network.js:689 #: ../js/ui/status/network.js:275 ../js/ui/status/network.js:695
msgid "Connect" msgid "Connect"
msgstr "ਕੁਨੈਕਟ ਕਰੋ" msgstr "ਕੁਨੈਕਟ ਕਰੋ"
#. Cisco LEAP
#: ../js/ui/components/networkAgent.js:222 #: ../js/ui/components/networkAgent.js:222
#: ../js/ui/components/networkAgent.js:234 #: ../js/ui/components/networkAgent.js:234
#: ../js/ui/components/networkAgent.js:261 #: ../js/ui/components/networkAgent.js:261
@ -605,7 +583,6 @@ msgstr "ਕੁਨੈਕਟ ਕਰੋ"
msgid "Password: " msgid "Password: "
msgstr "ਪਾਸਵਰਡ: " msgstr "ਪਾਸਵਰਡ: "
#. static WEP
#: ../js/ui/components/networkAgent.js:227 #: ../js/ui/components/networkAgent.js:227
msgid "Key: " msgid "Key: "
msgstr "ਸਵਿੱਚ: " msgstr "ਸਵਿੱਚ: "
@ -627,7 +604,7 @@ msgid "Authentication required by wireless network"
msgstr "ਬੇਤਾਰ ਨੈੱਟਵਰਕ ਲਈ ਪਰਮਾਣਕਿਤਾ ਚਾਹੀਦੀ ਹੈ" msgstr "ਬੇਤਾਰ ਨੈੱਟਵਰਕ ਲਈ ਪਰਮਾਣਕਿਤਾ ਚਾਹੀਦੀ ਹੈ"
#: ../js/ui/components/networkAgent.js:309 #: ../js/ui/components/networkAgent.js:309
#, c-format #, javascript-format
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'."
@ -662,7 +639,7 @@ msgid "Mobile broadband network password"
msgstr "ਮੋਬਾਇਲ ਬਰਾਡਬੈਂਡ ਨੈੱਟਵਰਕ ਪਾਸਵਰਡ" msgstr "ਮੋਬਾਇਲ ਬਰਾਡਬੈਂਡ ਨੈੱਟਵਰਕ ਪਾਸਵਰਡ"
#: ../js/ui/components/networkAgent.js:336 #: ../js/ui/components/networkAgent.js:336
#, c-format #, javascript-format
msgid "A password is required to connect to '%s'." msgid "A password is required to connect to '%s'."
msgstr "'%s' ਨਾਲ ਕੁਨੈਕਟ ਹੋਣ ਲਈ ਪਾਸਵਰਡ ਦੀ ਲੋੜ ਹੈ। " msgstr "'%s' ਨਾਲ ਕੁਨੈਕਟ ਹੋਣ ਲਈ ਪਾਸਵਰਡ ਦੀ ਲੋੜ ਹੈ। "
@ -681,23 +658,19 @@ msgstr "ਪਰਮਾਣਿਤ"
#. 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:266 ../js/ui/shellMountOperation.js:383 #: ../js/ui/components/polkitAgent.js:266 ../js/ui/shellMountOperation.js:383
msgid "Sorry, that didn't work. Please try again." msgid "Sorry, that didn't work. Please try again."
msgstr "ਅਫਸੋਸ, ਉਹ ਕੰਮ ਨਹੀਂ ਕਰਦਾ। ਫੇਰ ਕੋਸ਼ਿਸ਼ ਕਰੋ ਜੀ।" msgstr "ਅਫਸੋਸ, ਉਹ ਕੰਮ ਨਹੀਂ ਕਰਦਾ। ਫੇਰ ਕੋਸ਼ਿਸ਼ ਕਰੋ ਜੀ।"
#. FIXME: We don't have a 'chat room' icon (bgo #653737) use
#. system-users for now as Empathy does.
#: ../js/ui/components/telepathyClient.js:238 #: ../js/ui/components/telepathyClient.js:238
msgid "Invitation" msgid "Invitation"
msgstr "ਸੱਦਾ" msgstr "ਸੱਦਾ"
#. We got the TpContact
#: ../js/ui/components/telepathyClient.js:298 #: ../js/ui/components/telepathyClient.js:298
msgid "Call" msgid "Call"
msgstr "ਕਾਲ ਕਰੋ" msgstr "ਕਾਲ ਕਰੋ"
#. We got the TpContact
#: ../js/ui/components/telepathyClient.js:314 #: ../js/ui/components/telepathyClient.js:314
msgid "File Transfer" msgid "File Transfer"
msgstr "ਫਾਇਲ ਟਰਾਂਸਫਰ" msgstr "ਫਾਇਲ ਟਰਾਂਸਫਰ"
@ -714,49 +687,45 @@ msgstr "ਸੁਣਾਓ"
msgid "Mute" msgid "Mute"
msgstr "ਚੁੱਪ" msgstr "ਚੁੱਪ"
#. Translators: this is the word "Yesterday" followed by a time string. i.e. "Yesterday, 14:30" #. Translators: this is the word "Yesterday" followed by a time string. i.e. "Yesterday, 14:30"*/
#: ../js/ui/components/telepathyClient.js:942 #: ../js/ui/components/telepathyClient.js:942
#, no-c-format
msgid "<b>Yesterday</b>, <b>%H:%M</b>" msgid "<b>Yesterday</b>, <b>%H:%M</b>"
msgstr "<b>ਕੱਲ੍ਹ</b>, <b>%H:%M</b>" msgstr "<b>ਕੱਲ੍ਹ</b>, <b>%H:%M</b>"
#. Translators: this is the week day name followed by a time string. i.e. "Monday, 14:30 #. Translators: this is the week day name followed by a time string. i.e. "Monday, 14:30*/
#: ../js/ui/components/telepathyClient.js:948 #: ../js/ui/components/telepathyClient.js:948
#, no-c-format
msgid "<b>%A</b>, <b>%H:%M</b>" msgid "<b>%A</b>, <b>%H:%M</b>"
msgstr "<b>%A</b>, <b>%H:%M</b>" msgstr "<b>%A</b>, <b>%H:%M</b>"
#. Translators: this is the month name and day number followed by a time string. i.e. "May 25, 14:30" #. Translators: this is the month name and day number followed by a time string. i.e. "May 25, 14:30"*/
#: ../js/ui/components/telepathyClient.js:953 #: ../js/ui/components/telepathyClient.js:953
#, no-c-format
msgid "<b>%B</b> <b>%d</b>, <b>%H:%M</b>" msgid "<b>%B</b> <b>%d</b>, <b>%H:%M</b>"
msgstr "<b>%d</b> <b>%B</b>,<b>%H:%M</b>" msgstr "<b>%d</b> <b>%B</b>,<b>%H:%M</b>"
#. Translators: this is the month name, day number, year number followed by a time string. i.e. "May 25 2012, 14:30" #. Translators: this is the month name, day number, year number followed by a time string. i.e. "May 25 2012, 14:30"*/
#: ../js/ui/components/telepathyClient.js:957 #: ../js/ui/components/telepathyClient.js:957
#, no-c-format
msgid "<b>%B</b> <b>%d</b> <b>%Y</b>, <b>%H:%M</b> " msgid "<b>%B</b> <b>%d</b> <b>%Y</b>, <b>%H:%M</b> "
msgstr "<b>%d</b> <b>%B</b> <b>%Y</b>, <b>%H:%M</b> " msgstr "<b>%d</b> <b>%B</b> <b>%Y</b>, <b>%H:%M</b> "
#. 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:986 #: ../js/ui/components/telepathyClient.js:986
#, c-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:1089 #: ../js/ui/components/telepathyClient.js:1089
#, c-format #, javascript-format
msgid "Invitation to %s" msgid "Invitation to %s"
msgstr "%s ਲਈ ਸੱਦਾ" 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:1097 #: ../js/ui/components/telepathyClient.js:1097
#, c-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 ਜੁਆਇੰਨ ਕਰਨ ਲਈ ਸੱਦ ਰਿਹਾ ਹੈ"
@ -773,19 +742,19 @@ msgstr "ਇਨਕਾਰ"
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:1130 #: ../js/ui/components/telepathyClient.js:1130
#, c-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:1133 #: ../js/ui/components/telepathyClient.js:1133
#, c-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:1142 #: ../js/ui/components/telepathyClient.js:1142
msgid "Answer" msgid "Answer"
msgstr "ਜਵਾਬ ਦਿਓ" msgstr "ਜਵਾਬ ਦਿਓ"
@ -794,15 +763,15 @@ msgstr "ਜਵਾਬ ਦਿਓ"
#. * 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:1174 #: ../js/ui/components/telepathyClient.js:1174
#, c-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:1209 #: ../js/ui/components/telepathyClient.js:1209
#, c-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 "" msgstr ""
"%s ਤੁਹਾਨੂੰ ਵੇਖਣ ਦਾ ਅਧਿਕਾਰ ਚਾਹੁੰਦਾ/ਚਾਹੁੰਦੀ ਹੈ, ਜਦੋਂ ਵੀ ਤੁਸੀਂ ਆਨਲਾਈਨ ਹੋਵੋ" "%s ਤੁਹਾਨੂੰ ਵੇਖਣ ਦਾ ਅਧਿਕਾਰ ਚਾਹੁੰਦਾ/ਚਾਹੁੰਦੀ ਹੈ, ਜਦੋਂ ਵੀ ਤੁਸੀਂ ਆਨਲਾਈਨ ਹੋਵੋ"
@ -912,9 +881,9 @@ 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:1357 #: ../js/ui/components/telepathyClient.js:1357
#, c-format #, javascript-format
msgid "Unable to connect to %s" msgid "Unable to connect to %s"
msgstr "%s ਨਾਲ ਕੁਨੈਕਟ ਹੋਣ ਲਈ ਅਸਮਰੱਥ" msgstr "%s ਨਾਲ ਕੁਨੈਕਟ ਹੋਣ ਲਈ ਅਸਮਰੱਥ"
@ -934,8 +903,6 @@ msgstr "ਵਿੰਡੋ"
msgid "Show Applications" msgid "Show Applications"
msgstr "ਐਪਲੀਕੇਸ਼ਨ ਵੇਖੋ" msgstr "ਐਪਲੀਕੇਸ਼ਨ ਵੇਖੋ"
#. Translators: this is the name of the dock/favorites area on
#. the left of the overview
#: ../js/ui/dash.js:442 #: ../js/ui/dash.js:442
msgid "Dash" msgid "Dash"
msgstr "ਡੈਸ਼" msgstr "ਡੈਸ਼"
@ -954,13 +921,13 @@ 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:202 #: ../js/ui/dateMenu.js:202
msgid "%A %B %e, %Y" msgid "%A %B %e, %Y"
msgstr "%A, %e %B %Y" msgstr "%A, %e %B %Y"
#: ../js/ui/endSessionDialog.js:62 #: ../js/ui/endSessionDialog.js:62
#, c-format #, javascript-format
msgctxt "title" msgctxt "title"
msgid "Log Out %s" msgid "Log Out %s"
msgstr "%s ਲਾਗਆਉਟ" msgstr "%s ਲਾਗਆਉਟ"
@ -971,14 +938,14 @@ msgid "Log Out"
msgstr "ਲਾਗਆਉਟ" msgstr "ਲਾਗਆਉਟ"
#: ../js/ui/endSessionDialog.js:65 #: ../js/ui/endSessionDialog.js:65
#, c-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:70 #: ../js/ui/endSessionDialog.js:70
#, c-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 ਸਕਿੰਟ ਵਿੱਚ ਆਟੋਮੈਟਿਕ ਹੀ ਲਾਗਆਉਟ ਕਰ ਦਿੱਤਾ ਜਾਵੇਗਾ।"
@ -995,7 +962,7 @@ msgid "Power Off"
msgstr "ਬੰਦ ਕਰੋ" msgstr "ਬੰਦ ਕਰੋ"
#: ../js/ui/endSessionDialog.js:83 #: ../js/ui/endSessionDialog.js:83
#, c-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 ਸਕਿੰਟ ਵਿੱਚ ਬੰਦ ਕੀਤਾ ਜਾਵੇਗਾ।"
@ -1017,7 +984,7 @@ msgid "Restart"
msgstr "ਮੁੜ-ਚਾਲੂ ਕਰੋ" msgstr "ਮੁੜ-ਚਾਲੂ ਕਰੋ"
#: ../js/ui/endSessionDialog.js:99 #: ../js/ui/endSessionDialog.js:99
#, c-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 ਸਕਿੰਟ ਵਿੱਚ ਮੁੜ-ਚਾਲੂ ਕੀਤਾ ਜਾਵੇਗਾ।"
@ -1029,7 +996,7 @@ msgid "Restart & Install Updates"
msgstr "ਮੁੜ-ਚਾਲੂ ਕਰੋ ਤੇ ਅੱਪਡੇਟ ਇੰਸਟਾਲ ਕਰੋ" msgstr "ਮੁੜ-ਚਾਲੂ ਕਰੋ ਤੇ ਅੱਪਡੇਟ ਇੰਸਟਾਲ ਕਰੋ"
#: ../js/ui/endSessionDialog.js:114 #: ../js/ui/endSessionDialog.js:114
#, c-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."
@ -1051,15 +1018,15 @@ msgstr "ਕੁਝ ਐਪਲੀਕੇਸ਼ਨ ਰੁੱਝੀਆਂ ਹਨ ਜਾ
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:479 #: ../js/ui/endSessionDialog.js:479
#, c-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:482 #: ../js/ui/endSessionDialog.js:482
#, c-format #, javascript-format
msgid "%s (console)" msgid "%s (console)"
msgstr "%s (ਕਨਸੋਲ)" msgstr "%s (ਕਨਸੋਲ)"
@ -1068,11 +1035,11 @@ msgid "Install"
msgstr "ਇੰਸਟਾਲ ਕਰੋ" msgstr "ਇੰਸਟਾਲ ਕਰੋ"
#: ../js/ui/extensionDownloader.js:204 #: ../js/ui/extensionDownloader.js:204
#, c-format #, javascript-format
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:619 ../js/ui/status/keyboard.js:333 #: ../js/ui/keyboard.js:619
msgid "Keyboard" msgid "Keyboard"
msgstr "ਕੀਬੋਰਡ" msgstr "ਕੀਬੋਰਡ"
@ -1080,9 +1047,9 @@ msgstr "ਕੀਬੋਰਡ"
msgid "No extensions installed" msgid "No extensions installed"
msgstr "ਕੋਈ ਇਕਸਟੈਨਸ਼ਨ ਇੰਸਟਾਲ ਨਹੀਂ ਹੈ" msgstr "ਕੋਈ ਇਕਸਟੈਨਸ਼ਨ ਇੰਸਟਾਲ ਨਹੀਂ ਹੈ"
#. Translators: argument is an extension UUID. #. Translators: argument is an extension UUID. */
#: ../js/ui/lookingGlass.js:743 #: ../js/ui/lookingGlass.js:743
#, c-format #, javascript-format
msgid "%s has not emitted any errors." msgid "%s has not emitted any errors."
msgstr "%s ਨੇ ਕੋਈ ਗਲਤੀ ਨਹੀਂ ਦਿੱਤੀ।" msgstr "%s ਨੇ ਕੋਈ ਗਲਤੀ ਨਹੀਂ ਦਿੱਤੀ।"
@ -1162,7 +1129,7 @@ msgid "Unknown"
msgstr "ਅਣਜਾਣ" msgstr "ਅਣਜਾਣ"
#: ../js/ui/overviewControls.js:491 ../js/ui/screenShield.js:152 #: ../js/ui/overviewControls.js:491 ../js/ui/screenShield.js:152
#, c-format #, javascript-format
msgid "%d new message" msgid "%d new message"
msgid_plural "%d new messages" msgid_plural "%d new messages"
msgstr[0] "%d ਨਵਾਂ ਸੁਨੇਹਾ" msgstr[0] "%d ਨਵਾਂ ਸੁਨੇਹਾ"
@ -1179,7 +1146,7 @@ msgstr "ਸੰਖੇਪ"
#. 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:258 #: ../js/ui/overview.js:258
msgid "Type to search…" msgid "Type to search…"
msgstr "…ਲੱਭਣ ਲਈ ਲਿਖੋ" msgstr "…ਲੱਭਣ ਲਈ ਲਿਖੋ"
@ -1189,20 +1156,15 @@ msgid "Quit"
msgstr "ਬਾਹਰ" msgstr "ਬਾਹਰ"
#. 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:570 #: ../js/ui/panel.js:570
msgid "Activities" msgid "Activities"
msgstr "ਸਰਗਰਮੀਆਂ" msgstr "ਸਰਗਰਮੀਆਂ"
#: ../js/ui/panel.js:903 #: ../js/ui/panel.js:904
msgid "Top Bar" msgid "Top Bar"
msgstr "ਉੱਤਲੀ ਪੱਟੀ" msgstr "ਉੱਤਲੀ ਪੱਟੀ"
#. 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:233 #: ../js/ui/popupMenu.js:233
msgid "toggle-switch-us" msgid "toggle-switch-us"
msgstr "toggle-switch-us" msgstr "toggle-switch-us"
@ -1216,13 +1178,13 @@ msgid "Close"
msgstr "ਬੰਦ ਕਰੋ" msgstr "ਬੰਦ ਕਰੋ"
#. 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 %B" msgstr "%A, %d %B"
#: ../js/ui/screenShield.js:154 #: ../js/ui/screenShield.js:154
#, c-format #, javascript-format
msgid "%d new notification" msgid "%d new notification"
msgid_plural "%d new notifications" msgid_plural "%d new notifications"
msgstr[0] "%d ਨਵਾਂ ਸੂਚਨਾ" msgstr[0] "%d ਨਵਾਂ ਸੂਚਨਾ"
@ -1236,13 +1198,6 @@ msgstr "ਲਾਕ"
msgid "GNOME needs to lock the screen" msgid "GNOME needs to lock the screen"
msgstr "ਗਨੋਮ ਨੂੰ ਸਕਰੀਨ ਲਾਕ ਕਰਨ ਦੀ ਲੋੜ ਹੈ" msgstr "ਗਨੋਮ ਨੂੰ ਸਕਰੀਨ ਲਾਕ ਕਰਨ ਦੀ ਲੋੜ ਹੈ"
#. 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:831 ../js/ui/screenShield.js:1297 #: ../js/ui/screenShield.js:831 ../js/ui/screenShield.js:1297
msgid "Unable to lock" msgid "Unable to lock"
msgstr "ਅਣਲਾਕ ਕਰਨ ਲਈ ਅਸਮਰੱਥ" msgstr "ਅਣਲਾਕ ਕਰਨ ਲਈ ਅਸਮਰੱਥ"
@ -1251,11 +1206,11 @@ msgstr "ਅਣਲਾਕ ਕਰਨ ਲਈ ਅਸਮਰੱਥ"
msgid "Lock was blocked by an application" msgid "Lock was blocked by an application"
msgstr "ਲਾਕ ਨੂੰ ਐਪਲੀਕੇਸ਼ਨ ਵਲੋਂ ਪਾਬੰਦੀ ਲਗਾਈ" msgstr "ਲਾਕ ਨੂੰ ਐਪਲੀਕੇਸ਼ਨ ਵਲੋਂ ਪਾਬੰਦੀ ਲਗਾਈ"
#: ../js/ui/searchDisplay.js:447 #: ../js/ui/searchDisplay.js:448
msgid "Searching…" msgid "Searching…"
msgstr "…ਖੋਜ ਜਾਰੀ ਹੈ" msgstr "…ਖੋਜ ਜਾਰੀ ਹੈ"
#: ../js/ui/searchDisplay.js:491 #: ../js/ui/searchDisplay.js:492
msgid "No results." msgid "No results."
msgstr "ਕੋਈ ਨਤੀਜਾ ਨਹੀਂ।" msgstr "ਕੋਈ ਨਤੀਜਾ ਨਹੀਂ।"
@ -1327,8 +1282,6 @@ msgstr "ਵੱਧ ਕਨਟਰਾਸਟ"
msgid "Large Text" msgid "Large Text"
msgstr "ਵੱਡੇ ਅੱਖਰ" msgstr "ਵੱਡੇ ਅੱਖਰ"
#. 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:28 ../js/ui/status/bluetooth.js:63 #: ../js/ui/status/bluetooth.js:28 ../js/ui/status/bluetooth.js:63
#: ../js/ui/status/bluetooth.js:100 ../js/ui/status/bluetooth.js:128 #: ../js/ui/status/bluetooth.js:100 ../js/ui/status/bluetooth.js:128
#: ../js/ui/status/bluetooth.js:164 ../js/ui/status/bluetooth.js:195 #: ../js/ui/status/bluetooth.js:164 ../js/ui/status/bluetooth.js:195
@ -1336,7 +1289,7 @@ msgid "Bluetooth"
msgstr "ਬਲਿਊਟੁੱਥ" msgstr "ਬਲਿਊਟੁੱਥ"
#: ../js/ui/status/bluetooth.js:30 ../js/ui/status/network.js:112 #: ../js/ui/status/bluetooth.js:30 ../js/ui/status/network.js:112
#: ../js/ui/status/network.js:1034 ../js/ui/status/rfkill.js:46 #: ../js/ui/status/network.js:1040 ../js/ui/status/rfkill.js:46
msgid "Turn Off" msgid "Turn Off"
msgstr "ਬੰਦ ਕਰੋ" msgstr "ਬੰਦ ਕਰੋ"
@ -1345,20 +1298,20 @@ msgid "Bluetooth Settings"
msgstr "ਬਲਿਊਟੁੱਥ ਸੈਟਿੰਗ" msgstr "ਬਲਿਊਟੁੱਥ ਸੈਟਿੰਗ"
#: ../js/ui/status/bluetooth.js:58 #: ../js/ui/status/bluetooth.js:58
#, c-format #, javascript-format
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:101 ../js/ui/status/bluetooth.js:129 #: ../js/ui/status/bluetooth.js:101 ../js/ui/status/bluetooth.js:129
#, c-format #, javascript-format
msgid "Authorization request from %s" msgid "Authorization request from %s"
msgstr "'%s' ਤੋਂ ਪਰਮਾਣਕਿਤਾ ਮੰਗ" msgstr "'%s' ਤੋਂ ਪਰਮਾਣਕਿਤਾ ਮੰਗ"
#: ../js/ui/status/bluetooth.js:107 ../js/ui/status/bluetooth.js:172 #: ../js/ui/status/bluetooth.js:107 ../js/ui/status/bluetooth.js:172
#: ../js/ui/status/bluetooth.js:203 #: ../js/ui/status/bluetooth.js:203
#, c-format #, javascript-format
msgid "Device %s wants to pair with this computer" msgid "Device %s wants to pair with this computer"
msgstr "ਜੰਤਰ %s ਇਸ ਕੰਪਿਊਟਰ ਨਾਲ ਪੇਅਰ ਹੋਣਾ ਚਾਹੁੰਦਾ ਹੈ" msgstr "ਜੰਤਰ %s ਇਸ ਕੰਪਿਊਟਰ ਨਾਲ ਪੇਅਰ ਹੋਣਾ ਚਾਹੁੰਦਾ ਹੈ"
@ -1371,7 +1324,7 @@ msgid "Deny"
msgstr "ਇਨਕਾਰ" msgstr "ਇਨਕਾਰ"
#: ../js/ui/status/bluetooth.js:135 #: ../js/ui/status/bluetooth.js:135
#, c-format #, javascript-format
msgid "Device %s wants access to the service '%s'" msgid "Device %s wants access to the service '%s'"
msgstr "ਜੰਤਰ %s ਸਰਵਿਸ '%s' ਨੂੰ ਵਰਤਣੀ ਚਾਹੁੰਦਾ ਹੈ।" msgstr "ਜੰਤਰ %s ਸਰਵਿਸ '%s' ਨੂੰ ਵਰਤਣੀ ਚਾਹੁੰਦਾ ਹੈ।"
@ -1387,19 +1340,19 @@ msgstr "ਕੇਵਲ ਇਸ ਸਮੇਂ ਹੀ ਮਨਜ਼ੂਰ"
msgid "Reject" msgid "Reject"
msgstr "ਨਾ-ਮਨਜ਼ੂਰ" msgstr "ਨਾ-ਮਨਜ਼ੂਰ"
#. Translators: argument is the device short name #. Translators: argument is the device short name */
#: ../js/ui/status/bluetooth.js:166 #: ../js/ui/status/bluetooth.js:166
#, c-format #, javascript-format
msgid "Pairing confirmation for %s" msgid "Pairing confirmation for %s"
msgstr "%s ਲਈ ਪੇਅਰ ਕਰਨ ਦੀ ਪੁਸ਼ਟੀ" msgstr "%s ਲਈ ਪੇਅਰ ਕਰਨ ਦੀ ਪੁਸ਼ਟੀ"
#: ../js/ui/status/bluetooth.js:173 #: ../js/ui/status/bluetooth.js:173
#, c-format #, javascript-format
msgid "" msgid ""
"Please confirm whether the Passkey '%06d' matches the one on the device." "Please confirm whether the Passkey '%06d' matches the one on the device."
msgstr "ਪੁਸ਼ਟੀ ਕਰੋ ਜੀ ਕਿ ਪਾਸ-ਕੀ '%06d' ਜੰਤਰ ਉੱਤੇ ਮੌਜੂਦ ਪਿੰਨ ਨਾਲ ਮਿਲਦਾ ਹੈ।" msgstr "ਪੁਸ਼ਟੀ ਕਰੋ ਜੀ ਕਿ ਪਾਸ-ਕੀ '%06d' ਜੰਤਰ ਉੱਤੇ ਮੌਜੂਦ ਪਿੰਨ ਨਾਲ ਮਿਲਦਾ ਹੈ।"
#. Translators: this is the verb, not the noun #. Translators: this is the verb, not the noun */
#: ../js/ui/status/bluetooth.js:176 #: ../js/ui/status/bluetooth.js:176
msgid "Matches" msgid "Matches"
msgstr "ਮਿਲਦਾ ਹੈ" msgstr "ਮਿਲਦਾ ਹੈ"
@ -1409,7 +1362,7 @@ msgid "Does not match"
msgstr "ਮਿਲਦਾ ਨਹੀਂ ਹੈ" msgstr "ਮਿਲਦਾ ਨਹੀਂ ਹੈ"
#: ../js/ui/status/bluetooth.js:196 #: ../js/ui/status/bluetooth.js:196
#, c-format #, javascript-format
msgid "Pairing request for %s" msgid "Pairing request for %s"
msgstr "%s ਲਈ ਪੇਅਰ ਕਰਨ ਦੀ ਮੰਗ" msgstr "%s ਲਈ ਪੇਅਰ ਕਰਨ ਦੀ ਮੰਗ"
@ -1425,25 +1378,21 @@ msgstr "ਠੀਕ ਹੈ"
msgid "Brightness" msgid "Brightness"
msgstr "ਚਮਕ" msgstr "ਚਮਕ"
#: ../js/ui/status/keyboard.js:403
msgid "Show Keyboard Layout"
msgstr "ਕੀਬੋਰਡ ਲੇਆਉਟ ਵੇਖਾਓ"
#: ../js/ui/status/network.js:72 #: ../js/ui/status/network.js:72
msgid "<unknown>" msgid "<unknown>"
msgstr "<ਅਣਜਾਣ>" msgstr "<ਅਣਜਾਣ>"
#: ../js/ui/status/network.js:203 ../js/ui/status/network.js:1049 #: ../js/ui/status/network.js:203 ../js/ui/status/network.js:1055
msgid "Off" msgid "Off"
msgstr "ਬੰਦ" msgstr "ਬੰਦ"
#: ../js/ui/status/network.js:276 ../js/ui/status/network.js:955 #: ../js/ui/status/network.js:276 ../js/ui/status/network.js:961
#: ../js/ui/status/rfkill.js:49 #: ../js/ui/status/rfkill.js:49
msgid "Network Settings" msgid "Network Settings"
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:364 #: ../js/ui/status/network.js:364
msgid "unmanaged" msgid "unmanaged"
msgstr "ਬਿਨ-ਪਰਬੰਧ" msgstr "ਬਿਨ-ਪਰਬੰਧ"
@ -1452,64 +1401,64 @@ msgstr "ਬਿਨ-ਪਰਬੰਧ"
msgid "disconnecting..." msgid "disconnecting..."
msgstr "ਡਿਸ-ਕੁਨੈਕਟ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ..." msgstr "ਡਿਸ-ਕੁਨੈਕਟ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ..."
#: ../js/ui/status/network.js:372 ../js/ui/status/network.js:1100 #: ../js/ui/status/network.js:372 ../js/ui/status/network.js:1106
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:375 ../js/ui/status/network.js:1103 #: ../js/ui/status/network.js:375 ../js/ui/status/network.js:1109
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:383 #: ../js/ui/status/network.js:383
msgid "firmware missing" msgid "firmware missing"
msgstr "ਫਿਰਮਵੇਅਰ ਮੌਜੂਦ ਨਹੀਂ ਹੈ" msgstr "ਫਿਰਮਵੇਅਰ ਮੌਜੂਦ ਨਹੀਂ ਹੈ"
#. 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:387 #: ../js/ui/status/network.js:387
msgid "unavailable" msgid "unavailable"
msgstr "ਨਾ-ਉਪਲੱਬਧ" msgstr "ਨਾ-ਉਪਲੱਬਧ"
#: ../js/ui/status/network.js:389 ../js/ui/status/network.js:1105 #: ../js/ui/status/network.js:389 ../js/ui/status/network.js:1111
msgid "connection failed" msgid "connection failed"
msgstr "ਕੁਨੈਕਸ਼ਨ ਫੇਲ੍ਹ ਹੈ" msgstr "ਕੁਨੈਕਸ਼ਨ ਫੇਲ੍ਹ ਹੈ"
#: ../js/ui/status/network.js:654 #: ../js/ui/status/network.js:660
msgid "Wi-Fi Networks" msgid "Wi-Fi Networks"
msgstr "ਵਾਈ-ਫਾਈ ਨੈੱਟਵਰਕ" msgstr "ਵਾਈ-ਫਾਈ ਨੈੱਟਵਰਕ"
#: ../js/ui/status/network.js:656 #: ../js/ui/status/network.js:662
msgid "Select a network" msgid "Select a network"
msgstr "ਨੈੱਟਵਰਕ ਚੁਣੋ" msgstr "ਨੈੱਟਵਰਕ ਚੁਣੋ"
#: ../js/ui/status/network.js:680 #: ../js/ui/status/network.js:686
msgid "No Networks" msgid "No Networks"
msgstr "ਕੋਈ ਨੈੱਟਵਰਕ ਨਹੀਂ" msgstr "ਕੋਈ ਨੈੱਟਵਰਕ ਨਹੀਂ"
#: ../js/ui/status/network.js:949 #: ../js/ui/status/network.js:955
msgid "Select Network" msgid "Select Network"
msgstr "ਨੈੱਟਵਰਕ ਚੁਣੋ" msgstr "ਨੈੱਟਵਰਕ ਚੁਣੋ"
#: ../js/ui/status/network.js:1034 #: ../js/ui/status/network.js:1040
msgid "Turn On" msgid "Turn On"
msgstr "ਚਾਲੂ ਕਰੋ" msgstr "ਚਾਲੂ ਕਰੋ"
#: ../js/ui/status/network.js:1167 #: ../js/ui/status/network.js:1173
msgid "VPN" msgid "VPN"
msgstr "VPN" msgstr "VPN"
#: ../js/ui/status/network.js:1307 #: ../js/ui/status/network.js:1313
msgid "Network Manager" msgid "Network Manager"
msgstr "ਨੈੱਟਵਰਕ ਮੈਨੇਜਰ" msgstr "ਨੈੱਟਵਰਕ ਮੈਨੇਜਰ"
#: ../js/ui/status/network.js:1346 #: ../js/ui/status/network.js:1352
msgid "Connection failed" msgid "Connection failed"
msgstr "ਕੁਨੈਕਸ਼ਨ ਫੇਲ੍ਹ ਹੈ" msgstr "ਕੁਨੈਕਸ਼ਨ ਫੇਲ੍ਹ ਹੈ"
#: ../js/ui/status/network.js:1347 #: ../js/ui/status/network.js:1353
msgid "Activation of network connection failed" msgid "Activation of network connection failed"
msgstr "ਨੈੱਟਵਰਕ ਕੁਨੈਕਸ਼ਨ ਦੀ ਐਕਟੀਵੇਸ਼ਨ ਫੇਲ੍ਹ ਹੋਈ" msgstr "ਨੈੱਟਵਰਕ ਕੁਨੈਕਸ਼ਨ ਦੀ ਐਕਟੀਵੇਸ਼ਨ ਫੇਲ੍ਹ ਹੋਈ"
@ -1525,28 +1474,22 @@ msgstr "ਪਾਵਰ ਸੈਟਿੰਗ"
msgid "Fully Charged" msgid "Fully Charged"
msgstr "ਪੂਰੀ ਚਾਰਜ" msgstr "ਪੂਰੀ ਚਾਰਜ"
#. 0 is reported when UPower does not have enough data
#. to estimate battery life
#. state is one of PENDING_CHARGING, PENDING_DISCHARGING
#: ../js/ui/status/power.js:69 ../js/ui/status/power.js:86 #: ../js/ui/status/power.js:69 ../js/ui/status/power.js:86
msgid "Estimating…" msgid "Estimating…"
msgstr "…ਅੰਦਾਜ਼ਾ ਲਾਇਆ ਜਾ ਰਿਹਾ ਹੈ" msgstr "…ਅੰਦਾਜ਼ਾ ਲਾਇਆ ਜਾ ਰਿਹਾ ਹੈ"
#. Translators: this is <hours>:<minutes> Remaining (<percentage>)
#: ../js/ui/status/power.js:77 #: ../js/ui/status/power.js:77
#, c-format #, javascript-format
msgid "%d\\u2236%02d Remaining (%d%%)" #| msgid "%d\\u2236%02d Remaining (%d%%)"
msgstr "%d\\u2236%02d ਬਾਕੀ (%d%%)" msgid "%d%02d Remaining (%d%%)"
msgstr "%d%02d ਬਾਕੀ (%d%%)"
#. Translators: this is <hours>:<minutes> Until Full (<percentage>)
#: ../js/ui/status/power.js:82 #: ../js/ui/status/power.js:82
#, c-format #, javascript-format
msgid "%d\\u2236%02d Until Full (%d%%)" #| msgid "%d\\u2236%02d Until Full (%d%%)"
msgstr "%d\\u2236%02d ਪੂਰਾ ਹੋਣ ਲਈ (%d%%)" msgid "%d%02d Until Full (%d%%)"
msgstr "%d%02d ਪੂਰੀ ਹੋਣ ਲਈ (%d%%)"
#. 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:43 #: ../js/ui/status/rfkill.js:43
msgid "Airplane Mode" msgid "Airplane Mode"
msgstr "ਏਅਰਪਲੇਨ ਮੋਡ" msgstr "ਏਅਰਪਲੇਨ ਮੋਡ"
@ -1604,7 +1547,7 @@ msgid "Search"
msgstr "ਖੋਜ" msgstr "ਖੋਜ"
#: ../js/ui/wanda.js:77 #: ../js/ui/wanda.js:77
#, c-format #, javascript-format
msgid "" msgid ""
"Sorry, no wisdom for you today:\n" "Sorry, no wisdom for you today:\n"
"%s" "%s"
@ -1613,12 +1556,12 @@ msgstr ""
"%s " "%s "
#: ../js/ui/wanda.js:81 #: ../js/ui/wanda.js:81
#, c-format #, javascript-format
msgid "%s the Oracle says" msgid "%s the Oracle says"
msgstr "%s ਓਰੇਕਲ ਨੇ ਕਿਹਾ" msgstr "%s ਓਰੇਕਲ ਨੇ ਕਿਹਾ"
#: ../js/ui/windowAttentionHandler.js:19 #: ../js/ui/windowAttentionHandler.js:19
#, c-format #, javascript-format
msgid "'%s' is ready" msgid "'%s' is ready"
msgstr "'%s' ਤਿਆਰ ਹੈ" msgstr "'%s' ਤਿਆਰ ਹੈ"
@ -1628,7 +1571,7 @@ msgstr "ਕੀ ਤੁਸੀਂ ਇਹ ਡਿਸਪਲੇਅ ਸੈਟਿੰਗ
#. 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:75 #: ../js/ui/windowManager.js:75
msgid "Revert Settings" msgid "Revert Settings"
msgstr "ਸੈਟਿੰਗ ਵਾਪਿਸ ਲਵੋ" msgstr "ਸੈਟਿੰਗ ਵਾਪਿਸ ਲਵੋ"
@ -1638,7 +1581,7 @@ msgid "Keep Changes"
msgstr "ਬਦਲਾਅ ਲਾਗੂ ਰੱਖੋ" msgstr "ਬਦਲਾਅ ਲਾਗੂ ਰੱਖੋ"
#: ../js/ui/windowManager.js:97 #: ../js/ui/windowManager.js:97
#, c-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] "ਸੈਟਿੰਗ ਬਦਲਾਅ ਨੂੰ %d ਸਕਿੰਟ ਵਿੱਚ ਵਾਪਿਸ ਕੀਤਾ ਜਾਵੇਗਾ" msgstr[0] "ਸੈਟਿੰਗ ਬਦਲਾਅ ਨੂੰ %d ਸਕਿੰਟ ਵਿੱਚ ਵਾਪਿਸ ਕੀਤਾ ਜਾਵੇਗਾ"
@ -1703,6 +1646,23 @@ msgstr "ਪਾਸਵਰਡ ਖਾਲੀ ਨਹੀਂ ਹੋ ਸਕਦਾ ਹੈ"
msgid "Authentication dialog was dismissed by the user" msgid "Authentication dialog was dismissed by the user"
msgstr "ਪਰਮਾਣਕਿਤਾ ਡਾਈਲਾਗ ਯੂਜ਼ਰ ਵਲੋਂ ਰੱਦ ਕੀਤਾ" msgstr "ਪਰਮਾਣਕਿਤਾ ਡਾਈਲਾਗ ਯੂਜ਼ਰ ਵਲੋਂ ਰੱਦ ਕੀਤਾ"
#~ msgid "There was an error loading the preferences dialog for %s:"
#~ msgstr "%s ਲਈ ਪਸੰਦ ਡਾਈਲਾਗ ਨੂੰ ਲੋਡ ਕਰਨ ਦੌਰਾਨ ਸਮੱਸਿਆ:"
#~ msgid "Extension"
#~ msgstr "ਇਕਸਟੈਸ਼ਨ"
#~ msgctxt "event list time"
#~ msgid "%H\\u2236%M"
#~ msgstr "%H\\u2236%M"
#~ msgctxt "event list time"
#~ msgid "%l\\u2236%M\\u2009%p"
#~ msgstr "%l\\u2236%M\\u2009%p"
#~ msgid "Show Keyboard Layout"
#~ msgstr "ਕੀਬੋਰਡ ਲੇਆਉਟ ਵੇਖਾਓ"
#~ msgid "Settings Menu" #~ msgid "Settings Menu"
#~ msgstr "ਸੈਟਿੰਗ ਮੇਨੂ" #~ msgstr "ਸੈਟਿੰਗ ਮੇਨੂ"

113
po/pl.po
View File

@ -12,8 +12,8 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: gnome-shell\n" "Project-Id-Version: gnome-shell\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2013-09-23 20:34+0200\n" "POT-Creation-Date: 2013-10-10 23:41+0200\n"
"PO-Revision-Date: 2013-09-23 20:37+0200\n" "PO-Revision-Date: 2013-10-10 23:42+0200\n"
"Last-Translator: Piotr Drąg <piotrdrag@gmail.com>\n" "Last-Translator: Piotr Drąg <piotrdrag@gmail.com>\n"
"Language-Team: Polish <gnomepl@aviary.pl>\n" "Language-Team: Polish <gnomepl@aviary.pl>\n"
"Language: pl\n" "Language: pl\n"
@ -289,7 +289,7 @@ msgstr ""
#: ../js/gdm/authPrompt.js:145 ../js/ui/components/networkAgent.js:136 #: ../js/gdm/authPrompt.js:145 ../js/ui/components/networkAgent.js:136
#: ../js/ui/components/polkitAgent.js:161 ../js/ui/endSessionDialog.js:351 #: ../js/ui/components/polkitAgent.js:161 ../js/ui/endSessionDialog.js:351
#: ../js/ui/extensionDownloader.js:195 ../js/ui/shellMountOperation.js:399 #: ../js/ui/extensionDownloader.js:195 ../js/ui/shellMountOperation.js:399
#: ../js/ui/status/bluetooth.js:222 ../js/ui/status/network.js:686 #: ../js/ui/status/bluetooth.js:222 ../js/ui/status/network.js:728
msgid "Cancel" msgid "Cancel"
msgstr "Anuluj" msgstr "Anuluj"
@ -337,15 +337,15 @@ msgstr "Błąd uwierzytelniania"
msgid "(or swipe finger)" msgid "(or swipe finger)"
msgstr "(lub przeciągnięcie palca)" msgstr "(lub przeciągnięcie palca)"
#: ../js/misc/util.js:98 #: ../js/misc/util.js:115
msgid "Command not found" msgid "Command not found"
msgstr "Nie odnaleziono polecenia" msgstr "Nie odnaleziono polecenia"
#: ../js/misc/util.js:131 #: ../js/misc/util.js:148
msgid "Could not parse command:" msgid "Could not parse command:"
msgstr "Nie można przetworzyć polecenia:" msgstr "Nie można przetworzyć polecenia:"
#: ../js/misc/util.js:139 #: ../js/misc/util.js:156
#, javascript-format #, javascript-format
msgid "Execution of '%s' failed:" msgid "Execution of '%s' failed:"
msgstr "Wykonanie polecenia \"%s\" się nie powiodło:" msgstr "Wykonanie polecenia \"%s\" się nie powiodło:"
@ -384,7 +384,7 @@ msgstr "Program %s został dodany do ulubionych."
msgid "%s has been removed from your favorites." msgid "%s has been removed from your favorites."
msgstr "Program %s został usunięty z ulubionych." msgstr "Program %s został usunięty z ulubionych."
#: ../js/ui/backgroundMenu.js:19 ../js/ui/panel.js:807 #: ../js/ui/backgroundMenu.js:19 ../js/ui/panel.js:808
#: ../js/ui/status/system.js:325 #: ../js/ui/status/system.js:325
msgid "Settings" msgid "Settings"
msgstr "Ustawienia" msgstr "Ustawienia"
@ -575,16 +575,16 @@ msgstr "Otwórz za pomocą %s"
msgid "Eject" msgid "Eject"
msgstr "Wysuń" msgstr "Wysuń"
#: ../js/ui/components/keyring.js:91 ../js/ui/components/polkitAgent.js:280 #: ../js/ui/components/keyring.js:89 ../js/ui/components/polkitAgent.js:280
msgid "Password:" msgid "Password:"
msgstr "Hasło:" msgstr "Hasło:"
#: ../js/ui/components/keyring.js:110 #: ../js/ui/components/keyring.js:108
msgid "Type again:" msgid "Type again:"
msgstr "Proszę wpisać ponownie:" msgstr "Proszę wpisać ponownie:"
#: ../js/ui/components/networkAgent.js:131 ../js/ui/status/network.js:112 #: ../js/ui/components/networkAgent.js:131 ../js/ui/status/network.js:133
#: ../js/ui/status/network.js:275 ../js/ui/status/network.js:689 #: ../js/ui/status/network.js:296 ../js/ui/status/network.js:731
msgid "Connect" msgid "Connect"
msgstr "Połącz" msgstr "Połącz"
@ -1087,9 +1087,12 @@ msgstr "Wyświetl błędy"
msgid "Enabled" msgid "Enabled"
msgstr "Włączone" msgstr "Włączone"
#. Translators: this is for a network device that cannot be activated
#. because it's disabled by rfkill (airplane mode) */
#. translators: #. translators:
#. * The device has been disabled #. * The device has been disabled
#: ../js/ui/lookingGlass.js:765 ../src/gvc/gvc-mixer-control.c:1830 #: ../js/ui/lookingGlass.js:765 ../js/ui/status/network.js:473
#: ../src/gvc/gvc-mixer-control.c:1830
msgid "Disabled" msgid "Disabled"
msgstr "Wyłączone" msgstr "Wyłączone"
@ -1121,27 +1124,31 @@ msgstr "Otwórz"
msgid "Remove" msgid "Remove"
msgstr "Usuń" msgstr "Usuń"
#: ../js/ui/messageTray.js:1513 #: ../js/ui/messageTray.js:1530
msgid "Notifications"
msgstr "Powiadomienia"
#: ../js/ui/messageTray.js:1537
msgid "Clear Messages" msgid "Clear Messages"
msgstr "Wyczyść wiadomości" msgstr "Wyczyść wiadomości"
#: ../js/ui/messageTray.js:1540 #: ../js/ui/messageTray.js:1564
msgid "Notification Settings" msgid "Notification Settings"
msgstr "Ustawienia powiadomień" msgstr "Ustawienia powiadomień"
#: ../js/ui/messageTray.js:1559 #: ../js/ui/messageTray.js:1617
msgid "Tray Menu" msgid "Tray Menu"
msgstr "Menu obszaru powiadamiania" msgstr "Menu obszaru powiadamiania"
#: ../js/ui/messageTray.js:1775 #: ../js/ui/messageTray.js:1833
msgid "No Messages" msgid "No Messages"
msgstr "Brak wiadomości" msgstr "Brak wiadomości"
#: ../js/ui/messageTray.js:1813 #: ../js/ui/messageTray.js:1871
msgid "Message Tray" msgid "Message Tray"
msgstr "Obszar powiadamiania" msgstr "Obszar powiadamiania"
#: ../js/ui/messageTray.js:2788 #: ../js/ui/messageTray.js:2846
msgid "System Information" msgid "System Information"
msgstr "Informacje systemowe" msgstr "Informacje systemowe"
@ -1184,7 +1191,7 @@ msgstr "Zakończ"
msgid "Activities" msgid "Activities"
msgstr "Podgląd" msgstr "Podgląd"
#: ../js/ui/panel.js:903 #: ../js/ui/panel.js:904
msgid "Top Bar" msgid "Top Bar"
msgstr "Górny pasek" msgstr "Górny pasek"
@ -1230,11 +1237,11 @@ msgstr "Nie można zablokować"
msgid "Lock was blocked by an application" msgid "Lock was blocked by an application"
msgstr "Blokowanie zostało zablokowane przez program" msgstr "Blokowanie zostało zablokowane przez program"
#: ../js/ui/searchDisplay.js:447 #: ../js/ui/searchDisplay.js:448
msgid "Searching…" msgid "Searching…"
msgstr "Wyszukiwanie…" msgstr "Wyszukiwanie…"
#: ../js/ui/searchDisplay.js:491 #: ../js/ui/searchDisplay.js:492
msgid "No results." msgid "No results."
msgstr "Brak wyników." msgstr "Brak wyników."
@ -1312,8 +1319,8 @@ msgstr "Duży tekst"
msgid "Bluetooth" msgid "Bluetooth"
msgstr "Bluetooth" msgstr "Bluetooth"
#: ../js/ui/status/bluetooth.js:30 ../js/ui/status/network.js:112 #: ../js/ui/status/bluetooth.js:30 ../js/ui/status/network.js:133
#: ../js/ui/status/network.js:1034 ../js/ui/status/rfkill.js:46 #: ../js/ui/status/network.js:1085 ../js/ui/status/rfkill.js:46
msgid "Turn Off" msgid "Turn Off"
msgstr "Wyłącz" msgstr "Wyłącz"
@ -1407,83 +1414,95 @@ msgstr "Jasność"
msgid "<unknown>" msgid "<unknown>"
msgstr "<nieznane>" msgstr "<nieznane>"
#: ../js/ui/status/network.js:203 ../js/ui/status/network.js:1049 #: ../js/ui/status/network.js:223 ../js/ui/status/network.js:380
#: ../js/ui/status/network.js:1106
msgid "Off" msgid "Off"
msgstr "Wyłączone" msgstr "Wyłączone"
#: ../js/ui/status/network.js:276 ../js/ui/status/network.js:955
#: ../js/ui/status/rfkill.js:49
msgid "Network Settings"
msgstr "Ustawienia sieci"
#. 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:364 #: ../js/ui/status/network.js:386
msgid "unmanaged" msgid "unmanaged"
msgstr "niezarządzane" msgstr "niezarządzane"
#: ../js/ui/status/network.js:366 #: ../js/ui/status/network.js:388
msgid "disconnecting..." msgid "disconnecting..."
msgstr "rozłączanie…" msgstr "rozłączanie…"
#: ../js/ui/status/network.js:372 ../js/ui/status/network.js:1100 #: ../js/ui/status/network.js:394 ../js/ui/status/network.js:1160
msgid "connecting..." msgid "connecting..."
msgstr "łączenie…" msgstr "łączenie…"
#. 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:375 ../js/ui/status/network.js:1103 #: ../js/ui/status/network.js:397 ../js/ui/status/network.js:1163
msgid "authentication required" msgid "authentication required"
msgstr "wymagane jest uwierzytelnienie" msgstr "wymagane jest uwierzytelnienie"
#. 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:383 #: ../js/ui/status/network.js:405
msgid "firmware missing" msgid "firmware missing"
msgstr "brak oprogramowania sprzętowego" msgstr "brak oprogramowania sprzętowego"
#. 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:387 #: ../js/ui/status/network.js:409
msgid "unavailable" msgid "unavailable"
msgstr "niedostępne" msgstr "niedostępne"
#: ../js/ui/status/network.js:389 ../js/ui/status/network.js:1105 #: ../js/ui/status/network.js:411 ../js/ui/status/network.js:1165
msgid "connection failed" msgid "connection failed"
msgstr "połączenie się nie powiodło" msgstr "połączenie się nie powiodło"
#: ../js/ui/status/network.js:654 #: ../js/ui/status/network.js:427 ../js/ui/status/network.js:513
msgid "Mobile Broadband Settings"
msgstr "Ustawienia sieci komórkowej"
#: ../js/ui/status/network.js:469 ../js/ui/status/network.js:1104
msgid "Hardware Disabled"
msgstr "Sprzęt jest wyłączony"
#: ../js/ui/status/network.js:696
msgid "Wi-Fi Networks" msgid "Wi-Fi Networks"
msgstr "Sieci Wi-Fi" msgstr "Sieci Wi-Fi"
#: ../js/ui/status/network.js:656 #: ../js/ui/status/network.js:698
msgid "Select a network" msgid "Select a network"
msgstr "Wybór sieci" msgstr "Wybór sieci"
#: ../js/ui/status/network.js:680 #: ../js/ui/status/network.js:722
msgid "No Networks" msgid "No Networks"
msgstr "Brak sieci" msgstr "Brak sieci"
#: ../js/ui/status/network.js:949 #: ../js/ui/status/network.js:991
msgid "Select Network" msgid "Select Network"
msgstr "Wybierz sieć" msgstr "Wybierz sieć"
#: ../js/ui/status/network.js:1034 #: ../js/ui/status/network.js:997
msgid "Wi-Fi Settings"
msgstr "Ustawienia sieci Wi-Fi"
#: ../js/ui/status/network.js:1085
msgid "Turn On" msgid "Turn On"
msgstr "Włącz" msgstr "Włącz"
#: ../js/ui/status/network.js:1167 #: ../js/ui/status/network.js:1108
msgid "Not Connected"
msgstr "Nie połączono"
#: ../js/ui/status/network.js:1228
msgid "VPN" msgid "VPN"
msgstr "VPN" msgstr "VPN"
#: ../js/ui/status/network.js:1307 #: ../js/ui/status/network.js:1368
msgid "Network Manager" msgid "Network Manager"
msgstr "Menedżer sieci" msgstr "Menedżer sieci"
#: ../js/ui/status/network.js:1346 #: ../js/ui/status/network.js:1407
msgid "Connection failed" msgid "Connection failed"
msgstr "Połączenie się nie powiodło" msgstr "Połączenie się nie powiodło"
#: ../js/ui/status/network.js:1347 #: ../js/ui/status/network.js:1408
msgid "Activation of network connection failed" msgid "Activation of network connection failed"
msgstr "Aktywacja połączenia sieciowego się nie powiodła" msgstr "Aktywacja połączenia sieciowego się nie powiodła"
@ -1521,6 +1540,10 @@ msgstr "Tryb samolotowy"
msgid "On" msgid "On"
msgstr "Włączone" msgstr "Włączone"
#: ../js/ui/status/rfkill.js:49
msgid "Network Settings"
msgstr "Ustawienia sieci"
#: ../js/ui/status/system.js:305 #: ../js/ui/status/system.js:305
msgid "Switch User" msgid "Switch User"
msgstr "Przełącz użytkownika" msgstr "Przełącz użytkownika"

519
po/pt.po

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

1097
po/ru.po

File diff suppressed because it is too large Load Diff

519
po/sk.po

File diff suppressed because it is too large Load Diff

395
po/sl.po

File diff suppressed because it is too large Load Diff

571
po/sr.po

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

478
po/tg.po

File diff suppressed because it is too large Load Diff

Some files were not shown because too many files have changed in this diff Show More