Compare commits

...

201 Commits

Author SHA1 Message Date
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
46e0e4430d Bump version to 3.10.0.1
Update NEWS.
2013-09-24 16:04:57 -04:00
609a31ea46 loginManager: fix versionCompare function
It's important to compare the version components as integers,
not strings, so "10" evaulates as greater than "5"

This fixes the login screen in gnome 3.10.

https://bugzilla.gnome.org/show_bug.cgi?id=708691
2013-09-24 14:22:09 -04:00
3e99eb10d1 Updated Norwegian bokmål translation 2013-09-24 19:38:41 +02:00
b9d935af0c ActivitiesButton: close the dummy menu when activating the button
We need to close the menu to make sure that any grabs held by
the PopupMenuManager are released, and events are properly delivered.

https://bugzilla.gnome.org/show_bug.cgi?id=707852
2013-09-24 16:28:31 +02:00
31d3e82aa8 Updated Czech translation 2013-09-24 16:10:40 +02:00
dfdc17197b Punjabi Translation updated by Aman 2013-09-24 07:54:25 -05:00
62b965b4b7 Updated Spanish translation 2013-09-24 14:39:14 +02:00
ba221abea5 Updated Belarusian translation. 2013-09-24 15:03:09 +03:00
aa026c7134 Updated Traditional Chinese translation(Hong Kong and Taiwan) 2013-09-24 19:13:45 +08:00
496cfff97a Assamese translation updated 2013-09-24 14:25:28 +05:30
ccaa7f5f3e Updated Russian translation 2013-09-24 12:18:45 +04:00
f492d21c70 Update Kazakh translation 2013-09-24 06:37:02 +06:00
1983541f8c Bump version to 3.10.0
Update NEWS.
2013-09-23 23:33:14 +02:00
e4cb3672b9 Updated Galician translations 2013-09-23 22:24:36 +02:00
a06a78a9c1 aggregate-menu: Increase width
Add 20px more width to make longer strings (translations) fit better.

https://bugzilla.gnome.org/show_bug.cgi?id=708472
2013-09-23 22:23:46 +02:00
2ba91ad837 Updated Slovenian translation 2013-09-23 21:18:03 +02:00
66eb3ea723 Updated Polish translation 2013-09-23 20:38:24 +02:00
d30e992b20 Updated Polish translation 2013-09-23 20:35:58 +02:00
c6a342563f Updated Danish translation 2013-09-23 19:43:15 +02:00
fd584eda05 l10n: Update Japanese translation 2013-09-24 00:01:51 +09:00
4301506590 Updated Hebrew translation
Signed-off-by: Yosef Or Boczko <yoseforb@gmail.com>
2013-09-23 17:59:51 +03:00
88f7c3a970 Updated Indonesian translation 2013-09-23 21:25:49 +07:00
f21a9f0cc2 [l10n] Updated Italian translation. 2013-09-23 16:21:33 +02:00
2233c2e618 Updated Brazilian Portuguese translation 2013-09-23 10:56:43 -03:00
6264419bd4 Update French translation 2013-09-23 15:48:18 +02:00
b62effb8fa add missing translation markers around string in schema 2013-09-23 15:35:06 +02:00
c8a07dd612 messageTray: Fix condition for adding the tray to CtrlAltTab
With the current condition, we wrongly add the message tray to
CtrlAltTab if we start up locked or as greeter.

https://bugzilla.gnome.org/show_bug.cgi?id=708380
2013-09-23 13:32:17 +02:00
02c99e4b25 authPrompt: Clear _queryingService on verification failure
A conversation is finished after failing, and we are expecting a new
one to be started shortly after. However if we encounter an existing
reference to a previously set _queryingService, we will clear the
password entry, which might already contain a partially typed password
at that point. The behavior does make sense in the case of conflicting
conversations, but in the failure case it is both unexpected and
annoying, so clear _queryingService early to prevent this.

https://bugzilla.gnome.org/show_bug.cgi?id=708186
2013-09-23 13:32:17 +02:00
1242a16265 keyring: Don't unregister the prompt when disabled
gnome-keyring provides a fallback in case our builtin prompt fails
to register, so keyring dialogs may still pop up even when they
are supposed to be disabled.
Instead, keep the prompt registered but cancel requests immediately
while disabled.

https://bugzilla.gnome.org/show_bug.cgi?id=708187
2013-09-23 13:32:17 +02:00
a89fd17b8e shell: Make KeyringPrompt.cancel() callable from signal handlers
gcr/gnome-keyring don't handle the case where prompt_password_async()/
prompt_confirm_async() return their result from within the function
very well (or rather: break badly). Calling gcr_prompt_close() instead
is safe, but to avoid these kind of errors in the future, modify
shell_keyring_prompt_cancel() to work as expected in this case.

https://bugzilla.gnome.org/show_bug.cgi?id=708187
2013-09-23 13:32:17 +02:00
3d5e7bd6f1 Updated Indonesian translation 2013-09-23 09:40:56 +07:00
cefcb89487 Updated Portuguese translation 2013-09-22 23:50:24 +01:00
005272bde9 bluetooth: Actually add the menu item to the bluetooth menu
https://bugzilla.gnome.org/show_bug.cgi?id=708541
2013-09-22 22:22:49 +02:00
491e60e4f2 Updated Galician translations 2013-09-22 19:49:52 +02:00
e5f72fd302 Updated Hebrew translation 2013-09-22 13:58:19 +03:00
5f21b100b8 Updated Ukrainian 2013-09-22 11:28:53 +03:00
1a4c7629c5 Translate 'suspend' as 'pauzestand' for consistency 2013-09-21 23:27:43 +02:00
d21734ee47 Updated Dutch translation 2013-09-21 23:04:37 +02:00
e140e2c367 Updated Latvian translatio 2013-09-21 21:53:36 +03:00
7ced1f5b54 focusCaretTracker: Lower AT-SPI's timeout values
Have AT-SPI calls time out after 250ms, to mitigate the effect of a
deadlock when querying another application that is trying to query
gnome-shell.

https://bugzilla.gnome.org/show_bug.cgi?id=708387
2013-09-21 04:51:42 -05:00
54b028ee3e Updated Ukrainian 2013-09-21 11:42:12 +03:00
703336e1ea Updated Esperanto translation 2013-09-21 09:54:37 +02:00
9e936252ae Updated Polish translation 2013-09-20 17:44:36 +02:00
fc71a0f081 Updated Polish translation 2013-09-20 17:29:48 +02:00
86c72fa15d Updated Traditional Chinese translation(Hong Kong and Taiwan) 2013-09-20 13:43:49 +08:00
6ba5af1e9e Updated Romanian Translation 2013-09-19 21:54:35 +02:00
33a4f59cfb popupMenu: Center the labels in submenu items
https://bugzilla.gnome.org/show_bug.cgi?id=708330
2013-09-19 12:40:43 -04:00
39134f0d9b networkAgent: Don't allow ellipsization of Password label
We don't want password entries to grow when entering more characters
that fit the available width; as labels' ClutterText ellipsizes by
default, the password labels allow entries to grow by shrinking.
Setting the appropriate ellipsize mode fixes this.

https://bugzilla.gnome.org/show_bug.cgi?id=708324
2013-09-19 07:53:57 +02:00
30e7440851 keyring: Don't allow ellipsization of Password label
We don't want the password entry to grow when entering more characters
that fit the available width; as labels' ClutterText ellipsizes by
default, the password label allows the entry to grow by shrinking.
Setting the appropriate ellipsize mode fixes this.

https://bugzilla.gnome.org/show_bug.cgi?id=708324
2013-09-19 07:53:57 +02:00
be1a7bac7c networkAgent: Port to ClutterTableLayout
We don't make use of any functionality StTable provides over
ClutterTableLayout, so port all users to the Clutter layout
in order to remove our own copy of the code.

https://bugzilla.gnome.org/show_bug.cgi?id=703833
2013-09-19 07:53:57 +02:00
fb52a93a28 keyring: Port to ClutterTableLayout
We don't make use of any functionality StTable provides over
ClutterTableLayout, so port all users to the Clutter layout
in order to remove our own copy of the code.

https://bugzilla.gnome.org/show_bug.cgi?id=703833
2013-09-19 07:53:56 +02:00
efdf1ff755 main: Close runDialog as necessary on session mode changes
We already do this for looking glass, but it makes even less sense
for the normal run dialog - if a mode sets runDialog to false, the
intention is to not allow executing aribitrary commands.

https://bugzilla.gnome.org/show_bug.cgi?id=708218
2013-09-19 07:53:56 +02:00
2c00dad211 network: Make sure to resync when the activating connection changes
Otherwise, we may be left with a stale activating connection if a
connection is activating, but doesn't fully activate for whatever
reason.

https://bugzilla.gnome.org/show_bug.cgi?id=708322
2013-09-18 17:15:01 -04:00
c23786c73e St: Fix fade effect
Commit 4095a58eb9 introduced a
regression, since we have to take into account four cases,
top, bottom, right, and left, and that can't be merged into
two like that commit did.
So fix it to make fade effect works again.

https://bugzilla.gnome.org/show_bug.cgi?id=708256
2013-09-18 20:01:49 +02:00
7f1b07b76f Revert "Background: Drop "saturation" related source"
This reverts commit 2f35ad6e65.
2013-09-18 13:54:54 +02:00
2f35ad6e65 Background: Drop "saturation" related source
"saturation" was removed from MetaBackground in mutter with
https://git.gnome.org/browse/mutter/commit/?id=0e589061
2013-09-18 13:49:35 +02:00
159c7d34c7 l10n: Update Japanese translation 2013-09-18 20:41:47 +09:00
fe8e990ed7 Punjabi Translation updated by Aman 2013-09-17 22:08:46 -05:00
1fb9b18cb6 Updated Belarusian translation. 2013-09-17 22:46:22 +03:00
5c2586127b Update gvc
A translator accidentally undid this.
2013-09-17 11:54:44 -04:00
661b266b45 Updated Esperanto translation
Reviewed by Ken Price
2013-09-17 10:11:50 -04:00
98af044196 Updated Romanian Translation 2013-09-17 09:55:18 +02:00
93 changed files with 14431 additions and 17080 deletions

85
NEWS
View File

@ -1,3 +1,88 @@
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
=========
* Fix login screen [Ray; #708691]
Contributors:
Ray Strode, Giovanni Campagna, Jasper St. Pierree
Translations:
Kjartan Maraas [nb], Marek Černocký [cs], A S Alam [pa], Daniel Mustieles [es],
Ihar Hrachyshka [be], Chao-Hsiung Liao [zh_HK], Nilamdyuti Goswami [as],
Yuri Myasoedov [ru], Baurzhan Muftakhidinov [kk]
3.10.0
======
* Fix fade effect in ScrollViews [Carlos; #708256]
* network: Resync when activating connection changes [Jasper; #708322]
* Close run dialog when the screen locks [Florian; #708218]
* Fix entry growing out of password dialogs [Florian; #708324, #703833]
* Vertically center labels in submenu items [Jasper; #708330]
* https://bugzilla.gnome.org/show_bug.cgi?id=708387 [Mike; #708387]
* Fix bluetooth icon not being added to status menu [Jasper; #708541]
* Fix GNOME 2 keyring dialogs appearing on lock screen [Florian; #708187]
* Fix passwords being cleared twice when authentication fails [Florian; #708186]
* Fix message tray appearing in a11y popup on login screen [Florian; #708380]
* Increase width of aggregate menu popup [Adel; #708472]
Contributors:
Adel Gadllah, Mike Gorse, Ryan Lortie, Florian Müllner, Frédéric Péters,
Carlos Soriano, Jasper St. Pierre, Rico Tzschichholz
Translations:
Daniel Șerbănescu [ro], Ryan Lortie [eo], Ihar Hrachyshka [be],
A S Alam [pa], Jiro Matsuzawa [ja], Chao-Hsiung Liao [zh_HK, zh_TW],
Piotr Drąg [pl], Kristjan SCHMIDT [eo], Daniel Korostil [uk],
Rūdolfs Mazurs [lv], Reinout van Schouwen [nl], Yosef Or Boczko [he],
Fran Diéguez [gl], António Lima [pt], Andika Triwidada [id],
Alexandre Franke [fr], Rafael Ferreira [pt_BR], Milo Casagrande [it],
Kenneth Nielsen [da], Matej Urbančič [sl]
3.9.92 3.9.92
====== ======
* Don't show page indicators if there's only one page [Florian; #707363] * Don't show page indicators if there's only one page [Florian; #707363]

View File

@ -1,5 +1,5 @@
AC_PREREQ(2.63) AC_PREREQ(2.63)
AC_INIT([gnome-shell],[3.9.92],[https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-shell],[gnome-shell]) AC_INIT([gnome-shell],[3.10.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])
@ -59,8 +59,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.9.92 MUTTER_MIN_VERSION=3.10.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

@ -45,8 +45,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>
@ -216,10 +223,10 @@
<key name="focus-change-on-pointer-rest" type="b"> <key name="focus-change-on-pointer-rest" type="b">
<default>true</default> <default>true</default>
<summary>Delay focus changes in mouse mode until the pointer stops moving</summary> <_summary>Delay focus changes in mouse mode until the pointer stops moving</_summary>
<description> <_description>
This key overrides the key in org.gnome.mutter when running GNOME Shell. This key overrides the key in org.gnome.mutter when running GNOME Shell.
</description> </_description>
</key> </key>
</schema> </schema>
</schemalist> </schemalist>

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%;
} }
@ -642,7 +642,7 @@ StScrollBar StButton#vhandle:active {
} }
.aggregate-menu { .aggregate-menu {
width: 340px; width: 360px;
} }
.aggregate-menu .popup-menu-icon { .aggregate-menu .popup-menu-icon {
@ -693,7 +693,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 +703,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 +947,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;
@ -2268,7 +2273,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 +2317,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 +2330,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 +2375,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;
} }
@ -2486,10 +2492,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

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 \

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;
@ -244,6 +250,7 @@ const AuthPrompt = new Lang.Class({
}, },
_onVerificationFailed: function() { _onVerificationFailed: function() {
this._queryingService = null;
this.clear(); this.clear();
this.updateSensitivity(true); this.updateSensitivity(true);
@ -443,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

@ -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() {

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

@ -0,0 +1,62 @@
// -*- 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 = <interface name='org.ovirt.vdsm.Credentials'>
<signal name="UserAuthenticated">
<arg type="s" name="token"/>
</signal>
</interface>;
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

@ -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

@ -72,8 +72,10 @@ function versionCompare(required, reference) {
reference = reference.split('.'); reference = reference.split('.');
for (let i = 0; i < required.length; i++) { for (let i = 0; i < required.length; i++) {
if (required[i] != reference[i]) let requiredInt = parseInt(required[i]);
return required[i] < reference[i]; let referenceInt = parseInt(reference[i]);
if (requiredInt != referenceInt)
return requiredInt < referenceInt;
} }
return true; return true;

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

@ -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

@ -319,9 +319,9 @@ const Background = new Lang.Class({
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 +362,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() {

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

@ -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,
@ -80,23 +78,26 @@ const KeyringDialog = new Lang.Class({
}, },
_buildControlTable: function() { _buildControlTable: function() {
let table = new St.Table({ style_class: 'keyring-dialog-control-table' }); let layout = new Clutter.TableLayout();
let table = new St.Widget({ style_class: 'keyring-dialog-control-table',
layout_manager: layout });
layout.hookup_style(table);
let row = 0; let row = 0;
if (this.prompt.password_visible) { if (this.prompt.password_visible) {
let label = new St.Label(({ style_class: 'prompt-dialog-password-label' })); let label = new St.Label({ style_class: 'prompt-dialog-password-label' });
label.set_text(_("Password:")); label.set_text(_("Password:"));
table.add(label, { row: row, col: 0, label.clutter_text.ellipsize = Pango.EllipsizeMode.NONE;
x_expand: false, x_fill: true, layout.pack(label, 0, row);
x_align: St.Align.START, layout.child_set(label, { x_expand: false, y_fill: false,
y_fill: false, y_align: St.Align.MIDDLE }); x_align: Clutter.TableAlignment.START });
this._passwordEntry = new St.Entry({ style_class: 'prompt-dialog-password-entry', this._passwordEntry = new St.Entry({ style_class: 'prompt-dialog-password-entry',
text: '', text: '',
can_focus: true}); can_focus: true });
this._passwordEntry.clutter_text.set_password_char('\u25cf'); // ● U+25CF BLACK CIRCLE this._passwordEntry.clutter_text.set_password_char('\u25cf'); // ● U+25CF BLACK CIRCLE
ShellEntry.addContextMenu(this._passwordEntry, { isPassword: true }); ShellEntry.addContextMenu(this._passwordEntry, { isPassword: true });
this._passwordEntry.clutter_text.connect('activate', Lang.bind(this, this._onPasswordActivate)); this._passwordEntry.clutter_text.connect('activate', Lang.bind(this, this._onPasswordActivate));
table.add(this._passwordEntry, { row: row, col: 1, x_expand: true, x_fill: true, x_align: St.Align.START }); layout.pack(this._passwordEntry, 1, row);
row++; row++;
} else { } else {
this._passwordEntry = null; this._passwordEntry = null;
@ -105,17 +106,16 @@ const KeyringDialog = new Lang.Class({
if (this.prompt.confirm_visible) { if (this.prompt.confirm_visible) {
var label = new St.Label(({ style_class: 'prompt-dialog-password-label' })); var label = new St.Label(({ style_class: 'prompt-dialog-password-label' }));
label.set_text(_("Type again:")); label.set_text(_("Type again:"));
table.add(label, { row: row, col: 0, layout.pack(label, 0, row);
x_expand: false, x_fill: true, layout.child_set(label, { x_expand: false, y_fill: false,
x_align: St.Align.START, x_align: Clutter.TableAlignment.START });
y_fill: false, y_align: St.Align.MIDDLE });
this._confirmEntry = new St.Entry({ style_class: 'prompt-dialog-password-entry', this._confirmEntry = new St.Entry({ style_class: 'prompt-dialog-password-entry',
text: '', text: '',
can_focus: true}); can_focus: true });
this._confirmEntry.clutter_text.set_password_char('\u25cf'); // ● U+25CF BLACK CIRCLE this._confirmEntry.clutter_text.set_password_char('\u25cf'); // ● U+25CF BLACK CIRCLE
ShellEntry.addContextMenu(this._confirmEntry, { isPassword: true }); ShellEntry.addContextMenu(this._confirmEntry, { isPassword: true });
this._confirmEntry.clutter_text.connect('activate', Lang.bind(this, this._onConfirmActivate)); this._confirmEntry.clutter_text.connect('activate', Lang.bind(this, this._onConfirmActivate));
table.add(this._confirmEntry, { row: row, col: 1, x_expand: true, x_fill: true, x_align: St.Align.START }); layout.pack(this._confirmEntry, 1, row);
row++; row++;
} else { } else {
this._confirmEntry = null; this._confirmEntry = null;
@ -128,14 +128,14 @@ const KeyringDialog = new Lang.Class({
let choice = new CheckBox.CheckBox(); let choice = new CheckBox.CheckBox();
this.prompt.bind_property('choice-label', choice.getLabelActor(), 'text', GObject.BindingFlags.SYNC_CREATE); this.prompt.bind_property('choice-label', choice.getLabelActor(), 'text', GObject.BindingFlags.SYNC_CREATE);
this.prompt.bind_property('choice-chosen', choice.actor, 'checked', GObject.BindingFlags.SYNC_CREATE | GObject.BindingFlags.BIDIRECTIONAL); this.prompt.bind_property('choice-chosen', choice.actor, 'checked', GObject.BindingFlags.SYNC_CREATE | GObject.BindingFlags.BIDIRECTIONAL);
table.add(choice.actor, { row: row, col: 1, x_expand: false, x_fill: true, x_align: St.Align.START }); layout.pack(choice.actor, 1, row);
row++; row++;
} }
let warning = new St.Label({ style_class: 'prompt-dialog-error-label' }); let warning = new St.Label({ style_class: 'prompt-dialog-error-label' });
warning.clutter_text.ellipsize = Pango.EllipsizeMode.NONE; warning.clutter_text.ellipsize = Pango.EllipsizeMode.NONE;
warning.clutter_text.line_wrap = true; warning.clutter_text.line_wrap = true;
table.add(warning, { row: row, col: 1, x_expand: false, x_fill: false, x_align: St.Align.START }); layout.pack(warning, 1, row);
this.prompt.bind_property('warning-visible', warning, 'visible', GObject.BindingFlags.SYNC_CREATE); this.prompt.bind_property('warning-visible', warning, 'visible', GObject.BindingFlags.SYNC_CREATE);
this.prompt.bind_property('warning', warning, 'text', GObject.BindingFlags.SYNC_CREATE); this.prompt.bind_property('warning', warning, 'text', GObject.BindingFlags.SYNC_CREATE);
@ -221,27 +221,56 @@ const KeyringDialog = new Lang.Class({
}, },
}); });
const KeyringDummyDialog = new Lang.Class({
Name: 'KeyringDummyDialog',
_init: function() {
this.prompt = new Shell.KeyringPrompt();
this.prompt.connect('show-password',
Lang.bind(this, this._cancelPrompt));
this.prompt.connect('show-confirm', Lang.bind(this,
this._cancelPrompt));
},
_cancelPrompt: function() {
this.prompt.cancel();
}
});
const KeyringPrompter = new Lang.Class({ const KeyringPrompter = new Lang.Class({
Name: 'KeyringPrompter', Name: 'KeyringPrompter',
_init: function() { _init: function() {
this._prompter = new Gcr.SystemPrompter(); this._prompter = new Gcr.SystemPrompter();
this._prompter.connect('new-prompt', function(prompter) { this._prompter.connect('new-prompt', Lang.bind(this,
let dialog = new KeyringDialog(); function() {
return dialog.prompt; let dialog = this._enabled ? new KeyringDialog()
}); : new KeyringDummyDialog();
this._currentPrompt = dialog.prompt;
return this._currentPrompt;
}));
this._dbusId = null; this._dbusId = null;
this._registered = false;
this._enabled = false;
this._currentPrompt = null;
}, },
enable: function() { enable: function() {
this._prompter.register(Gio.DBus.session); if (!this._registered) {
this._dbusId = Gio.DBus.session.own_name('org.gnome.keyring.SystemPrompter', this._prompter.register(Gio.DBus.session);
Gio.BusNameOwnerFlags.ALLOW_REPLACEMENT, null, null); this._dbusId = Gio.DBus.session.own_name('org.gnome.keyring.SystemPrompter',
Gio.BusNameOwnerFlags.ALLOW_REPLACEMENT, null, null);
this._registered = true;
}
this._enabled = true;
}, },
disable: function() { disable: function() {
this._prompter.unregister(false); this._enabled = false;
Gio.DBus.session.unown_name(this._dbusId);
if (this._prompter.prompting)
this._currentPrompt.cancel();
this._currentPrompt = null;
} }
}); });

View File

@ -72,13 +72,18 @@ const NetworkSecretDialog = new Lang.Class({
expand: true }); expand: true });
} }
let secretTable = new St.Table({ style_class: 'network-dialog-secret-table' }); let layout = new Clutter.TableLayout();
let secretTable = new St.Widget({ style_class: 'network-dialog-secret-table',
layout_manager: layout });
layout.hookup_style(secretTable);
let initialFocusSet = false; let initialFocusSet = false;
let pos = 0; let pos = 0;
for (let i = 0; i < this._content.secrets.length; i++) { for (let i = 0; i < this._content.secrets.length; i++) {
let secret = this._content.secrets[i]; let secret = this._content.secrets[i];
let label = new St.Label({ style_class: 'prompt-dialog-password-label', let label = new St.Label({ style_class: 'prompt-dialog-password-label',
text: secret.label }); text: secret.label });
label.clutter_text.ellipsize = Pango.EllipsizeMode.NONE;
let reactive = secret.key != null; let reactive = secret.key != null;
@ -111,11 +116,10 @@ const NetworkSecretDialog = new Lang.Class({
} else } else
secret.valid = true; secret.valid = true;
secretTable.add(label, { row: pos, col: 0, layout.pack(label, 0, pos);
x_expand: false, x_fill: true, layout.child_set(label, { x_expand: false, y_fill: false,
x_align: St.Align.START, x_align: Clutter.TableAlignment.START });
y_fill: false, y_align: St.Align.MIDDLE }); layout.pack(secret.entry, 1, pos);
secretTable.add(secret.entry, { row: pos, col: 1, x_expand: true, x_fill: true, y_align: St.Align.END });
pos++; pos++;
if (secret.password) if (secret.password)

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 () {
@ -488,7 +487,7 @@ const ChatSource = new Lang.Class({
}, },
_createPolicy: function() { _createPolicy: function() {
return new NotificationDaemon.NotificationApplicationPolicy('empathy'); return new MessageTray.NotificationApplicationPolicy('empathy');
}, },
_updateAlias: function() { _updateAlias: 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() {

View File

@ -33,6 +33,7 @@ const FocusCaretTracker = new Lang.Class({
_init: function() { _init: function() {
Atspi.init(); Atspi.init();
Atspi.set_timeout(250, 250);
this._atspiListener = Atspi.EventListener.new(Lang.bind(this, this._onChanged)); this._atspiListener = Atspi.EventListener.new(Lang.bind(this, this._onChanged));
}, },

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

@ -90,8 +90,12 @@ function _sessionUpdated() {
Shell.KeyBindingMode.OVERVIEW, Shell.KeyBindingMode.OVERVIEW,
sessionMode.hasRunDialog ? openRunDialog : null); sessionMode.hasRunDialog ? openRunDialog : null);
if (!sessionMode.hasRunDialog && lookingGlass) if (!sessionMode.hasRunDialog) {
lookingGlass.close(); if (runDialog)
runDialog.close();
if (lookingGlass)
lookingGlass.close();
}
} }
function start() { function start() {

View File

@ -310,6 +310,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
@ -438,7 +558,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:
@ -723,7 +848,6 @@ const Notification = new Lang.Class({
// %action-invoked signal with @id as a parameter // %action-invoked signal with @id as a parameter
addButton: function(id, label) { 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,6 +855,7 @@ 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 }); let button = new St.Button({ can_focus: true });
@ -745,11 +870,7 @@ const Notification = new Lang.Class({
button.label = label; 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, this._onActionInvoked, id)); button.connect('clicked', Lang.bind(this, this._onActionInvoked, id));
this.updated(); this.updated();
@ -1206,6 +1327,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 +1402,27 @@ 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('clicked', Lang.bind(this, this.open));
notification.connect('destroy', Lang.bind(this, notification.connect('destroy', Lang.bind(this, this._onNotificationDestroy));
function () {
let index = this.notifications.indexOf(notification);
if (index < 0)
return;
this.notifications.splice(index, 1); this.notifications.push(notification);
if (this.notifications.length == 0) this.emit('notification-added', notification);
this._lastNotificationRemoved();
this.countUpdated();
}));
this.countUpdated(); this.countUpdated();
}, },
@ -1507,26 +1634,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 +1684,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({
@ -1805,8 +1982,9 @@ const MessageTray = new Lang.Class({
}, },
_sessionUpdated: function() { _sessionUpdated: function() {
if ((Main.sessionMode.isLocked || Main.sessionMode.isGreeter) && this._inCtrlAltTab) { if (Main.sessionMode.isLocked || Main.sessionMode.isGreeter) {
Main.ctrlAltTabManager.removeGroup(this._summary); if (this._inCtrlAltTab)
Main.ctrlAltTabManager.removeGroup(this._summary);
this._inCtrlAltTab = false; this._inCtrlAltTab = false;
} else if (!this._inCtrlAltTab) { } else if (!this._inCtrlAltTab) {
Main.ctrlAltTabManager.addGroup(this._summary, _("Message Tray"), 'user-available-symbolic', Main.ctrlAltTabManager.addGroup(this._summary, _("Message Tray"), 'user-available-symbolic',
@ -1925,7 +2103,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);
@ -1969,7 +2147,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);

View File

@ -103,126 +103,6 @@ const STANDARD_TRAY_ICON_IMPLEMENTATIONS = {
'ibus-ui-gtk': 'keyboard' 'ibus-ui-gtk': 'keyboard'
}; };
const NotificationGenericPolicy = new Lang.Class({
Name: 'NotificationGenericPolicy',
Extends: MessageTray.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: 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({ const NotificationDaemon = new Lang.Class({
Name: 'NotificationDaemon', Name: 'NotificationDaemon',
@ -396,12 +276,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,
@ -674,9 +555,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 +633,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
@ -779,8 +644,8 @@ const Source = new Lang.Class({
}, },
open: function(notification) { open: function(notification) {
this.destroyNonResidentNotifications();
this.openApp(); this.openApp();
this.destroyNonResidentNotifications();
}, },
_lastNotificationRemoved: function() { _lastNotificationRemoved: function() {
@ -792,11 +657,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() {

View File

@ -148,7 +148,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;
@ -611,6 +609,7 @@ const ActivitiesButton = new Lang.Class({
_onButtonRelease: function() { _onButtonRelease: function() {
Main.overview.toggle(); Main.overview.toggle();
this.menu.close();
}, },
_onKeyRelease: function(actor, event) { _onKeyRelease: function(actor, event) {
@ -832,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',
@ -948,18 +975,21 @@ const PopupSubMenuMenuItem = new Lang.Class({
this.actor.add_child(this.icon); this.actor.add_child(this.icon);
} }
this.label = new St.Label({ text: text }); this.label = new St.Label({ text: text,
y_expand: true,
y_align: Clutter.ActorAlign.CENTER });
this.actor.add_child(this.label); this.actor.add_child(this.label);
this.actor.label_actor = this.label; this.actor.label_actor = this.label;
let expander = new St.Bin({ style_class: 'popup-menu-item-expander' }); let expander = new St.Bin({ style_class: 'popup-menu-item-expander' });
this.actor.add(expander, { expand: true }); this.actor.add(expander, { expand: true });
this.status = new St.Label({ style_class: 'popup-status-menu-item' }); this.status = new St.Label({ style_class: 'popup-status-menu-item',
y_expand: true,
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

@ -207,6 +207,16 @@ 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; return;

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

@ -214,8 +214,8 @@ const SearchResultsBase = new Lang.Class({
this.actor.hide(); this.actor.hide();
}, },
_keyFocusIn: function(icon) { _keyFocusIn: function(actor) {
this.emit('key-focus-in', icon); this.emit('key-focus-in', actor);
}, },
_setMoreIconVisible: function(visible) { _setMoreIconVisible: function(visible) {
@ -230,7 +230,7 @@ const SearchResultsBase = new Lang.Class({
callback(); callback();
} else { } else {
let maxResults = this._getMaxDisplayedResults(); let maxResults = this._getMaxDisplayedResults();
let results = providerResults.slice(0, maxResults); let results = this.provider.filterResults(providerResults, maxResults);
let hasMoreResults = results.length < providerResults.length; let hasMoreResults = results.length < providerResults.length;
this.provider.getResultMetas(results, Lang.bind(this, function(metas) { this.provider.getResultMetas(results, Lang.bind(this, function(metas) {
@ -259,6 +259,7 @@ const ListSearchResults = new Lang.Class({
this._container = new St.BoxLayout({ style_class: 'search-section-content' }); this._container = new St.BoxLayout({ style_class: 'search-section-content' });
this.providerIcon = new ProviderIcon(provider); this.providerIcon = new ProviderIcon(provider);
this.providerIcon.connect('key-focus-in', Lang.bind(this, this._keyFocusIn));
this.providerIcon.connect('clicked', Lang.bind(this, this.providerIcon.connect('clicked', Lang.bind(this,
function() { function() {
provider.launchSearch(this._terms); provider.launchSearch(this._terms);
@ -404,8 +405,8 @@ const SearchResults = new Lang.Class({
return false; return false;
}, },
_keyFocusIn: function(provider, icon) { _keyFocusIn: function(provider, actor) {
Util.ensureActorVisibleInScrollView(this._scrollView, icon); Util.ensureActorVisibleInScrollView(this._scrollView, actor);
}, },
createProviderDisplay: function(provider) { createProviderDisplay: function(provider) {

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;
@ -31,6 +30,7 @@ const Indicator = new Lang.Class({
this._applet.killswitch_state = GnomeBluetooth.KillswitchState.SOFT_BLOCKED; this._applet.killswitch_state = GnomeBluetooth.KillswitchState.SOFT_BLOCKED;
})); }));
this._item.menu.addSettingsAction(_("Bluetooth Settings"), 'gnome-bluetooth-panel.desktop'); this._item.menu.addSettingsAction(_("Bluetooth Settings"), 'gnome-bluetooth-panel.desktop');
this.menu.addMenuItem(this._item);
this._applet = new GnomeBluetoothApplet.Applet(); this._applet = new GnomeBluetoothApplet.Applet();
this._applet.connect('devices-changed', Lang.bind(this, this._sync)); this._applet.connect('devices-changed', Lang.bind(this, this._sync));
@ -54,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);
} }
}, },

View File

@ -339,9 +339,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
@ -524,6 +559,8 @@ const NMWirelessDialogItem = new Lang.Class({
this.actor.grab_key_focus(); this.actor.grab_key_focus();
})); }));
this.actor.connect('key-press-event', Lang.bind(this, this._onKeyPressEvent));
this._content = new St.BoxLayout({ style_class: 'nm-dialog-item-box' }); this._content = new St.BoxLayout({ style_class: 'nm-dialog-item-box' });
this.actor.set_child(this._content); this.actor.set_child(this._content);
@ -547,22 +584,38 @@ 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
return 'network-wireless-signal-' + signalToIcon(this._ap.strength) + '-symbolic'; return 'network-wireless-signal-' + signalToIcon(this._ap.strength) + '-symbolic';
},
_onKeyPressEvent: function(actor, event) {
let symbol = event.get_key_symbol();
if (symbol == Clutter.KEY_space || symbol == Clutter.KEY_Return
|| symbol == Clutter.KEY_KP_Enter) {
this.emit('connect');
return true;
}
return false;
} }
}); });
Signals.addSignalMethods(NMWirelessDialogItem.prototype); Signals.addSignalMethods(NMWirelessDialogItem.prototype);
@ -931,6 +984,9 @@ const NMWirelessDialog = new Lang.Class({
Util.ensureActorVisibleInScrollView(this._scrollView, network.item.actor); Util.ensureActorVisibleInScrollView(this._scrollView, network.item.actor);
this._selectNetwork(network); this._selectNetwork(network);
})); }));
network.item.connect('connect', Lang.bind(this, function() {
this._connect();
}));
}, },
}); });
@ -952,9 +1008,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 +1031,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 +1097,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 +1111,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 +1132,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 +1191,7 @@ const NMVPNConnectionItem = new Lang.Class({
this.emit('activation-failed', reason); this.emit('activation-failed', reason);
} }
this.emit('icon-changed');
this.parent(); this.parent();
}, },
@ -1287,6 +1362,7 @@ const NMApplet = new Lang.Class({
this._client.connect('notify::networking-enabled', Lang.bind(this, this._syncNMState)); this._client.connect('notify::networking-enabled', Lang.bind(this, this._syncNMState));
this._client.connect('notify::state', Lang.bind(this, this._syncNMState)); this._client.connect('notify::state', Lang.bind(this, this._syncNMState));
this._client.connect('notify::primary-connection', Lang.bind(this, this._syncMainConnection)); this._client.connect('notify::primary-connection', Lang.bind(this, this._syncMainConnection));
this._client.connect('notify::activating-connection', Lang.bind(this, this._syncMainConnection));
this._client.connect('notify::active-connections', Lang.bind(this, this._syncVPNConnections)); this._client.connect('notify::active-connections', Lang.bind(this, this._syncVPNConnections));
this._client.connect('device-added', Lang.bind(this, this._deviceAdded)); this._client.connect('device-added', Lang.bind(this, this._deviceAdded));
this._client.connect('device-removed', Lang.bind(this, this._deviceRemoved)); this._client.connect('device-removed', Lang.bind(this, this._deviceRemoved));
@ -1305,7 +1381,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;
@ -1417,28 +1493,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;
} }
@ -1474,7 +1540,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);
@ -1577,6 +1643,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

@ -86,38 +86,30 @@ const Indicator = new Lang.Class({
return _("Estimating…"); return _("Estimating…");
}, },
_syncStatusLabel: function() { _sync: function() {
this._proxy.GetPrimaryDeviceRemote(Lang.bind(this, function(result, error) { function isBattery(result) {
if (error) { if (!result)
this._item.actor.hide(); return false;
return;
}
let [device] = result; let [device] = result;
let [device_id, device_type] = device; let [, deviceType] = device;
if (device_type == UPower.DeviceKind.BATTERY) { return (deviceType == UPower.DeviceKind.BATTERY);
}
this._proxy.GetPrimaryDeviceRemote(Lang.bind(this, function(result, error) {
if (isBattery(result)) {
let [device] = result;
let [,, icon] = device;
let gicon = Gio.icon_new_for_string(icon);
this._indicator.gicon = gicon;
this._item.icon.gicon = gicon;
this._item.status.text = this._statusForDevice(device); this._item.status.text = this._statusForDevice(device);
this._item.actor.show(); this._item.actor.show();
} else { } else {
// If there's no battery, then we use the power icon.
this._indicator.icon_name = 'system-shutdown-symbolic';
this._item.actor.hide(); 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() {
this._syncIcon();
this._syncStatusLabel();
}
}); });

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

@ -132,6 +132,10 @@ const WandaSearchProvider = new Lang.Class({
}]); }]);
}, },
filterResults: function(results) {
return results;
},
getInitialResultSet: function(terms) { getInitialResultSet: function(terms) {
if (terms.join(' ') == MAGIC_FISH_KEY) { if (terms.join(' ') == MAGIC_FISH_KEY) {
this.searchSystem.setResults(this, [ FISH_NAME ]); this.searchSystem.setResults(this, [ FISH_NAME ]);

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() {

View File

@ -536,20 +536,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
@ -1042,9 +1028,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 +1035,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 +1061,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 +1109,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 +1120,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 +1128,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 +1138,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 +1188,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);

443
po/as.po

File diff suppressed because it is too large Load Diff

449
po/be.po

File diff suppressed because it is too large Load Diff

1866
po/ca.po

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

478
po/cs.po

File diff suppressed because it is too large Load Diff

196
po/da.po
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-14 15:55+0200\n" "POT-Creation-Date: 2013-10-01 19:10+0200\n"
"PO-Revision-Date: 2013-09-14 10:23+0100\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"
@ -274,6 +274,12 @@ msgstr "Arbejdsområder er håndteret dynamisk"
msgid "Workspaces only on primary monitor" msgid "Workspaces only on primary monitor"
msgstr "Arbejdsområder kun på den primære skærm" msgstr "Arbejdsområder kun på den primære skærm"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:38
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"
#: ../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:"
@ -288,10 +294,10 @@ msgid "Select an extension to configure using the combobox above."
msgstr "" msgstr ""
"Vælg en udvidelse at konfigurere ved hjælp af kombinationsboksen ovenfor." "Vælg en udvidelse at konfigurere ved hjælp af kombinationsboksen ovenfor."
#: ../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:692
msgid "Cancel" msgid "Cancel"
msgstr "Annullér" msgstr "Annullér"
@ -330,8 +336,8 @@ msgstr "(f.eks. bruger eller %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 "Brugernavn: " msgstr "Brugernavn: "
@ -367,27 +373,27 @@ msgstr "Kunne ikke fortolke kommando:"
msgid "Execution of '%s' failed:" msgid "Execution of '%s' failed:"
msgstr "Kørsel af \"%s\" mislykkedes:" msgstr "Kørsel af \"%s\" mislykkedes:"
#: ../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 "Ofte brugte programmer vil blive vist her" msgstr "Ofte brugte programmer vil blive vist her"
#: ../js/ui/appDisplay.js:714 #: ../js/ui/appDisplay.js:712
msgid "Frequent" msgid "Frequent"
msgstr "Ofte" msgstr "Ofte"
#: ../js/ui/appDisplay.js:721 #: ../js/ui/appDisplay.js:719
msgid "All" msgid "All"
msgstr "Alle" msgstr "Alle"
#: ../js/ui/appDisplay.js:1516 #: ../js/ui/appDisplay.js:1514
msgid "New Window" msgid "New Window"
msgstr "Nyt vindue" msgstr "Nyt vindue"
#: ../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 "Fjern fra favoritter" msgstr "Fjern fra favoritter"
#: ../js/ui/appDisplay.js:1520 #: ../js/ui/appDisplay.js:1518
msgid "Add to Favorites" msgid "Add to Favorites"
msgstr "Føj til favoritter" msgstr "Føj til favoritter"
@ -401,7 +407,8 @@ 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/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 "Indstillinger" msgstr "Indstillinger"
@ -587,50 +594,50 @@ msgstr "Åbn med %s"
msgid "Eject" msgid "Eject"
msgstr "Skub ud" msgstr "Skub ud"
#: ../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 "Adgangskode:" msgstr "Adgangskode:"
#: ../js/ui/components/keyring.js:107 #: ../js/ui/components/keyring.js:110
msgid "Type again:" msgid "Type again:"
msgstr "Indtast igen:" msgstr "Indtast igen:"
#: ../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:695
msgid "Connect" msgid "Connect"
msgstr "Forbind" msgstr "Forbind"
#. 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 "Adgangskode: " msgstr "Adgangskode: "
#. static WEP #. static WEP
#: ../js/ui/components/networkAgent.js:223 #: ../js/ui/components/networkAgent.js:227
msgid "Key: " msgid "Key: "
msgstr "Nøgle: " msgstr "Nøgle: "
#: ../js/ui/components/networkAgent.js:261 #: ../js/ui/components/networkAgent.js:265
msgid "Identity: " msgid "Identity: "
msgstr "Identitet: " msgstr "Identitet: "
#: ../js/ui/components/networkAgent.js:263 #: ../js/ui/components/networkAgent.js:267
msgid "Private key password: " msgid "Private key password: "
msgstr "Privatnøgle-adgangskode: " msgstr "Privatnøgle-adgangskode: "
#: ../js/ui/components/networkAgent.js:275 #: ../js/ui/components/networkAgent.js:279
msgid "Service: " msgid "Service: "
msgstr "Tjeneste: " msgstr "Tjeneste: "
#: ../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 "Godkendelse påkrævet af trådløst netværk" msgstr "Godkendelse påkrævet af trådløst netværk"
#: ../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 "
@ -639,35 +646,35 @@ msgstr ""
"Adgangskoder eller krypteringsnøgler er påkrævet for at få adgang til det " "Adgangskoder eller krypteringsnøgler er påkrævet for at få adgang til det "
"trådløse netværk \"%s\"." "trådløse netværk \"%s\"."
#: ../js/ui/components/networkAgent.js:309 #: ../js/ui/components/networkAgent.js:313
msgid "Wired 802.1X authentication" msgid "Wired 802.1X authentication"
msgstr "Trådet 802.1X-godkendelse" msgstr "Trådet 802.1X-godkendelse"
#: ../js/ui/components/networkAgent.js:311 #: ../js/ui/components/networkAgent.js:315
msgid "Network name: " msgid "Network name: "
msgstr "Netværksnavn: " msgstr "Netværksnavn: "
#: ../js/ui/components/networkAgent.js:316 #: ../js/ui/components/networkAgent.js:320
msgid "DSL authentication" msgid "DSL authentication"
msgstr "DSL-godkendelse" msgstr "DSL-godkendelse"
#: ../js/ui/components/networkAgent.js:323 #: ../js/ui/components/networkAgent.js:327
msgid "PIN code required" msgid "PIN code required"
msgstr "PIN-kode påkrævet" msgstr "PIN-kode påkrævet"
#: ../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-kode er nødvendig for den mobile bredbåndsenhed" msgstr "PIN-kode er nødvendig for den mobile bredbåndsenhed"
#: ../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 "Adgangskode til mobilt bredbåndsnetværk" msgstr "Adgangskode til mobilt bredbåndsnetværk"
#: ../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 "En adgangskode er påkrævet for at forbinde til \"%s\"." msgstr "En adgangskode er påkrævet for at forbinde til \"%s\"."
@ -1155,11 +1162,11 @@ msgstr "Menu for statusfelt"
msgid "No Messages" msgid "No Messages"
msgstr "Ingen beskeder" msgstr "Ingen beskeder"
#: ../js/ui/messageTray.js:1812 #: ../js/ui/messageTray.js:1813
msgid "Message Tray" msgid "Message Tray"
msgstr "Besked-statusfelt" msgstr "Besked-statusfelt"
#: ../js/ui/messageTray.js:2787 #: ../js/ui/messageTray.js:2788
msgid "System Information" msgid "System Information"
msgstr "Systeminformation" msgstr "Systeminformation"
@ -1201,11 +1208,7 @@ msgstr "Afslut"
msgid "Activities" msgid "Activities"
msgstr "Aktiviteter" msgstr "Aktiviteter"
#: ../js/ui/panel.js:807 #: ../js/ui/panel.js:904
msgid "Settings Menu"
msgstr "Menu for indstillinger"
#: ../js/ui/panel.js:903
msgid "Top Bar" msgid "Top Bar"
msgstr "Toppanel" msgstr "Toppanel"
@ -1262,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."
@ -1340,14 +1343,14 @@ msgstr "Stor 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: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"
@ -1355,56 +1358,56 @@ msgstr "Sluk"
msgid "Bluetooth Settings" msgid "Bluetooth Settings"
msgstr "Indstillinger for Bluetooth" msgstr "Indstillinger for Bluetooth"
#: ../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 forbundet enhed" msgstr[0] "%d forbundet enhed"
msgstr[1] "%d forbundne enheder" msgstr[1] "%d forbundne enheder"
#: ../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 "Godkendelsesforespørgsel fra %s" msgstr "Godkendelsesforespørgsel fra %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 "Enheden %s ønsker at blive parret med denne computer" msgstr "Enheden %s ønsker at blive parret med denne computer"
#: ../js/ui/status/bluetooth.js:108 #: ../js/ui/status/bluetooth.js:109
msgid "Allow" msgid "Allow"
msgstr "Tillad" msgstr "Tillad"
#: ../js/ui/status/bluetooth.js:109 #: ../js/ui/status/bluetooth.js:110
msgid "Deny" msgid "Deny"
msgstr "Nægt" msgstr "Nægt"
#: ../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 "Enheden %s ønsker adgang til tjenesten \"%s\"" msgstr "Enheden %s ønsker adgang til tjenesten \"%s\""
#: ../js/ui/status/bluetooth.js:136 #: ../js/ui/status/bluetooth.js:137
msgid "Always grant access" msgid "Always grant access"
msgstr "Giv altid adgang" msgstr "Giv altid adgang"
#: ../js/ui/status/bluetooth.js:137 #: ../js/ui/status/bluetooth.js:138
msgid "Grant this time only" msgid "Grant this time only"
msgstr "Giv kun lov denne gang" msgstr "Giv kun lov denne gang"
#: ../js/ui/status/bluetooth.js:138 #: ../js/ui/status/bluetooth.js:139
msgid "Reject" msgid "Reject"
msgstr "Afvis" msgstr "Afvis"
#. 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 "Bekræftelse af parring for %s" msgstr "Bekræftelse af parring for %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."
@ -1413,24 +1416,24 @@ msgstr ""
"enheden." "enheden."
#. 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 "Stemmer" msgstr "Stemmer"
#: ../js/ui/status/bluetooth.js:176 #: ../js/ui/status/bluetooth.js:177
msgid "Does not match" msgid "Does not match"
msgstr "Stemmer ikke" msgstr "Stemmer ikke"
#: ../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 "Forespørgsel om parring for %s" msgstr "Forespørgsel om parring for %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 "Indtast PIN-koden nævnt på enheden." msgstr "Indtast PIN-koden nævnt på enheden."
#: ../js/ui/status/bluetooth.js:220 #: ../js/ui/status/bluetooth.js:221
msgid "OK" msgid "OK"
msgstr "O.k." msgstr "O.k."
@ -1446,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"
@ -1465,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"
@ -1486,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:1306 #: ../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:1345 #: ../js/ui/status/network.js:1353
msgid "Connection failed" msgid "Connection failed"
msgstr "Forbindelse mislykkedes" msgstr "Forbindelse mislykkedes"
#: ../js/ui/status/network.js:1346 #: ../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"
@ -1547,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
@ -1716,6 +1719,31 @@ 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"
#~ msgstr "Menu for indstillinger"
#~ msgid "Screenshots" #~ msgid "Screenshots"
#~ msgstr "Skærmbilleder" #~ msgstr "Skærmbilleder"

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."

2921
po/eo.po

File diff suppressed because it is too large Load Diff

456
po/es.po

File diff suppressed because it is too large Load Diff

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

132
po/fr.po
View File

@ -18,8 +18,8 @@ msgstr ""
"Project-Id-Version: gnome-shell master fr\n" "Project-Id-Version: gnome-shell master fr\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-13 20:04+0000\n" "POT-Creation-Date: 2013-09-23 13:35+0000\n"
"PO-Revision-Date: 2013-09-14 19:08+0200\n" "PO-Revision-Date: 2013-09-23 15:47+0200\n"
"Last-Translator: Mathieu Stumpf <psychoslave@culture-libre.org>\n" "Last-Translator: Mathieu Stumpf <psychoslave@culture-libre.org>\n"
"Language-Team: français <gnomefr@traduc.org>\n" "Language-Team: français <gnomefr@traduc.org>\n"
"Language: \n" "Language: \n"
@ -284,6 +284,10 @@ msgstr "Les espaces de travail sont gérés dynamiquement"
msgid "Workspaces only on primary monitor" msgid "Workspaces only on primary monitor"
msgstr "Les espaces de travail sont uniquement sur l'écran principal" msgstr "Les espaces de travail sont uniquement sur l'écran principal"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:38
msgid "Delay focus changes in mouse mode until the pointer stops moving"
msgstr "Retarder les changements de focus en mode souris jusqu'à ce que le pointeur arrête de bouger"
#: ../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:"
@ -301,10 +305,10 @@ msgstr ""
"Sélectionnez une extension à configurer en utilisant la boîte combinée ci-" "Sélectionnez une extension à configurer en utilisant la boîte combinée ci-"
"dessus." "dessus."
#: ../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 "Annuler" msgstr "Annuler"
@ -343,8 +347,8 @@ msgstr "(par ex. utilisateur ou %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 "Nom d'utilisateur : " msgstr "Nom d'utilisateur : "
@ -380,27 +384,27 @@ msgstr "Impossible d'analyser la commande :"
msgid "Execution of '%s' failed:" msgid "Execution of '%s' failed:"
msgstr "Exécution de « %s » impossible :" msgstr "Exécution de « %s » impossible :"
#: ../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 "Les applications fréquemment utilisées apparaîtront ici" msgstr "Les applications fréquemment utilisées apparaîtront ici"
#: ../js/ui/appDisplay.js:714 #: ../js/ui/appDisplay.js:712
msgid "Frequent" msgid "Frequent"
msgstr "Fréquemment utilisées" msgstr "Fréquemment utilisées"
#: ../js/ui/appDisplay.js:721 #: ../js/ui/appDisplay.js:719
msgid "All" msgid "All"
msgstr "Toutes" msgstr "Toutes"
#: ../js/ui/appDisplay.js:1516 #: ../js/ui/appDisplay.js:1514
msgid "New Window" msgid "New Window"
msgstr "Nouvelle fenêtre" msgstr "Nouvelle fenêtre"
#: ../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 "Enlever des favoris" msgstr "Enlever des favoris"
#: ../js/ui/appDisplay.js:1520 #: ../js/ui/appDisplay.js:1518
msgid "Add to Favorites" msgid "Add to Favorites"
msgstr "Ajouter aux favoris" msgstr "Ajouter aux favoris"
@ -414,7 +418,8 @@ msgstr "%s a été ajouté à vos favoris."
msgid "%s has been removed from your favorites." msgid "%s has been removed from your favorites."
msgstr "%s a été supprimé de vos favoris." msgstr "%s a été supprimé de vos favoris."
#: ../js/ui/backgroundMenu.js:19 ../js/ui/status/system.js:325 #: ../js/ui/backgroundMenu.js:19 ../js/ui/panel.js:807
#: ../js/ui/status/system.js:325
msgid "Settings" msgid "Settings"
msgstr "Paramètres" msgstr "Paramètres"
@ -621,50 +626,50 @@ msgstr "Ouvrir avec %s"
msgid "Eject" msgid "Eject"
msgstr "Éjecter" msgstr "Éjecter"
#: ../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 "Mot de passe :" msgstr "Mot de passe :"
#: ../js/ui/components/keyring.js:107 #: ../js/ui/components/keyring.js:110
msgid "Type again:" msgid "Type again:"
msgstr "Saisissez à nouveau :" msgstr "Saisissez à nouveau :"
#: ../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 "Se connecter" msgstr "Se connecter"
#. 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 "Mot de passe : " msgstr "Mot de passe : "
#. static WEP #. static WEP
#: ../js/ui/components/networkAgent.js:223 #: ../js/ui/components/networkAgent.js:227
msgid "Key: " msgid "Key: "
msgstr "Clé : " msgstr "Clé : "
#: ../js/ui/components/networkAgent.js:261 #: ../js/ui/components/networkAgent.js:265
msgid "Identity: " msgid "Identity: "
msgstr "Identité : " msgstr "Identité : "
#: ../js/ui/components/networkAgent.js:263 #: ../js/ui/components/networkAgent.js:267
msgid "Private key password: " msgid "Private key password: "
msgstr "Mot de passe de la clé privée : " msgstr "Mot de passe de la clé privée : "
#: ../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 "L'authentification est requise par le réseau sans fil" msgstr "L'authentification est requise par le réseau sans fil"
#: ../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 "
@ -673,35 +678,35 @@ msgstr ""
"Il faut un mot de passe ou une clé de chiffrement pour accéder au réseau " "Il faut un mot de passe ou une clé de chiffrement pour accéder au réseau "
"sans fil « %s »" "sans fil « %s »"
#: ../js/ui/components/networkAgent.js:309 #: ../js/ui/components/networkAgent.js:313
msgid "Wired 802.1X authentication" msgid "Wired 802.1X authentication"
msgstr "Authentification filaire 802.1X" msgstr "Authentification filaire 802.1X"
#: ../js/ui/components/networkAgent.js:311 #: ../js/ui/components/networkAgent.js:315
msgid "Network name: " msgid "Network name: "
msgstr "Nom du réseau : " msgstr "Nom du réseau : "
#: ../js/ui/components/networkAgent.js:316 #: ../js/ui/components/networkAgent.js:320
msgid "DSL authentication" msgid "DSL authentication"
msgstr "Authentification DSL" msgstr "Authentification DSL"
#: ../js/ui/components/networkAgent.js:323 #: ../js/ui/components/networkAgent.js:327
msgid "PIN code required" msgid "PIN code required"
msgstr "Code PIN requis" msgstr "Code PIN requis"
#: ../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 "Un code PIN est nécessaire pour les téléphones mobiles à large bande" msgstr "Un code PIN est nécessaire pour les téléphones mobiles à large bande"
#: ../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 "Mot de passe du téléphone mobile à large bande" msgstr "Mot de passe du téléphone mobile à large bande"
#: ../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 "Un mot de passe est requis pour se connecter à « %s »." msgstr "Un mot de passe est requis pour se connecter à « %s »."
@ -1194,11 +1199,11 @@ msgstr "Menu du tiroir de messagerie"
msgid "No Messages" msgid "No Messages"
msgstr "Aucun message" msgstr "Aucun message"
#: ../js/ui/messageTray.js:1812 #: ../js/ui/messageTray.js:1813
msgid "Message Tray" msgid "Message Tray"
msgstr "Tiroir de messagerie" msgstr "Tiroir de messagerie"
#: ../js/ui/messageTray.js:2787 #: ../js/ui/messageTray.js:2788
msgid "System Information" msgid "System Information"
msgstr "Informations du système" msgstr "Informations du système"
@ -1240,10 +1245,6 @@ msgstr "Quitter"
msgid "Activities" msgid "Activities"
msgstr "Activités" msgstr "Activités"
#: ../js/ui/panel.js:807
msgid "Settings Menu"
msgstr "Menu des paramètres"
#: ../js/ui/panel.js:903 #: ../js/ui/panel.js:903
msgid "Top Bar" msgid "Top Bar"
msgstr "Barre supérieure" msgstr "Barre supérieure"
@ -1379,9 +1380,9 @@ msgstr "Grand texte"
#. 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"
@ -1394,56 +1395,56 @@ msgstr "Éteindre"
msgid "Bluetooth Settings" msgid "Bluetooth Settings"
msgstr "Paramètres Bluetooth" msgstr "Paramètres Bluetooth"
#: ../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 périphérique connecté" msgstr[0] "%d périphérique connecté"
msgstr[1] "%d périphériques connectés" msgstr[1] "%d périphériques connectés"
#: ../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 "Demande d'autorisation de « %s »" msgstr "Demande d'autorisation de « %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 "Le périphérique « %s » souhaite se connecter à cet ordinateur" msgstr "Le périphérique « %s » souhaite se connecter à cet ordinateur"
#: ../js/ui/status/bluetooth.js:108 #: ../js/ui/status/bluetooth.js:109
msgid "Allow" msgid "Allow"
msgstr "Autoriser" msgstr "Autoriser"
#: ../js/ui/status/bluetooth.js:109 #: ../js/ui/status/bluetooth.js:110
msgid "Deny" msgid "Deny"
msgstr "Refuser" msgstr "Refuser"
#: ../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 "Le périphérique %s souhaite accéder au service « %s »" msgstr "Le périphérique %s souhaite accéder au service « %s »"
#: ../js/ui/status/bluetooth.js:136 #: ../js/ui/status/bluetooth.js:137
msgid "Always grant access" msgid "Always grant access"
msgstr "Toujours accorder l'accès" msgstr "Toujours accorder l'accès"
#: ../js/ui/status/bluetooth.js:137 #: ../js/ui/status/bluetooth.js:138
msgid "Grant this time only" msgid "Grant this time only"
msgstr "Accorder l'accès cette fois uniquement" msgstr "Accorder l'accès cette fois uniquement"
#: ../js/ui/status/bluetooth.js:138 #: ../js/ui/status/bluetooth.js:139
msgid "Reject" msgid "Reject"
msgstr "Refuser" msgstr "Refuser"
#. 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 "Confirmation de la demande de liaison pour « %s »" msgstr "Confirmation de la demande de liaison pour « %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."
@ -1452,26 +1453,26 @@ msgstr ""
"du périphérique." "du périphérique."
#. 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 "Correspond" msgstr "Correspond"
#: ../js/ui/status/bluetooth.js:176 #: ../js/ui/status/bluetooth.js:177
msgid "Does not match" msgid "Does not match"
msgstr "Ne correspond pas" msgstr "Ne correspond pas"
#: ../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 "Demande de liaison pour « %s »" msgstr "Demande de liaison pour « %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 "" msgstr ""
"Veuillez saisir le numéro d'identification personnel (PIN) mentionné sur le " "Veuillez saisir le numéro d'identification personnel (PIN) mentionné sur le "
"périphérique." "périphérique."
#: ../js/ui/status/bluetooth.js:220 #: ../js/ui/status/bluetooth.js:221
msgid "OK" msgid "OK"
msgstr "Valider" msgstr "Valider"
@ -1555,15 +1556,15 @@ msgstr "Activer"
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 "Gestionnaire de réseau" msgstr "Gestionnaire de réseau"
#: ../js/ui/status/network.js:1345 #: ../js/ui/status/network.js:1346
msgid "Connection failed" msgid "Connection failed"
msgstr "Échec de connexion" msgstr "Échec de connexion"
#: ../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 "L'activation de la connexion réseau a échoué" msgstr "L'activation de la connexion réseau a échoué"
@ -1758,6 +1759,9 @@ msgstr "Le mot de passe ne peut pas être vide"
msgid "Authentication dialog was dismissed by the user" msgid "Authentication dialog was dismissed by the user"
msgstr "La fenêtre d'authentification a été écartée par l'utilisateur" msgstr "La fenêtre d'authentification a été écartée par l'utilisateur"
#~ msgid "Settings Menu"
#~ msgstr "Menu des paramètres"
#~ msgid "Screenshots" #~ msgid "Screenshots"
#~ msgstr "Captures d'écran" #~ msgstr "Captures d'écran"

494
po/gl.po

File diff suppressed because it is too large Load Diff

285
po/he.po
View File

@ -9,21 +9,21 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: gnome-shell master\n" "Project-Id-Version: gnome-shell master\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2013-09-16 21:39+0300\n" "POT-Creation-Date: 2013-10-11 01:13+0300\n"
"PO-Revision-Date: 2013-09-16 21:54+0300\n" "PO-Revision-Date: 2013-10-11 01:14+0300\n"
"Last-Translator: Yosef Or Boczko <yoseforb@gmail.com>\n" "Last-Translator: Yosef Or Boczko <yoseforb@gmail.com>\n"
"Language-Team: עברית <>\n" "Language-Team: עברית <>\n"
"Language: he\n" "Language: he\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=n==1 ? 0 : (n>2||n==0) ? 1 :2\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Poedit-SourceCharset: UTF-8\n" "X-Poedit-SourceCharset: UTF-8\n"
"X-Generator: Gtranslator 2.91.6\n" "X-Generator: Gtranslator 2.91.6\n"
#: ../data/50-gnome-shell-system.xml.in.h:1 #: ../data/50-gnome-shell-system.xml.in.h:1
msgid "System" msgid "System"
msgstr "מערכת " msgstr "מערכת"
#: ../data/50-gnome-shell-system.xml.in.h:2 #: ../data/50-gnome-shell-system.xml.in.h:2
msgid "Show the message tray" msgid "Show the message tray"
@ -262,14 +262,18 @@ msgstr "Workspaces are managed dynamically"
msgid "Workspaces only on primary monitor" msgid "Workspaces only on primary monitor"
msgstr "Workspaces only on primary monitor" msgstr "Workspaces only on primary monitor"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:38
msgid "Delay focus changes in mouse mode until the pointer stops moving"
msgstr "Delay focus changes in mouse mode until the pointer stops moving"
#: ../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 "יש לבחור את ההרחבה להגדרה באמצעות תיבת הבחירה המשולבת שלהלן."
#: ../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 "ביטול" msgstr "ביטול"
@ -300,8 +304,8 @@ msgstr "לא רשום?"
msgid "(e.g., user or %s)" msgid "(e.g., user or %s)"
msgstr "(משתמש או %s לדוגמה)" msgstr "(משתמש או %s לדוגמה)"
#: ../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 "שם משתמש:" msgstr "שם משתמש:"
@ -317,15 +321,15 @@ msgstr "שגיאת אימות"
msgid "(or swipe finger)" msgid "(or swipe finger)"
msgstr "(או להעביר אצבע)" msgstr "(או להעביר אצבע)"
#: ../js/misc/util.js:98 #: ../js/misc/util.js:115
msgid "Command not found" msgid "Command not found"
msgstr "הפקודה לא נמצאה" msgstr "הפקודה לא נמצאה"
#: ../js/misc/util.js:131 #: ../js/misc/util.js:148
msgid "Could not parse command:" msgid "Could not parse command:"
msgstr "לא ניתן לפענח את הפקודה:" msgstr "לא ניתן לפענח את הפקודה:"
#: ../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 "ההרצה של '%s' נכשלה:" msgstr "ההרצה של '%s' נכשלה:"
@ -364,7 +368,7 @@ msgstr "%s נוסף למועדפים שלך."
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 "הגדרות"
@ -555,83 +559,83 @@ msgstr "פתיחה באמצעות %s"
msgid "Eject" msgid "Eject"
msgstr "שליפה" msgstr "שליפה"
#: ../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 "ססמה:" msgstr "ססמה:"
#: ../js/ui/components/keyring.js:107 #: ../js/ui/components/keyring.js:108
msgid "Type again:" msgid "Type again:"
msgstr "נא להקליד שוב:" msgstr "נא להקליד שוב:"
#: ../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 "התחברות" msgstr "התחברות"
#: ../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 "ססמה:" msgstr "ססמה:"
#: ../js/ui/components/networkAgent.js:223 #: ../js/ui/components/networkAgent.js:227
msgid "Key: " msgid "Key: "
msgstr "מפתח:" msgstr "מפתח:"
#: ../js/ui/components/networkAgent.js:261 #: ../js/ui/components/networkAgent.js:265
msgid "Identity: " msgid "Identity: "
msgstr "זהות:" msgstr "זהות:"
#: ../js/ui/components/networkAgent.js:263 #: ../js/ui/components/networkAgent.js:267
msgid "Private key password: " msgid "Private key password: "
msgstr "ססמת מפתח פרטי:" msgstr "ססמת מפתח פרטי:"
#: ../js/ui/components/networkAgent.js:275 #: ../js/ui/components/networkAgent.js:279
msgid "Service: " msgid "Service: "
msgstr "שירות:" msgstr "שירות:"
#: ../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 "הרשת האלחוטית דורשת אימות" msgstr "הרשת האלחוטית דורשת אימות"
#: ../js/ui/components/networkAgent.js:305 #: ../js/ui/components/networkAgent.js:309
#, javascript-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'."
msgstr "ססמאות או מפתחות הצפנה נדרשים כדי לגשת לרשת האלחוטית '%s'." msgstr "ססמאות או מפתחות הצפנה נדרשים כדי לגשת לרשת האלחוטית '%s'."
#: ../js/ui/components/networkAgent.js:309 #: ../js/ui/components/networkAgent.js:313
msgid "Wired 802.1X authentication" msgid "Wired 802.1X authentication"
msgstr "אימות Wired 802.1X" msgstr "אימות Wired 802.1X"
#: ../js/ui/components/networkAgent.js:311 #: ../js/ui/components/networkAgent.js:315
msgid "Network name: " msgid "Network name: "
msgstr "שם הרשת:" msgstr "שם הרשת:"
#: ../js/ui/components/networkAgent.js:316 #: ../js/ui/components/networkAgent.js:320
msgid "DSL authentication" msgid "DSL authentication"
msgstr "אימות DSL" msgstr "אימות DSL"
#: ../js/ui/components/networkAgent.js:323 #: ../js/ui/components/networkAgent.js:327
msgid "PIN code required" msgid "PIN code required"
msgstr "נדרש קוד PIN" msgstr "נדרש קוד PIN"
#: ../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 עבור התקן החיבור האלחוטי בפס רחב" msgstr "נדרש קוד PIN עבור התקן החיבור האלחוטי בפס רחב"
#: ../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 "ססמת רשת הפס הרחב הניידת" msgstr "ססמת רשת הפס הרחב הניידת"
#: ../js/ui/components/networkAgent.js:332 #: ../js/ui/components/networkAgent.js:336
#, javascript-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'."
@ -931,17 +935,15 @@ msgstr "יציאה"
#, javascript-format #, javascript-format
msgid "%s will be logged out automatically in %d second." msgid "%s will be logged out automatically in %d second."
msgid_plural "%s will be logged out automatically in %d seconds." msgid_plural "%s will be logged out automatically in %d seconds."
msgstr[0] "המשתמש %s ייצא אוטומטית בעוד שנייה." msgstr[0] "המשתמש %s ייצא אוטומטית בעוד %d שנייה."
msgstr[1] "המשתמש %s ייצא אוטומטית בעוד %d שניות." msgstr[1] "המשתמש %s ייצא אוטומטית בעוד %d שניות."
msgstr[2] "המשתמש %s ייצא אוטומטית בעוד 2 שניות."
#: ../js/ui/endSessionDialog.js:70 #: ../js/ui/endSessionDialog.js:70
#, javascript-format #, javascript-format
msgid "You will be logged out automatically in %d second." msgid "You will be logged out automatically in %d second."
msgid_plural "You will be logged out automatically in %d seconds." msgid_plural "You will be logged out automatically in %d seconds."
msgstr[0] "אתה תצא אוטומטית בעוד שנייה." msgstr[0] "אתה תצא אוטומטית בעוד %d שנייה."
msgstr[1] "אתה תצא אוטומטית בעוד %d שניות." msgstr[1] "אתה תצא אוטומטית בעוד %d שניות."
msgstr[2] "המערכת תוציא אותך אוטומטית בעוד 2 שניות."
#: ../js/ui/endSessionDialog.js:75 #: ../js/ui/endSessionDialog.js:75
msgctxt "button" msgctxt "button"
@ -957,9 +959,8 @@ msgstr "כיבוי"
#, javascript-format #, javascript-format
msgid "The system will power off automatically in %d second." msgid "The system will power off automatically in %d second."
msgid_plural "The system will power off automatically in %d seconds." msgid_plural "The system will power off automatically in %d seconds."
msgstr[0] "המערכת תכבה אוטומטית בעוד שנייה." msgstr[0] "המערכת תכבה אוטומטית בעוד %d שנייה."
msgstr[1] "המערכת תכבה אוטומטית בעוד %d שניות." msgstr[1] "המערכת תכבה אוטומטית בעוד %d שניות."
msgstr[2] "המערכת תכבה אוטומטית בעוד 2 שניות."
#: ../js/ui/endSessionDialog.js:88 ../js/ui/endSessionDialog.js:104 #: ../js/ui/endSessionDialog.js:88 ../js/ui/endSessionDialog.js:104
msgctxt "button" msgctxt "button"
@ -980,9 +981,8 @@ msgstr "הפעלה מחדש"
#, javascript-format #, javascript-format
msgid "The system will restart automatically in %d second." msgid "The system will restart automatically in %d second."
msgid_plural "The system will restart automatically in %d seconds." msgid_plural "The system will restart automatically in %d seconds."
msgstr[0] "המערכת תופעל מחדש בעוד שנייה." msgstr[0] "המערכת תופעל מחדש בעוד %d שנייה."
msgstr[1] "המערכת תופעל מחדש בעוד %d שניות." msgstr[1] "המערכת תופעל מחדש בעוד %d שניות."
msgstr[2] "המערכת תופעל מחדש בעוד 2 שניות."
#: ../js/ui/endSessionDialog.js:112 #: ../js/ui/endSessionDialog.js:112
msgctxt "title" msgctxt "title"
@ -994,9 +994,8 @@ msgstr "הפעלה מחדש והתקנת עדכונים"
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] "המערכת תופעל מחדש ותתקין עדכונים בעוד שנייה." msgstr[0] "המערכת תופעל מחדש ותתקין עדכונים בעוד %d שנייה."
msgstr[1] "המערכת תופעל מחדש ותקין עדכונים בעוד %d שניות." msgstr[1] "המערכת תופעל מחדש ותקין עדכונים בעוד %d שניות."
msgstr[2] "המערכת תופעל מחדש ותתקין עדכונים בעוד 2 שניות."
#: ../js/ui/endSessionDialog.js:119 #: ../js/ui/endSessionDialog.js:119
msgctxt "button" msgctxt "button"
@ -1058,9 +1057,12 @@ msgstr "הצגת השגיאות"
msgid "Enabled" msgid "Enabled"
msgstr "פעיל" msgstr "פעיל"
#. 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 "מנוטרל" msgstr "מנוטרל"
@ -1092,27 +1094,31 @@ msgstr "פתיחה"
msgid "Remove" msgid "Remove"
msgstr "הסרה" msgstr "הסרה"
#: ../js/ui/messageTray.js:1513 #: ../js/ui/messageTray.js:1530
msgid "Notifications"
msgstr "התרעות"
#: ../js/ui/messageTray.js:1537
msgid "Clear Messages" msgid "Clear Messages"
msgstr "פינוי ההודעות" msgstr "פינוי ההודעות"
#: ../js/ui/messageTray.js:1540 #: ../js/ui/messageTray.js:1564
msgid "Notification Settings" msgid "Notification Settings"
msgstr "הגדרות התרעה" msgstr "הגדרות התרעה"
#: ../js/ui/messageTray.js:1559 #: ../js/ui/messageTray.js:1617
msgid "Tray Menu" msgid "Tray Menu"
msgstr "תפריט מגש" msgstr "תפריט מגש"
#: ../js/ui/messageTray.js:1775 #: ../js/ui/messageTray.js:1833
msgid "No Messages" msgid "No Messages"
msgstr "אין הודעות" msgstr "אין הודעות"
#: ../js/ui/messageTray.js:1812 #: ../js/ui/messageTray.js:1871
msgid "Message Tray" msgid "Message Tray"
msgstr "אזור דיווח ההודעות" msgstr "אזור דיווח ההודעות"
#: ../js/ui/messageTray.js:2787 #: ../js/ui/messageTray.js:2846
msgid "System Information" msgid "System Information"
msgstr "פרטי המערכת" msgstr "פרטי המערכת"
@ -1121,13 +1127,13 @@ msgctxt "program"
msgid "Unknown" msgid "Unknown"
msgstr "לא ידוע" msgstr "לא ידוע"
# javascript-format
#: ../js/ui/overviewControls.js:491 ../js/ui/screenShield.js:152 #: ../js/ui/overviewControls.js:491 ../js/ui/screenShield.js:152
#, javascript-format #, javascript-format
msgid "%d new message" msgid "%d new message"
msgid_plural "%d new messages" msgid_plural "%d new messages"
msgstr[0] "הודעה חדשה אחת" msgstr[0] "%d הודעה חדשה"
msgstr[1] "%d הודעות חדשות" msgstr[1] "%d הודעות חדשות"
msgstr[2] "2 הודעות חדשות"
#: ../js/ui/overview.js:82 #: ../js/ui/overview.js:82
msgid "Undo" msgid "Undo"
@ -1155,7 +1161,7 @@ msgstr "יציאה"
msgid "Activities" msgid "Activities"
msgstr "פעילויות" msgstr "פעילויות"
#: ../js/ui/panel.js:903 #: ../js/ui/panel.js:904
msgid "Top Bar" msgid "Top Bar"
msgstr "הסרגל העליון" msgstr "הסרגל העליון"
@ -1177,13 +1183,13 @@ msgstr "סגירה"
msgid "%A, %B %d" msgid "%A, %B %d"
msgstr "%A, ה־%d ב%B" msgstr "%A, ה־%d ב%B"
# javascript-format
#: ../js/ui/screenShield.js:154 #: ../js/ui/screenShield.js:154
#, javascript-format #, javascript-format
msgid "%d new notification" msgid "%d new notification"
msgid_plural "%d new notifications" msgid_plural "%d new notifications"
msgstr[0] "התרעה חדשה אחת" msgstr[0] "%d התרעה חדשה"
msgstr[1] "%d התרעות חדשות" msgstr[1] "%d התרעות חדשות"
msgstr[2] "2 התרעות חדשות"
#: ../js/ui/screenShield.js:477 ../js/ui/status/system.js:333 #: ../js/ui/screenShield.js:477 ../js/ui/status/system.js:333
msgid "Lock" msgid "Lock"
@ -1201,11 +1207,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 "אין תוצאות."
@ -1277,14 +1283,14 @@ msgstr "ניגודיות גבוהה"
msgid "Large Text" msgid "Large Text"
msgstr "טקסט גדול" msgstr "טקסט גדול"
#: ../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 "כיבוי" msgstr "כיבוי"
@ -1292,81 +1298,81 @@ msgstr "כיבוי"
msgid "Bluetooth Settings" msgid "Bluetooth Settings"
msgstr "הגדרות Bluetooth" msgstr "הגדרות Bluetooth"
#: ../js/ui/status/bluetooth.js:57 # javascript-format
#: ../js/ui/status/bluetooth.js:58
#, javascript-format #, javascript-format
msgid "%d Connected Device" msgid "%d Connected Device"
msgid_plural "%d Connected Devices" msgid_plural "%d Connected Devices"
msgstr[0] "התקן אחד מחובר" msgstr[0] "%d התקן מחובר"
msgstr[1] "%d התקנים מחוברים" msgstr[1] "%d התקנים מחוברים"
msgstr[2] "2 התקנים מחוברים"
#: ../js/ui/status/bluetooth.js:100 ../js/ui/status/bluetooth.js:128 #: ../js/ui/status/bluetooth.js:101 ../js/ui/status/bluetooth.js:129
#, javascript-format #, javascript-format
msgid "Authorization request from %s" msgid "Authorization request from %s"
msgstr "בקשת אישור מאת %s" msgstr "בקשת אישור מאת %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
#, javascript-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 מעוניין בצימוד עם מחשב זה"
#: ../js/ui/status/bluetooth.js:108 #: ../js/ui/status/bluetooth.js:109
msgid "Allow" msgid "Allow"
msgstr "לאפשר" msgstr "לאפשר"
#: ../js/ui/status/bluetooth.js:109 #: ../js/ui/status/bluetooth.js:110
msgid "Deny" msgid "Deny"
msgstr "לדחות" msgstr "לדחות"
#: ../js/ui/status/bluetooth.js:134 #: ../js/ui/status/bluetooth.js:135
#, javascript-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'"
#: ../js/ui/status/bluetooth.js:136 #: ../js/ui/status/bluetooth.js:137
msgid "Always grant access" msgid "Always grant access"
msgstr "תמיד להעניק גישה" msgstr "תמיד להעניק גישה"
#: ../js/ui/status/bluetooth.js:137 #: ../js/ui/status/bluetooth.js:138
msgid "Grant this time only" msgid "Grant this time only"
msgstr "הענקת גישה הפעם בלבד" msgstr "הענקת גישה הפעם בלבד"
#: ../js/ui/status/bluetooth.js:138 #: ../js/ui/status/bluetooth.js:139
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:165 #: ../js/ui/status/bluetooth.js:166
#, javascript-format #, javascript-format
msgid "Pairing confirmation for %s" msgid "Pairing confirmation for %s"
msgstr "אישור צימוד עבור %s" msgstr "אישור צימוד עבור %s"
#: ../js/ui/status/bluetooth.js:172 #: ../js/ui/status/bluetooth.js:173
#, javascript-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:175 #: ../js/ui/status/bluetooth.js:176
msgid "Matches" msgid "Matches"
msgstr "התאמות" msgstr "התאמות"
#: ../js/ui/status/bluetooth.js:176 #: ../js/ui/status/bluetooth.js:177
msgid "Does not match" msgid "Does not match"
msgstr "אינו תואם" msgstr "אינו תואם"
#: ../js/ui/status/bluetooth.js:195 #: ../js/ui/status/bluetooth.js:196
#, javascript-format #, javascript-format
msgid "Pairing request for %s" msgid "Pairing request for %s"
msgstr "בקשת צימוד עבור %s" msgstr "בקשת צימוד עבור %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 "נא להזין את קוד ה־PIN המוזכר בהתקן." msgstr "נא להזין את קוד ה־PIN המוזכר בהתקן."
#: ../js/ui/status/bluetooth.js:220 #: ../js/ui/status/bluetooth.js:221
msgid "OK" msgid "OK"
msgstr "אישור" msgstr "אישור"
@ -1378,83 +1384,95 @@ msgstr "בהירות"
msgid "<unknown>" msgid "<unknown>"
msgstr "<לא ידוע>" msgstr "<לא ידוע>"
#: ../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 "כבוימנותק" msgstr "כבוימנותק"
#: ../js/ui/status/network.js:276 ../js/ui/status/network.js:955
#: ../js/ui/status/rfkill.js:49
msgid "Network Settings"
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:386
msgid "unmanaged" msgid "unmanaged"
msgstr "לא מנוהל" msgstr "לא מנוהל"
#: ../js/ui/status/network.js:366 #: ../js/ui/status/network.js:388
msgid "disconnecting..." msgid "disconnecting..."
msgstr "בהליכי ניתוק..." msgstr "בהליכי ניתוק..."
#: ../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 "בהתחברות..." 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:397 ../js/ui/status/network.js:1163
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:405
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:409
msgid "unavailable" msgid "unavailable"
msgstr "לא זמין" msgstr "לא זמין"
#: ../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 "החיבור נכשל" msgstr "החיבור נכשל"
#: ../js/ui/status/network.js:654 #: ../js/ui/status/network.js:427 ../js/ui/status/network.js:513
msgid "Mobile Broadband Settings"
msgstr "הגדרות פס־רחב נייד"
#: ../js/ui/status/network.js:469 ../js/ui/status/network.js:1104
msgid "Hardware Disabled"
msgstr "מנוטרל חומרתית"
#: ../js/ui/status/network.js:696
msgid "Wi-Fi Networks" msgid "Wi-Fi Networks"
msgstr "רשתות אלחוטיות" msgstr "רשתות אלחוטיות"
#: ../js/ui/status/network.js:656 #: ../js/ui/status/network.js:698
msgid "Select a network" msgid "Select a network"
msgstr "בחירת רשת" msgstr "בחירת רשת"
#: ../js/ui/status/network.js:680 #: ../js/ui/status/network.js:722
msgid "No Networks" msgid "No Networks"
msgstr "אין רשתות" msgstr "אין רשתות"
#: ../js/ui/status/network.js:949 #: ../js/ui/status/network.js:991
msgid "Select Network" msgid "Select Network"
msgstr "בחירת רשת" msgstr "בחירת רשת"
#: ../js/ui/status/network.js:1034 #: ../js/ui/status/network.js:997
msgid "Wi-Fi Settings"
msgstr "הגדרות רשת אלחוטית"
#: ../js/ui/status/network.js:1085
msgid "Turn On" msgid "Turn On"
msgstr "הפעלה" msgstr "הפעלה"
#: ../js/ui/status/network.js:1167 #: ../js/ui/status/network.js:1108
msgid "Not Connected"
msgstr "לא מחובר"
#: ../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 "מנהל הרשתות" msgstr "מנהל הרשתות"
#: ../js/ui/status/network.js:1345 #: ../js/ui/status/network.js:1407
msgid "Connection failed" msgid "Connection failed"
msgstr "ההתחברות נכשל" msgstr "ההתחברות נכשל"
#: ../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 "הפעלת חיבור הרשת נכשלה" msgstr "הפעלת חיבור הרשת נכשלה"
@ -1477,12 +1495,12 @@ msgstr "מתבצע שערוך…"
#: ../js/ui/status/power.js:77 #: ../js/ui/status/power.js:77
#, javascript-format #, javascript-format
msgid "%d%02d Remaining (%d%%)" msgid "%d%02d Remaining (%d%%)"
msgstr "%d\\u2236%d נותרו (%d%%)" msgstr "%d\\u2236%02d נותרו (%d%%)"
#: ../js/ui/status/power.js:82 #: ../js/ui/status/power.js:82
#, javascript-format #, javascript-format
msgid "%d%02d Until Full (%d%%)" msgid "%d%02d Until Full (%d%%)"
msgstr "%d\\u2236%d עד לטעינה מלאה (%d%%)" msgstr "%d\\u2236%02d עד לטעינה מלאה (%d%%)"
#: ../js/ui/status/rfkill.js:43 #: ../js/ui/status/rfkill.js:43
msgid "Airplane Mode" msgid "Airplane Mode"
@ -1492,6 +1510,10 @@ msgstr "מצב טיסה"
msgid "On" msgid "On"
msgstr "פועל" msgstr "פועל"
#: ../js/ui/status/rfkill.js:49
msgid "Network Settings"
msgstr "הגדרות הרשת"
#: ../js/ui/status/system.js:305 #: ../js/ui/status/system.js:305
msgid "Switch User" msgid "Switch User"
msgstr "החלפת משתמש" msgstr "החלפת משתמש"
@ -1574,13 +1596,13 @@ msgstr "שחזור הגדרות"
msgid "Keep Changes" msgid "Keep Changes"
msgstr "שמירת שינויים" msgstr "שמירת שינויים"
# javascript-format
#: ../js/ui/windowManager.js:97 #: ../js/ui/windowManager.js:97
#, javascript-format #, javascript-format
msgid "Settings changes will revert in %d second" msgid "Settings changes will revert in %d second"
msgid_plural "Settings changes will revert in %d seconds" msgid_plural "Settings changes will revert in %d seconds"
msgstr[0] "שינויי הגדרות ישוחזרו בעוד שנייה" msgstr[0] "שינויי הגדרות ישוחזרו בעוד %d שנייה"
msgstr[1] "שינויי הגדרות ישוחזרו בעוד %d שניות" msgstr[1] "שינויי הגדרות ישוחזרו בעוד %d שניות"
msgstr[2] "שינויי הגדרות ישוחזרו בעוד 2 שניות"
#: ../src/calendar-server/evolution-calendar.desktop.in.in.h:1 #: ../src/calendar-server/evolution-calendar.desktop.in.in.h:1
msgid "Evolution Calendar" msgid "Evolution Calendar"
@ -1594,7 +1616,6 @@ msgid "%u Output"
msgid_plural "%u Outputs" msgid_plural "%u Outputs"
msgstr[0] "פלט אחד" msgstr[0] "פלט אחד"
msgstr[1] "%u פלטים" msgstr[1] "%u פלטים"
msgstr[2] "2 פלטים"
#. translators: #. translators:
#. * The number of sound inputs on a particular device #. * The number of sound inputs on a particular device
@ -1604,7 +1625,6 @@ msgid "%u Input"
msgid_plural "%u Inputs" msgid_plural "%u Inputs"
msgstr[0] "קלט אחד" msgstr[0] "קלט אחד"
msgstr[1] "%u קלטים" msgstr[1] "%u קלטים"
msgstr[2] "2 קלטים"
#: ../src/gvc/gvc-mixer-control.c:2373 #: ../src/gvc/gvc-mixer-control.c:2373
msgid "System Sounds" msgid "System Sounds"
@ -1643,6 +1663,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 "Screenshots" #~ msgid "Screenshots"
#~ msgstr "צילומי מסך" #~ msgstr "צילומי מסך"
@ -1719,12 +1756,6 @@ msgstr "המשתמש בחר להתעלם מתיבת דו־שיח האימות"
#~ "the current date, and use this extension. It should be changed when " #~ "the current date, and use this extension. It should be changed when "
#~ "recording to a different container format." #~ "recording to a different container format."
#~ msgid "There was an error loading the preferences dialog for %s:"
#~ msgstr "אירעה שגיאה בעת טעינת דו־שיח ההעדפות עבור %s:"
#~ msgid "Extension"
#~ msgstr "הרחבה"
#~ msgid "Session" #~ msgid "Session"
#~ msgstr "הפעלה" #~ msgstr "הפעלה"
@ -1734,14 +1765,6 @@ msgstr "המשתמש בחר להתעלם מתיבת דו־שיח האימות"
#~ msgid "Restart" #~ msgid "Restart"
#~ msgstr "הפעלה מחדש" #~ 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 "Screencast from %d %t" #~ msgid "Screencast from %d %t"
#~ msgstr "צילום מסך מהקובץ %d %t" #~ msgstr "צילום מסך מהקובץ %d %t"
@ -1763,9 +1786,6 @@ msgstr "המשתמש בחר להתעלם מתיבת דו־שיח האימות"
#~ msgid "Restarting the system." #~ msgid "Restarting the system."
#~ msgstr "המערכת מופעלת מחדש" #~ msgstr "המערכת מופעלת מחדש"
#~ msgid "Show Keyboard Layout"
#~ msgstr "הצגת פריסת המקלדת"
#~ msgid "Volume, network, battery" #~ msgid "Volume, network, battery"
#~ msgstr "עצמת שמע, רשת, סוללה" #~ msgstr "עצמת שמע, רשת, סוללה"
@ -1798,9 +1818,6 @@ msgstr "המשתמש בחר להתעלם מתיבת דו־שיח האימות"
#~ msgid "Set Up a New Device…" #~ msgid "Set Up a New Device…"
#~ msgstr "הגדרת התקן חדש…" #~ msgstr "הגדרת התקן חדש…"
#~ msgid "hardware disabled"
#~ msgstr "מנוטרל חומרתית"
#~ msgid "Connection" #~ msgid "Connection"
#~ msgstr "חיבור" #~ msgstr "חיבור"
@ -1834,9 +1851,6 @@ msgstr "המשתמש בחר להתעלם מתיבת דו־שיח האימות"
#~ msgid "Auto Ethernet" #~ msgid "Auto Ethernet"
#~ msgstr "אתרנט אוטומטי" #~ msgstr "אתרנט אוטומטי"
#~ msgid "Mobile broadband"
#~ msgstr "פס־רחב נייד"
#~ msgid "Auto broadband" #~ msgid "Auto broadband"
#~ msgstr "פס רחב אוטומטי" #~ msgstr "פס רחב אוטומטי"
@ -1938,9 +1952,6 @@ msgstr "המשתמש בחר להתעלם מתיבת דו־שיח האימות"
#~ msgid "Idle" #~ msgid "Idle"
#~ msgstr "בהמתנה" #~ msgstr "בהמתנה"
#~ msgid "Notifications"
#~ msgstr "התרעות"
#~ msgid "Your chat status will be set to busy" #~ msgid "Your chat status will be set to busy"
#~ msgstr "מצב הצ׳אט שלך יוגדר ל'עסוק'" #~ msgstr "מצב הצ׳אט שלך יוגדר ל'עסוק'"

497
po/hu.po

File diff suppressed because it is too large Load Diff

461
po/id.po

File diff suppressed because it is too large Load Diff

452
po/it.po

File diff suppressed because it is too large Load Diff

167
po/ja.po
View File

@ -13,8 +13,8 @@ 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-shell&keywords=I18N+L10N&component=general\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-shell&keywords=I18N+L10N&component=general\n"
"POT-Creation-Date: 2013-09-06 21:55+0000\n" "POT-Creation-Date: 2013-09-23 13:35+0000\n"
"PO-Revision-Date: 2013-09-07 22:28+0900\n" "PO-Revision-Date: 2013-09-23 23:30+0900\n"
"Last-Translator: Jiro Matsuzawa <jmatsuzawa@gnome.org>\n" "Last-Translator: Jiro Matsuzawa <jmatsuzawa@gnome.org>\n"
"Language-Team: Japanese <gnome-translation@gnome.gr.jp>\n" "Language-Team: Japanese <gnome-translation@gnome.gr.jp>\n"
"Language: ja\n" "Language: ja\n"
@ -52,6 +52,7 @@ msgid "GNOME Shell"
msgstr "GNOME Shell" msgstr "GNOME Shell"
#: ../data/gnome-shell.desktop.in.in.h:2 #: ../data/gnome-shell.desktop.in.in.h:2
#: ../data/gnome-shell-wayland.desktop.in.in.h:2
msgid "Window management and application launching" msgid "Window management and application launching"
msgstr "ウィンドウ管理とアプリケーションの起動" msgstr "ウィンドウ管理とアプリケーションの起動"
@ -64,6 +65,10 @@ msgstr "GNOME Shell 拡張機能設定"
msgid "Configure GNOME Shell Extensions" msgid "Configure GNOME Shell Extensions"
msgstr "GNOME Shell 拡張機能の設定を行います" msgstr "GNOME Shell 拡張機能の設定を行います"
#: ../data/gnome-shell-wayland.desktop.in.in.h:1
msgid "GNOME Shell (wayland compositor)"
msgstr "GNOME Shell (Wayland コンポジター)"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:1 #: ../data/org.gnome.shell.gschema.xml.in.in.h:1
msgid "Enable internal tools useful for developers and testers from Alt-F2" msgid "Enable internal tools useful for developers and testers from Alt-F2"
msgstr "Alt-F2 から開発・テスト用の内部ツールを利用可能にする" msgstr "Alt-F2 から開発・テスト用の内部ツールを利用可能にする"
@ -212,6 +217,10 @@ msgstr "ワークスペースを動的に管理する"
msgid "Workspaces only on primary monitor" msgid "Workspaces only on primary monitor"
msgstr "プライマリモニターのみワークスペースを切り替える" msgstr "プライマリモニターのみワークスペースを切り替える"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:38
msgid "Delay focus changes in mouse mode until the pointer stops moving"
msgstr "マウスモードにおけるフォーカス遷移をポインターが停止するまで遅延させる"
#: ../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:"
@ -225,10 +234,10 @@ msgstr "拡張機能"
msgid "Select an extension to configure using the combobox above." msgid "Select an extension to configure using the combobox above."
msgstr "設定する拡張機能を上部のコンボボックスから選択してください。" msgstr "設定する拡張機能を上部のコンボボックスから選択してください。"
#: ../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 "キャンセル" msgstr "キャンセル"
@ -267,8 +276,8 @@ msgstr "(たとえば、user あるいは %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 "ユーザー名: " msgstr "ユーザー名: "
@ -289,42 +298,42 @@ msgstr "認証エラー"
msgid "(or swipe finger)" msgid "(or swipe finger)"
msgstr "(あるいは指でスワイプする)" msgstr "(あるいは指でスワイプする)"
#: ../js/misc/util.js:97 #: ../js/misc/util.js:98
msgid "Command not found" msgid "Command not found"
msgstr "コマンドが見つかりません" msgstr "コマンドが見つかりません"
#. Replace "Error invoking GLib.shell_parse_argv: " with #. Replace "Error invoking GLib.shell_parse_argv: " with
#. something nicer #. something nicer
#: ../js/misc/util.js:130 #: ../js/misc/util.js:131
msgid "Could not parse command:" msgid "Could not parse command:"
msgstr "次のコマンドは解析できません:" msgstr "次のコマンドは解析できません:"
#: ../js/misc/util.js:138 #: ../js/misc/util.js:139
#, c-format #, c-format
msgid "Execution of '%s' failed:" msgid "Execution of '%s' failed:"
msgstr "'%s'の実行に失敗しました:" msgstr "'%s'の実行に失敗しました:"
#: ../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 "よく使うアプリケーションがここに表示されます" msgstr "よく使うアプリケーションがここに表示されます"
#: ../js/ui/appDisplay.js:689 #: ../js/ui/appDisplay.js:712
msgid "Frequent" msgid "Frequent"
msgstr "常用" msgstr "常用"
#: ../js/ui/appDisplay.js:696 #: ../js/ui/appDisplay.js:719
msgid "All" msgid "All"
msgstr "すべて" msgstr "すべて"
#: ../js/ui/appDisplay.js:1491 #: ../js/ui/appDisplay.js:1514
msgid "New Window" msgid "New Window"
msgstr "新しいウィンドウで開く" msgstr "新しいウィンドウで開く"
#: ../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 "お気に入りから削除" msgstr "お気に入りから削除"
#: ../js/ui/appDisplay.js:1495 #: ../js/ui/appDisplay.js:1518
msgid "Add to Favorites" msgid "Add to Favorites"
msgstr "お気に入りに追加" msgstr "お気に入りに追加"
@ -338,7 +347,8 @@ msgstr "%s をお気に入りに追加しました。"
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/status/system.js:325 #: ../js/ui/backgroundMenu.js:19 ../js/ui/panel.js:807
#: ../js/ui/status/system.js:325
msgid "Settings" msgid "Settings"
msgstr "設定" msgstr "設定"
@ -524,83 +534,83 @@ msgstr "%s で開く"
msgid "Eject" msgid "Eject"
msgstr "取り出し" msgstr "取り出し"
#: ../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 "パスワード:" msgstr "パスワード:"
#: ../js/ui/components/keyring.js:107 #: ../js/ui/components/keyring.js:110
msgid "Type again:" msgid "Type again:"
msgstr "再入力:" msgstr "再入力:"
#: ../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 "接続" msgstr "接続"
#. 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 "パスワード: " msgstr "パスワード: "
#. static WEP #. static WEP
#: ../js/ui/components/networkAgent.js:223 #: ../js/ui/components/networkAgent.js:227
msgid "Key: " msgid "Key: "
msgstr "キー: " msgstr "キー: "
#: ../js/ui/components/networkAgent.js:261 #: ../js/ui/components/networkAgent.js:265
msgid "Identity: " msgid "Identity: "
msgstr "識別子: " msgstr "識別子: "
#: ../js/ui/components/networkAgent.js:263 #: ../js/ui/components/networkAgent.js:267
msgid "Private key password: " msgid "Private key password: "
msgstr "プライベートキーパスワード: " msgstr "プライベートキーパスワード: "
#: ../js/ui/components/networkAgent.js:275 #: ../js/ui/components/networkAgent.js:279
msgid "Service: " msgid "Service: "
msgstr "サービス: " msgstr "サービス: "
#: ../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 "無線ネットワークでは認証が要求されます" msgstr "無線ネットワークでは認証が要求されます"
#: ../js/ui/components/networkAgent.js:305 #: ../js/ui/components/networkAgent.js:309
#, c-format #, c-format
msgid "Passwords or encryption keys are required to access the wireless network '%s'." msgid "Passwords or encryption keys are required to access the wireless network '%s'."
msgstr "無線ネットワーク '%s' にアクセスするにはパスワードか、または暗号化キーが必要です。" msgstr "無線ネットワーク '%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 の認証" msgstr "有線 802.1X の認証"
#: ../js/ui/components/networkAgent.js:311 #: ../js/ui/components/networkAgent.js:315
msgid "Network name: " msgid "Network name: "
msgstr "ネットワーク名: " msgstr "ネットワーク名: "
#: ../js/ui/components/networkAgent.js:316 #: ../js/ui/components/networkAgent.js:320
msgid "DSL authentication" msgid "DSL authentication"
msgstr "DSL 認証" msgstr "DSL 認証"
#: ../js/ui/components/networkAgent.js:323 #: ../js/ui/components/networkAgent.js:327
msgid "PIN code required" msgid "PIN code required"
msgstr "PIN コードが必要です" msgstr "PIN コードが必要です"
#: ../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 コードが必要です" msgstr "モバイルブロードバンドデバイスには PIN コードが必要です"
#: ../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 "モバイルブロードバンドネットワークのパスワード" msgstr "モバイルブロードバンドネットワークのパスワード"
#: ../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 "'%s' への接続にパスワードが必要です。" msgstr "'%s' への接続にパスワードが必要です。"
@ -856,7 +866,7 @@ msgstr "アカウントを表示"
msgid "Unknown reason" msgid "Unknown reason"
msgstr "原因不明" msgstr "原因不明"
#: ../js/ui/ctrlAltTab.js:29 ../js/ui/viewSelector.js:96 #: ../js/ui/ctrlAltTab.js:29 ../js/ui/viewSelector.js:100
msgid "Windows" msgid "Windows"
msgstr "ウィンドウ" msgstr "ウィンドウ"
@ -994,7 +1004,7 @@ msgstr "インストール"
msgid "Download and install '%s' from extensions.gnome.org?" msgid "Download and install '%s' from extensions.gnome.org?"
msgstr "extensions.gnome.org から '%s' をダウンロードしてインストールしますか?" msgstr "extensions.gnome.org から '%s' をダウンロードしてインストールしますか?"
#: ../js/ui/keyboard.js:619 ../js/ui/status/keyboard.js:334 #: ../js/ui/keyboard.js:619 ../js/ui/status/keyboard.js:333
msgid "Keyboard" msgid "Keyboard"
msgstr "キーボード" msgstr "キーボード"
@ -1070,11 +1080,11 @@ msgstr "トレイメニュー"
msgid "No Messages" msgid "No Messages"
msgstr "メッセージなし" msgstr "メッセージなし"
#: ../js/ui/messageTray.js:1812 #: ../js/ui/messageTray.js:1813
msgid "Message Tray" msgid "Message Tray"
msgstr "メッセージトレイ" msgstr "メッセージトレイ"
#: ../js/ui/messageTray.js:2787 #: ../js/ui/messageTray.js:2788
msgid "System Information" msgid "System Information"
msgstr "システム情報" msgstr "システム情報"
@ -1105,21 +1115,17 @@ msgstr "アクティビティ画面"
msgid "Type to search…" msgid "Type to search…"
msgstr "検索ワードを入力…" msgstr "検索ワードを入力…"
#: ../js/ui/panel.js:516 #: ../js/ui/panel.js:518
msgid "Quit" 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:568 #: ../js/ui/panel.js:570
msgid "Activities" msgid "Activities"
msgstr "アクティビティ" msgstr "アクティビティ"
#: ../js/ui/panel.js:805 #: ../js/ui/panel.js:903
msgid "Settings Menu"
msgstr "設定メニュー"
#: ../js/ui/panel.js:901
msgid "Top Bar" msgid "Top Bar"
msgstr "トップバー" msgstr "トップバー"
@ -1128,7 +1134,7 @@ msgstr "トップバー"
#. "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:226 #: ../js/ui/popupMenu.js:233
msgid "toggle-switch-us" msgid "toggle-switch-us"
msgstr "toggle-switch-us" msgstr "toggle-switch-us"
@ -1156,7 +1162,7 @@ msgstr[0] "%d 件の新しい通知"
msgid "Lock" msgid "Lock"
msgstr "ロック" msgstr "ロック"
#: ../js/ui/screenShield.js:703 #: ../js/ui/screenShield.js:704
msgid "GNOME needs to lock the screen" msgid "GNOME needs to lock the screen"
msgstr "画面をロックする必要があります" msgstr "画面をロックする必要があります"
@ -1167,11 +1173,11 @@ msgstr "画面をロックする必要があります"
#. #.
#. XXX: another option is to kick the user into the gdm login #. XXX: another option is to kick the user into the gdm login
#. screen, where we're not affected by grabs #. screen, where we're not affected by grabs
#: ../js/ui/screenShield.js:830 ../js/ui/screenShield.js:1296 #: ../js/ui/screenShield.js:831 ../js/ui/screenShield.js:1297
msgid "Unable to lock" msgid "Unable to lock"
msgstr "ロックできません" msgstr "ロックできません"
#: ../js/ui/screenShield.js:831 ../js/ui/screenShield.js:1297 #: ../js/ui/screenShield.js:832 ../js/ui/screenShield.js:1298
msgid "Lock was blocked by an application" msgid "Lock was blocked by an application"
msgstr "アプリケーションによってロックがブロックされました" msgstr "アプリケーションによってロックがブロックされました"
@ -1253,9 +1259,9 @@ msgstr "大きな文字"
#. 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"
@ -1268,78 +1274,78 @@ msgstr "オフにする"
msgid "Bluetooth Settings" msgid "Bluetooth Settings"
msgstr "Bluetooth の設定" msgstr "Bluetooth の設定"
#: ../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台" msgstr[0] "接続デバイス: %d台"
#: ../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 "%s からアクセス許可の要求" msgstr "%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 "デバイス %s がこのコンピューターとのペアリングを要求しています" msgstr "デバイス %s がこのコンピューターとのペアリングを要求しています"
#: ../js/ui/status/bluetooth.js:108 #: ../js/ui/status/bluetooth.js:109
msgid "Allow" msgid "Allow"
msgstr "許可" msgstr "許可"
#: ../js/ui/status/bluetooth.js:109 #: ../js/ui/status/bluetooth.js:110
msgid "Deny" msgid "Deny"
msgstr "拒否" msgstr "拒否"
#: ../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 "デバイス '%s' が サービス '%s' へのアクセスを要求しています" msgstr "デバイス '%s' が サービス '%s' へのアクセスを要求しています"
#: ../js/ui/status/bluetooth.js:136 #: ../js/ui/status/bluetooth.js:137
msgid "Always grant access" msgid "Always grant access"
msgstr "許可" msgstr "許可"
#: ../js/ui/status/bluetooth.js:137 #: ../js/ui/status/bluetooth.js:138
msgid "Grant this time only" msgid "Grant this time only"
msgstr "今回のみ許可" msgstr "今回のみ許可"
#: ../js/ui/status/bluetooth.js:138 #: ../js/ui/status/bluetooth.js:139
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:165 #: ../js/ui/status/bluetooth.js:166
#, c-format #, c-format
msgid "Pairing confirmation for %s" msgid "Pairing confirmation for %s"
msgstr "%s からペアリングの確認" msgstr "%s からペアリングの確認"
#: ../js/ui/status/bluetooth.js:172 #: ../js/ui/status/bluetooth.js:173
#, c-format #, c-format
msgid "Please confirm whether the Passkey '%06d' matches the one on the device." msgid "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:175 #: ../js/ui/status/bluetooth.js:176
msgid "Matches" msgid "Matches"
msgstr "一致" msgstr "一致"
#: ../js/ui/status/bluetooth.js:176 #: ../js/ui/status/bluetooth.js:177
msgid "Does not match" msgid "Does not match"
msgstr "不一致" msgstr "不一致"
#: ../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 "%s からペアリングの要求" msgstr "%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 "デバイスの PIN コードを入力してください。" msgstr "デバイスの PIN コードを入力してください。"
#: ../js/ui/status/bluetooth.js:220 #: ../js/ui/status/bluetooth.js:221
msgid "OK" msgid "OK"
msgstr "OK" msgstr "OK"
@ -1347,7 +1353,7 @@ msgstr "OK"
msgid "Brightness" msgid "Brightness"
msgstr "明るさ" msgstr "明るさ"
#: ../js/ui/status/keyboard.js:404 #: ../js/ui/status/keyboard.js:403
msgid "Show Keyboard Layout" msgid "Show Keyboard Layout"
msgstr "キーボードレイアウトの表示" msgstr "キーボードレイアウトの表示"
@ -1423,15 +1429,15 @@ msgstr "オンにする"
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 "ネットワークマネージャー" msgstr "ネットワークマネージャー"
#: ../js/ui/status/network.js:1345 #: ../js/ui/status/network.js:1346
msgid "Connection failed" msgid "Connection failed"
msgstr "接続失敗" msgstr "接続失敗"
#: ../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 "ネットワーク接続を有効にできません" msgstr "ネットワーク接続を有効にできません"
@ -1517,11 +1523,11 @@ msgstr "他のユーザーでログイン"
msgid "Unlock Window" msgid "Unlock Window"
msgstr "ロック解除" msgstr "ロック解除"
#: ../js/ui/viewSelector.js:100 #: ../js/ui/viewSelector.js:104
msgid "Applications" msgid "Applications"
msgstr "アプリケーション" msgstr "アプリケーション"
#: ../js/ui/viewSelector.js:104 #: ../js/ui/viewSelector.js:108
msgid "Search" msgid "Search"
msgstr "検索" msgstr "検索"
@ -1622,6 +1628,9 @@ msgstr "パスワードを空白にすることはできません。"
msgid "Authentication dialog was dismissed by the user" msgid "Authentication dialog was dismissed by the user"
msgstr "認証ダイアログはユーザーに拒否されました" msgstr "認証ダイアログはユーザーに拒否されました"
#~ msgid "Settings Menu"
#~ msgstr "設定メニュー"
#~ msgid "Internally used to store the last IM presence explicitly set by the user. The value here is from the TpConnectionPresenceType enumeration." #~ msgid "Internally used to store the last IM presence explicitly set by the user. The value here is from the TpConnectionPresenceType enumeration."
#~ msgstr "ユーザーにより明示的に設定された最新の IM プレゼンスを保存するのに内部的に使用されます。ここは TpConnectionPresenceType 列挙型の値になります。" #~ msgstr "ユーザーにより明示的に設定された最新の IM プレゼンスを保存するのに内部的に使用されます。ここは TpConnectionPresenceType 列挙型の値になります。"

122
po/kk.po
View File

@ -8,8 +8,8 @@ msgstr ""
"Project-Id-Version: master\n" "Project-Id-Version: 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-14 18:10+0000\n" "POT-Creation-Date: 2013-09-23 13:35+0000\n"
"PO-Revision-Date: 2013-09-15 13:44+0600\n" "PO-Revision-Date: 2013-09-24 06:33+0600\n"
"Last-Translator: Baurzhan Muftakhidinov <baurthefirst@gmail.com>\n" "Last-Translator: Baurzhan Muftakhidinov <baurthefirst@gmail.com>\n"
"Language-Team: Kazakh <kk_KZ@googlegroups.com>\n" "Language-Team: Kazakh <kk_KZ@googlegroups.com>\n"
"Language: kk\n" "Language: kk\n"
@ -267,6 +267,10 @@ msgstr "Жұмыс орындары динамикалы түрде басқар
msgid "Workspaces only on primary monitor" msgid "Workspaces only on primary monitor"
msgstr "Жұмыс орындар тек біріншілік мониторда" msgstr "Жұмыс орындар тек біріншілік мониторда"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:38
msgid "Delay focus changes in mouse mode until the pointer stops moving"
msgstr "Тышқан режиміндегі фокусты ауыстыру курсор тоқтағанша дейін кідірту"
#: ../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:"
@ -280,10 +284,10 @@ msgstr "Кеңейту"
msgid "Select an extension to configure using the combobox above." msgid "Select an extension to configure using the combobox above."
msgstr "Жоғарыдағы ашылмалы тізімнен баптау үшін кеңейтуді таңдаңыз." msgstr "Жоғарыдағы ашылмалы тізімнен баптау үшін кеңейтуді таңдаңыз."
#: ../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 "Бас тарту" msgstr "Бас тарту"
@ -322,8 +326,8 @@ msgstr "(мыс., пайдаланушы не %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 "Пайдаланушы аты:" msgstr "Пайдаланушы аты:"
@ -359,27 +363,27 @@ msgstr "Команданы талдау мүмкін емес:"
msgid "Execution of '%s' failed:" msgid "Execution of '%s' failed:"
msgstr "'%s' жөнелту сәтсіз:" msgstr "'%s' жөнелту сәтсіз:"
#: ../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 "Жиі қолданылатын қолданбалар осында көрінеді" msgstr "Жиі қолданылатын қолданбалар осында көрінеді"
#: ../js/ui/appDisplay.js:714 #: ../js/ui/appDisplay.js:712
msgid "Frequent" msgid "Frequent"
msgstr "Жиі" msgstr "Жиі"
#: ../js/ui/appDisplay.js:721 #: ../js/ui/appDisplay.js:719
msgid "All" msgid "All"
msgstr "Барлық" msgstr "Барлық"
#: ../js/ui/appDisplay.js:1516 #: ../js/ui/appDisplay.js:1514
msgid "New Window" msgid "New Window"
msgstr "Жаңа терезе" msgstr "Жаңа терезе"
#: ../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 "Таңдамалылардан өшіру" msgstr "Таңдамалылардан өшіру"
#: ../js/ui/appDisplay.js:1520 #: ../js/ui/appDisplay.js:1518
msgid "Add to Favorites" msgid "Add to Favorites"
msgstr "Таңдамалыларға қосу" msgstr "Таңдамалыларға қосу"
@ -580,85 +584,85 @@ msgstr "%s көмегімен ашу"
msgid "Eject" msgid "Eject"
msgstr "Шығару" msgstr "Шығару"
#: ../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 "Пароль:" msgstr "Пароль:"
#: ../js/ui/components/keyring.js:107 #: ../js/ui/components/keyring.js:110
msgid "Type again:" msgid "Type again:"
msgstr "Қайтадан енгізіңіз:" msgstr "Қайтадан енгізіңіз:"
#: ../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 "Байланысу" msgstr "Байланысу"
#. 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 "Пароль:" msgstr "Пароль:"
#. static WEP #. static WEP
#: ../js/ui/components/networkAgent.js:223 #: ../js/ui/components/networkAgent.js:227
msgid "Key: " msgid "Key: "
msgstr "Кілт:" msgstr "Кілт:"
#: ../js/ui/components/networkAgent.js:261 #: ../js/ui/components/networkAgent.js:265
msgid "Identity: " msgid "Identity: "
msgstr "Анықтағыш:" msgstr "Анықтағыш:"
#: ../js/ui/components/networkAgent.js:263 #: ../js/ui/components/networkAgent.js:267
msgid "Private key password: " msgid "Private key password: "
msgstr "Жеке кілт паролі:" msgstr "Жеке кілт паролі:"
#: ../js/ui/components/networkAgent.js:275 #: ../js/ui/components/networkAgent.js:279
msgid "Service: " msgid "Service: "
msgstr "Қызмет:" msgstr "Қызмет:"
#: ../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 "Сымсыз желісі аутентификацияны талап етеді" msgstr "Сымсыз желісі аутентификацияны талап етеді"
#: ../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 "
"'%s'." "'%s'."
msgstr "'%s' сымсыз желісіне қатынау үшін парольдер не шифрлеу кілттері керек." msgstr "'%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 аутентификациясы" msgstr "Сымды 802.1X аутентификациясы"
#: ../js/ui/components/networkAgent.js:311 #: ../js/ui/components/networkAgent.js:315
msgid "Network name: " msgid "Network name: "
msgstr "Желі аты:" msgstr "Желі аты:"
#: ../js/ui/components/networkAgent.js:316 #: ../js/ui/components/networkAgent.js:320
msgid "DSL authentication" msgid "DSL authentication"
msgstr "DSL аутентификациясы" msgstr "DSL аутентификациясы"
#: ../js/ui/components/networkAgent.js:323 #: ../js/ui/components/networkAgent.js:327
msgid "PIN code required" msgid "PIN code required"
msgstr "PIN коды керек" msgstr "PIN коды керек"
#: ../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 коды керек" msgstr "Сымсыз кеңжолақты құрылғы үшін PIN коды керек"
#: ../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 "Сымсыз кеңжолақты желісінің паролі" msgstr "Сымсыз кеңжолақты желісінің паролі"
#: ../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 "'%s' үшін байланысты орнату үшін пароль керек." msgstr "'%s' үшін байланысты орнату үшін пароль керек."
@ -1139,11 +1143,11 @@ msgstr "Трей мәзірі"
msgid "No Messages" msgid "No Messages"
msgstr "Хабарламалар жоқ" msgstr "Хабарламалар жоқ"
#: ../js/ui/messageTray.js:1812 #: ../js/ui/messageTray.js:1813
msgid "Message Tray" msgid "Message Tray"
msgstr "Жүйелік трей" msgstr "Жүйелік трей"
#: ../js/ui/messageTray.js:2787 #: ../js/ui/messageTray.js:2788
msgid "System Information" msgid "System Information"
msgstr "Жүйелік ақпарат" msgstr "Жүйелік ақпарат"
@ -1318,9 +1322,9 @@ msgstr "Үлкен мәтін"
#. 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"
@ -1333,79 +1337,79 @@ msgstr "Сөндіру"
msgid "Bluetooth Settings" msgid "Bluetooth Settings"
msgstr "Bluetooth баптаулары" msgstr "Bluetooth баптаулары"
#: ../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 байланысқан құрылғы" msgstr[0] "%d байланысқан құрылғы"
#: ../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 "%s жіберген авторизация сұранымы" msgstr "%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 "%s құрылғысы бұл компьютермен пар болғысы кеп тұр" msgstr "%s құрылғысы бұл компьютермен пар болғысы кеп тұр"
#: ../js/ui/status/bluetooth.js:108 #: ../js/ui/status/bluetooth.js:109
msgid "Allow" msgid "Allow"
msgstr "Рұқсат ету" msgstr "Рұқсат ету"
#: ../js/ui/status/bluetooth.js:109 #: ../js/ui/status/bluetooth.js:110
msgid "Deny" msgid "Deny"
msgstr "Тайдыру" msgstr "Тайдыру"
#: ../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 "%s құрылғысы '%s' қызметін қатынағысы кеп тұр" msgstr "%s құрылғысы '%s' қызметін қатынағысы кеп тұр"
#: ../js/ui/status/bluetooth.js:136 #: ../js/ui/status/bluetooth.js:137
msgid "Always grant access" msgid "Always grant access"
msgstr "Әрқашан рұқсат ету" msgstr "Әрқашан рұқсат ету"
#: ../js/ui/status/bluetooth.js:137 #: ../js/ui/status/bluetooth.js:138
msgid "Grant this time only" msgid "Grant this time only"
msgstr "Тек осы ретке рұқсат ету" msgstr "Тек осы ретке рұқсат ету"
#: ../js/ui/status/bluetooth.js:138 #: ../js/ui/status/bluetooth.js:139
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:165 #: ../js/ui/status/bluetooth.js:166
#, c-format #, c-format
msgid "Pairing confirmation for %s" msgid "Pairing confirmation for %s"
msgstr "%s жіберген парлау растауы" msgstr "%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."
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:175 #: ../js/ui/status/bluetooth.js:176
msgid "Matches" msgid "Matches"
msgstr "Сәйкес" msgstr "Сәйкес"
#: ../js/ui/status/bluetooth.js:176 #: ../js/ui/status/bluetooth.js:177
msgid "Does not match" msgid "Does not match"
msgstr "Сәйкес емес" msgstr "Сәйкес емес"
#: ../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 "%s үшін парлау сұранымы" msgstr "%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 "Құрылғыда көрсетілген PIN кодын енгізіңіз." msgstr "Құрылғыда көрсетілген PIN кодын енгізіңіз."
#: ../js/ui/status/bluetooth.js:220 #: ../js/ui/status/bluetooth.js:221
msgid "OK" msgid "OK"
msgstr "ОК" msgstr "ОК"
@ -1489,15 +1493,15 @@ msgstr "Іске қосу"
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 "Желілер басқарушысы" msgstr "Желілер басқарушысы"
#: ../js/ui/status/network.js:1345 #: ../js/ui/status/network.js:1346
msgid "Connection failed" msgid "Connection failed"
msgstr "Байланыс орнату сәтсіз" msgstr "Байланыс орнату сәтсіз"
#: ../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 "Желілік байланысты белсендіру сәтсіз" msgstr "Желілік байланысты белсендіру сәтсіз"

442
po/lt.po

File diff suppressed because it is too large Load Diff

548
po/lv.po

File diff suppressed because it is too large Load Diff

207
po/nb.po
View File

@ -8,8 +8,8 @@ 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-08 11:22+0200\n" "POT-Creation-Date: 2013-10-03 20:38+0200\n"
"PO-Revision-Date: 2013-09-08 11:23+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"
"Language: \n" "Language: \n"
@ -47,6 +47,7 @@ msgid "GNOME Shell"
msgstr "GNOME Shell" msgstr "GNOME Shell"
#: ../data/gnome-shell.desktop.in.in.h:2 #: ../data/gnome-shell.desktop.in.in.h:2
#: ../data/gnome-shell-wayland.desktop.in.in.h:2
msgid "Window management and application launching" msgid "Window management and application launching"
msgstr "Vindushåndtering og oppstart av programmer" msgstr "Vindushåndtering og oppstart av programmer"
@ -59,6 +60,10 @@ msgstr "Brukervalg for GNOME Shell utvidelser"
msgid "Configure GNOME Shell Extensions" msgid "Configure GNOME Shell Extensions"
msgstr "Konfigurer utvidelser for GNOME Shell" msgstr "Konfigurer utvidelser for GNOME Shell"
#: ../data/gnome-shell-wayland.desktop.in.in.h:1
msgid "GNOME Shell (wayland compositor)"
msgstr "GNOME Shell (wayland kompositør)"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:1 #: ../data/org.gnome.shell.gschema.xml.in.in.h:1
msgid "Enable internal tools useful for developers and testers from Alt-F2" msgid "Enable internal tools useful for developers and testers from Alt-F2"
msgstr "Aktiver interne verktøy for utviklere og testere fra Alt-F2" msgstr "Aktiver interne verktøy for utviklere og testere fra Alt-F2"
@ -243,6 +248,10 @@ msgstr "Arbeidsområder håndteres dynamisk"
msgid "Workspaces only on primary monitor" msgid "Workspaces only on primary monitor"
msgstr "Arbeidsområder vises kun på hovedskjerm" msgstr "Arbeidsområder vises kun på hovedskjerm"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:38
msgid "Delay focus changes in mouse mode until the pointer stops moving"
msgstr ""
#: ../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:"
@ -256,10 +265,10 @@ msgstr "Utvidelse"
msgid "Select an extension to configure using the combobox above." msgid "Select an extension to configure using the combobox above."
msgstr "Velg en utvidelse som skal konfigureres med komboboksen over." msgstr "Velg en utvidelse som skal konfigureres med komboboksen over."
#: ../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:703
msgid "Cancel" msgid "Cancel"
msgstr "Avbryt" msgstr "Avbryt"
@ -298,8 +307,8 @@ msgstr "(f.eks. bruker eller %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 "Brukernavn: " msgstr "Brukernavn: "
@ -320,42 +329,42 @@ msgstr "Autentiseringsfeil"
msgid "(or swipe finger)" msgid "(or swipe finger)"
msgstr "(eller dra finger)" msgstr "(eller dra finger)"
#: ../js/misc/util.js:97 #: ../js/misc/util.js:98
msgid "Command not found" msgid "Command not found"
msgstr "Kommando ikke funnet" msgstr "Kommando ikke funnet"
#. Replace "Error invoking GLib.shell_parse_argv: " with #. Replace "Error invoking GLib.shell_parse_argv: " with
#. something nicer #. something nicer
#: ../js/misc/util.js:130 #: ../js/misc/util.js:131
msgid "Could not parse command:" msgid "Could not parse command:"
msgstr "Klarte ikke å lese kommando:" msgstr "Klarte ikke å lese kommando:"
#: ../js/misc/util.js:138 #: ../js/misc/util.js:139
#, c-format #, c-format
msgid "Execution of '%s' failed:" msgid "Execution of '%s' failed:"
msgstr "Kjøring av «%s» feilet:" msgstr "Kjøring av «%s» feilet:"
#: ../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 "Ofte brukte programmer vil vises her" msgstr "Ofte brukte programmer vil vises her"
#: ../js/ui/appDisplay.js:689 #: ../js/ui/appDisplay.js:712
msgid "Frequent" msgid "Frequent"
msgstr "Ofte" msgstr "Ofte"
#: ../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 "Nytt vindu" msgstr "Nytt vindu"
#: ../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 "Fjern fra favoritter" msgstr "Fjern fra favoritter"
#: ../js/ui/appDisplay.js:1495 #: ../js/ui/appDisplay.js:1518
msgid "Add to Favorites" msgid "Add to Favorites"
msgstr "Legg til i favoritter" msgstr "Legg til i favoritter"
@ -369,7 +378,8 @@ msgstr "%s ble lagt til i dine favoritter."
msgid "%s has been removed from your favorites." msgid "%s has been removed from your favorites."
msgstr "%s ble fjernet fra dine favoritter." msgstr "%s ble fjernet fra dine favoritter."
#: ../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 "Innstillinger" msgstr "Innstillinger"
@ -555,50 +565,50 @@ msgstr "Åpne med %s"
msgid "Eject" msgid "Eject"
msgstr "Løs ut" msgstr "Løs ut"
#: ../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 "Passord:" msgstr "Passord:"
#: ../js/ui/components/keyring.js:107 #: ../js/ui/components/keyring.js:110
msgid "Type again:" msgid "Type again:"
msgstr "Skriv på nytt:" msgstr "Skriv på nytt:"
#: ../js/ui/components/networkAgent.js:127 ../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"
#. 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 "Passord: " msgstr "Passord: "
#. static WEP #. static WEP
#: ../js/ui/components/networkAgent.js:223 #: ../js/ui/components/networkAgent.js:227
msgid "Key: " msgid "Key: "
msgstr "Nøkkel: " msgstr "Nøkkel: "
#: ../js/ui/components/networkAgent.js:261 #: ../js/ui/components/networkAgent.js:265
msgid "Identity: " msgid "Identity: "
msgstr "Identitet: " msgstr "Identitet: "
#: ../js/ui/components/networkAgent.js:263 #: ../js/ui/components/networkAgent.js:267
msgid "Private key password: " msgid "Private key password: "
msgstr "Passord for privat nøkkel: " msgstr "Passord for privat nøkkel: "
#: ../js/ui/components/networkAgent.js:275 #: ../js/ui/components/networkAgent.js:279
msgid "Service: " msgid "Service: "
msgstr "Tjeneste: " msgstr "Tjeneste: "
#: ../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 "Autentisering kreves av trådløst nettverk" msgstr "Autentisering kreves av trådløst nettverk"
#: ../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 "
@ -607,35 +617,35 @@ msgstr ""
"Passord eller krypteringsnøkler kreves for å koble til trådløst nettverk " "Passord eller krypteringsnøkler kreves for å koble til trådløst nettverk "
"«%s»." "«%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 autentisering for trådbundet nettverk" msgstr "802.1X autentisering for trådbundet nettverk"
#: ../js/ui/components/networkAgent.js:311 #: ../js/ui/components/networkAgent.js:315
msgid "Network name: " msgid "Network name: "
msgstr "Navn på nettverk: " msgstr "Navn på nettverk: "
#: ../js/ui/components/networkAgent.js:316 #: ../js/ui/components/networkAgent.js:320
msgid "DSL authentication" msgid "DSL authentication"
msgstr "DSL-autentisering" msgstr "DSL-autentisering"
#: ../js/ui/components/networkAgent.js:323 #: ../js/ui/components/networkAgent.js:327
msgid "PIN code required" msgid "PIN code required"
msgstr "PIN-kode kreves" msgstr "PIN-kode kreves"
#: ../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-kode kreves for mobil bredbåndsenhet" msgstr "PIN-kode kreves for mobil bredbåndsenhet"
#: ../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 "Nettverkspassord for mobilt bredbånd" msgstr "Nettverkspassord for mobilt bredbånd"
#: ../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 "Et passord kreves for å koble til «%s»." msgstr "Et passord kreves for å koble til «%s»."
@ -899,7 +909,7 @@ msgstr "Vis konto"
msgid "Unknown reason" msgid "Unknown reason"
msgstr "Ukjent årsak" msgstr "Ukjent årsak"
#: ../js/ui/ctrlAltTab.js:29 ../js/ui/viewSelector.js:96 #: ../js/ui/ctrlAltTab.js:29 ../js/ui/viewSelector.js:100
msgid "Windows" msgid "Windows"
msgstr "Vinduer" msgstr "Vinduer"
@ -1047,7 +1057,7 @@ msgstr "Installer"
msgid "Download and install '%s' from extensions.gnome.org?" msgid "Download and install '%s' from extensions.gnome.org?"
msgstr "Last ned og installer «%s» fra extensions.gnome.org?" msgstr "Last ned og installer «%s» fra extensions.gnome.org?"
#: ../js/ui/keyboard.js:619 ../js/ui/status/keyboard.js:334 #: ../js/ui/keyboard.js:619 ../js/ui/status/keyboard.js:333
msgid "Keyboard" msgid "Keyboard"
msgstr "Tastatur" msgstr "Tastatur"
@ -1123,11 +1133,11 @@ msgstr "Meny for varslingsområde"
msgid "No Messages" msgid "No Messages"
msgstr "Ingen meldinger" msgstr "Ingen meldinger"
#: ../js/ui/messageTray.js:1812 #: ../js/ui/messageTray.js:1813
msgid "Message Tray" msgid "Message Tray"
msgstr "Meldingstrau" msgstr "Meldingstrau"
#: ../js/ui/messageTray.js:2787 #: ../js/ui/messageTray.js:2788
msgid "System Information" msgid "System Information"
msgstr "Systeminformasjon" msgstr "Systeminformasjon"
@ -1159,21 +1169,17 @@ msgstr "Oversikt"
msgid "Type to search…" msgid "Type to search…"
msgstr "Skriv for å søke …" msgstr "Skriv for å søke …"
#: ../js/ui/panel.js:516 #: ../js/ui/panel.js:518
msgid "Quit" msgid "Quit"
msgstr "Avslutt" msgstr "Avslutt"
#. 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:568 #: ../js/ui/panel.js:570
msgid "Activities" msgid "Activities"
msgstr "Aktiviteter" msgstr "Aktiviteter"
#: ../js/ui/panel.js:805 #: ../js/ui/panel.js:904
msgid "Settings Menu"
msgstr "Meny for innstillinger"
#: ../js/ui/panel.js:901
msgid "Top Bar" msgid "Top Bar"
msgstr "Topp-panel" msgstr "Topp-panel"
@ -1182,7 +1188,7 @@ msgstr "Topp-panel"
#. "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:226 #: ../js/ui/popupMenu.js:233
msgid "toggle-switch-us" msgid "toggle-switch-us"
msgstr "toggle-switch-intl" msgstr "toggle-switch-intl"
@ -1211,7 +1217,7 @@ msgstr[1] "%d nye varslinger"
msgid "Lock" msgid "Lock"
msgstr "Lås" msgstr "Lås"
#: ../js/ui/screenShield.js:703 #: ../js/ui/screenShield.js:704
msgid "GNOME needs to lock the screen" msgid "GNOME needs to lock the screen"
msgstr "GNOME må låse skjermen" msgstr "GNOME må låse skjermen"
@ -1222,19 +1228,19 @@ msgstr "GNOME må låse skjermen"
#. #.
#. XXX: another option is to kick the user into the gdm login #. XXX: another option is to kick the user into the gdm login
#. screen, where we're not affected by grabs #. screen, where we're not affected by grabs
#: ../js/ui/screenShield.js:830 ../js/ui/screenShield.js:1296 #: ../js/ui/screenShield.js:831 ../js/ui/screenShield.js:1297
msgid "Unable to lock" msgid "Unable to lock"
msgstr "Kan ikke låse" msgstr "Kan ikke låse"
#: ../js/ui/screenShield.js:831 ../js/ui/screenShield.js:1297 #: ../js/ui/screenShield.js:832 ../js/ui/screenShield.js:1298
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."
@ -1308,14 +1314,14 @@ msgstr "Stor 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: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"
@ -1323,80 +1329,80 @@ msgstr "Slå av"
msgid "Bluetooth Settings" msgid "Bluetooth Settings"
msgstr "Innstillinger for Bluetooth" msgstr "Innstillinger for Bluetooth"
#: ../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 tilkoblet enhet" msgstr[0] "%d tilkoblet enhet"
msgstr[1] "%d tilkoblede enheter" msgstr[1] "%d tilkoblede enheter"
#: ../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 "Forespørsel om autorisering fra %s" msgstr "Forespørsel om autorisering fra %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 "Enhet %s vil koble seg sammen med denne datamaskinen" msgstr "Enhet %s vil koble seg sammen med denne datamaskinen"
#: ../js/ui/status/bluetooth.js:108 #: ../js/ui/status/bluetooth.js:109
msgid "Allow" msgid "Allow"
msgstr "Tillat" msgstr "Tillat"
#: ../js/ui/status/bluetooth.js:109 #: ../js/ui/status/bluetooth.js:110
msgid "Deny" msgid "Deny"
msgstr "Nekt" msgstr "Nekt"
#: ../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 "Enhet %s vil ha tilgang til tjenesten «%s»" msgstr "Enhet %s vil ha tilgang til tjenesten «%s»"
#: ../js/ui/status/bluetooth.js:136 #: ../js/ui/status/bluetooth.js:137
msgid "Always grant access" msgid "Always grant access"
msgstr "Alltid gi tilgang" msgstr "Alltid gi tilgang"
#: ../js/ui/status/bluetooth.js:137 #: ../js/ui/status/bluetooth.js:138
msgid "Grant this time only" msgid "Grant this time only"
msgstr "Gi tilgang kun denne ene gangen" msgstr "Gi tilgang kun denne ene gangen"
#: ../js/ui/status/bluetooth.js:138 #: ../js/ui/status/bluetooth.js:139
msgid "Reject" msgid "Reject"
msgstr "Avvis" msgstr "Avvis"
#. 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 "Bekreftelse for tilkobling for %s" msgstr "Bekreftelse for tilkobling for %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."
msgstr "Vennligst bekreft om passord «%06d» er lik den som brukes på enheten." msgstr "Vennligst bekreft om passord «%06d» er lik den som brukes på enheten."
#. 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 "Stemmer overens" msgstr "Stemmer overens"
#: ../js/ui/status/bluetooth.js:176 #: ../js/ui/status/bluetooth.js:177
msgid "Does not match" msgid "Does not match"
msgstr "Stemmer ikke overens" msgstr "Stemmer ikke overens"
#: ../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 "Forespørsel om tilkobling for %s" msgstr "Forespørsel om tilkobling for %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 "Vennligst oppgi PIN som oppgitt på enheten." msgstr "Vennligst oppgi PIN som oppgitt på enheten."
#: ../js/ui/status/bluetooth.js:220 #: ../js/ui/status/bluetooth.js:221
msgid "OK" msgid "OK"
msgstr "OK" msgstr "OK"
@ -1404,7 +1410,7 @@ msgstr "OK"
msgid "Brightness" msgid "Brightness"
msgstr "Lysstyrke" msgstr "Lysstyrke"
#: ../js/ui/status/keyboard.js:404 #: ../js/ui/status/keyboard.js:403
msgid "Show Keyboard Layout" msgid "Show Keyboard Layout"
msgstr "Vis tastaturutforming" msgstr "Vis tastaturutforming"
@ -1412,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:1306 #: ../js/ui/status/network.js:1326
msgid "Network Manager" msgid "Network Manager"
msgstr "Nettverkshåndtering" msgstr "Nettverkshåndtering"
#: ../js/ui/status/network.js:1345 #: ../js/ui/status/network.js:1365
msgid "Connection failed" msgid "Connection failed"
msgstr "Tilkobling feilet" msgstr "Tilkobling feilet"
#: ../js/ui/status/network.js:1346 #: ../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"
@ -1574,11 +1580,11 @@ msgstr "Logg inn som en annen bruker"
msgid "Unlock Window" msgid "Unlock Window"
msgstr "Lås opp vindu" msgstr "Lås opp vindu"
#: ../js/ui/viewSelector.js:100 #: ../js/ui/viewSelector.js:104
msgid "Applications" msgid "Applications"
msgstr "Programmer" msgstr "Programmer"
#: ../js/ui/viewSelector.js:104 #: ../js/ui/viewSelector.js:108
msgid "Search" msgid "Search"
msgstr "Søk" msgstr "Søk"
@ -1681,3 +1687,6 @@ msgstr "Passordet kan ikke være tomt"
#: ../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 "Autentiseringsdialogen ble lukket av brukeren" msgstr "Autentiseringsdialogen ble lukket av brukeren"
#~ msgid "Settings Menu"
#~ msgstr "Meny for innstillinger"

1536
po/nl.po

File diff suppressed because it is too large Load Diff

475
po/pa.po

File diff suppressed because it is too large Load Diff

503
po/pl.po

File diff suppressed because it is too large Load Diff

1894
po/pt.po

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

2678
po/ro.po

File diff suppressed because it is too large Load Diff

408
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

503
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

1638
po/tr.po

File diff suppressed because it is too large Load Diff

293
po/uk.po
View File

@ -9,8 +9,8 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: gnome-shell master\n" "Project-Id-Version: gnome-shell master\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2013-09-04 18:06+0300\n" "POT-Creation-Date: 2013-10-11 14:58+0300\n"
"PO-Revision-Date: 2013-09-04 18:44+0300\n" "PO-Revision-Date: 2013-10-11 15:01+0300\n"
"Last-Translator: Daniel Korostil <ted.korostiled@gmail.com>\n" "Last-Translator: Daniel Korostil <ted.korostiled@gmail.com>\n"
"Language-Team: linux.org.ua\n" "Language-Team: linux.org.ua\n"
"Language: uk\n" "Language: uk\n"
@ -51,6 +51,7 @@ msgid "GNOME Shell"
msgstr "GNOME Shell" msgstr "GNOME Shell"
#: ../data/gnome-shell.desktop.in.in.h:2 #: ../data/gnome-shell.desktop.in.in.h:2
#: ../data/gnome-shell-wayland.desktop.in.in.h:2
msgid "Window management and application launching" msgid "Window management and application launching"
msgstr "Керування вікнами та запуск програм" msgstr "Керування вікнами та запуск програм"
@ -62,6 +63,10 @@ msgstr "Параметри розширень GNOME Shell"
msgid "Configure GNOME Shell Extensions" msgid "Configure GNOME Shell Extensions"
msgstr "Налаштувати розширення GNOME Shell" msgstr "Налаштувати розширення GNOME Shell"
#: ../data/gnome-shell-wayland.desktop.in.in.h:1
msgid "GNOME Shell (wayland compositor)"
msgstr "Оболонка GNOME (поверх wayland)"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:1 #: ../data/org.gnome.shell.gschema.xml.in.in.h:1
msgid "Enable internal tools useful for developers and testers from Alt-F2" msgid "Enable internal tools useful for developers and testers from Alt-F2"
msgstr "" msgstr ""
@ -258,14 +263,18 @@ msgstr "Робочі простори організовуються динам
msgid "Workspaces only on primary monitor" msgid "Workspaces only on primary monitor"
msgstr "Робочий простір лише на основному моніторі" msgstr "Робочий простір лише на основному моніторі"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:38
msgid "Delay focus changes in mouse mode until the pointer stops moving"
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 "Вибрати розширення для налаштування через список вище."
#: ../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 "Скасувати" msgstr "Скасувати"
@ -296,8 +305,8 @@ msgstr "Немає в переліку?"
msgid "(e.g., user or %s)" msgid "(e.g., user or %s)"
msgstr "(наприклад, користувач або %s)" msgstr "(наприклад, користувач або %s)"
#: ../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 "Користувач:" msgstr "Користувач:"
@ -313,40 +322,40 @@ msgstr "Помилка розпізнавання"
msgid "(or swipe finger)" msgid "(or swipe finger)"
msgstr "(або проведіть пальцем)" msgstr "(або проведіть пальцем)"
#: ../js/misc/util.js:97 #: ../js/misc/util.js:115
msgid "Command not found" msgid "Command not found"
msgstr "Команди не знайдено" msgstr "Команди не знайдено"
#: ../js/misc/util.js:130 #: ../js/misc/util.js:148
msgid "Could not parse command:" msgid "Could not parse command:"
msgstr "Неможливо розібрати команду:" msgstr "Неможливо розібрати команду:"
#: ../js/misc/util.js:138 #: ../js/misc/util.js:156
#, javascript-format #, javascript-format
msgid "Execution of '%s' failed:" msgid "Execution of '%s' failed:"
msgstr "Не вдалось виконати «%s»:" msgstr "Не вдалось виконати «%s»:"
#: ../js/ui/appDisplay.js:580 #: ../js/ui/appDisplay.js:596
msgid "Frequently used applications will appear here" msgid "Frequently used applications will appear here"
msgstr "Часто використовувані програми будуть з'являтись тут" msgstr "Часто використовувані програми будуть з'являтись тут"
#: ../js/ui/appDisplay.js:696 #: ../js/ui/appDisplay.js:712
msgid "Frequent" msgid "Frequent"
msgstr "Частовживане" msgstr "Частовживане"
#: ../js/ui/appDisplay.js:703 #: ../js/ui/appDisplay.js:719
msgid "All" msgid "All"
msgstr "Усе" msgstr "Усе"
#: ../js/ui/appDisplay.js:1490 #: ../js/ui/appDisplay.js:1514
msgid "New Window" msgid "New Window"
msgstr "Нове вікно" msgstr "Нове вікно"
#: ../js/ui/appDisplay.js:1493 ../js/ui/dash.js:284 #: ../js/ui/appDisplay.js:1517 ../js/ui/dash.js:284
msgid "Remove from Favorites" msgid "Remove from Favorites"
msgstr "Вилучити з улюбленого" msgstr "Вилучити з улюбленого"
#: ../js/ui/appDisplay.js:1494 #: ../js/ui/appDisplay.js:1518
msgid "Add to Favorites" msgid "Add to Favorites"
msgstr "Додати до улюбленого" msgstr "Додати до улюбленого"
@ -360,7 +369,8 @@ msgstr "%s додано до улюбленого."
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/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 "Параметри" msgstr "Параметри"
@ -550,83 +560,83 @@ msgstr "Відкрити через %s"
msgid "Eject" msgid "Eject"
msgstr "Витягнути" msgstr "Витягнути"
#: ../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 "Пароль:" msgstr "Пароль:"
#: ../js/ui/components/keyring.js:107 #: ../js/ui/components/keyring.js:108
msgid "Type again:" msgid "Type again:"
msgstr "Введіть знову:" msgstr "Введіть знову:"
#: ../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 "З'єднатись" msgstr "З'єднатись"
#: ../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 "Пароль:" msgstr "Пароль:"
#: ../js/ui/components/networkAgent.js:223 #: ../js/ui/components/networkAgent.js:227
msgid "Key: " msgid "Key: "
msgstr "Ключ:" msgstr "Ключ:"
#: ../js/ui/components/networkAgent.js:261 #: ../js/ui/components/networkAgent.js:265
msgid "Identity: " msgid "Identity: "
msgstr "Тотожність" msgstr "Тотожність"
#: ../js/ui/components/networkAgent.js:263 #: ../js/ui/components/networkAgent.js:267
msgid "Private key password: " msgid "Private key password: "
msgstr "Пароль закритого ключа:" msgstr "Пароль закритого ключа:"
#: ../js/ui/components/networkAgent.js:275 #: ../js/ui/components/networkAgent.js:279
msgid "Service: " msgid "Service: "
msgstr "Служба:" msgstr "Служба:"
#: ../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 "Потрібна аутентифікація для радіомережі" msgstr "Потрібна аутентифікація для радіомережі"
#: ../js/ui/components/networkAgent.js:305 #: ../js/ui/components/networkAgent.js:309
#, javascript-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'."
msgstr "Потрібно паролі або зашифровані ключі для доступу до радіомережі «%s»." msgstr "Потрібно паролі або зашифровані ключі для доступу до радіомережі «%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" msgstr "Дротова аутентифікація 802.1X"
#: ../js/ui/components/networkAgent.js:311 #: ../js/ui/components/networkAgent.js:315
msgid "Network name: " msgid "Network name: "
msgstr "Назва мережні: " msgstr "Назва мережні: "
#: ../js/ui/components/networkAgent.js:316 #: ../js/ui/components/networkAgent.js:320
msgid "DSL authentication" msgid "DSL authentication"
msgstr "Аутентифікація DSL" msgstr "Аутентифікація DSL"
#: ../js/ui/components/networkAgent.js:323 #: ../js/ui/components/networkAgent.js:327
msgid "PIN code required" msgid "PIN code required"
msgstr "Потрібен код PIN" msgstr "Потрібен код PIN"
#: ../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 для мобільних широкосмугових пристроїв" msgstr "Потрібен код PIN для мобільних широкосмугових пристроїв"
#: ../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 "пароль до мобільної широкосмугової радіомережі" msgstr "пароль до мобільної широкосмугової радіомережі"
#: ../js/ui/components/networkAgent.js:332 #: ../js/ui/components/networkAgent.js:336
#, javascript-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»."
@ -882,7 +892,7 @@ msgstr "Переглянути обліковий запис"
msgid "Unknown reason" msgid "Unknown reason"
msgstr "Невідома причина" msgstr "Невідома причина"
#: ../js/ui/ctrlAltTab.js:29 ../js/ui/viewSelector.js:96 #: ../js/ui/ctrlAltTab.js:29 ../js/ui/viewSelector.js:100
msgid "Windows" msgid "Windows"
msgstr "Вікна" msgstr "Вікна"
@ -992,11 +1002,9 @@ 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] "" msgstr[0] ""
"Система автоматично перезапуститься та встановить оновлення через %d " "Система автоматично перезапуститься та встановить оновлення через %d секунду."
"секунду."
msgstr[1] "" msgstr[1] ""
"Система автоматично перезапуститься та встановить оновлення через %d " "Система автоматично перезапуститься та встановить оновлення через %d секунди."
"секунди."
msgstr[2] "" msgstr[2] ""
"Система автоматично перезапуститься та встановить оновлення через %d секунд." "Система автоматично перезапуститься та встановить оновлення через %d секунд."
@ -1060,9 +1068,12 @@ msgstr "Показати помилки"
msgid "Enabled" msgid "Enabled"
msgstr "Увімкнено" msgstr "Увімкнено"
#. 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 "Вимкнено" msgstr "Вимкнено"
@ -1094,27 +1105,31 @@ msgstr "Відкрити"
msgid "Remove" msgid "Remove"
msgstr "Вилучити" msgstr "Вилучити"
#: ../js/ui/messageTray.js:1513 #: ../js/ui/messageTray.js:1530
msgid "Notifications"
msgstr "Сповіщення"
#: ../js/ui/messageTray.js:1537
msgid "Clear Messages" msgid "Clear Messages"
msgstr "Очистити повідомлення" msgstr "Очистити повідомлення"
#: ../js/ui/messageTray.js:1540 #: ../js/ui/messageTray.js:1564
msgid "Notification Settings" msgid "Notification Settings"
msgstr "Параметри сповіщення" msgstr "Параметри сповіщення"
#: ../js/ui/messageTray.js:1559 #: ../js/ui/messageTray.js:1617
msgid "Tray Menu" msgid "Tray Menu"
msgstr "Меню лотка" msgstr "Меню лотка"
#: ../js/ui/messageTray.js:1775 #: ../js/ui/messageTray.js:1833
msgid "No Messages" msgid "No Messages"
msgstr "Немає повідомлень" msgstr "Немає повідомлень"
#: ../js/ui/messageTray.js:1812 #: ../js/ui/messageTray.js:1871
msgid "Message Tray" msgid "Message Tray"
msgstr "Лоток повідомлень" msgstr "Лоток повідомлень"
#: ../js/ui/messageTray.js:2786 #: ../js/ui/messageTray.js:2846
msgid "System Information" msgid "System Information"
msgstr "Інформація про систему" msgstr "Інформація про систему"
@ -1147,25 +1162,21 @@ msgstr "Огляд"
msgid "Type to search…" msgid "Type to search…"
msgstr "Введіть для пошуку…" msgstr "Введіть для пошуку…"
#: ../js/ui/panel.js:516 #: ../js/ui/panel.js:518
msgid "Quit" 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:568 #: ../js/ui/panel.js:570
msgid "Activities" msgid "Activities"
msgstr "Діяльність" msgstr "Діяльність"
#: ../js/ui/panel.js:805 #: ../js/ui/panel.js:904
msgid "Settings Menu"
msgstr "Меню параметрів"
#: ../js/ui/panel.js:901
msgid "Top Bar" msgid "Top Bar"
msgstr "Верхня панель" msgstr "Верхня панель"
#: ../js/ui/popupMenu.js:226 #: ../js/ui/popupMenu.js:233
msgid "toggle-switch-us" msgid "toggle-switch-us"
msgstr "toggle-switch-intl" msgstr "toggle-switch-intl"
@ -1195,23 +1206,23 @@ msgstr[2] "%d нових сповіщень"
msgid "Lock" msgid "Lock"
msgstr "Заблокувати" msgstr "Заблокувати"
#: ../js/ui/screenShield.js:703 #: ../js/ui/screenShield.js:704
msgid "GNOME needs to lock the screen" msgid "GNOME needs to lock the screen"
msgstr "GNOME потребує заблокувати екран" msgstr "GNOME потребує заблокувати екран"
#: ../js/ui/screenShield.js:830 ../js/ui/screenShield.js:1296 #: ../js/ui/screenShield.js:831 ../js/ui/screenShield.js:1297
msgid "Unable to lock" msgid "Unable to lock"
msgstr "Неможливо заблокувати" msgstr "Неможливо заблокувати"
#: ../js/ui/screenShield.js:831 ../js/ui/screenShield.js:1297 #: ../js/ui/screenShield.js:832 ../js/ui/screenShield.js:1298
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 "Безрезультатно."
@ -1283,14 +1294,14 @@ msgstr "Висока контрастність"
msgid "Large Text" msgid "Large Text"
msgstr "Більший текст" msgstr "Більший текст"
#: ../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 "Вимкнути" msgstr "Вимкнути"
@ -1298,7 +1309,7 @@ msgstr "Вимкнути"
msgid "Bluetooth Settings" msgid "Bluetooth Settings"
msgstr "Параметри Bluetooth" msgstr "Параметри Bluetooth"
#: ../js/ui/status/bluetooth.js:57 #: ../js/ui/status/bluetooth.js:58
#, javascript-format #, javascript-format
msgid "%d Connected Device" msgid "%d Connected Device"
msgid_plural "%d Connected Devices" msgid_plural "%d Connected Devices"
@ -1306,73 +1317,73 @@ msgstr[0] "Під'єднано %d пристрій"
msgstr[1] "Під'єднано %d пристрої" msgstr[1] "Під'єднано %d пристрої"
msgstr[2] "Під'єднано %d пристроїв" msgstr[2] "Під'єднано %d пристроїв"
#: ../js/ui/status/bluetooth.js:100 ../js/ui/status/bluetooth.js:128 #: ../js/ui/status/bluetooth.js:101 ../js/ui/status/bluetooth.js:129
#, javascript-format #, javascript-format
msgid "Authorization request from %s" msgid "Authorization request from %s"
msgstr "Запит про авторизацію від %s" msgstr "Запит про авторизацію від %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
#, javascript-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 потребує прив'язання до цього комп'ютера"
#: ../js/ui/status/bluetooth.js:108 #: ../js/ui/status/bluetooth.js:109
msgid "Allow" msgid "Allow"
msgstr "Дозволити" msgstr "Дозволити"
#: ../js/ui/status/bluetooth.js:109 #: ../js/ui/status/bluetooth.js:110
msgid "Deny" msgid "Deny"
msgstr "Заборонити" msgstr "Заборонити"
#: ../js/ui/status/bluetooth.js:134 #: ../js/ui/status/bluetooth.js:135
#, javascript-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»"
#: ../js/ui/status/bluetooth.js:136 #: ../js/ui/status/bluetooth.js:137
msgid "Always grant access" msgid "Always grant access"
msgstr "Завжди надавати доступ" msgstr "Завжди надавати доступ"
#: ../js/ui/status/bluetooth.js:137 #: ../js/ui/status/bluetooth.js:138
msgid "Grant this time only" msgid "Grant this time only"
msgstr "Надати лише цього разу" msgstr "Надати лише цього разу"
#: ../js/ui/status/bluetooth.js:138 #: ../js/ui/status/bluetooth.js:139
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:165 #: ../js/ui/status/bluetooth.js:166
#, javascript-format #, javascript-format
msgid "Pairing confirmation for %s" msgid "Pairing confirmation for %s"
msgstr "Сполучення підтвердження для %s" msgstr "Сполучення підтвердження для %s"
#: ../js/ui/status/bluetooth.js:172 #: ../js/ui/status/bluetooth.js:173
#, javascript-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:175 #: ../js/ui/status/bluetooth.js:176
msgid "Matches" msgid "Matches"
msgstr "Збігається" msgstr "Збігається"
#: ../js/ui/status/bluetooth.js:176 #: ../js/ui/status/bluetooth.js:177
msgid "Does not match" msgid "Does not match"
msgstr "Не збігається" msgstr "Не збігається"
#: ../js/ui/status/bluetooth.js:195 #: ../js/ui/status/bluetooth.js:196
#, javascript-format #, javascript-format
msgid "Pairing request for %s" msgid "Pairing request for %s"
msgstr "Запит на сполучення для %s" msgstr "Запит на сполучення для %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 "Будь ласка, введіть PIN, згаданий на пристрої." msgstr "Будь ласка, введіть PIN, згаданий на пристрої."
#: ../js/ui/status/bluetooth.js:220 #: ../js/ui/status/bluetooth.js:221
msgid "OK" msgid "OK"
msgstr "Гаразд" msgstr "Гаразд"
@ -1384,83 +1395,95 @@ msgstr "Яскравість"
msgid "<unknown>" msgid "<unknown>"
msgstr "<невідомо>" msgstr "<невідомо>"
#: ../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 "Вимкнено" msgstr "Вимкнено"
#: ../js/ui/status/network.js:276 ../js/ui/status/network.js:955
#: ../js/ui/status/rfkill.js:49
msgid "Network Settings"
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:386
msgid "unmanaged" msgid "unmanaged"
msgstr "некерований" msgstr "некерований"
#: ../js/ui/status/network.js:366 #: ../js/ui/status/network.js:388
msgid "disconnecting..." msgid "disconnecting..."
msgstr "від'єднання…" msgstr "від'єднання…"
#: ../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 "з'єднання…" 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:397 ../js/ui/status/network.js:1163
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:405
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:409
msgid "unavailable" msgid "unavailable"
msgstr "недоступний" msgstr "недоступний"
#: ../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 "не вдалось з'єднатись" msgstr "не вдалось з'єднатись"
#: ../js/ui/status/network.js:654 #: ../js/ui/status/network.js:427 ../js/ui/status/network.js:513
msgid "Mobile Broadband Settings"
msgstr "параметри мобільної радіомережі"
#: ../js/ui/status/network.js:469 ../js/ui/status/network.js:1104
msgid "Hardware Disabled"
msgstr "Пристрій вимкнено"
#: ../js/ui/status/network.js:696
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:698
msgid "Select a network" msgid "Select a network"
msgstr "Вибрати мережу" msgstr "Вибрати мережу"
#: ../js/ui/status/network.js:680 #: ../js/ui/status/network.js:722
msgid "No Networks" msgid "No Networks"
msgstr "Немає мереж" msgstr "Немає мереж"
#: ../js/ui/status/network.js:949 #: ../js/ui/status/network.js:991
msgid "Select Network" msgid "Select Network"
msgstr "Виберіть мережу" msgstr "Виберіть мережу"
#: ../js/ui/status/network.js:1034 #: ../js/ui/status/network.js:997
msgid "Wi-Fi Settings"
msgstr "Параметри Wi-Fi"
#: ../js/ui/status/network.js:1085
msgid "Turn On" msgid "Turn On"
msgstr "Увімкнути" msgstr "Увімкнути"
#: ../js/ui/status/network.js:1167 #: ../js/ui/status/network.js:1108
msgid "Not Connected"
msgstr "Роз'єднано"
#: ../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 "Керування мережею" msgstr "Керування мережею"
#: ../js/ui/status/network.js:1345 #: ../js/ui/status/network.js:1407
msgid "Connection failed" msgid "Connection failed"
msgstr "Не вдалось з'єднатись" msgstr "Не вдалось з'єднатись"
#: ../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 "Не вдалось увімкнути мережеве з'єднання" msgstr "Не вдалось увімкнути мережеве з'єднання"
@ -1498,6 +1521,10 @@ msgstr "У літаку"
msgid "On" msgid "On"
msgstr "Увімкнено" msgstr "Увімкнено"
#: ../js/ui/status/rfkill.js:49
msgid "Network Settings"
msgstr "Налаштування мережі"
#: ../js/ui/status/system.js:305 #: ../js/ui/status/system.js:305
msgid "Switch User" msgid "Switch User"
msgstr "Змінити користувача" msgstr "Змінити користувача"
@ -1538,11 +1565,11 @@ msgstr "Увійти як інший користувач"
msgid "Unlock Window" msgid "Unlock Window"
msgstr "Розблокувати вікно" msgstr "Розблокувати вікно"
#: ../js/ui/viewSelector.js:100 #: ../js/ui/viewSelector.js:104
msgid "Applications" msgid "Applications"
msgstr "Програми" msgstr "Програми"
#: ../js/ui/viewSelector.js:104 #: ../js/ui/viewSelector.js:108
msgid "Search" msgid "Search"
msgstr "Пошук" msgstr "Пошук"
@ -1649,6 +1676,26 @@ 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"
#~ msgstr "Меню параметрів"
#~ msgid "Screenshots" #~ msgid "Screenshots"
#~ msgstr "Знімки" #~ msgstr "Знімки"
@ -1742,12 +1789,6 @@ msgstr "Вікно авторизації відхилено користува
#~ "на даті, та буде використовувати це розширення. Слід змінити це, коли " #~ "на даті, та буде використовувати це розширення. Слід змінити це, коли "
#~ "записуєте в різні формати контейнера. " #~ "записуєте в різні формати контейнера. "
#~ msgid "There was an error loading the preferences dialog for %s:"
#~ msgstr "Помилка завантаження вікна параметрів для %s:"
#~ msgid "Extension"
#~ msgstr "Розширення"
#~ msgid "Session…" #~ msgid "Session…"
#~ msgstr "Сеанс…" #~ msgstr "Сеанс…"
@ -1757,14 +1798,6 @@ msgstr "Вікно авторизації відхилено користува
#~ msgid "Restart" #~ msgid "Restart"
#~ msgstr "Перезапустити" #~ 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 "Screencast from %d %t" #~ msgid "Screencast from %d %t"
#~ msgstr "Трансляція з екрана від %d %t" #~ msgstr "Трансляція з екрана від %d %t"
@ -1800,9 +1833,6 @@ msgstr "Вікно авторизації відхилено користува
#~ msgid "Set Up a New Device…" #~ msgid "Set Up a New Device…"
#~ msgstr "Налаштувати новий пристрій…" #~ msgstr "Налаштувати новий пристрій…"
#~ msgid "hardware disabled"
#~ msgstr "пристрій вимкнено"
#~ msgid "Connection" #~ msgid "Connection"
#~ msgstr "З'єднання" #~ msgstr "З'єднання"
@ -1818,9 +1848,6 @@ msgstr "Вікно авторизації відхилено користува
#~ msgid "Sound Settings" #~ msgid "Sound Settings"
#~ msgstr "Параметри звуку" #~ msgstr "Параметри звуку"
#~ msgid "Show Keyboard Layout"
#~ msgstr "Показати розкладку клавіатури"
#~ msgid "Region & Language Settings" #~ msgid "Region & Language Settings"
#~ msgstr "Параметри регіону та мови" #~ msgstr "Параметри регіону та мови"
@ -1842,9 +1869,6 @@ msgstr "Вікно авторизації відхилено користува
#~ msgid "Auto Ethernet" #~ msgid "Auto Ethernet"
#~ msgstr "Автоматично Ethernet" #~ msgstr "Автоматично Ethernet"
#~ msgid "Mobile broadband"
#~ msgstr "Мобільна радіомережа"
#~ msgid "Auto broadband" #~ msgid "Auto broadband"
#~ msgstr "Автоматично радіомережа" #~ msgstr "Автоматично радіомережа"
@ -1946,9 +1970,6 @@ msgstr "Вікно авторизації відхилено користува
#~ msgid "Idle" #~ msgid "Idle"
#~ msgstr "Бездіяльний" #~ msgstr "Бездіяльний"
#~ msgid "Notifications"
#~ msgstr "Сповіщення"
#~ msgid "Your chat status will be set to busy" #~ msgid "Your chat status will be set to busy"
#~ msgstr "Ваш стан балачки буде змінено на «зайнятий»" #~ msgstr "Ваш стан балачки буде змінено на «зайнятий»"

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -618,6 +618,7 @@ _shell_app_system_notify_app_state_changed (ShellAppSystem *self,
switch (state) switch (state)
{ {
case SHELL_APP_STATE_RUNNING: case SHELL_APP_STATE_RUNNING:
case SHELL_APP_STATE_BUSY:
g_hash_table_insert (self->priv->running_apps, g_object_ref (app), NULL); g_hash_table_insert (self->priv->running_apps, g_object_ref (app), NULL);
break; break;
case SHELL_APP_STATE_STARTING: case SHELL_APP_STATE_STARTING:
@ -759,9 +760,8 @@ shell_app_system_initial_search (ShellAppSystem *self,
* @terms: (element-type utf8): List of terms, logical AND * @terms: (element-type utf8): List of terms, logical AND
* *
* Search through a previous result set; for more information, see * Search through a previous result set; for more information, see
* js/ui/search.js. Note the value of @prefs must be * js/ui/search.js. Note that returned strings are only valid until
* the same as passed to shell_app_system_initial_search(). Note that returned * a return to the main loop.
* strings are only valid until a return to the main loop.
* *
* Returns: (transfer container) (element-type ShellApp): List of application identifiers * Returns: (transfer container) (element-type ShellApp): List of application identifiers
*/ */

View File

@ -653,6 +653,7 @@ shell_app_activate_full (ShellApp *app,
case SHELL_APP_STATE_STARTING: case SHELL_APP_STATE_STARTING:
break; break;
case SHELL_APP_STATE_RUNNING: case SHELL_APP_STATE_RUNNING:
case SHELL_APP_STATE_BUSY:
shell_app_activate_window (app, NULL, timestamp); shell_app_activate_window (app, NULL, timestamp);
break; break;
} }
@ -960,10 +961,8 @@ application_properties_changed (GDBusConnection *connection,
{ {
ShellApp *app = user_data; ShellApp *app = user_data;
GVariant *changed_properties; GVariant *changed_properties;
GVariantIter iter;
gboolean busy = FALSE; gboolean busy = FALSE;
const gchar *key, *interface_name_for_signal; const gchar *interface_name_for_signal;
GVariant *value;
g_variant_get (parameters, g_variant_get (parameters,
"(&s@a{sv}as)", "(&s@a{sv}as)",
@ -974,19 +973,7 @@ application_properties_changed (GDBusConnection *connection,
if (g_strcmp0 (interface_name_for_signal, "org.gtk.Application") != 0) if (g_strcmp0 (interface_name_for_signal, "org.gtk.Application") != 0)
return; return;
g_variant_iter_init (&iter, changed_properties); g_variant_lookup (changed_properties, "Busy", "b", &busy);
while (g_variant_iter_next (&iter, "{&sv}", &key, &value))
{
if (g_strcmp0 (key, "Busy") != 0)
{
g_variant_unref (value);
continue;
}
busy = g_variant_get_boolean (value);
g_variant_unref (value);
break;
}
if (busy) if (busy)
shell_app_state_transition (app, SHELL_APP_STATE_BUSY); shell_app_state_transition (app, SHELL_APP_STATE_BUSY);

View File

@ -470,12 +470,12 @@ shell_global_class_init (ShellGlobalClass *klass)
G_PARAM_READABLE)); G_PARAM_READABLE));
} }
/**• /*
* _shell_global_init: (skip) * _shell_global_init: (skip)
* @first_property_name: the name of the first property * @first_property_name: the name of the first property
* @...: the value of the first property, followed optionally by more * @...: the value of the first property, followed optionally by more
* name/value pairs, followed by %NULL * name/value pairs, followed by %NULL
* *
* Initializes the shell global singleton with the construction-time * Initializes the shell global singleton with the construction-time
* properties. * properties.
* *
@ -1779,6 +1779,8 @@ shell_global_set_runtime_state (ShellGlobal *global,
NULL, FALSE, G_FILE_CREATE_REPLACE_DESTINATION, NULL, FALSE, G_FILE_CREATE_REPLACE_DESTINATION,
NULL, NULL, NULL); NULL, NULL, NULL);
} }
g_object_unref (path);
} }
/** /**
@ -1790,7 +1792,7 @@ shell_global_set_runtime_state (ShellGlobal *global,
* The shell maintains "runtime" state which does not persist across * The shell maintains "runtime" state which does not persist across
* logout or reboot. * logout or reboot.
* *
* Returns: The value of a serialized property, or %NULL if none stored * Returns: (transfer floating): The value of a serialized property, or %NULL if none stored
*/ */
GVariant * GVariant *
shell_global_get_runtime_state (ShellGlobal *global, shell_global_get_runtime_state (ShellGlobal *global,
@ -1817,10 +1819,13 @@ shell_global_get_runtime_state (ShellGlobal *global,
else else
{ {
GBytes *bytes = g_mapped_file_get_bytes (mfile); GBytes *bytes = g_mapped_file_get_bytes (mfile);
res = g_variant_new_from_bytes ((GVariantType*)property_type, bytes, TRUE); res = g_variant_new_from_bytes (G_VARIANT_TYPE (property_type), bytes, TRUE);
g_bytes_unref (bytes); g_bytes_unref (bytes);
g_mapped_file_unref (mfile); g_mapped_file_unref (mfile);
} }
g_object_unref (path);
g_free (pathstr);
return res; return res;
} }

View File

@ -11,6 +11,6 @@ gboolean shell_js_add_extension_importer (const char *target_object_script,
const char *directory, const char *directory,
GError **error); GError **error);
G_BEGIN_DECLS G_END_DECLS
#endif /* __SHELL_JS_H__ */ #endif /* __SHELL_JS_H__ */

View File

@ -771,6 +771,6 @@ shell_keyring_prompt_cancel (ShellKeyringPrompt *self)
self->async_result = NULL; self->async_result = NULL;
self->mode = PROMPTING_NONE; self->mode = PROMPTING_NONE;
g_simple_async_result_complete (res); g_simple_async_result_complete_in_idle (res);
g_object_unref (res); g_object_unref (res);
} }

View File

@ -259,6 +259,7 @@ st_adjustment_class_init (StAdjustmentClass *klass)
G_PARAM_CONSTRUCT)); G_PARAM_CONSTRUCT));
/** /**
* StAdjustment::changed: * StAdjustment::changed:
* @self: the #StAdjustment
* *
* Emitted when any of the adjustment values have changed * Emitted when any of the adjustment values have changed
*/ */

View File

@ -795,6 +795,8 @@ st_entry_class_init (StEntryClass *klass)
/* signals */ /* signals */
/** /**
* StEntry::primary-icon-clicked: * StEntry::primary-icon-clicked:
* @self: the #StEntry
*
* *
* Emitted when the primary icon is clicked * Emitted when the primary icon is clicked
*/ */
@ -807,6 +809,7 @@ st_entry_class_init (StEntryClass *klass)
G_TYPE_NONE, 0); G_TYPE_NONE, 0);
/** /**
* StEntry::secondary-icon-clicked: * StEntry::secondary-icon-clicked:
* @self: the #StEntry
* *
* Emitted when the secondary icon is clicked * Emitted when the secondary icon is clicked
*/ */

View File

@ -142,11 +142,13 @@ st_scroll_view_fade_paint_target (ClutterOffscreenEffect *effect)
st_adjustment_get_values (self->vadjustment, &value, &lower, &upper, NULL, NULL, &page_size); st_adjustment_get_values (self->vadjustment, &value, &lower, &upper, NULL, NULL, &page_size);
value = (value - lower) / (upper - page_size - lower); value = (value - lower) / (upper - page_size - lower);
clutter_shader_effect_set_uniform (shader, "fade_edges_v", G_TYPE_INT, 1, self->fade_edges ? value >= 0.0 : value > 0.0); clutter_shader_effect_set_uniform (shader, "fade_edges_top", G_TYPE_INT, 1, self->fade_edges ? value >= 0.0 : value > 0.0);
clutter_shader_effect_set_uniform (shader, "fade_edges_bottom", G_TYPE_INT, 1, self->fade_edges ? value <= 1.0 : value < 1.0);
st_adjustment_get_values (self->hadjustment, &value, &lower, &upper, NULL, NULL, &page_size); st_adjustment_get_values (self->hadjustment, &value, &lower, &upper, NULL, NULL, &page_size);
value = (value - lower) / (upper - page_size - lower); value = (value - lower) / (upper - page_size - lower);
clutter_shader_effect_set_uniform (shader, "fade_edges_h", G_TYPE_INT, 1, self->fade_edges ? value >= 0.0 : value > 0.0); clutter_shader_effect_set_uniform (shader, "fade_edges_left", G_TYPE_INT, 1, self->fade_edges ? value >= 0.0 : value > 0.0);
clutter_shader_effect_set_uniform (shader, "fade_edges_right", G_TYPE_INT, 1, self->fade_edges ? value <= 1.0 : value < 1.0);
clutter_shader_effect_set_uniform (shader, "vfade_offset", G_TYPE_FLOAT, 1, self->vfade_offset); clutter_shader_effect_set_uniform (shader, "vfade_offset", G_TYPE_FLOAT, 1, self->vfade_offset);
clutter_shader_effect_set_uniform (shader, "hfade_offset", G_TYPE_FLOAT, 1, self->hfade_offset); clutter_shader_effect_set_uniform (shader, "hfade_offset", G_TYPE_FLOAT, 1, self->hfade_offset);

View File

@ -22,8 +22,10 @@ uniform float height;
uniform float width; uniform float width;
uniform float vfade_offset; uniform float vfade_offset;
uniform float hfade_offset; uniform float hfade_offset;
uniform bool fade_edges_h; uniform bool fade_edges_top;
uniform bool fade_edges_v; uniform bool fade_edges_right;
uniform bool fade_edges_bottom;
uniform bool fade_edges_left;
uniform vec2 fade_area_topleft; uniform vec2 fade_area_topleft;
uniform vec2 fade_area_bottomright; uniform vec2 fade_area_bottomright;
@ -44,10 +46,10 @@ void main ()
float ratio = 1.0; float ratio = 1.0;
float fade_bottom_start = fade_area_bottomright[1] - vfade_offset; float fade_bottom_start = fade_area_bottomright[1] - vfade_offset;
float fade_right_start = fade_area_bottomright[0] - hfade_offset; float fade_right_start = fade_area_bottomright[0] - hfade_offset;
bool fade_top = y < vfade_offset && fade_edges_v; bool fade_top = y < vfade_offset && fade_edges_top;
bool fade_bottom = y > fade_bottom_start && fade_edges_v; bool fade_bottom = y > fade_bottom_start && fade_edges_bottom;
bool fade_left = x < hfade_offset && fade_edges_h; bool fade_left = x < hfade_offset && fade_edges_left;
bool fade_right = x > fade_right_start && fade_edges_h; bool fade_right = x > fade_right_start && fade_edges_right;
float vfade_scale = height / vfade_offset; float vfade_scale = height / vfade_offset;
if (fade_top) { if (fade_top) {