Compare commits

...

180 Commits
3.2.0 ... 3.2.2

Author SHA1 Message Date
f8c980cb22 Bump version to 3.2.2
Update NEWS
2012-01-18 10:22:09 -05:00
74ed3646ad workspaceThumbnail: fix window tracking bugs
- We should only call workspaceRemoved() for workspaces that are
  are actually being removed.
- When we have multiple monitors, a window on a secondary monitor is
  on all workspaces, so it ends up in all workspaces _allWindows
  lists, so we can't use previous presence in that list to determine
  whether we need to go ahead and add the actor; allWindows is simply
  the list of windows where we are listening  to notify::minimized.

https://bugzilla.gnome.org/show_bug.cgi?id=667652
2012-01-18 10:22:09 -05:00
80dfda17cd messageTray: use a "hot corner" to summon the tray
Instead of leaving the tray covering the whole last pixel row when it's
hidden, hide it completely. This avoids mouse events not being delivered to
application windows on the last pixel row.

To summon the tray we use a single reactive pixel on the corner.

https://bugzilla.gnome.org/show_bug.cgi?id=663366
2012-01-17 13:38:40 -05:00
3e98d47687 st: Fix typo
Commit c7846e1 introduced a small typo, fix.
2012-01-17 11:04:19 -05:00
3d3494a15b st-icon: Fix memory leak
We were never freeing the dup'd icon_name string for an StIcon.
2012-01-17 11:04:09 -05:00
3bf11dbd31 st-theme-node: Fix memory leak
We ref the icon_colors in st_theme_node_get_icon_colors, but never
unref it.
2012-01-17 11:03:59 -05:00
626e962e03 Network Menu: fix pulling out the first element from the More... submenu.
PopupMenu.firstMenuItem returns a PopupMenuItem, not an apObj. We
need to retrive the latter using the _apObj property.

Also, somehow the property from the number of elements in a menu
was changed from .length to .numMenuItems, and this broke the
destruction of the menu upon emptying it.

https://bugzilla.gnome.org/show_bug.cgi?id=659277
2012-01-17 11:00:56 -05:00
759de873b5 NetworkMenu: fix regression in access-point-removed
When changing _findNetwork with _findExistingNetwork, I changed
the return value to avoid searching twice for the access point,
and changed some names. I forgot to update all points where those
names were used.

https://bugzilla.gnome.org/show_bug.cgi?id=663278
2012-01-17 11:00:43 -05:00
552ae78557 NetworkMenu: don't query DBus properties of removed objects
Calling nm_access_point_get_ssid() in the handler of the
access-point-removed signal can result in DBus request, which will
then fail because the object was already removed at the server side.
Instead, use a difference function to retrieve the access point
object (the network), that compares directly by object identity.

https://bugzilla.gnome.org/show_bug.cgi?id=651378
2012-01-17 11:00:32 -05:00
d85a16589b messageTray: don't steal focus when popping under the pointer
We must look for the actor under the pointer in the whole message tray and not
just in the notification. This will avoid us to capture focus when a
notification comes up with the pointer on the whole tray area.

https://bugzilla.gnome.org/show_bug.cgi?id=661358
2012-01-17 11:00:04 -05:00
136c76dcbe gnome-shell-extension-tool: Use xdg-open
gnome-open is deprecated
2012-01-17 10:57:12 -05:00
2d95201af2 gnome-shell-extension-tool: Fix error after creating extension
Commit 7a8a00c705 cleaned up the code to move all
files to a dictionary, which accidentally left an undefined "extensionjs_path"
error. Fix that error.

https://bugzilla.gnome.org/show_bug.cgi?id=661623
2012-01-17 10:57:07 -05:00
039c683bac workspaceThumbnail: improve handling of notify::minimized signal
There were various cases where we could lose track of a window and
leave the notify::minimized signal connect after the actor was destroyed
or the workspace removed. This could result in operations on a removed
workspace and assertion failures inside Mutter.

https://bugzilla.redhat.com/show_bug.cgi?id=773059
https://bugzilla.gnome.org/show_bug.cgi?id=667652
2012-01-17 10:56:09 -05:00
d9ab2320d5 workspaceThumbnail: disconnect handlers when workspace is removed
We need to remove the handlers when the workspace is removed, not
when the animation of it being removed finishes, or we can access
a destroyed workspace and triggger an assertion failure in Mutter.

https://bugzilla.redhat.com/show_bug.cgi?id=705664
https://bugzilla.gnome.org/show_bug.cgi?id=667652
2012-01-17 10:55:58 -05:00
fa515328eb hotplug-sniffer: fix double free when setting D-Bus return value
g_dbus_method_invocation_return_value() adopts a floating reference,
so we don't also need to unreference it; fix by replacing the code
using a more compact form using the ^ convenience character in
GVariant type specifications. (Thanks to Ryan Lortie for the
suggestion.)

https://bugzilla.gnome.org/show_bug.cgi?id=667378
2012-01-17 10:55:21 -05:00
0cfedcaad6 theme-node-drawing: don't crash if st_theme_node_paint() is called on an empty area
When st_theme_node_paint() was called with zero width or height and a theme
node with a shadow, we'd crash because we'd fail to allocate a texture with
an empty size, then unreference the NULL pointer.

https://bugzilla.redhat.com/show_bug.cgi?id=748293
https://bugzilla.gnome.org/show_bug.cgi?id=668050
2012-01-16 17:38:02 -05:00
65230bfd7f st-theme-node-drawing: clear border buffer before drawing on it
A new texture has undefined contents - when we're creating a shadow,
we need to clear the contents of the texture before drawing the border
and background into it.

https://bugzilla.gnome.org/show_bug.cgi?id=668048
2012-01-16 17:37:51 -05:00
a5324462c3 iconGrid: avoid recreating icons unnecessarily
Add a short-circuit when the size doesn't change. Taken from part
of 26580f8f2c (Giovanni Campagna). This greatly reduces the reentrancy
of recreating icons that seems to be responsible for many crashers,
though the exact mechanism for the crashes isn't clear. See:

https://bugzilla.gnome.org/show_bug.cgi?id=648450
https://bugzilla.redhat.com/show_bug.cgi?id=707652
https://bugzilla.redhat.com/show_bug.cgi?id=781780
2012-01-16 17:28:40 -05:00
7e654ab3ca notificationDaemon: group sources based on a combination of pid and title
That way different system notifications, such as the ones about battery power
and the ones about software updates, are shown with separate message tray
sources.

https://bugzilla.gnome.org/show_bug.cgi?id=664138
2012-01-05 08:46:05 -05:00
9601908fca browser-plugin: Fix installation on WebKit-like browsers
I missed this use of raw UTF8Characters last time. Hopefully this
should be the last fix required for WebKit support.

https://bugzilla.gnome.org/show_bug.cgi?id=666444
2012-01-04 18:06:51 -05:00
ab4c160f9d browser-plugin: Fix memory leak when passing an invalid UUID
https://bugzilla.gnome.org/show_bug.cgi?id=665261
2012-01-04 18:06:51 -05:00
234882cbc6 browser-plugin: Fix crash if shell is not running 2012-01-04 18:06:51 -05:00
e890674e49 browser-plugin: Make sure to use the UTF8Length parameter
Some plugin hosts may have junk after the UTF8Characters that we need to strip
off. No current browsers that I know of do this, but it still helps to be
correct.
2012-01-04 18:06:51 -05:00
cd01e2fb25 browser-plugin: Move "entry points" comment
https://bugzilla.gnome.org/show_bug.cgi?id=663823
2012-01-04 18:06:51 -05:00
62027beb8e browser-plugin: Use g_strndup to get a string property
WebKit-based browsers like Chromium and Epiphany may insert extra junk at the
end of NPStrings, so we cannot depend on the strlen matching.

https://bugzilla.gnome.org/show_bug.cgi?id=663823
2012-01-04 18:06:51 -05:00
ee4d861a29 browser-plugin: Set that we need XEmbed
This makes the plugin work under WebKit-based browsers such as Chromium and
Epiphany. See http://code.google.com/p/chromium/issues/detail?id=38229 and
WindowedCreatePlugin() in
http://src.chromium.org/viewvc/chrome/trunk/src/webkit/plugins/npapi/webplugin_delegate_impl_gtk.cc?revision=86823&content-type=text%2Fplain
for more information.

https://bugzilla.gnome.org/show_bug.cgi?id=663823
2012-01-04 18:06:51 -05:00
3a3e26c1bd fileUtils: Fix recursivelyDeleteDir 2012-01-04 17:57:08 -05:00
bf2ad9d4e8 app: Fix crash on search
Not all desktop files tracked by the shell have
Exec lines.  This could be because they're actually
run by another process, for instance, and the desktop
file is merely there to provide metadata.  For example,
nautilus-pastebin provides a desktop file without an
Exec line.

The shell currently crashes if one of these partial
desktop files is installed and the user attempts to
search from the overview.

commit 37726a4cb6 fixed
a similar crasher.

This commit fixes the next one lower in the code.

https://bugzilla.gnome.org/show_bug.cgi?id=663815
2012-01-04 17:42:53 -05:00
b053d9c84f Updated Danish translation 2012-01-03 12:21:00 +01:00
4afa8bebdb Updated Norwegian Nynorsk translation 2011-12-26 14:33:01 +01:00
caf3d5add0 Updated Lithuanian translation 2011-12-06 17:10:37 +02:00
7cf038474a Updated Finnish translation 2011-11-15 22:20:36 +02:00
c7bcc8150c Updated British English translation 2011-11-12 07:48:52 +00:00
6d58397508 Updated Japanese translation 2011-11-09 21:23:48 +09:00
49d0fc178d Updated Czech translation 2011-10-30 14:31:52 +01:00
b83b8f64ff Updated French translation 2011-10-29 19:03:56 +02:00
6cc8a42720 Updated Esperanto translation 2011-10-26 19:05:10 +02:00
50a2d285eb Updated Swedish translation 2011-10-26 11:55:01 +02:00
fdf05310e9 Updated Persian translation 2011-10-24 21:13:22 +03:30
7baa393b1b [l10n]Updated Catalan (Valencian) translation 2011-10-23 23:43:01 +02:00
113694c44b [l10n]Updated Catalan translation 2011-10-23 23:42:57 +02:00
0c2f51b27f Updated Swedish translation 2011-10-23 13:07:22 +02:00
04cb84de2a Updated Lithuanian translation 2011-10-22 23:00:54 +03:00
9475c16e80 Updated Slovenian translation 2011-10-22 13:20:39 +02:00
6f41a9e10c Updated Bulgarian translation 2011-10-21 23:31:28 +03:00
be3b939a24 Updated Slovenian translation 2011-10-21 21:32:39 +02:00
04fb3a5a7c Updated Brazilian Portuguese translation 2011-10-20 12:46:59 -02:00
697b6dbfff Updated Brazilian Portuguese translation 2011-10-20 12:39:00 -02:00
bb4639e423 Updated Telugu Translation 2011-10-20 16:41:52 +05:30
69db63b4cd Updated Vietnamese translation 2011-10-19 19:39:27 +11:00
f9d17b214e po/vi: import from Damned Lies 2011-10-19 19:38:35 +11:00
bba5198e63 Updated Spanish translation 2011-10-18 16:13:19 +02:00
9e2bab008a Updated Norwegian bokmål translation 2011-10-18 07:48:09 +02:00
5ea032bbf7 Bump version to 3.2.1
Update NEWS
2011-10-18 00:23:51 -04:00
897fadfb40 Require Mutter 3.2.1
This is needed for meta_display_unmanage_screen()
2011-10-18 00:19:32 -04:00
b05f71eb9b messageTray: Add banner body when setting the image for a notification
We always place the banner in the body if the notification has additional
content.

https://bugzilla.gnome.org/show_bug.cgi?id=659158
2011-10-18 00:16:25 -04:00
4ce0e80956 user-menu: Be more cautious about saving status
When requesting a presence change, the actual presence set by
mission control does not necessarily match the requested presence
(if an active account does not support the requested presence),
which may result in the wrong presence being restored.
As a fix, be more cautious about saving status by assuming that
users do not request presence changes between an automatic presence
change request and the actual change.

https://bugzilla.gnome.org/show_bug.cgi?id=661485
2011-10-18 04:25:57 +02:00
577ccc4d56 Unmanage the screen before reexecing
This ensures a 'clean shutdown' of mutter.

https://bugzilla.gnome.org/show_bug.cgi?id=660848
2011-10-17 21:55:13 -04:00
39d12351ba gdm: move focus to first item in list
This allows the user to just hit when the user
list first comes up (in many cases).

https://bugzilla.gnome.org/show_bug.cgi?id=657996
2011-10-17 20:49:04 -04:00
e37bc6d7f0 Updated Galician translations 2011-10-18 00:05:07 +02:00
9593ff3582 notificationDaemon: only display a large image if an icon is also specified
Historically, when applications set "image-data" they expect it to show up
as an icon. So we display it as such if an icon is not specified with an
"app_icon" argument to Notify(). We also use "image-path" for an icon if
an icon is not specified.

We only display a large image specified with "image-data" or "image-path"
if an icon is also specified.

https://bugzilla.gnome.org/show_bug.cgi?id=659158
2011-10-17 17:53:16 -04:00
ad8dfd7b04 Updated Hungarian translation 2011-10-17 23:44:33 +02:00
ca5ab20f67 gdm: don't clear bullets while authenticating
Users don't expect the bullets they just typed into an entry
field to disappear as soon as they hit enter.

Instead, they want the dialog to become insensitive during the
authentication process, so that it's clear that what they typed
in is being processed.

https://bugzilla.gnome.org/show_bug.cgi?id=657894
2011-10-17 17:37:06 -04:00
0eab448221 css: Style the capslock warning in password entries
https://bugzilla.gnome.org/show_bug.cgi?id=660806
2011-10-17 22:43:47 +02:00
a26a77f9db st-entry: Display a capslock warning in password entries
Implement the GtkEntry behavior of showing a warning icon when
capslock is turned on while entering hidden text.

https://bugzilla.gnome.org/show_bug.cgi?id=660806
2011-10-17 22:43:47 +02:00
c3df6bb8bd [l10n] Updated German translation 2011-10-17 22:07:46 +02:00
ce3a26cf37 Updated Polish translation 2011-10-17 22:04:00 +02:00
04482c23c4 Updated POTFILES.in 2011-10-17 22:02:37 +02:00
ff20fe856e keyboard: show the keyboard immediately when the user toggles it on
Enabling the keyboard currently doesn't give much notification. Make
it so that the keyboard shows right away when it first gets turned on.

https://bugzilla.gnome.org/show_bug.cgi?id=659743
2011-10-17 14:55:17 -04:00
12e3921f81 messageTray: only set stage input mode when necessary
The message tray focus grabbing code sets the stage input
mode to Shell.StageInputMode.FOCUSED when the overview is
not visible. This ensures the stage window's input
region gets reshaped to include the notification chrome,
and so that input events get delivered appropriately to
the notification that grabbed focus.

The message tray code never tries to restore the stage input
mode later. Instead, the code relies on the stage input
mode (and input region) getting reset to
shell.StageInputMode.NORMAL automatically when focus moves
back from the shell chrome to a window in the user's session.

It's not really correct to set the stage input mode based
on the overview's visibility, though. At the login screen,
even though no overview is visible, the stage input mode is
Shell.StageInputMode.FULLSCREEN which is sufficient
for the notification's needs,  Furthermore,
Shell.StageInputMode.FOCUSED is insufficient for the login
dialog's needs since the login dialog isn't considered
part of the shell's chrome and won't get included in the
stage input region.

This commit changes the message tray code to only set the
stage input mode if the current stage input mode isn't good enough,
rather than assuming the input mode isn't good enough just because
the overview is hidden.

https://bugzilla.gnome.org/show_bug.cgi?id=660919
2011-10-17 13:24:12 -04:00
928fbee15b altTab: fix app ordering in certain edge cases
Because we were sorting the Alt+Tab list by user_time rather than
stacking order / MRU, it was possible for the currently-focused window
to sometimes not be the first app in the list. Fix this by using
meta_display_get_tab_list() to get the proper MRU ordering of windows
on the current workspace, and then convert that to an ordered list of
apps.

https://bugzilla.gnome.org/show_bug.cgi?id=645026
2011-10-17 12:54:03 -04:00
a103c028f9 gdm: add prelight to Not Listed? button
The prelight makes it clearer that the button is
clickable, and makes it more consistent with other
clickable parts of the dialog.

https://bugzilla.gnome.org/show_bug.cgi?id=659763
2011-10-17 11:55:46 -04:00
775347d865 Updated Japanese translation 2011-10-18 00:54:05 +09:00
6d0be86a4e dash: Add minor optimization to _adjustIconSize()
In case _adjustIconSize() is called while the the dash icons are
animating, some extra work is required to yield the expected result.
Skip those extra steps when the icons are not actually animating.

https://bugzilla.gnome.org/show_bug.cgi?id=649248
2011-10-17 16:07:52 +02:00
a4b69db8af dash: Rework _adjustIconSize()
The current code uses the dash's height and current icon size to
calculate the new icon size. However, the height does not correctly
relate to the icon size while the icons are animating, in which
case the resulting icon size may be wrong.
Rework the function to be independent from the actual icon sizes,
so that a correct size is calculated even when called during an
animation.

https://bugzilla.gnome.org/show_bug.cgi?id=649248
2011-10-17 16:07:52 +02:00
790b9d3371 dash: Ignore hiding items in _adjustIconSize()
Rather than relying on the caller to hide the remove target and
removed items before calling _adjustIconSize(), move that logic
into _adjustIconSize() itself.

https://bugzilla.gnome.org/show_bug.cgi?id=649248
2011-10-17 16:07:52 +02:00
adef2009a5 Revert "dash: Ignore hiding items in _adjustIconSize()"
Ooops, a patch got lost in rebase.

This reverts commit b07f9932db.
2011-10-17 16:01:19 +02:00
1721db6d8d Revert "dash: Add minor optimization to _adjustIconSize()"
Ooops, a patch got lost in rebase ...

This reverts commit 6d95e8b988.
2011-10-17 16:00:52 +02:00
6d95e8b988 dash: Add minor optimization to _adjustIconSize()
In case _adjustIconSize() is called while the the dash icons are
animating, some extra work is required to yield the expected result.
Skip those extra steps when the icons are not actually animating.

https://bugzilla.gnome.org/show_bug.cgi?id=649248
2011-10-17 15:58:25 +02:00
b07f9932db dash: Ignore hiding items in _adjustIconSize()
Rather than relying on the caller to hide the remove target and
removed items before calling _adjustIconSize(), move that logic
into _adjustIconSize() itself.

https://bugzilla.gnome.org/show_bug.cgi?id=649248
2011-10-17 15:58:16 +02:00
9439da81c4 Add context menus to some entries
Use ShellEntry.addContextMenu() to add context menus to most
existing entries, with the exception of:

 - the login dialog - it may act be used to enter either the
                      username (e.g. no password entry) or the
                      password, and copy/paste does not make sense
                      (nowhere to copy from, nowhere to paste to)
 - notifications    - while adding a context menu is useful here as
                      well, it will require changes to the tray's
                      focus grab handling, so leave those entries
                      out for now

https://bugzilla.gnome.org/show_bug.cgi?id=659275
2011-10-17 15:29:32 +02:00
6257e64d03 shell-entry: Add API to support entry context menus
Add addContextMenu() to support context menus on right-click/long-press.
Depending on the parameters passed, the context menu only contains
"Copy"/"Paste" actions or an additional "Show/Hide Text" toggle action
for password entries.

https://bugzilla.gnome.org/show_bug.cgi?id=659275
2011-10-17 15:29:32 +02:00
ba110f2d2e network-agent: Remove "Show password" switch
While the ability to show the password can be useful at times,
the existing implementation is problematic:

  1) The use of a switch is wrong (as even noted in a code
     comment).

  2) It is inconsistent with any other password dialog (login screen,
     polkit).

In lack of a properly designed solution (for all password dialogs),
the designers agreed to remove the switch for now.

https://bugzilla.gnome.org/show_bug.cgi?id=658948
2011-10-17 15:29:32 +02:00
6bdf621d05 Fixed some strings in Brazilian Portuguese translation 2011-10-17 10:38:23 -02:00
1c4db98c95 added Kurdish translation 2011-10-17 14:28:49 +02:00
dadac957e4 updated Kurdish translation 2011-10-17 13:38:39 +02:00
cf3976d496 l10n: updated Italian translation 2011-10-17 10:31:24 +02:00
82ed80c9c3 extensionSystem: Load user extensions after system ones
https://bugzilla.gnome.org/show_bug.cgi?id=661815
2011-10-16 14:54:17 -04:00
67222525ad Updated Korean translation 2011-10-17 03:00:56 +09:00
fff0861773 Updated French translation 2011-10-16 12:50:22 +02:00
13ffe41498 Updated Persian translations 2011-10-15 16:05:29 +03:30
96e0528a7b Updated Bulgarian translation 2011-10-15 10:43:14 +03:00
3df30fbd57 Updated Bulgarian translation 2011-10-15 10:00:14 +03:00
b57d8b336b Updated British English translation 2011-10-14 19:12:28 +01:00
3169b2c440 keyboard: fix the keyboard hiding when an extended key is selected
Add a corner case for when the extended key is clicked in order to stop the keyboard
from prematurely closing.

https://bugzilla.gnome.org/show_bug.cgi?id=661707
2011-10-13 16:12:16 -04:00
6bc34e0f32 shell-app: Plug a small memory leak 2011-10-13 22:09:39 +02:00
cecb1a41fb st-texture-cache: Fix a minor crash when computing our border-radius
If we add a 0-sized actor with a border-radius, we will crash as we try to
allocate a 0-sized texture in Cogl. Bail out early instead of doing that.

https://bugzilla.gnome.org/show_bug.cgi?id=661617
2011-10-13 14:15:18 -04:00
b9069df85c search: fix keyboard hiding when user starts a new search
The keyboard hides prematurely when the user is typing into
an empty search box because the click is a captured event that
triggers a loss of entry focus. By adding a keyboard check to
this event, the problem is solved.

https://bugzilla.gnome.org/show_bug.cgi?id=661340
2011-10-13 14:12:21 -04:00
aee3c6f041 shell-app: Remove MATCH_MULTIPLE_{PREFIX,SUFFIX}
We originally OR'ed search terms and favored results which matched
multiple times to get more relevant results. When changing search
to AND search terms, the semantics of "multiple matches" were
changed to refer to a single term matching multiple criteria (name,
executable), which seemed like a good idea at the time.

However in practice this just results in applications whose
user-visible name matches the executable name on disk being
favored over applications using a more generic name, which
isn't too useful (in particular when taking usage frequency
into account).

https://bugzilla.gnome.org/show_bug.cgi?id=623372
2011-10-13 17:46:45 +02:00
c427bba9f1 shell-app: Improve prefix matches
Currently we use a very strict definition of "prefix", where the
search term has to match at the very beginning of the searched
criteria (application name, executable name). Use a more liberal
definition by including matches where the preceding character is
a space (application name) or hyphen (executable name) as well;
as many applications use a prefix, this should improve the quality
of results.

https://bugzilla.gnome.org/show_bug.cgi?id=623372
2011-10-13 17:46:45 +02:00
da83ad561b app-system: Consider usage frequency in search results
Application search results are internally categorized in four sets,
multiple and single prefix matches and multiple and single substring
matches. Each set is currently sorted alphabetically by application
name when concatenating the sets to the final result.
Change the last step to sort each set by usage frequency instead,
which is more likely to favor the most relevant match than
"arbitrary" alphabetic order.

https://bugzilla.gnome.org/show_bug.cgi?id=623372
2011-10-13 17:46:45 +02:00
85520e34ab popup-menu: Allow adjusting where in the source the arrow points to
Currently BoxPointer/Menus always point to the center of the
associated source actor. This is generally what we want, but
add some API to adjust that behavior for the cases where it
isn't.

https://bugzilla.gnome.org/show_bug.cgi?id=659274
2011-10-13 15:03:32 +02:00
d0edd970e1 gdm: clean up spacing
There's a lot of dead vertical space right now from
the session list, even if there are no sessions.

This commit mops that up.

https://bugzilla.gnome.org/show_bug.cgi?id=661479
2011-10-11 17:27:42 -04:00
8529ca70af gdm: don't show fingerprint message right away
Right now we show "(or swipe finger)" at the user login prompt
any time we detect a fingerprint reader.

Checking for the presense of a fingerprint reader isn't really
sufficient for knowing if it is appropriate or not to show the
message, though. Often, a user's fingerprint won't be enrolled
in the system even if the machine has a fingerprint reader.

In this scenario, we end up in a situation where the code will
fade out the message right after fading it in, or worse, fade
out the message while fading it in.

The former case looks flickery and bad, and the latter case
causes the login dialog to lock up since it never completes its
"show prompt" animation and we don't procede with the login
process until after that animation.

If a user is enrolled in the system, the fingerprint pam module
tries to tell the user to swipe their finger.  We never show the
user that message because it's redundant with our own "(or swipe
finger)" message and because it uses techy words like "UPEK" and
"TouchStrip".

This commit changes the code to defer showing "(or swipe
finger)" until the fingerprint pam module forwards us its own
message. This makes it less likely we'll show the message when
fingerprint login won't work, and also removes the fingerprint
animation from the critical path "show prompt" animation.

https://bugzilla.gnome.org/show_bug.cgi?id=660492
2011-10-11 17:25:44 -04:00
1a8d78212f layoutManager: Ignore 1px overlap in _isAboveOrBelowPrimary()
Nvidia's twin view option does not align monitors properly, but with
a one pixel overlap. It looks safe to ignore an overlap this small
to make this case work.

https://bugzilla.gnome.org/show_bug.cgi?id=661387
2011-10-11 16:20:12 +02:00
4270a2806d Updated Hungarian translation 2011-10-11 16:12:28 +02:00
4333bdc709 *.[ch]: add emacs modeline to C files that were missing it
(excluding files that are synced from another module)

https://bugzilla.gnome.org/show_bug.cgi?id=660358
2011-10-11 08:05:17 -04:00
75b824d032 *.js: Make emacs modelines consistent
js2-mode is no longer developed and we recommend js-mode these days,
so switch the modelines to specify that, and make them consistent
across all files.

https://bugzilla.gnome.org/show_bug.cgi?id=660358
2011-10-11 08:05:12 -04:00
7bc2573d85 window-clone: Use ClutterClickAction
Right-click menus in the dash can be dismissed by clicking anywhere
outside the menu. However, if a window clone is located beneath the
pointer when doing so, the window is activated and the overview
closed.
The cause of this unexpected behavior is that window previews are
activated on button-release, which is delivered to the preview after
the menu releases its grab on button-press. Use a ClutterClickAction
instead and let Clutter do the right thing, i.e. only trigger a
'clicked' signal when a button-release event is matched by a
corresponding button-press event.

https://bugzilla.gnome.org/show_bug.cgi?id=661151
2011-10-11 12:56:34 +02:00
67b7b7a950 shell-util: Fix a bogus annotation
Creating a new instance is not (transfer none), unless I'm missing
somehting here...

https://bugzilla.gnome.org/show_bug.cgi?id=661231
2011-10-11 00:07:31 -04:00
786cfbd397 shell-util: Remove shell_util_icon_from_string
GJS doesn't need to be able to represent interfaces for you to be able to
access an interface method, so Gio.icon_new_for_string works fine.

https://bugzilla.gnome.org/show_bug.cgi?id=661231
2011-10-11 00:07:31 -04:00
9df8b583cf Updated Telugu Translations 2011-10-10 16:53:43 +05:30
8e32290dc9 Change default of saved-im-presence to Offline
Unset is not a valid presence type so the Shell shouldn't try setting it when
starting for the first time.

https://bugzilla.gnome.org/show_bug.cgi?id=661272
2011-10-09 15:23:59 -04:00
23478f3336 Updated Lithuanian translation 2011-10-09 00:40:32 +03:00
2e244ecb63 Updated Latvian translation. 2011-10-08 22:48:44 +03:00
e307680206 [l10n] Updated German translation 2011-10-08 20:38:19 +02:00
6bb1a3e2c4 Updated Russian translation 2011-10-08 11:34:28 +04:00
8a1ac6b13f Updated Dutch translation by Wouter Bolsterlee 2011-10-08 02:04:37 +02:00
61b8af2252 Add translator comment for button label 2011-10-08 01:50:20 +02:00
c99afed012 messageTray: Fix accidental typo 2011-10-07 16:34:04 -04:00
2947b92148 user-menu: Restore previous session presence at startup
Save the session presence in GSettings and restore it on startup.

https://bugzilla.gnome.org/show_bug.cgi?id=659021
2011-10-07 07:24:21 +02:00
39c5d23a87 user-menu: Restore previous IM presence on startup
Move the saved user-set presence to GSettings, so it is preserved
between logins.

https://bugzilla.gnome.org/show_bug.cgi?id=659021
2011-10-07 07:24:21 +02:00
d839670f54 Updated Spanish translation 2011-10-06 23:39:36 +02:00
0d1b7e15d1 Updated Swedish translation 2011-10-06 08:09:28 +02:00
ac678f63ee Updated Galician translations 2011-10-06 02:52:18 +02:00
d862c0879b telepathyClient: Check for a no-op before pushing an alias change message
tp-glib can sometimes emit a notify::alias signal when the alias doesn't
actually change. Bail out early instead of pushing an alias change message.

https://bugzilla.gnome.org/show_bug.cgi?id=660774
2011-10-05 15:34:40 -04:00
23a4d4c69e texture-cache: Don't share requests for uncachable textures
Make create_texture_and_ensure_request() aware of the caching
policy to avoid returning the same texture for different
images.

https://bugzilla.gnome.org/show_bug.cgi?id=660585
2011-10-05 21:30:27 +02:00
472b20d933 ShellContactSystem: Make address search actually work
The code was not dealing properly with what folks returns
for im and email addresses.

https://bugzilla.gnome.org/show_bug.cgi?id=660925
2011-10-05 20:26:39 +02:00
492dd718fb ShellContactSystem: make search terms conjunctive
Require that all terms match. This is the expected behaviour
and matches what gnome-contacts does. Keep the prefix/infix
weights in place for now.

https://bugzilla.gnome.org/show_bug.cgi?id=660912
2011-10-05 20:26:38 +02:00
0d5618fdd1 contact-display: Try harder to display a meaningful name
We now match individuals on other properties than alias, so take
this into account when representing a contact in search results
to avoid having them show up as "Unknown".

https://bugzilla.gnome.org/show_bug.cgi?id=660580
2011-10-05 20:26:38 +02:00
503508af41 contact-system: Add helper method to get a (display) email
Folks uses collection/set objects from libgee to store email addresses
associated with an individual. Unfortunately to extract addresses, parts
of libgee which are unusable from (introspected) bindings have to be
used[0], so add a helper method.

[0] in particular gee_iterator_get(), which is annotated as
    "return: (transfer full): gpointer"

https://bugzilla.gnome.org/show_bug.cgi?id=660580
2011-10-05 20:26:38 +02:00
4ec5e55122 Move shell contacts search closer to gnome-contacts
Match folks' name and nick fields, in addition to alias,
and look at email addresses in addition to im addresses.
This is more in line with what gnome-contacts does.

To match this new usage, rename the ALIAS_..._WEIGHT and
IM_..._WEIGHT constants to NAME_ and ADDR_, respectively.

https://bugzilla.gnome.org/show_bug.cgi?id=660580
2011-10-05 20:26:38 +02:00
8daca865ca Updated Slovenian translation 2011-10-05 19:59:01 +02:00
f9b37a21e8 StThemeNodeDrawing: Remove useless LoadCornerData
Done as part of my quest to merge Mx and St:

https://github.com/magcius/mx/tree/st-rebase

https://bugzilla.gnome.org/show_bug.cgi?id=660968
2011-10-05 12:24:28 -04:00
c398f319fc [l10n]Updated Catalan translation 2011-10-04 23:30:47 +02:00
1e049f88b8 Updated Polish translation 2011-10-04 23:25:07 +02:00
4831d9c3a3 lookingGlass: Fix referencing undefined variables 2011-10-04 16:50:58 -04:00
f13f5bc1bb Use '' for non-translated strings
Pay attention to the style guidelines.

https://bugzilla.gnome.org/show_bug.cgi?id=660600
2011-10-04 16:47:53 -04:00
4e114107ed keyboard: Add a missed translation
The word "tray" should be translated to other languages.

https://bugzilla.gnome.org/show_bug.cgi?id=660600
2011-10-04 16:47:53 -04:00
0ccb280008 st-theme-node-drawing: Fix centering when the image needs to be scaled
The translate coordinates are calculated as the offset after the scale, so it
needs to be applied after the scale as well. This fixes random centering issues
in the UI.

https://bugzilla.gnome.org/show_bug.cgi?id=660674
2011-10-04 15:46:01 -04:00
28c3e0693e workspaces-view: Remove window dnd between workspaces
When workspace "previews" in the overview were just tiny gray
rectangles, it made sense to provide a way to move windows
directly between workspaces (by switching workspaces when dragging
a window to the corresponding screen edge). As the overview has
evolved however, the workspace switcher provides a good and
intuitive drop target already, so the alternative provided by the
screen edges is no longer necessary. As it also conflicts with
moving windows between monitors when using a vertical layout,
just remove it.

https://bugzilla.gnome.org/show_bug.cgi?id=660838
2011-10-04 20:30:20 +02:00
c321c8a02f Updated Polish translation 2011-10-04 20:09:02 +02:00
2407ec7b47 Revert "lookingGlass: Add an easier way to see extension errors"
This reverts commit 1e6b824ede.
2011-10-04 13:15:10 -04:00
70eeb75716 lookingGlass: Show extension state in gnome-shell
We translate and create an actor to show the extension state, but we never
actually add it anywhere. Fix that.

https://bugzilla.gnome.org/show_bug.cgi?id=660494
2011-10-04 13:14:54 -04:00
751d250471 autorun: fix a typo in a variable name
The variable |type| doesn't exist here; what we want to do is using the
first member of the contentTypes array instead.
Probably a leftover of some refactoring of the code I did while working
on this.

This patch fixes starting of the default application for a given content
type if the control-center panel is set to run it when a device is
plugged.

https://bugzilla.gnome.org/show_bug.cgi?id=660821
2011-10-03 16:34:59 -04:00
c28217db80 Updated Esperanto translation 2011-10-03 20:40:41 +02:00
0968e556fa WindowDimmer: Make effect private
There is no need for making this public as it is only accessed from within
WindowDimmer.
2011-10-03 18:22:58 +02:00
130f2cf808 WindowDimmer: Don't try to use a ShaderEffect when GLSL is not available
This obviously won't work anyway but will just spam stderr with warnings,
so don't do it.
2011-10-03 18:22:47 +02:00
4eec7413c7 Revert "lookingGlass: Show extension state in gnome-shell"
This reverts commit 32dc24c59b, as it caused
a string break.

https://bugzilla.gnome.org/show_bug.cgi?id=660494
2011-10-02 12:05:21 -04:00
efc3246d26 Updated Bulgarian translation 2011-10-02 13:52:37 +03:00
9930dbc0ff Updated Galician translations 2011-10-02 00:24:03 +02:00
754f87dac3 Updated Swedish translation 2011-10-01 21:57:10 +02:00
51139bd096 Updated Irish translation 2011-10-01 13:26:46 -06:00
6e0119d620 Updated Irish translation 2011-10-01 13:16:56 -06:00
a3528bf973 layout: Fix the actor tracking parameter parsing
It's not appropriate to inherit from the parent property if we pass "false"
as a value, especially when all current parameters are booleans.

https://bugzilla.gnome.org/show_bug.cgi?id=660608
2011-10-01 14:41:53 -04:00
77c36af588 [l10n]Updated Catalan (Valencian) translation 2011-10-01 16:04:25 +02:00
69c0a52a33 [l10n]Updated Catalan translation 2011-10-01 16:04:18 +02:00
a7442cd0a5 Updated Vietnamese translation 2011-10-01 10:31:24 +10:00
d47a013931 vi.po: import from Damned Lies 2011-10-01 10:29:31 +10:00
745f9c0e6e Added asturian language 2011-09-30 21:04:02 +02:00
414f49fd80 Updated asturian translation 2011-09-30 21:02:57 +02:00
e49a595f54 st-texture-cache: Don't cache GIcons which cannot be serialized
For GIcons we use g_icon_to_string() in the key, but the function
will return NULL if the icon cannot be serialized. As a result,
all non-serializable GIcons of the same size end up with the same
cache key - an example for this are contacts with avatars, which
currently all end up with the same image.
To fix, opt out of caching for GIcons which cannot be serialized.

https://bugzilla.gnome.org/show_bug.cgi?id=660585
2011-09-30 20:14:25 +02:00
77485c2a04 [l10n] Updated German translation 2011-09-30 20:07:51 +02:00
e9b28634e5 Updated Slovenian translation 2011-09-30 19:13:24 +02:00
b43dcb8876 layout: Fix setting fullscreen for screen sized windows
We have to set the flag for all monitors in that case.
2011-09-30 18:46:14 +02:00
f0c1eeece8 Updated Spanish translation 2011-09-30 18:27:07 +02:00
1e6b824ede lookingGlass: Add an easier way to see extension errors
Use the extensions tab to show errors belonging to each extension.

https://bugzilla.gnome.org/show_bug.cgi?id=660546
2011-09-30 12:19:30 -04:00
1e2d16273c layoutManager: Treat screen_sized OR windows as fullscreen
https://bugzilla.gnome.org/show_bug.cgi?id=660166
2011-09-29 21:38:05 +02:00
32dc24c59b lookingGlass: Show extension state in gnome-shell
We translate and create an actor to show the extension state, but we never
actually add it anywhere. Fix that.

https://bugzilla.gnome.org/show_bug.cgi?id=660494
2011-09-29 13:15:27 -04:00
7a8a189c48 boxpointer: Don't constrain box pointer to primary monitor
A boxPointer should be able to be attached to any actor, not just ones on the
primary monitor. Assume that the sourceActor doesn't straddle monitors, and
constrain the boxPointer to the monitor the sourceActor is on.

https://bugzilla.gnome.org/show_bug.cgi?id=659861
2011-09-29 13:15:01 -04:00
6aa411fecc keyboard: ignore D-Bus requests when the OSK isn't enabled
Fixes spurious warnings about "this.actor is null" when processing
org.gnome.Caribou.Keyboard messages when the keyboard isn't enabled.

https://bugzilla.gnome.org/show_bug.cgi?id=659940
2011-09-29 10:28:49 -04:00
9c76318df8 main: remove a stray second keyboard.init() call
Originally the keyboard was initialized in the user-session-specific
code, but it was later moved to the generic code. Except that it was
accidentally copied rather than moved.

https://bugzilla.gnome.org/show_bug.cgi?id=659940
2011-09-29 10:28:46 -04:00
6510904711 windowAttentionHandler: Remove "%s has finished starting"
The message is verbose and confusing. Use the traditional "'%s' is ready"
for all cases.

https://bugzilla.gnome.org/show_bug.cgi?id=660310
2011-09-29 09:59:09 -04:00
a9817f4832 automountManager: Don't mount already-mounted volumes
Don't pester the user with autorun popups if a volume is already mounted.

https://bugzilla.gnome.org/show_bug.cgi?id=660397
2011-09-28 16:51:02 -04:00
9067689839 power-status: Use correct DBus signatures
Devices are represented as susdut, not susbut (i.e. the percentage
is a double rather than a boolean) - apparently the wrong signature
works, but correct it anyway.

https://bugzilla.gnome.org/show_bug.cgi?id=660122
2011-09-28 19:56:23 +02:00
4e9e91fdce recorder: Use CoglHandle instead of CoglHandle*
The latter has always been wrong and should have been fixed a
while ago, but somehow we overlooked shell-recorder.

https://bugzilla.gnome.org/show_bug.cgi?id=659822
2011-09-28 19:56:23 +02:00
73cc91ba60 update zh_CN translation 2011-09-28 01:01:12 +08:00
0ab0d0860f Uploaded Ukranian 2011-09-27 14:56:16 +03:00
337b399a75 Updated Serbian translation 2011-09-27 02:47:53 +02:00
46f21e81e3 updated Tamil translation 2011-09-27 05:14:59 +05:30
167 changed files with 13894 additions and 6651 deletions

110
NEWS
View File

@ -1,3 +1,113 @@
3.2.2
=====
* Fix crash when searching in the shell caused by .desktop files
without Exec= lines (commonly, nautilus-pastebin) [Ray; #663815]
* Message Tray:
- Fix bug that would cause confusion between notifications from different
services running in the gnome-settings-daemon process
[Marina, Jasper; #664138]
- Don't steal the focus when popping up beneath the pointer [Rui; #661358]
- Only pop up the message tray from a hot corner, rather than trapping
clicks on the entire bottom row. [Rui; #663366]
* Browser plugin and extension.gnome.org integration
- Fix multiple bugs that kept the plugin from working in WebKit-based browsers
[Jasper, #663823, #666444]
- Fix plugin crash when the shell is installed but not running [Jürg]
- Fix problem that kept plugin uninstallation from working [Jasper]
* gnome-shell-extension-tool
- Fix error that was printed after creating an extension [Jasper; #661623]
- Use xdg-open rather than the deprecated gnome-open [Jasper]
* Don't recreate dash icons unnecessarily - this hopefully fixes various
crashes. [Owen, Giovanni; #648450]
* Fix several bugs that caused errors and slowdowns when updating the
network menu. [Giovanni; #651378, #659277, #663278]
* Fix several crashers related to updating workspace thumbnails
[Owen; #667652]
* Fix memory management error causing gnome-shell-hotplug-sniffer to crash
[Owen; #667378]
* Fix crash and misdrawing with shadowed elements [Owen; #668048, #668050]
* Fix several small memory leaks. [Jasper, Florian]
Contributors:
Jürg Billeter, Rui Matos, Florian Müllner, Jasper St. Pierre, Ray Strode,
Owen Taylor, Marina Zhurakhinskaya
Translations:
Alexander Shopov [bg], Gil Forcada [ca], Carles Ferrando [ca@valencia],
Marek Černocký [cz], Kris Thomsen [dk], Bruce Cowan [en_GB],
Kristjan Schmidt [eo], Daniel Mustieles [es], Arash Mousavi [fa],
Ville-Pekka Vainio [fi], Bruno Brouard [fr], Hideki Yamane [ja],
Žygimantas Beručka, Aurimas Černius [lt], Kjartan Maraas [nb],
"Andreas N" [nn], Djavan Fagundes, Antonio Fernandes C. Neto [pt_BR],
Daniel Nylander [se], Matej Urbančič [sl], Praveen Illa [te],
Nguyễn Thái Ngọc Duy [vi]
3.2.1
=====
* Restore the IM state on startup - if you were available in when you logged
out, then you'll be set available again when you log in.
[Florian; #65902, #661485]
* Improve searching for contacts in the overview: search more fields,
show a more meaningful name, require that all search terms match.
[Florian, Matthias; #660580]
* Improve search for applications in the overview: take frequency into
account and tweak match algorithm [Florian; #623372]
* Remove the "Show Password" switch from network password prompts, and
move the functionality to a right-click menu [Florian; #658948]
* Add context menus with Cut/Paste options to most entries [Florian; #659275]
* On screen keyboard:
- Show the keyboard immediately when it's turned enabled [Dan; #659743]
- Fix problem where keyboard would hide when starting to type
in the search entry [Nohemi; #661340]
- Fix problem with keyboard hiding when selected accented characters
[Nohemi; 661707]
* Login mode:
- Allow hitting Enter to select the first user [Ray; #657996]
- Fix flicker of a fingerprint prompt that could show up [Ray; #660492]
- Fix password bullets vanishing during login [Ray; #657894]
- Misc bug fixes and visual tweaks [Ray; #659763, #660919, #661479]
* Display a caps-lock warning in password entries [Florian; #660806]
* Show the state of installed extensions in Looking Glass [Jasper; #660494]
* Load user extensions after system ones [Jasper; #661815]
* Fix problem with many applications showing extra-large icons in
notifications [Marina; #659158]
* Fix a problem where alt-Tab had trouble tracking the current
application with certain applications such as Emacs. [Dan; #645026]
* Fix confusion between different users avatar images [Florian; #660585]
* Remove behavior where you could switch workspaces by bumping
a dragged window in the overview against a screen edge; it was
leftover and just confusing. [Florian; #660838]
* Fix long-standing bug where the Dash in the overview could end up mis-sized
and run off the screen [Florian; #649248]
* Fix automatic launching of applications when media is inserted
[Cosimo; #660821]
* Fix handling of vertically stacked monitors with NVIDIA drivers
[Florian; #661387]
* Translation marking fixes [Jasper, Wouter; #660600]
* Code cleanups and warning fixes [Adel, Dan, Florian, Jasper;
#659822, #659940, #660122, #660358, #660968, #661231]
* Small memory leak fixes [Florian, Jasper; #661231]
* Misc bug fixes [Adel, Florian, Jasper; #659274, #659861, #660166, #660310,
#660397, #660608, #660606, #660674, #660774. #660848, #661151, #661617]
Contributors:
Wouter Bolsterlee, Cosimo Cecchi, Matthias Clasen, Nohemi Fernandez,
Adel Gadllah, Florian Müllner, Jasper St. Pierre, Ray Strode, Dan Winship,
Marina Zhurakhinskaya
Translations:
Tiffany Antopolski [eo], Xandru Armesto [ast], Alexander Shopov,
Ivaylo Valkov [bg], Gil Forcada [ca], Carles Ferrando [ca@valencia],
Mario Blättermann, Paul Seyfert [de], Bruce Cowan [en_GB],
Jorge González, Daniel Mustieles [es], Arash Mousavi [fa], Bruno Brouard [fr],
Seán de Búrca [ga], Fran Diéguez [gl], Gabor Kelemen [hu], Luca Ferretti [it],
Takayuki Kusano [ja], Changwoo Ryu [ko], Erdal Ronahi [ku],
Algimantas Margevičius [lt], Rudolfs Mazurs [lv], Wouter Bolsterlee [nl],
Piotr Drąg [pl], Adorilson Bezerra [pt_BR], Yuri Myasoedov [ru],
Matej Urbančič [sl], Daniel Nylander [sv], Miroslav Nikolić [sr, sr@latin],
Tirumurti Vasudevan [ta], Krishnababu Krothapalli [te], Daniel Korostil [uk],
Nguyễn Thái Ngọc Duy [vi], YunQiang Su [zh_CN]
3.2.0
=====
* Prevent the fallback on-screen keyboard from showing up while

View File

@ -47,8 +47,6 @@ typedef struct {
GDBusProxy *proxy;
} PluginData;
/* =============== public entry points =================== */
static NPNetscapeFuncs funcs;
static inline gchar *
@ -71,10 +69,7 @@ get_string_property (NPP instance,
goto out;
result_str = NPVARIANT_TO_STRING (result);
if (strlen (result_str.UTF8Characters) != result_str.UTF8Length)
goto out;
result_copy = g_strdup (result_str.UTF8Characters);
result_copy = g_strndup (result_str.UTF8Characters, result_str.UTF8Length);
out:
funcs.releasevariantvalue (&result);
@ -150,6 +145,8 @@ check_origin_and_protocol (NPP instance)
return ret;
}
/* =============== public entry points =================== */
NPError
NP_Initialize(NPNetscapeFuncs *pfuncs, NPPluginFuncs *plugin)
{
@ -458,7 +455,7 @@ plugin_enable_extension (PluginObject *obj,
NPString uuid,
gboolean enabled)
{
const gchar *uuid_str = uuid.UTF8Characters;
gchar *uuid_str = g_strndup (uuid.UTF8Characters, uuid.UTF8Length);
if (!uuid_is_valid (uuid_str))
return FALSE;
@ -471,6 +468,8 @@ plugin_enable_extension (PluginObject *obj,
NULL, /* callback */
NULL /* user_data */);
g_free (uuid_str);
return TRUE;
}
@ -479,21 +478,32 @@ plugin_install_extension (PluginObject *obj,
NPString uuid,
NPString version_tag)
{
const gchar *uuid_str = uuid.UTF8Characters;
gchar *uuid_str = g_strndup (uuid.UTF8Characters, uuid.UTF8Length);
gchar *version_tag_str;
if (!uuid_is_valid (uuid_str))
return FALSE;
{
g_free (uuid_str);
return FALSE;
}
version_tag_str = g_strndup (version_tag.UTF8Characters,
version_tag.UTF8Length);
g_dbus_proxy_call (obj->proxy,
"InstallRemoteExtension",
g_variant_new ("(ss)",
uuid_str,
version_tag.UTF8Characters),
version_tag_str),
G_DBUS_CALL_FLAGS_NONE,
-1, /* timeout */
NULL, /* cancellable */
NULL, /* callback */
NULL /* user_data */);
g_free (uuid_str);
g_free (version_tag_str);
return TRUE;
}
@ -504,11 +514,14 @@ plugin_uninstall_extension (PluginObject *obj,
{
GError *error = NULL;
GVariant *res;
const gchar *uuid_str;
gchar *uuid_str;
uuid_str = uuid.UTF8Characters;
uuid_str = g_strndup (uuid.UTF8Characters, uuid.UTF8Length);
if (!uuid_is_valid (uuid_str))
return FALSE;
{
g_free (uuid_str);
return FALSE;
}
res = g_dbus_proxy_call_sync (obj->proxy,
"UninstallExtension",
@ -519,6 +532,8 @@ plugin_uninstall_extension (PluginObject *obj,
NULL, /* cancellable */
&error);
g_free (uuid_str);
if (!res)
{
g_warning ("Failed to uninstall extension: %s", error->message);
@ -536,11 +551,14 @@ plugin_get_info (PluginObject *obj,
{
GError *error = NULL;
GVariant *res;
const gchar *uuid_str;
gchar *uuid_str;
uuid_str = uuid.UTF8Characters;
uuid_str = g_strndup (uuid.UTF8Characters, uuid.UTF8Length);
if (!uuid_is_valid (uuid_str))
return FALSE;
{
g_free (uuid_str);
return FALSE;
}
res = g_dbus_proxy_call_sync (obj->proxy,
"GetExtensionInfo",
@ -550,6 +568,8 @@ plugin_get_info (PluginObject *obj,
NULL, /* cancellable */
&error);
g_free (uuid_str);
if (!res)
{
g_warning ("Failed to retrieve extension metadata: %s", error->message);
@ -567,11 +587,14 @@ plugin_get_errors (PluginObject *obj,
{
GError *error = NULL;
GVariant *res;
const gchar *uuid_str;
gchar *uuid_str;
uuid_str = uuid.UTF8Characters;
uuid_str = g_strndup (uuid.UTF8Characters, uuid.UTF8Length);
if (!uuid_is_valid (uuid_str))
return FALSE;
{
g_free (uuid_str);
return FALSE;
}
res = g_dbus_proxy_call_sync (obj->proxy,
"GetExtensionErrors",
@ -581,6 +604,8 @@ plugin_get_errors (PluginObject *obj,
NULL, /* cancellable */
&error);
g_free (uuid_str);
if (!res)
{
g_warning ("Failed to retrieve errors: %s", error->message);
@ -636,7 +661,8 @@ plugin_get_shell_version (PluginObject *obj,
STRINGN_TO_NPVARIANT (buffer, length, *result);
out:
g_variant_unref (res);
if (res)
g_variant_unref (res);
return ret;
}
@ -816,6 +842,11 @@ NPP_GetValue(NPP instance,
*(NPObject**)value = funcs.createobject (instance, &plugin_class);
break;
case NPPVpluginNeedsXEmbed:
*(bool *)value = TRUE;
break;
default:
;
}

View File

@ -1,5 +1,5 @@
AC_PREREQ(2.63)
AC_INIT([gnome-shell],[3.2.0],[https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-shell],[gnome-shell])
AC_INIT([gnome-shell],[3.2.2],[https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-shell],[gnome-shell])
AC_CONFIG_HEADERS([config.h])
AC_CONFIG_SRCDIR([src/shell-global.c])
@ -67,7 +67,7 @@ AM_CONDITIONAL(BUILD_RECORDER, $build_recorder)
CLUTTER_MIN_VERSION=1.7.5
GOBJECT_INTROSPECTION_MIN_VERSION=0.10.1
GJS_MIN_VERSION=1.29.18
MUTTER_MIN_VERSION=3.0.0
MUTTER_MIN_VERSION=3.2.1
FOLKS_MIN_VERSION=0.5.2
GTK_MIN_VERSION=3.0.0
GIO_MIN_VERSION=2.29.10

View File

@ -50,6 +50,14 @@
<default>[]</default>
<_summary>History for the looking glass dialog</_summary>
</key>
<key name="saved-im-presence" type="i">
<default>1</default>
<_summary></_summary>
</key>
<key name="saved-session-presence" type="i">
<default>0</default>
<_summary></_summary>
</key>
<child name="clock" schema="org.gnome.shell.clock"/>
<child name="calendar" schema="org.gnome.shell.calendar"/>
<child name="recorder" schema="org.gnome.shell.recorder"/>

View File

@ -98,8 +98,12 @@
color: #666666;
}
.login-dialog-not-listed-button:hover .login-dialog-not-listed-label {
color: white;
}
.login-dialog-prompt-layout {
padding-bottom: 64px;
padding-bottom: 32px;
}
.login-dialog-prompt-label {
color: white;
@ -117,6 +121,16 @@
width: 15em;
}
.login-dialog-prompt-entry .capslock-warning {
icon-size: 16px;
warning-color: #999;
}
.login-dialog-prompt-entry:insensitive {
color: rgba(0,0,0,0.7);
border: 2px solid #565656;
}
.login-dialog-session-list {
color: #ffffff;
font-size: 10.5pt;

View File

@ -907,7 +907,7 @@ StTooltip StLabel {
font-weight: bold;
}
.lg-extension-actions {
.lg-extension-meta {
spacing: 6px;
}
@ -1907,6 +1907,12 @@ StTooltip StLabel {
border: 2px solid #3465a4;
}
.polkit-dialog-password-entry .capslock-warning {
icon-size: 16px;
warning-color: #999;
padding: 0 4px;
}
.polkit-dialog-error-label {
font-size: 10pt;
color: #ffff00;
@ -1925,14 +1931,6 @@ StTooltip StLabel {
padding-bottom: 8px;
}
.network-dialog-show-password-checkbox {
padding-top: 5px;
padding-bottom: 5px;
font-size: 10pt;
color: white;
spacing: 10px;
}
.network-dialog-secret-table {
spacing-rows: 15px;
}

View File

@ -46,6 +46,7 @@ nobase_dist_js_DATA = \
ui/messageTray.js \
ui/modalDialog.js \
ui/networkAgent.js \
ui/shellEntry.js \
ui/shellMountOperation.js \
ui/notificationDaemon.js \
ui/overview.js \

View File

@ -1,5 +1,5 @@
/* -*- mode: js2; js2-basic-offset: 4; indent-tabs-mode: nil -*-
*
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
/*
* Copyright 2011 Red Hat, Inc
*
* This program is free software; you can redistribute it and/or modify

View File

@ -1,4 +1,4 @@
// -*- mode: js2; indent-tabs-mode: nil; js2-basic-offset: 4 -*-
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
const DBus = imports.dbus;

View File

@ -1,4 +1,4 @@
// -*- mode: js2; indent-tabs-mode: nil; js2-basic-offset: 4 -*-
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
const DBus = imports.dbus;
const Lang = imports.lang;

View File

@ -1,5 +1,5 @@
/* -*- mode: js2; js2-basic-offset: 4; indent-tabs-mode: nil -*-
*
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
/*
* Copyright 2011 Red Hat, Inc
*
* This program is free software; you can redistribute it and/or modify
@ -297,6 +297,20 @@ UserList.prototype = {
x_align: St.Align.START,
y_align: St.Align.MIDDLE });
this._items = {};
this.actor.connect('key-focus-in', Lang.bind(this, this._moveFocusToItems));
},
_moveFocusToItems: function() {
let hasItems = Object.keys(this._items).length > 0;
if (!hasItems)
return;
if (global.stage.get_key_focus() != this.actor)
return;
this.actor.navigate_focus(null, Gtk.DirectionType.TAB_FORWARD, false);
},
_showItem: function(item) {
@ -502,6 +516,8 @@ UserList.prototype = {
item.showFocusAnimation(0);
}));
this._moveFocusToItems();
this.emit('item-added', item);
},
@ -694,10 +710,13 @@ SessionList.prototype = {
let ids = GdmGreeter.get_session_ids();
ids.sort();
if (ids.length <= 1)
if (ids.length <= 1) {
this._box.hide();
else
this._button.hide();
} else {
this._button.show();
this._box.show();
}
for (let i = 0; i < ids.length; i++) {
let [sessionName, sessionDescription] = GdmGreeter.get_session_name_and_description(ids[i]);
@ -922,6 +941,7 @@ LoginDialog.prototype = {
function() {
this._sessionList.close();
this._promptFingerprintMessage.hide();
this._userList.actor.show();
this._userList.actor.opacity = 255;
return this._userList.showItems();
@ -943,7 +963,18 @@ LoginDialog.prototype = {
},
_onInfo: function(client, serviceName, info) {
// we don't want fingerprint messages with the word UPEK in them
// We don't display fingerprint messages, because they
// have words like UPEK in them. Instead we use the messages
// as a cue to display our own message.
if (serviceName == _FINGERPRINT_SERVICE_NAME &&
this._haveFingerprintReader &&
(!this._promptFingerprintMessage.visible ||
this._promptFingerprintMessage.opacity != 255)) {
_fadeInActor(this._promptFingerprintMessage);
return;
}
if (serviceName != _PASSWORD_SERVICE_NAME)
return;
Main.notifyError(info);
@ -971,10 +1002,10 @@ LoginDialog.prototype = {
},
function() {
if (!this._haveFingerprintReader)
return null;
return _fadeInActor(this._promptFingerprintMessage);
// Show it with 0 opacity so we preallocate space for it
// in the event we need to fade in the message
this._promptFingerprintMessage.opacity = 0;
this._promptFingerprintMessage.show();
},
function() {
@ -1046,6 +1077,8 @@ LoginDialog.prototype = {
function() {
this._promptFingerprintMessage.hide();
this._promptEntry.reactive = true;
this._promptEntry.remove_style_pseudo_class('insensitive');
this._promptEntry.set_text('');
}];
@ -1061,7 +1094,8 @@ LoginDialog.prototype = {
function() {
let _text = this._promptEntry.get_text();
this._promptEntry.set_text('');
this._promptEntry.reactive = false;
this._promptEntry.add_style_pseudo_class('insensitive');
this._greeterClient.call_answer_query(serviceName, _text);
}];

View File

@ -1,5 +1,5 @@
/* -*- mode: js2; js2-basic-offset: 4; indent-tabs-mode: nil -*-
*
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
/*
* Copyright 2011 Red Hat, Inc
*
* This program is free software; you can redistribute it and/or modify

View File

@ -1,4 +1,5 @@
/* mode: js2; indent-tabs-mode: nil; tab-size: 4 */
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
/* The name of this package (not localized) */
const PACKAGE_NAME = '@PACKAGE_NAME@';
/* The version of this package */

View File

@ -1,4 +1,4 @@
/* -*- mode: js2; js2-basic-offset: 4; indent-tabs-mode: nil -*- */
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
const St = imports.gi.St;
const Shell = imports.gi.Shell;

View File

@ -1,3 +1,5 @@
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
const Gio = imports.gi.Gio;
const GLib = imports.gi.GLib;
@ -36,7 +38,7 @@ function recursivelyDeleteDir(dir) {
let child = dir.get_child(info.get_name());
if (type == Gio.FileType.REGULAR)
deleteGFile(child);
else if (type == Gio.TypeType.DIRECTORY)
else if (type == Gio.FileType.DIRECTORY)
recursivelyDeleteDir(child);
}

View File

@ -1,4 +1,4 @@
/* -*- mode: js2; js2-basic-offset: 4; indent-tabs-mode: nil -*- */
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
/*
* This function is intended to extend the String object and provide

View File

@ -1,4 +1,4 @@
/* -*- mode: js2; js2-basic-offset: 4; indent-tabs-mode: nil -*- */
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
const DBus = imports.dbus;
const Lang = imports.lang;
@ -78,7 +78,7 @@ function Inhibitor(objectPath) {
Inhibitor.prototype = {
_init: function(objectPath) {
DBus.session.proxifyObject(this,
"org.gnome.SessionManager",
'org.gnome.SessionManager',
objectPath);
this.isLoaded = false;
this._loadingPropertiesCount = InhibitorIface.properties.length;
@ -94,7 +94,7 @@ Inhibitor.prototype = {
if (this._loadingPropertiesCount == 0) {
this.isLoaded = true;
this.emit("is-loaded");
this.emit('is-loaded');
}
}));
}

View File

@ -1,4 +1,4 @@
/* -*- mode: js2; js2-basic-offset: 4; indent-tabs-mode: nil -*- */
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
const Lang = imports.lang;
const Signals = imports.signals;

View File

@ -1,4 +1,4 @@
// -*- mode: js2; indent-tabs-mode: nil; js2-basic-offset: 4 -*-
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
const DBus = imports.dbus;
const Lang = imports.lang;

View File

@ -1,4 +1,4 @@
/* -*- mode: js2; js2-basic-offset: 4; indent-tabs-mode: nil -*- */
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
// parse:
// @params: caller-provided parameter object, or %null

View File

@ -1,4 +1,4 @@
/* -*- mode: js2; js2-basic-offset: 4; indent-tabs-mode: nil -*- */
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
const DBus = imports.dbus;
const Lang = imports.lang;

View File

@ -1,4 +1,4 @@
/* -*- mode: js2; js2-basic-offset: 4; indent-tabs-mode: nil -*- */
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
const Gdk = imports.gi.Gdk;
const Gio = imports.gi.Gio;

View File

@ -1,4 +1,4 @@
/* -*- mode: js2; js2-basic-offset: 4; indent-tabs-mode: nil -*- */
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
const Main = imports.ui.main;
const Scripting = imports.ui.scripting;

View File

@ -1,4 +1,4 @@
/* -*- mode: js2; js2-basic-offset: 4; indent-tabs-mode: nil -*- */
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
const Clutter = imports.gi.Clutter;
const Gdk = imports.gi.Gdk;
@ -134,11 +134,40 @@ AltTabPopup.prototype = {
}
},
show : function(backward, binding, mask) {
_getAppLists: function() {
let tracker = Shell.WindowTracker.get_default();
let appSys = Shell.AppSystem.get_default();
let apps = appSys.get_running ();
let allApps = appSys.get_running ();
if (!apps.length)
let screen = global.screen;
let display = screen.get_display();
let windows = display.get_tab_list(Meta.TabList.NORMAL, screen,
screen.get_active_workspace());
// windows is only the windows on the current workspace. For
// each one, if it corresponds to an app we know, move that
// app from allApps to apps.
let apps = [];
for (let i = 0; i < windows.length && allApps.length != 0; i++) {
let app = tracker.get_window_app(windows[i]);
let index = allApps.indexOf(app);
if (index != -1) {
apps.push(app);
allApps.splice(index, 1);
}
}
// Now @apps is a list of apps on the current workspace, in
// standard Alt+Tab order (MRU except for minimized windows),
// and allApps is a list of apps that only appear on other
// workspaces, sorted by user_time, which is good enough.
return [apps, allApps];
},
show : function(backward, binding, mask) {
let [localApps, otherApps] = this._getAppLists();
if (localApps.length == 0 && otherApps.length == 0)
return false;
if (!Main.pushModal(this.actor))
@ -152,7 +181,7 @@ AltTabPopup.prototype = {
this.actor.connect('button-press-event', Lang.bind(this, this._clickedOutside));
this.actor.connect('scroll-event', Lang.bind(this, this._onScroll));
this._appSwitcher = new AppSwitcher(apps, this);
this._appSwitcher = new AppSwitcher(localApps, otherApps, this);
this.actor.add_actor(this._appSwitcher.actor);
this._appSwitcher.connect('item-activated', Lang.bind(this, this._appActivated));
this._appSwitcher.connect('item-entered', Lang.bind(this, this._appEntered));
@ -846,33 +875,32 @@ AppIcon.prototype = {
}
};
function AppSwitcher(apps, altTabPopup) {
this._init(apps, altTabPopup);
function AppSwitcher() {
this._init.apply(this, arguments);
}
AppSwitcher.prototype = {
__proto__ : SwitcherList.prototype,
_init : function(apps, altTabPopup) {
_init : function(localApps, otherApps, altTabPopup) {
SwitcherList.prototype._init.call(this, true);
// Construct the AppIcons, sort by time, add to the popup
// Construct the AppIcons, add to the popup
let activeWorkspace = global.screen.get_active_workspace();
let workspaceIcons = [];
let otherIcons = [];
for (let i = 0; i < apps.length; i++) {
let appIcon = new AppIcon(apps[i]);
for (let i = 0; i < localApps.length; i++) {
let appIcon = new AppIcon(localApps[i]);
// Cache the window list now; we don't handle dynamic changes here,
// and we don't want to be continually retrieving it
appIcon.cachedWindows = appIcon.app.get_windows();
if (this._hasWindowsOnWorkspace(appIcon, activeWorkspace))
workspaceIcons.push(appIcon);
else
otherIcons.push(appIcon);
workspaceIcons.push(appIcon);
}
for (let i = 0; i < otherApps.length; i++) {
let appIcon = new AppIcon(otherApps[i]);
appIcon.cachedWindows = appIcon.app.get_windows();
otherIcons.push(appIcon);
}
workspaceIcons.sort(Lang.bind(this, this._sortAppIcon));
otherIcons.sort(Lang.bind(this, this._sortAppIcon));
this.icons = [];
this._arrows = [];
@ -1012,19 +1040,6 @@ AppSwitcher.prototype = {
if (appIcon.cachedWindows.length == 1)
arrow.hide();
},
_hasWindowsOnWorkspace: function(appIcon, workspace) {
let windows = appIcon.cachedWindows;
for (let i = 0; i < windows.length; i++) {
if (windows[i].get_workspace() == workspace)
return true;
}
return false;
},
_sortAppIcon : function(appIcon1, appIcon2) {
return appIcon1.app.compare(appIcon2.app);
}
};

View File

@ -1,4 +1,4 @@
/* -*- mode: js2; js2-basic-offset: 4; indent-tabs-mode: nil -*- */
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
const Clutter = imports.gi.Clutter;
const GLib = imports.gi.GLib;

View File

@ -1,4 +1,4 @@
/* -*- mode: js2; js2-basic-offset: 4; indent-tabs-mode: nil -*- */
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
const Shell = imports.gi.Shell;
const Lang = imports.lang;

View File

@ -1,4 +1,4 @@
/* -*- mode: js2; js2-basic-offset: 4; indent-tabs-mode: nil -*- */
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
const Lang = imports.lang;
const DBus = imports.dbus;
@ -209,10 +209,14 @@ AutomountManager.prototype = {
}
}
// Volume is already mounted, don't bother.
if (volume.get_mount())
return;
if (!this._settings.get_boolean(SETTING_ENABLE_AUTOMOUNT) ||
!volume.should_automount() ||
!volume.can_mount()) {
// allow the autorun to run anyway; this can happen if the
// allow the autorun to run anyway; this can happen if the
// mount gets added programmatically later, even if
// should_automount() or can_mount() are false, like for
// blank optical media.

View File

@ -1,4 +1,4 @@
/* -*- mode: js2; js2-basic-offset: 4; indent-tabs-mode: nil -*- */
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
const Lang = imports.lang;
const DBus = imports.dbus;
@ -491,7 +491,7 @@ AutorunTransientDispatcher.prototype = {
let app = null;
if (setting == AutorunSetting.RUN) {
app = Gio.app_info_get_default_for_type(type, false);
app = Gio.app_info_get_default_for_type(contentTypes[0], false);
} else if (setting == AutorunSetting.FILES) {
app = Gio.app_info_get_default_for_type('inode/directory', false);
}

View File

@ -1,4 +1,4 @@
/* -*- mode: js2; js2-basic-offset: 4; indent-tabs-mode: nil -*- */
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
const Clutter = imports.gi.Clutter;
const Lang = imports.lang;
@ -46,6 +46,7 @@ BoxPointer.prototype = {
this._yOffset = 0;
this._xPosition = 0;
this._yPosition = 0;
this._sourceAlignment = 0.5;
},
show: function(animate, onComplete) {
@ -75,7 +76,7 @@ BoxPointer.prototype = {
Tweener.addTween(this, { opacity: 255,
xOffset: 0,
yOffset: 0,
transition: "linear",
transition: 'linear',
onComplete: onComplete,
time: POPUP_ANIMATION_TIME });
},
@ -106,7 +107,7 @@ BoxPointer.prototype = {
Tweener.addTween(this, { opacity: 0,
xOffset: xOffset,
yOffset: yOffset,
transition: "linear",
transition: 'linear',
time: POPUP_ANIMATION_TIME,
onComplete: Lang.bind(this, function () {
this.actor.hide();
@ -180,7 +181,7 @@ BoxPointer.prototype = {
this.bin.allocate(childBox, flags);
if (this._sourceActor && this._sourceActor.mapped)
this._reposition(this._sourceActor, this._alignment);
this._reposition(this._sourceActor, this._arrowAlignment);
},
_drawBorder: function(area) {
@ -312,24 +313,37 @@ BoxPointer.prototype = {
this.actor.show();
this._sourceActor = sourceActor;
this._alignment = alignment;
this._arrowAlignment = alignment;
this._reposition(sourceActor, alignment);
},
setSourceAlignment: function(alignment) {
this._sourceAlignment = alignment;
if (!this._sourceActor)
return;
// We need to show it now to force an allocation,
// so that we can query the correct size.
this.actor.show();
this._reposition(this._sourceActor, this._arrowAlignment);
},
_reposition: function(sourceActor, alignment) {
// Position correctly relative to the sourceActor
let sourceNode = sourceActor.get_theme_node();
let sourceContentBox = sourceNode.get_content_box(sourceActor.get_allocation_box());
let sourceAllocation = Shell.util_get_transformed_allocation(sourceActor);
let sourceCenterX = sourceAllocation.x1 + sourceContentBox.x1 + (sourceContentBox.x2 - sourceContentBox.x1) / 2;
let sourceCenterY = sourceAllocation.y1 + sourceContentBox.y1 + (sourceContentBox.y2 - sourceContentBox.y1) / 2;
let sourceCenterX = sourceAllocation.x1 + sourceContentBox.x1 + (sourceContentBox.x2 - sourceContentBox.x1) * this._sourceAlignment;
let sourceCenterY = sourceAllocation.y1 + sourceContentBox.y1 + (sourceContentBox.y2 - sourceContentBox.y1) * this._sourceAlignment;
let [minWidth, minHeight, natWidth, natHeight] = this.actor.get_preferred_size();
// We also want to keep it onscreen, and separated from the
// edge by the same distance as the main part of the box is
// separated from its sourceActor
let primary = Main.layoutManager.primaryMonitor;
let monitor = Main.layoutManager.findMonitorForActor(sourceActor);
let themeNode = this.actor.get_theme_node();
let borderWidth = themeNode.get_length('-arrow-border-width');
let arrowBase = themeNode.get_length('-arrow-base');
@ -364,8 +378,8 @@ BoxPointer.prototype = {
case St.Side.BOTTOM:
resX = sourceCenterX - (halfMargin + (natWidth - margin) * alignment);
resX = Math.max(resX, primary.x + 10);
resX = Math.min(resX, primary.x + primary.width - (10 + natWidth));
resX = Math.max(resX, monitor.x + 10);
resX = Math.min(resX, monitor.x + monitor.width - (10 + natWidth));
this.setArrowOrigin(sourceCenterX - resX);
break;
@ -373,8 +387,8 @@ BoxPointer.prototype = {
case St.Side.RIGHT:
resY = sourceCenterY - (halfMargin + (natHeight - margin) * alignment);
resY = Math.max(resY, primary.y + 10);
resY = Math.min(resY, primary.y + primary.height - (10 + natHeight));
resY = Math.max(resY, monitor.y + 10);
resY = Math.min(resY, monitor.y + monitor.height - (10 + natHeight));
this.setArrowOrigin(sourceCenterY - resY);
break;

View File

@ -1,4 +1,4 @@
/* -*- mode: js2; js2-basic-offset: 4; indent-tabs-mode: nil -*- */
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
const DBus = imports.dbus;
const Clutter = imports.gi.Clutter;

View File

@ -1,4 +1,4 @@
/* -*- mode: js2; js2-basic-offset: 4; indent-tabs-mode: nil -*- */
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
const Folks = imports.gi.Folks
const Lang = imports.lang;
@ -26,7 +26,8 @@ function Contact(id) {
Contact.prototype = {
_init: function(id) {
this.individual = Shell.ContactSystem.get_default().get_individual(id);
this._contactSys = Shell.ContactSystem.get_default();
this.individual = this._contactSys.get_individual(id);
this.actor = new St.Bin({ style_class: 'contact',
reactive: true,
@ -56,7 +57,12 @@ Contact.prototype = {
x_align: St.Align.START,
y_align: St.Align.MIDDLE });
let aliasText = this.individual.alias || _("Unknown");
let email = this._contactSys.get_email_for_display(this.individual);
let aliasText = this.individual.alias ||
this.individual.full_name ||
this.individual.nickname ||
email ||
_("Unknown");
let aliasLabel = new St.Label({ text: aliasText,
style_class: 'contact-details-alias' });
details.add(aliasLabel, { x_fill: true,

View File

@ -1,4 +1,4 @@
/* -*- mode: js2; js2-basic-offset: 4; indent-tabs-mode: nil -*- */
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
const Clutter = imports.gi.Clutter;
const Gdk = imports.gi.Gdk;

View File

@ -1,4 +1,4 @@
/* -*- mode: js2; js2-basic-offset: 4; indent-tabs-mode: nil -*- */
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
const Clutter = imports.gi.Clutter;
const Signals = imports.signals;
@ -37,6 +37,7 @@ DashItemContainer.prototype = {
this.child = null;
this._childScale = 1;
this._childOpacity = 255;
this.animatingOut = false;
},
_allocate: function(actor, box, flags) {
@ -115,6 +116,7 @@ DashItemContainer.prototype = {
return;
}
this.animatingOut = true;
this.childScale = 1.0;
Tweener.addTween(this,
{ childScale: 0.0,
@ -177,12 +179,6 @@ RemoveFavoriteIcon.prototype = {
this._iconBin._delegate = this;
this.setChild(this._iconBin);
this.hiding = false;
},
animateOutAndDestroy: function() {
DashItemContainer.prototype.animateOutAndDestroy.call(this);
this.hiding = true;
},
_createIcon: function(size) {
@ -314,15 +310,12 @@ Dash.prototype = {
_endDrag: function() {
this._clearDragPlaceholder();
if (this._favRemoveTarget) {
this._favRemoveTarget.actor.hide();
this._adjustIconSize();
this._favRemoveTarget.actor.show();
this._favRemoveTarget.animateOutAndDestroy();
this._favRemoveTarget.actor.connect('destroy', Lang.bind(this,
function() {
this._favRemoveTarget = null;
}));
this._adjustIconSize();
}
DND.removeDragMonitor(this._dragMonitor);
},
@ -401,8 +394,18 @@ Dash.prototype = {
},
_adjustIconSize: function() {
let children = this._box.get_children();
if (children.length == 0) {
// For the icon size, we only consider children which are "proper"
// icons (i.e. ignoring drag placeholders) and which are not
// animating out (which means they will be destroyed at the end of
// the animation)
let iconChildren = this._box.get_children().filter(function(actor) {
return actor._delegate.child &&
actor._delegate.child._delegate &&
actor._delegate.child._delegate.icon &&
!actor._delegate.animatingOut;
});
if (iconChildren.length == 0) {
this._box.add_style_pseudo_class('empty');
return;
}
@ -412,23 +415,45 @@ Dash.prototype = {
if (this._maxHeight == -1)
return;
let iconChildren = children.filter(function(actor) {
return actor.visible &&
actor._delegate.child &&
actor._delegate.child._delegate &&
actor._delegate.child._delegate.icon;
});
// Compute the amount of extra space (or missing space) we have
// per icon with the current icon size
let [minHeight, natHeight] = this.actor.get_preferred_height(-1);
let diff = (this._maxHeight - natHeight) / iconChildren.length;
let themeNode = this.actor.get_theme_node();
let maxAllocation = new Clutter.ActorBox({ x1: 0, y1: 0,
x2: 42 /* whatever */,
y2: this._maxHeight });
let maxContent = themeNode.get_content_box(maxAllocation);
let availHeight = maxContent.y2 - maxContent.y1;
let spacing = themeNode.get_length('spacing');
let firstIcon = iconChildren[0]._delegate.child._delegate.icon;
let minHeight, natHeight;
// Enforce the current icon size during the size request if
// the icon is animating
if (firstIcon._animating) {
let [currentWidth, currentHeight] = firstIcon.icon.get_size();
firstIcon.icon.set_size(this.iconSize, this.iconSize);
[minHeight, natHeight] = iconChildren[0].get_preferred_height(-1);
firstIcon.icon.set_size(currentWidth, currentHeight);
} else {
[minHeight, natHeight] = iconChildren[0].get_preferred_height(-1);
}
// Subtract icon padding and box spacing from the available height
availHeight -= iconChildren.length * (natHeight - this.iconSize) +
(iconChildren.length - 1) * spacing;
let availSize = availHeight / iconChildren.length;
let iconSizes = [ 16, 22, 24, 32, 48, 64 ];
let newIconSize = 16;
for (let i = 0; i < iconSizes.length; i++) {
if (iconSizes[i] < this.iconSize + diff)
if (iconSizes[i] < availSize)
newIconSize = iconSizes[i];
}
@ -459,11 +484,15 @@ Dash.prototype = {
icon.icon.set_size(icon.icon.width * scale,
icon.icon.height * scale);
icon._animating = true;
Tweener.addTween(icon.icon,
{ width: targetWidth,
height: targetHeight,
time: DASH_ANIMATION_TIME,
transition: 'easeOutQuad'
transition: 'easeOutQuad',
onComplete: function() {
icon._animating = false;
}
});
}
},
@ -566,29 +595,7 @@ Dash.prototype = {
this._box.insert_actor(addedItems[i].item.actor,
addedItems[i].pos);
// Hide removed actors to not take them into account
// when adjusting the icon size ...
for (let i = 0; i < removedActors.length; i++)
removedActors[i].hide();
// ... and do the same for the remove target if necessary
if (this._favRemoveTarget && this._favRemoveTarget.hiding)
this._favRemoveTarget.actor.hide();
this._adjustIconSize();
if (this._favRemoveTarget && this._favRemoveTarget.hiding)
this._favRemoveTarget.actor.show();
// Skip animations on first run when adding the initial set
// of items, to avoid all items zooming in at once
if (!this._shownInitially) {
this._shownInitially = true;
return;
}
for (let i = 0; i < removedActors.length; i++) {
removedActors[i].show();
let item = removedActors[i]._delegate;
// Don't animate item removal when the overview is hidden
@ -598,6 +605,15 @@ Dash.prototype = {
item.actor.destroy();
}
this._adjustIconSize();
// Skip animations on first run when adding the initial set
// of items, to avoid all items zooming in at once
if (!this._shownInitially) {
this._shownInitially = true;
return;
}
// Don't animate item addition when the overview is hidden
if (!Main.overview.visible)
return;

View File

@ -1,4 +1,4 @@
/* -*- mode: js2; js2-basic-offset: 4; indent-tabs-mode: nil -*- */
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
const GLib = imports.gi.GLib;
const Gio = imports.gi.Gio;

View File

@ -1,4 +1,4 @@
/* -*- mode: js2; js2-basic-offset: 4; indent-tabs-mode: nil -*- */
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
const Clutter = imports.gi.Clutter;
const Gtk = imports.gi.Gtk;

View File

@ -1,4 +1,4 @@
/* -*- mode: js2; js2-basic-offset: 4; indent-tabs-mode: nil -*- */
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
const DocInfo = imports.misc.docInfo;
const Params = imports.misc.params;

View File

@ -1,5 +1,5 @@
/* -*- mode: js2; js2-basic-offset: 4; indent-tabs-mode: nil -*-
*
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
/*
* Copyright 2010 Red Hat, Inc
*
* This program is free software; you can redistribute it and/or modify

View File

@ -1,4 +1,4 @@
/* -*- mode: js2; js2-basic-offset: 4; indent-tabs-mode: nil -*- */
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
imports.gi.versions.Clutter = '1.0';
imports.gi.versions.Gio = '2.0';

View File

@ -1,4 +1,4 @@
/* -*- mode: js2; js2-basic-offset: 4; indent-tabs-mode: nil -*- */
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
const Lang = imports.lang;
const Signals = imports.signals;
@ -289,7 +289,7 @@ function loadExtension(dir, enabled, type) {
}
if (extensions[uuid] != undefined) {
logExtensionError(uuid, "extension already loaded");
logExtensionError(uuid, 'extension already loaded');
return;
}
@ -450,7 +450,6 @@ function _loadExtensionsIn(dir, type) {
}
function loadExtensions() {
_loadExtensionsIn(userExtensionsDir, ExtensionType.PER_USER);
let systemDataDirs = GLib.get_system_data_dirs();
for (let i = 0; i < systemDataDirs.length; i++) {
let dirPath = systemDataDirs[i] + '/gnome-shell/extensions';
@ -458,6 +457,7 @@ function loadExtensions() {
if (dir.query_exists(null))
_loadExtensionsIn(dir, ExtensionType.SYSTEM);
}
_loadExtensionsIn(userExtensionsDir, ExtensionType.PER_USER);
}
function InstallExtensionDialog(uuid, version_tag, name) {

View File

@ -1,4 +1,4 @@
/* -*- mode: js2; js2-basic-offset: 4; indent-tabs-mode: nil -*- */
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
const Clutter = imports.gi.Clutter;
const Shell = imports.gi.Shell;
@ -147,6 +147,11 @@ BaseIcon.prototype = {
size = found ? len : ICON_SIZE;
}
// don't create icons unnecessarily
if (size == this.iconSize &&
this._iconBin.child)
return;
this._createIconTexture(size);
}
};

View File

@ -1,4 +1,4 @@
/* -*- mode: js2; js2-basic-offset: 4; indent-tabs-mode: nil -*- */
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
const Caribou = imports.gi.Caribou;
const Clutter = imports.gi.Clutter;
@ -75,7 +75,7 @@ Key.prototype = {
this._extended_keys = this._key.get_extended_keys();
this._extended_keyboard = null;
if (this._key.name == "Control_L" || this._key.name == "Alt_L")
if (this._key.name == 'Control_L' || this._key.name == 'Alt_L')
this._key.latch = true;
this._key.connect('key-pressed', Lang.bind(this, function ()
@ -218,7 +218,7 @@ Keyboard.prototype = {
this._redraw();
},
_settingsChanged: function () {
_settingsChanged: function (settings, key) {
this._enableKeyboard = this._a11yApplicationsSettings.get_boolean(SHOW_KEYBOARD);
if (!this._enableKeyboard && !this._keyboard)
return;
@ -228,9 +228,20 @@ Keyboard.prototype = {
if (this._keyboard)
this._destroyKeyboard();
if (this._enableKeyboard)
this._setupKeyboard();
else
if (this._enableKeyboard) {
// If we've been called because the setting actually just
// changed to true (as opposed to being called from
// this._init()), then we want to pop up the keyboard.
let showKeyboard = (settings != null);
// However, caribou-gtk-module or this._onKeyFocusChanged
// will probably immediately tell us to hide it, so we
// have to fake things out so we'll ignore that request.
if (showKeyboard)
this._timestamp = global.display.get_current_time_roundtrip() + 1;
this._setupKeyboard(showKeyboard);
} else
Main.layoutManager.hideKeyboard(true);
},
@ -246,7 +257,7 @@ Keyboard.prototype = {
this._destroySource();
},
_setupKeyboard: function() {
_setupKeyboard: function(show) {
this.actor = new St.BoxLayout({ name: 'keyboard', vertical: true, reactive: true });
Main.layoutManager.keyboardBox.add_actor(this.actor);
Main.layoutManager.trackChrome(this.actor);
@ -263,20 +274,26 @@ Keyboard.prototype = {
this._keyboardNotifyId = this._keyboard.connect('notify::active-group', Lang.bind(this, this._onGroupChanged));
this._focusNotifyId = global.stage.connect('notify::key-focus', Lang.bind(this, this._onKeyFocusChanged));
this._createSource();
if (show)
this.show();
else
this._createSource();
},
_onKeyFocusChanged: function () {
let focus = global.stage.key_focus;
// Showing an extended key popup will grab focus, but ignore that
if (focus && focus._extended_keys)
// Showing an extended key popup and clicking a key from the extended keys
// will grab focus, but ignore that
if (focus && (focus._extended_keys || (focus._key && focus._key.extended_key)))
return;
let time = global.current_event_time();
if (focus instanceof Clutter.Text)
this.show();
this.Show(time);
else
this.hide();
this.Hide(time);
},
_addKeys: function () {
@ -305,7 +322,8 @@ Keyboard.prototype = {
},
_getTrayIcon: function () {
let trayButton = new St.Button ({ label: "tray", style_class: 'keyboard-key' });
let trayButton = new St.Button ({ label: _("tray"),
style_class: 'keyboard-key' });
trayButton.key_width = 1;
trayButton.connect('button-press-event', Lang.bind(this, function () {
Main.messageTray.toggle();
@ -339,7 +357,7 @@ Keyboard.prototype = {
right_box.add(button.actor);
else
left_box.add(button.actor);
if (key.name == "Caribou_Prefs") {
if (key.name == 'Caribou_Prefs') {
key.connect('key-released', Lang.bind(this, this.hide));
// Add new key for hiding message tray
@ -476,6 +494,9 @@ Keyboard.prototype = {
// D-Bus methods
Show: function(timestamp) {
if (!this._enableKeyboard)
return;
if (timestamp - this._timestamp < 0)
return;
@ -484,6 +505,9 @@ Keyboard.prototype = {
},
Hide: function(timestamp) {
if (!this._enableKeyboard)
return;
if (timestamp - this._timestamp < 0)
return;
@ -492,10 +516,16 @@ Keyboard.prototype = {
},
SetCursorLocation: function(x, y, w, h) {
if (!this._enableKeyboard)
return;
// this._setLocation(x, y);
},
SetEntryLocation: function(x, y, w, h) {
if (!this._enableKeyboard)
return;
// this._setLocation(x, y);
},

View File

@ -1,4 +1,4 @@
/* -*- mode: js2; js2-basic-offset: 4; indent-tabs-mode: nil -*- */
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
const Clutter = imports.gi.Clutter;
const Lang = imports.lang;
@ -216,10 +216,10 @@ LayoutManager.prototype = {
let monitorLeft = monitor.x, monitorRight = monitor.x + monitor.width;
let primaryLeft = primary.x, primaryRight = primary.x + primary.width;
if ((monitorLeft >= primaryLeft && monitorLeft <= primaryRight) ||
(monitorRight >= primaryLeft && monitorRight <= primaryRight) ||
(primaryLeft >= monitorLeft && primaryLeft <= monitorRight) ||
(primaryRight >= monitorLeft && primaryRight <= monitorRight))
if ((monitorLeft >= primaryLeft && monitorLeft < primaryRight) ||
(monitorRight > primaryLeft && monitorRight <= primaryRight) ||
(primaryLeft >= monitorLeft && primaryLeft < monitorRight) ||
(primaryRight > monitorLeft && primaryRight <= monitorRight))
return true;
return false;
@ -369,6 +369,10 @@ LayoutManager.prototype = {
// Removes @actor from the chrome
removeChrome: function(actor) {
this._chrome.removeActor(actor);
},
findMonitorForActor: function(actor) {
return this._chrome.findMonitorForActor(actor);
}
};
Signals.addSignalMethods(LayoutManager.prototype);
@ -621,7 +625,7 @@ Chrome.prototype = {
// We can't use Params.parse here because we want to drop
// the extra values like ancestorData.actor
for (let prop in defaultParams) {
if (!params[prop])
if (!params.hasOwnProperty(prop))
params[prop] = ancestorData[prop];
}
@ -700,7 +704,7 @@ Chrome.prototype = {
else if (this._inOverview)
visible = true;
else if (!actorData.visibleInFullscreen &&
this._findMonitorForActor(actorData.actor).inFullscreen)
this.findMonitorForActor(actorData.actor).inFullscreen)
visible = false;
else
visible = true;
@ -762,7 +766,7 @@ Chrome.prototype = {
// This call guarantees that we return some monitor to simplify usage of it
// In practice all tracked actors should be visible on some monitor anyway
_findMonitorForActor: function(actor) {
findMonitorForActor: function(actor) {
let [x, y] = actor.get_transformed_position();
let [w, h] = actor.get_transformed_size();
let monitor = this._findMonitorForRect(x, y, w, h);
@ -821,6 +825,18 @@ Chrome.prototype = {
monitor.inFullscreen = true;
}
if (layer == Meta.StackLayer.OVERRIDE_REDIRECT) {
// Check whether the window is screen sized
let isScreenSized =
(window.x == 0 && window.y == 0 &&
window.width == global.screen_width &&
window.height == global.screen_height);
if (isScreenSized) {
for (let i = 0; i < this._monitors.length; i++)
this._monitors[i].inFullscreen = true;
}
// Or whether it is monitor sized
let monitor = this._findMonitorForWindow(window);
if (monitor &&
window.x <= monitor.x &&

View File

@ -1,4 +1,4 @@
/* -*- mode: js2; js2-basic-offset: 4; indent-tabs-mode: nil -*- */
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
const Lang = imports.lang;
const Meta = imports.gi.Meta;

View File

@ -1,4 +1,4 @@
/* -*- mode: js2; js2-basic-offset: 4; indent-tabs-mode: nil -*- */
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
const Lang = imports.lang;
const Signals = imports.signals;

View File

@ -1,4 +1,4 @@
/* -*- mode: js2; js2-basic-offset: 4; indent-tabs-mode: nil -*- */
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
const Clutter = imports.gi.Clutter;
const Cogl = imports.gi.Cogl;
@ -17,6 +17,7 @@ const Mainloop = imports.mainloop;
const History = imports.misc.history;
const ExtensionSystem = imports.ui.extensionSystem;
const Link = imports.ui.link;
const ShellEntry = imports.ui.shellEntry;
const Tweener = imports.ui.tweener;
const Main = imports.ui.main;
@ -157,9 +158,9 @@ Signals.addSignalMethods(Notebook.prototype);
function objectToString(o) {
if (typeof(o) == typeof(objectToString)) {
// special case this since the default is way, way too verbose
return "<js function>";
return '<js function>';
} else {
return "" + o;
return '' + o;
}
}
@ -322,7 +323,7 @@ ObjInspector.prototype = {
link = new St.Label({ text: '<error>' });
}
let hbox = new St.BoxLayout();
let propText = propName + ": " + valueStr;
let propText = propName + ': ' + valueStr;
hbox.add(new St.Label({ text: propName + ': ' }));
hbox.add(link);
this._container.add_actor(hbox);
@ -343,7 +344,7 @@ ObjInspector.prototype = {
this.actor.move_anchor_point(Math.floor(sourceX + sourceWidth / 2),
Math.floor(sourceY + sourceHeight / 2));
Tweener.addTween(this.actor, { scale_x: 1, scale_y: 1,
transition: "easeOutQuad",
transition: 'easeOutQuad',
time: 0.2 });
} else {
this.actor.set_scale(1, 1);
@ -710,27 +711,23 @@ Extensions.prototype = {
text: meta.description || 'No description' });
box.add(description, { expand: true });
let metaBox = new St.BoxLayout();
let metaBox = new St.BoxLayout({ style_class: 'lg-extension-meta' });
box.add(metaBox);
let stateString = this._stateToString(meta.state);
let state = new St.Label({ style_class: 'lg-extension-state',
text: this._stateToString(meta.state) });
let actionsContainer = new St.Bin({ x_align: St.Align.END });
metaBox.add(actionsContainer);
let actionsBox = new St.BoxLayout({ style_class: 'lg-extension-actions' });
actionsContainer.set_child(actionsBox);
metaBox.add(state);
let viewsource = new Link.Link({ label: _("View Source") });
viewsource.actor._extensionMeta = meta;
viewsource.actor.connect('clicked', Lang.bind(this, this._onViewSource));
actionsBox.add(viewsource.actor);
metaBox.add(viewsource.actor);
if (meta.url) {
let webpage = new Link.Link({ label: _("Web Page") });
webpage.actor._extensionMeta = meta;
webpage.actor.connect('clicked', Lang.bind(this, this._onWebPage));
actionsBox.add(webpage.actor);
metaBox.add(webpage.actor);
}
return box;
@ -820,6 +817,7 @@ LookingGlass.prototype = {
entryArea.add(label);
this._entry = new St.Entry({ can_focus: true });
ShellEntry.addContextMenu(this._entry);
entryArea.add(this._entry, { expand: true });
this._windowList = new WindowList();

View File

@ -1,4 +1,4 @@
/* -*- mode: js2; js2-basic-offset: 4; indent-tabs-mode: nil -*- */
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
const Clutter = imports.gi.Clutter;
const Gio = imports.gi.Gio;

View File

@ -1,4 +1,4 @@
/* -*- mode: js2; js2-basic-offset: 4; indent-tabs-mode: nil -*- */
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
const DBus = imports.dbus;
const Main = imports.ui.main;

View File

@ -1,4 +1,4 @@
/* -*- mode: js2; js2-basic-offset: 4; indent-tabs-mode: nil -*- */
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
const Clutter = imports.gi.Clutter;
const DBus = imports.dbus;
@ -129,8 +129,6 @@ function _initRecorder() {
function _initUserSession() {
_initRecorder();
keyboard.init();
global.screen.override_workspace_layout(Meta.ScreenCorner.TOPLEFT, false, -1, 1);
ExtensionSystem.init();
@ -496,9 +494,9 @@ function notify(msg, details) {
function notifyError(msg, details) {
// Also print to stderr so it's logged somewhere
if (details)
log("error: " + msg + ": " + details);
log('error: ' + msg + ': ' + details);
else
log("error: " + msg)
log('error: ' + msg);
notify(msg, details);
}

View File

@ -1,4 +1,4 @@
/* -*- mode: js2; js2-basic-offset: 4; indent-tabs-mode: nil -*- */
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
const Clutter = imports.gi.Clutter;
const GLib = imports.gi.GLib;
@ -252,7 +252,8 @@ FocusGrabber.prototype = {
this._prevFocusedWindow = global.display.focus_window;
this._prevKeyFocusActor = global.stage.get_key_focus();
if (!Main.overview.visible)
if (global.stage_input_mode == Shell.StageInputMode.NONREACTIVE ||
global.stage_input_mode == Shell.StageInputMode.NORMAL)
global.set_stage_input_mode(Shell.StageInputMode.FOCUSED);
// Use captured-event to notice clicks outside the focused actor
@ -702,6 +703,7 @@ Notification.prototype = {
this._imageBin.opacity = 230;
this._table.add_style_class_name('multi-line-notification');
this._table.add_style_class_name('notification-with-image');
this._addBannerBody();
this._updateLastColumnSettings();
this._table.add(this._imageBin, { row: 1,
col: 1,
@ -1417,8 +1419,16 @@ MessageTray.prototype = {
this._notificationRemoved = false;
this._reNotifyAfterHideNotification = null;
this._corner = new Clutter.Rectangle({ width: 1,
height: 1,
opacity: 0,
reactive: true });
this._corner.connect('enter-event', Lang.bind(this, this._onCornerEnter));
Main.layoutManager.trayBox.add_actor(this._corner);
Main.layoutManager.trackChrome(this._corner);
Main.layoutManager.trayBox.add_actor(this.actor);
this.actor.y = -1;
this.actor.y = this.actor.height;
Main.layoutManager.trackChrome(this.actor);
Main.layoutManager.trackChrome(this._notificationBin);
@ -1457,12 +1467,24 @@ MessageTray.prototype = {
this._chatSummaryItemsCount = 0;
},
_onCornerEnter: function(actor, event) {
this._pointerInSummary = true;
this._updateState();
},
_setSizePosition: function() {
let monitor = Main.layoutManager.bottomMonitor;
this._notificationBin.x = 0;
this._notificationBin.width = monitor.width;
this._summaryBin.x = 0;
this._summaryBin.width = monitor.width;
if (St.Widget.get_default_direction() == St.TextDirection.RTL)
this._corner.x = 0;
else
this._corner.x = Main.layoutManager.trayBox.width - 1;
this._corner.y = Main.layoutManager.trayBox.height - 1;
},
contains: function(source) {
@ -1585,7 +1607,7 @@ MessageTray.prototype = {
summaryItemToRemove.actor.destroy();
if (needUpdate);
if (needUpdate)
this._updateState();
},
@ -1830,7 +1852,7 @@ MessageTray.prototype = {
// automatically. Instead, the user is able to expand the notification by mousing away from it and then
// mousing back in. Because this is an expected action, we set the boolean flag that indicates that a longer
// timeout should be used before popping down the notification.
if (this._notificationBin.contains(actorAtShowNotificationPosition)) {
if (this.actor.contains(actorAtShowNotificationPosition)) {
this._useLongerTrayLeftTimeout = true;
return;
}
@ -2055,7 +2077,7 @@ MessageTray.prototype = {
_hideTray: function() {
this._tween(this.actor, '_trayState', State.HIDDEN,
{ y: -1,
{ y: this.actor.height,
time: ANIMATION_TIME,
transition: 'easeOutQuad'
});

View File

@ -1,4 +1,4 @@
/* -*- mode: js2; js2-basic-offset: 4; indent-tabs-mode: nil -*- */
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
const Clutter = imports.gi.Clutter;
const Gdk = imports.gi.Gdk;

View File

@ -1,5 +1,5 @@
/* -*- mode: js2; js2-basic-offset: 4; indent-tabs-mode: nil -*-
*
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
/*
* Copyright 2011 Giovanni Campagna <scampa.giovanni@gmail.com>
*
* This program is free software; you can redistribute it and/or modify
@ -30,6 +30,7 @@ const St = imports.gi.St;
const ModalDialog = imports.ui.modalDialog;
const PopupMenu = imports.ui.popupMenu;
const ShellEntry = imports.ui.shellEntry;
function NetworkSecretDialog() {
this._init.apply(this, arguments);
@ -103,6 +104,8 @@ NetworkSecretDialog.prototype = {
secret.entry = new St.Entry({ style_class: 'polkit-dialog-password-entry',
text: secret.value, can_focus: reactive,
reactive: reactive });
ShellEntry.addContextMenu(secret.entry,
{ isPassword: secret.password });
if (secret.validate)
secret.valid = secret.validate(secret);
@ -127,34 +130,14 @@ NetworkSecretDialog.prototype = {
} else
secret.valid = true;
secretTable.add(label, { row: pos, col: 0, x_align: St.Align.START, y_align: St.Align.START });
secretTable.add(label, { row: pos, col: 0, x_expand: false, x_fill: true, x_align: St.Align.START, y_align: St.Align.START });
secretTable.add(secret.entry, { row: pos, col: 1, x_expand: true, x_fill: true, y_align: St.Align.END });
pos++;
if (secret.password) {
if (secret.password)
secret.entry.clutter_text.set_password_char('\u25cf');
// FIXME: need a real checkbox here
let button = new St.Button({ button_mask: St.ButtonMask.ONE,
can_focus: true });
let checkbox = new St.BoxLayout({ vertical: false,
style_class: 'network-dialog-show-password-checkbox'
});
let _switch = new PopupMenu.Switch(false);
checkbox.add(_switch.actor);
checkbox.add(new St.Label({ text: _("Show password") }), { expand: true });
button.connect('clicked', function() {
_switch.toggle();
if (_switch.state)
secret.entry.clutter_text.set_password_char('');
else
secret.entry.clutter_text.set_password_char('\u25cf');
});
button.child = checkbox;
secretTable.add(button, { row: pos, col: 1, x_expand: true, x_fill: true, y_fill: true })
pos++;
}
}
messageBox.add(secretTable);
this._okButton = { label: _("Connect"),
@ -404,4 +387,4 @@ NetworkAgent.prototype = {
this._dialogs[requestId].close(global.get_current_time());
this._dialogs[requestId].destroy();
}
};
};

View File

@ -1,4 +1,4 @@
/* -*- mode: js2; js2-basic-offset: 4; indent-tabs-mode: nil -*- */
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
const Clutter = imports.gi.Clutter;
const DBus = imports.dbus;
@ -92,7 +92,7 @@ NotificationDaemon.prototype = {
_init: function() {
DBus.session.exportObject('/org/freedesktop/Notifications', this);
this._sources = {};
this._sources = [];
this._senderToPid = {};
this._notifications = {};
this._busProxy = new Bus();
@ -109,6 +109,14 @@ NotificationDaemon.prototype = {
_iconForNotificationData: function(icon, hints, size) {
let textureCache = St.TextureCache.get_default();
// If an icon is not specified, we use 'image-data' or 'image-path' hint for an icon
// and don't show a large image. There are currently many applications that use
// notify_notification_set_icon_from_pixbuf() from libnotify, which in turn sets
// the 'image-data' hint. These applications don't typically pass in 'app_icon'
// argument to Notify() and actually expect the pixbuf to be shown as an icon.
// So the logic here does the right thing for this case. If both an icon and either
// one of 'image-data' or 'image-path' are specified, we show both an icon and
// a large image.
if (icon) {
if (icon.substr(0, 7) == 'file://')
return textureCache.load_uri_async(icon, size, size);
@ -119,6 +127,12 @@ NotificationDaemon.prototype = {
return new St.Icon({ icon_name: icon,
icon_type: St.IconType.FULLCOLOR,
icon_size: size });
} else if (hints['image-data']) {
let [width, height, rowStride, hasAlpha,
bitsPerSample, nChannels, data] = hints['image-data'];
return textureCache.load_from_raw(data, hasAlpha, width, height, rowStride, size);
} else if (hints['image-path']) {
return textureCache.load_uri_async(GLib.filename_to_uri(hints['image-path'], null), size, size);
} else {
let stockIcon;
switch (hints.urgency) {
@ -136,14 +150,30 @@ NotificationDaemon.prototype = {
}
},
_lookupSource: function(title, pid, trayIcon) {
for (let i = 0; i < this._sources.length; i++) {
let source = this._sources[i];
if (source.pid == pid &&
(source.initialTitle == title || source.trayIcon || trayIcon))
return source;
}
return null;
},
// Returns the source associated with ndata.notification if it is set.
// Otherwise, returns the source associated with the pid if one is
// stored in this._sources and the notification is not transient.
// Otherwise, creates a new source as long as pid is provided.
// Otherwise, returns the source associated with the title and pid if
// such source is stored in this._sources and the notification is not
// transient. If the existing or requested source is associated with
// a tray icon and passed in pid matches a pid of an existing source,
// the title match is ignored to enable representing a tray icon and
// notifications from the same application with a single source.
//
// If no existing source is found, a new source is created as long as
// pid is provided.
//
// Either a pid or ndata.notification is needed to retrieve or
// create a source.
_getSource: function(title, pid, ndata, sender) {
_getSource: function(title, pid, ndata, sender, trayIcon) {
if (!pid && !(ndata && ndata.notification))
return null;
@ -160,20 +190,24 @@ NotificationDaemon.prototype = {
// with a transient one from the same sender, so we
// always create a new source object for new transient notifications
// and never add it to this._sources .
if (!isForTransientNotification && this._sources[pid]) {
let source = this._sources[pid];
source.setTitle(title);
return source;
if (!isForTransientNotification) {
let source = this._lookupSource(title, pid, trayIcon);
if (source) {
source.setTitle(title);
return source;
}
}
let source = new Source(title, pid, sender);
let source = new Source(title, pid, sender, trayIcon);
source.setTransient(isForTransientNotification);
if (!isForTransientNotification) {
this._sources[pid] = source;
this._sources.push(source);
source.connect('destroy', Lang.bind(this,
function() {
delete this._sources[pid];
let index = this._sources.indexOf(source);
if (index >= 0)
this._sources.splice(index, 1);
}));
}
@ -247,7 +281,7 @@ NotificationDaemon.prototype = {
let sender = DBus.getCurrentMessageContext().sender;
let pid = this._senderToPid[sender];
let source = this._getSource(appName, pid, ndata, sender);
let source = this._getSource(appName, pid, ndata, sender, null);
if (source) {
this._notifyForSource(source, ndata);
@ -268,7 +302,7 @@ NotificationDaemon.prototype = {
if (!ndata)
return;
source = this._getSource(appName, pid, ndata, sender);
source = this._getSource(appName, pid, ndata, sender, null);
// We only store sender-pid entries for persistent sources.
// Removing the entries once the source is destroyed
@ -330,7 +364,8 @@ NotificationDaemon.prototype = {
clear: true });
}
if (hints['image-data'] || hints['image-path']) {
// We only display a large image if an icon is also specified.
if (icon && (hints['image-data'] || hints['image-path'])) {
let image = null;
if (hints['image-data']) {
let [width, height, rowStride, hasAlpha,
@ -417,8 +452,8 @@ NotificationDaemon.prototype = {
if (!tracker.focus_app)
return;
for (let id in this._sources) {
let source = this._sources[id];
for (let i = 0; i < this._sources.length; i++) {
let source = this._sources[i];
if (source.app == tracker.focus_app) {
source.destroyNonResidentNotifications();
return;
@ -441,12 +476,11 @@ NotificationDaemon.prototype = {
},
_onTrayIconAdded: function(o, icon) {
let source = this._getSource(icon.title || icon.wm_class || _("Unknown"), icon.pid, null, null);
source.setTrayIcon(icon);
let source = this._getSource(icon.title || icon.wm_class || _("Unknown"), icon.pid, null, null, icon);
},
_onTrayIconRemoved: function(o, icon) {
let source = this._sources[icon.pid];
let source = this._lookupSource(icon.pid, null, true);
if (source)
source.destroy();
}
@ -461,10 +495,12 @@ function Source(title, pid, sender) {
Source.prototype = {
__proto__: MessageTray.Source.prototype,
_init: function(title, pid, sender) {
_init: function(title, pid, sender, trayIcon) {
MessageTray.Source.prototype._init.call(this, title);
this._pid = pid;
this.initialTitle = title;
this.pid = pid;
if (sender)
// TODO: dbus-glib implementation of watch_name() doesnt return an id to be used for
// unwatch_name() or implement unwatch_name(), however when we move to using GDBus implementation,
@ -481,7 +517,12 @@ Source.prototype = {
this.title = this.app.get_name();
else
this.useNotificationIcon = true;
this._trayIcon = null;
this.trayIcon = trayIcon;
if (this.trayIcon) {
this._setSummaryIcon(this.trayIcon);
this.useNotificationIcon = false;
}
},
_onNameVanished: function() {
@ -508,7 +549,7 @@ Source.prototype = {
},
handleSummaryClick: function() {
if (!this._trayIcon)
if (!this.trayIcon)
return false;
let event = Clutter.get_current_event();
@ -529,11 +570,11 @@ Source.prototype = {
let id = global.connect('notify::stage-input-mode', Lang.bind(this,
function () {
global.disconnect(id);
this._trayIcon.click(event);
this.trayIcon.click(event);
}));
Main.overview.hide();
} else {
this._trayIcon.click(event);
this.trayIcon.click(event);
}
return true;
},
@ -542,31 +583,25 @@ Source.prototype = {
if (this.app)
return;
this.app = Shell.WindowTracker.get_default().get_app_from_pid(this._pid);
this.app = Shell.WindowTracker.get_default().get_app_from_pid(this.pid);
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) {
if (!this.trayIcon) {
this.useNotificationIcon = false;
this._setSummaryIcon(this.app.create_icon_texture (this.ICON_SIZE));
}
},
setTrayIcon: function(icon) {
this._setSummaryIcon(icon);
this.useNotificationIcon = false;
this._trayIcon = icon;
},
open: function(notification) {
this.destroyNonResidentNotifications();
this.openApp();
},
_lastNotificationRemoved: function() {
if (!this._trayIcon)
if (!this.trayIcon)
this.destroy();
},

View File

@ -1,4 +1,4 @@
/* -*- mode: js2; js2-basic-offset: 4; indent-tabs-mode: nil -*- */
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
const Clutter = imports.gi.Clutter;
const Gtk = imports.gi.Gtk;

View File

@ -1,4 +1,4 @@
/* -*- mode: js2; js2-basic-offset: 4; indent-tabs-mode: nil -*- */
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
const Cairo = imports.cairo;
const Clutter = imports.gi.Clutter;

View File

@ -1,4 +1,4 @@
/* -*- mode: js2; js2-basic-offset: 4; indent-tabs-mode: nil -*- */
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
const Clutter = imports.gi.Clutter;
const Gtk = imports.gi.Gtk;

View File

@ -1,4 +1,4 @@
/* -*- mode: js2; js2-basic-offset: 4; indent-tabs-mode: nil -*- */
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
const GLib = imports.gi.GLib;
const Gio = imports.gi.Gio;

View File

@ -1,5 +1,5 @@
/* -*- mode: js2; js2-basic-offset: 4; indent-tabs-mode: nil -*-
*
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
/*
* Copyright 2010 Red Hat, Inc
*
* This program is free software; you can redistribute it and/or modify
@ -33,6 +33,7 @@ const Polkit = imports.gi.Polkit;
const PolkitAgent = imports.gi.PolkitAgent;
const ModalDialog = imports.ui.modalDialog;
const ShellEntry = imports.ui.shellEntry;
function AuthenticationDialog(actionId, message, cookie, userNames) {
this._init(actionId, message, cookie, userNames);
@ -139,6 +140,7 @@ AuthenticationDialog.prototype = {
this._passwordEntry = new St.Entry({ style_class: 'polkit-dialog-password-entry',
text: "",
can_focus: true});
ShellEntry.addContextMenu(this._passwordEntry, { isPassword: true });
this._passwordEntry.clutter_text.connect('activate', Lang.bind(this, this._onEntryActivate));
this._passwordBox.add(this._passwordEntry,
{expand: true });

View File

@ -1,4 +1,4 @@
/* -*- mode: js2; js2-basic-offset: 4; indent-tabs-mode: nil -*- */
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
const Cairo = imports.cairo;
const Clutter = imports.gi.Clutter;
@ -1142,10 +1142,10 @@ function PopupMenu() {
PopupMenu.prototype = {
__proto__: PopupMenuBase.prototype,
_init: function(sourceActor, alignment, arrowSide) {
_init: function(sourceActor, arrowAlignment, arrowSide) {
PopupMenuBase.prototype._init.call (this, sourceActor, 'popup-menu-content');
this._alignment = alignment;
this._arrowAlignment = arrowAlignment;
this._arrowSide = arrowSide;
this._boxPointer = new BoxPointer.BoxPointer(arrowSide,
@ -1198,13 +1198,17 @@ PopupMenu.prototype = {
this._boxPointer.setArrowOrigin(origin);
},
setSourceAlignment: function(alignment) {
this._boxPointer.setSourceAlignment(alignment);
},
open: function(animate) {
if (this.isOpen)
return;
this.isOpen = true;
this._boxPointer.setPosition(this.sourceActor, this._alignment);
this._boxPointer.setPosition(this.sourceActor, this._arrowAlignment);
this._boxPointer.show(animate);
this.actor.raise_top();

View File

@ -1,4 +1,4 @@
/* -*- mode: js2; js2-basic-offset: 4; indent-tabs-mode: nil -*- */
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
const Clutter = imports.gi.Clutter;
const Gio = imports.gi.Gio;
@ -12,6 +12,7 @@ const Signals = imports.signals;
const FileUtils = imports.misc.fileUtils;
const Main = imports.ui.main;
const ModalDialog = imports.ui.modalDialog;
const ShellEntry = imports.ui.shellEntry;
const Tweener = imports.ui.tweener;
const Util = imports.misc.util;
const History = imports.misc.history;
@ -210,6 +211,7 @@ __proto__: ModalDialog.ModalDialog.prototype,
this.contentLayout.add(label, { y_align: St.Align.START });
let entry = new St.Entry({ style_class: 'run-dialog-entry' });
ShellEntry.addContextMenu(entry);
this._entryText = entry.clutter_text;
this.contentLayout.add(entry, { y_align: St.Align.START });

View File

@ -1,4 +1,4 @@
/* -*- mode: js2; js2-basic-offset: 4; indent-tabs-mode: nil -*- */
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
const DBus = imports.dbus;
const Gio = imports.gi.Gio;

View File

@ -1,4 +1,4 @@
/* -*- mode: js2; js2-basic-offset: 4; indent-tabs-mode: nil -*- */
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
const Gio = imports.gi.Gio;
const GLib = imports.gi.GLib;

View File

@ -1,4 +1,4 @@
/* -*- mode: js2; js2-basic-offset: 4; indent-tabs-mode: nil -*- */
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
const Clutter = imports.gi.Clutter;
const Lang = imports.lang;

View File

@ -1,4 +1,4 @@
/* -*- mode: js2; js2-basic-offset: 4; indent-tabs-mode: nil -*- */
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
const DBus = imports.dbus;
const Lang = imports.lang;

173
js/ui/shellEntry.js Normal file
View File

@ -0,0 +1,173 @@
const Clutter = imports.gi.Clutter;
const Gtk = imports.gi.Gtk;
const Lang = imports.lang;
const St = imports.gi.St;
const Main = imports.ui.main;
const Params = imports.misc.params;
const PopupMenu = imports.ui.popupMenu;
function _EntryMenu(entry, params) {
this._init(entry, params);
};
_EntryMenu.prototype = {
__proto__: PopupMenu.PopupMenu.prototype,
_init: function(entry, params) {
params = Params.parse (params, { isPassword: false });
PopupMenu.PopupMenu.prototype._init.call(this, entry, 0, St.Side.TOP);
this.actor.add_style_class_name('entry-context-menu');
this._entry = entry;
this._clipboard = St.Clipboard.get_default();
// Populate menu
let item;
item = new PopupMenu.PopupMenuItem(_("Copy"));
item.connect('activate', Lang.bind(this, this._onCopyActivated));
this.addMenuItem(item);
this._copyItem = item;
item = new PopupMenu.PopupMenuItem(_("Paste"));
item.connect('activate', Lang.bind(this, this._onPasteActivated));
this.addMenuItem(item);
this._pasteItem = item;
this._passwordItem = null;
if (params.isPassword) {
item = new PopupMenu.PopupMenuItem('');
item.connect('activate', Lang.bind(this,
this._onPasswordActivated));
this.addMenuItem(item);
this._passwordItem = item;
}
Main.uiGroup.add_actor(this.actor);
this.actor.hide();
},
open: function() {
this._updatePasteItem();
this._updateCopyItem();
if (this._passwordItem)
this._updatePasswordItem();
let direction = Gtk.DirectionType.TAB_FORWARD;
if (!this.actor.navigate_focus(null, direction, false))
this.actor.grab_key_focus();
PopupMenu.PopupMenu.prototype.open.call(this);
},
_updateCopyItem: function() {
let selection = this._entry.clutter_text.get_selection();
this._copyItem.setSensitive(selection && selection != '');
},
_updatePasteItem: function() {
this._clipboard.get_text(Lang.bind(this,
function(clipboard, text) {
this._pasteItem.setSensitive(text && text != '');
}));
},
_updatePasswordItem: function() {
let textHidden = (this._entry.clutter_text.password_char);
if (textHidden)
this._passwordItem.label.set_text(_("Show Text"));
else
this._passwordItem.label.set_text(_("Hide Text"));
},
_onCopyActivated: function() {
let selection = this._entry.clutter_text.get_selection();
this._clipboard.set_text(selection);
},
_onPasteActivated: function() {
this._clipboard.get_text(Lang.bind(this,
function(clipboard, text) {
if (!text)
return;
this._entry.clutter_text.delete_selection();
let pos = this._entry.clutter_text.get_cursor_position();
this._entry.clutter_text.insert_text(text, pos);
}));
},
_onPasswordActivated: function() {
let visible = !!(this._entry.clutter_text.password_char);
this._entry.clutter_text.set_password_char(visible ? '' : '\u25cf');
}
};
function _setMenuAlignment(entry, stageX) {
let [success, entryX, entryY] = entry.transform_stage_point(stageX, 0);
if (success)
entry._menu.setSourceAlignment(entryX / entry.width);
};
function _onClicked(action, actor) {
let entry = actor._menu ? actor : actor.get_parent();
if (entry._menu.isOpen) {
entry._menu.close();
} else if (action.get_button() == 3) {
let [stageX, stageY] = action.get_coords();
_setMenuAlignment(entry, stageX);
entry._menu.open();
}
};
function _onLongPress(action, actor, state) {
let entry = actor._menu ? actor : actor.get_parent();
if (state == Clutter.LongPressState.QUERY)
return action.get_button() == 1 && !entry._menu.isOpen;
if (state == Clutter.LongPressState.ACTIVATE) {
let [stageX, stageY] = action.get_coords();
_setMenuAlignment(entry, stageX);
entry._menu.open();
}
return false;
};
function _onPopup(actor) {
let entry = actor._menu ? actor : actor.get_parent();
let [success, textX, textY, lineHeight] = entry.clutter_text.position_to_coords(-1);
if (success)
entry._menu.setSourceAlignment(textX / entry.width);
entry._menu.open();
};
function addContextMenu(entry, params) {
if (entry._menu)
return;
entry._menu = new _EntryMenu(entry, params);
entry._menuManager = new PopupMenu.PopupMenuManager({ actor: entry });
entry._menuManager.addMenu(entry._menu);
let clickAction;
// Add a click action to both the entry and its clutter_text; the former
// so padding is included in the clickable area, the latter because the
// event processing of ClutterText prevents event-bubbling.
clickAction = new Clutter.ClickAction();
clickAction.connect('clicked', _onClicked);
clickAction.connect('long-press', _onLongPress);
entry.clutter_text.add_action(clickAction);
clickAction = new Clutter.ClickAction();
clickAction.connect('clicked', _onClicked);
clickAction.connect('long-press', _onLongPress);
entry.add_action(clickAction);
entry.connect('popup-menu', _onPopup);
}

View File

@ -1,4 +1,4 @@
/* -*- mode: js2; js2-basic-offset: 4; indent-tabs-mode: nil -*- */
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
const Lang = imports.lang;
const Signals = imports.signals;

View File

@ -1,4 +1,4 @@
/* -*- mode: js2; js2-basic-offset: 4; indent-tabs-mode: nil -*- */
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
const DBus = imports.dbus;
const GConf = imports.gi.GConf;

View File

@ -1,4 +1,4 @@
/* -*- mode: js2; js2-basic-offset: 4; indent-tabs-mode: nil -*- */
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
const Clutter = imports.gi.Clutter;
const Gdk = imports.gi.Gdk;

View File

@ -1,4 +1,4 @@
/* -*- mode: js2; js2-basic-offset: 4; indent-tabs-mode: nil -*- */
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
const Clutter = imports.gi.Clutter;
const GdkPixbuf = imports.gi.GdkPixbuf;

View File

@ -1,4 +1,4 @@
// -*- mode: js2; indent-tabs-mode: nil; js2-basic-offset: 4 -*-
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
const ByteArray = imports.byteArray;
const DBus = imports.dbus;
const GLib = imports.gi.GLib;
@ -1104,10 +1104,10 @@ NMDeviceWireless.prototype = {
let activeAp = this.device.active_access_point;
if (activeAp) {
let pos = this._findNetwork(activeAp);
let res = this._findExistingNetwork(activeAp);
if (pos != -1)
this._activeNetwork = this._networks[pos];
if (res != null)
this._activeNetwork = this._networks[res.network];
}
// we don't refresh the view here, setActiveConnection will
@ -1181,6 +1181,18 @@ NMDeviceWireless.prototype = {
return true;
},
_findExistingNetwork: function(accessPoint) {
for (let i = 0; i < this._networks.length; i++) {
let apObj = this._networks[i];
for (let j = 0; j < apObj.accessPoints.length; j++) {
if (apObj.accessPoints[j] == accessPoint)
return { network: i, ap: j };
}
}
return null;
},
_findNetwork: function(accessPoint) {
if (accessPoint.get_ssid() == null)
return -1;
@ -1273,22 +1285,15 @@ NMDeviceWireless.prototype = {
},
_accessPointRemoved: function(device, accessPoint) {
let pos = this._findNetwork(accessPoint);
let res = this._findExistingNetwork(accessPoint);
if (pos == -1) {
if (res == null) {
log('Removing an access point that was never added');
return;
}
let apObj = this._networks[pos];
let i = apObj.accessPoints.indexOf(accessPoint);
if (i == -1) {
log('Removing an access point that was never added');
return;
}
apObj.accessPoints.splice(i, 1);
let apObj = this._networks[res.network];
apObj.accessPoints.splice(res.ap, 1);
if (apObj.accessPoints.length == 0) {
if (this._activeNetwork == apObj)
@ -1302,22 +1307,26 @@ NMDeviceWireless.prototype = {
// we removed an item in the main menu, and we have a more submenu
// we need to extract the first item in more and move it to the submenu
let apObj = this._overflowItem.menu.firstMenuItem;
if (apObj.item) {
apObj.item.destroy();
let item = this._overflowItem.menu.firstMenuItem;
if (item && item._apObj) {
item.destroy();
// clear the cycle, and allow the construction of the new item
item._apObj.item = null;
this._createNetworkItem(apObj, NUM_VISIBLE_NETWORKS-1);
this._createNetworkItem(item._apObj, NUM_VISIBLE_NETWORKS-1);
} else {
log('The more... menu was existing and empty! This should not happen');
}
}
// This can happen if the removed connection is from the overflow
// menu, or if we just moved the last connection out from the menu
if (this._overflowItem.menu.length == 0) {
if (this._overflowItem.menu.numMenuItems == 0) {
this._overflowItem.destroy();
this._overflowItem = null;
}
}
this._networks.splice(pos, 1);
this._networks.splice(res.network, 1);
} else if (apObj.item)
apObj.item.updateAccessPoints(apObj.accessPoints);
@ -1489,18 +1498,16 @@ NMDeviceWireless.prototype = {
}
if(apObj.connections.length > 0) {
if (apObj.connections.length == 1)
if (apObj.connections.length == 1) {
apObj.item = this._createAPItem(apObj.connections[0], apObj, false);
else {
} else {
let title = apObj.ssidText;
apObj.item = new PopupMenu.PopupSubMenuMenuItem(title);
apObj.item._apObj = apObj;
for (let i = 0; i < apObj.connections.length; i++)
apObj.item.menu.addMenuItem(this._createAPItem(apObj.connections[i], apObj, true));
}
} else {
apObj.item = new NMNetworkMenuItem(apObj.accessPoints);
apObj.item._apObj = apObj;
apObj.item.connect('activate', Lang.bind(this, function() {
let accessPoints = sortAccessPoints(apObj.accessPoints);
if ( (accessPoints[0]._secType == NMAccessPointSecurity.WPA2_ENT)
@ -1515,6 +1522,8 @@ NMDeviceWireless.prototype = {
}
}));
}
apObj.item._apObj = apObj;
if (position < NUM_VISIBLE_NETWORKS) {
apObj.isMore = false;
this.section.addMenuItem(apObj.item, position);

View File

@ -1,4 +1,4 @@
/* -*- mode: js2; js2-basic-offset: 4; indent-tabs-mode: nil -*- */
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
const Gio = imports.gi.Gio;
const DBus = imports.dbus;
@ -43,8 +43,8 @@ const UPDeviceState = {
const PowerManagerInterface = {
name: 'org.gnome.SettingsDaemon.Power',
methods: [
{ name: 'GetDevices', inSignature: '', outSignature: 'a(susbut)' },
{ name: 'GetPrimaryDevice', inSignature: '', outSignature: '(susbut)' },
{ name: 'GetDevices', inSignature: '', outSignature: 'a(susdut)' },
{ name: 'GetPrimaryDevice', inSignature: '', outSignature: '(susdut)' },
],
signals: [
{ name: 'Changed', inSignature: '' },
@ -155,7 +155,7 @@ Indicator.prototype = {
_devicesChanged: function() {
this._proxy.GetRemote('Icon', Lang.bind(this, function(icon, error) {
if (icon) {
let gicon = Shell.util_icon_from_string (icon);
let gicon = Gio.icon_new_for_string(icon);
this.setGIcon(gicon);
this.actor.show();
} else {
@ -183,7 +183,7 @@ DeviceItem.prototype = {
this._box = new St.BoxLayout({ style_class: 'popup-device-menu-item' });
this._label = new St.Label({ text: this._deviceTypeToString(device_type) });
this._icon = new St.Icon({ gicon: Shell.util_icon_from_string(icon),
this._icon = new St.Icon({ gicon: Gio.icon_new_for_string(icon),
icon_type: St.IconType.SYMBOLIC,
style_class: 'popup-menu-icon' });

View File

@ -1,4 +1,4 @@
/* -*- mode: js2; js2-basic-offset: 4; indent-tabs-mode: nil -*- */
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
const Clutter = imports.gi.Clutter;
const DBus = imports.dbus;

View File

@ -1,4 +1,4 @@
/* -*- mode: js2; js2-basic-offset: 4; indent-tabs-mode: nil -*- */
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
const Lang = imports.lang;
const Shell = imports.gi.Shell;

View File

@ -1,4 +1,4 @@
/* -*- mode: js2; js2-basic-offset: 4; indent-tabs-mode: nil -*- */
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
const DBus = imports.dbus;
const Gio = imports.gi.Gio;
@ -257,7 +257,7 @@ Client.prototype = {
// FIXME: We don't have a 'chat room' icon (bgo #653737) use
// system-users for now as Empathy does.
let source = new ApproverSource(dispatchOp, _("Invitation"),
Shell.util_icon_from_string('system-users'));
Gio.icon_new_for_string('system-users'));
Main.messageTray.add(source);
let notif = new RoomInviteNotification(source, dispatchOp, channel, contacts[0]);
@ -325,8 +325,8 @@ Client.prototype = {
// We got the TpContact
let source = new ApproverSource(dispatchOp, _("Call"), isVideo ?
Shell.util_icon_from_string('camera-web') :
Shell.util_icon_from_string('audio-input-microphone'));
Gio.icon_new_for_string('camera-web') :
Gio.icon_new_for_string('audio-input-microphone'));
Main.messageTray.add(source);
let notif = new AudioVideoNotification(source, dispatchOp, channel, contacts[0], isVideo);
@ -539,9 +539,13 @@ ChatSource.prototype = {
_updateAlias: function() {
let oldAlias = this.title;
this.setTitle(this._contact.get_alias());
this._notification.appendAliasChange(oldAlias, this.title);
this.pushNotification(this._notification);
let newAlias = this._contact.get_alias();
if (oldAlias == newAlias)
return;
this.setTitle(newAlias);
this._notification.appendAliasChange(oldAlias, newAlias);
},
createNotificationIcon: function() {
@ -570,7 +574,7 @@ ChatSource.prototype = {
open: function(notification) {
if (this._client.is_handling_channel(this._channel)) {
// We are handling the channel, try to pass it to Empathy
this._client.delegate_channels_async([this._channel], global.get_current_time(), "", null);
this._client.delegate_channels_async([this._channel], global.get_current_time(), '', null);
}
else {
// We are not the handler, just ask to present the channel
@ -1198,6 +1202,7 @@ AudioVideoNotification.prototype = {
this.setResident(true);
this.addButton('reject', _("Reject"));
/* translators: this is a button label (verb), not a noun */
this.addButton('answer', _("Answer"));
this.connect('action-invoked', Lang.bind(this, function(self, action) {

View File

@ -1,4 +1,4 @@
/* -*- mode: js2; js2-basic-offset: 4; indent-tabs-mode: nil -*- */
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
const Clutter = imports.gi.Clutter;
const Lang = imports.lang;

View File

@ -1,4 +1,4 @@
/* -*- mode: js2; js2-basic-offset: 4; indent-tabs-mode: nil -*- */
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
const AccountsService = imports.gi.AccountsService;
const DBus = imports.dbus;
@ -158,22 +158,29 @@ IMStatusChooserItem.prototype = {
Lang.bind(this, this._changeIMStatus));
this._presence = new GnomeSession.Presence();
this._presence.getStatus(Lang.bind(this, this._sessionStatusChanged));
this._presence.connect('StatusChanged',
Lang.bind(this, this._sessionStatusChanged));
this._sessionPresenceRestored = false;
this._imPresenceRestored = false;
this._currentPresence = undefined;
this._previousPresence = undefined;
this._accountMgr = Tp.AccountManager.dup()
this._accountMgr.connect('most-available-presence-changed',
Lang.bind(this, this._IMStatusChanged));
this._accountMgr.prepare_async(null, Lang.bind(this,
function(mgr) {
let [presence, s, msg] = mgr.get_most_available_presence();
let [presence, status, msg] = mgr.get_most_available_presence();
this._previousPresence = presence;
this._IMStatusChanged(mgr, presence, s, msg);
let savedPresence = global.settings.get_int('saved-im-presence');
if (savedPresence == presence) {
this._IMStatusChanged(mgr, presence, status, msg);
} else {
this._setComboboxPresence(savedPresence);
status = this._statusForPresence(savedPresence);
msg = msg ? msg : '';
mgr.set_all_requested_presences(savedPresence, status, msg);
}
}));
this._userManager = AccountsService.UserManager.get_default();
@ -261,19 +268,35 @@ IMStatusChooserItem.prototype = {
},
_IMStatusChanged: function(accountMgr, presence, status, message) {
if (!this._imPresenceRestored)
this._imPresenceRestored = true;
if (presence == this._currentPresence)
return;
this._currentPresence = presence;
this._setComboboxPresence(presence);
if (!this._sessionPresenceRestored) {
this._presence.getStatus(Lang.bind(this, this._sessionStatusChanged));
return;
}
if (presence == Tp.ConnectionPresenceType.AVAILABLE)
this._presence.setStatus(GnomeSession.PresenceStatus.AVAILABLE);
if (!this._expectedPresence || presence != this._expectedPresence)
this._previousPresence = presence;
// We ignore the actual value of _expectedPresence and never safe
// the first presence change after an "automatic" change, assuming
// that it is the response to our request; this is to account for
// mission control falling back to "similar" presences if an account
// type does not implement the requested presence.
if (!this._expectedPresence)
global.settings.set_int('saved-im-presence', presence);
else
this._expectedPresence = undefined;
},
_setComboboxPresence: function(presence) {
let activatedItem;
if (presence == Tp.ConnectionPresenceType.AVAILABLE)
@ -310,13 +333,16 @@ IMStatusChooserItem.prototype = {
return;
status = this._statusForPresence(newPresence);
msg = msg ? msg : "";
msg = msg ? msg : '';
this._accountMgr.set_all_requested_presences(newPresence, status, msg);
},
getIMPresenceForSessionStatus: function(sessionStatus) {
// Restore the last user-set presence when coming back from
// BUSY/IDLE (otherwise the last user-set presence matches
// the current one)
if (sessionStatus == GnomeSession.PresenceStatus.AVAILABLE)
return this._previousPresence;
return global.settings.get_int('saved-im-presence');
if (sessionStatus == GnomeSession.PresenceStatus.BUSY) {
// Only change presence if the current one is "more present" than
@ -337,6 +363,20 @@ IMStatusChooserItem.prototype = {
},
_sessionStatusChanged: function(sessionPresence, sessionStatus) {
if (!this._imPresenceRestored)
return;
if (!this._sessionPresenceRestored) {
let savedStatus = global.settings.get_int('saved-session-presence');
if (sessionStatus != savedStatus) {
this._presence.setStatus(savedStatus);
return;
}
this._sessionPresenceRestored = true;
}
global.settings.set_int('saved-session-presence', sessionStatus);
let [presence, s, msg] = this._accountMgr.get_most_available_presence();
let newPresence, status;
@ -346,7 +386,7 @@ IMStatusChooserItem.prototype = {
return;
status = this._statusForPresence(newPresence);
msg = msg ? msg : "";
msg = msg ? msg : '';
this._expectedPresence = newPresence;
this._accountMgr.set_all_requested_presences(newPresence, status, msg);

View File

@ -1,4 +1,4 @@
/* -*- mode: js2; js2-basic-offset: 4; indent-tabs-mode: nil -*- */
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
const Clutter = imports.gi.Clutter;
const Gtk = imports.gi.Gtk;
@ -12,6 +12,7 @@ const St = imports.gi.St;
const Main = imports.ui.main;
const Search = imports.ui.search;
const SearchDisplay = imports.ui.searchDisplay;
const ShellEntry = imports.ui.shellEntry;
const Tweener = imports.ui.tweener;
function BaseTab(titleActor, pageActor, name, a11yIcon) {
@ -120,6 +121,7 @@ SearchTab.prototype = {
hint_text: _("Type to search..."),
track_hover: true,
can_focus: true });
ShellEntry.addContextMenu(this._entry);
this._text = this._entry.clutter_text;
this._text.connect('key-press-event', Lang.bind(this, this._onKeyPress));
@ -289,9 +291,11 @@ SearchTab.prototype = {
_onCapturedEvent: function(actor, event) {
if (event.type() == Clutter.EventType.BUTTON_PRESS) {
let source = event.get_source();
if (source != this._text && this._text.text == '') {
if (source != this._text && this._text.text == '' &&
!Main.layoutManager.keyboardBox.contains(source)) {
// the user clicked outside after activating the entry, but
// with no search term entered - cancel the search
// with no search term entered and no keyboard button pressed
// - cancel the search
this._reset();
}
}

View File

@ -1,4 +1,4 @@
/* -*- mode: js2; js2-basic-offset: 4; indent-tabs-mode: nil -*- */
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
const Lang = imports.lang;
const Shell = imports.gi.Shell;
@ -12,35 +12,10 @@ function WindowAttentionHandler() {
WindowAttentionHandler.prototype = {
_init : function() {
this._startupIds = {};
this._tracker = Shell.WindowTracker.get_default();
this._tracker.connect('startup-sequence-changed', Lang.bind(this, this._onStartupSequenceChanged));
global.display.connect('window-demands-attention', Lang.bind(this, this._onWindowDemandsAttention));
},
_onStartupSequenceChanged : function(tracker) {
let sequences = tracker.get_startup_sequences();
this._startupIds = {};
for(let i = 0; i < sequences.length; i++) {
this._startupIds[sequences[i].get_id()] = true;
}
},
_getTitle : function(app, window) {
if (this._startupIds[window.get_startup_id()])
return app.get_name();
else
return window.title;
},
_getBanner : function(app, window) {
if (this._startupIds[window.get_startup_id()])
return _("%s has finished starting").format(app.get_name());
else
return _("'%s' is ready").format(window.title);
},
_onWindowDemandsAttention : function(display, window) {
// We don't want to show the notification when the window is already focused,
// because this is rather pointless.
@ -57,12 +32,16 @@ WindowAttentionHandler.prototype = {
let source = new Source(app, window);
Main.messageTray.add(source);
let notification = new MessageTray.Notification(source, this._getTitle(app, window), this._getBanner(app, window));
let banner = _("'%s' is ready").format(window.title);
let title = app.get_name();
let notification = new MessageTray.Notification(source, title, banner);
source.notify(notification);
source.signalIDs.push(window.connect('notify::title', Lang.bind(this, function(win) {
notification.update(this._getTitle(app, win), this._getBanner(app, win));
})));
source.signalIDs.push(window.connect('notify::title',
Lang.bind(this, function() {
notification.update(title, banner);
})));
}
};

View File

@ -1,4 +1,4 @@
/* -*- mode: js2; js2-basic-offset: 4; indent-tabs-mode: nil -*- */
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
const Clutter = imports.gi.Clutter;
const GLib = imports.gi.GLib;
@ -37,28 +37,36 @@ function WindowDimmer(actor) {
WindowDimmer.prototype = {
_init: function(actor) {
this.effect = new Clutter.ShaderEffect({ shader_type: Clutter.ShaderType.FRAGMENT_SHADER });
this.effect.set_shader_source(getDimShaderSource());
if (Clutter.feature_available(Clutter.FeatureFlags.SHADERS_GLSL)) {
this._effect = new Clutter.ShaderEffect({ shader_type: Clutter.ShaderType.FRAGMENT_SHADER });
this._effect.set_shader_source(getDimShaderSource());
} else {
this._effect = null;
}
this.actor = actor;
},
set dimFraction(fraction) {
this._dimFraction = fraction;
if (this._effect == null)
return;
if (!Meta.prefs_get_attach_modal_dialogs()) {
this.effect.enabled = false;
this._effect.enabled = false;
return;
}
if (fraction > 0.01) {
Shell.shader_effect_set_double_uniform(this.effect, 'height', this.actor.get_height());
Shell.shader_effect_set_double_uniform(this.effect, 'fraction', fraction);
Shell.shader_effect_set_double_uniform(this._effect, 'height', this.actor.get_height());
Shell.shader_effect_set_double_uniform(this._effect, 'fraction', fraction);
if (!this.effect.actor)
this.actor.add_effect(this.effect);
if (!this._effect.actor)
this.actor.add_effect(this._effect);
} else {
if (this.effect.actor)
this.actor.remove_effect(this.effect);
if (this._effect.actor)
this.actor.remove_effect(this._effect);
}
},

View File

@ -1,4 +1,4 @@
/* -*- mode: js2; js2-basic-offset: 4; indent-tabs-mode: nil -*- */
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
const Clutter = imports.gi.Clutter;
const GConf = imports.gi.GConf;
@ -135,8 +135,11 @@ WindowClone.prototype = {
this._realWindowDestroyId = this.realWindow.connect('destroy',
Lang.bind(this, this._disconnectRealWindowSignals));
this.actor.connect('button-release-event',
Lang.bind(this, this._onButtonRelease));
let clickAction = new Clutter.ClickAction();
clickAction.connect('clicked', Lang.bind(this, this._onClicked));
clickAction.connect('long-press', Lang.bind(this, this._onLongPress));
this.actor.add_action(clickAction);
this.actor.connect('scroll-event',
Lang.bind(this, this._onScroll));
@ -147,6 +150,7 @@ WindowClone.prototype = {
this._draggable = DND.makeDraggable(this.actor,
{ restoreOnSuccess: true,
manualMode: true,
dragActorMaxSize: WINDOW_DND_SIZE,
dragActorOpacity: DRAGGING_WINDOW_OPACITY });
this._draggable.connect('drag-begin', Lang.bind(this, this._onDragBegin));
@ -345,9 +349,27 @@ WindowClone.prototype = {
this._zoomStep = undefined;
},
_onButtonRelease : function (actor, event) {
_onClicked: function(action, actor) {
this._selected = true;
this.emit('selected', event.get_time());
this.emit('selected', global.get_current_time());
},
_onLongPress: function(action, actor, state) {
// Take advantage of the Clutter policy to consider
// a long-press canceled when the pointer movement
// exceeds dnd-drag-threshold to manually start the drag
if (state == Clutter.LongPressState.CANCEL) {
// A click cancels a long-press before any click handler is
// run - make sure to not start a drag in that case
Meta.later_add(Meta.LaterType.BEFORE_REDRAW, Lang.bind(this,
function() {
if (this._selected)
return;
let [x, y] = action.get_coords();
this._draggable.startDrag(x, y, global.get_current_time());
}));
}
return true;
},
_onDragBegin : function (draggable, time) {

View File

@ -1,4 +1,4 @@
/* -*- mode: js2; js2-basic-offset: 4; indent-tabs-mode: nil -*- */
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
const Clutter = imports.gi.Clutter;
const Lang = imports.lang;

View File

@ -1,4 +1,4 @@
/* -*- mode: js2; js2-basic-offset: 4; indent-tabs-mode: nil -*- */
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
const Clutter = imports.gi.Clutter;
const Lang = imports.lang;
@ -148,6 +148,8 @@ WorkspaceThumbnail.prototype = {
this.metaWorkspace = metaWorkspace;
this.monitorIndex = Main.layoutManager.primaryIndex;
this._removed = false;
this.actor = new St.Group({ reactive: true,
clip_to_allocation: true,
style_class: 'workspace-thumbnail' });
@ -173,17 +175,21 @@ WorkspaceThumbnail.prototype = {
let monitor = Main.layoutManager.primaryMonitor;
this.setPorthole(monitor.x, monitor.y, monitor.width, monitor.height);
let windows = global.get_window_actors().filter(this._isMyWindow, this);
let windows = global.get_window_actors().filter(this._isWorkspaceWindow, this);
// Create clones for windows that should be visible in the Overview
this._windows = [];
this._allWindows = [];
this._minimizedChangedIds = [];
for (let i = 0; i < windows.length; i++) {
windows[i].meta_window._minimizedChangedId =
let minimizedChangedId =
windows[i].meta_window.connect('notify::minimized',
Lang.bind(this,
this._updateMinimized));
this._allWindows.push(windows[i].meta_window);
this._minimizedChangedIds.push(minimizedChangedId);
if (this._isOverviewWindow(windows[i])) {
if (this._isMyWindow(windows[i]) && this._isOverviewWindow(windows[i])) {
this._addWindowClone(windows[i]);
}
}
@ -268,17 +274,11 @@ WorkspaceThumbnail.prototype = {
let clone = this._windows[index];
this._windows.splice(index, 1);
if (win && this._isOverviewWindow(win)) {
if (metaWin._minimizedChangedId) {
metaWin.disconnect(metaWin._minimizedChangedId);
delete metaWin._minimizedChangedId;
}
}
clone.destroy();
},
_doAddWindow : function(metaWin) {
if (this.leavingOverview)
if (this._removed)
return;
let win = metaWin.get_compositor_private();
@ -288,7 +288,7 @@ WorkspaceThumbnail.prototype = {
// the compositor finds out about them...
Mainloop.idle_add(Lang.bind(this,
function () {
if (this.actor &&
if (!this._removed &&
metaWin.get_compositor_private() &&
metaWin.get_workspace() == this.metaWorkspace)
this._doAddWindow(metaWin);
@ -297,16 +297,19 @@ WorkspaceThumbnail.prototype = {
return;
}
if (this._allWindows.indexOf(metaWin) == -1) {
let minimizedChangedId = metaWin.connect('notify::minimized',
Lang.bind(this,
this._updateMinimized));
this._allWindows.push(metaWin);
this._minimizedChangedIds.push(minimizedChangedId);
}
// We might have the window in our list already if it was on all workspaces and
// now was moved to this workspace
if (this._lookupIndex (metaWin) != -1)
return;
if (!metaWin._minimizedChangedId)
metaWin._minimizedChangedId = metaWin.connect('notify::minimized',
Lang.bind(this,
this._updateMinimized));
if (!this._isMyWindow(win) || !this._isOverviewWindow(win))
return;
@ -318,6 +321,13 @@ WorkspaceThumbnail.prototype = {
},
_windowRemoved : function(metaWorkspace, metaWin) {
let index = this._allWindows.indexOf(metaWin);
if (index != -1) {
metaWin.disconnect(this._minimizedChangedIds[index]);
this._allWindows.splice(index, 1);
this._minimizedChangedIds.splice(index, 1);
}
this._doRemoveWindow(metaWin);
},
@ -344,27 +354,36 @@ WorkspaceThumbnail.prototype = {
this.actor.destroy();
},
_onDestroy: function(actor) {
workspaceRemoved : function() {
if (this._removed)
return;
this._removed = true;
this.metaWorkspace.disconnect(this._windowAddedId);
this.metaWorkspace.disconnect(this._windowRemovedId);
global.screen.disconnect(this._windowEnteredMonitorId);
global.screen.disconnect(this._windowLeftMonitorId);
for (let i = 0; i < this._windows.length; i++) {
let metaWin = this._windows[i].metaWindow;
if (metaWin._minimizedChangedId) {
metaWin.disconnect(metaWin._minimizedChangedId);
delete metaWin._minimizedChangedId;
}
}
for (let i = 0; i < this._allWindows.length; i++)
this._allWindows[i].disconnect(this._minimizedChangedIds[i]);
},
_onDestroy: function(actor) {
this.workspaceRemoved();
this._windows = [];
this.actor = null;
},
// Tests if @win belongs to this workspace
_isWorkspaceWindow : function (win) {
return Main.isWindowActorDisplayedOnWorkspace(win, this.metaWorkspace.index());
},
// Tests if @win belongs to this workspace and monitor
_isMyWindow : function (win) {
return Main.isWindowActorDisplayedOnWorkspace(win, this.metaWorkspace.index()) &&
return this._isWorkspaceWindow(win) &&
(!win.get_meta_window() || win.get_meta_window().get_monitor() == this.monitorIndex);
},
@ -584,8 +603,10 @@ ThumbnailsBox.prototype = {
if (thumbnail.state > ThumbnailState.NORMAL)
continue;
if (currentPos >= start && currentPos < start + count)
if (currentPos >= start && currentPos < start + count) {
thumbnail.workspaceRemoved();
this._setThumbnailState(thumbnail, ThumbnailState.REMOVING);
}
currentPos++;
}

View File

@ -1,4 +1,4 @@
/* -*- mode: js2; js2-basic-offset: 4; indent-tabs-mode: nil -*- */
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
const Clutter = imports.gi.Clutter;
const Lang = imports.lang;
@ -109,8 +109,6 @@ WorkspacesView.prototype = {
this._scrollAdjustment.connect('notify::value',
Lang.bind(this, this._onScroll));
this._timeoutId = 0;
this._switchWorkspaceNotifyId =
global.window_manager.connect('switch-workspace',
Lang.bind(this, this._activeWorkspaceChanged));
@ -321,10 +319,6 @@ WorkspacesView.prototype = {
if (this._inDrag)
this._dragEnd();
if (this._timeoutId) {
Mainloop.source_remove(this._timeoutId);
this._timeoutId = 0;
}
if (this._itemDragBeginId > 0) {
Main.overview.disconnect(this._itemDragBeginId);
this._itemDragBeginId = 0;
@ -383,72 +377,10 @@ WorkspacesView.prototype = {
this._extraWorkspaces[i].setReservedSlot(dragEvent.dragActor._delegate);
}
let primary = Main.layoutManager.primaryMonitor;
let activeWorkspaceIndex = global.screen.get_active_workspace_index();
let topWorkspace, bottomWorkspace;
topWorkspace = this._workspaces[activeWorkspaceIndex - 1];
bottomWorkspace = this._workspaces[activeWorkspaceIndex + 1];
let hoverWorkspace = null;
// reactive monitor edges
let topEdge = primary.y;
let switchTop = (dragEvent.y <= topEdge && topWorkspace);
if (switchTop && this._dragOverLastY != topEdge) {
topWorkspace.metaWorkspace.activate(global.get_current_time());
this._dragOverLastY = topEdge;
return DND.DragMotionResult.CONTINUE;
}
let bottomEdge = primary.y + primary.height - 1;
let switchBottom = (dragEvent.y >= bottomEdge && bottomWorkspace);
if (switchBottom && this._dragOverLastY != bottomEdge) {
bottomWorkspace.metaWorkspace.activate(global.get_current_time());
this._dragOverLastY = bottomEdge;
return DND.DragMotionResult.CONTINUE;
}
this._dragOverLastY = dragEvent.y;
let result = DND.DragMotionResult.CONTINUE;
// check hover state of new workspace area / inactive workspaces
if (topWorkspace) {
if (topWorkspace.actor.contains(dragEvent.targetActor)) {
hoverWorkspace = topWorkspace;
result = topWorkspace.handleDragOver(dragEvent.source, dragEvent.dragActor);
}
}
if (bottomWorkspace) {
if (bottomWorkspace.actor.contains(dragEvent.targetActor)) {
hoverWorkspace = bottomWorkspace;
result = bottomWorkspace.handleDragOver(dragEvent.source, dragEvent.dragActor);
}
}
// handle delayed workspace switches
if (hoverWorkspace) {
if (!this._timeoutId)
this._timeoutId = Mainloop.timeout_add_seconds(1,
Lang.bind(this, function() {
hoverWorkspace.metaWorkspace.activate(global.get_current_time());
return false;
}));
} else {
if (this._timeoutId) {
Mainloop.source_remove(this._timeoutId);
this._timeoutId = 0;
}
}
return result;
return DND.DragMotionResult.CONTINUE;
},
_dragEnd: function() {
if (this._timeoutId) {
Mainloop.source_remove(this._timeoutId);
this._timeoutId = 0;
}
DND.removeDragMonitor(this._dragMonitor);
this._inDrag = false;

View File

@ -1,4 +1,4 @@
/* -*- mode: js2; js2-basic-offset: 4; indent-tabs-mode: nil -*- */
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
const Clutter = imports.gi.Clutter;
const Lang = imports.lang;

View File

@ -2,6 +2,7 @@ af
an
ar
as
ast
be
bg
bn
@ -31,6 +32,7 @@ it
ja
ko
kn
ku
lt
lv
mr

View File

@ -25,6 +25,7 @@ js/ui/polkitAuthenticationAgent.js
js/ui/popupMenu.js
js/ui/runDialog.js
js/ui/searchDisplay.js
js/ui/shellEntry.js
js/ui/shellMountOperation.js
js/ui/status/accessibility.js
js/ui/status/bluetooth.js
@ -44,4 +45,3 @@ src/shell-global.c
src/shell-mobile-providers.c
src/shell-polkit-authentication-agent.c
src/shell-util.c

1630
po/ast.po Normal file

File diff suppressed because it is too large Load Diff

274
po/bg.po
View File

@ -5,10 +5,10 @@
#
msgid ""
msgstr ""
"Project-Id-Version: gnome-shell master\n"
"Project-Id-Version: gnome-shell gnome-3-2\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2011-09-25 08:34+0300\n"
"PO-Revision-Date: 2011-09-25 08:34+0300\n"
"POT-Creation-Date: 2011-10-21 23:30+0300\n"
"PO-Revision-Date: 2011-10-21 23:30+0300\n"
"Last-Translator: Ivaylo Valkov <ivaylo@e-valkov.org>\n"
"Language-Team: Bulgarian <dict@fsa-bg.org>\n"
"Language: bg\n"
@ -184,42 +184,42 @@ msgstr "Коя клавиатура да бъде да се ползва"
msgid "disabled OpenSearch providers"
msgstr "изключени доставчици на OpenSearch"
#: ../js/gdm/loginDialog.js:617
#: ../js/gdm/loginDialog.js:633
msgid "Session..."
msgstr "Сесия…"
#: ../js/gdm/loginDialog.js:785
#: ../js/gdm/loginDialog.js:804
msgctxt "title"
msgid "Sign In"
msgstr "Регистриране"
#. translators: this message is shown below the password entry field
#. to indicate the user can swipe their finger instead
#: ../js/gdm/loginDialog.js:830
#: ../js/gdm/loginDialog.js:849
msgid "(or swipe finger)"
msgstr "(или се регистрирайте с пръстов отпечатък)"
#: ../js/gdm/loginDialog.js:848
#: ../js/gdm/loginDialog.js:867
msgid "Not listed?"
msgstr "Липсва в списъка?"
#: ../js/gdm/loginDialog.js:1004 ../js/ui/endSessionDialog.js:426
#: ../js/ui/extensionSystem.js:477 ../js/ui/networkAgent.js:165
#: ../js/ui/polkitAuthenticationAgent.js:171 ../js/ui/status/bluetooth.js:480
#: ../js/gdm/loginDialog.js:1035 ../js/ui/endSessionDialog.js:426
#: ../js/ui/extensionSystem.js:477 ../js/ui/networkAgent.js:148
#: ../js/ui/polkitAuthenticationAgent.js:173 ../js/ui/status/bluetooth.js:480
msgid "Cancel"
msgstr "Отказване"
#: ../js/gdm/loginDialog.js:1009
#: ../js/gdm/loginDialog.js:1040
msgctxt "button"
msgid "Sign In"
msgstr "Регистриране"
#: ../js/gdm/loginDialog.js:1358
#: ../js/gdm/loginDialog.js:1392
msgid "Login Window"
msgstr "Екран за идентификация"
#: ../js/gdm/powerMenu.js:116 ../js/ui/userMenu.js:514
#: ../js/ui/userMenu.js:516 ../js/ui/userMenu.js:585
#: ../js/gdm/powerMenu.js:116 ../js/ui/userMenu.js:554
#: ../js/ui/userMenu.js:556 ../js/ui/userMenu.js:625
msgid "Suspend"
msgstr "Приспиване"
@ -442,32 +442,32 @@ msgstr "Тази седмица"
msgid "Next week"
msgstr "Следващата седмица"
#: ../js/ui/contactDisplay.js:59 ../js/ui/notificationDaemon.js:444
#: ../js/ui/status/power.js:223 ../src/shell-app.c:355
#: ../js/ui/contactDisplay.js:65 ../js/ui/notificationDaemon.js:459
#: ../js/ui/status/power.js:223 ../src/shell-app.c:353
msgid "Unknown"
msgstr "Неизвестно"
#: ../js/ui/contactDisplay.js:80 ../js/ui/userMenu.js:139
#: ../js/ui/contactDisplay.js:86 ../js/ui/userMenu.js:139
msgid "Available"
msgstr "На линия"
#: ../js/ui/contactDisplay.js:85 ../js/ui/userMenu.js:148
#: ../js/ui/contactDisplay.js:91 ../js/ui/userMenu.js:148
msgid "Away"
msgstr "Отсъстващ"
#: ../js/ui/contactDisplay.js:89 ../js/ui/userMenu.js:142
#: ../js/ui/contactDisplay.js:95 ../js/ui/userMenu.js:142
msgid "Busy"
msgstr "Зает"
#: ../js/ui/contactDisplay.js:93
#: ../js/ui/contactDisplay.js:99
msgid "Offline"
msgstr "Извън мрежата"
#: ../js/ui/contactDisplay.js:140
#: ../js/ui/contactDisplay.js:146
msgid "CONTACTS"
msgstr "КОНТАКТИ"
#: ../js/ui/dash.js:172 ../js/ui/messageTray.js:1204
#: ../js/ui/dash.js:174 ../js/ui/messageTray.js:1206
msgid "Remove"
msgstr "Изтриване"
@ -607,96 +607,96 @@ msgstr "Инсталиране"
msgid "Download and install '%s' from extensions.gnome.org?"
msgstr "Да се изтегли и инсталира ли „%s“ от from extensions.gnome.org?"
#: ../js/ui/keyboard.js:517 ../js/ui/status/power.js:211
#: ../js/ui/keyboard.js:325
msgid "tray"
msgstr "област за уведомяване"
#: ../js/ui/keyboard.js:547 ../js/ui/status/power.js:211
msgid "Keyboard"
msgstr "Клавиатура"
#: ../js/ui/lookingGlass.js:645
#: ../js/ui/lookingGlass.js:646
msgid "No extensions installed"
msgstr "Няма инсталирани разширения"
#: ../js/ui/lookingGlass.js:691
#: ../js/ui/lookingGlass.js:692
msgid "Enabled"
msgstr "Включено"
#. translators:
#. * The device has been disabled
#: ../js/ui/lookingGlass.js:693 ../src/gvc/gvc-mixer-control.c:1093
#: ../js/ui/lookingGlass.js:694 ../src/gvc/gvc-mixer-control.c:1093
msgid "Disabled"
msgstr "Изключено"
#: ../js/ui/lookingGlass.js:695
#: ../js/ui/lookingGlass.js:696
msgid "Error"
msgstr "Грешка"
#: ../js/ui/lookingGlass.js:697
#: ../js/ui/lookingGlass.js:698
msgid "Out of date"
msgstr "Остаряло"
#: ../js/ui/lookingGlass.js:699
#: ../js/ui/lookingGlass.js:700
msgid "Downloading"
msgstr "Изтегляне"
#: ../js/ui/lookingGlass.js:724
#: ../js/ui/lookingGlass.js:721
msgid "View Source"
msgstr "Преглед на изходния код"
#: ../js/ui/lookingGlass.js:730
#: ../js/ui/lookingGlass.js:727
msgid "Web Page"
msgstr "Домашна страница"
#: ../js/ui/messageTray.js:1197
#: ../js/ui/messageTray.js:1199
msgid "Open"
msgstr "Отваряне"
#: ../js/ui/messageTray.js:2405
#: ../js/ui/messageTray.js:2408
msgid "System Information"
msgstr "Информация за системата"
#: ../js/ui/networkAgent.js:145
msgid "Show password"
msgstr "Показване на парола"
#: ../js/ui/networkAgent.js:160
#: ../js/ui/networkAgent.js:143
msgid "Connect"
msgstr "Свързване"
#. Cisco LEAP
#: ../js/ui/networkAgent.js:255 ../js/ui/networkAgent.js:267
#: ../js/ui/networkAgent.js:294 ../js/ui/networkAgent.js:314
#: ../js/ui/networkAgent.js:324
#: ../js/ui/networkAgent.js:238 ../js/ui/networkAgent.js:250
#: ../js/ui/networkAgent.js:277 ../js/ui/networkAgent.js:297
#: ../js/ui/networkAgent.js:307
msgid "Password: "
msgstr "Парола: "
#. static WEP
#: ../js/ui/networkAgent.js:260
#: ../js/ui/networkAgent.js:243
msgid "Key: "
msgstr "Ключ: "
#. TTLS and PEAP are actually much more complicated, but this complication
#. is not visible here since we only care about phase2 authentication
#. (and don't even care of which one)
#: ../js/ui/networkAgent.js:292 ../js/ui/networkAgent.js:310
#: ../js/ui/networkAgent.js:275 ../js/ui/networkAgent.js:293
msgid "Username: "
msgstr "Потребител: "
#: ../js/ui/networkAgent.js:298
#: ../js/ui/networkAgent.js:281
msgid "Identity: "
msgstr "Самоличност: "
#: ../js/ui/networkAgent.js:300
#: ../js/ui/networkAgent.js:283
msgid "Private key password: "
msgstr "Парола за частният ключ: "
#: ../js/ui/networkAgent.js:312
#: ../js/ui/networkAgent.js:295
msgid "Service: "
msgstr "Услуга: "
#: ../js/ui/networkAgent.js:341
#: ../js/ui/networkAgent.js:324
msgid "Authentication required by wireless network"
msgstr "Изисква се удостоверяване за безжична мрежа"
#: ../js/ui/networkAgent.js:342
#: ../js/ui/networkAgent.js:325
#, c-format
msgid ""
"Passwords or encryption keys are required to access the wireless network "
@ -705,35 +705,35 @@ msgstr ""
"За достъп до безжичната мрежа „%s“ са необходими пароли или криптирани "
"ключове."
#: ../js/ui/networkAgent.js:346
#: ../js/ui/networkAgent.js:329
msgid "Wired 802.1X authentication"
msgstr "Жична идентификация 802.1Х"
#: ../js/ui/networkAgent.js:348
#: ../js/ui/networkAgent.js:331
msgid "Network name: "
msgstr "Име на мрежата: "
#: ../js/ui/networkAgent.js:353
#: ../js/ui/networkAgent.js:336
msgid "DSL authentication"
msgstr "Удостоверяване за DSL"
#: ../js/ui/networkAgent.js:360
#: ../js/ui/networkAgent.js:343
msgid "PIN code required"
msgstr "Необходим е PIN"
#: ../js/ui/networkAgent.js:361
#: ../js/ui/networkAgent.js:344
msgid "PIN code is needed for the mobile broadband device"
msgstr "Мобилното устройство изисква ПИН"
#: ../js/ui/networkAgent.js:362
#: ../js/ui/networkAgent.js:345
msgid "PIN: "
msgstr "ПИН: "
#: ../js/ui/networkAgent.js:368
#: ../js/ui/networkAgent.js:351
msgid "Mobile broadband network password"
msgstr "Парола за мобилна широколентова връзка"
#: ../js/ui/networkAgent.js:369
#: ../js/ui/networkAgent.js:352
#, c-format
msgid "A password is required to connect to '%s'."
msgstr "За свързване към „%s“ се изисква парола."
@ -789,15 +789,15 @@ msgstr "Свързване към…"
msgid "PLACES & DEVICES"
msgstr "МЕСТА И УСТРОЙСТВА"
#: ../js/ui/polkitAuthenticationAgent.js:72
#: ../js/ui/polkitAuthenticationAgent.js:73
msgid "Authentication Required"
msgstr "Необходимо е удостоверяване"
#: ../js/ui/polkitAuthenticationAgent.js:106
#: ../js/ui/polkitAuthenticationAgent.js:107
msgid "Administrator"
msgstr "Администратор"
#: ../js/ui/polkitAuthenticationAgent.js:175
#: ../js/ui/polkitAuthenticationAgent.js:177
msgid "Authenticate"
msgstr "Удостоверяване"
@ -805,11 +805,11 @@ msgstr "Удостоверяване"
#. * requested authentication was not gained; this can happen
#. * because of an authentication error (like invalid password),
#. * for instance.
#: ../js/ui/polkitAuthenticationAgent.js:256
#: ../js/ui/polkitAuthenticationAgent.js:258
msgid "Sorry, that didn't work. Please try again."
msgstr "Действието не беше успешно. Опитайте отново."
#: ../js/ui/polkitAuthenticationAgent.js:268
#: ../js/ui/polkitAuthenticationAgent.js:270
msgid "Password:"
msgstr "Парола:"
@ -822,7 +822,7 @@ msgstr "Парола:"
msgid "toggle-switch-us"
msgstr "toggle-switch-intl"
#: ../js/ui/runDialog.js:208
#: ../js/ui/runDialog.js:209
msgid "Please enter a command:"
msgstr "Въведете команда:"
@ -834,6 +834,22 @@ msgstr "Търсене…"
msgid "No matching results."
msgstr "Няма съвпадения."
#: ../js/ui/shellEntry.js:30
msgid "Copy"
msgstr "Копиране"
#: ../js/ui/shellEntry.js:35
msgid "Paste"
msgstr "Поставяне"
#: ../js/ui/shellEntry.js:81
msgid "Show Text"
msgstr "Показване на текста"
#: ../js/ui/shellEntry.js:83
msgid "Hide Text"
msgstr "Скриване на текста"
#: ../js/ui/shellMountOperation.js:285
msgid "Wrong password, please try again"
msgstr "Грешна парола. Опитайте отново."
@ -967,7 +983,7 @@ msgstr "Винаги позволяване на достъп"
msgid "Grant this time only"
msgstr "Позволяване само този път"
#: ../js/ui/status/bluetooth.js:392 ../js/ui/telepathyClient.js:1196
#: ../js/ui/status/bluetooth.js:392 ../js/ui/telepathyClient.js:1204
msgid "Reject"
msgstr "Отхвърляне"
@ -1236,39 +1252,39 @@ msgid "Invitation"
msgstr "Покана"
#. We got the TpContact
#: ../js/ui/telepathyClient.js:325
#: ../js/ui/telepathyClient.js:327
msgid "Call"
msgstr "Разговор"
#. We got the TpContact
#: ../js/ui/telepathyClient.js:353
#: ../js/ui/telepathyClient.js:357
msgid "File Transfer"
msgstr "Обмен на файлове"
#: ../js/ui/telepathyClient.js:434
#: ../js/ui/telepathyClient.js:438
msgid "Subscription request"
msgstr "Искане за записване"
#: ../js/ui/telepathyClient.js:470
#: ../js/ui/telepathyClient.js:474
msgid "Connection error"
msgstr "Грешка при свързване"
#: ../js/ui/telepathyClient.js:733
#: ../js/ui/telepathyClient.js:741
#, c-format
msgid "%s is online."
msgstr "%s е на линия."
#: ../js/ui/telepathyClient.js:738
#: ../js/ui/telepathyClient.js:746
#, c-format
msgid "%s is offline."
msgstr "%s не е на линия."
#: ../js/ui/telepathyClient.js:741
#: ../js/ui/telepathyClient.js:749
#, c-format
msgid "%s is away."
msgstr "%s отсъства."
#: ../js/ui/telepathyClient.js:744
#: ../js/ui/telepathyClient.js:752
#, c-format
msgid "%s is busy."
msgstr "%s е зает."
@ -1276,35 +1292,35 @@ msgstr "%s е зает."
#. Translators: this is a time format string followed by a date.
#. If applicable, replace %X with a strftime format valid for your
#. locale, without seconds.
#: ../js/ui/telepathyClient.js:978
#: ../js/ui/telepathyClient.js:986
#, no-c-format
msgid "Sent at <b>%X</b> on <b>%A</b>"
msgstr "Изпратено в <b>%X</b> на <b>%A</b>"
#. Translators: this is a time format in the style of "Wednesday, May 25",
#. shown when you get a chat message in the same year.
#: ../js/ui/telepathyClient.js:984
#: ../js/ui/telepathyClient.js:992
#, no-c-format
msgid "Sent on <b>%A</b>, <b>%B %d</b>"
msgstr "Изпратено на <b>%3$d %2$B</b>, <b>%1$A</b>"
#. Translators: this is a time format in the style of "Wednesday, May 25, 2012",
#. shown when you get a chat message in a different year.
#: ../js/ui/telepathyClient.js:989
#: ../js/ui/telepathyClient.js:997
#, no-c-format
msgid "Sent on <b>%A</b>, <b>%B %d</b>, %Y"
msgstr "Изпратено на <b>%3$d %2$B %4$Y</b>, <b>%1$A</b>"
#. Translators: this is the other person changing their old IM name to their new
#. IM name.
#: ../js/ui/telepathyClient.js:1031
#: ../js/ui/telepathyClient.js:1039
#, c-format
msgid "%s is now known as %s"
msgstr "%s в момента е познат като %s"
#. translators: argument is a room name like
#. * room@jabber.org for example.
#: ../js/ui/telepathyClient.js:1140
#: ../js/ui/telepathyClient.js:1148
#, c-format
msgid "Invitation to %s"
msgstr "Покана за присъединяване към %s"
@ -1312,34 +1328,35 @@ msgstr "Покана за присъединяване към %s"
#. 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
#. * for example.
#: ../js/ui/telepathyClient.js:1148
#: ../js/ui/telepathyClient.js:1156
#, c-format
msgid "%s is inviting you to join %s"
msgstr "%s ви кани да се присъедините към %s"
#: ../js/ui/telepathyClient.js:1150 ../js/ui/telepathyClient.js:1239
#: ../js/ui/telepathyClient.js:1343
#: ../js/ui/telepathyClient.js:1158 ../js/ui/telepathyClient.js:1248
#: ../js/ui/telepathyClient.js:1352
msgid "Decline"
msgstr "Отклоняване"
#: ../js/ui/telepathyClient.js:1151 ../js/ui/telepathyClient.js:1240
#: ../js/ui/telepathyClient.js:1344
#: ../js/ui/telepathyClient.js:1159 ../js/ui/telepathyClient.js:1249
#: ../js/ui/telepathyClient.js:1353
msgid "Accept"
msgstr "Приемане"
#. translators: argument is a contact name like Alice for example.
#: ../js/ui/telepathyClient.js:1184
#: ../js/ui/telepathyClient.js:1192
#, c-format
msgid "Video call from %s"
msgstr "Видео разговор от %s"
#. translators: argument is a contact name like Alice for example.
#: ../js/ui/telepathyClient.js:1187
#: ../js/ui/telepathyClient.js:1195
#, c-format
msgid "Call from %s"
msgstr "Повикване от %s"
#: ../js/ui/telepathyClient.js:1197
#. translators: this is a button label (verb), not a noun
#: ../js/ui/telepathyClient.js:1206
msgid "Answer"
msgstr "Отговор"
@ -1348,109 +1365,109 @@ msgstr "Отговор"
#. * file name. The string will be something
#. * like: "Alice is sending you test.ogg"
#.
#: ../js/ui/telepathyClient.js:1233
#: ../js/ui/telepathyClient.js:1242
#, c-format
msgid "%s is sending you %s"
msgstr "%s ви праща „%s“"
#. To translators: The parameter is the contact's alias
#: ../js/ui/telepathyClient.js:1308
#: ../js/ui/telepathyClient.js:1317
#, c-format
msgid "%s would like permission to see when you are online"
msgstr "%s иска разрешение да вижда дали сте в мрежата"
#: ../js/ui/telepathyClient.js:1406
#: ../js/ui/telepathyClient.js:1415
msgid "Network error"
msgstr "Мрежова грешка"
#: ../js/ui/telepathyClient.js:1408
#: ../js/ui/telepathyClient.js:1417
msgid "Authentication failed"
msgstr "Неуспешно идентифициране"
#: ../js/ui/telepathyClient.js:1410
#: ../js/ui/telepathyClient.js:1419
msgid "Encryption error"
msgstr "Грешка в шифрирането"
#: ../js/ui/telepathyClient.js:1412
#: ../js/ui/telepathyClient.js:1421
msgid "Certificate not provided"
msgstr "Не е предоставен сертификат"
#: ../js/ui/telepathyClient.js:1414
#: ../js/ui/telepathyClient.js:1423
msgid "Certificate untrusted"
msgstr "Сертификатът не е доверен"
#: ../js/ui/telepathyClient.js:1416
#: ../js/ui/telepathyClient.js:1425
msgid "Certificate expired"
msgstr "Сертификатът е изтекъл"
#: ../js/ui/telepathyClient.js:1418
#: ../js/ui/telepathyClient.js:1427
msgid "Certificate not activated"
msgstr "Сертификатът не е влязъл в сила"
#: ../js/ui/telepathyClient.js:1420
#: ../js/ui/telepathyClient.js:1429
msgid "Certificate hostname mismatch"
msgstr "Несъвпадане на името с това в сертификата"
#: ../js/ui/telepathyClient.js:1422
#: ../js/ui/telepathyClient.js:1431
msgid "Certificate fingerprint mismatch"
msgstr "Несъвпадане на отпечатъка на сертификата"
#: ../js/ui/telepathyClient.js:1424
#: ../js/ui/telepathyClient.js:1433
msgid "Certificate self-signed"
msgstr "Сертификатът е самоподписан"
#: ../js/ui/telepathyClient.js:1426
#: ../js/ui/telepathyClient.js:1435
msgid "Status is set to offline"
msgstr "Състоянието е „Извън мрежата“."
#: ../js/ui/telepathyClient.js:1428
#: ../js/ui/telepathyClient.js:1437
msgid "Encryption is not available"
msgstr "Не е налично шифриране"
#: ../js/ui/telepathyClient.js:1430
#: ../js/ui/telepathyClient.js:1439
msgid "Certificate is invalid"
msgstr "Сертификатът е неправилен"
#: ../js/ui/telepathyClient.js:1432
#: ../js/ui/telepathyClient.js:1441
msgid "Connection has been refused"
msgstr "Връзката е отказана"
#: ../js/ui/telepathyClient.js:1434
#: ../js/ui/telepathyClient.js:1443
msgid "Connection can't be established"
msgstr "Не може да се установи връзка"
#: ../js/ui/telepathyClient.js:1436
#: ../js/ui/telepathyClient.js:1445
msgid "Connection has been lost"
msgstr "Връзката прекъсна"
#: ../js/ui/telepathyClient.js:1438
#: ../js/ui/telepathyClient.js:1447
msgid "This resource is already connected to the server"
msgstr "Ресурсът вече е свързан към сървъра"
#: ../js/ui/telepathyClient.js:1440
#: ../js/ui/telepathyClient.js:1449
msgid ""
"Connection has been replaced by a new connection using the same resource"
msgstr "Връзката бе заместена от нова връзка, използваща същия ресурс"
#: ../js/ui/telepathyClient.js:1442
#: ../js/ui/telepathyClient.js:1451
msgid "The account already exists on the server"
msgstr "На сървъра вече има регистрация с такова име."
#: ../js/ui/telepathyClient.js:1444
#: ../js/ui/telepathyClient.js:1453
msgid "Server is currently too busy to handle the connection"
msgstr ""
"В момента сървърът е твърде натоварен, за да обработи заявката за свързване"
#: ../js/ui/telepathyClient.js:1446
#: ../js/ui/telepathyClient.js:1455
msgid "Certificate has been revoked"
msgstr "Сертификатът е анулиран"
#: ../js/ui/telepathyClient.js:1448
#: ../js/ui/telepathyClient.js:1457
msgid ""
"Certificate uses an insecure cipher algorithm or is cryptographically weak"
msgstr "Сертификатът използва несигурен шифър или слаб алгоритъм за шифриране"
#: ../js/ui/telepathyClient.js:1450
#: ../js/ui/telepathyClient.js:1459
msgid ""
"The length of the server certificate, or the depth of the server certificate "
"chain, exceed the limits imposed by the cryptography library"
@ -1460,20 +1477,20 @@ msgstr ""
#. translators: argument is the account name, like
#. * name@jabber.org for example.
#: ../js/ui/telepathyClient.js:1459
#: ../js/ui/telepathyClient.js:1468
#, c-format
msgid "Connection to %s failed"
msgstr "Връзката е към „%s“ е неуспешна"
#: ../js/ui/telepathyClient.js:1468
#: ../js/ui/telepathyClient.js:1477
msgid "Reconnect"
msgstr "Ново свързване"
#: ../js/ui/telepathyClient.js:1469
#: ../js/ui/telepathyClient.js:1478
msgid "Edit account"
msgstr "Редактиране на регистрацията"
#: ../js/ui/telepathyClient.js:1515
#: ../js/ui/telepathyClient.js:1524
msgid "Unknown reason"
msgstr "Неизвестна причина"
@ -1489,39 +1506,39 @@ msgstr "Бездействие"
msgid "Unavailable"
msgstr "Недостъпно"
#: ../js/ui/userMenu.js:512 ../js/ui/userMenu.js:516 ../js/ui/userMenu.js:586
#: ../js/ui/userMenu.js:552 ../js/ui/userMenu.js:556 ../js/ui/userMenu.js:626
msgid "Power Off..."
msgstr "Изключване..."
#: ../js/ui/userMenu.js:548
#: ../js/ui/userMenu.js:588
msgid "Notifications"
msgstr "Известяване"
#: ../js/ui/userMenu.js:556
#: ../js/ui/userMenu.js:596
msgid "Online Accounts"
msgstr "Мрежови регистрации"
#: ../js/ui/userMenu.js:560
#: ../js/ui/userMenu.js:600
msgid "System Settings"
msgstr "Настройки на системата"
#: ../js/ui/userMenu.js:567
#: ../js/ui/userMenu.js:607
msgid "Lock Screen"
msgstr "Заключване на екрана"
#: ../js/ui/userMenu.js:572
#: ../js/ui/userMenu.js:612
msgid "Switch User"
msgstr "Смяна на потребител"
#: ../js/ui/userMenu.js:577
#: ../js/ui/userMenu.js:617
msgid "Log Out..."
msgstr "Изход…"
#: ../js/ui/userMenu.js:605
#: ../js/ui/userMenu.js:645
msgid "Your chat status will be set to busy"
msgstr "Състоянието ви ще се зададе да е „Зает“"
#: ../js/ui/userMenu.js:606
#: ../js/ui/userMenu.js:646
msgid ""
"Notifications are now disabled, including chat messages. Your online status "
"has been adjusted to let others know that you might not see their messages."
@ -1534,20 +1551,15 @@ msgstr ""
#. in the search entry when no search is
#. active; it should not exceed ~30
#. characters.
#: ../js/ui/viewSelector.js:120
#: ../js/ui/viewSelector.js:121
msgid "Type to search..."
msgstr "Търсене на написаното…"
#: ../js/ui/viewSelector.js:140 ../src/shell-util.c:261
#: ../js/ui/viewSelector.js:142 ../src/shell-util.c:261
msgid "Search"
msgstr "Търсене"
#: ../js/ui/windowAttentionHandler.js:39
#, c-format
msgid "%s has finished starting"
msgstr "Програмата „%s“ стартира успешно"
#: ../js/ui/windowAttentionHandler.js:41
#: ../js/ui/windowAttentionHandler.js:35
#, c-format
msgid "'%s' is ready"
msgstr "Програмата „%s“ е готова за употреба"
@ -1582,7 +1594,7 @@ msgstr "Показване на версията"
msgid "Mode used by GDM for login screen"
msgstr "Режим използван от GDM за екрана за влизане"
#: ../src/shell-app.c:581
#: ../src/shell-app.c:579
#, c-format
msgid "Failed to launch '%s'"
msgstr "Неуспех при стартиране на „%s“"

291
po/ca.po
View File

@ -8,10 +8,10 @@ msgid ""
msgstr ""
"Project-Id-Version: HEAD\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2011-09-22 19:53+0200\n"
"PO-Revision-Date: 2011-09-22 19:53+0200\n"
"POT-Creation-Date: 2011-10-23 23:42+0200\n"
"PO-Revision-Date: 2011-10-23 23:41+0200\n"
"Last-Translator: Gil Forcada <gilforcada@guifi.net>\n"
"Language-Team: català; valencià <tradgnome@softcatala.org>\n"
"Language-Team: Catalan <tradgnome@softcatala.org>\n"
"Language: ca\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@ -187,42 +187,42 @@ msgstr "Quin tipus de teclat s'ha d'utilitzar"
msgid "disabled OpenSearch providers"
msgstr "inhabilita els proveïdors d'OpenSearch"
#: ../js/gdm/loginDialog.js:617
#: ../js/gdm/loginDialog.js:633
msgid "Session..."
msgstr "Sessió..."
#: ../js/gdm/loginDialog.js:785
#: ../js/gdm/loginDialog.js:804
msgctxt "title"
msgid "Sign In"
msgstr "Entrada"
#. translators: this message is shown below the password entry field
#. to indicate the user can swipe their finger instead
#: ../js/gdm/loginDialog.js:830
#: ../js/gdm/loginDialog.js:849
msgid "(or swipe finger)"
msgstr "(o passeu el dit)"
#: ../js/gdm/loginDialog.js:848
#: ../js/gdm/loginDialog.js:867
msgid "Not listed?"
msgstr "No esteu llistat?"
#: ../js/gdm/loginDialog.js:1004 ../js/ui/endSessionDialog.js:426
#: ../js/ui/extensionSystem.js:477 ../js/ui/networkAgent.js:165
#: ../js/ui/polkitAuthenticationAgent.js:171 ../js/ui/status/bluetooth.js:480
#: ../js/gdm/loginDialog.js:1035 ../js/ui/endSessionDialog.js:426
#: ../js/ui/extensionSystem.js:477 ../js/ui/networkAgent.js:148
#: ../js/ui/polkitAuthenticationAgent.js:173 ../js/ui/status/bluetooth.js:480
msgid "Cancel"
msgstr "Cancel·la"
#: ../js/gdm/loginDialog.js:1009
#: ../js/gdm/loginDialog.js:1040
msgctxt "button"
msgid "Sign In"
msgstr "Entra"
#: ../js/gdm/loginDialog.js:1358
#: ../js/gdm/loginDialog.js:1392
msgid "Login Window"
msgstr "Finestra d'entrada"
#: ../js/gdm/powerMenu.js:116 ../js/ui/userMenu.js:514
#: ../js/ui/userMenu.js:516 ../js/ui/userMenu.js:585
#: ../js/gdm/powerMenu.js:116 ../js/ui/userMenu.js:554
#: ../js/ui/userMenu.js:556 ../js/ui/userMenu.js:625
msgid "Suspend"
msgstr "Atura temporalment"
@ -445,32 +445,32 @@ msgstr "Aquesta setmana"
msgid "Next week"
msgstr "La setmana que ve"
#: ../js/ui/contactDisplay.js:59 ../js/ui/notificationDaemon.js:444
#: ../js/ui/status/power.js:223 ../src/shell-app.c:355
#: ../js/ui/contactDisplay.js:65 ../js/ui/notificationDaemon.js:459
#: ../js/ui/status/power.js:223 ../src/shell-app.c:353
msgid "Unknown"
msgstr "Desconegut"
#: ../js/ui/contactDisplay.js:80 ../js/ui/userMenu.js:139
#: ../js/ui/contactDisplay.js:86 ../js/ui/userMenu.js:139
msgid "Available"
msgstr "Disponible"
#: ../js/ui/contactDisplay.js:85 ../js/ui/userMenu.js:148
#: ../js/ui/contactDisplay.js:91 ../js/ui/userMenu.js:148
msgid "Away"
msgstr "Absent"
#: ../js/ui/contactDisplay.js:89 ../js/ui/userMenu.js:142
#: ../js/ui/contactDisplay.js:95 ../js/ui/userMenu.js:142
msgid "Busy"
msgstr "Ocupat"
#: ../js/ui/contactDisplay.js:93
#: ../js/ui/contactDisplay.js:99
msgid "Offline"
msgstr "Fora de línia"
#: ../js/ui/contactDisplay.js:140
#: ../js/ui/contactDisplay.js:146
msgid "CONTACTS"
msgstr "Contactes"
#: ../js/ui/dash.js:172 ../js/ui/messageTray.js:1204
#: ../js/ui/dash.js:174 ../js/ui/messageTray.js:1206
msgid "Remove"
msgstr "Suprimeix"
@ -604,96 +604,96 @@ msgstr "Instal·la"
msgid "Download and install '%s' from extensions.gnome.org?"
msgstr "Voleu baixar i instal·lar «%s» de extensions.gnome.org?"
#: ../js/ui/keyboard.js:517 ../js/ui/status/power.js:211
#: ../js/ui/keyboard.js:325
msgid "tray"
msgstr "safata"
#: ../js/ui/keyboard.js:547 ../js/ui/status/power.js:211
msgid "Keyboard"
msgstr "Teclat"
#: ../js/ui/lookingGlass.js:645
#: ../js/ui/lookingGlass.js:646
msgid "No extensions installed"
msgstr "No hi ha cap extensió instal·lada"
#: ../js/ui/lookingGlass.js:691
#: ../js/ui/lookingGlass.js:692
msgid "Enabled"
msgstr "Habilitat"
#. translators:
#. * The device has been disabled
#: ../js/ui/lookingGlass.js:693 ../src/gvc/gvc-mixer-control.c:1093
#: ../js/ui/lookingGlass.js:694 ../src/gvc/gvc-mixer-control.c:1093
msgid "Disabled"
msgstr "Inhabilitat"
#: ../js/ui/lookingGlass.js:695
#: ../js/ui/lookingGlass.js:696
msgid "Error"
msgstr "Error"
#: ../js/ui/lookingGlass.js:697
#: ../js/ui/lookingGlass.js:698
msgid "Out of date"
msgstr "Fora d'hora"
#: ../js/ui/lookingGlass.js:699
#: ../js/ui/lookingGlass.js:700
msgid "Downloading"
msgstr "S'està baixant"
#: ../js/ui/lookingGlass.js:724
#: ../js/ui/lookingGlass.js:721
msgid "View Source"
msgstr "Mostra el codi font"
#: ../js/ui/lookingGlass.js:730
#: ../js/ui/lookingGlass.js:727
msgid "Web Page"
msgstr "Pàgina web"
#: ../js/ui/messageTray.js:1197
#: ../js/ui/messageTray.js:1199
msgid "Open"
msgstr "Obre"
#: ../js/ui/messageTray.js:2379
#: ../js/ui/messageTray.js:2408
msgid "System Information"
msgstr "Informació de l'ordinador"
#: ../js/ui/networkAgent.js:145
msgid "Show password"
msgstr "Mostra la contrasenya"
#: ../js/ui/networkAgent.js:160
#: ../js/ui/networkAgent.js:143
msgid "Connect"
msgstr "Connecta"
#. Cisco LEAP
#: ../js/ui/networkAgent.js:255 ../js/ui/networkAgent.js:267
#: ../js/ui/networkAgent.js:294 ../js/ui/networkAgent.js:314
#: ../js/ui/networkAgent.js:324
#: ../js/ui/networkAgent.js:238 ../js/ui/networkAgent.js:250
#: ../js/ui/networkAgent.js:277 ../js/ui/networkAgent.js:297
#: ../js/ui/networkAgent.js:307
msgid "Password: "
msgstr "Contrasenya:"
#. static WEP
#: ../js/ui/networkAgent.js:260
#: ../js/ui/networkAgent.js:243
msgid "Key: "
msgstr "Clau:"
#. TTLS and PEAP are actually much more complicated, but this complication
#. is not visible here since we only care about phase2 authentication
#. (and don't even care of which one)
#: ../js/ui/networkAgent.js:292 ../js/ui/networkAgent.js:310
#: ../js/ui/networkAgent.js:275 ../js/ui/networkAgent.js:293
msgid "Username: "
msgstr "Nom d'usuari:"
#: ../js/ui/networkAgent.js:298
#: ../js/ui/networkAgent.js:281
msgid "Identity: "
msgstr "Identitat:"
#: ../js/ui/networkAgent.js:300
#: ../js/ui/networkAgent.js:283
msgid "Private key password: "
msgstr "Contrasenya de la clau privada:"
#: ../js/ui/networkAgent.js:312
#: ../js/ui/networkAgent.js:295
msgid "Service: "
msgstr "Servei:"
#: ../js/ui/networkAgent.js:341
#: ../js/ui/networkAgent.js:324
msgid "Authentication required by wireless network"
msgstr "La xarxa sense fil requereix autenticació"
#: ../js/ui/networkAgent.js:342
#: ../js/ui/networkAgent.js:325
#, c-format
msgid ""
"Passwords or encryption keys are required to access the wireless network "
@ -702,35 +702,35 @@ msgstr ""
"Per accedir a la xarxa sense fil «%s» calen les contrasenyes o les claus "
"d'encriptació."
#: ../js/ui/networkAgent.js:346
#: ../js/ui/networkAgent.js:329
msgid "Wired 802.1X authentication"
msgstr "Autenticació 802.1X amb fil"
#: ../js/ui/networkAgent.js:348
#: ../js/ui/networkAgent.js:331
msgid "Network name: "
msgstr "Nom de la xarxa: "
#: ../js/ui/networkAgent.js:353
#: ../js/ui/networkAgent.js:336
msgid "DSL authentication"
msgstr "Autenticació DSL"
#: ../js/ui/networkAgent.js:360
#: ../js/ui/networkAgent.js:343
msgid "PIN code required"
msgstr "Cal que introduïu el codi PIN"
#: ../js/ui/networkAgent.js:361
#: ../js/ui/networkAgent.js:344
msgid "PIN code is needed for the mobile broadband device"
msgstr "Cal que introduïu el codi PIN del dispositiu de banda ampla mòbil"
#: ../js/ui/networkAgent.js:362
#: ../js/ui/networkAgent.js:345
msgid "PIN: "
msgstr "PIN: "
#: ../js/ui/networkAgent.js:368
#: ../js/ui/networkAgent.js:351
msgid "Mobile broadband network password"
msgstr "Contrasenya de la xarxa de banda ampla mòbil"
#: ../js/ui/networkAgent.js:369
#: ../js/ui/networkAgent.js:352
#, c-format
msgid "A password is required to connect to '%s'."
msgstr "Cal que introduïu una contrasenya per connectar-vos a «%s»."
@ -786,15 +786,15 @@ msgstr "Connecta a..."
msgid "PLACES & DEVICES"
msgstr "LLOCS I DISPOSITIUS"
#: ../js/ui/polkitAuthenticationAgent.js:72
#: ../js/ui/polkitAuthenticationAgent.js:73
msgid "Authentication Required"
msgstr "Cal autenticació"
#: ../js/ui/polkitAuthenticationAgent.js:106
#: ../js/ui/polkitAuthenticationAgent.js:107
msgid "Administrator"
msgstr "Administrador"
#: ../js/ui/polkitAuthenticationAgent.js:175
#: ../js/ui/polkitAuthenticationAgent.js:177
msgid "Authenticate"
msgstr "Autentica"
@ -802,11 +802,11 @@ msgstr "Autentica"
#. * requested authentication was not gained; this can happen
#. * because of an authentication error (like invalid password),
#. * for instance.
#: ../js/ui/polkitAuthenticationAgent.js:256
#: ../js/ui/polkitAuthenticationAgent.js:258
msgid "Sorry, that didn't work. Please try again."
msgstr "No ha funcionat. Torneu-ho a provar."
#: ../js/ui/polkitAuthenticationAgent.js:268
#: ../js/ui/polkitAuthenticationAgent.js:270
msgid "Password:"
msgstr "Contrasenya:"
@ -815,11 +815,11 @@ msgstr "Contrasenya:"
#. "ON" and "OFF") or "toggle-switch-intl" (for toggle
#. switches containing "◯" and "|"). Other values will
#. simply result in invisible toggle switches.
#: ../js/ui/popupMenu.js:727
#: ../js/ui/popupMenu.js:731
msgid "toggle-switch-us"
msgstr "toggle-switch-intl"
#: ../js/ui/runDialog.js:208
#: ../js/ui/runDialog.js:209
msgid "Please enter a command:"
msgstr "Introduïu una ordre:"
@ -831,6 +831,22 @@ msgstr "S'està cercant..."
msgid "No matching results."
msgstr "No s'ha trobat cap coincidència."
#: ../js/ui/shellEntry.js:30
msgid "Copy"
msgstr "Copia"
#: ../js/ui/shellEntry.js:35
msgid "Paste"
msgstr "Enganxa"
#: ../js/ui/shellEntry.js:81
msgid "Show Text"
msgstr "Mostra el text"
#: ../js/ui/shellEntry.js:83
msgid "Hide Text"
msgstr "Oculta el text"
#: ../js/ui/shellMountOperation.js:285
msgid "Wrong password, please try again"
msgstr "La contrasenya és errònia, torneu-ho a intentar"
@ -964,7 +980,7 @@ msgstr "Permet l'accés sempre"
msgid "Grant this time only"
msgstr "Permet-ho només ara"
#: ../js/ui/status/bluetooth.js:392 ../js/ui/telepathyClient.js:1196
#: ../js/ui/status/bluetooth.js:392 ../js/ui/telepathyClient.js:1204
msgid "Reject"
msgstr "Rebutja"
@ -1233,39 +1249,39 @@ msgid "Invitation"
msgstr "Invitació"
#. We got the TpContact
#: ../js/ui/telepathyClient.js:325
#: ../js/ui/telepathyClient.js:327
msgid "Call"
msgstr "Trucada"
#. We got the TpContact
#: ../js/ui/telepathyClient.js:353
#: ../js/ui/telepathyClient.js:357
msgid "File Transfer"
msgstr "Transferència de fitxers"
#: ../js/ui/telepathyClient.js:434
#: ../js/ui/telepathyClient.js:438
msgid "Subscription request"
msgstr "Teniu una petició de subscripció"
#: ../js/ui/telepathyClient.js:470
#: ../js/ui/telepathyClient.js:474
msgid "Connection error"
msgstr "S'ha produït un error de connexió"
#: ../js/ui/telepathyClient.js:733
#: ../js/ui/telepathyClient.js:741
#, c-format
msgid "%s is online."
msgstr "%s és en línia."
#: ../js/ui/telepathyClient.js:738
#: ../js/ui/telepathyClient.js:746
#, c-format
msgid "%s is offline."
msgstr "%s no hi és."
#: ../js/ui/telepathyClient.js:741
#: ../js/ui/telepathyClient.js:749
#, c-format
msgid "%s is away."
msgstr "%s és lluny."
#: ../js/ui/telepathyClient.js:744
#: ../js/ui/telepathyClient.js:752
#, c-format
msgid "%s is busy."
msgstr "%s està ocupat."
@ -1273,35 +1289,35 @@ msgstr "%s està ocupat."
#. Translators: this is a time format string followed by a date.
#. If applicable, replace %X with a strftime format valid for your
#. locale, without seconds.
#: ../js/ui/telepathyClient.js:978
#: ../js/ui/telepathyClient.js:986
#, no-c-format
msgid "Sent at <b>%X</b> on <b>%A</b>"
msgstr "Enviat a les <b>%X</b> del <b>%A</b>"
#. Translators: this is a time format in the style of "Wednesday, May 25",
#. shown when you get a chat message in the same year.
#: ../js/ui/telepathyClient.js:984
#: ../js/ui/telepathyClient.js:992
#, no-c-format
msgid "Sent on <b>%A</b>, <b>%B %d</b>"
msgstr "Enviat el <b>%A %d de %B</b>"
#. Translators: this is a time format in the style of "Wednesday, May 25, 2012",
#. shown when you get a chat message in a different year.
#: ../js/ui/telepathyClient.js:989
#: ../js/ui/telepathyClient.js:997
#, no-c-format
msgid "Sent on <b>%A</b>, <b>%B %d</b>, %Y"
msgstr "Enviat el <b>%A %d de %B</b> de %Y"
#. Translators: this is the other person changing their old IM name to their new
#. IM name.
#: ../js/ui/telepathyClient.js:1031
#: ../js/ui/telepathyClient.js:1039
#, c-format
msgid "%s is now known as %s"
msgstr "En/na %s ara es diu %s"
#. translators: argument is a room name like
#. * room@jabber.org for example.
#: ../js/ui/telepathyClient.js:1140
#: ../js/ui/telepathyClient.js:1148
#, c-format
msgid "Invitation to %s"
msgstr "Us han convidat a entrar a %s"
@ -1309,34 +1325,35 @@ msgstr "Us han convidat a entrar a %s"
#. 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
#. * for example.
#: ../js/ui/telepathyClient.js:1148
#: ../js/ui/telepathyClient.js:1156
#, c-format
msgid "%s is inviting you to join %s"
msgstr "En/na %s us convida a entrar a %s"
#: ../js/ui/telepathyClient.js:1150 ../js/ui/telepathyClient.js:1239
#: ../js/ui/telepathyClient.js:1343
#: ../js/ui/telepathyClient.js:1158 ../js/ui/telepathyClient.js:1248
#: ../js/ui/telepathyClient.js:1352
msgid "Decline"
msgstr "Declina"
#: ../js/ui/telepathyClient.js:1151 ../js/ui/telepathyClient.js:1240
#: ../js/ui/telepathyClient.js:1344
#: ../js/ui/telepathyClient.js:1159 ../js/ui/telepathyClient.js:1249
#: ../js/ui/telepathyClient.js:1353
msgid "Accept"
msgstr "Accepta"
#. translators: argument is a contact name like Alice for example.
#: ../js/ui/telepathyClient.js:1184
#: ../js/ui/telepathyClient.js:1192
#, c-format
msgid "Video call from %s"
msgstr "Videotrucada de %s"
#. translators: argument is a contact name like Alice for example.
#: ../js/ui/telepathyClient.js:1187
#: ../js/ui/telepathyClient.js:1195
#, c-format
msgid "Call from %s"
msgstr "Trucada de %s"
#: ../js/ui/telepathyClient.js:1197
#. translators: this is a button label (verb), not a noun
#: ../js/ui/telepathyClient.js:1206
msgid "Answer"
msgstr "Contesta"
@ -1345,112 +1362,112 @@ msgstr "Contesta"
#. * file name. The string will be something
#. * like: "Alice is sending you test.ogg"
#.
#: ../js/ui/telepathyClient.js:1233
#: ../js/ui/telepathyClient.js:1242
#, c-format
msgid "%s is sending you %s"
msgstr "En/na %s us envia %s"
#. To translators: The parameter is the contact's alias
#: ../js/ui/telepathyClient.js:1308
#: ../js/ui/telepathyClient.js:1317
#, c-format
msgid "%s would like permission to see when you are online"
msgstr "%s vol poder saber quan esteu en línia"
#: ../js/ui/telepathyClient.js:1406
#: ../js/ui/telepathyClient.js:1415
msgid "Network error"
msgstr "Error de la xarxa"
#: ../js/ui/telepathyClient.js:1408
#: ../js/ui/telepathyClient.js:1417
msgid "Authentication failed"
msgstr "Ha fallat l'autenticació"
#: ../js/ui/telepathyClient.js:1410
#: ../js/ui/telepathyClient.js:1419
msgid "Encryption error"
msgstr "Error d'encriptació"
#: ../js/ui/telepathyClient.js:1412
#: ../js/ui/telepathyClient.js:1421
msgid "Certificate not provided"
msgstr "No s'ha proporcionat el certificat"
#: ../js/ui/telepathyClient.js:1414
#: ../js/ui/telepathyClient.js:1423
msgid "Certificate untrusted"
msgstr "El certificat no és de confiança"
#: ../js/ui/telepathyClient.js:1416
#: ../js/ui/telepathyClient.js:1425
msgid "Certificate expired"
msgstr "El certificat ha vençut"
#: ../js/ui/telepathyClient.js:1418
#: ../js/ui/telepathyClient.js:1427
msgid "Certificate not activated"
msgstr "El certificat no està activat"
#: ../js/ui/telepathyClient.js:1420
#: ../js/ui/telepathyClient.js:1429
msgid "Certificate hostname mismatch"
msgstr "No coincideix el nom de la màquina del certificat"
#: ../js/ui/telepathyClient.js:1422
#: ../js/ui/telepathyClient.js:1431
msgid "Certificate fingerprint mismatch"
msgstr "No coincideix l'empremta digital del certificat"
#: ../js/ui/telepathyClient.js:1424
#: ../js/ui/telepathyClient.js:1433
msgid "Certificate self-signed"
msgstr "Certificat signat per un mateix"
#: ../js/ui/telepathyClient.js:1426
#: ../js/ui/telepathyClient.js:1435
msgid "Status is set to offline"
msgstr "S'ha establert l'estat a fora de línia"
#: ../js/ui/telepathyClient.js:1428
#: ../js/ui/telepathyClient.js:1437
msgid "Encryption is not available"
msgstr "L'encriptació no està disponible"
#: ../js/ui/telepathyClient.js:1430
#: ../js/ui/telepathyClient.js:1439
msgid "Certificate is invalid"
msgstr "El certificat no és vàlid"
#: ../js/ui/telepathyClient.js:1432
#: ../js/ui/telepathyClient.js:1441
msgid "Connection has been refused"
msgstr "S'ha rebutjat la connexió"
#: ../js/ui/telepathyClient.js:1434
#: ../js/ui/telepathyClient.js:1443
msgid "Connection can't be established"
msgstr "No es pot establir la connexió"
#: ../js/ui/telepathyClient.js:1436
#: ../js/ui/telepathyClient.js:1445
msgid "Connection has been lost"
msgstr "S'ha perdut la connexió"
#: ../js/ui/telepathyClient.js:1438
#: ../js/ui/telepathyClient.js:1447
msgid "This resource is already connected to the server"
msgstr "Aquest recurs ja està connectat al servidor"
#: ../js/ui/telepathyClient.js:1440
#: ../js/ui/telepathyClient.js:1449
msgid ""
"Connection has been replaced by a new connection using the same resource"
msgstr ""
"S'ha reemplaçat la connexió per una altra de nova fent servir el mateix "
"recurs"
#: ../js/ui/telepathyClient.js:1442
#: ../js/ui/telepathyClient.js:1451
msgid "The account already exists on the server"
msgstr "Ja existeix aquest compte al servidor"
#: ../js/ui/telepathyClient.js:1444
#: ../js/ui/telepathyClient.js:1453
msgid "Server is currently too busy to handle the connection"
msgstr "El servidor està massa ocupat per gestionar la connexió"
#: ../js/ui/telepathyClient.js:1446
#: ../js/ui/telepathyClient.js:1455
msgid "Certificate has been revoked"
msgstr "S'ha revocat el certificat"
#: ../js/ui/telepathyClient.js:1448
#: ../js/ui/telepathyClient.js:1457
msgid ""
"Certificate uses an insecure cipher algorithm or is cryptographically weak"
msgstr ""
"El certificat utilitza un algorisme criptògraf no segur o la seva fortalesa "
"criptogràfica és feble"
#: ../js/ui/telepathyClient.js:1450
#: ../js/ui/telepathyClient.js:1459
msgid ""
"The length of the server certificate, or the depth of the server certificate "
"chain, exceed the limits imposed by the cryptography library"
@ -1460,20 +1477,20 @@ msgstr ""
#. translators: argument is the account name, like
#. * name@jabber.org for example.
#: ../js/ui/telepathyClient.js:1459
#: ../js/ui/telepathyClient.js:1468
#, c-format
msgid "Connection to %s failed"
msgstr "Ha fallat la connexió a %s"
#: ../js/ui/telepathyClient.js:1468
#: ../js/ui/telepathyClient.js:1477
msgid "Reconnect"
msgstr "Torna a connectar"
#: ../js/ui/telepathyClient.js:1469
#: ../js/ui/telepathyClient.js:1478
msgid "Edit account"
msgstr "Edita el compte"
#: ../js/ui/telepathyClient.js:1515
#: ../js/ui/telepathyClient.js:1524
msgid "Unknown reason"
msgstr "Motiu desconegut"
@ -1489,39 +1506,39 @@ msgstr "Inactiu"
msgid "Unavailable"
msgstr "No disponible"
#: ../js/ui/userMenu.js:512 ../js/ui/userMenu.js:516 ../js/ui/userMenu.js:586
#: ../js/ui/userMenu.js:552 ../js/ui/userMenu.js:556 ../js/ui/userMenu.js:626
msgid "Power Off..."
msgstr "Apaga..."
#: ../js/ui/userMenu.js:548
#: ../js/ui/userMenu.js:588
msgid "Notifications"
msgstr "Notificacions"
#: ../js/ui/userMenu.js:556
#: ../js/ui/userMenu.js:596
msgid "Online Accounts"
msgstr "Comptes en línia"
#: ../js/ui/userMenu.js:560
#: ../js/ui/userMenu.js:600
msgid "System Settings"
msgstr "Paràmetres de l'ordinador"
#: ../js/ui/userMenu.js:567
#: ../js/ui/userMenu.js:607
msgid "Lock Screen"
msgstr "Bloca la pantalla"
#: ../js/ui/userMenu.js:572
#: ../js/ui/userMenu.js:612
msgid "Switch User"
msgstr "Canvia d'usuari"
#: ../js/ui/userMenu.js:577
#: ../js/ui/userMenu.js:617
msgid "Log Out..."
msgstr "Surt..."
#: ../js/ui/userMenu.js:605
#: ../js/ui/userMenu.js:645
msgid "Your chat status will be set to busy"
msgstr "L'estat del xat s'establirà a ocupat"
#: ../js/ui/userMenu.js:606
#: ../js/ui/userMenu.js:646
msgid ""
"Notifications are now disabled, including chat messages. Your online status "
"has been adjusted to let others know that you might not see their messages."
@ -1534,20 +1551,15 @@ msgstr ""
#. in the search entry when no search is
#. active; it should not exceed ~30
#. characters.
#: ../js/ui/viewSelector.js:120
#: ../js/ui/viewSelector.js:121
msgid "Type to search..."
msgstr "Teclegeu per cercar..."
#: ../js/ui/viewSelector.js:140 ../src/shell-util.c:261
#: ../js/ui/viewSelector.js:142 ../src/shell-util.c:261
msgid "Search"
msgstr "Cerca"
#: ../js/ui/windowAttentionHandler.js:39
#, c-format
msgid "%s has finished starting"
msgstr "S'ha acabat d'iniciar %s"
#: ../js/ui/windowAttentionHandler.js:41
#: ../js/ui/windowAttentionHandler.js:35
#, c-format
msgid "'%s' is ready"
msgstr "«%s» ja està a punt"
@ -1582,7 +1594,7 @@ msgstr "Mostra la versió"
msgid "Mode used by GDM for login screen"
msgstr "El mode que utilitzarà el GDM per a la pantalla d'entrada"
#: ../src/shell-app.c:581
#: ../src/shell-app.c:579
#, c-format
msgid "Failed to launch '%s'"
msgstr "No s'ha pogut iniciar «%s»"
@ -1619,6 +1631,21 @@ msgstr "Sistema de fitxers"
msgid "%1$s: %2$s"
msgstr "%1$s: %2$s"
#~ msgid "Show password"
#~ msgstr "Mostra la contrasenya"
#~ msgid "%s has not emitted any errors."
#~ msgstr "%s no ha emès cap error."
#~ msgid "Hide Errors"
#~ msgstr "Amaga els errors"
#~ msgid "Show Errors"
#~ msgstr "Mostra els errors"
#~ msgid "%s has finished starting"
#~ msgstr "S'ha acabat d'iniciar %s"
#~ msgid "If true, display onscreen keyboard."
#~ msgstr "Si és «true» (cert) mostra el teclat en pantalla."

View File

@ -8,10 +8,10 @@ msgid ""
msgstr ""
"Project-Id-Version: HEAD\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2011-09-26 14:26+0200\n"
"PO-Revision-Date: 2011-09-22 19:53+0200\n"
"POT-Creation-Date: 2011-10-23 23:43+0200\n"
"PO-Revision-Date: 2011-10-23 23:41+0200\n"
"Last-Translator: Gil Forcada <gilforcada@guifi.net>\n"
"Language-Team: català; valencià <tradgnome@softcatala.org>\n"
"Language-Team: Catalan <tradgnome@softcatala.org>\n"
"Language: ca-XV\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@ -187,42 +187,42 @@ msgstr "Quin tipus de teclat s'ha d'utilitzar"
msgid "disabled OpenSearch providers"
msgstr "inhabilita els proveïdors d'OpenSearch"
#: ../js/gdm/loginDialog.js:617
#: ../js/gdm/loginDialog.js:633
msgid "Session..."
msgstr "Sessió..."
#: ../js/gdm/loginDialog.js:785
#: ../js/gdm/loginDialog.js:804
msgctxt "title"
msgid "Sign In"
msgstr "Entrada"
#. translators: this message is shown below the password entry field
#. to indicate the user can swipe their finger instead
#: ../js/gdm/loginDialog.js:830
#: ../js/gdm/loginDialog.js:849
msgid "(or swipe finger)"
msgstr "(o passeu el dit)"
#: ../js/gdm/loginDialog.js:848
#: ../js/gdm/loginDialog.js:867
msgid "Not listed?"
msgstr "No esteu llistat?"
#: ../js/gdm/loginDialog.js:1004 ../js/ui/endSessionDialog.js:426
#: ../js/ui/extensionSystem.js:477 ../js/ui/networkAgent.js:165
#: ../js/ui/polkitAuthenticationAgent.js:171 ../js/ui/status/bluetooth.js:480
#: ../js/gdm/loginDialog.js:1035 ../js/ui/endSessionDialog.js:426
#: ../js/ui/extensionSystem.js:477 ../js/ui/networkAgent.js:148
#: ../js/ui/polkitAuthenticationAgent.js:173 ../js/ui/status/bluetooth.js:480
msgid "Cancel"
msgstr "Cancel·la"
#: ../js/gdm/loginDialog.js:1009
#: ../js/gdm/loginDialog.js:1040
msgctxt "button"
msgid "Sign In"
msgstr "Entra"
#: ../js/gdm/loginDialog.js:1358
#: ../js/gdm/loginDialog.js:1392
msgid "Login Window"
msgstr "Finestra d'entrada"
#: ../js/gdm/powerMenu.js:116 ../js/ui/userMenu.js:514
#: ../js/ui/userMenu.js:516 ../js/ui/userMenu.js:585
#: ../js/gdm/powerMenu.js:116 ../js/ui/userMenu.js:554
#: ../js/ui/userMenu.js:556 ../js/ui/userMenu.js:625
msgid "Suspend"
msgstr "Atura temporalment"
@ -445,32 +445,32 @@ msgstr "Esta setmana"
msgid "Next week"
msgstr "La setmana que ve"
#: ../js/ui/contactDisplay.js:59 ../js/ui/notificationDaemon.js:444
#: ../js/ui/status/power.js:223 ../src/shell-app.c:355
#: ../js/ui/contactDisplay.js:65 ../js/ui/notificationDaemon.js:459
#: ../js/ui/status/power.js:223 ../src/shell-app.c:353
msgid "Unknown"
msgstr "Desconegut"
#: ../js/ui/contactDisplay.js:80 ../js/ui/userMenu.js:139
#: ../js/ui/contactDisplay.js:86 ../js/ui/userMenu.js:139
msgid "Available"
msgstr "Disponible"
#: ../js/ui/contactDisplay.js:85 ../js/ui/userMenu.js:148
#: ../js/ui/contactDisplay.js:91 ../js/ui/userMenu.js:148
msgid "Away"
msgstr "Absent"
#: ../js/ui/contactDisplay.js:89 ../js/ui/userMenu.js:142
#: ../js/ui/contactDisplay.js:95 ../js/ui/userMenu.js:142
msgid "Busy"
msgstr "Ocupat"
#: ../js/ui/contactDisplay.js:93
#: ../js/ui/contactDisplay.js:99
msgid "Offline"
msgstr "Fora de línia"
#: ../js/ui/contactDisplay.js:140
#: ../js/ui/contactDisplay.js:146
msgid "CONTACTS"
msgstr "Contactes"
#: ../js/ui/dash.js:172 ../js/ui/messageTray.js:1204
#: ../js/ui/dash.js:174 ../js/ui/messageTray.js:1206
msgid "Remove"
msgstr "Suprimeix"
@ -604,96 +604,96 @@ msgstr "Instal·la"
msgid "Download and install '%s' from extensions.gnome.org?"
msgstr "Voleu baixar i instal·lar «%s» d'extensions.gnome.org?"
#: ../js/ui/keyboard.js:517 ../js/ui/status/power.js:211
#: ../js/ui/keyboard.js:325
msgid "tray"
msgstr "safata"
#: ../js/ui/keyboard.js:547 ../js/ui/status/power.js:211
msgid "Keyboard"
msgstr "Teclat"
#: ../js/ui/lookingGlass.js:645
#: ../js/ui/lookingGlass.js:646
msgid "No extensions installed"
msgstr "No hi ha cap extensió instal·lada"
#: ../js/ui/lookingGlass.js:691
#: ../js/ui/lookingGlass.js:692
msgid "Enabled"
msgstr "Habilitat"
#. translators:
#. * The device has been disabled
#: ../js/ui/lookingGlass.js:693 ../src/gvc/gvc-mixer-control.c:1093
#: ../js/ui/lookingGlass.js:694 ../src/gvc/gvc-mixer-control.c:1093
msgid "Disabled"
msgstr "Inhabilitat"
#: ../js/ui/lookingGlass.js:695
#: ../js/ui/lookingGlass.js:696
msgid "Error"
msgstr "Error"
#: ../js/ui/lookingGlass.js:697
#: ../js/ui/lookingGlass.js:698
msgid "Out of date"
msgstr "Fora d'hora"
#: ../js/ui/lookingGlass.js:699
#: ../js/ui/lookingGlass.js:700
msgid "Downloading"
msgstr "S'està baixant"
#: ../js/ui/lookingGlass.js:724
#: ../js/ui/lookingGlass.js:721
msgid "View Source"
msgstr "Mostra el codi font"
#: ../js/ui/lookingGlass.js:730
#: ../js/ui/lookingGlass.js:727
msgid "Web Page"
msgstr "Pàgina web"
#: ../js/ui/messageTray.js:1197
#: ../js/ui/messageTray.js:1199
msgid "Open"
msgstr "Obri"
#: ../js/ui/messageTray.js:2405
#: ../js/ui/messageTray.js:2408
msgid "System Information"
msgstr "Informació de l'ordinador"
#: ../js/ui/networkAgent.js:145
msgid "Show password"
msgstr "Mostra la contrasenya"
#: ../js/ui/networkAgent.js:160
#: ../js/ui/networkAgent.js:143
msgid "Connect"
msgstr "Connecta"
#. Cisco LEAP
#: ../js/ui/networkAgent.js:255 ../js/ui/networkAgent.js:267
#: ../js/ui/networkAgent.js:294 ../js/ui/networkAgent.js:314
#: ../js/ui/networkAgent.js:324
#: ../js/ui/networkAgent.js:238 ../js/ui/networkAgent.js:250
#: ../js/ui/networkAgent.js:277 ../js/ui/networkAgent.js:297
#: ../js/ui/networkAgent.js:307
msgid "Password: "
msgstr "Contrasenya:"
#. static WEP
#: ../js/ui/networkAgent.js:260
#: ../js/ui/networkAgent.js:243
msgid "Key: "
msgstr "Clau:"
#. TTLS and PEAP are actually much more complicated, but this complication
#. is not visible here since we only care about phase2 authentication
#. (and don't even care of which one)
#: ../js/ui/networkAgent.js:292 ../js/ui/networkAgent.js:310
#: ../js/ui/networkAgent.js:275 ../js/ui/networkAgent.js:293
msgid "Username: "
msgstr "Nom d'usuari:"
#: ../js/ui/networkAgent.js:298
#: ../js/ui/networkAgent.js:281
msgid "Identity: "
msgstr "Identitat:"
#: ../js/ui/networkAgent.js:300
#: ../js/ui/networkAgent.js:283
msgid "Private key password: "
msgstr "Contrasenya de la clau privada:"
#: ../js/ui/networkAgent.js:312
#: ../js/ui/networkAgent.js:295
msgid "Service: "
msgstr "Servei:"
#: ../js/ui/networkAgent.js:341
#: ../js/ui/networkAgent.js:324
msgid "Authentication required by wireless network"
msgstr "La xarxa sense fil requereix autenticació"
#: ../js/ui/networkAgent.js:342
#: ../js/ui/networkAgent.js:325
#, c-format
msgid ""
"Passwords or encryption keys are required to access the wireless network "
@ -702,35 +702,35 @@ msgstr ""
"Per accedir a la xarxa sense fil «%s» calen les contrasenyes o les claus "
"d'encriptació."
#: ../js/ui/networkAgent.js:346
#: ../js/ui/networkAgent.js:329
msgid "Wired 802.1X authentication"
msgstr "Autenticació 802.1X amb fil"
#: ../js/ui/networkAgent.js:348
#: ../js/ui/networkAgent.js:331
msgid "Network name: "
msgstr "Nom de la xarxa: "
#: ../js/ui/networkAgent.js:353
#: ../js/ui/networkAgent.js:336
msgid "DSL authentication"
msgstr "Autenticació DSL"
#: ../js/ui/networkAgent.js:360
#: ../js/ui/networkAgent.js:343
msgid "PIN code required"
msgstr "Cal que introduïu el codi PIN"
#: ../js/ui/networkAgent.js:361
#: ../js/ui/networkAgent.js:344
msgid "PIN code is needed for the mobile broadband device"
msgstr "Cal que introduïu el codi PIN del dispositiu de banda ampla mòbil"
#: ../js/ui/networkAgent.js:362
#: ../js/ui/networkAgent.js:345
msgid "PIN: "
msgstr "PIN: "
#: ../js/ui/networkAgent.js:368
#: ../js/ui/networkAgent.js:351
msgid "Mobile broadband network password"
msgstr "Contrasenya de la xarxa de banda ampla mòbil"
#: ../js/ui/networkAgent.js:369
#: ../js/ui/networkAgent.js:352
#, c-format
msgid "A password is required to connect to '%s'."
msgstr "Cal que introduïu una contrasenya per connectar-vos a «%s»."
@ -786,15 +786,15 @@ msgstr "Connecta a..."
msgid "PLACES & DEVICES"
msgstr "LLOCS I DISPOSITIUS"
#: ../js/ui/polkitAuthenticationAgent.js:72
#: ../js/ui/polkitAuthenticationAgent.js:73
msgid "Authentication Required"
msgstr "Cal autenticació"
#: ../js/ui/polkitAuthenticationAgent.js:106
#: ../js/ui/polkitAuthenticationAgent.js:107
msgid "Administrator"
msgstr "Administrador"
#: ../js/ui/polkitAuthenticationAgent.js:175
#: ../js/ui/polkitAuthenticationAgent.js:177
msgid "Authenticate"
msgstr "Autentica"
@ -802,11 +802,11 @@ msgstr "Autentica"
#. * requested authentication was not gained; this can happen
#. * because of an authentication error (like invalid password),
#. * for instance.
#: ../js/ui/polkitAuthenticationAgent.js:256
#: ../js/ui/polkitAuthenticationAgent.js:258
msgid "Sorry, that didn't work. Please try again."
msgstr "No ha funcionat. Torneu-ho a provar."
#: ../js/ui/polkitAuthenticationAgent.js:268
#: ../js/ui/polkitAuthenticationAgent.js:270
msgid "Password:"
msgstr "Contrasenya:"
@ -819,7 +819,7 @@ msgstr "Contrasenya:"
msgid "toggle-switch-us"
msgstr "toggle-switch-intl"
#: ../js/ui/runDialog.js:208
#: ../js/ui/runDialog.js:209
msgid "Please enter a command:"
msgstr "Introduïu una orde:"
@ -831,6 +831,22 @@ msgstr "S'està cercant..."
msgid "No matching results."
msgstr "No s'ha trobat cap coincidència."
#: ../js/ui/shellEntry.js:30
msgid "Copy"
msgstr "Copia"
#: ../js/ui/shellEntry.js:35
msgid "Paste"
msgstr "Enganxa"
#: ../js/ui/shellEntry.js:81
msgid "Show Text"
msgstr "Mostra el text"
#: ../js/ui/shellEntry.js:83
msgid "Hide Text"
msgstr "Oculta el text"
#: ../js/ui/shellMountOperation.js:285
msgid "Wrong password, please try again"
msgstr "La contrasenya és errònia, torneu-ho a intentar"
@ -964,7 +980,7 @@ msgstr "Permet l'accés sempre"
msgid "Grant this time only"
msgstr "Permet-ho només ara"
#: ../js/ui/status/bluetooth.js:392 ../js/ui/telepathyClient.js:1196
#: ../js/ui/status/bluetooth.js:392 ../js/ui/telepathyClient.js:1204
msgid "Reject"
msgstr "Rebutja"
@ -1233,39 +1249,39 @@ msgid "Invitation"
msgstr "Invitació"
#. We got the TpContact
#: ../js/ui/telepathyClient.js:325
#: ../js/ui/telepathyClient.js:327
msgid "Call"
msgstr "Trucada"
#. We got the TpContact
#: ../js/ui/telepathyClient.js:353
#: ../js/ui/telepathyClient.js:357
msgid "File Transfer"
msgstr "Transferència de fitxers"
#: ../js/ui/telepathyClient.js:434
#: ../js/ui/telepathyClient.js:438
msgid "Subscription request"
msgstr "Teniu una petició de subscripció"
#: ../js/ui/telepathyClient.js:470
#: ../js/ui/telepathyClient.js:474
msgid "Connection error"
msgstr "S'ha produït un error de connexió"
#: ../js/ui/telepathyClient.js:733
#: ../js/ui/telepathyClient.js:741
#, c-format
msgid "%s is online."
msgstr "%s és en línia."
#: ../js/ui/telepathyClient.js:738
#: ../js/ui/telepathyClient.js:746
#, c-format
msgid "%s is offline."
msgstr "%s no hi és."
#: ../js/ui/telepathyClient.js:741
#: ../js/ui/telepathyClient.js:749
#, c-format
msgid "%s is away."
msgstr "%s és lluny."
#: ../js/ui/telepathyClient.js:744
#: ../js/ui/telepathyClient.js:752
#, c-format
msgid "%s is busy."
msgstr "%s està ocupat."
@ -1273,35 +1289,35 @@ msgstr "%s està ocupat."
#. Translators: this is a time format string followed by a date.
#. If applicable, replace %X with a strftime format valid for your
#. locale, without seconds.
#: ../js/ui/telepathyClient.js:978
#: ../js/ui/telepathyClient.js:986
#, no-c-format
msgid "Sent at <b>%X</b> on <b>%A</b>"
msgstr "Enviat a les <b>%X</b> del <b>%A</b>"
#. Translators: this is a time format in the style of "Wednesday, May 25",
#. shown when you get a chat message in the same year.
#: ../js/ui/telepathyClient.js:984
#: ../js/ui/telepathyClient.js:992
#, no-c-format
msgid "Sent on <b>%A</b>, <b>%B %d</b>"
msgstr "Enviat el <b>%A %d de %B</b>"
#. Translators: this is a time format in the style of "Wednesday, May 25, 2012",
#. shown when you get a chat message in a different year.
#: ../js/ui/telepathyClient.js:989
#: ../js/ui/telepathyClient.js:997
#, no-c-format
msgid "Sent on <b>%A</b>, <b>%B %d</b>, %Y"
msgstr "Enviat el <b>%A %d de %B</b> de %Y"
#. Translators: this is the other person changing their old IM name to their new
#. IM name.
#: ../js/ui/telepathyClient.js:1031
#: ../js/ui/telepathyClient.js:1039
#, c-format
msgid "%s is now known as %s"
msgstr "En/na %s ara es diu %s"
#. translators: argument is a room name like
#. * room@jabber.org for example.
#: ../js/ui/telepathyClient.js:1140
#: ../js/ui/telepathyClient.js:1148
#, c-format
msgid "Invitation to %s"
msgstr "Vos han convidat a entrar a %s"
@ -1309,34 +1325,35 @@ msgstr "Vos han convidat a entrar a %s"
#. 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
#. * for example.
#: ../js/ui/telepathyClient.js:1148
#: ../js/ui/telepathyClient.js:1156
#, c-format
msgid "%s is inviting you to join %s"
msgstr "En/na %s vos convida a entrar a %s"
#: ../js/ui/telepathyClient.js:1150 ../js/ui/telepathyClient.js:1239
#: ../js/ui/telepathyClient.js:1343
#: ../js/ui/telepathyClient.js:1158 ../js/ui/telepathyClient.js:1248
#: ../js/ui/telepathyClient.js:1352
msgid "Decline"
msgstr "Declina"
#: ../js/ui/telepathyClient.js:1151 ../js/ui/telepathyClient.js:1240
#: ../js/ui/telepathyClient.js:1344
#: ../js/ui/telepathyClient.js:1159 ../js/ui/telepathyClient.js:1249
#: ../js/ui/telepathyClient.js:1353
msgid "Accept"
msgstr "Accepta"
#. translators: argument is a contact name like Alice for example.
#: ../js/ui/telepathyClient.js:1184
#: ../js/ui/telepathyClient.js:1192
#, c-format
msgid "Video call from %s"
msgstr "Videotrucada de %s"
#. translators: argument is a contact name like Alice for example.
#: ../js/ui/telepathyClient.js:1187
#: ../js/ui/telepathyClient.js:1195
#, c-format
msgid "Call from %s"
msgstr "Trucada de %s"
#: ../js/ui/telepathyClient.js:1197
#. translators: this is a button label (verb), not a noun
#: ../js/ui/telepathyClient.js:1206
msgid "Answer"
msgstr "Contesta"
@ -1345,112 +1362,112 @@ msgstr "Contesta"
#. * file name. The string will be something
#. * like: "Alice is sending you test.ogg"
#.
#: ../js/ui/telepathyClient.js:1233
#: ../js/ui/telepathyClient.js:1242
#, c-format
msgid "%s is sending you %s"
msgstr "En/na %s vos envia %s"
#. To translators: The parameter is the contact's alias
#: ../js/ui/telepathyClient.js:1308
#: ../js/ui/telepathyClient.js:1317
#, c-format
msgid "%s would like permission to see when you are online"
msgstr "%s vol poder saber quan esteu en línia"
#: ../js/ui/telepathyClient.js:1406
#: ../js/ui/telepathyClient.js:1415
msgid "Network error"
msgstr "Error de la xarxa"
#: ../js/ui/telepathyClient.js:1408
#: ../js/ui/telepathyClient.js:1417
msgid "Authentication failed"
msgstr "Ha fallat l'autenticació"
#: ../js/ui/telepathyClient.js:1410
#: ../js/ui/telepathyClient.js:1419
msgid "Encryption error"
msgstr "Error d'encriptació"
#: ../js/ui/telepathyClient.js:1412
#: ../js/ui/telepathyClient.js:1421
msgid "Certificate not provided"
msgstr "No s'ha proporcionat el certificat"
#: ../js/ui/telepathyClient.js:1414
#: ../js/ui/telepathyClient.js:1423
msgid "Certificate untrusted"
msgstr "El certificat no és de confiança"
#: ../js/ui/telepathyClient.js:1416
#: ../js/ui/telepathyClient.js:1425
msgid "Certificate expired"
msgstr "El certificat ha vençut"
#: ../js/ui/telepathyClient.js:1418
#: ../js/ui/telepathyClient.js:1427
msgid "Certificate not activated"
msgstr "El certificat no està activat"
#: ../js/ui/telepathyClient.js:1420
#: ../js/ui/telepathyClient.js:1429
msgid "Certificate hostname mismatch"
msgstr "No coincideix el nom de la màquina del certificat"
#: ../js/ui/telepathyClient.js:1422
#: ../js/ui/telepathyClient.js:1431
msgid "Certificate fingerprint mismatch"
msgstr "No coincideix l'empremta digital del certificat"
#: ../js/ui/telepathyClient.js:1424
#: ../js/ui/telepathyClient.js:1433
msgid "Certificate self-signed"
msgstr "Certificat signat per un mateix"
#: ../js/ui/telepathyClient.js:1426
#: ../js/ui/telepathyClient.js:1435
msgid "Status is set to offline"
msgstr "S'ha establit l'estat a fora de línia"
#: ../js/ui/telepathyClient.js:1428
#: ../js/ui/telepathyClient.js:1437
msgid "Encryption is not available"
msgstr "L'encriptació no està disponible"
#: ../js/ui/telepathyClient.js:1430
#: ../js/ui/telepathyClient.js:1439
msgid "Certificate is invalid"
msgstr "El certificat no és vàlid"
#: ../js/ui/telepathyClient.js:1432
#: ../js/ui/telepathyClient.js:1441
msgid "Connection has been refused"
msgstr "S'ha rebutjat la connexió"
#: ../js/ui/telepathyClient.js:1434
#: ../js/ui/telepathyClient.js:1443
msgid "Connection can't be established"
msgstr "No es pot establir la connexió"
#: ../js/ui/telepathyClient.js:1436
#: ../js/ui/telepathyClient.js:1445
msgid "Connection has been lost"
msgstr "S'ha perdut la connexió"
#: ../js/ui/telepathyClient.js:1438
#: ../js/ui/telepathyClient.js:1447
msgid "This resource is already connected to the server"
msgstr "Este recurs ja està connectat al servidor"
#: ../js/ui/telepathyClient.js:1440
#: ../js/ui/telepathyClient.js:1449
msgid ""
"Connection has been replaced by a new connection using the same resource"
msgstr ""
"S'ha reemplaçat la connexió per una altra de nova fent servir el mateix "
"recurs"
#: ../js/ui/telepathyClient.js:1442
#: ../js/ui/telepathyClient.js:1451
msgid "The account already exists on the server"
msgstr "Ja existeix este compte al servidor"
#: ../js/ui/telepathyClient.js:1444
#: ../js/ui/telepathyClient.js:1453
msgid "Server is currently too busy to handle the connection"
msgstr "El servidor està massa ocupat per gestionar la connexió"
#: ../js/ui/telepathyClient.js:1446
#: ../js/ui/telepathyClient.js:1455
msgid "Certificate has been revoked"
msgstr "S'ha revocat el certificat"
#: ../js/ui/telepathyClient.js:1448
#: ../js/ui/telepathyClient.js:1457
msgid ""
"Certificate uses an insecure cipher algorithm or is cryptographically weak"
msgstr ""
"El certificat utilitza un algorisme criptògraf no segur o la seua fortalesa "
"criptogràfica és feble"
#: ../js/ui/telepathyClient.js:1450
#: ../js/ui/telepathyClient.js:1459
msgid ""
"The length of the server certificate, or the depth of the server certificate "
"chain, exceed the limits imposed by the cryptography library"
@ -1460,20 +1477,20 @@ msgstr ""
#. translators: argument is the account name, like
#. * name@jabber.org for example.
#: ../js/ui/telepathyClient.js:1459
#: ../js/ui/telepathyClient.js:1468
#, c-format
msgid "Connection to %s failed"
msgstr "Ha fallat la connexió a %s"
#: ../js/ui/telepathyClient.js:1468
#: ../js/ui/telepathyClient.js:1477
msgid "Reconnect"
msgstr "Torna a connectar"
#: ../js/ui/telepathyClient.js:1469
#: ../js/ui/telepathyClient.js:1478
msgid "Edit account"
msgstr "Edita el compte"
#: ../js/ui/telepathyClient.js:1515
#: ../js/ui/telepathyClient.js:1524
msgid "Unknown reason"
msgstr "Motiu desconegut"
@ -1489,39 +1506,39 @@ msgstr "Inactiu"
msgid "Unavailable"
msgstr "No disponible"
#: ../js/ui/userMenu.js:512 ../js/ui/userMenu.js:516 ../js/ui/userMenu.js:586
#: ../js/ui/userMenu.js:552 ../js/ui/userMenu.js:556 ../js/ui/userMenu.js:626
msgid "Power Off..."
msgstr "Apaga..."
#: ../js/ui/userMenu.js:548
#: ../js/ui/userMenu.js:588
msgid "Notifications"
msgstr "Notificacions"
#: ../js/ui/userMenu.js:556
#: ../js/ui/userMenu.js:596
msgid "Online Accounts"
msgstr "Comptes en línia"
#: ../js/ui/userMenu.js:560
#: ../js/ui/userMenu.js:600
msgid "System Settings"
msgstr "Paràmetres de l'ordinador"
#: ../js/ui/userMenu.js:567
#: ../js/ui/userMenu.js:607
msgid "Lock Screen"
msgstr "Bloca la pantalla"
#: ../js/ui/userMenu.js:572
#: ../js/ui/userMenu.js:612
msgid "Switch User"
msgstr "Canvia d'usuari"
#: ../js/ui/userMenu.js:577
#: ../js/ui/userMenu.js:617
msgid "Log Out..."
msgstr "Ix..."
#: ../js/ui/userMenu.js:605
#: ../js/ui/userMenu.js:645
msgid "Your chat status will be set to busy"
msgstr "L'estat del xat s'establirà a ocupat"
#: ../js/ui/userMenu.js:606
#: ../js/ui/userMenu.js:646
msgid ""
"Notifications are now disabled, including chat messages. Your online status "
"has been adjusted to let others know that you might not see their messages."
@ -1534,20 +1551,15 @@ msgstr ""
#. in the search entry when no search is
#. active; it should not exceed ~30
#. characters.
#: ../js/ui/viewSelector.js:120
#: ../js/ui/viewSelector.js:121
msgid "Type to search..."
msgstr "Teclegeu per cercar..."
#: ../js/ui/viewSelector.js:140 ../src/shell-util.c:261
#: ../js/ui/viewSelector.js:142 ../src/shell-util.c:261
msgid "Search"
msgstr "Cerca"
#: ../js/ui/windowAttentionHandler.js:39
#, c-format
msgid "%s has finished starting"
msgstr "S'ha acabat d'iniciar %s"
#: ../js/ui/windowAttentionHandler.js:41
#: ../js/ui/windowAttentionHandler.js:35
#, c-format
msgid "'%s' is ready"
msgstr "«%s» ja està a punt"
@ -1582,7 +1594,7 @@ msgstr "Mostra la versió"
msgid "Mode used by GDM for login screen"
msgstr "El mode que utilitzarà el GDM per a la pantalla d'entrada"
#: ../src/shell-app.c:581
#: ../src/shell-app.c:579
#, c-format
msgid "Failed to launch '%s'"
msgstr "No s'ha pogut iniciar «%s»"
@ -1619,6 +1631,21 @@ msgstr "Sistema de fitxers"
msgid "%1$s: %2$s"
msgstr "%1$s: %2$s"
#~ msgid "Show password"
#~ msgstr "Mostra la contrasenya"
#~ msgid "%s has not emitted any errors."
#~ msgstr "%s no ha emès cap error."
#~ msgid "Hide Errors"
#~ msgstr "Amaga els errors"
#~ msgid "Show Errors"
#~ msgstr "Mostra els errors"
#~ msgid "%s has finished starting"
#~ msgstr "S'ha acabat d'iniciar %s"
#~ msgid "If true, display onscreen keyboard."
#~ msgstr "Si és «true» (cert) mostra el teclat en pantalla."

385
po/cs.po
View File

@ -1,20 +1,23 @@
# Czech translation of gnome-shell.
# Copyright (C) 2009, 2010, 2011 the author(s) of gnome-shell.
# This file is distributed under the same license as the gnome-shell package.
#
# Andre Klapper <ak-47@gmx.net>, 2009.
# Petr Kovar <pknbe@volny.cz>, 2009, 2010, 2011.
#
msgid ""
msgstr ""
"Project-Id-Version: gnome-shell\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2011-09-26 02:00+0200\n"
"PO-Revision-Date: 2011-09-26 02:00+0200\n"
"Project-Id-Version: gnome-shell gnome-3.2\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
"shell&keywords=I18N+L10N&component=general\n"
"POT-Creation-Date: 2011-10-18 19:39+0000\n"
"PO-Revision-Date: 2011-10-30 14:12+0100\n"
"Last-Translator: Petr Kovar <pknbe@volny.cz>\n"
"Language-Team: Czech <gnome-cs-list@gnome.org>\n"
"Language: cs\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: cs\n"
"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
"X-Generator: Lokalize 1.2\n"
@ -62,19 +65,19 @@ msgstr "Historie příkazového dialogového okna (Alt-F2)"
#: ../data/org.gnome.shell.gschema.xml.in.h:7
msgid "History for the looking glass dialog"
msgstr "Historie dialogového okna \"looking glass\" (Alt-F2)"
msgstr "Historie dialogového okna looking glass (Alt-F2)"
#: ../data/org.gnome.shell.gschema.xml.in.h:8
msgid "If true, display date in the clock, in addition to time."
msgstr "Je-li \"true\", zobrazovat v hodinách kromě času i datum."
msgstr "Je-li zapnuto, zobrazovat v hodinách kromě času i datum."
#: ../data/org.gnome.shell.gschema.xml.in.h:9
msgid "If true, display seconds in time."
msgstr "Je-li \"true\", zobrazovat čas včetně sekund."
msgstr "Je-li zapnuto, zobrazovat čas včetně sekund."
#: ../data/org.gnome.shell.gschema.xml.in.h:10
msgid "If true, display the ISO week date in the calendar."
msgstr "Je-li \"true\", zobrazovat v kalendáři čísla týdnů dle ISO."
msgstr "Je-li zapnuto, zobrazovat v kalendáři čísla týdnů dle ISO."
#: ../data/org.gnome.shell.gschema.xml.in.h:11
msgid "List of desktop file IDs for favorite applications"
@ -179,42 +182,42 @@ msgstr "Která klávesnice se má používat"
msgid "disabled OpenSearch providers"
msgstr "zakázaní poskytovatelé OpenSearch"
#: ../js/gdm/loginDialog.js:617
#: ../js/gdm/loginDialog.js:633
msgid "Session..."
msgstr "Sezení..."
msgstr "Sezení"
#: ../js/gdm/loginDialog.js:785
#: ../js/gdm/loginDialog.js:804
msgctxt "title"
msgid "Sign In"
msgstr "Přihlášení"
#. translators: this message is shown below the password entry field
#. to indicate the user can swipe their finger instead
#: ../js/gdm/loginDialog.js:830
#: ../js/gdm/loginDialog.js:849
msgid "(or swipe finger)"
msgstr "(nebo otiskněte prst)"
#: ../js/gdm/loginDialog.js:848
#: ../js/gdm/loginDialog.js:867
msgid "Not listed?"
msgstr "Nejste na seznamu?"
#: ../js/gdm/loginDialog.js:1004 ../js/ui/endSessionDialog.js:426
#: ../js/ui/extensionSystem.js:477 ../js/ui/networkAgent.js:165
#: ../js/ui/polkitAuthenticationAgent.js:171 ../js/ui/status/bluetooth.js:480
#: ../js/gdm/loginDialog.js:1035 ../js/ui/endSessionDialog.js:426
#: ../js/ui/extensionSystem.js:477 ../js/ui/networkAgent.js:148
#: ../js/ui/polkitAuthenticationAgent.js:173 ../js/ui/status/bluetooth.js:480
msgid "Cancel"
msgstr "Zrušit"
#: ../js/gdm/loginDialog.js:1009
#: ../js/gdm/loginDialog.js:1040
msgctxt "button"
msgid "Sign In"
msgstr "Přihlásit se"
#: ../js/gdm/loginDialog.js:1358
#: ../js/gdm/loginDialog.js:1392
msgid "Login Window"
msgstr "Přihlašovací okno"
#: ../js/gdm/powerMenu.js:116 ../js/ui/userMenu.js:514
#: ../js/ui/userMenu.js:516 ../js/ui/userMenu.js:585
#: ../js/gdm/powerMenu.js:116 ../js/ui/userMenu.js:554
#: ../js/ui/userMenu.js:556 ../js/ui/userMenu.js:625
msgid "Suspend"
msgstr "Uspat do paměti"
@ -241,7 +244,7 @@ msgstr "Nelze analyzovat příkaz:"
#: ../js/misc/util.js:127
#, c-format
msgid "Execution of '%s' failed:"
msgstr "Vykonání \"%s\" selhalo:"
msgstr "Vykonání „%s“ selhalo:"
#. Translators: Filter to display all applications
#: ../js/ui/appDisplay.js:255
@ -438,32 +441,32 @@ msgstr "Tento týden"
msgid "Next week"
msgstr "Následující týden"
#: ../js/ui/contactDisplay.js:59 ../js/ui/notificationDaemon.js:444
#: ../js/ui/status/power.js:223 ../src/shell-app.c:355
#: ../js/ui/contactDisplay.js:65 ../js/ui/notificationDaemon.js:459
#: ../js/ui/status/power.js:223 ../src/shell-app.c:353
msgid "Unknown"
msgstr "Neznámé"
#: ../js/ui/contactDisplay.js:80 ../js/ui/userMenu.js:139
#: ../js/ui/contactDisplay.js:86 ../js/ui/userMenu.js:139
msgid "Available"
msgstr "Přítomen"
#: ../js/ui/contactDisplay.js:85 ../js/ui/userMenu.js:148
#: ../js/ui/contactDisplay.js:91 ../js/ui/userMenu.js:148
msgid "Away"
msgstr "Nepřítomen"
#: ../js/ui/contactDisplay.js:89 ../js/ui/userMenu.js:142
#: ../js/ui/contactDisplay.js:95 ../js/ui/userMenu.js:142
msgid "Busy"
msgstr "Zaneprázdněn"
#: ../js/ui/contactDisplay.js:93
#: ../js/ui/contactDisplay.js:99
msgid "Offline"
msgstr "Odpojen"
#: ../js/ui/contactDisplay.js:140
#: ../js/ui/contactDisplay.js:146
msgid "CONTACTS"
msgstr "KONTAKTY"
#: ../js/ui/dash.js:172 ../js/ui/messageTray.js:1204
#: ../js/ui/dash.js:174 ../js/ui/messageTray.js:1206
msgid "Remove"
msgstr "Odstranit"
@ -608,138 +611,139 @@ msgstr "Instalovat"
#: ../js/ui/extensionSystem.js:485
#, c-format
msgid "Download and install '%s' from extensions.gnome.org?"
msgstr "Stáhnout a nainstalovat \"%s\" z extensions.gnome.org?"
msgstr "Stáhnout a nainstalovat „%s“ z extensions.gnome.org?"
#: ../js/ui/keyboard.js:517 ../js/ui/status/power.js:211
#: ../js/ui/keyboard.js:325
#| msgid "Retry"
msgid "tray"
msgstr "panel"
#: ../js/ui/keyboard.js:547 ../js/ui/status/power.js:211
msgid "Keyboard"
msgstr "Klávesnice"
#: ../js/ui/lookingGlass.js:645
#: ../js/ui/lookingGlass.js:646
msgid "No extensions installed"
msgstr "Nejsou nainstalována žádná rozšíření"
#: ../js/ui/lookingGlass.js:691
#: ../js/ui/lookingGlass.js:692
msgid "Enabled"
msgstr "Povoleno"
#. translators:
#. * The device has been disabled
#: ../js/ui/lookingGlass.js:693 ../src/gvc/gvc-mixer-control.c:1093
#: ../js/ui/lookingGlass.js:694 ../src/gvc/gvc-mixer-control.c:1093
msgid "Disabled"
msgstr "Zakázáno"
#: ../js/ui/lookingGlass.js:695
#: ../js/ui/lookingGlass.js:696
msgid "Error"
msgstr "Chyba"
#: ../js/ui/lookingGlass.js:697
#: ../js/ui/lookingGlass.js:698
msgid "Out of date"
msgstr "Neaktuální"
#: ../js/ui/lookingGlass.js:699
#: ../js/ui/lookingGlass.js:700
msgid "Downloading"
msgstr "Stahování"
#: ../js/ui/lookingGlass.js:724
#: ../js/ui/lookingGlass.js:721
msgid "View Source"
msgstr "Zobrazit zdroj"
#: ../js/ui/lookingGlass.js:730
#: ../js/ui/lookingGlass.js:727
msgid "Web Page"
msgstr "Webová stránka"
#: ../js/ui/messageTray.js:1197
#: ../js/ui/messageTray.js:1199
msgid "Open"
msgstr "Otevřít"
#: ../js/ui/messageTray.js:2405
#: ../js/ui/messageTray.js:2408
msgid "System Information"
msgstr "Informace o systému"
#: ../js/ui/networkAgent.js:145
msgid "Show password"
msgstr "Zobrazit heslo"
#: ../js/ui/networkAgent.js:160
#: ../js/ui/networkAgent.js:143
msgid "Connect"
msgstr "Připojit"
#. Cisco LEAP
#: ../js/ui/networkAgent.js:255 ../js/ui/networkAgent.js:267
#: ../js/ui/networkAgent.js:294 ../js/ui/networkAgent.js:314
#: ../js/ui/networkAgent.js:324
#: ../js/ui/networkAgent.js:238 ../js/ui/networkAgent.js:250
#: ../js/ui/networkAgent.js:277 ../js/ui/networkAgent.js:297
#: ../js/ui/networkAgent.js:307
msgid "Password: "
msgstr "Heslo: "
#. static WEP
#: ../js/ui/networkAgent.js:260
#: ../js/ui/networkAgent.js:243
msgid "Key: "
msgstr "Klíč: "
#. TTLS and PEAP are actually much more complicated, but this complication
#. is not visible here since we only care about phase2 authentication
#. (and don't even care of which one)
#: ../js/ui/networkAgent.js:292 ../js/ui/networkAgent.js:310
#: ../js/ui/networkAgent.js:275 ../js/ui/networkAgent.js:293
msgid "Username: "
msgstr "Uživatelské jméno: "
#: ../js/ui/networkAgent.js:298
#: ../js/ui/networkAgent.js:281
msgid "Identity: "
msgstr "Indentita: "
#: ../js/ui/networkAgent.js:300
#: ../js/ui/networkAgent.js:283
msgid "Private key password: "
msgstr "Heslo soukromého klíče: "
#: ../js/ui/networkAgent.js:312
#: ../js/ui/networkAgent.js:295
msgid "Service: "
msgstr "Služba: "
#: ../js/ui/networkAgent.js:341
#: ../js/ui/networkAgent.js:324
msgid "Authentication required by wireless network"
msgstr "K bezdrátové síti je vyžadováno ověření"
#: ../js/ui/networkAgent.js:342
#: ../js/ui/networkAgent.js:325
#, c-format
msgid ""
"Passwords or encryption keys are required to access the wireless network "
"'%s'."
msgstr ""
"Pro přístup k bezdrátové síti \"%s\" jsou vyžadována hesla nebo šifrovací "
"Pro přístup k bezdrátové síti „%s“ jsou vyžadována hesla nebo šifrovací "
"klíče."
#: ../js/ui/networkAgent.js:346
#: ../js/ui/networkAgent.js:329
msgid "Wired 802.1X authentication"
msgstr "Ověření drátového připojení 802.1X"
#: ../js/ui/networkAgent.js:348
#: ../js/ui/networkAgent.js:331
msgid "Network name: "
msgstr "Název sítě: "
#: ../js/ui/networkAgent.js:353
#: ../js/ui/networkAgent.js:336
msgid "DSL authentication"
msgstr "Ověření DSL"
#: ../js/ui/networkAgent.js:360
#: ../js/ui/networkAgent.js:343
msgid "PIN code required"
msgstr "Požadován kód PIN"
#: ../js/ui/networkAgent.js:361
#: ../js/ui/networkAgent.js:344
msgid "PIN code is needed for the mobile broadband device"
msgstr "Pro mobilní širokopásmové zařízení je vyžadován kód PIN"
#: ../js/ui/networkAgent.js:362
#: ../js/ui/networkAgent.js:345
msgid "PIN: "
msgstr "PIN: "
#: ../js/ui/networkAgent.js:368
#: ../js/ui/networkAgent.js:351
msgid "Mobile broadband network password"
msgstr "Heslo k mobilní širokopásmové síti"
#: ../js/ui/networkAgent.js:369
#: ../js/ui/networkAgent.js:352
#, c-format
msgid "A password is required to connect to '%s'."
msgstr "Pro připojení k \"%s\" je vyžadováno heslo."
msgstr "Pro připojení k „%s“ je vyžadováno heslo."
#: ../js/ui/overview.js:91
msgid "Undo"
@ -778,7 +782,7 @@ msgstr "Horní lišta"
#: ../js/ui/placeDisplay.js:120
#, c-format
msgid "Failed to unmount '%s'"
msgstr "Nelze odpojit \"%s\""
msgstr "Nelze odpojit „%s“"
#: ../js/ui/placeDisplay.js:123
msgid "Retry"
@ -786,21 +790,21 @@ msgstr "Opakovat"
#: ../js/ui/placeDisplay.js:163
msgid "Connect to..."
msgstr "Připojit se k..."
msgstr "Připojit se k"
#: ../js/ui/placeDisplay.js:375
msgid "PLACES & DEVICES"
msgstr "MÍSTA A ZAŘÍZENÍ"
#: ../js/ui/polkitAuthenticationAgent.js:72
#: ../js/ui/polkitAuthenticationAgent.js:73
msgid "Authentication Required"
msgstr "Je vyžadováno ověření"
#: ../js/ui/polkitAuthenticationAgent.js:106
#: ../js/ui/polkitAuthenticationAgent.js:107
msgid "Administrator"
msgstr "Správce"
#: ../js/ui/polkitAuthenticationAgent.js:175
#: ../js/ui/polkitAuthenticationAgent.js:177
msgid "Authenticate"
msgstr "Ověřit"
@ -808,11 +812,11 @@ msgstr "Ověřit"
#. * requested authentication was not gained; this can happen
#. * because of an authentication error (like invalid password),
#. * for instance.
#: ../js/ui/polkitAuthenticationAgent.js:256
#: ../js/ui/polkitAuthenticationAgent.js:258
msgid "Sorry, that didn't work. Please try again."
msgstr "Ověření bohužel nebylo úspěšné. Zkuste to prosím znovu."
#: ../js/ui/polkitAuthenticationAgent.js:268
#: ../js/ui/polkitAuthenticationAgent.js:270
msgid "Password:"
msgstr "Heslo:"
@ -825,18 +829,35 @@ msgstr "Heslo:"
msgid "toggle-switch-us"
msgstr "toggle-switch-intl"
#: ../js/ui/runDialog.js:208
#: ../js/ui/runDialog.js:209
msgid "Please enter a command:"
msgstr "Zadejte prosím příkaz:"
#: ../js/ui/searchDisplay.js:340
msgid "Searching..."
msgstr "Hledá se..."
msgstr "Hledá se"
#: ../js/ui/searchDisplay.js:363
msgid "No matching results."
msgstr "Neodpovídá ani jeden z výsledků."
#: ../js/ui/shellEntry.js:30
msgid "Copy"
msgstr "Kopírovat"
#: ../js/ui/shellEntry.js:35
msgid "Paste"
msgstr "Vložit"
#: ../js/ui/shellEntry.js:81
msgid "Show Text"
msgstr "Zobrazit text"
#: ../js/ui/shellEntry.js:83
#| msgid "Large Text"
msgid "Hide Text"
msgstr "Skrýt text"
#: ../js/ui/shellMountOperation.js:285
msgid "Wrong password, please try again"
msgstr "Špatné heslo, zkuste to prosím znovu"
@ -896,11 +917,11 @@ msgstr "Viditelnost"
#: ../js/ui/status/bluetooth.js:66
msgid "Send Files to Device..."
msgstr "Odeslat soubory na zařízení..."
msgstr "Odeslat soubory na zařízení"
#: ../js/ui/status/bluetooth.js:67
msgid "Set up a New Device..."
msgstr "Nastavit nové zařízení..."
msgstr "Nastavit nové zařízení"
#: ../js/ui/status/bluetooth.js:91
msgid "Bluetooth Settings"
@ -917,19 +938,19 @@ msgstr "Připojení"
#: ../js/ui/status/bluetooth.js:217 ../js/ui/status/network.js:486
msgid "disconnecting..."
msgstr "odpojování..."
msgstr "odpojování"
#: ../js/ui/status/bluetooth.js:230 ../js/ui/status/network.js:492
msgid "connecting..."
msgstr "připojování..."
msgstr "připojování"
#: ../js/ui/status/bluetooth.js:248
msgid "Send Files..."
msgstr "Odeslat soubory..."
msgstr "Odeslat soubory"
#: ../js/ui/status/bluetooth.js:253
msgid "Browse Files..."
msgstr "Procházet soubory..."
msgstr "Procházet soubory"
#: ../js/ui/status/bluetooth.js:262
msgid "Error browsing device"
@ -938,7 +959,7 @@ msgstr "Chyba při procházení zařízením"
#: ../js/ui/status/bluetooth.js:263
#, c-format
msgid "The requested device cannot be browsed, error is '%s'"
msgstr "Procházení požadovaného zařízení se nezdařilo, chybou je \"%s\""
msgstr "Procházení požadovaného zařízení se nezdařilo, chybou je „%s“"
#: ../js/ui/status/bluetooth.js:271
msgid "Keyboard Settings"
@ -960,7 +981,7 @@ msgstr "Požadavek na autorizaci od %s"
#: ../js/ui/status/bluetooth.js:388
#, c-format
msgid "Device %s wants access to the service '%s'"
msgstr "Zařízení %s požaduje přístup ke službě \"%s\""
msgstr "Zařízení %s požaduje přístup ke službě „%s“"
#: ../js/ui/status/bluetooth.js:390
msgid "Always grant access"
@ -970,7 +991,7 @@ msgstr "Vždy udělovat přístup"
msgid "Grant this time only"
msgstr "Udělit pouze tentokrát"
#: ../js/ui/status/bluetooth.js:392 ../js/ui/telepathyClient.js:1196
#: ../js/ui/status/bluetooth.js:392 ../js/ui/telepathyClient.js:1204
msgid "Reject"
msgstr "Odmítnout"
@ -987,7 +1008,7 @@ msgstr "Zařízení %s se chce spárovat s tímto počítačem"
#: ../js/ui/status/bluetooth.js:429
#, c-format
msgid "Please confirm whether the PIN '%s' matches the one on the device."
msgstr "Ověřte prosím, zda PIN \"%s\" souhlasí s tím na zařízení."
msgstr "Ověřte prosím, zda PIN „%s“ souhlasí s tím na zařízení."
#: ../js/ui/status/bluetooth.js:431
msgid "Matches"
@ -1061,7 +1082,7 @@ msgstr "připojení selhalo"
#: ../js/ui/status/network.js:575 ../js/ui/status/network.js:1523
msgid "More..."
msgstr "Více..."
msgstr "Více"
#. TRANSLATORS: this is the indication that a connection for another logged in user is active,
#. and we cannot access its settings (including the name)
@ -1143,7 +1164,7 @@ msgstr "Nastavení napájení"
#. to estimate battery life
#: ../js/ui/status/power.js:103
msgid "Estimating..."
msgstr "Odhaduje se..."
msgstr "Odhaduje se"
#: ../js/ui/status/power.js:110
#, c-format
@ -1243,39 +1264,39 @@ msgid "Invitation"
msgstr "Pozvání"
#. We got the TpContact
#: ../js/ui/telepathyClient.js:325
#: ../js/ui/telepathyClient.js:327
msgid "Call"
msgstr "Hovor"
#. We got the TpContact
#: ../js/ui/telepathyClient.js:353
#: ../js/ui/telepathyClient.js:357
msgid "File Transfer"
msgstr "Přenos souborů"
#: ../js/ui/telepathyClient.js:434
#: ../js/ui/telepathyClient.js:438
msgid "Subscription request"
msgstr "Požadavek na přihlášení"
#: ../js/ui/telepathyClient.js:470
#: ../js/ui/telepathyClient.js:474
msgid "Connection error"
msgstr "Chyba připojení"
#: ../js/ui/telepathyClient.js:733
#: ../js/ui/telepathyClient.js:741
#, c-format
msgid "%s is online."
msgstr "Kontakt %s je připojen."
#: ../js/ui/telepathyClient.js:738
#: ../js/ui/telepathyClient.js:746
#, c-format
msgid "%s is offline."
msgstr "Kontakt %s je odpojen."
#: ../js/ui/telepathyClient.js:741
#: ../js/ui/telepathyClient.js:749
#, c-format
msgid "%s is away."
msgstr "Kontakt %s je nepřítomen."
#: ../js/ui/telepathyClient.js:744
#: ../js/ui/telepathyClient.js:752
#, c-format
msgid "%s is busy."
msgstr "Kontakt %s je zaneprázdněn."
@ -1283,35 +1304,35 @@ msgstr "Kontakt %s je zaneprázdněn."
#. Translators: this is a time format string followed by a date.
#. If applicable, replace %X with a strftime format valid for your
#. locale, without seconds.
#: ../js/ui/telepathyClient.js:978
#: ../js/ui/telepathyClient.js:986
#, no-c-format
msgid "Sent at <b>%X</b> on <b>%A</b>"
msgstr "Čas odeslání: <b>%X</b>, den odeslání: <b>%A</b>"
#. Translators: this is a time format in the style of "Wednesday, May 25",
#. shown when you get a chat message in the same year.
#: ../js/ui/telepathyClient.js:984
#: ../js/ui/telepathyClient.js:992
#, no-c-format
msgid "Sent on <b>%A</b>, <b>%B %d</b>"
msgstr "Den odeslání: <b>%A</b>, <b>%e. %B</b>"
#. Translators: this is a time format in the style of "Wednesday, May 25, 2012",
#. shown when you get a chat message in a different year.
#: ../js/ui/telepathyClient.js:989
#: ../js/ui/telepathyClient.js:997
#, no-c-format
msgid "Sent on <b>%A</b>, <b>%B %d</b>, %Y"
msgstr "Den odeslání: <b>%A</b>, <b>%e. %B</b> %Y"
#. Translators: this is the other person changing their old IM name to their new
#. IM name.
#: ../js/ui/telepathyClient.js:1031
#: ../js/ui/telepathyClient.js:1039
#, c-format
msgid "%s is now known as %s"
msgstr "%s je teď znám jako %s"
#. translators: argument is a room name like
#. * room@jabber.org for example.
#: ../js/ui/telepathyClient.js:1140
#: ../js/ui/telepathyClient.js:1148
#, c-format
msgid "Invitation to %s"
msgstr "Pozvánka na připojení %s"
@ -1319,34 +1340,35 @@ msgstr "Pozvánka na připojení %s"
#. 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
#. * for example.
#: ../js/ui/telepathyClient.js:1148
#: ../js/ui/telepathyClient.js:1156
#, c-format
msgid "%s is inviting you to join %s"
msgstr "%s vás zve do %s"
#: ../js/ui/telepathyClient.js:1150 ../js/ui/telepathyClient.js:1239
#: ../js/ui/telepathyClient.js:1343
#: ../js/ui/telepathyClient.js:1158 ../js/ui/telepathyClient.js:1248
#: ../js/ui/telepathyClient.js:1352
msgid "Decline"
msgstr "Odmítnout"
#: ../js/ui/telepathyClient.js:1151 ../js/ui/telepathyClient.js:1240
#: ../js/ui/telepathyClient.js:1344
#: ../js/ui/telepathyClient.js:1159 ../js/ui/telepathyClient.js:1249
#: ../js/ui/telepathyClient.js:1353
msgid "Accept"
msgstr "Přijmout"
#. translators: argument is a contact name like Alice for example.
#: ../js/ui/telepathyClient.js:1184
#: ../js/ui/telepathyClient.js:1192
#, c-format
msgid "Video call from %s"
msgstr "Videohovor od %s"
#. translators: argument is a contact name like Alice for example.
#: ../js/ui/telepathyClient.js:1187
#: ../js/ui/telepathyClient.js:1195
#, c-format
msgid "Call from %s"
msgstr "Hovor od %s"
#: ../js/ui/telepathyClient.js:1197
#. translators: this is a button label (verb), not a noun
#: ../js/ui/telepathyClient.js:1206
msgid "Answer"
msgstr "Zvednout"
@ -1355,110 +1377,110 @@ msgstr "Zvednout"
#. * file name. The string will be something
#. * like: "Alice is sending you test.ogg"
#.
#: ../js/ui/telepathyClient.js:1233
#: ../js/ui/telepathyClient.js:1242
#, c-format
msgid "%s is sending you %s"
msgstr "%s vám posílá %s"
#. To translators: The parameter is the contact's alias
#: ../js/ui/telepathyClient.js:1308
#: ../js/ui/telepathyClient.js:1317
#, c-format
msgid "%s would like permission to see when you are online"
msgstr "%s by chtěl oprávnění vidět, že jste dostupní"
#: ../js/ui/telepathyClient.js:1406
#: ../js/ui/telepathyClient.js:1415
msgid "Network error"
msgstr "Chyba sítě"
#: ../js/ui/telepathyClient.js:1408
#: ../js/ui/telepathyClient.js:1417
msgid "Authentication failed"
msgstr "Ověření selhalo"
#: ../js/ui/telepathyClient.js:1410
#: ../js/ui/telepathyClient.js:1419
msgid "Encryption error"
msgstr "Chyba šifrování"
#: ../js/ui/telepathyClient.js:1412
#: ../js/ui/telepathyClient.js:1421
msgid "Certificate not provided"
msgstr "Certifikát neposkytnut"
#: ../js/ui/telepathyClient.js:1414
#: ../js/ui/telepathyClient.js:1423
msgid "Certificate untrusted"
msgstr "Nedůvěryhodný certifikát"
#: ../js/ui/telepathyClient.js:1416
#: ../js/ui/telepathyClient.js:1425
msgid "Certificate expired"
msgstr "Platnost certifikátu vypršela"
#: ../js/ui/telepathyClient.js:1418
#: ../js/ui/telepathyClient.js:1427
msgid "Certificate not activated"
msgstr "Certifikát není aktivován"
#: ../js/ui/telepathyClient.js:1420
#: ../js/ui/telepathyClient.js:1429
msgid "Certificate hostname mismatch"
msgstr "Název počítače certifikátu nesouhlasí"
#: ../js/ui/telepathyClient.js:1422
#: ../js/ui/telepathyClient.js:1431
msgid "Certificate fingerprint mismatch"
msgstr "Otisk prstu certifikátu nesouhlasí"
#: ../js/ui/telepathyClient.js:1424
#: ../js/ui/telepathyClient.js:1433
msgid "Certificate self-signed"
msgstr "Certifikát je podepsán sám sebou"
#: ../js/ui/telepathyClient.js:1426
#: ../js/ui/telepathyClient.js:1435
msgid "Status is set to offline"
msgstr "Stav nastaven na „Odhlášen“"
#: ../js/ui/telepathyClient.js:1428
#: ../js/ui/telepathyClient.js:1437
msgid "Encryption is not available"
msgstr "Šifrování není dostupné"
#: ../js/ui/telepathyClient.js:1430
#: ../js/ui/telepathyClient.js:1439
msgid "Certificate is invalid"
msgstr "Certifikát je neplatný"
#: ../js/ui/telepathyClient.js:1432
#: ../js/ui/telepathyClient.js:1441
msgid "Connection has been refused"
msgstr "Spojení bylo odmítnuto"
#: ../js/ui/telepathyClient.js:1434
#: ../js/ui/telepathyClient.js:1443
msgid "Connection can't be established"
msgstr "Spojení nemohlo bát navázáno"
#: ../js/ui/telepathyClient.js:1436
#: ../js/ui/telepathyClient.js:1445
msgid "Connection has been lost"
msgstr "Spojení bylo ztraceno"
#: ../js/ui/telepathyClient.js:1438
#: ../js/ui/telepathyClient.js:1447
msgid "This resource is already connected to the server"
msgstr "Zdroj je již připojen k serveru"
#: ../js/ui/telepathyClient.js:1440
#: ../js/ui/telepathyClient.js:1449
msgid ""
"Connection has been replaced by a new connection using the same resource"
msgstr "Spojení bylo nahrazeno novým spojením, které používá stejný zdroj"
#: ../js/ui/telepathyClient.js:1442
#: ../js/ui/telepathyClient.js:1451
msgid "The account already exists on the server"
msgstr "Takový účet již na serveru existuje"
#: ../js/ui/telepathyClient.js:1444
#: ../js/ui/telepathyClient.js:1453
msgid "Server is currently too busy to handle the connection"
msgstr "Server je právě příliš zaneprázdněn na to, aby obsloužil spojení"
#: ../js/ui/telepathyClient.js:1446
#: ../js/ui/telepathyClient.js:1455
msgid "Certificate has been revoked"
msgstr "Certifikát byl odvolán"
#: ../js/ui/telepathyClient.js:1448
#: ../js/ui/telepathyClient.js:1457
msgid ""
"Certificate uses an insecure cipher algorithm or is cryptographically weak"
msgstr ""
"Certifikát používá nepříliš bezpečný šifrovací algoritmus nebo je z "
"kryptografického hlediska slabý"
#: ../js/ui/telepathyClient.js:1450
#: ../js/ui/telepathyClient.js:1459
msgid ""
"The length of the server certificate, or the depth of the server certificate "
"chain, exceed the limits imposed by the cryptography library"
@ -1468,20 +1490,20 @@ msgstr ""
#. translators: argument is the account name, like
#. * name@jabber.org for example.
#: ../js/ui/telepathyClient.js:1459
#: ../js/ui/telepathyClient.js:1468
#, c-format
msgid "Connection to %s failed"
msgstr "Připojení k \"%s\" selhalo"
msgstr "Připojení k „%s“ selhalo"
#: ../js/ui/telepathyClient.js:1468
#: ../js/ui/telepathyClient.js:1477
msgid "Reconnect"
msgstr "Znovu připojit"
#: ../js/ui/telepathyClient.js:1469
#: ../js/ui/telepathyClient.js:1478
msgid "Edit account"
msgstr "Upravit účet"
#: ../js/ui/telepathyClient.js:1515
#: ../js/ui/telepathyClient.js:1524
msgid "Unknown reason"
msgstr "Neznámý důvod"
@ -1497,39 +1519,39 @@ msgstr "Nečinný"
msgid "Unavailable"
msgstr "Nedostupný"
#: ../js/ui/userMenu.js:512 ../js/ui/userMenu.js:516 ../js/ui/userMenu.js:586
#: ../js/ui/userMenu.js:552 ../js/ui/userMenu.js:556 ../js/ui/userMenu.js:626
msgid "Power Off..."
msgstr "Vypnout..."
msgstr "Vypnout"
#: ../js/ui/userMenu.js:548
#: ../js/ui/userMenu.js:588
msgid "Notifications"
msgstr "Upozornění"
#: ../js/ui/userMenu.js:556
#: ../js/ui/userMenu.js:596
msgid "Online Accounts"
msgstr "Účty on-line"
#: ../js/ui/userMenu.js:560
#: ../js/ui/userMenu.js:600
msgid "System Settings"
msgstr "Nastavení systému"
#: ../js/ui/userMenu.js:567
#: ../js/ui/userMenu.js:607
msgid "Lock Screen"
msgstr "Uzamknout obrazovku"
#: ../js/ui/userMenu.js:572
#: ../js/ui/userMenu.js:612
msgid "Switch User"
msgstr "Přepnout uživatele"
#: ../js/ui/userMenu.js:577
#: ../js/ui/userMenu.js:617
msgid "Log Out..."
msgstr "Odhlásit..."
msgstr "Odhlásit"
#: ../js/ui/userMenu.js:605
#: ../js/ui/userMenu.js:645
msgid "Your chat status will be set to busy"
msgstr "Váš stav v konverzacích byl nastaven na „Zaneprázdněn“"
#: ../js/ui/userMenu.js:606
#: ../js/ui/userMenu.js:646
msgid ""
"Notifications are now disabled, including chat messages. Your online status "
"has been adjusted to let others know that you might not see their messages."
@ -1541,23 +1563,18 @@ msgstr ""
#. in the search entry when no search is
#. active; it should not exceed ~30
#. characters.
#: ../js/ui/viewSelector.js:120
#: ../js/ui/viewSelector.js:121
msgid "Type to search..."
msgstr "Vyhledávejte psaním..."
msgstr "Vyhledávejte psaním"
#: ../js/ui/viewSelector.js:140 ../src/shell-util.c:261
#: ../js/ui/viewSelector.js:142 ../src/shell-util.c:261
msgid "Search"
msgstr "Hledat"
#: ../js/ui/windowAttentionHandler.js:39
#, c-format
msgid "%s has finished starting"
msgstr "Spouštění %s dokončeno"
#: ../js/ui/windowAttentionHandler.js:41
#: ../js/ui/windowAttentionHandler.js:35
#, c-format
msgid "'%s' is ready"
msgstr "Připraveno \"%s\""
msgstr "Připraveno „%s“"
#. translators:
#. * The number of sound outputs on a particular device
@ -1591,10 +1608,10 @@ msgstr "Vypsat verzi"
msgid "Mode used by GDM for login screen"
msgstr "Režim použitý GDM pro přihlašovací obrazovku"
#: ../src/shell-app.c:581
#: ../src/shell-app.c:579
#, c-format
msgid "Failed to launch '%s'"
msgstr "Nelze spustit \"%s\""
msgstr "Nelze spustit „%s“"
#: ../src/shell-mobile-providers.c:80
msgid "United Kingdom"
@ -1626,46 +1643,4 @@ msgstr "Systém souborů"
#: ../src/shell-util.c:311
#, c-format
msgid "%1$s: %2$s"
msgstr "%1$s: %2$s"
#~ msgid "Localization Settings"
#~ msgstr "Nastavení národního prostředí"
#~ msgid "You're now connected to mobile broadband connection '%s'"
#~ msgstr "Právě jste připojeni k mobilnímu širokopásmovému připojení \"%s\""
#~ msgid "You're now connected to wireless network '%s'"
#~ msgstr "Právě jste připojeni k bezdrátové síti \"%s\""
#~ msgid "You're now connected to wired network '%s'"
#~ msgstr "Právě jste připojeni k drátové síti \"%s\""
#~ msgid "You're now connected to VPN network '%s'"
#~ msgstr "Právě jste připojeni k síti VPN \"%s\""
#~ msgid "Less than a minute ago"
#~ msgstr "Před méně než minutou"
#~ msgid "%d minute ago"
#~ msgid_plural "%d minutes ago"
#~ msgstr[0] "Před %d minutou"
#~ msgstr[1] "Před %d minutami"
#~ msgstr[2] "Před %d minutami"
#~ msgid "%d hour ago"
#~ msgid_plural "%d hours ago"
#~ msgstr[0] "Před %d hodinou"
#~ msgstr[1] "Před %d hodinami"
#~ msgstr[2] "Před %d hodinami"
#~ msgid "%d day ago"
#~ msgid_plural "%d days ago"
#~ msgstr[0] "Před %d dnem"
#~ msgstr[1] "Před %d dny"
#~ msgstr[2] "Před %d dny"
#~ msgid "%d week ago"
#~ msgid_plural "%d weeks ago"
#~ msgstr[0] "Před %d týdnem"
#~ msgstr[1] "Před %d týdny"
#~ msgstr[2] "Před %d týdny"
msgstr "%1$s: %2$s"

396
po/da.po
View File

@ -2,20 +2,21 @@
# Copyright (C) 2010-2011 gnome-shell
# This file is distributed under the same license as the gnome-shell package.
#
# Kris Thomsen <lakristho@gmail.com>, 2009-2011.
# Kris Thomsen <lakristho@gmail.com>, 2009-2012.
#
# Konventioner:
#
# pipeline => datakanal
# screencast => skærmoptagelse
# dash => favoritområde
# tray => statusfelt
#
msgid ""
msgstr ""
"Project-Id-Version: gnome-shell\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2011-09-22 16:07+0200\n"
"PO-Revision-Date: 2011-09-22 09:20+0000\n"
"POT-Creation-Date: 2012-01-03 12:21+0100\n"
"PO-Revision-Date: 2012-01-02 16:04+0000\n"
"Last-Translator: Kris Thomsen <lakristho@gmail.com>\n"
"Language-Team: Danish <dansk@dansk-gruppen.dk>\n"
"Language: da\n"
@ -26,7 +27,7 @@ msgstr ""
#: ../data/gnome-shell.desktop.in.in.h:1
msgid "GNOME Shell"
msgstr "Skal til GNOME"
msgstr "GNOME Shell"
#: ../data/gnome-shell.desktop.in.in.h:2
msgid "Window management and application launching"
@ -65,7 +66,7 @@ msgstr ""
#: ../data/org.gnome.shell.gschema.xml.in.h:6
msgid "History for command (Alt-F2) dialog"
msgstr "Historik for kommandodialog (Alt-F2)"
msgstr "Historik for kommandodialogen (Alt-F2)"
#: ../data/org.gnome.shell.gschema.xml.in.h:7
msgid "History for the looking glass dialog"
@ -147,7 +148,7 @@ msgid ""
"The framerate of the resulting screencast recordered by GNOME Shell's "
"screencast recorder in frames-per-second."
msgstr ""
"Billedfrekvensen på den endelige skærmoptagelse, optaget af GNOME-skallens "
"Billedfrekvensen på den endelige skærmoptagelse, optaget af GNOME-Shells "
"skærmoptager i billeder-per-sekund."
#: ../data/org.gnome.shell.gschema.xml.in.h:20
@ -161,10 +162,10 @@ msgid ""
"want to disable this for privacy reasons. Please note that doing so won't "
"remove already saved data."
msgstr ""
"Skallen overvåger normalt aktive programmer for at kunne vise de mest brugte "
"(f.eks. i genveje). Selvom disse data er holdt private, vil du muligvis "
"ønske at deaktivere dem af private grunde. Bemærk at selvom du gør dette, "
"vil det ikke fjerne de allerede gemte data."
"Shell'ens overvåger normalt aktive programmer for at kunne vise de mest "
"brugte (f.eks. i genveje). Selvom disse data er holdt private, vil du "
"muligvis ønske at deaktivere dem af private grunde. Bemærk at selvom du gør "
"dette, vil det ikke fjerne de allerede gemte data."
#: ../data/org.gnome.shell.gschema.xml.in.h:22
msgid "The type of keyboard to use."
@ -186,42 +187,42 @@ msgstr "Hvilket tastatur bruges"
msgid "disabled OpenSearch providers"
msgstr "deaktiverede OpenSearch-udbydere"
#: ../js/gdm/loginDialog.js:617
#: ../js/gdm/loginDialog.js:633
msgid "Session..."
msgstr "Session..."
#: ../js/gdm/loginDialog.js:785
#: ../js/gdm/loginDialog.js:804
msgctxt "title"
msgid "Sign In"
msgstr "Log ind"
#. translators: this message is shown below the password entry field
#. to indicate the user can swipe their finger instead
#: ../js/gdm/loginDialog.js:830
#: ../js/gdm/loginDialog.js:849
msgid "(or swipe finger)"
msgstr "(eller indlæs fingeraftryk)"
#: ../js/gdm/loginDialog.js:848
#: ../js/gdm/loginDialog.js:867
msgid "Not listed?"
msgstr "Ikke listet?"
#: ../js/gdm/loginDialog.js:1004 ../js/ui/endSessionDialog.js:426
#: ../js/ui/extensionSystem.js:477 ../js/ui/networkAgent.js:165
#: ../js/ui/polkitAuthenticationAgent.js:171 ../js/ui/status/bluetooth.js:480
#: ../js/gdm/loginDialog.js:1035 ../js/ui/endSessionDialog.js:426
#: ../js/ui/extensionSystem.js:477 ../js/ui/networkAgent.js:148
#: ../js/ui/polkitAuthenticationAgent.js:173 ../js/ui/status/bluetooth.js:480
msgid "Cancel"
msgstr "Annullér"
#: ../js/gdm/loginDialog.js:1009
#: ../js/gdm/loginDialog.js:1040
msgctxt "button"
msgid "Sign In"
msgstr "Log ind"
#: ../js/gdm/loginDialog.js:1358
#: ../js/gdm/loginDialog.js:1392
msgid "Login Window"
msgstr "Indlogningsvindue"
#: ../js/gdm/powerMenu.js:116 ../js/ui/userMenu.js:514
#: ../js/ui/userMenu.js:516 ../js/ui/userMenu.js:585
#: ../js/gdm/powerMenu.js:116 ../js/ui/userMenu.js:554
#: ../js/ui/userMenu.js:556 ../js/ui/userMenu.js:625
msgid "Suspend"
msgstr "Hviletilstand"
@ -444,32 +445,32 @@ msgstr "Denne uge"
msgid "Next week"
msgstr "Næste uge"
#: ../js/ui/contactDisplay.js:59 ../js/ui/notificationDaemon.js:444
#: ../js/ui/status/power.js:223 ../src/shell-app.c:355
#: ../js/ui/contactDisplay.js:65 ../js/ui/notificationDaemon.js:459
#: ../js/ui/status/power.js:223 ../src/shell-app.c:353
msgid "Unknown"
msgstr "Ukendt"
#: ../js/ui/contactDisplay.js:80 ../js/ui/userMenu.js:139
#: ../js/ui/contactDisplay.js:86 ../js/ui/userMenu.js:139
msgid "Available"
msgstr "Tilgængelig"
#: ../js/ui/contactDisplay.js:85 ../js/ui/userMenu.js:148
#: ../js/ui/contactDisplay.js:91 ../js/ui/userMenu.js:148
msgid "Away"
msgstr "Ikke tilstede"
#: ../js/ui/contactDisplay.js:89 ../js/ui/userMenu.js:142
#: ../js/ui/contactDisplay.js:95 ../js/ui/userMenu.js:142
msgid "Busy"
msgstr "Optaget"
#: ../js/ui/contactDisplay.js:93
#: ../js/ui/contactDisplay.js:99
msgid "Offline"
msgstr "Offline"
#: ../js/ui/contactDisplay.js:140
#: ../js/ui/contactDisplay.js:146
msgid "CONTACTS"
msgstr "KONTAKTER"
#: ../js/ui/dash.js:172 ../js/ui/messageTray.js:1197
#: ../js/ui/dash.js:174 ../js/ui/messageTray.js:1206
msgid "Remove"
msgstr "Fjern"
@ -533,11 +534,12 @@ msgid "RECENT ITEMS"
msgstr "SENESTE ELEMENTER"
#: ../js/ui/endSessionDialog.js:60
#, c-format
#, fuzzy, c-format
msgid "Log Out %s"
msgstr "Log %s ud"
#: ../js/ui/endSessionDialog.js:61 ../js/ui/endSessionDialog.js:75
#, fuzzy
msgid "Log Out"
msgstr "Log ud"
@ -602,96 +604,96 @@ msgstr "Installér"
msgid "Download and install '%s' from extensions.gnome.org?"
msgstr "Hent og installér \"%s\" fra extensions.gnome.org?"
#: ../js/ui/keyboard.js:517 ../js/ui/status/power.js:211
#: ../js/ui/keyboard.js:325
msgid "tray"
msgstr "statusfelt"
#: ../js/ui/keyboard.js:547 ../js/ui/status/power.js:211
msgid "Keyboard"
msgstr "Tastatur"
#: ../js/ui/lookingGlass.js:645
#: ../js/ui/lookingGlass.js:646
msgid "No extensions installed"
msgstr "Ingen udvidelser er installeret"
#: ../js/ui/lookingGlass.js:691
#: ../js/ui/lookingGlass.js:692
msgid "Enabled"
msgstr "Aktiveret"
#. translators:
#. * The device has been disabled
#: ../js/ui/lookingGlass.js:693 ../src/gvc/gvc-mixer-control.c:1093
#: ../js/ui/lookingGlass.js:694 ../src/gvc/gvc-mixer-control.c:1093
msgid "Disabled"
msgstr "Deaktiveret"
#: ../js/ui/lookingGlass.js:695
#: ../js/ui/lookingGlass.js:696
msgid "Error"
msgstr "Fejl"
#: ../js/ui/lookingGlass.js:697
#: ../js/ui/lookingGlass.js:698
msgid "Out of date"
msgstr "Udløbet"
#: ../js/ui/lookingGlass.js:699
#: ../js/ui/lookingGlass.js:700
msgid "Downloading"
msgstr "Henter"
#: ../js/ui/lookingGlass.js:724
#: ../js/ui/lookingGlass.js:721
msgid "View Source"
msgstr "Vis kilde"
#: ../js/ui/lookingGlass.js:730
#: ../js/ui/lookingGlass.js:727
msgid "Web Page"
msgstr "Webside"
#: ../js/ui/messageTray.js:1190
#: ../js/ui/messageTray.js:1199
msgid "Open"
msgstr "Åbn"
#: ../js/ui/messageTray.js:2372
#: ../js/ui/messageTray.js:2408
msgid "System Information"
msgstr "Systeminformation"
#: ../js/ui/networkAgent.js:145
msgid "Show password"
msgstr "Vis adgangskode"
#: ../js/ui/networkAgent.js:160
#: ../js/ui/networkAgent.js:143
msgid "Connect"
msgstr "Forbind"
#. Cisco LEAP
#: ../js/ui/networkAgent.js:255 ../js/ui/networkAgent.js:267
#: ../js/ui/networkAgent.js:294 ../js/ui/networkAgent.js:314
#: ../js/ui/networkAgent.js:324
#: ../js/ui/networkAgent.js:238 ../js/ui/networkAgent.js:250
#: ../js/ui/networkAgent.js:277 ../js/ui/networkAgent.js:297
#: ../js/ui/networkAgent.js:307
msgid "Password: "
msgstr "Adgangskode: "
#. static WEP
#: ../js/ui/networkAgent.js:260
#: ../js/ui/networkAgent.js:243
msgid "Key: "
msgstr "Nøgle: "
#. TTLS and PEAP are actually much more complicated, but this complication
#. is not visible here since we only care about phase2 authentication
#. (and don't even care of which one)
#: ../js/ui/networkAgent.js:292 ../js/ui/networkAgent.js:310
#: ../js/ui/networkAgent.js:275 ../js/ui/networkAgent.js:293
msgid "Username: "
msgstr "Brugernavn: "
#: ../js/ui/networkAgent.js:298
#: ../js/ui/networkAgent.js:281
msgid "Identity: "
msgstr "Identitet: "
#: ../js/ui/networkAgent.js:300
#: ../js/ui/networkAgent.js:283
msgid "Private key password: "
msgstr "Privatnøgle-adgangskode: "
#: ../js/ui/networkAgent.js:312
#: ../js/ui/networkAgent.js:295
msgid "Service: "
msgstr "Tjeneste: "
#: ../js/ui/networkAgent.js:341
#: ../js/ui/networkAgent.js:324
msgid "Authentication required by wireless network"
msgstr "Godkendelse påkrævet af trådløst netværk"
#: ../js/ui/networkAgent.js:342
#: ../js/ui/networkAgent.js:325
#, c-format
msgid ""
"Passwords or encryption keys are required to access the wireless network "
@ -700,35 +702,35 @@ msgstr ""
"Adgangskoder eller krypteringsnøgler er påkrævet for at få adgang til det "
"trådløse netværk \"%s\"."
#: ../js/ui/networkAgent.js:346
#: ../js/ui/networkAgent.js:329
msgid "Wired 802.1X authentication"
msgstr "Trådet 802.1X-godkendelse"
#: ../js/ui/networkAgent.js:348
#: ../js/ui/networkAgent.js:331
msgid "Network name: "
msgstr "Netværksnavn: "
#: ../js/ui/networkAgent.js:353
#: ../js/ui/networkAgent.js:336
msgid "DSL authentication"
msgstr "DSL-godkendelse"
#: ../js/ui/networkAgent.js:360
#: ../js/ui/networkAgent.js:343
msgid "PIN code required"
msgstr "PIN-kode påkrævet"
#: ../js/ui/networkAgent.js:361
#: ../js/ui/networkAgent.js:344
msgid "PIN code is needed for the mobile broadband device"
msgstr "PIN-kode er nødvendig for den mobile bredbåndsenhed"
#: ../js/ui/networkAgent.js:362
#: ../js/ui/networkAgent.js:345
msgid "PIN: "
msgstr "PIN: "
#: ../js/ui/networkAgent.js:368
#: ../js/ui/networkAgent.js:351
msgid "Mobile broadband network password"
msgstr "Adgangskode til mobilt bredbåndsnetværk"
#: ../js/ui/networkAgent.js:369
#: ../js/ui/networkAgent.js:352
#, c-format
msgid "A password is required to connect to '%s'."
msgstr "En adgangskode er påkrævet for at forbinde til \"%s\"."
@ -753,9 +755,9 @@ msgstr "Favoritområde"
#. TODO - _quit() doesn't really work on apps in state STARTING yet
#: ../js/ui/panel.js:539
#, c-format
#, fuzzy, c-format
msgid "Quit %s"
msgstr "Afslut %s"
msgstr "Afslut"
#. Translators: If there is no suitable word for "Activities"
#. in your language, you can use the word for "Overview".
@ -784,15 +786,15 @@ msgstr "Forbind til..."
msgid "PLACES & DEVICES"
msgstr "STEDER & ENHEDER"
#: ../js/ui/polkitAuthenticationAgent.js:72
#: ../js/ui/polkitAuthenticationAgent.js:73
msgid "Authentication Required"
msgstr "Godkendelse er påkrævet"
#: ../js/ui/polkitAuthenticationAgent.js:106
#: ../js/ui/polkitAuthenticationAgent.js:107
msgid "Administrator"
msgstr "Administrator"
#: ../js/ui/polkitAuthenticationAgent.js:175
#: ../js/ui/polkitAuthenticationAgent.js:177
msgid "Authenticate"
msgstr "Godkend"
@ -800,11 +802,11 @@ msgstr "Godkend"
#. * requested authentication was not gained; this can happen
#. * because of an authentication error (like invalid password),
#. * for instance.
#: ../js/ui/polkitAuthenticationAgent.js:256
#: ../js/ui/polkitAuthenticationAgent.js:258
msgid "Sorry, that didn't work. Please try again."
msgstr "Beklager, godkendelse mislykkedes. Prøv igen."
#: ../js/ui/polkitAuthenticationAgent.js:268
#: ../js/ui/polkitAuthenticationAgent.js:270
msgid "Password:"
msgstr "Adgangskode:"
@ -813,11 +815,11 @@ msgstr "Adgangskode:"
#. "ON" and "OFF") or "toggle-switch-intl" (for toggle
#. switches containing "◯" and "|"). Other values will
#. simply result in invisible toggle switches.
#: ../js/ui/popupMenu.js:727
#: ../js/ui/popupMenu.js:731
msgid "toggle-switch-us"
msgstr "toggle-switch-intl"
#: ../js/ui/runDialog.js:208
#: ../js/ui/runDialog.js:209
msgid "Please enter a command:"
msgstr "Indtast en kommando:"
@ -829,6 +831,22 @@ msgstr "Søger..."
msgid "No matching results."
msgstr "Ingen resultater fundet."
#: ../js/ui/shellEntry.js:30
msgid "Copy"
msgstr "Kopiér"
#: ../js/ui/shellEntry.js:35
msgid "Paste"
msgstr "Indsæt"
#: ../js/ui/shellEntry.js:81
msgid "Show Text"
msgstr "Vis tekst"
#: ../js/ui/shellEntry.js:83
msgid "Hide Text"
msgstr "Skjul tekst"
#: ../js/ui/shellMountOperation.js:285
msgid "Wrong password, please try again"
msgstr "Forkert adgangskode, forsøg venligst igen"
@ -962,7 +980,7 @@ msgstr "Giv altid adgang"
msgid "Grant this time only"
msgstr "Giv kun lov denne gang"
#: ../js/ui/status/bluetooth.js:392 ../js/ui/telepathyClient.js:1196
#: ../js/ui/status/bluetooth.js:392 ../js/ui/telepathyClient.js:1204
msgid "Reject"
msgstr "Afvis"
@ -1231,39 +1249,39 @@ msgid "Invitation"
msgstr "Invitation"
#. We got the TpContact
#: ../js/ui/telepathyClient.js:325
#: ../js/ui/telepathyClient.js:327
msgid "Call"
msgstr "Opkald"
#. We got the TpContact
#: ../js/ui/telepathyClient.js:353
#: ../js/ui/telepathyClient.js:357
msgid "File Transfer"
msgstr "Filoverførsel"
#: ../js/ui/telepathyClient.js:434
#: ../js/ui/telepathyClient.js:438
msgid "Subscription request"
msgstr "Godkendelsesforespørgsel"
#: ../js/ui/telepathyClient.js:470
#: ../js/ui/telepathyClient.js:474
msgid "Connection error"
msgstr "Forbindelsesfejl"
#: ../js/ui/telepathyClient.js:733
#: ../js/ui/telepathyClient.js:741
#, c-format
msgid "%s is online."
msgstr "%s er online."
#: ../js/ui/telepathyClient.js:738
#: ../js/ui/telepathyClient.js:746
#, c-format
msgid "%s is offline."
msgstr "%s er offline."
#: ../js/ui/telepathyClient.js:741
#: ../js/ui/telepathyClient.js:749
#, c-format
msgid "%s is away."
msgstr "%s er ikke til stede."
#: ../js/ui/telepathyClient.js:744
#: ../js/ui/telepathyClient.js:752
#, c-format
msgid "%s is busy."
msgstr "%s er optaget."
@ -1271,35 +1289,35 @@ msgstr "%s er optaget."
#. Translators: this is a time format string followed by a date.
#. If applicable, replace %X with a strftime format valid for your
#. locale, without seconds.
#: ../js/ui/telepathyClient.js:978
#: ../js/ui/telepathyClient.js:986
#, no-c-format
msgid "Sent at <b>%X</b> on <b>%A</b>"
msgstr "Sendt <b>%A</b> kl. <b>%H:%M</b>"
#. Translators: this is a time format in the style of "Wednesday, May 25",
#. shown when you get a chat message in the same year.
#: ../js/ui/telepathyClient.js:984
#: ../js/ui/telepathyClient.js:992
#, no-c-format
msgid "Sent on <b>%A</b>, <b>%B %d</b>"
msgstr "Sendt <b>%A</b> den <b>%e. %B</b>"
#. Translators: this is a time format in the style of "Wednesday, May 25, 2012",
#. shown when you get a chat message in a different year.
#: ../js/ui/telepathyClient.js:989
#: ../js/ui/telepathyClient.js:997
#, no-c-format
msgid "Sent on <b>%A</b>, <b>%B %d</b>, %Y"
msgstr "Sendt <b>%A</b> den <b>%e. %B</b>, %Y"
#. Translators: this is the other person changing their old IM name to their new
#. IM name.
#: ../js/ui/telepathyClient.js:1031
#: ../js/ui/telepathyClient.js:1039
#, c-format
msgid "%s is now known as %s"
msgstr "%s kalder sig nu %s"
#. translators: argument is a room name like
#. * room@jabber.org for example.
#: ../js/ui/telepathyClient.js:1140
#: ../js/ui/telepathyClient.js:1148
#, c-format
msgid "Invitation to %s"
msgstr "Invitation til %s"
@ -1307,34 +1325,35 @@ msgstr "Invitation til %s"
#. 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
#. * for example.
#: ../js/ui/telepathyClient.js:1148
#: ../js/ui/telepathyClient.js:1156
#, c-format
msgid "%s is inviting you to join %s"
msgstr "%s inviterer dig til at deltage i %s"
#: ../js/ui/telepathyClient.js:1150 ../js/ui/telepathyClient.js:1239
#: ../js/ui/telepathyClient.js:1343
#: ../js/ui/telepathyClient.js:1158 ../js/ui/telepathyClient.js:1248
#: ../js/ui/telepathyClient.js:1352
msgid "Decline"
msgstr "Afvis"
#: ../js/ui/telepathyClient.js:1151 ../js/ui/telepathyClient.js:1240
#: ../js/ui/telepathyClient.js:1344
#: ../js/ui/telepathyClient.js:1159 ../js/ui/telepathyClient.js:1249
#: ../js/ui/telepathyClient.js:1353
msgid "Accept"
msgstr "Acceptér"
#. translators: argument is a contact name like Alice for example.
#: ../js/ui/telepathyClient.js:1184
#: ../js/ui/telepathyClient.js:1192
#, c-format
msgid "Video call from %s"
msgstr "Videoopkald fra %s"
#. translators: argument is a contact name like Alice for example.
#: ../js/ui/telepathyClient.js:1187
#: ../js/ui/telepathyClient.js:1195
#, c-format
msgid "Call from %s"
msgstr "Opkald fra %s"
#: ../js/ui/telepathyClient.js:1197
#. translators: this is a button label (verb), not a noun
#: ../js/ui/telepathyClient.js:1206
msgid "Answer"
msgstr "Svar"
@ -1343,111 +1362,111 @@ msgstr "Svar"
#. * file name. The string will be something
#. * like: "Alice is sending you test.ogg"
#.
#: ../js/ui/telepathyClient.js:1233
#: ../js/ui/telepathyClient.js:1242
#, c-format
msgid "%s is sending you %s"
msgstr "%s sender dig %s"
#. To translators: The parameter is the contact's alias
#: ../js/ui/telepathyClient.js:1308
#: ../js/ui/telepathyClient.js:1317
#, c-format
msgid "%s would like permission to see when you are online"
msgstr "%s vil gerne have tilladelse til at se, når du er online"
#: ../js/ui/telepathyClient.js:1406
#: ../js/ui/telepathyClient.js:1415
msgid "Network error"
msgstr "Netværksfejl"
#: ../js/ui/telepathyClient.js:1408
#: ../js/ui/telepathyClient.js:1417
msgid "Authentication failed"
msgstr "Godkendelse mislykkedes"
#: ../js/ui/telepathyClient.js:1410
#: ../js/ui/telepathyClient.js:1419
msgid "Encryption error"
msgstr "Krypteringsfejl"
#: ../js/ui/telepathyClient.js:1412
#: ../js/ui/telepathyClient.js:1421
msgid "Certificate not provided"
msgstr "Certifikat ikke angivet"
#: ../js/ui/telepathyClient.js:1414
#: ../js/ui/telepathyClient.js:1423
msgid "Certificate untrusted"
msgstr "Utroværdigt certifikat"
#: ../js/ui/telepathyClient.js:1416
#: ../js/ui/telepathyClient.js:1425
msgid "Certificate expired"
msgstr "Certifikat udløbet"
#: ../js/ui/telepathyClient.js:1418
#: ../js/ui/telepathyClient.js:1427
msgid "Certificate not activated"
msgstr "Certifikat ikke aktiveret"
#: ../js/ui/telepathyClient.js:1420
#: ../js/ui/telepathyClient.js:1429
msgid "Certificate hostname mismatch"
msgstr "Certifikat-værtsnavn stemmer ikke"
#: ../js/ui/telepathyClient.js:1422
#: ../js/ui/telepathyClient.js:1431
msgid "Certificate fingerprint mismatch"
msgstr "Certifikat-fingeraftryk stemmer ikke"
#: ../js/ui/telepathyClient.js:1424
#: ../js/ui/telepathyClient.js:1433
msgid "Certificate self-signed"
msgstr "Certifikat selv-underskrevet"
#: ../js/ui/telepathyClient.js:1426
#: ../js/ui/telepathyClient.js:1435
msgid "Status is set to offline"
msgstr "Status er angivet til offline"
#: ../js/ui/telepathyClient.js:1428
#: ../js/ui/telepathyClient.js:1437
msgid "Encryption is not available"
msgstr "Kryptering er ikke tilgængelig"
#: ../js/ui/telepathyClient.js:1430
#: ../js/ui/telepathyClient.js:1439
msgid "Certificate is invalid"
msgstr "Ugyldigt certifikat"
#: ../js/ui/telepathyClient.js:1432
#: ../js/ui/telepathyClient.js:1441
msgid "Connection has been refused"
msgstr "Forbindelse er blevet afvist"
#: ../js/ui/telepathyClient.js:1434
#: ../js/ui/telepathyClient.js:1443
msgid "Connection can't be established"
msgstr "Forbindelse kan ikke oprettes"
#: ../js/ui/telepathyClient.js:1436
#: ../js/ui/telepathyClient.js:1445
msgid "Connection has been lost"
msgstr "Forbindelse er mistet"
#: ../js/ui/telepathyClient.js:1438
#: ../js/ui/telepathyClient.js:1447
msgid "This resource is already connected to the server"
msgstr "Denne ressource er allerede forbundet til serveren"
#: ../js/ui/telepathyClient.js:1440
#: ../js/ui/telepathyClient.js:1449
msgid ""
"Connection has been replaced by a new connection using the same resource"
msgstr ""
"Forbindelsen er blevet erstattet af en ny forbindelse, som bruger samme "
"ressource"
#: ../js/ui/telepathyClient.js:1442
#: ../js/ui/telepathyClient.js:1451
msgid "The account already exists on the server"
msgstr "Kontoen findes allerede på serveren"
#: ../js/ui/telepathyClient.js:1444
#: ../js/ui/telepathyClient.js:1453
msgid "Server is currently too busy to handle the connection"
msgstr "Serveren er i øjeblikket for travl til at behandle forbindelsen"
#: ../js/ui/telepathyClient.js:1446
#: ../js/ui/telepathyClient.js:1455
msgid "Certificate has been revoked"
msgstr "Certifikat er blevet påberåbt"
#: ../js/ui/telepathyClient.js:1448
#: ../js/ui/telepathyClient.js:1457
msgid ""
"Certificate uses an insecure cipher algorithm or is cryptographically weak"
msgstr ""
"Certifikat bruger en usikker cipher-algoritme eller er kryptografisk svag"
#: ../js/ui/telepathyClient.js:1450
#: ../js/ui/telepathyClient.js:1459
msgid ""
"The length of the server certificate, or the depth of the server certificate "
"chain, exceed the limits imposed by the cryptography library"
@ -1457,20 +1476,20 @@ msgstr ""
#. translators: argument is the account name, like
#. * name@jabber.org for example.
#: ../js/ui/telepathyClient.js:1459
#: ../js/ui/telepathyClient.js:1468
#, c-format
msgid "Connection to %s failed"
msgstr "Forbindelse til %s mislykkedes"
#: ../js/ui/telepathyClient.js:1468
#: ../js/ui/telepathyClient.js:1477
msgid "Reconnect"
msgstr "Forbind igen"
#: ../js/ui/telepathyClient.js:1469
#: ../js/ui/telepathyClient.js:1478
msgid "Edit account"
msgstr "Redigér konto"
#: ../js/ui/telepathyClient.js:1515
#: ../js/ui/telepathyClient.js:1524
msgid "Unknown reason"
msgstr "Ukendt årsag"
@ -1486,39 +1505,39 @@ msgstr "Tomgang"
msgid "Unavailable"
msgstr "Utilgængelig"
#: ../js/ui/userMenu.js:512 ../js/ui/userMenu.js:516 ../js/ui/userMenu.js:586
#: ../js/ui/userMenu.js:552 ../js/ui/userMenu.js:556 ../js/ui/userMenu.js:626
msgid "Power Off..."
msgstr "Sluk..."
#: ../js/ui/userMenu.js:548
#: ../js/ui/userMenu.js:588
msgid "Notifications"
msgstr "Beskeder"
#: ../js/ui/userMenu.js:556
#: ../js/ui/userMenu.js:596
msgid "Online Accounts"
msgstr "Online konti"
#: ../js/ui/userMenu.js:560
#: ../js/ui/userMenu.js:600
msgid "System Settings"
msgstr "Systemindstillinger"
#: ../js/ui/userMenu.js:567
#: ../js/ui/userMenu.js:607
msgid "Lock Screen"
msgstr "Lås skærm"
#: ../js/ui/userMenu.js:572
#: ../js/ui/userMenu.js:612
msgid "Switch User"
msgstr "Skift bruger"
#: ../js/ui/userMenu.js:577
#: ../js/ui/userMenu.js:617
msgid "Log Out..."
msgstr "Log ud..."
#: ../js/ui/userMenu.js:605
#: ../js/ui/userMenu.js:645
msgid "Your chat status will be set to busy"
msgstr "Din chat-status vil blive angivet som optaget"
#: ../js/ui/userMenu.js:606
#: ../js/ui/userMenu.js:646
msgid ""
"Notifications are now disabled, including chat messages. Your online status "
"has been adjusted to let others know that you might not see their messages."
@ -1531,20 +1550,15 @@ msgstr ""
#. in the search entry when no search is
#. active; it should not exceed ~30
#. characters.
#: ../js/ui/viewSelector.js:120
#: ../js/ui/viewSelector.js:121
msgid "Type to search..."
msgstr "Skriv for at søge..."
#: ../js/ui/viewSelector.js:140 ../src/shell-util.c:261
#: ../js/ui/viewSelector.js:142 ../src/shell-util.c:261
msgid "Search"
msgstr "Søg"
#: ../js/ui/windowAttentionHandler.js:39
#, c-format
msgid "%s has finished starting"
msgstr "%s er færdig med at starte"
#: ../js/ui/windowAttentionHandler.js:41
#: ../js/ui/windowAttentionHandler.js:35
#, c-format
msgid "'%s' is ready"
msgstr "\"%s\" er klar"
@ -1579,7 +1593,7 @@ msgstr "Udskriv version"
msgid "Mode used by GDM for login screen"
msgstr "Tilstand brugt af GDM til indlogningskærm"
#: ../src/shell-app.c:581
#: ../src/shell-app.c:579
#, c-format
msgid "Failed to launch '%s'"
msgstr "Kunne ikke køre \"%s\""
@ -1616,6 +1630,89 @@ msgstr "Filsystem"
msgid "%1$s: %2$s"
msgstr "%1$s: %2$s"
#~| msgid ""
#~| "GNOME Shell extensions have a uuid property; this key lists extensions "
#~| "which should not be loaded. This setting overrides enabled-extensions "
#~| "for extensions that appear in both lists."
#~ msgid ""
#~ "GNOME Shell extensions have a uuid property; this key lists extensions "
#~ "which should be loaded. Any extension that wants to be loaded needs to be "
#~ "in this list. You can also manipulate this list with the EnableExtension "
#~ "and DisableExtension DBus methods on org.gnome.Shell."
#~ msgstr ""
#~ "Udvidelser til GNOME-Shell har en uuid-indstilling; denne nøgle oplister "
#~ "udvidelser som skal indlæses. Alle udvidelser som ønsker at blive indlæst "
#~ "skal være i denne liste. Du kan også redigere denne liste med DBus-"
#~ "metoderne EnableExtension og DisableExtension ved org.shell.Shell."
#~| msgid "Log Out"
#~ msgctxt "button"
#~ msgid "Log Out"
#~ msgstr "Log ud"
#~| msgid "Power Off"
#~ msgctxt "title"
#~ msgid "Power Off"
#~ msgstr "Sluk"
#~| msgid "Restart"
#~ msgctxt "button"
#~ msgid "Restart"
#~ msgstr "Genstart"
#~| msgid "Power Off"
#~ msgctxt "button"
#~ msgid "Power Off"
#~ msgstr "Sluk"
#~| msgid "Restart"
#~ msgctxt "title"
#~ msgid "Restart"
#~ msgstr "Genstart"
#~ msgid "%s has not emitted any errors."
#~ msgstr "%s er ikke kommet med nogen fejl."
#~| msgid "Error"
#~ msgid "Hide Errors"
#~ msgstr "Skjul fejl"
#~| msgid "Error"
#~ msgid "Show Errors"
#~ msgstr "Vis fejl"
#~| msgid "minute"
#~| msgid_plural "minutes"
#~ msgid "Unmute"
#~ msgstr "Slå lyd til"
#~| msgid "Mouse"
#~ msgid "Mute"
#~ msgstr "Slå lyd fra"
#~ msgid ""
#~ "Sorry, no wisdom for you today:\n"
#~ "%s"
#~ msgstr ""
#~ "Beklager, ingen visdom til dig i dag:\n"
#~ "%s"
#~ msgid "%s the Oracle says"
#~ msgstr "Oraklet %s siger"
#~ msgid "Your favorite Easter Egg"
#~ msgstr "Dit yndlingspåskeæg"
#~| msgid "Volume"
#~ msgid "Home"
#~ msgstr "Hjem"
#~ msgid "Show password"
#~ msgstr "Vis adgangskode"
#~ msgid "%s has finished starting"
#~ msgstr "%s er færdig med at starte"
#~ msgid "If true, display onscreen keyboard."
#~ msgstr "Hvis sand vises skærmtastatur."
@ -1628,18 +1725,6 @@ msgstr "%1$s: %2$s"
#~ msgid "You're no longer connected to the network"
#~ msgstr "Du er ikke længere forbundet til netværket"
#~| msgid ""
#~| "GNOME Shell extensions have a uuid property; this key lists extensions "
#~| "which should not be loaded."
#~ msgid ""
#~ "GNOME Shell extensions have a uuid property; this key lists extensions "
#~ "which should not be loaded. This setting overrides enabled-extensions for "
#~ "extensions that appear in both lists."
#~ msgstr ""
#~ "GNOME-skallens udvidelser har en uuid-indstilling; denne nøgle oplister "
#~ "udvidelser som ikke skal indlæses. Denne indstilling overskriver enabled-"
#~ "extenstions for udvidelser, som vises i begge lister."
#~ msgid "Uuids of extensions to disable"
#~ msgstr "Uuid'er for udvidelser der deaktiveres"
@ -1699,9 +1784,6 @@ msgstr "%1$s: %2$s"
#~ msgid "Confirm"
#~ msgstr "Bekræft"
#~ msgid "Panel"
#~ msgstr "Panel"
#~ msgid "PREFERENCES"
#~ msgstr "INDSTILLINGER"

289
po/de.po
View File

@ -17,9 +17,9 @@ msgstr ""
"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"
"POT-Creation-Date: 2011-09-22 06:54+0000\n"
"PO-Revision-Date: 2011-09-24 20:49+0100\n"
"Last-Translator: Mario Blättermann <mariobl@freenet.de>\n"
"POT-Creation-Date: 2011-10-17 20:04+0000\n"
"PO-Revision-Date: 2011-10-17 22:05+0100\n"
"Last-Translator: Paul Seyfert <pseyfert@mathphys.fsk.uni-heidelberg.de>\n"
"Language-Team: Deutsch <gnome-de@gnome.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@ -200,38 +200,38 @@ msgstr "deaktivierte OpenSearch-Provider"
msgid "Session..."
msgstr "Sitzung …"
#: ../js/gdm/loginDialog.js:785
#: ../js/gdm/loginDialog.js:788
msgctxt "title"
msgid "Sign In"
msgstr "Anmelden"
#. translators: this message is shown below the password entry field
#. to indicate the user can swipe their finger instead
#: ../js/gdm/loginDialog.js:830
#: ../js/gdm/loginDialog.js:833
msgid "(or swipe finger)"
msgstr "(oder benutzen Sie den Fingerabdruckleser)"
#: ../js/gdm/loginDialog.js:848
#: ../js/gdm/loginDialog.js:851
msgid "Not listed?"
msgstr "Nicht aufgeführt?"
#: ../js/gdm/loginDialog.js:1004 ../js/ui/endSessionDialog.js:426
#: ../js/ui/extensionSystem.js:477 ../js/ui/networkAgent.js:165
#: ../js/ui/polkitAuthenticationAgent.js:171 ../js/ui/status/bluetooth.js:480
#: ../js/gdm/loginDialog.js:1019 ../js/ui/endSessionDialog.js:426
#: ../js/ui/extensionSystem.js:477 ../js/ui/networkAgent.js:148
#: ../js/ui/polkitAuthenticationAgent.js:173 ../js/ui/status/bluetooth.js:480
msgid "Cancel"
msgstr "Abbrechen"
#: ../js/gdm/loginDialog.js:1009
#: ../js/gdm/loginDialog.js:1024
msgctxt "button"
msgid "Sign In"
msgstr "Anmelden"
#: ../js/gdm/loginDialog.js:1358
#: ../js/gdm/loginDialog.js:1373
msgid "Login Window"
msgstr "Anmeldefenster"
#: ../js/gdm/powerMenu.js:116 ../js/ui/userMenu.js:514
#: ../js/ui/userMenu.js:516 ../js/ui/userMenu.js:585
#: ../js/gdm/powerMenu.js:116 ../js/ui/userMenu.js:549
#: ../js/ui/userMenu.js:551 ../js/ui/userMenu.js:620
msgid "Suspend"
msgstr "Bereitschaft"
@ -458,32 +458,32 @@ msgstr "Diese Woche"
msgid "Next week"
msgstr "Nächste Woche"
#: ../js/ui/contactDisplay.js:59 ../js/ui/notificationDaemon.js:444
#: ../js/ui/status/power.js:223 ../src/shell-app.c:355
#: ../js/ui/contactDisplay.js:65 ../js/ui/notificationDaemon.js:444
#: ../js/ui/status/power.js:223 ../src/shell-app.c:353
msgid "Unknown"
msgstr "Unbekannt"
#: ../js/ui/contactDisplay.js:80 ../js/ui/userMenu.js:139
#: ../js/ui/contactDisplay.js:86 ../js/ui/userMenu.js:139
msgid "Available"
msgstr "Verfügbar"
#: ../js/ui/contactDisplay.js:85 ../js/ui/userMenu.js:148
#: ../js/ui/contactDisplay.js:91 ../js/ui/userMenu.js:148
msgid "Away"
msgstr "Abwesend"
#: ../js/ui/contactDisplay.js:89 ../js/ui/userMenu.js:142
#: ../js/ui/contactDisplay.js:95 ../js/ui/userMenu.js:142
msgid "Busy"
msgstr "Beschäftigt"
#: ../js/ui/contactDisplay.js:93
#: ../js/ui/contactDisplay.js:99
msgid "Offline"
msgstr "Abgemeldet"
#: ../js/ui/contactDisplay.js:140
#: ../js/ui/contactDisplay.js:146
msgid "CONTACTS"
msgstr "KONTAKTE"
#: ../js/ui/dash.js:172 ../js/ui/messageTray.js:1197
#: ../js/ui/dash.js:174 ../js/ui/messageTray.js:1205
msgid "Remove"
msgstr "Entfernen"
@ -622,96 +622,96 @@ msgstr "Installieren"
msgid "Download and install '%s' from extensions.gnome.org?"
msgstr "»%s« von extensions.gnome.org herunterladen und installieren?"
#: ../js/ui/keyboard.js:517 ../js/ui/status/power.js:211
#: ../js/ui/keyboard.js:325
msgid "tray"
msgstr "Benachrichtigungsfeld"
#: ../js/ui/keyboard.js:547 ../js/ui/status/power.js:211
msgid "Keyboard"
msgstr "Tastatur"
#: ../js/ui/lookingGlass.js:645
#: ../js/ui/lookingGlass.js:646
msgid "No extensions installed"
msgstr "Keine Erweiterungen installiert"
#: ../js/ui/lookingGlass.js:691
#: ../js/ui/lookingGlass.js:692
msgid "Enabled"
msgstr "Aktiviert"
#. translators:
#. * The device has been disabled
#: ../js/ui/lookingGlass.js:693 ../src/gvc/gvc-mixer-control.c:1093
#: ../js/ui/lookingGlass.js:694 ../src/gvc/gvc-mixer-control.c:1093
msgid "Disabled"
msgstr "Deaktiviert"
#: ../js/ui/lookingGlass.js:695
#: ../js/ui/lookingGlass.js:696
msgid "Error"
msgstr "Fehler"
#: ../js/ui/lookingGlass.js:697
#: ../js/ui/lookingGlass.js:698
msgid "Out of date"
msgstr "Veraltet"
#: ../js/ui/lookingGlass.js:699
#: ../js/ui/lookingGlass.js:700
msgid "Downloading"
msgstr "Herunterladen"
#: ../js/ui/lookingGlass.js:724
#: ../js/ui/lookingGlass.js:721
msgid "View Source"
msgstr "Quelle zeigen"
#: ../js/ui/lookingGlass.js:730
#: ../js/ui/lookingGlass.js:727
msgid "Web Page"
msgstr "Webseite"
#: ../js/ui/messageTray.js:1190
#: ../js/ui/messageTray.js:1198
msgid "Open"
msgstr "Öffnen"
#: ../js/ui/messageTray.js:2372
#: ../js/ui/messageTray.js:2407
msgid "System Information"
msgstr "Systeminformationen"
#: ../js/ui/networkAgent.js:145
msgid "Show password"
msgstr "Passwort anzeigen"
#: ../js/ui/networkAgent.js:160
#: ../js/ui/networkAgent.js:143
msgid "Connect"
msgstr "Verbinden"
#. Cisco LEAP
#: ../js/ui/networkAgent.js:255 ../js/ui/networkAgent.js:267
#: ../js/ui/networkAgent.js:294 ../js/ui/networkAgent.js:314
#: ../js/ui/networkAgent.js:324
#: ../js/ui/networkAgent.js:238 ../js/ui/networkAgent.js:250
#: ../js/ui/networkAgent.js:277 ../js/ui/networkAgent.js:297
#: ../js/ui/networkAgent.js:307
msgid "Password: "
msgstr "Passwort:"
#. static WEP
#: ../js/ui/networkAgent.js:260
#: ../js/ui/networkAgent.js:243
msgid "Key: "
msgstr "Schlüssel:"
#. TTLS and PEAP are actually much more complicated, but this complication
#. is not visible here since we only care about phase2 authentication
#. (and don't even care of which one)
#: ../js/ui/networkAgent.js:292 ../js/ui/networkAgent.js:310
#: ../js/ui/networkAgent.js:275 ../js/ui/networkAgent.js:293
msgid "Username: "
msgstr "Benutzername:"
#: ../js/ui/networkAgent.js:298
#: ../js/ui/networkAgent.js:281
msgid "Identity: "
msgstr "Identität:"
#: ../js/ui/networkAgent.js:300
#: ../js/ui/networkAgent.js:283
msgid "Private key password: "
msgstr "Passwort für geheimen Schlüssel:"
#: ../js/ui/networkAgent.js:312
#: ../js/ui/networkAgent.js:295
msgid "Service: "
msgstr "Dienst:"
#: ../js/ui/networkAgent.js:341
#: ../js/ui/networkAgent.js:324
msgid "Authentication required by wireless network"
msgstr "Legitimierung für Funknetzwerk wird benötigt"
#: ../js/ui/networkAgent.js:342
#: ../js/ui/networkAgent.js:325
#, c-format
msgid ""
"Passwords or encryption keys are required to access the wireless network '%"
@ -720,35 +720,35 @@ msgstr ""
"Passwörter oder Schlüssel sind erforderlich, um auf das Funknetzwerk »%s« "
"zuzugreifen."
#: ../js/ui/networkAgent.js:346
#: ../js/ui/networkAgent.js:329
msgid "Wired 802.1X authentication"
msgstr "Kabelgebundene 802.1X-Legitimierung"
#: ../js/ui/networkAgent.js:348
#: ../js/ui/networkAgent.js:331
msgid "Network name: "
msgstr "Netzwerkname:"
#: ../js/ui/networkAgent.js:353
#: ../js/ui/networkAgent.js:336
msgid "DSL authentication"
msgstr "DSL-Legitimierung"
#: ../js/ui/networkAgent.js:360
#: ../js/ui/networkAgent.js:343
msgid "PIN code required"
msgstr "PIN-Code ist erforderlich"
#: ../js/ui/networkAgent.js:361
#: ../js/ui/networkAgent.js:344
msgid "PIN code is needed for the mobile broadband device"
msgstr "Für das mobile Breitbandgerät wird ein PIN-Code benötigt."
#: ../js/ui/networkAgent.js:362
#: ../js/ui/networkAgent.js:345
msgid "PIN: "
msgstr "PIN: "
#: ../js/ui/networkAgent.js:368
#: ../js/ui/networkAgent.js:351
msgid "Mobile broadband network password"
msgstr "Passwort der mobilen Breitbandverbindung"
#: ../js/ui/networkAgent.js:369
#: ../js/ui/networkAgent.js:352
#, c-format
msgid "A password is required to connect to '%s'."
msgstr "Es wird ein Passwort benötigt, um sich mit »%s« zu verbinden."
@ -805,15 +805,15 @@ msgstr "Verbinden mit …"
msgid "PLACES & DEVICES"
msgstr "ORTE UND GERÄTE"
#: ../js/ui/polkitAuthenticationAgent.js:72
#: ../js/ui/polkitAuthenticationAgent.js:73
msgid "Authentication Required"
msgstr "Legitimierung erforderlich"
#: ../js/ui/polkitAuthenticationAgent.js:106
#: ../js/ui/polkitAuthenticationAgent.js:107
msgid "Administrator"
msgstr "Systemverwalter"
#: ../js/ui/polkitAuthenticationAgent.js:175
#: ../js/ui/polkitAuthenticationAgent.js:177
msgid "Authenticate"
msgstr "Legitimieren"
@ -821,11 +821,11 @@ msgstr "Legitimieren"
#. * requested authentication was not gained; this can happen
#. * because of an authentication error (like invalid password),
#. * for instance.
#: ../js/ui/polkitAuthenticationAgent.js:256
#: ../js/ui/polkitAuthenticationAgent.js:258
msgid "Sorry, that didn't work. Please try again."
msgstr "Entschuldigung, das hat nicht geklappt. Bitte versuchen Sie es erneut."
#: ../js/ui/polkitAuthenticationAgent.js:268
#: ../js/ui/polkitAuthenticationAgent.js:270
msgid "Password:"
msgstr "Passwort:"
@ -834,11 +834,11 @@ msgstr "Passwort:"
#. "ON" and "OFF") or "toggle-switch-intl" (for toggle
#. switches containing "◯" and "|"). Other values will
#. simply result in invisible toggle switches.
#: ../js/ui/popupMenu.js:727
#: ../js/ui/popupMenu.js:731
msgid "toggle-switch-us"
msgstr "toggle-switch-intl"
#: ../js/ui/runDialog.js:208
#: ../js/ui/runDialog.js:209
msgid "Please enter a command:"
msgstr "Bitte geben Sie einen Befehl ein:"
@ -850,6 +850,22 @@ msgstr "Suche läuft …"
msgid "No matching results."
msgstr "Keine passenden Ergebnisse."
#: ../js/ui/shellEntry.js:30
msgid "Copy"
msgstr "Kopieren"
#: ../js/ui/shellEntry.js:35
msgid "Paste"
msgstr "Einfügen"
#: ../js/ui/shellEntry.js:81
msgid "Show Text"
msgstr "Text anzeigen"
#: ../js/ui/shellEntry.js:83
msgid "Hide Text"
msgstr "Text verbergen"
#: ../js/ui/shellMountOperation.js:285
msgid "Wrong password, please try again"
msgstr "Falsches Passwort, bitte versuchen Sie es erneut"
@ -984,7 +1000,7 @@ msgstr "Immer Zugriff gewähren"
msgid "Grant this time only"
msgstr "Nur dieses Mal gewähren"
#: ../js/ui/status/bluetooth.js:392 ../js/ui/telepathyClient.js:1196
#: ../js/ui/status/bluetooth.js:392 ../js/ui/telepathyClient.js:1204
msgid "Reject"
msgstr "Abweisen"
@ -1254,39 +1270,39 @@ msgid "Invitation"
msgstr "Einladung"
#. We got the TpContact
#: ../js/ui/telepathyClient.js:325
#: ../js/ui/telepathyClient.js:327
msgid "Call"
msgstr "Anruf"
#. We got the TpContact
#: ../js/ui/telepathyClient.js:353
#: ../js/ui/telepathyClient.js:357
msgid "File Transfer"
msgstr "Dateiübertragung"
#: ../js/ui/telepathyClient.js:434
#: ../js/ui/telepathyClient.js:438
msgid "Subscription request"
msgstr "Abonnementanfrage"
#: ../js/ui/telepathyClient.js:470
#: ../js/ui/telepathyClient.js:474
msgid "Connection error"
msgstr "Verbindungsfehler"
#: ../js/ui/telepathyClient.js:733
#: ../js/ui/telepathyClient.js:741
#, c-format
msgid "%s is online."
msgstr "%s ist angemeldet."
#: ../js/ui/telepathyClient.js:738
#: ../js/ui/telepathyClient.js:746
#, c-format
msgid "%s is offline."
msgstr "%s ist abgemeldet."
#: ../js/ui/telepathyClient.js:741
#: ../js/ui/telepathyClient.js:749
#, c-format
msgid "%s is away."
msgstr "»%s« ist abwesend."
#: ../js/ui/telepathyClient.js:744
#: ../js/ui/telepathyClient.js:752
#, c-format
msgid "%s is busy."
msgstr "%s ist beschäftigt."
@ -1294,35 +1310,35 @@ msgstr "%s ist beschäftigt."
#. Translators: this is a time format string followed by a date.
#. If applicable, replace %X with a strftime format valid for your
#. locale, without seconds.
#: ../js/ui/telepathyClient.js:978
#: ../js/ui/telepathyClient.js:986
#, no-c-format
msgid "Sent at <b>%X</b> on <b>%A</b>"
msgstr "Gesendet am <b>%A</b> um <b>%X</b> "
#. Translators: this is a time format in the style of "Wednesday, May 25",
#. shown when you get a chat message in the same year.
#: ../js/ui/telepathyClient.js:984
#: ../js/ui/telepathyClient.js:992
#, no-c-format
msgid "Sent on <b>%A</b>, <b>%B %d</b>"
msgstr "Gesendet am <b>%A</b>, <b>%d. %B</b>"
#. Translators: this is a time format in the style of "Wednesday, May 25, 2012",
#. shown when you get a chat message in a different year.
#: ../js/ui/telepathyClient.js:989
#: ../js/ui/telepathyClient.js:997
#, no-c-format
msgid "Sent on <b>%A</b>, <b>%B %d</b>, %Y"
msgstr "Gesendet am <b>%A</b>, <b>%d. %B</b> %Y"
#. Translators: this is the other person changing their old IM name to their new
#. IM name.
#: ../js/ui/telepathyClient.js:1031
#: ../js/ui/telepathyClient.js:1039
#, c-format
msgid "%s is now known as %s"
msgstr "%s heißt jetzt %s"
#. translators: argument is a room name like
#. * room@jabber.org for example.
#: ../js/ui/telepathyClient.js:1140
#: ../js/ui/telepathyClient.js:1148
#, c-format
msgid "Invitation to %s"
msgstr "Einladung zum Betreten von %s"
@ -1330,34 +1346,35 @@ msgstr "Einladung zum Betreten von %s"
#. 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
#. * for example.
#: ../js/ui/telepathyClient.js:1148
#: ../js/ui/telepathyClient.js:1156
#, c-format
msgid "%s is inviting you to join %s"
msgstr "%s lädt Sie ein, %s beizutreten"
#: ../js/ui/telepathyClient.js:1150 ../js/ui/telepathyClient.js:1239
#: ../js/ui/telepathyClient.js:1343
#: ../js/ui/telepathyClient.js:1158 ../js/ui/telepathyClient.js:1248
#: ../js/ui/telepathyClient.js:1352
msgid "Decline"
msgstr "Ablehnen"
#: ../js/ui/telepathyClient.js:1151 ../js/ui/telepathyClient.js:1240
#: ../js/ui/telepathyClient.js:1344
#: ../js/ui/telepathyClient.js:1159 ../js/ui/telepathyClient.js:1249
#: ../js/ui/telepathyClient.js:1353
msgid "Accept"
msgstr "Annehmen"
#. translators: argument is a contact name like Alice for example.
#: ../js/ui/telepathyClient.js:1184
#: ../js/ui/telepathyClient.js:1192
#, c-format
msgid "Video call from %s"
msgstr "Video-Anruf von %s"
#. translators: argument is a contact name like Alice for example.
#: ../js/ui/telepathyClient.js:1187
#: ../js/ui/telepathyClient.js:1195
#, c-format
msgid "Call from %s"
msgstr "Anruf von %s"
#: ../js/ui/telepathyClient.js:1197
#. translators: this is a button label (verb), not a noun
#: ../js/ui/telepathyClient.js:1206
msgid "Answer"
msgstr "Antworten"
@ -1366,113 +1383,113 @@ msgstr "Antworten"
#. * file name. The string will be something
#. * like: "Alice is sending you test.ogg"
#.
#: ../js/ui/telepathyClient.js:1233
#: ../js/ui/telepathyClient.js:1242
#, c-format
msgid "%s is sending you %s"
msgstr "%s sendet Ihnen %s"
#. To translators: The parameter is the contact's alias
#: ../js/ui/telepathyClient.js:1308
#: ../js/ui/telepathyClient.js:1317
#, c-format
msgid "%s would like permission to see when you are online"
msgstr "%s bittet um das Recht, Ihre Online-Verfügbarkeit sehen zu dürfen"
#: ../js/ui/telepathyClient.js:1406
#: ../js/ui/telepathyClient.js:1415
msgid "Network error"
msgstr "Netzwerkfehler"
#: ../js/ui/telepathyClient.js:1408
#: ../js/ui/telepathyClient.js:1417
msgid "Authentication failed"
msgstr "Legitimierung fehlgeschlagen"
#: ../js/ui/telepathyClient.js:1410
#: ../js/ui/telepathyClient.js:1419
msgid "Encryption error"
msgstr "Verschlüsselungsfehler"
#: ../js/ui/telepathyClient.js:1412
#: ../js/ui/telepathyClient.js:1421
msgid "Certificate not provided"
msgstr "Zertifikat wurde nicht bereitgestellt"
#: ../js/ui/telepathyClient.js:1414
#: ../js/ui/telepathyClient.js:1423
msgid "Certificate untrusted"
msgstr "Zertifikat nicht vertrauenswürdig"
#: ../js/ui/telepathyClient.js:1416
#: ../js/ui/telepathyClient.js:1425
msgid "Certificate expired"
msgstr "Zertifikat abgelaufen"
#: ../js/ui/telepathyClient.js:1418
#: ../js/ui/telepathyClient.js:1427
msgid "Certificate not activated"
msgstr "Zertifikat nicht aktiviert"
#: ../js/ui/telepathyClient.js:1420
#: ../js/ui/telepathyClient.js:1429
msgid "Certificate hostname mismatch"
msgstr "Rechnername des Zertifikats stimmt nicht überein"
#: ../js/ui/telepathyClient.js:1422
#: ../js/ui/telepathyClient.js:1431
msgid "Certificate fingerprint mismatch"
msgstr "Fingerabdruck des Zertifikats stimmt nicht überein"
#: ../js/ui/telepathyClient.js:1424
#: ../js/ui/telepathyClient.js:1433
msgid "Certificate self-signed"
msgstr "Selbstsigniertes Zertifikat"
#: ../js/ui/telepathyClient.js:1426
#: ../js/ui/telepathyClient.js:1435
msgid "Status is set to offline"
msgstr "Der Status ist auf »Abgemeldet« gesetzt"
#: ../js/ui/telepathyClient.js:1428
#: ../js/ui/telepathyClient.js:1437
msgid "Encryption is not available"
msgstr "Verschlüsselung ist nicht verfügbar"
#: ../js/ui/telepathyClient.js:1430
#: ../js/ui/telepathyClient.js:1439
msgid "Certificate is invalid"
msgstr "Zertifikat ist ungültig"
#: ../js/ui/telepathyClient.js:1432
#: ../js/ui/telepathyClient.js:1441
msgid "Connection has been refused"
msgstr "Verbindungsaufbau wurde verweigert"
#: ../js/ui/telepathyClient.js:1434
#: ../js/ui/telepathyClient.js:1443
msgid "Connection can't be established"
msgstr "Verbindung kann nicht hergestellt werden"
#: ../js/ui/telepathyClient.js:1436
#: ../js/ui/telepathyClient.js:1445
msgid "Connection has been lost"
msgstr "Verbindung wurde unterbrochen"
#: ../js/ui/telepathyClient.js:1438
#: ../js/ui/telepathyClient.js:1447
msgid "This resource is already connected to the server"
msgstr "Diese Ressource ist bereits mit dem Server verbunden"
#: ../js/ui/telepathyClient.js:1440
#: ../js/ui/telepathyClient.js:1449
msgid ""
"Connection has been replaced by a new connection using the same resource"
msgstr ""
"Die Verbindung wurde durch eine neue Verbindung mit der gleichen Ressource "
"ersetzt"
#: ../js/ui/telepathyClient.js:1442
#: ../js/ui/telepathyClient.js:1451
msgid "The account already exists on the server"
msgstr "Dieses Konto ist bereits auf dem Server vorhanden"
#: ../js/ui/telepathyClient.js:1444
#: ../js/ui/telepathyClient.js:1453
msgid "Server is currently too busy to handle the connection"
msgstr ""
"Der Server ist derzeit überlastet und kann die Verbindung nicht annehmen"
#: ../js/ui/telepathyClient.js:1446
#: ../js/ui/telepathyClient.js:1455
msgid "Certificate has been revoked"
msgstr "Zertifikat wurde zurückgezogen"
#: ../js/ui/telepathyClient.js:1448
#: ../js/ui/telepathyClient.js:1457
msgid ""
"Certificate uses an insecure cipher algorithm or is cryptographically weak"
msgstr ""
"Das Zertifikat verwendet einen unsicheren Chiffrier-Algorithmus oder ist "
"kryptografisch schwach"
#: ../js/ui/telepathyClient.js:1450
#: ../js/ui/telepathyClient.js:1459
msgid ""
"The length of the server certificate, or the depth of the server certificate "
"chain, exceed the limits imposed by the cryptography library"
@ -1483,20 +1500,20 @@ msgstr ""
#. translators: argument is the account name, like
#. * name@jabber.org for example.
#: ../js/ui/telepathyClient.js:1459
#: ../js/ui/telepathyClient.js:1468
#, c-format
msgid "Connection to %s failed"
msgstr "Verbindung zu %s ist fehlgeschlagen"
#: ../js/ui/telepathyClient.js:1468
#: ../js/ui/telepathyClient.js:1477
msgid "Reconnect"
msgstr "Erneut verbinden"
#: ../js/ui/telepathyClient.js:1469
#: ../js/ui/telepathyClient.js:1478
msgid "Edit account"
msgstr "Konto bearbeiten"
#: ../js/ui/telepathyClient.js:1515
#: ../js/ui/telepathyClient.js:1524
msgid "Unknown reason"
msgstr "Unbekannter Grund"
@ -1512,39 +1529,39 @@ msgstr "Untätig"
msgid "Unavailable"
msgstr "Nicht verfügbar"
#: ../js/ui/userMenu.js:512 ../js/ui/userMenu.js:516 ../js/ui/userMenu.js:586
#: ../js/ui/userMenu.js:547 ../js/ui/userMenu.js:551 ../js/ui/userMenu.js:621
msgid "Power Off..."
msgstr "Ausschalten …"
#: ../js/ui/userMenu.js:548
#: ../js/ui/userMenu.js:583
msgid "Notifications"
msgstr "Benachrichtigungen"
#: ../js/ui/userMenu.js:556
#: ../js/ui/userMenu.js:591
msgid "Online Accounts"
msgstr "Online-Konten"
#: ../js/ui/userMenu.js:560
#: ../js/ui/userMenu.js:595
msgid "System Settings"
msgstr "Systemeinstellungen"
#: ../js/ui/userMenu.js:567
#: ../js/ui/userMenu.js:602
msgid "Lock Screen"
msgstr "Bildschirm sperren"
#: ../js/ui/userMenu.js:572
#: ../js/ui/userMenu.js:607
msgid "Switch User"
msgstr "Benutzer wechseln"
#: ../js/ui/userMenu.js:577
#: ../js/ui/userMenu.js:612
msgid "Log Out..."
msgstr "Abmelden …"
#: ../js/ui/userMenu.js:605
#: ../js/ui/userMenu.js:640
msgid "Your chat status will be set to busy"
msgstr "Ihr Anwesenheitsstatus wird auf »Beschäftigt« gesetzt"
#: ../js/ui/userMenu.js:606
#: ../js/ui/userMenu.js:641
msgid ""
"Notifications are now disabled, including chat messages. Your online status "
"has been adjusted to let others know that you might not see their messages."
@ -1557,20 +1574,15 @@ msgstr ""
#. in the search entry when no search is
#. active; it should not exceed ~30
#. characters.
#: ../js/ui/viewSelector.js:120
#: ../js/ui/viewSelector.js:121
msgid "Type to search..."
msgstr "Suchbegriff eingeben …"
#: ../js/ui/viewSelector.js:140 ../src/shell-util.c:261
#: ../js/ui/viewSelector.js:142 ../src/shell-util.c:261
msgid "Search"
msgstr "Suchen"
#: ../js/ui/windowAttentionHandler.js:39
#, c-format
msgid "%s has finished starting"
msgstr "Start von %s ist abgeschlossen"
#: ../js/ui/windowAttentionHandler.js:41
#: ../js/ui/windowAttentionHandler.js:35
#, c-format
msgid "'%s' is ready"
msgstr "»%s« ist bereit"
@ -1605,7 +1617,7 @@ msgstr "Version ausgeben"
msgid "Mode used by GDM for login screen"
msgstr "Der durch GDM im Anmeldefenster verwendete Modus"
#: ../src/shell-app.c:581
#: ../src/shell-app.c:579
#, c-format
msgid "Failed to launch '%s'"
msgstr "»%s« konnte nicht gestartet werden"
@ -1642,6 +1654,21 @@ msgstr "Dateisystem"
msgid "%1$s: %2$s"
msgstr "%1$s: %2$s"
#~ msgid "Show password"
#~ msgstr "Passwort anzeigen"
#~ msgid "%s has not emitted any errors."
#~ msgstr "%s hat keine Fehler ausgegeben."
#~ msgid "Hide Errors"
#~ msgstr "Fehler verbergen"
#~ msgid "Show Errors"
#~ msgstr "Fehler anzeigen"
#~ msgid "%s has finished starting"
#~ msgstr "Start von %s ist abgeschlossen"
#~ msgid "If true, display onscreen keyboard."
#~ msgstr "Legt fest, ob eine Bildschirmtastatur angezeigt wird."

File diff suppressed because it is too large Load Diff

354
po/eo.po
View File

@ -1,4 +1,4 @@
# Esperanto translation of gnome-shell.
# Esperanto translation for gnome-shell.
# Copyright (C) 2011 Free Software Foundation, Inc.
# This file is distributed under the same license as the gnome-shell package.
# Tiffany Antopolski <tiffany.antopolski@gmail.com>, 2011.
@ -9,16 +9,16 @@ msgstr ""
"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"
"POT-Creation-Date: 2011-09-22 17:28+0000\n"
"PO-Revision-Date: 2011-09-22 20:29+0200\n"
"POT-Creation-Date: 2011-10-24 17:45+0000\n"
"PO-Revision-Date: 2011-10-26 19:01+0200\n"
"Last-Translator: Kristjan SCHMIDT <kristjan.schmidt@googlemail.com>\n"
"Language-Team: Esperanto <ubuntu-l10n-eo@lists.launchpad.net>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Content-Transfer-Encoding: 8bits\n"
"Language: eo\n"
"Plural-Forms: nplurals=2; plural=(n != 1)\n"
"X-Generator: Virtaal 0.7.0\n"
"X-Generator: Virtaal 0.7.1-rc1\n"
"X-DamnedLies-Scope: partial\n"
"X-Project-Style: gnome\n"
@ -62,13 +62,12 @@ msgid "History for command (Alt-F2) dialog"
msgstr "Historio de la komando-dialogo (Alt+F2)"
#: ../data/org.gnome.shell.gschema.xml.in.h:7
#, fuzzy
msgid "History for the looking glass dialog"
msgstr "Historio de la vitro-dialogo"
msgstr "Historio de la dialogo de 'looking glass'"
#: ../data/org.gnome.shell.gschema.xml.in.h:8
msgid "If true, display date in the clock, in addition to time."
msgstr "Se vera, montri daton en la horloo, krom la horo."
msgstr "Se vera, montri daton en la horloĝo, krom la horo."
#: ../data/org.gnome.shell.gschema.xml.in.h:9
msgid "If true, display seconds in time."
@ -100,7 +99,7 @@ msgstr ""
#: ../data/org.gnome.shell.gschema.xml.in.h:14
msgid "Show date in clock"
msgstr "Montri daton en horloo"
msgstr "Montri daton en horloĝo"
#: ../data/org.gnome.shell.gschema.xml.in.h:15
msgid "Show the week date in the calendar"
@ -142,10 +141,10 @@ msgid ""
"want to disable this for privacy reasons. Please note that doing so won't "
"remove already saved data."
msgstr ""
"La ŝelo kutime kontrolas la ruliĝaj aplikaĵoj por montri plej uzitaj "
"aplikaĵoj (ekz. en lanĉiloj). Kvankam ĉi tiu datumoj estos tenata privata, "
"vi pove volos malŝalti ĉi tiu pro privatado kielo. Bonvole atentu ke faranta "
"ĉi tiu ne forigos jam konservitaj datumoj ."
"La ŝelo kutime kontrolas la ruliĝajn aplikaĵojn por montri la plej uzitajn "
"aplikaĵojn (ekz. en lanĉiloj). Kvankam ĉi tiu datumoj estos tenata privata, "
"vi eble volas elŝalti ĉi tion pro privateca kialo. Bonvole atentu ke faranta "
"ĉi tion ne forigos jam konservitajn datumojn."
#: ../data/org.gnome.shell.gschema.xml.in.h:22
msgid "The type of keyboard to use."
@ -167,42 +166,42 @@ msgstr "Uzi kiun klavaron"
msgid "disabled OpenSearch providers"
msgstr "elŝaltitaj OpenSearch-provizantoj"
#: ../js/gdm/loginDialog.js:617
#: ../js/gdm/loginDialog.js:633
msgid "Session..."
msgstr "Seanco..."
#: ../js/gdm/loginDialog.js:785
#: ../js/gdm/loginDialog.js:804
msgctxt "title"
msgid "Sign In"
msgstr "Ensaluti"
#. translators: this message is shown below the password entry field
#. to indicate the user can swipe their finger instead
#: ../js/gdm/loginDialog.js:830
#: ../js/gdm/loginDialog.js:849
msgid "(or swipe finger)"
msgstr "(aŭ pasu fingron)"
#: ../js/gdm/loginDialog.js:848
#: ../js/gdm/loginDialog.js:867
msgid "Not listed?"
msgstr "Ĉu ne en listo?"
#: ../js/gdm/loginDialog.js:1004 ../js/ui/endSessionDialog.js:426
#: ../js/ui/extensionSystem.js:477 ../js/ui/networkAgent.js:165
#: ../js/ui/polkitAuthenticationAgent.js:171 ../js/ui/status/bluetooth.js:480
#: ../js/gdm/loginDialog.js:1035 ../js/ui/endSessionDialog.js:426
#: ../js/ui/extensionSystem.js:477 ../js/ui/networkAgent.js:148
#: ../js/ui/polkitAuthenticationAgent.js:173 ../js/ui/status/bluetooth.js:480
msgid "Cancel"
msgstr "Nuligi"
#: ../js/gdm/loginDialog.js:1009
#: ../js/gdm/loginDialog.js:1040
msgctxt "button"
msgid "Sign In"
msgstr "Ensaluti"
#: ../js/gdm/loginDialog.js:1358
#: ../js/gdm/loginDialog.js:1392
msgid "Login Window"
msgstr "Ensalutfenestro"
#: ../js/gdm/powerMenu.js:116 ../js/ui/userMenu.js:514
#: ../js/ui/userMenu.js:516 ../js/ui/userMenu.js:585
#: ../js/gdm/powerMenu.js:116 ../js/ui/userMenu.js:554
#: ../js/ui/userMenu.js:556 ../js/ui/userMenu.js:625
msgid "Suspend"
msgstr "Dormeti"
@ -415,11 +414,11 @@ msgstr "%a, %d. %B %Y"
#: ../js/ui/calendar.js:716
msgid "Today"
msgstr "Hodia"
msgstr "Hodiaŭ"
#: ../js/ui/calendar.js:720
msgid "Tomorrow"
msgstr "Morga"
msgstr "Morgaŭ"
#: ../js/ui/calendar.js:729
msgid "This week"
@ -429,32 +428,32 @@ msgstr "Ĉi tiu semajno"
msgid "Next week"
msgstr "Sekva semajno"
#: ../js/ui/contactDisplay.js:59 ../js/ui/notificationDaemon.js:444
#: ../js/ui/status/power.js:223 ../src/shell-app.c:355
#: ../js/ui/contactDisplay.js:65 ../js/ui/notificationDaemon.js:459
#: ../js/ui/status/power.js:223 ../src/shell-app.c:353
msgid "Unknown"
msgstr "Nekonata"
#: ../js/ui/contactDisplay.js:80 ../js/ui/userMenu.js:139
#: ../js/ui/contactDisplay.js:86 ../js/ui/userMenu.js:139
msgid "Available"
msgstr "Disponebla"
#: ../js/ui/contactDisplay.js:85 ../js/ui/userMenu.js:148
#: ../js/ui/contactDisplay.js:91 ../js/ui/userMenu.js:148
msgid "Away"
msgstr "Fora"
#: ../js/ui/contactDisplay.js:89 ../js/ui/userMenu.js:142
#: ../js/ui/contactDisplay.js:95 ../js/ui/userMenu.js:142
msgid "Busy"
msgstr "Okupita"
#: ../js/ui/contactDisplay.js:93
#: ../js/ui/contactDisplay.js:99
msgid "Offline"
msgstr "Nekonektite"
#: ../js/ui/contactDisplay.js:140
#: ../js/ui/contactDisplay.js:146
msgid "CONTACTS"
msgstr "KONTAKTOJ"
#: ../js/ui/dash.js:172 ../js/ui/messageTray.js:1204
#: ../js/ui/dash.js:174 ../js/ui/messageTray.js:1206
msgid "Remove"
msgstr "Forigi"
@ -589,96 +588,96 @@ msgstr "Instali"
msgid "Download and install '%s' from extensions.gnome.org?"
msgstr "Elŝuti kaj instali '%s' de extensions.gnome.org?"
#: ../js/ui/keyboard.js:517 ../js/ui/status/power.js:211
#: ../js/ui/keyboard.js:325
msgid "tray"
msgstr "pleto"
#: ../js/ui/keyboard.js:547 ../js/ui/status/power.js:211
msgid "Keyboard"
msgstr "Klavaro"
#: ../js/ui/lookingGlass.js:645
#: ../js/ui/lookingGlass.js:646
msgid "No extensions installed"
msgstr "Neniu kromprogramo instalita"
#: ../js/ui/lookingGlass.js:691
#: ../js/ui/lookingGlass.js:692
msgid "Enabled"
msgstr "Enaltita"
msgstr "Enŝaltita"
#. translators:
#. * The device has been disabled
#: ../js/ui/lookingGlass.js:693 ../src/gvc/gvc-mixer-control.c:1093
#: ../js/ui/lookingGlass.js:694 ../src/gvc/gvc-mixer-control.c:1093
msgid "Disabled"
msgstr "Elaltita"
msgstr "Elŝaltita"
#: ../js/ui/lookingGlass.js:695
#: ../js/ui/lookingGlass.js:696
msgid "Error"
msgstr "Eraro"
#: ../js/ui/lookingGlass.js:697
#: ../js/ui/lookingGlass.js:698
msgid "Out of date"
msgstr "Neaktuala"
#: ../js/ui/lookingGlass.js:699
#: ../js/ui/lookingGlass.js:700
msgid "Downloading"
msgstr "Elŝutanta"
#: ../js/ui/lookingGlass.js:724
#: ../js/ui/lookingGlass.js:721
msgid "View Source"
msgstr "Montri fonton"
#: ../js/ui/lookingGlass.js:730
#: ../js/ui/lookingGlass.js:727
msgid "Web Page"
msgstr "Retpao"
msgstr "Retpaĝo"
#: ../js/ui/messageTray.js:1197
#: ../js/ui/messageTray.js:1199
msgid "Open"
msgstr "Malfermi"
#: ../js/ui/messageTray.js:2379
#: ../js/ui/messageTray.js:2408
msgid "System Information"
msgstr "Sisteminformoj"
#: ../js/ui/networkAgent.js:145
msgid "Show password"
msgstr "Montri pasvorton"
#: ../js/ui/networkAgent.js:160
#: ../js/ui/networkAgent.js:143
msgid "Connect"
msgstr "Konekti"
#. Cisco LEAP
#: ../js/ui/networkAgent.js:255 ../js/ui/networkAgent.js:267
#: ../js/ui/networkAgent.js:294 ../js/ui/networkAgent.js:314
#: ../js/ui/networkAgent.js:324
#: ../js/ui/networkAgent.js:238 ../js/ui/networkAgent.js:250
#: ../js/ui/networkAgent.js:277 ../js/ui/networkAgent.js:297
#: ../js/ui/networkAgent.js:307
msgid "Password: "
msgstr "Pasvorto: "
#. static WEP
#: ../js/ui/networkAgent.js:260
#: ../js/ui/networkAgent.js:243
msgid "Key: "
msgstr "Ŝlosilo: "
#. TTLS and PEAP are actually much more complicated, but this complication
#. is not visible here since we only care about phase2 authentication
#. (and don't even care of which one)
#: ../js/ui/networkAgent.js:292 ../js/ui/networkAgent.js:310
#: ../js/ui/networkAgent.js:275 ../js/ui/networkAgent.js:293
msgid "Username: "
msgstr "Uzantnomo: "
#: ../js/ui/networkAgent.js:298
#: ../js/ui/networkAgent.js:281
msgid "Identity: "
msgstr "Idento:"
#: ../js/ui/networkAgent.js:300
#: ../js/ui/networkAgent.js:283
msgid "Private key password: "
msgstr "Pasvorto por privata ŝlosilo:"
#: ../js/ui/networkAgent.js:312
#: ../js/ui/networkAgent.js:295
msgid "Service: "
msgstr "Servo:"
#: ../js/ui/networkAgent.js:341
#: ../js/ui/networkAgent.js:324
msgid "Authentication required by wireless network"
msgstr "Atentokontrolo bezonitas de sendrata reto"
msgstr "Aŭtentokontrolo bezonitas de sendrata reto"
#: ../js/ui/networkAgent.js:342
#: ../js/ui/networkAgent.js:325
#, c-format
msgid ""
"Passwords or encryption keys are required to access the wireless network "
@ -687,35 +686,35 @@ msgstr ""
"Pasvortoj aŭ ĉifrado-ŝlosiloj estas necesaĵoj por aliro al sendrata reto "
"'%s'."
#: ../js/ui/networkAgent.js:346
#: ../js/ui/networkAgent.js:329
msgid "Wired 802.1X authentication"
msgstr "Dratita 802.1X aŭtentokontrolo"
#: ../js/ui/networkAgent.js:348
#: ../js/ui/networkAgent.js:331
msgid "Network name: "
msgstr "Reta nomo: "
#: ../js/ui/networkAgent.js:353
#: ../js/ui/networkAgent.js:336
msgid "DSL authentication"
msgstr "DSL-a atentokontrolo"
msgstr "DSL-a aŭtentokontrolo"
#: ../js/ui/networkAgent.js:360
#: ../js/ui/networkAgent.js:343
msgid "PIN code required"
msgstr "PIN-kodo bezonita"
#: ../js/ui/networkAgent.js:361
#: ../js/ui/networkAgent.js:344
msgid "PIN code is needed for the mobile broadband device"
msgstr "PIN-kodo estas bezonita por la portebla larĝkapacita aparato"
#: ../js/ui/networkAgent.js:362
#: ../js/ui/networkAgent.js:345
msgid "PIN: "
msgstr "PIN: "
#: ../js/ui/networkAgent.js:368
#: ../js/ui/networkAgent.js:351
msgid "Mobile broadband network password"
msgstr "Portebla larkapacita retopasvorto"
msgstr "Portebla larĝkapacita retopasvorto"
#: ../js/ui/networkAgent.js:369
#: ../js/ui/networkAgent.js:352
#, c-format
msgid "A password is required to connect to '%s'."
msgstr "Pasvorto estas bezonita por konekti al '%s'."
@ -772,27 +771,27 @@ msgstr "Konekti al..."
msgid "PLACES & DEVICES"
msgstr "EJOJ kaj APARATOJ"
#: ../js/ui/polkitAuthenticationAgent.js:72
#: ../js/ui/polkitAuthenticationAgent.js:73
msgid "Authentication Required"
msgstr "Atentigo bezonita"
msgstr "Aŭtentigo bezonita"
#: ../js/ui/polkitAuthenticationAgent.js:106
#: ../js/ui/polkitAuthenticationAgent.js:107
msgid "Administrator"
msgstr "Administranto"
#: ../js/ui/polkitAuthenticationAgent.js:175
#: ../js/ui/polkitAuthenticationAgent.js:177
msgid "Authenticate"
msgstr "Atentigi"
msgstr "Aŭtentigi"
#. Translators: "that didn't work" refers to the fact that the
#. * requested authentication was not gained; this can happen
#. * because of an authentication error (like invalid password),
#. * for instance.
#: ../js/ui/polkitAuthenticationAgent.js:256
#: ../js/ui/polkitAuthenticationAgent.js:258
msgid "Sorry, that didn't work. Please try again."
msgstr "Pardonu, tio ne funkcis. Bonvole provu denove."
#: ../js/ui/polkitAuthenticationAgent.js:268
#: ../js/ui/polkitAuthenticationAgent.js:270
msgid "Password:"
msgstr "Pasvorto:"
@ -801,22 +800,38 @@ msgstr "Pasvorto:"
#. "ON" and "OFF") or "toggle-switch-intl" (for toggle
#. switches containing "◯" and "|"). Other values will
#. simply result in invisible toggle switches.
#: ../js/ui/popupMenu.js:727
#: ../js/ui/popupMenu.js:731
msgid "toggle-switch-us"
msgstr "toggle-switch-intl"
#: ../js/ui/runDialog.js:208
#: ../js/ui/runDialog.js:209
msgid "Please enter a command:"
msgstr "Bonvole enigu komandon:"
#: ../js/ui/searchDisplay.js:340
msgid "Searching..."
msgstr "Seranta..."
msgstr "Serĉanta..."
#: ../js/ui/searchDisplay.js:363
msgid "No matching results."
msgstr "Neniuj rezultoj kongruas."
#: ../js/ui/shellEntry.js:30
msgid "Copy"
msgstr "Kopii"
#: ../js/ui/shellEntry.js:35
msgid "Paste"
msgstr "Alglui"
#: ../js/ui/shellEntry.js:81
msgid "Show Text"
msgstr "Montri tekston"
#: ../js/ui/shellEntry.js:83
msgid "Hide Text"
msgstr "Kaŝi tekston"
#: ../js/ui/shellMountOperation.js:285
msgid "Wrong password, please try again"
msgstr "Erara pasvorto, bonvole provu denove"
@ -889,7 +904,7 @@ msgstr "Bludento-agordoj"
#. TRANSLATORS: this means that bluetooth was disabled by hardware rfkill
#: ../js/ui/status/bluetooth.js:111
msgid "hardware disabled"
msgstr "aparato elaltita"
msgstr "aparato elŝaltita"
#: ../js/ui/status/bluetooth.js:208
msgid "Connection"
@ -950,7 +965,7 @@ msgstr "Ĉiam konsenti aliron"
msgid "Grant this time only"
msgstr "Konsenti nur ĉi tiun fojon"
#: ../js/ui/status/bluetooth.js:392 ../js/ui/telepathyClient.js:1196
#: ../js/ui/status/bluetooth.js:392 ../js/ui/telepathyClient.js:1204
msgid "Reject"
msgstr "Rifuzi"
@ -1017,7 +1032,7 @@ msgstr "neadministrata"
#. Translators: this is for network connections that require some kind of key or password
#: ../js/ui/status/network.js:495
msgid "authentication required"
msgstr "atentokontrolo bezonita"
msgstr "aŭtentokontrolo bezonita"
#. Translators: this is for devices that require some kind of firmware or kernel
#. module, which is missing
@ -1056,7 +1071,7 @@ msgstr "Aŭtoeterreto"
#: ../js/ui/status/network.js:753
msgid "Auto broadband"
msgstr "Aŭtolarkapacita"
msgstr "Aŭtolarĝkapacita"
#: ../js/ui/status/network.js:756
msgid "Auto dial-up"
@ -1090,7 +1105,7 @@ msgstr "Sendrata"
#: ../js/ui/status/network.js:1599
msgid "Mobile broadband"
msgstr "Portebla larkapacita konekto"
msgstr "Portebla larĝkapacita konekto"
#: ../js/ui/status/network.js:1609
msgid "VPN Connections"
@ -1186,11 +1201,11 @@ msgstr "Muso"
#: ../js/ui/status/power.js:213
msgid "PDA"
msgstr "Pokomputilo"
msgstr "Poŝkomputilo"
#: ../js/ui/status/power.js:215
msgid "Cell phone"
msgstr "Potelefono"
msgstr "Poŝtelefono"
#: ../js/ui/status/power.js:217
msgid "Media player"
@ -1206,7 +1221,7 @@ msgstr "Komputilo"
#: ../js/ui/status/volume.js:42
msgid "Volume"
msgstr "Lateco"
msgstr "Laŭteco"
#: ../js/ui/status/volume.js:54
msgid "Microphone"
@ -1220,39 +1235,39 @@ msgid "Invitation"
msgstr "Invito"
#. We got the TpContact
#: ../js/ui/telepathyClient.js:325
#: ../js/ui/telepathyClient.js:327
msgid "Call"
msgstr "Voki"
#. We got the TpContact
#: ../js/ui/telepathyClient.js:353
#: ../js/ui/telepathyClient.js:357
msgid "File Transfer"
msgstr "Dosiertransigo"
#: ../js/ui/telepathyClient.js:434
#: ../js/ui/telepathyClient.js:438
msgid "Subscription request"
msgstr "Abonopeto"
#: ../js/ui/telepathyClient.js:470
#: ../js/ui/telepathyClient.js:474
msgid "Connection error"
msgstr "Konekta eraro"
#: ../js/ui/telepathyClient.js:733
#: ../js/ui/telepathyClient.js:741
#, c-format
msgid "%s is online."
msgstr "%s estas konektita."
#: ../js/ui/telepathyClient.js:738
#: ../js/ui/telepathyClient.js:746
#, c-format
msgid "%s is offline."
msgstr "%s estas nekonektita."
#: ../js/ui/telepathyClient.js:741
#: ../js/ui/telepathyClient.js:749
#, c-format
msgid "%s is away."
msgstr "%s estas fora."
#: ../js/ui/telepathyClient.js:744
#: ../js/ui/telepathyClient.js:752
#, c-format
msgid "%s is busy."
msgstr "%s estas okupata."
@ -1260,35 +1275,35 @@ msgstr "%s estas okupata."
#. Translators: this is a time format string followed by a date.
#. If applicable, replace %X with a strftime format valid for your
#. locale, without seconds.
#: ../js/ui/telepathyClient.js:978
#: ../js/ui/telepathyClient.js:986
#, no-c-format
msgid "Sent at <b>%X</b> on <b>%A</b>"
msgstr "Sendita je <b>%X</b> je <b>A</b>"
#. Translators: this is a time format in the style of "Wednesday, May 25",
#. shown when you get a chat message in the same year.
#: ../js/ui/telepathyClient.js:984
#: ../js/ui/telepathyClient.js:992
#, no-c-format
msgid "Sent on <b>%A</b>, <b>%B %d</b>"
msgstr "Sendita je <b>%A</b>, <b>%B %d</b>"
#. Translators: this is a time format in the style of "Wednesday, May 25, 2012",
#. shown when you get a chat message in a different year.
#: ../js/ui/telepathyClient.js:989
#: ../js/ui/telepathyClient.js:997
#, no-c-format
msgid "Sent on <b>%A</b>, <b>%B %d</b>, %Y"
msgstr "Sendita je <b>%A</b>, </b>%B %d</b>, %Y"
#. Translators: this is the other person changing their old IM name to their new
#. IM name.
#: ../js/ui/telepathyClient.js:1031
#: ../js/ui/telepathyClient.js:1039
#, c-format
msgid "%s is now known as %s"
msgstr "%s estas konata kiel %s"
#. translators: argument is a room name like
#. * room@jabber.org for example.
#: ../js/ui/telepathyClient.js:1140
#: ../js/ui/telepathyClient.js:1148
#, c-format
msgid "Invitation to %s"
msgstr "Invito al %s"
@ -1296,34 +1311,35 @@ msgstr "Invito al %s"
#. 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
#. * for example.
#: ../js/ui/telepathyClient.js:1148
#: ../js/ui/telepathyClient.js:1156
#, c-format
msgid "%s is inviting you to join %s"
msgstr "%s invitas vin aliĝi al %s"
#: ../js/ui/telepathyClient.js:1150 ../js/ui/telepathyClient.js:1239
#: ../js/ui/telepathyClient.js:1343
#: ../js/ui/telepathyClient.js:1158 ../js/ui/telepathyClient.js:1248
#: ../js/ui/telepathyClient.js:1352
msgid "Decline"
msgstr "Refuzi"
#: ../js/ui/telepathyClient.js:1151 ../js/ui/telepathyClient.js:1240
#: ../js/ui/telepathyClient.js:1344
#: ../js/ui/telepathyClient.js:1159 ../js/ui/telepathyClient.js:1249
#: ../js/ui/telepathyClient.js:1353
msgid "Accept"
msgstr "Akcepti"
#. translators: argument is a contact name like Alice for example.
#: ../js/ui/telepathyClient.js:1184
#: ../js/ui/telepathyClient.js:1192
#, c-format
msgid "Video call from %s"
msgstr "Videa voko de %s"
#. translators: argument is a contact name like Alice for example.
#: ../js/ui/telepathyClient.js:1187
#: ../js/ui/telepathyClient.js:1195
#, c-format
msgid "Call from %s"
msgstr "Voko de %s"
#: ../js/ui/telepathyClient.js:1197
#. translators: this is a button label (verb), not a noun
#: ../js/ui/telepathyClient.js:1206
msgid "Answer"
msgstr "Repondo"
@ -1332,109 +1348,109 @@ msgstr "Repondo"
#. * file name. The string will be something
#. * like: "Alice is sending you test.ogg"
#.
#: ../js/ui/telepathyClient.js:1233
#: ../js/ui/telepathyClient.js:1242
#, c-format
msgid "%s is sending you %s"
msgstr "%s sendas %s al vi"
#. To translators: The parameter is the contact's alias
#: ../js/ui/telepathyClient.js:1308
#: ../js/ui/telepathyClient.js:1317
#, c-format
msgid "%s would like permission to see when you are online"
msgstr "%s volus permiso por vidi kiam vi estas konektita"
#: ../js/ui/telepathyClient.js:1406
#: ../js/ui/telepathyClient.js:1415
msgid "Network error"
msgstr "Reta eraro"
#: ../js/ui/telepathyClient.js:1408
#: ../js/ui/telepathyClient.js:1417
msgid "Authentication failed"
msgstr "Aŭtentigo malsukcesis"
#: ../js/ui/telepathyClient.js:1410
#: ../js/ui/telepathyClient.js:1419
msgid "Encryption error"
msgstr "Ĉifrado-eraro"
#: ../js/ui/telepathyClient.js:1412
#: ../js/ui/telepathyClient.js:1421
msgid "Certificate not provided"
msgstr "Atestilo ne donita"
#: ../js/ui/telepathyClient.js:1414
#: ../js/ui/telepathyClient.js:1423
msgid "Certificate untrusted"
msgstr "Malfidita atestilo"
#: ../js/ui/telepathyClient.js:1416
#: ../js/ui/telepathyClient.js:1425
msgid "Certificate expired"
msgstr "Posttempa atestilo"
#: ../js/ui/telepathyClient.js:1418
#: ../js/ui/telepathyClient.js:1427
msgid "Certificate not activated"
msgstr "Atestilo ne aktivigita"
#: ../js/ui/telepathyClient.js:1420
#: ../js/ui/telepathyClient.js:1429
msgid "Certificate hostname mismatch"
msgstr "Atestilo-nomo de gastiga komputilo miskongruas"
#: ../js/ui/telepathyClient.js:1422
#: ../js/ui/telepathyClient.js:1431
msgid "Certificate fingerprint mismatch"
msgstr "Atestilo-fingropremo miskongruas"
#: ../js/ui/telepathyClient.js:1424
#: ../js/ui/telepathyClient.js:1433
msgid "Certificate self-signed"
msgstr "Memsubskribita atestilo"
#: ../js/ui/telepathyClient.js:1426
#: ../js/ui/telepathyClient.js:1435
msgid "Status is set to offline"
msgstr "Stato agordas kiam nekonektita."
#: ../js/ui/telepathyClient.js:1428
#: ../js/ui/telepathyClient.js:1437
msgid "Encryption is not available"
msgstr "Ĉifrado nehavebla"
#: ../js/ui/telepathyClient.js:1430
#: ../js/ui/telepathyClient.js:1439
msgid "Certificate is invalid"
msgstr "Nevalida atestilo"
#: ../js/ui/telepathyClient.js:1432
#: ../js/ui/telepathyClient.js:1441
msgid "Connection has been refused"
msgstr "Refuzinta konekto"
#: ../js/ui/telepathyClient.js:1434
#: ../js/ui/telepathyClient.js:1443
msgid "Connection can't be established"
msgstr "Ne povas establi konekton"
#: ../js/ui/telepathyClient.js:1436
#: ../js/ui/telepathyClient.js:1445
msgid "Connection has been lost"
msgstr "Konekto perdiĝis"
#: ../js/ui/telepathyClient.js:1438
#: ../js/ui/telepathyClient.js:1447
msgid "This resource is already connected to the server"
msgstr "Ĉi tio risurco jam konektata al servilo"
#: ../js/ui/telepathyClient.js:1440
#: ../js/ui/telepathyClient.js:1449
msgid ""
"Connection has been replaced by a new connection using the same resource"
msgstr "Konekto anstataŭigis per nova konekto uzanta la saman risurcon"
#: ../js/ui/telepathyClient.js:1442
#: ../js/ui/telepathyClient.js:1451
msgid "The account already exists on the server"
msgstr "La konto jam ekzistas sur la servilo"
#: ../js/ui/telepathyClient.js:1444
#: ../js/ui/telepathyClient.js:1453
msgid "Server is currently too busy to handle the connection"
msgstr "Servilo estas nun tro okupata por akcepti la konekton"
#: ../js/ui/telepathyClient.js:1446
#: ../js/ui/telepathyClient.js:1455
msgid "Certificate has been revoked"
msgstr "Atestilo senvalidigita"
#: ../js/ui/telepathyClient.js:1448
#: ../js/ui/telepathyClient.js:1457
msgid ""
"Certificate uses an insecure cipher algorithm or is cryptographically weak"
msgstr ""
"Atestilo uzas malsekuran ĉifrigan algoritmon aŭ estas kriptografie malforta."
#: ../js/ui/telepathyClient.js:1450
#: ../js/ui/telepathyClient.js:1459
msgid ""
"The length of the server certificate, or the depth of the server certificate "
"chain, exceed the limits imposed by the cryptography library"
@ -1444,20 +1460,20 @@ msgstr ""
#. translators: argument is the account name, like
#. * name@jabber.org for example.
#: ../js/ui/telepathyClient.js:1459
#: ../js/ui/telepathyClient.js:1468
#, c-format
msgid "Connection to %s failed"
msgstr "Malsukcesis konekton al %s"
#: ../js/ui/telepathyClient.js:1468
#: ../js/ui/telepathyClient.js:1477
msgid "Reconnect"
msgstr "Rekonekti"
#: ../js/ui/telepathyClient.js:1469
#: ../js/ui/telepathyClient.js:1478
msgid "Edit account"
msgstr "Redakti konton"
#: ../js/ui/telepathyClient.js:1515
#: ../js/ui/telepathyClient.js:1524
msgid "Unknown reason"
msgstr "Nekonata kialo"
@ -1473,39 +1489,39 @@ msgstr "Neokupita"
msgid "Unavailable"
msgstr "Nedisponebla"
#: ../js/ui/userMenu.js:512 ../js/ui/userMenu.js:516 ../js/ui/userMenu.js:586
#: ../js/ui/userMenu.js:552 ../js/ui/userMenu.js:556 ../js/ui/userMenu.js:626
msgid "Power Off..."
msgstr "Elalti..."
msgstr "Elŝalti..."
#: ../js/ui/userMenu.js:548
#: ../js/ui/userMenu.js:588
msgid "Notifications"
msgstr "Avizoj"
#: ../js/ui/userMenu.js:556
#: ../js/ui/userMenu.js:596
msgid "Online Accounts"
msgstr "Retaj kontoj"
#: ../js/ui/userMenu.js:560
#: ../js/ui/userMenu.js:600
msgid "System Settings"
msgstr "Sistem-agordoj"
#: ../js/ui/userMenu.js:567
#: ../js/ui/userMenu.js:607
msgid "Lock Screen"
msgstr "losi ekranon"
msgstr "Ŝlosi ekranon"
#: ../js/ui/userMenu.js:572
#: ../js/ui/userMenu.js:612
msgid "Switch User"
msgstr "Ŝanĝi uzanton"
#: ../js/ui/userMenu.js:577
#: ../js/ui/userMenu.js:617
msgid "Log Out..."
msgstr "Elsaluti..."
#: ../js/ui/userMenu.js:605
#: ../js/ui/userMenu.js:645
msgid "Your chat status will be set to busy"
msgstr "Vi babila stato agordos okupita"
#: ../js/ui/userMenu.js:606
#: ../js/ui/userMenu.js:646
msgid ""
"Notifications are now disabled, including chat messages. Your online status "
"has been adjusted to let others know that you might not see their messages."
@ -1517,20 +1533,15 @@ msgstr ""
#. in the search entry when no search is
#. active; it should not exceed ~30
#. characters.
#: ../js/ui/viewSelector.js:120
#: ../js/ui/viewSelector.js:121
msgid "Type to search..."
msgstr "Tajpi por serĉi..."
#: ../js/ui/viewSelector.js:140 ../src/shell-util.c:261
#: ../js/ui/viewSelector.js:142 ../src/shell-util.c:261
msgid "Search"
msgstr "Seri"
msgstr "Serĉi"
#: ../js/ui/windowAttentionHandler.js:39
#, c-format
msgid "%s has finished starting"
msgstr "Starto de %s finiĝis"
#: ../js/ui/windowAttentionHandler.js:41
#: ../js/ui/windowAttentionHandler.js:35
#, c-format
msgid "'%s' is ready"
msgstr "'%s' prestas"
@ -1565,7 +1576,7 @@ msgstr "Presi version"
msgid "Mode used by GDM for login screen"
msgstr "Reĝimo uzata de GDM por la ensalutekrano"
#: ../src/shell-app.c:581
#: ../src/shell-app.c:579
#, c-format
msgid "Failed to launch '%s'"
msgstr "Malsukcesis lanĉi '%s'"
@ -1576,7 +1587,7 @@ msgstr "Unuiĝinta Reĝlando"
#: ../src/shell-mobile-providers.c:526
msgid "Default"
msgstr "Defalto"
msgstr "Defaŭlto"
#: ../src/shell-polkit-authentication-agent.c:334
msgid "Authentication dialog was dismissed by the user"
@ -1601,3 +1612,18 @@ msgstr "Dosiersistemo"
#, c-format
msgid "%1$s: %2$s"
msgstr "%1$s: %2$s"
#~ msgid "%s has not emitted any errors."
#~ msgstr "%s ne eligintaj ajnaj eraroj."
#~ msgid "Hide Errors"
#~ msgstr "Kaŝi erarojn"
#~ msgid "Show Errors"
#~ msgstr "Montri erarojn"
#~ msgid "Show password"
#~ msgstr "Montri pasvorton"
#~ msgid "%s has finished starting"
#~ msgstr "Starto de %s finiĝis"

298
po/es.po
View File

@ -10,8 +10,8 @@ msgstr ""
"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"
"POT-Creation-Date: 2011-09-21 19:11+0000\n"
"PO-Revision-Date: 2011-09-22 11:46+0200\n"
"POT-Creation-Date: 2011-10-17 20:02+0000\n"
"PO-Revision-Date: 2011-10-18 16:10+0200\n"
"Last-Translator: Daniel Mustieles <daniel.mustieles@gmail.com>\n"
"Language-Team: Español <gnome-es-list@gnome.org>\n"
"MIME-Version: 1.0\n"
@ -188,38 +188,38 @@ msgstr "proveedores OpenSearch desactivados"
msgid "Session..."
msgstr "Sesión…"
#: ../js/gdm/loginDialog.js:785
#: ../js/gdm/loginDialog.js:788
msgctxt "title"
msgid "Sign In"
msgstr "Iniciar sesión"
#. translators: this message is shown below the password entry field
#. to indicate the user can swipe their finger instead
#: ../js/gdm/loginDialog.js:830
#: ../js/gdm/loginDialog.js:833
msgid "(or swipe finger)"
msgstr "(o pase el dedo)"
#: ../js/gdm/loginDialog.js:848
#: ../js/gdm/loginDialog.js:851
msgid "Not listed?"
msgstr "¿No está listado?"
#: ../js/gdm/loginDialog.js:1004 ../js/ui/endSessionDialog.js:426
#: ../js/ui/extensionSystem.js:477 ../js/ui/networkAgent.js:165
#: ../js/ui/polkitAuthenticationAgent.js:171 ../js/ui/status/bluetooth.js:480
#: ../js/gdm/loginDialog.js:1019 ../js/ui/endSessionDialog.js:426
#: ../js/ui/extensionSystem.js:477 ../js/ui/networkAgent.js:148
#: ../js/ui/polkitAuthenticationAgent.js:173 ../js/ui/status/bluetooth.js:480
msgid "Cancel"
msgstr "Cancelar"
#: ../js/gdm/loginDialog.js:1009
#: ../js/gdm/loginDialog.js:1024
msgctxt "button"
msgid "Sign In"
msgstr "Iniciar sesión"
#: ../js/gdm/loginDialog.js:1358
#: ../js/gdm/loginDialog.js:1373
msgid "Login Window"
msgstr "Ventana de inicio de sesión"
#: ../js/gdm/powerMenu.js:116 ../js/ui/userMenu.js:514
#: ../js/ui/userMenu.js:516 ../js/ui/userMenu.js:585
#: ../js/gdm/powerMenu.js:116 ../js/ui/userMenu.js:549
#: ../js/ui/userMenu.js:551 ../js/ui/userMenu.js:620
msgid "Suspend"
msgstr "Suspender"
@ -442,32 +442,32 @@ msgstr "Esta semana"
msgid "Next week"
msgstr "La semana que viene"
#: ../js/ui/contactDisplay.js:59 ../js/ui/notificationDaemon.js:444
#: ../js/ui/status/power.js:223 ../src/shell-app.c:355
#: ../js/ui/contactDisplay.js:65 ../js/ui/notificationDaemon.js:444
#: ../js/ui/status/power.js:223 ../src/shell-app.c:353
msgid "Unknown"
msgstr "Desconocido"
#: ../js/ui/contactDisplay.js:80 ../js/ui/userMenu.js:139
#: ../js/ui/contactDisplay.js:86 ../js/ui/userMenu.js:139
msgid "Available"
msgstr "Disponible"
#: ../js/ui/contactDisplay.js:85 ../js/ui/userMenu.js:148
#: ../js/ui/contactDisplay.js:91 ../js/ui/userMenu.js:148
msgid "Away"
msgstr "Ausente"
#: ../js/ui/contactDisplay.js:89 ../js/ui/userMenu.js:142
#: ../js/ui/contactDisplay.js:95 ../js/ui/userMenu.js:142
msgid "Busy"
msgstr "Ocupado"
#: ../js/ui/contactDisplay.js:93
#: ../js/ui/contactDisplay.js:99
msgid "Offline"
msgstr "Desconectado"
#: ../js/ui/contactDisplay.js:140
#: ../js/ui/contactDisplay.js:146
msgid "CONTACTS"
msgstr "CONTACTOS"
#: ../js/ui/dash.js:172 ../js/ui/messageTray.js:1197
#: ../js/ui/dash.js:174 ../js/ui/messageTray.js:1205
msgid "Remove"
msgstr "Quitar"
@ -603,96 +603,96 @@ msgstr "Instalar"
msgid "Download and install '%s' from extensions.gnome.org?"
msgstr "¿Descargar e instalar «%s» desde extensions.gnome.org?"
#: ../js/ui/keyboard.js:517 ../js/ui/status/power.js:211
#: ../js/ui/keyboard.js:325
msgid "tray"
msgstr "bandeja"
#: ../js/ui/keyboard.js:547 ../js/ui/status/power.js:211
msgid "Keyboard"
msgstr "Teclado"
#: ../js/ui/lookingGlass.js:645
#: ../js/ui/lookingGlass.js:646
msgid "No extensions installed"
msgstr "No hay extensiones instaladas"
#: ../js/ui/lookingGlass.js:691
#: ../js/ui/lookingGlass.js:692
msgid "Enabled"
msgstr "Activado"
#. translators:
#. * The device has been disabled
#: ../js/ui/lookingGlass.js:693 ../src/gvc/gvc-mixer-control.c:1093
#: ../js/ui/lookingGlass.js:694 ../src/gvc/gvc-mixer-control.c:1093
msgid "Disabled"
msgstr "Desactivado"
#: ../js/ui/lookingGlass.js:695
#: ../js/ui/lookingGlass.js:696
msgid "Error"
msgstr "Error"
#: ../js/ui/lookingGlass.js:697
#: ../js/ui/lookingGlass.js:698
msgid "Out of date"
msgstr "Caducado"
#: ../js/ui/lookingGlass.js:699
#: ../js/ui/lookingGlass.js:700
msgid "Downloading"
msgstr "Descargando"
#: ../js/ui/lookingGlass.js:724
#: ../js/ui/lookingGlass.js:721
msgid "View Source"
msgstr "Ver fuente"
#: ../js/ui/lookingGlass.js:730
#: ../js/ui/lookingGlass.js:727
msgid "Web Page"
msgstr "Página web"
#: ../js/ui/messageTray.js:1190
#: ../js/ui/messageTray.js:1198
msgid "Open"
msgstr "Abrir"
#: ../js/ui/messageTray.js:2372
#: ../js/ui/messageTray.js:2407
msgid "System Information"
msgstr "Información del sistema"
#: ../js/ui/networkAgent.js:145
msgid "Show password"
msgstr "Mostrar contraseña"
#: ../js/ui/networkAgent.js:160
#: ../js/ui/networkAgent.js:143
msgid "Connect"
msgstr "Conectar"
#. Cisco LEAP
#: ../js/ui/networkAgent.js:255 ../js/ui/networkAgent.js:267
#: ../js/ui/networkAgent.js:294 ../js/ui/networkAgent.js:314
#: ../js/ui/networkAgent.js:324
#: ../js/ui/networkAgent.js:238 ../js/ui/networkAgent.js:250
#: ../js/ui/networkAgent.js:277 ../js/ui/networkAgent.js:297
#: ../js/ui/networkAgent.js:307
msgid "Password: "
msgstr "Contraseña: "
#. static WEP
#: ../js/ui/networkAgent.js:260
#: ../js/ui/networkAgent.js:243
msgid "Key: "
msgstr "Clave:"
#. TTLS and PEAP are actually much more complicated, but this complication
#. is not visible here since we only care about phase2 authentication
#. (and don't even care of which one)
#: ../js/ui/networkAgent.js:292 ../js/ui/networkAgent.js:310
#: ../js/ui/networkAgent.js:275 ../js/ui/networkAgent.js:293
msgid "Username: "
msgstr "Nombre de usuario:"
#: ../js/ui/networkAgent.js:298
#: ../js/ui/networkAgent.js:281
msgid "Identity: "
msgstr "Identidad:"
#: ../js/ui/networkAgent.js:300
#: ../js/ui/networkAgent.js:283
msgid "Private key password: "
msgstr "Contraseña de la clave privada:"
#: ../js/ui/networkAgent.js:312
#: ../js/ui/networkAgent.js:295
msgid "Service: "
msgstr "Servicio:"
#: ../js/ui/networkAgent.js:341
#: ../js/ui/networkAgent.js:324
msgid "Authentication required by wireless network"
msgstr "La red inalámbrica requiere autenticación"
#: ../js/ui/networkAgent.js:342
#: ../js/ui/networkAgent.js:325
#, c-format
msgid ""
"Passwords or encryption keys are required to access the wireless network '%"
@ -701,35 +701,35 @@ msgstr ""
"Se necesitan contraseñas o claves de cifrado para acceder a la red "
"inalámbrica «%s»."
#: ../js/ui/networkAgent.js:346
#: ../js/ui/networkAgent.js:329
msgid "Wired 802.1X authentication"
msgstr "Autenticación 802.1X cableada"
#: ../js/ui/networkAgent.js:348
#: ../js/ui/networkAgent.js:331
msgid "Network name: "
msgstr "Nombre de la red"
#: ../js/ui/networkAgent.js:353
#: ../js/ui/networkAgent.js:336
msgid "DSL authentication"
msgstr "Autenticación DSL"
#: ../js/ui/networkAgent.js:360
#: ../js/ui/networkAgent.js:343
msgid "PIN code required"
msgstr "Código PIN requerido"
#: ../js/ui/networkAgent.js:361
#: ../js/ui/networkAgent.js:344
msgid "PIN code is needed for the mobile broadband device"
msgstr "Se necesita un código PIN para el dispositivo de banda ancha móvil"
#: ../js/ui/networkAgent.js:362
#: ../js/ui/networkAgent.js:345
msgid "PIN: "
msgstr "PIN: "
#: ../js/ui/networkAgent.js:368
#: ../js/ui/networkAgent.js:351
msgid "Mobile broadband network password"
msgstr "Contraseña de la red de banda ancha móvil"
#: ../js/ui/networkAgent.js:369
#: ../js/ui/networkAgent.js:352
#, c-format
msgid "A password is required to connect to '%s'."
msgstr "Se requiere una contraseña para conectar a «%s»."
@ -785,15 +785,15 @@ msgstr "Conectar a…"
msgid "PLACES & DEVICES"
msgstr "LUGARES Y DISPOSITIVOS"
#: ../js/ui/polkitAuthenticationAgent.js:72
#: ../js/ui/polkitAuthenticationAgent.js:73
msgid "Authentication Required"
msgstr "Se necesita autenticación"
#: ../js/ui/polkitAuthenticationAgent.js:106
#: ../js/ui/polkitAuthenticationAgent.js:107
msgid "Administrator"
msgstr "Administrador"
#: ../js/ui/polkitAuthenticationAgent.js:175
#: ../js/ui/polkitAuthenticationAgent.js:177
msgid "Authenticate"
msgstr "Autenticar"
@ -801,11 +801,11 @@ msgstr "Autenticar"
#. * requested authentication was not gained; this can happen
#. * because of an authentication error (like invalid password),
#. * for instance.
#: ../js/ui/polkitAuthenticationAgent.js:256
#: ../js/ui/polkitAuthenticationAgent.js:258
msgid "Sorry, that didn't work. Please try again."
msgstr "Inténtelo de nuevo,"
#: ../js/ui/polkitAuthenticationAgent.js:268
#: ../js/ui/polkitAuthenticationAgent.js:270
msgid "Password:"
msgstr "Contraseña:"
@ -814,11 +814,11 @@ msgstr "Contraseña:"
#. "ON" and "OFF") or "toggle-switch-intl" (for toggle
#. switches containing "◯" and "|"). Other values will
#. simply result in invisible toggle switches.
#: ../js/ui/popupMenu.js:727
#: ../js/ui/popupMenu.js:731
msgid "toggle-switch-us"
msgstr "toggle-switch-intl"
#: ../js/ui/runDialog.js:208
#: ../js/ui/runDialog.js:209
msgid "Please enter a command:"
msgstr "Introduzca un comando:"
@ -830,6 +830,25 @@ msgstr "Buscando…"
msgid "No matching results."
msgstr "No se encontró ningún resultado coincidente."
#: ../js/ui/shellEntry.js:30
msgid "Copy"
msgstr "Copiar"
#: ../js/ui/shellEntry.js:35
#| msgid "Panel"
msgid "Paste"
msgstr "Pegar"
#: ../js/ui/shellEntry.js:81
#| msgid "Show the _date"
msgid "Show Text"
msgstr "Mostrar texto"
#: ../js/ui/shellEntry.js:83
#| msgid "Large Text"
msgid "Hide Text"
msgstr "Ocultar texto"
#: ../js/ui/shellMountOperation.js:285
msgid "Wrong password, please try again"
msgstr "Contraseña incorrecta; inténtelo de nuevo"
@ -963,7 +982,7 @@ msgstr "Conceder acceso siempre"
msgid "Grant this time only"
msgstr "Conceder sólo esta vez"
#: ../js/ui/status/bluetooth.js:392 ../js/ui/telepathyClient.js:1196
#: ../js/ui/status/bluetooth.js:392 ../js/ui/telepathyClient.js:1204
msgid "Reject"
msgstr "Rechazar"
@ -1232,39 +1251,39 @@ msgid "Invitation"
msgstr "Invitación"
#. We got the TpContact
#: ../js/ui/telepathyClient.js:325
#: ../js/ui/telepathyClient.js:327
msgid "Call"
msgstr "Llamar"
#. We got the TpContact
#: ../js/ui/telepathyClient.js:353
#: ../js/ui/telepathyClient.js:357
msgid "File Transfer"
msgstr "Transferencia de archivos"
#: ../js/ui/telepathyClient.js:434
#: ../js/ui/telepathyClient.js:438
msgid "Subscription request"
msgstr "Solicitud de suscripción"
#: ../js/ui/telepathyClient.js:470
#: ../js/ui/telepathyClient.js:474
msgid "Connection error"
msgstr "Error de conexión"
#: ../js/ui/telepathyClient.js:733
#: ../js/ui/telepathyClient.js:741
#, c-format
msgid "%s is online."
msgstr "%s está conectado/a."
#: ../js/ui/telepathyClient.js:738
#: ../js/ui/telepathyClient.js:746
#, c-format
msgid "%s is offline."
msgstr "%s está desconectado/a."
#: ../js/ui/telepathyClient.js:741
#: ../js/ui/telepathyClient.js:749
#, c-format
msgid "%s is away."
msgstr "%s está ausente."
#: ../js/ui/telepathyClient.js:744
#: ../js/ui/telepathyClient.js:752
#, c-format
msgid "%s is busy."
msgstr "%s está ocupado/a."
@ -1272,35 +1291,35 @@ msgstr "%s está ocupado/a."
#. Translators: this is a time format string followed by a date.
#. If applicable, replace %X with a strftime format valid for your
#. locale, without seconds.
#: ../js/ui/telepathyClient.js:978
#: ../js/ui/telepathyClient.js:986
#, no-c-format
msgid "Sent at <b>%X</b> on <b>%A</b>"
msgstr "Enviado el <b>%A</b> a las <b>%H:%M</b>"
#. Translators: this is a time format in the style of "Wednesday, May 25",
#. shown when you get a chat message in the same year.
#: ../js/ui/telepathyClient.js:984
#: ../js/ui/telepathyClient.js:992
#, no-c-format
msgid "Sent on <b>%A</b>, <b>%B %d</b>"
msgstr "Enviado el <b>%A</b>, <b>%d de %B</b>"
#. Translators: this is a time format in the style of "Wednesday, May 25, 2012",
#. shown when you get a chat message in a different year.
#: ../js/ui/telepathyClient.js:989
#: ../js/ui/telepathyClient.js:997
#, no-c-format
msgid "Sent on <b>%A</b>, <b>%B %d</b>, %Y"
msgstr "Enviado el <b>%A</b>, <b>%d de %B</b> de %Y"
#. Translators: this is the other person changing their old IM name to their new
#. IM name.
#: ../js/ui/telepathyClient.js:1031
#: ../js/ui/telepathyClient.js:1039
#, c-format
msgid "%s is now known as %s"
msgstr "Ahora %s se llama %s"
#. translators: argument is a room name like
#. * room@jabber.org for example.
#: ../js/ui/telepathyClient.js:1140
#: ../js/ui/telepathyClient.js:1148
#, c-format
msgid "Invitation to %s"
msgstr "Invitación a %s"
@ -1308,34 +1327,35 @@ msgstr "Invitación a %s"
#. 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
#. * for example.
#: ../js/ui/telepathyClient.js:1148
#: ../js/ui/telepathyClient.js:1156
#, c-format
msgid "%s is inviting you to join %s"
msgstr "%s le está invitando a unirse a %s"
#: ../js/ui/telepathyClient.js:1150 ../js/ui/telepathyClient.js:1239
#: ../js/ui/telepathyClient.js:1343
#: ../js/ui/telepathyClient.js:1158 ../js/ui/telepathyClient.js:1248
#: ../js/ui/telepathyClient.js:1352
msgid "Decline"
msgstr "Rechazar"
#: ../js/ui/telepathyClient.js:1151 ../js/ui/telepathyClient.js:1240
#: ../js/ui/telepathyClient.js:1344
#: ../js/ui/telepathyClient.js:1159 ../js/ui/telepathyClient.js:1249
#: ../js/ui/telepathyClient.js:1353
msgid "Accept"
msgstr "Aceptar"
#. translators: argument is a contact name like Alice for example.
#: ../js/ui/telepathyClient.js:1184
#: ../js/ui/telepathyClient.js:1192
#, c-format
msgid "Video call from %s"
msgstr "Videollamada de %s"
#. translators: argument is a contact name like Alice for example.
#: ../js/ui/telepathyClient.js:1187
#: ../js/ui/telepathyClient.js:1195
#, c-format
msgid "Call from %s"
msgstr "Llamada de %s"
#: ../js/ui/telepathyClient.js:1197
#. translators: this is a button label (verb), not a noun
#: ../js/ui/telepathyClient.js:1206
msgid "Answer"
msgstr "Responder"
@ -1344,112 +1364,112 @@ msgstr "Responder"
#. * file name. The string will be something
#. * like: "Alice is sending you test.ogg"
#.
#: ../js/ui/telepathyClient.js:1233
#: ../js/ui/telepathyClient.js:1242
#, c-format
msgid "%s is sending you %s"
msgstr "%s le está enviando %s"
#. To translators: The parameter is the contact's alias
#: ../js/ui/telepathyClient.js:1308
#: ../js/ui/telepathyClient.js:1317
#, c-format
msgid "%s would like permission to see when you are online"
msgstr "%s solicita permiso para ver cuándo está en línea"
#: ../js/ui/telepathyClient.js:1406
#: ../js/ui/telepathyClient.js:1415
msgid "Network error"
msgstr "Error de la red"
#: ../js/ui/telepathyClient.js:1408
#: ../js/ui/telepathyClient.js:1417
msgid "Authentication failed"
msgstr "Falló la autenticación"
#: ../js/ui/telepathyClient.js:1410
#: ../js/ui/telepathyClient.js:1419
msgid "Encryption error"
msgstr "Error de cifrado"
#: ../js/ui/telepathyClient.js:1412
#: ../js/ui/telepathyClient.js:1421
msgid "Certificate not provided"
msgstr "Certificado no proporcionado"
#: ../js/ui/telepathyClient.js:1414
#: ../js/ui/telepathyClient.js:1423
msgid "Certificate untrusted"
msgstr "No se confía en el certificado"
#: ../js/ui/telepathyClient.js:1416
#: ../js/ui/telepathyClient.js:1425
msgid "Certificate expired"
msgstr "Certificado caducado"
#: ../js/ui/telepathyClient.js:1418
#: ../js/ui/telepathyClient.js:1427
msgid "Certificate not activated"
msgstr "Certificado no activado"
#: ../js/ui/telepathyClient.js:1420
#: ../js/ui/telepathyClient.js:1429
msgid "Certificate hostname mismatch"
msgstr "El nombre del servidor dle certificado no coincide"
#: ../js/ui/telepathyClient.js:1422
#: ../js/ui/telepathyClient.js:1431
msgid "Certificate fingerprint mismatch"
msgstr "La huella del certificado no coincide"
#: ../js/ui/telepathyClient.js:1424
#: ../js/ui/telepathyClient.js:1433
msgid "Certificate self-signed"
msgstr "Certificado autofirmado"
#: ../js/ui/telepathyClient.js:1426
#: ../js/ui/telepathyClient.js:1435
msgid "Status is set to offline"
msgstr "El estado está establecido a «desconectado»"
#: ../js/ui/telepathyClient.js:1428
#: ../js/ui/telepathyClient.js:1437
msgid "Encryption is not available"
msgstr "El cifrado no está disponible"
#: ../js/ui/telepathyClient.js:1430
#: ../js/ui/telepathyClient.js:1439
msgid "Certificate is invalid"
msgstr "El certificado no es válido"
#: ../js/ui/telepathyClient.js:1432
#: ../js/ui/telepathyClient.js:1441
msgid "Connection has been refused"
msgstr "Se ha rechazado la conexión"
#: ../js/ui/telepathyClient.js:1434
#: ../js/ui/telepathyClient.js:1443
msgid "Connection can't be established"
msgstr "No se puede establecer la conexión"
#: ../js/ui/telepathyClient.js:1436
#: ../js/ui/telepathyClient.js:1445
msgid "Connection has been lost"
msgstr "Se ha perdido la conexión"
#: ../js/ui/telepathyClient.js:1438
#: ../js/ui/telepathyClient.js:1447
msgid "This resource is already connected to the server"
msgstr "Este recurso ya está conectado al servidor"
#: ../js/ui/telepathyClient.js:1440
#: ../js/ui/telepathyClient.js:1449
msgid ""
"Connection has been replaced by a new connection using the same resource"
msgstr ""
"Se ha sustituido la conexión por una nueva conexión usando el mismo recurso"
#: ../js/ui/telepathyClient.js:1442
#: ../js/ui/telepathyClient.js:1451
msgid "The account already exists on the server"
msgstr "La cuenta ya existe en el servidor"
#: ../js/ui/telepathyClient.js:1444
#: ../js/ui/telepathyClient.js:1453
msgid "Server is currently too busy to handle the connection"
msgstr ""
"Actualmente el servidor está muy ocupado intentando gestionar la conexión"
#: ../js/ui/telepathyClient.js:1446
#: ../js/ui/telepathyClient.js:1455
msgid "Certificate has been revoked"
msgstr "Se ha revocado el certificado"
#: ../js/ui/telepathyClient.js:1448
#: ../js/ui/telepathyClient.js:1457
msgid ""
"Certificate uses an insecure cipher algorithm or is cryptographically weak"
msgstr ""
"El certificado usa un algoritmo de cifrado inseguro o es criptográficamente "
"débil"
#: ../js/ui/telepathyClient.js:1450
#: ../js/ui/telepathyClient.js:1459
msgid ""
"The length of the server certificate, or the depth of the server certificate "
"chain, exceed the limits imposed by the cryptography library"
@ -1460,20 +1480,20 @@ msgstr ""
#. translators: argument is the account name, like
#. * name@jabber.org for example.
#: ../js/ui/telepathyClient.js:1459
#: ../js/ui/telepathyClient.js:1468
#, c-format
msgid "Connection to %s failed"
msgstr "Falló la conexión a %s"
#: ../js/ui/telepathyClient.js:1468
#: ../js/ui/telepathyClient.js:1477
msgid "Reconnect"
msgstr "Reconectar"
#: ../js/ui/telepathyClient.js:1469
#: ../js/ui/telepathyClient.js:1478
msgid "Edit account"
msgstr "Editar cuenta"
#: ../js/ui/telepathyClient.js:1515
#: ../js/ui/telepathyClient.js:1524
msgid "Unknown reason"
msgstr "Razón desconocida"
@ -1489,39 +1509,39 @@ msgstr "Inactivo"
msgid "Unavailable"
msgstr "No disponible"
#: ../js/ui/userMenu.js:512 ../js/ui/userMenu.js:516 ../js/ui/userMenu.js:586
#: ../js/ui/userMenu.js:547 ../js/ui/userMenu.js:551 ../js/ui/userMenu.js:621
msgid "Power Off..."
msgstr "Apagar…"
#: ../js/ui/userMenu.js:548
#: ../js/ui/userMenu.js:583
msgid "Notifications"
msgstr "Notificaciones"
#: ../js/ui/userMenu.js:556
#: ../js/ui/userMenu.js:591
msgid "Online Accounts"
msgstr "Cuentas en línea"
#: ../js/ui/userMenu.js:560
#: ../js/ui/userMenu.js:595
msgid "System Settings"
msgstr "Configuración del sistema"
#: ../js/ui/userMenu.js:567
#: ../js/ui/userMenu.js:602
msgid "Lock Screen"
msgstr "Bloquear la pantalla"
#: ../js/ui/userMenu.js:572
#: ../js/ui/userMenu.js:607
msgid "Switch User"
msgstr "Cambiar de usuario"
#: ../js/ui/userMenu.js:577
#: ../js/ui/userMenu.js:612
msgid "Log Out..."
msgstr "Cerrar la sesión…"
#: ../js/ui/userMenu.js:605
#: ../js/ui/userMenu.js:640
msgid "Your chat status will be set to busy"
msgstr "Su estado del chat se establecerá a «ocupado»"
#: ../js/ui/userMenu.js:606
#: ../js/ui/userMenu.js:641
msgid ""
"Notifications are now disabled, including chat messages. Your online status "
"has been adjusted to let others know that you might not see their messages."
@ -1534,20 +1554,15 @@ msgstr ""
#. in the search entry when no search is
#. active; it should not exceed ~30
#. characters.
#: ../js/ui/viewSelector.js:120
#: ../js/ui/viewSelector.js:121
msgid "Type to search..."
msgstr "Teclear para buscar…"
#: ../js/ui/viewSelector.js:140 ../src/shell-util.c:261
#: ../js/ui/viewSelector.js:142 ../src/shell-util.c:261
msgid "Search"
msgstr "Buscar"
#: ../js/ui/windowAttentionHandler.js:39
#, c-format
msgid "%s has finished starting"
msgstr "%s finalizó su lanzamiento"
#: ../js/ui/windowAttentionHandler.js:41
#: ../js/ui/windowAttentionHandler.js:35
#, c-format
msgid "'%s' is ready"
msgstr "«%s» está preparado"
@ -1582,7 +1597,7 @@ msgstr "Imprimir versión"
msgid "Mode used by GDM for login screen"
msgstr "Modo usado por GDM para la pantalla de inicio"
#: ../src/shell-app.c:581
#: ../src/shell-app.c:579
#, c-format
msgid "Failed to launch '%s'"
msgstr "Falló al lanzar «%s»"
@ -1619,6 +1634,23 @@ msgstr "Sistema de archivos"
msgid "%1$s: %2$s"
msgstr "%1$s: %2$s"
#~ msgid "Show password"
#~ msgstr "Mostrar contraseña"
#~ msgid "%s has not emitted any errors."
#~ msgstr "%s no ha generado ningún error."
#~| msgid "Error"
#~ msgid "Hide Errors"
#~ msgstr "Ocultar errores"
#~| msgid "Error"
#~ msgid "Show Errors"
#~ msgstr "Mostrar errores"
#~ msgid "%s has finished starting"
#~ msgstr "%s finalizó su lanzamiento"
#~ msgid "If true, display onscreen keyboard."
#~ msgstr "Si es cierta, muestra el teclado en pantalla."
@ -1705,9 +1737,6 @@ msgstr "%1$s: %2$s"
#~ msgid "Confirm"
#~ msgstr "Confirmar"
#~ msgid "Panel"
#~ msgstr "Panel"
#~ msgid "No such application"
#~ msgstr "No existe la aplicación"
@ -1928,9 +1957,6 @@ msgstr "%1$s: %2$s"
#~ msgid "Show seco_nds"
#~ msgstr "Mostrar los segu_ndos"
#~ msgid "Show the _date"
#~ msgstr "Mostrar la _fecha"
#~ msgid "_12 hour format"
#~ msgstr "Formato _12 horas"

411
po/fa.po

File diff suppressed because it is too large Load Diff

298
po/fi.po
View File

@ -19,18 +19,20 @@
msgid ""
msgstr ""
"Project-Id-Version: gnome-shell\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2011-09-26 15:40+0300\n"
"PO-Revision-Date: 2011-09-26 15:39+0300\n"
"Last-Translator: Tommi Vainikainen <thv@iki.fi>\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
"shell&keywords=I18N+L10N&component=general\n"
"POT-Creation-Date: 2011-10-18 19:39+0000\n"
"PO-Revision-Date: 2011-11-15 22:19+0200\n"
"Last-Translator: Ville-Pekka Vainio <vpvainio@iki.fi>\n"
"Language-Team: Finnish <gnome-fi-laatu@lists.sourceforge.net>\n"
"Language: fi\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Virtaal 0.6.1\n"
"X-Generator: Virtaal 0.7.1-rc1\n"
"X-DamnedLies-Scope: partial\n"
"X-Project-Style: gnome\n"
#: ../data/gnome-shell.desktop.in.in.h:1
msgid "GNOME Shell"
@ -40,6 +42,7 @@ msgstr "Gnomen ikkunanhallinta"
msgid "Window management and application launching"
msgstr "Ikkunanhallinta ja sovelluksien käynnistäminen"
#: ../data/org.gnome.shell.gschema.xml.in.h:1
msgid ""
"Allows access to internal debugging and monitoring tools using the Alt-F2 "
"dialog."
@ -47,16 +50,20 @@ msgstr ""
"Salli pääsy sisäiseen vianselvitys- ja monitorointityökaluun Alt-F2-ikkunan "
"kautta."
#: ../data/org.gnome.shell.gschema.xml.in.h:2
msgid "Enable internal tools useful for developers and testers from Alt-F2"
msgstr ""
"Ota käyttöön sisäiset kehittäjiä ja testaajia hyödyttävät työkalut Alt-F2:sta"
#: ../data/org.gnome.shell.gschema.xml.in.h:3
msgid "File extension used for storing the screencast"
msgstr "Tiedostopääte ruutunauhoitusten tallentamiseen"
#: ../data/org.gnome.shell.gschema.xml.in.h:4
msgid "Framerate used for recording screencasts."
msgstr "Ruutunauhoitusten kuvataajuus."
#: ../data/org.gnome.shell.gschema.xml.in.h:5
msgid ""
"GNOME Shell extensions have a uuid property; this key lists extensions which "
"should be loaded. disabled-extensions overrides this setting for extensions "
@ -67,24 +74,31 @@ msgstr ""
"kytketyt laajennukset) ylittää tämän asetuksen mikäli laajennus esiintyy "
"molemmissa luetteloissa."
#: ../data/org.gnome.shell.gschema.xml.in.h:6
msgid "History for command (Alt-F2) dialog"
msgstr "Historia komentoikkunalle (Alt-F2)"
#: ../data/org.gnome.shell.gschema.xml.in.h:7
msgid "History for the looking glass dialog"
msgstr "Historia näyttölasi-ikkunalle"
#: ../data/org.gnome.shell.gschema.xml.in.h:8
msgid "If true, display date in the clock, in addition to time."
msgstr "Jos tosi, näytä päivämäärä kellossa ajan lisäksi."
#: ../data/org.gnome.shell.gschema.xml.in.h:9
msgid "If true, display seconds in time."
msgstr "Jos tosi, näytä sekunnit ajassa."
#: ../data/org.gnome.shell.gschema.xml.in.h:10
msgid "If true, display the ISO week date in the calendar."
msgstr "Jos tosi, näytä ISO-viikonpäivät kalenterissa."
#: ../data/org.gnome.shell.gschema.xml.in.h:11
msgid "List of desktop file IDs for favorite applications"
msgstr "Luettelo työpöytätiedostojen tunnisteista lempisovelluksille"
#: ../data/org.gnome.shell.gschema.xml.in.h:13
#, no-c-format
msgid ""
"Sets the GStreamer pipeline used to encode recordings. It follows the syntax "
@ -110,20 +124,25 @@ msgstr ""
"muotoon VP8-koodekilla. %T korvautuu arvauksella parhaan suorituskyvy "
"antavasta säiemäärästä järjestelmässä."
#: ../data/org.gnome.shell.gschema.xml.in.h:14
msgid "Show date in clock"
msgstr "Näytä päivämäärä kellossa"
#: ../data/org.gnome.shell.gschema.xml.in.h:15
msgid "Show the week date in the calendar"
msgstr "Näytä viikonpäivä kalenterissa"
#: ../data/org.gnome.shell.gschema.xml.in.h:16
msgid "Show time with seconds"
msgstr "Näytä aika sekuntien kera"
#: ../data/org.gnome.shell.gschema.xml.in.h:17
msgid ""
"The applications corresponding to these identifiers will be displayed in the "
"favorites area."
msgstr "Näitä tunnisteita vastaavat sovellukset näytetään suosikkien alueella."
#: ../data/org.gnome.shell.gschema.xml.in.h:18
msgid ""
"The filename for recorded screencasts will be a unique filename based on the "
"current date, and use this extension. It should be changed when recording to "
@ -133,6 +152,7 @@ msgstr ""
"nykyisen päivämäärän ja tämän tiedostopäätteen mukaisesti. Tiedostopääte "
"tulisi vaihtaa mikäli nauhoitetaan eri tallennusmuotoon."
#: ../data/org.gnome.shell.gschema.xml.in.h:19
msgid ""
"The framerate of the resulting screencast recordered by GNOME Shell's "
"screencast recorder in frames-per-second."
@ -140,9 +160,11 @@ msgstr ""
"Nauhoituksesta tuloksena saatavan ruutunauhoituksen kuvataajuus kun käytössä "
"on GNOMEn ikkunanhallinnan nauhoitin, kuvaa per sekunti."
#: ../data/org.gnome.shell.gschema.xml.in.h:20
msgid "The gstreamer pipeline used to encode the screencast"
msgstr "Gstreamer-liukuhihna jolla ruutunauhoitukset pakataan"
#: ../data/org.gnome.shell.gschema.xml.in.h:21
msgid ""
"The shell normally monitors active applications in order to present the most "
"used ones (e.g. in launchers). While this data will be kept private, you may "
@ -155,52 +177,72 @@ msgstr ""
"yksityisyyden vuoksi. Huomaa että pois kytkeminen ei poista aiemmin "
"tallennettuja tietoja."
#: ../data/org.gnome.shell.gschema.xml.in.h:22
msgid "The type of keyboard to use."
msgstr "Käytettävän näppäimistön tyyppi."
#: ../data/org.gnome.shell.gschema.xml.in.h:23
msgid "Uuids of extensions to enable"
msgstr "Käyttöön otettavien laajennosten UUID:t"
#: ../data/org.gnome.shell.gschema.xml.in.h:24
msgid "Whether to collect stats about applications usage"
msgstr "Kerätäänkö sovellusten käytöstä tilastoja"
#: ../data/org.gnome.shell.gschema.xml.in.h:25
msgid "Which keyboard to use"
msgstr "Mitä näppäimistöä käytetään"
#: ../data/org.gnome.shell.gschema.xml.in.h:26
msgid "disabled OpenSearch providers"
msgstr "käytöstä poistetut OpenSearch-tarjoajat"
#: ../js/gdm/loginDialog.js:633
msgid "Session..."
msgstr "Istunto…"
#: ../js/gdm/loginDialog.js:804
msgctxt "title"
msgid "Sign In"
msgstr "Kirjaudu sisään"
#. translators: this message is shown below the password entry field
#. to indicate the user can swipe their finger instead
#: ../js/gdm/loginDialog.js:849
msgid "(or swipe finger)"
msgstr "(tai pyyhkäise sormella)"
#: ../js/gdm/loginDialog.js:867
msgid "Not listed?"
msgstr "Ei luettelossa?"
#: ../js/gdm/loginDialog.js:1035 ../js/ui/endSessionDialog.js:426
#: ../js/ui/extensionSystem.js:477 ../js/ui/networkAgent.js:148
#: ../js/ui/polkitAuthenticationAgent.js:173 ../js/ui/status/bluetooth.js:480
msgid "Cancel"
msgstr "Peru"
#: ../js/gdm/loginDialog.js:1040
msgctxt "button"
msgid "Sign In"
msgstr "Kirjaudu sisään"
#: ../js/gdm/loginDialog.js:1392
msgid "Login Window"
msgstr "Kirjautumisikkuna"
#: ../js/gdm/powerMenu.js:116 ../js/ui/userMenu.js:554
#: ../js/ui/userMenu.js:556 ../js/ui/userMenu.js:625
msgid "Suspend"
msgstr "Valmiustila"
#: ../js/gdm/powerMenu.js:121 ../js/ui/endSessionDialog.js:89
#: ../js/ui/endSessionDialog.js:97 ../js/ui/endSessionDialog.js:106
msgid "Restart"
msgstr "Käynnistä uudelleen"
#: ../js/gdm/powerMenu.js:126 ../js/ui/endSessionDialog.js:80
#: ../js/ui/endSessionDialog.js:91
msgid "Power Off"
msgstr "Sammuta"
@ -254,13 +296,16 @@ msgstr "%s on lisätty suosikkeihin."
msgid "%s has been removed from your favorites."
msgstr "%s on poistettu suosikeista."
#: ../js/ui/autorunManager.js:280
msgid "Removable Devices"
msgstr "Irroitettavat laitteet"
#: ../js/ui/autorunManager.js:590
#, c-format
msgid "Open with %s"
msgstr "Avaa käyttäen %s"
msgstr "Avaa käyttäen sovellusta %s"
#: ../js/ui/autorunManager.js:616
msgid "Eject"
msgstr "Poista asemasta"
@ -412,28 +457,32 @@ msgstr "Tällä viikolla"
msgid "Next week"
msgstr "Ensi viikolla"
#: ../js/ui/contactDisplay.js:59 ../js/ui/notificationDaemon.js:444
#: ../js/ui/status/power.js:223 ../src/shell-app.c:355
#: ../js/ui/contactDisplay.js:65 ../js/ui/notificationDaemon.js:459
#: ../js/ui/status/power.js:223 ../src/shell-app.c:353
msgid "Unknown"
msgstr "Tuntematon"
#: ../js/ui/contactDisplay.js:86 ../js/ui/userMenu.js:139
msgid "Available"
msgstr "Tavoitettavissa"
#: ../js/ui/contactDisplay.js:91 ../js/ui/userMenu.js:148
msgid "Away"
msgstr "Poissa"
#: ../js/ui/contactDisplay.js:95 ../js/ui/userMenu.js:142
msgid "Busy"
msgstr "Kiireinen"
#: ../js/ui/contactDisplay.js:93
#: ../js/ui/contactDisplay.js:99
msgid "Offline"
msgstr "Ei linjoilla"
#: ../js/ui/contactDisplay.js:140
#: ../js/ui/contactDisplay.js:146
msgid "CONTACTS"
msgstr "YHTEYSTIEDOT"
#: ../js/ui/dash.js:174 ../js/ui/messageTray.js:1206
msgid "Remove"
msgstr "Poista"
@ -583,108 +632,131 @@ msgstr "Asenna"
msgid "Download and install '%s' from extensions.gnome.org?"
msgstr "Lataa ja asenna ”%s” sivustolta extensions.gnome.org?"
#: ../js/ui/keyboard.js:325
msgid "tray"
msgstr "ilmoitusalue"
#: ../js/ui/keyboard.js:547 ../js/ui/status/power.js:211
msgid "Keyboard"
msgstr "Näppäimistö"
#: ../js/ui/lookingGlass.js:645
#: ../js/ui/lookingGlass.js:646
msgid "No extensions installed"
msgstr "Laajennuksia ei asennettu"
#: ../js/ui/lookingGlass.js:691
#: ../js/ui/lookingGlass.js:692
msgid "Enabled"
msgstr "Käytössä"
#. translators:
#. * The device has been disabled
#: ../js/ui/lookingGlass.js:693 ../src/gvc/gvc-mixer-control.c:1093
#: ../js/ui/lookingGlass.js:694 ../src/gvc/gvc-mixer-control.c:1093
msgid "Disabled"
msgstr "Ei käytössä"
#: ../js/ui/lookingGlass.js:695
#: ../js/ui/lookingGlass.js:696
msgid "Error"
msgstr "Virhe"
#: ../js/ui/lookingGlass.js:697
#: ../js/ui/lookingGlass.js:698
msgid "Out of date"
msgstr "Ei ajan tasalla"
#: ../js/ui/lookingGlass.js:699
#: ../js/ui/lookingGlass.js:700
msgid "Downloading"
msgstr "Noudetaan"
#: ../js/ui/lookingGlass.js:724
#: ../js/ui/lookingGlass.js:721
msgid "View Source"
msgstr "Näytä lähde"
#: ../js/ui/lookingGlass.js:730
#: ../js/ui/lookingGlass.js:727
msgid "Web Page"
msgstr "WWW-sivu"
#: ../js/ui/messageTray.js:1199
msgid "Open"
msgstr "Avaa"
#: ../js/ui/messageTray.js:2408
msgid "System Information"
msgstr "Järjestelmän tiedot"
msgid "Show password"
msgstr "Näytä salasana"
#: ../js/ui/networkAgent.js:143
msgid "Connect"
msgstr "Yhdistä"
#. Cisco LEAP
#: ../js/ui/networkAgent.js:238 ../js/ui/networkAgent.js:250
#: ../js/ui/networkAgent.js:277 ../js/ui/networkAgent.js:297
#: ../js/ui/networkAgent.js:307
msgid "Password: "
msgstr "Salasana: "
#. static WEP
#: ../js/ui/networkAgent.js:243
msgid "Key: "
msgstr "Avain: "
#. TTLS and PEAP are actually much more complicated, but this complication
#. is not visible here since we only care about phase2 authentication
#. (and don't even care of which one)
#: ../js/ui/networkAgent.js:275 ../js/ui/networkAgent.js:293
msgid "Username: "
msgstr "Käyttäjänimi: "
#: ../js/ui/networkAgent.js:281
msgid "Identity: "
msgstr "Henkilöllisyys: "
#: ../js/ui/networkAgent.js:283
msgid "Private key password: "
msgstr "Salaisen avaimen salasana: "
#: ../js/ui/networkAgent.js:295
msgid "Service: "
msgstr "Palvelu: "
#: ../js/ui/networkAgent.js:324
msgid "Authentication required by wireless network"
msgstr "Langaton verkko vaatii tunnistautumisen"
#: ../js/ui/networkAgent.js:325
#, c-format
msgid ""
"Passwords or encryption keys are required to access the wireless network "
"'%s'."
"Passwords or encryption keys are required to access the wireless network '%"
"s'."
msgstr "Langaton verkko %s vaatii salasanan tai salausavaimia."
#: ../js/ui/networkAgent.js:329
msgid "Wired 802.1X authentication"
msgstr "Kiinteän 802.1X-yhteyden tunnistautuminen"
#: ../js/ui/networkAgent.js:331
msgid "Network name: "
msgstr "Verkon nimi: "
#: ../js/ui/networkAgent.js:336
msgid "DSL authentication"
msgstr "DSL-tunnistautuminen"
#: ../js/ui/networkAgent.js:343
msgid "PIN code required"
msgstr "PIN-koodi vaaditaan"
#: ../js/ui/networkAgent.js:344
msgid "PIN code is needed for the mobile broadband device"
msgstr "Mobiililaajakaista vaatii PIN-koodin"
#: ../js/ui/networkAgent.js:345
msgid "PIN: "
msgstr "PIN: "
#: ../js/ui/networkAgent.js:351
msgid "Mobile broadband network password"
msgstr "Mobiililaajakaistan verkkosalasana"
#: ../js/ui/networkAgent.js:352
#, c-format
msgid "A password is required to connect to '%s'."
msgstr "Salasana vaaditaan kohteeseen %s yhdistämiseksi."
@ -708,15 +780,18 @@ msgid "Dash"
msgstr "Pikavalikko"
#. TODO - _quit() doesn't really work on apps in state STARTING yet
#: ../js/ui/panel.js:539
#, c-format
msgid "Quit %s"
msgstr "Lopeta %s"
#. Translators: If there is no suitable word for "Activities"
#. in your language, you can use the word for "Overview".
#: ../js/ui/panel.js:575
msgid "Activities"
msgstr "Toiminnot"
#: ../js/ui/panel.js:967
msgid "Top Bar"
msgstr "Yläpalkki"
@ -737,14 +812,15 @@ msgstr "Yhdistä…"
msgid "PLACES & DEVICES"
msgstr "SIJAINNIT JA LAITTEET"
#: ../js/ui/polkitAuthenticationAgent.js:72
#: ../js/ui/polkitAuthenticationAgent.js:73
msgid "Authentication Required"
msgstr "Tunnistautuminen vaaditaan"
#: ../js/ui/polkitAuthenticationAgent.js:106
#: ../js/ui/polkitAuthenticationAgent.js:107
msgid "Administrator"
msgstr "Ylläpitäjä"
#: ../js/ui/polkitAuthenticationAgent.js:177
msgid "Authenticate"
msgstr "Tunnistaudu"
@ -752,9 +828,11 @@ msgstr "Tunnistaudu"
#. * requested authentication was not gained; this can happen
#. * because of an authentication error (like invalid password),
#. * for instance.
#: ../js/ui/polkitAuthenticationAgent.js:258
msgid "Sorry, that didn't work. Please try again."
msgstr "Tunnistautuminen epäonnistui. Yritä uudelleen."
#: ../js/ui/polkitAuthenticationAgent.js:270
msgid "Password:"
msgstr "Salasana:"
@ -763,10 +841,11 @@ msgstr "Salasana:"
#. "ON" and "OFF") or "toggle-switch-intl" (for toggle
#. switches containing "◯" and "|"). Other values will
#. simply result in invisible toggle switches.
#: ../js/ui/popupMenu.js:731
msgid "toggle-switch-us"
msgstr "toggle-switch-intl"
#: ../js/ui/runDialog.js:208
#: ../js/ui/runDialog.js:209
msgid "Please enter a command:"
msgstr "Syötä komento:"
@ -778,6 +857,22 @@ msgstr "Haetaan…"
msgid "No matching results."
msgstr "Ei tuloksia."
#: ../js/ui/shellEntry.js:30
msgid "Copy"
msgstr "Kopioi"
#: ../js/ui/shellEntry.js:35
msgid "Paste"
msgstr "Liitä"
#: ../js/ui/shellEntry.js:81
msgid "Show Text"
msgstr "Näytä teksti"
#: ../js/ui/shellEntry.js:83
msgid "Hide Text"
msgstr "Piilota teksti"
#: ../js/ui/shellMountOperation.js:285
msgid "Wrong password, please try again"
msgstr "Väärä salasana, yritä uudelleen"
@ -789,6 +884,7 @@ msgstr "Lähennys"
#. let screenReader = this._buildItem(_("Screen Reader"), APPLICATIONS_SCHEMA,
#. 'screen-reader-enabled');
#. this.menu.addMenuItem(screenReader);
#: ../js/ui/status/accessibility.js:71
msgid "Screen Keyboard"
msgstr "Näyttönäppäimistö"
@ -910,7 +1006,7 @@ msgstr "Salli pääsy aina"
msgid "Grant this time only"
msgstr "Salli vain tällä kerralla"
#: ../js/ui/status/bluetooth.js:392 ../js/ui/telepathyClient.js:1196
#: ../js/ui/status/bluetooth.js:392 ../js/ui/telepathyClient.js:1204
msgid "Reject"
msgstr "Hylkää"
@ -950,9 +1046,11 @@ msgstr "Kirjoita laitteella mainittu PIN-koodi."
msgid "OK"
msgstr "OK"
#: ../js/ui/status/keyboard.js:73
msgid "Show Keyboard Layout"
msgstr "Näytä näppäimistön asettelu"
#: ../js/ui/status/keyboard.js:78
msgid "Region and Language Settings"
msgstr "Kielen ja alueen asetukset"
@ -997,11 +1095,13 @@ msgstr "ei käytettävissä"
msgid "connection failed"
msgstr "yhteys katkesi"
#: ../js/ui/status/network.js:575 ../js/ui/status/network.js:1523
msgid "More..."
msgstr "Lisää…"
#. TRANSLATORS: this is the indication that a connection for another logged in user is active,
#. and we cannot access its settings (including the name)
#: ../js/ui/status/network.js:611 ../js/ui/status/network.js:1458
msgid "Connected (private)"
msgstr "Yhdistetty (yksityinen)"
@ -1018,6 +1118,7 @@ msgid "Auto dial-up"
msgstr "Automaattinen, puhelinverkko"
#. TRANSLATORS: this the automatic wireless connection name (including the network name)
#: ../js/ui/status/network.js:878 ../js/ui/status/network.js:1470
#, c-format
msgid "Auto %s"
msgstr "Automaattinen: %s"
@ -1026,36 +1127,47 @@ msgstr "Automaattinen: %s"
msgid "Auto bluetooth"
msgstr "Automaattinen: Bluetooth"
#: ../js/ui/status/network.js:1472
msgid "Auto wireless"
msgstr "Automaattinen: langaton"
#: ../js/ui/status/network.js:1566
msgid "Enable networking"
msgstr "Ota verkko käyttöön"
#: ../js/ui/status/network.js:1578
msgid "Wired"
msgstr "Kiinteä"
#: ../js/ui/status/network.js:1589
msgid "Wireless"
msgstr "Langaton"
#: ../js/ui/status/network.js:1599
msgid "Mobile broadband"
msgstr "Mobiililaajakaista"
#: ../js/ui/status/network.js:1609
msgid "VPN Connections"
msgstr "VPN-yhteydet"
#: ../js/ui/status/network.js:1620
msgid "Network Settings"
msgstr "Verkkoasetukset"
#: ../js/ui/status/network.js:1757
msgid "Connection failed"
msgstr "Yhteys epäonnistui"
#: ../js/ui/status/network.js:1758
msgid "Activation of network connection failed"
msgstr "Verkkoyhteyden aktivointi epäonnistui"
#: ../js/ui/status/network.js:2008
msgid "Networking is disabled"
msgstr "Verkko ei ole käytössä"
#: ../js/ui/status/network.js:2133
msgid "Network Manager"
msgstr "Verkon hallinta"
@ -1163,39 +1275,39 @@ msgid "Invitation"
msgstr "Kutsu"
#. We got the TpContact
#: ../js/ui/telepathyClient.js:325
#: ../js/ui/telepathyClient.js:327
msgid "Call"
msgstr "Soita"
#. We got the TpContact
#: ../js/ui/telepathyClient.js:353
#: ../js/ui/telepathyClient.js:357
msgid "File Transfer"
msgstr "Tiedostonsiirto"
#: ../js/ui/telepathyClient.js:434
#: ../js/ui/telepathyClient.js:438
msgid "Subscription request"
msgstr "Tilauspyyntö"
#: ../js/ui/telepathyClient.js:470
#: ../js/ui/telepathyClient.js:474
msgid "Connection error"
msgstr "Yhteysvirhe"
#: ../js/ui/telepathyClient.js:733
#: ../js/ui/telepathyClient.js:741
#, c-format
msgid "%s is online."
msgstr "%s on linjoilla."
#: ../js/ui/telepathyClient.js:738
#: ../js/ui/telepathyClient.js:746
#, c-format
msgid "%s is offline."
msgstr "%s on poissa linjoilta."
#: ../js/ui/telepathyClient.js:741
#: ../js/ui/telepathyClient.js:749
#, c-format
msgid "%s is away."
msgstr "%s on poissa."
#: ../js/ui/telepathyClient.js:744
#: ../js/ui/telepathyClient.js:752
#, c-format
msgid "%s is busy."
msgstr "%s on kiireinen."
@ -1203,35 +1315,35 @@ msgstr "%s on kiireinen."
#. Translators: this is a time format string followed by a date.
#. If applicable, replace %X with a strftime format valid for your
#. locale, without seconds.
#: ../js/ui/telepathyClient.js:978
#: ../js/ui/telepathyClient.js:986
#, no-c-format
msgid "Sent at <b>%X</b> on <b>%A</b>"
msgstr "Lähetetty <b>%Ana</b> kello <b>%H.%M</b>"
#. Translators: this is a time format in the style of "Wednesday, May 25",
#. shown when you get a chat message in the same year.
#: ../js/ui/telepathyClient.js:984
#: ../js/ui/telepathyClient.js:992
#, no-c-format
msgid "Sent on <b>%A</b>, <b>%B %d</b>"
msgstr "Lähetetty <b>%Ana</b> <b>%d. %Bta</b>"
#. Translators: this is a time format in the style of "Wednesday, May 25, 2012",
#. shown when you get a chat message in a different year.
#: ../js/ui/telepathyClient.js:989
#: ../js/ui/telepathyClient.js:997
#, no-c-format
msgid "Sent on <b>%A</b>, <b>%B %d</b>, %Y"
msgstr "Lähetetty <b>%Ana</b> <b>%d. %Bta</b> %Y"
#. Translators: this is the other person changing their old IM name to their new
#. IM name.
#: ../js/ui/telepathyClient.js:1031
#: ../js/ui/telepathyClient.js:1039
#, c-format
msgid "%s is now known as %s"
msgstr "%s on nyt nimeltään %s"
#. translators: argument is a room name like
#. * room@jabber.org for example.
#: ../js/ui/telepathyClient.js:1140
#: ../js/ui/telepathyClient.js:1148
#, c-format
msgid "Invitation to %s"
msgstr "Kutsu huoneeseen %s"
@ -1239,34 +1351,35 @@ msgstr "Kutsu huoneeseen %s"
#. 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
#. * for example.
#: ../js/ui/telepathyClient.js:1148
#: ../js/ui/telepathyClient.js:1156
#, c-format
msgid "%s is inviting you to join %s"
msgstr "%s kutsuu sinut huoneeseen %s"
#: ../js/ui/telepathyClient.js:1150 ../js/ui/telepathyClient.js:1239
#: ../js/ui/telepathyClient.js:1343
#: ../js/ui/telepathyClient.js:1158 ../js/ui/telepathyClient.js:1248
#: ../js/ui/telepathyClient.js:1352
msgid "Decline"
msgstr "Kieltäydy"
#: ../js/ui/telepathyClient.js:1151 ../js/ui/telepathyClient.js:1240
#: ../js/ui/telepathyClient.js:1344
#: ../js/ui/telepathyClient.js:1159 ../js/ui/telepathyClient.js:1249
#: ../js/ui/telepathyClient.js:1353
msgid "Accept"
msgstr "Hyväksy"
#. translators: argument is a contact name like Alice for example.
#: ../js/ui/telepathyClient.js:1184
#: ../js/ui/telepathyClient.js:1192
#, c-format
msgid "Video call from %s"
msgstr "Videopuhelu käyttäjältä %s"
#. translators: argument is a contact name like Alice for example.
#: ../js/ui/telepathyClient.js:1187
#: ../js/ui/telepathyClient.js:1195
#, c-format
msgid "Call from %s"
msgstr "Puhelu käyttäjältä %s"
#: ../js/ui/telepathyClient.js:1197
#. translators: this is a button label (verb), not a noun
#: ../js/ui/telepathyClient.js:1206
msgid "Answer"
msgstr "Vastaa"
@ -1275,108 +1388,108 @@ msgstr "Vastaa"
#. * file name. The string will be something
#. * like: "Alice is sending you test.ogg"
#.
#: ../js/ui/telepathyClient.js:1233
#: ../js/ui/telepathyClient.js:1242
#, c-format
msgid "%s is sending you %s"
msgstr "%s on lähettämässä sinulle tiedostoa %s"
#. To translators: The parameter is the contact's alias
#: ../js/ui/telepathyClient.js:1308
#: ../js/ui/telepathyClient.js:1317
#, c-format
msgid "%s would like permission to see when you are online"
msgstr "%s haluaisi saada luvan nähdä, milloin olet linjoilla"
#: ../js/ui/telepathyClient.js:1406
#: ../js/ui/telepathyClient.js:1415
msgid "Network error"
msgstr "Verkkovirhe"
#: ../js/ui/telepathyClient.js:1408
#: ../js/ui/telepathyClient.js:1417
msgid "Authentication failed"
msgstr "Tunnistautuminen epäonnistui"
#: ../js/ui/telepathyClient.js:1410
#: ../js/ui/telepathyClient.js:1419
msgid "Encryption error"
msgstr "Salausvirhe"
#: ../js/ui/telepathyClient.js:1412
#: ../js/ui/telepathyClient.js:1421
msgid "Certificate not provided"
msgstr "Varmennetta ei annettu"
#: ../js/ui/telepathyClient.js:1414
#: ../js/ui/telepathyClient.js:1423
msgid "Certificate untrusted"
msgstr "Varmenteeseen ei luoteta"
#: ../js/ui/telepathyClient.js:1416
#: ../js/ui/telepathyClient.js:1425
msgid "Certificate expired"
msgstr "Varmenne on vanhentunut"
#: ../js/ui/telepathyClient.js:1418
#: ../js/ui/telepathyClient.js:1427
msgid "Certificate not activated"
msgstr "Varmennetta ei ole aktivoitu"
#: ../js/ui/telepathyClient.js:1420
#: ../js/ui/telepathyClient.js:1429
msgid "Certificate hostname mismatch"
msgstr "Varmenteen konenimiristiriita"
#: ../js/ui/telepathyClient.js:1422
#: ../js/ui/telepathyClient.js:1431
msgid "Certificate fingerprint mismatch"
msgstr "Varmenteen sormenjälkiristiriita"
#: ../js/ui/telepathyClient.js:1424
#: ../js/ui/telepathyClient.js:1433
msgid "Certificate self-signed"
msgstr "Varmenne on itseallekirjoitettu"
#: ../js/ui/telepathyClient.js:1426
#: ../js/ui/telepathyClient.js:1435
msgid "Status is set to offline"
msgstr "Tilaksi on asetettu ”poissa linjoilta”"
#: ../js/ui/telepathyClient.js:1428
#: ../js/ui/telepathyClient.js:1437
msgid "Encryption is not available"
msgstr "Salaus ei ole käytettävissä"
#: ../js/ui/telepathyClient.js:1430
#: ../js/ui/telepathyClient.js:1439
msgid "Certificate is invalid"
msgstr "Varmenne ei kelpaa"
#: ../js/ui/telepathyClient.js:1432
#: ../js/ui/telepathyClient.js:1441
msgid "Connection has been refused"
msgstr "Yhteys on evätty"
#: ../js/ui/telepathyClient.js:1434
#: ../js/ui/telepathyClient.js:1443
msgid "Connection can't be established"
msgstr "Yhteyttä ei voida muodostaa"
#: ../js/ui/telepathyClient.js:1436
#: ../js/ui/telepathyClient.js:1445
msgid "Connection has been lost"
msgstr "Yhteys on katkennut"
#: ../js/ui/telepathyClient.js:1438
#: ../js/ui/telepathyClient.js:1447
msgid "This resource is already connected to the server"
msgstr "Tämä resurssi on jo yhteydessä palvelimeen"
#: ../js/ui/telepathyClient.js:1440
#: ../js/ui/telepathyClient.js:1449
msgid ""
"Connection has been replaced by a new connection using the same resource"
msgstr "Yhteys on korvattu uudella samaa resurssia käyttävällä yhteydellä"
#: ../js/ui/telepathyClient.js:1442
#: ../js/ui/telepathyClient.js:1451
msgid "The account already exists on the server"
msgstr "Tili on jo olemassa palvelimella"
#: ../js/ui/telepathyClient.js:1444
#: ../js/ui/telepathyClient.js:1453
msgid "Server is currently too busy to handle the connection"
msgstr "Palvelin on tällä hetkellä liian kiireinen käsittelemään yhteyttä"
#: ../js/ui/telepathyClient.js:1446
#: ../js/ui/telepathyClient.js:1455
msgid "Certificate has been revoked"
msgstr "Varmenne on kumottu"
#: ../js/ui/telepathyClient.js:1448
#: ../js/ui/telepathyClient.js:1457
msgid ""
"Certificate uses an insecure cipher algorithm or is cryptographically weak"
msgstr "Varmenne käyttää turvatonta salausmenetelmää"
#: ../js/ui/telepathyClient.js:1450
#: ../js/ui/telepathyClient.js:1459
msgid ""
"The length of the server certificate, or the depth of the server certificate "
"chain, exceed the limits imposed by the cryptography library"
@ -1385,56 +1498,68 @@ msgstr ""
#. translators: argument is the account name, like
#. * name@jabber.org for example.
#: ../js/ui/telepathyClient.js:1459
#: ../js/ui/telepathyClient.js:1468
#, c-format
msgid "Connection to %s failed"
msgstr "Yhteys kohteeseen %s katkesi"
#: ../js/ui/telepathyClient.js:1468
#: ../js/ui/telepathyClient.js:1477
msgid "Reconnect"
msgstr "Yhdistä uudelleen"
#: ../js/ui/telepathyClient.js:1469
#: ../js/ui/telepathyClient.js:1478
msgid "Edit account"
msgstr "Muokkaa tiliä"
#: ../js/ui/telepathyClient.js:1515
#: ../js/ui/telepathyClient.js:1524
msgid "Unknown reason"
msgstr "Tuntematon syy"
#: ../js/ui/userMenu.js:145
msgid "Hidden"
msgstr "Piilotettu"
#: ../js/ui/userMenu.js:151
msgid "Idle"
msgstr "Jouten"
#: ../js/ui/userMenu.js:154
msgid "Unavailable"
msgstr "Ei tavoitettavissa"
#: ../js/ui/userMenu.js:552 ../js/ui/userMenu.js:556 ../js/ui/userMenu.js:626
msgid "Power Off..."
msgstr "Sammuta…"
#: ../js/ui/userMenu.js:588
msgid "Notifications"
msgstr "Ilmoitukset"
#: ../js/ui/userMenu.js:596
msgid "Online Accounts"
msgstr "Verkkotilit"
#: ../js/ui/userMenu.js:600
msgid "System Settings"
msgstr "Järjestelmän asetukset"
#: ../js/ui/userMenu.js:607
msgid "Lock Screen"
msgstr "Lukitse näyttö"
#: ../js/ui/userMenu.js:612
msgid "Switch User"
msgstr "Vaihda käyttäjää"
#: ../js/ui/userMenu.js:617
msgid "Log Out..."
msgstr "Kirjaudu ulos…"
#: ../js/ui/userMenu.js:645
msgid "Your chat status will be set to busy"
msgstr "Pikaviestitilaksi asetetaan ”kiireinen”"
#: ../js/ui/userMenu.js:646
msgid ""
"Notifications are now disabled, including chat messages. Your online status "
"has been adjusted to let others know that you might not see their messages."
@ -1447,20 +1572,15 @@ msgstr ""
#. in the search entry when no search is
#. active; it should not exceed ~30
#. characters.
#: ../js/ui/viewSelector.js:120
#: ../js/ui/viewSelector.js:121
msgid "Type to search..."
msgstr "Kirjoita hakeaksesi…"
#: ../js/ui/viewSelector.js:140 ../src/shell-util.c:261
#: ../js/ui/viewSelector.js:142 ../src/shell-util.c:261
msgid "Search"
msgstr "Haku"
#: ../js/ui/windowAttentionHandler.js:39
#, c-format
msgid "%s has finished starting"
msgstr "%s on käynnistynyt"
#: ../js/ui/windowAttentionHandler.js:41
#: ../js/ui/windowAttentionHandler.js:35
#, c-format
msgid "'%s' is ready"
msgstr "%s on valmis"
@ -1495,7 +1615,7 @@ msgstr "Tulosta versio"
msgid "Mode used by GDM for login screen"
msgstr "GDM:n kirjautumisruudussa käyttämä tila"
#: ../src/shell-app.c:581
#: ../src/shell-app.c:579
#, c-format
msgid "Failed to launch '%s'"
msgstr "Sovelluksen ”%s” käynnistäminen epäonnistui"
@ -1532,6 +1652,12 @@ msgstr "Tiedostojärjestelmä"
msgid "%1$s: %2$s"
msgstr "%1$s: %2$s"
#~ msgid "Show password"
#~ msgstr "Näytä salasana"
#~ msgid "%s has finished starting"
#~ msgstr "%s on käynnistynyt"
#~ msgid "Connectivity lost"
#~ msgstr "Yhteys katkesi"

273
po/fr.po
View File

@ -15,8 +15,8 @@ msgstr ""
"Project-Id-Version: gnome-shell master fr\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
"shell&keywords=I18N+L10N&component=general\n"
"POT-Creation-Date: 2011-09-23 12:02+0000\n"
"PO-Revision-Date: 2011-09-14 18:35+0200\n"
"POT-Creation-Date: 2011-10-18 19:39+0000\n"
"PO-Revision-Date: 2011-10-29 19:01+0200\n"
"Last-Translator: Bruno Brouard <annoa.b@gmail.com>\n"
"Language-Team: GNOME French Team <gnomefr@traduc.org>\n"
"MIME-Version: 1.0\n"
@ -192,42 +192,42 @@ msgstr "Le clavier utilisé"
msgid "disabled OpenSearch providers"
msgstr "fournisseurs OpenSearch désactivés"
#: ../js/gdm/loginDialog.js:617
#: ../js/gdm/loginDialog.js:633
msgid "Session..."
msgstr "Session..."
#: ../js/gdm/loginDialog.js:785
#: ../js/gdm/loginDialog.js:804
msgctxt "title"
msgid "Sign In"
msgstr "Connexion"
#. translators: this message is shown below the password entry field
#. to indicate the user can swipe their finger instead
#: ../js/gdm/loginDialog.js:830
#: ../js/gdm/loginDialog.js:849
msgid "(or swipe finger)"
msgstr "(ou faites glisser le doigt)"
#: ../js/gdm/loginDialog.js:848
#: ../js/gdm/loginDialog.js:867
msgid "Not listed?"
msgstr "Absent de la liste ?"
#: ../js/gdm/loginDialog.js:1004 ../js/ui/endSessionDialog.js:426
#: ../js/ui/extensionSystem.js:477 ../js/ui/networkAgent.js:165
#: ../js/ui/polkitAuthenticationAgent.js:171 ../js/ui/status/bluetooth.js:480
#: ../js/gdm/loginDialog.js:1035 ../js/ui/endSessionDialog.js:426
#: ../js/ui/extensionSystem.js:477 ../js/ui/networkAgent.js:148
#: ../js/ui/polkitAuthenticationAgent.js:173 ../js/ui/status/bluetooth.js:480
msgid "Cancel"
msgstr "Annuler"
#: ../js/gdm/loginDialog.js:1009
#: ../js/gdm/loginDialog.js:1040
msgctxt "button"
msgid "Sign In"
msgstr "Se connecter"
#: ../js/gdm/loginDialog.js:1358
#: ../js/gdm/loginDialog.js:1392
msgid "Login Window"
msgstr "Fenêtre de connexion"
#: ../js/gdm/powerMenu.js:116 ../js/ui/userMenu.js:514
#: ../js/ui/userMenu.js:516 ../js/ui/userMenu.js:585
#: ../js/gdm/powerMenu.js:116 ../js/ui/userMenu.js:554
#: ../js/ui/userMenu.js:556 ../js/ui/userMenu.js:625
msgid "Suspend"
msgstr "Mettre en veille"
@ -473,32 +473,32 @@ msgstr "Cette semaine"
msgid "Next week"
msgstr "La semaine prochaine"
#: ../js/ui/contactDisplay.js:59 ../js/ui/notificationDaemon.js:444
#: ../js/ui/status/power.js:223 ../src/shell-app.c:355
#: ../js/ui/contactDisplay.js:65 ../js/ui/notificationDaemon.js:459
#: ../js/ui/status/power.js:223 ../src/shell-app.c:353
msgid "Unknown"
msgstr "Inconnu"
#: ../js/ui/contactDisplay.js:80 ../js/ui/userMenu.js:139
#: ../js/ui/contactDisplay.js:86 ../js/ui/userMenu.js:139
msgid "Available"
msgstr "Disponible"
#: ../js/ui/contactDisplay.js:85 ../js/ui/userMenu.js:148
#: ../js/ui/contactDisplay.js:91 ../js/ui/userMenu.js:148
msgid "Away"
msgstr "Absent"
#: ../js/ui/contactDisplay.js:89 ../js/ui/userMenu.js:142
#: ../js/ui/contactDisplay.js:95 ../js/ui/userMenu.js:142
msgid "Busy"
msgstr "Occupé"
#: ../js/ui/contactDisplay.js:93
#: ../js/ui/contactDisplay.js:99
msgid "Offline"
msgstr "Déconnecté"
#: ../js/ui/contactDisplay.js:140
#: ../js/ui/contactDisplay.js:146
msgid "CONTACTS"
msgstr "CONTACTS"
#: ../js/ui/dash.js:172 ../js/ui/messageTray.js:1204
#: ../js/ui/dash.js:174 ../js/ui/messageTray.js:1206
msgid "Remove"
msgstr "Enlever"
@ -643,96 +643,96 @@ msgstr "Installer"
msgid "Download and install '%s' from extensions.gnome.org?"
msgstr "Télécharger et installer « %s » à partir de extensions.gnome.org ?"
#: ../js/ui/keyboard.js:517 ../js/ui/status/power.js:211
#: ../js/ui/keyboard.js:325
msgid "tray"
msgstr "zone de notification"
#: ../js/ui/keyboard.js:547 ../js/ui/status/power.js:211
msgid "Keyboard"
msgstr "Clavier"
#: ../js/ui/lookingGlass.js:645
#: ../js/ui/lookingGlass.js:646
msgid "No extensions installed"
msgstr "Aucune extension installée"
#: ../js/ui/lookingGlass.js:691
#: ../js/ui/lookingGlass.js:692
msgid "Enabled"
msgstr "Activé"
#. translators:
#. * The device has been disabled
#: ../js/ui/lookingGlass.js:693 ../src/gvc/gvc-mixer-control.c:1093
#: ../js/ui/lookingGlass.js:694 ../src/gvc/gvc-mixer-control.c:1093
msgid "Disabled"
msgstr "Désactivé"
#: ../js/ui/lookingGlass.js:695
#: ../js/ui/lookingGlass.js:696
msgid "Error"
msgstr "Erreur"
#: ../js/ui/lookingGlass.js:697
#: ../js/ui/lookingGlass.js:698
msgid "Out of date"
msgstr "Périmé"
#: ../js/ui/lookingGlass.js:699
#: ../js/ui/lookingGlass.js:700
msgid "Downloading"
msgstr "Téléchargement"
#: ../js/ui/lookingGlass.js:724
#: ../js/ui/lookingGlass.js:721
msgid "View Source"
msgstr "Afficher la source"
#: ../js/ui/lookingGlass.js:730
#: ../js/ui/lookingGlass.js:727
msgid "Web Page"
msgstr "Page Web"
#: ../js/ui/messageTray.js:1197
#: ../js/ui/messageTray.js:1199
msgid "Open"
msgstr "Ouvrir"
#: ../js/ui/messageTray.js:2405
#: ../js/ui/messageTray.js:2408
msgid "System Information"
msgstr "Informations du système"
#: ../js/ui/networkAgent.js:145
msgid "Show password"
msgstr "Afficher le mot de passe"
#: ../js/ui/networkAgent.js:160
#: ../js/ui/networkAgent.js:143
msgid "Connect"
msgstr "Se connecter"
#. Cisco LEAP
#: ../js/ui/networkAgent.js:255 ../js/ui/networkAgent.js:267
#: ../js/ui/networkAgent.js:294 ../js/ui/networkAgent.js:314
#: ../js/ui/networkAgent.js:324
#: ../js/ui/networkAgent.js:238 ../js/ui/networkAgent.js:250
#: ../js/ui/networkAgent.js:277 ../js/ui/networkAgent.js:297
#: ../js/ui/networkAgent.js:307
msgid "Password: "
msgstr "Mot de passe : "
#. static WEP
#: ../js/ui/networkAgent.js:260
#: ../js/ui/networkAgent.js:243
msgid "Key: "
msgstr "Clé : "
#. TTLS and PEAP are actually much more complicated, but this complication
#. is not visible here since we only care about phase2 authentication
#. (and don't even care of which one)
#: ../js/ui/networkAgent.js:292 ../js/ui/networkAgent.js:310
#: ../js/ui/networkAgent.js:275 ../js/ui/networkAgent.js:293
msgid "Username: "
msgstr "Nom d'utilisateur : "
#: ../js/ui/networkAgent.js:298
#: ../js/ui/networkAgent.js:281
msgid "Identity: "
msgstr "Identité : "
#: ../js/ui/networkAgent.js:300
#: ../js/ui/networkAgent.js:283
msgid "Private key password: "
msgstr "Mot de passe de la clé privée : "
#: ../js/ui/networkAgent.js:312
#: ../js/ui/networkAgent.js:295
msgid "Service: "
msgstr "Service : "
#: ../js/ui/networkAgent.js:341
#: ../js/ui/networkAgent.js:324
msgid "Authentication required by wireless network"
msgstr "L'authentification est requise par le réseau sans fil"
#: ../js/ui/networkAgent.js:342
#: ../js/ui/networkAgent.js:325
#, c-format
msgid ""
"Passwords or encryption keys are required to access the wireless network '%"
@ -741,35 +741,35 @@ msgstr ""
"Il faut un mot de passe ou une clé de chiffrement pour accéder au réseau "
"sans fil « %s »"
#: ../js/ui/networkAgent.js:346
#: ../js/ui/networkAgent.js:329
msgid "Wired 802.1X authentication"
msgstr "Authentification filaire 802.1X"
#: ../js/ui/networkAgent.js:348
#: ../js/ui/networkAgent.js:331
msgid "Network name: "
msgstr "Nom du réseau : "
#: ../js/ui/networkAgent.js:353
#: ../js/ui/networkAgent.js:336
msgid "DSL authentication"
msgstr "Authentification DSL"
#: ../js/ui/networkAgent.js:360
#: ../js/ui/networkAgent.js:343
msgid "PIN code required"
msgstr "Code PIN requis"
#: ../js/ui/networkAgent.js:361
#: ../js/ui/networkAgent.js:344
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"
#: ../js/ui/networkAgent.js:362
#: ../js/ui/networkAgent.js:345
msgid "PIN: "
msgstr "PIN : "
#: ../js/ui/networkAgent.js:368
#: ../js/ui/networkAgent.js:351
msgid "Mobile broadband network password"
msgstr "Mot de passe du téléphone mobile à large bande"
#: ../js/ui/networkAgent.js:369
#: ../js/ui/networkAgent.js:352
#, c-format
msgid "A password is required to connect to '%s'."
msgstr "Un mot de passe est requis pour se connecter à « %s »."
@ -825,15 +825,15 @@ msgstr "Connexion à..."
msgid "PLACES & DEVICES"
msgstr "RACCOURCIS et PÉRIPHÉRIQUES"
#: ../js/ui/polkitAuthenticationAgent.js:72
#: ../js/ui/polkitAuthenticationAgent.js:73
msgid "Authentication Required"
msgstr "Authentification nécessaire"
#: ../js/ui/polkitAuthenticationAgent.js:106
#: ../js/ui/polkitAuthenticationAgent.js:107
msgid "Administrator"
msgstr "Administrateur"
#: ../js/ui/polkitAuthenticationAgent.js:175
#: ../js/ui/polkitAuthenticationAgent.js:177
msgid "Authenticate"
msgstr "S'authentifier"
@ -841,11 +841,11 @@ msgstr "S'authentifier"
#. * requested authentication was not gained; this can happen
#. * because of an authentication error (like invalid password),
#. * for instance.
#: ../js/ui/polkitAuthenticationAgent.js:256
#: ../js/ui/polkitAuthenticationAgent.js:258
msgid "Sorry, that didn't work. Please try again."
msgstr "Échec de l'authentification. Essayez à nouveau."
#: ../js/ui/polkitAuthenticationAgent.js:268
#: ../js/ui/polkitAuthenticationAgent.js:270
msgid "Password:"
msgstr "Mot de passe :"
@ -858,7 +858,7 @@ msgstr "Mot de passe :"
msgid "toggle-switch-us"
msgstr "toggle-switch-intl"
#: ../js/ui/runDialog.js:208
#: ../js/ui/runDialog.js:209
msgid "Please enter a command:"
msgstr "Veuillez saisir une commande :"
@ -870,6 +870,22 @@ msgstr "Recherche en cours..."
msgid "No matching results."
msgstr "Aucun résultat correspondant."
#: ../js/ui/shellEntry.js:30
msgid "Copy"
msgstr "Copier"
#: ../js/ui/shellEntry.js:35
msgid "Paste"
msgstr "Coller"
#: ../js/ui/shellEntry.js:81
msgid "Show Text"
msgstr "Afficher le texte"
#: ../js/ui/shellEntry.js:83
msgid "Hide Text"
msgstr "Masquer le texte"
#: ../js/ui/shellMountOperation.js:285
msgid "Wrong password, please try again"
msgstr "Mot de passe incorrect, réessayez"
@ -1003,7 +1019,7 @@ msgstr "Toujours accorder l'accès"
msgid "Grant this time only"
msgstr "Accorder l'accès cette fois uniquement"
#: ../js/ui/status/bluetooth.js:392 ../js/ui/telepathyClient.js:1196
#: ../js/ui/status/bluetooth.js:392 ../js/ui/telepathyClient.js:1204
msgid "Reject"
msgstr "Refuser"
@ -1276,41 +1292,41 @@ msgid "Invitation"
msgstr "Invitation"
#. We got the TpContact
#: ../js/ui/telepathyClient.js:325
#: ../js/ui/telepathyClient.js:327
msgid "Call"
msgstr "Appel"
#. We got the TpContact
#: ../js/ui/telepathyClient.js:353
#: ../js/ui/telepathyClient.js:357
msgid "File Transfer"
msgstr "Transfert de fichiers"
#: ../js/ui/telepathyClient.js:434
#: ../js/ui/telepathyClient.js:438
msgid "Subscription request"
msgstr "Demande d'abonnement"
#: ../js/ui/telepathyClient.js:470
#: ../js/ui/telepathyClient.js:474
msgid "Connection error"
msgstr "Erreur de connexion"
#: ../js/ui/telepathyClient.js:733
#: ../js/ui/telepathyClient.js:741
#, c-format
msgid "%s is online."
msgstr "%s est en ligne."
#
# luc: note: Empathy utilise « déconnecté »
#: ../js/ui/telepathyClient.js:738
#: ../js/ui/telepathyClient.js:746
#, c-format
msgid "%s is offline."
msgstr "%s est hors ligne."
#: ../js/ui/telepathyClient.js:741
#: ../js/ui/telepathyClient.js:749
#, c-format
msgid "%s is away."
msgstr "%s est absent."
#: ../js/ui/telepathyClient.js:744
#: ../js/ui/telepathyClient.js:752
#, c-format
msgid "%s is busy."
msgstr "%s est occupé."
@ -1320,35 +1336,35 @@ msgstr "%s est occupé."
#. Translators: this is a time format string followed by a date.
#. If applicable, replace %X with a strftime format valid for your
#. locale, without seconds.
#: ../js/ui/telepathyClient.js:978
#: ../js/ui/telepathyClient.js:986
#, no-c-format
msgid "Sent at <b>%X</b> on <b>%A</b>"
msgstr "Envoyé <b>%A</b> à <b>%X</b>"
#. Translators: this is a time format in the style of "Wednesday, May 25",
#. shown when you get a chat message in the same year.
#: ../js/ui/telepathyClient.js:984
#: ../js/ui/telepathyClient.js:992
#, no-c-format
msgid "Sent on <b>%A</b>, <b>%B %d</b>"
msgstr "Envoyé le <b>%A %-d %B</b>"
#. Translators: this is a time format in the style of "Wednesday, May 25, 2012",
#. shown when you get a chat message in a different year.
#: ../js/ui/telepathyClient.js:989
#: ../js/ui/telepathyClient.js:997
#, no-c-format
msgid "Sent on <b>%A</b>, <b>%B %d</b>, %Y"
msgstr "Envoyé le <b>%A %-d %B %Y</b>"
#. Translators: this is the other person changing their old IM name to their new
#. IM name.
#: ../js/ui/telepathyClient.js:1031
#: ../js/ui/telepathyClient.js:1039
#, c-format
msgid "%s is now known as %s"
msgstr "%s est maintenant connu sous le nom de %s"
#. translators: argument is a room name like
#. * room@jabber.org for example.
#: ../js/ui/telepathyClient.js:1140
#: ../js/ui/telepathyClient.js:1148
#, c-format
msgid "Invitation to %s"
msgstr "Invitation vers %s"
@ -1356,34 +1372,35 @@ msgstr "Invitation vers %s"
#. 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
#. * for example.
#: ../js/ui/telepathyClient.js:1148
#: ../js/ui/telepathyClient.js:1156
#, c-format
msgid "%s is inviting you to join %s"
msgstr "%s vous invite à rejoindre %s"
#: ../js/ui/telepathyClient.js:1150 ../js/ui/telepathyClient.js:1239
#: ../js/ui/telepathyClient.js:1343
#: ../js/ui/telepathyClient.js:1158 ../js/ui/telepathyClient.js:1248
#: ../js/ui/telepathyClient.js:1352
msgid "Decline"
msgstr "Refuser"
#: ../js/ui/telepathyClient.js:1151 ../js/ui/telepathyClient.js:1240
#: ../js/ui/telepathyClient.js:1344
#: ../js/ui/telepathyClient.js:1159 ../js/ui/telepathyClient.js:1249
#: ../js/ui/telepathyClient.js:1353
msgid "Accept"
msgstr "Accepter"
#. translators: argument is a contact name like Alice for example.
#: ../js/ui/telepathyClient.js:1184
#: ../js/ui/telepathyClient.js:1192
#, c-format
msgid "Video call from %s"
msgstr "Appel vidéo de %s"
#. translators: argument is a contact name like Alice for example.
#: ../js/ui/telepathyClient.js:1187
#: ../js/ui/telepathyClient.js:1195
#, c-format
msgid "Call from %s"
msgstr "Appel provenant de %s"
#: ../js/ui/telepathyClient.js:1197
#. translators: this is a button label (verb), not a noun
#: ../js/ui/telepathyClient.js:1206
msgid "Answer"
msgstr "Répondre"
@ -1392,112 +1409,112 @@ msgstr "Répondre"
#. * file name. The string will be something
#. * like: "Alice is sending you test.ogg"
#.
#: ../js/ui/telepathyClient.js:1233
#: ../js/ui/telepathyClient.js:1242
#, c-format
msgid "%s is sending you %s"
msgstr "%s vous envoie %s"
#. To translators: The parameter is the contact's alias
#: ../js/ui/telepathyClient.js:1308
#: ../js/ui/telepathyClient.js:1317
#, c-format
msgid "%s would like permission to see when you are online"
msgstr "%s aimerait être autorisé à savoir lorsque vous êtes en ligne"
#: ../js/ui/telepathyClient.js:1406
#: ../js/ui/telepathyClient.js:1415
msgid "Network error"
msgstr "Erreur réseau"
#: ../js/ui/telepathyClient.js:1408
#: ../js/ui/telepathyClient.js:1417
msgid "Authentication failed"
msgstr "L'authentification a échoué"
#: ../js/ui/telepathyClient.js:1410
#: ../js/ui/telepathyClient.js:1419
msgid "Encryption error"
msgstr "Erreur de chiffrement"
#: ../js/ui/telepathyClient.js:1412
#: ../js/ui/telepathyClient.js:1421
msgid "Certificate not provided"
msgstr "Certificat non fourni"
#: ../js/ui/telepathyClient.js:1414
#: ../js/ui/telepathyClient.js:1423
msgid "Certificate untrusted"
msgstr "Certificat non validé"
#: ../js/ui/telepathyClient.js:1416
#: ../js/ui/telepathyClient.js:1425
msgid "Certificate expired"
msgstr "Certificat expiré"
#: ../js/ui/telepathyClient.js:1418
#: ../js/ui/telepathyClient.js:1427
msgid "Certificate not activated"
msgstr "Certificat non activé"
#: ../js/ui/telepathyClient.js:1420
#: ../js/ui/telepathyClient.js:1429
msgid "Certificate hostname mismatch"
msgstr "Le nom de l'hôte du certificat ne correspond pas"
#: ../js/ui/telepathyClient.js:1422
#: ../js/ui/telepathyClient.js:1431
msgid "Certificate fingerprint mismatch"
msgstr "L'empreinte du certificat ne correspond pas"
#: ../js/ui/telepathyClient.js:1424
#: ../js/ui/telepathyClient.js:1433
msgid "Certificate self-signed"
msgstr "Certificat auto-signé"
#: ../js/ui/telepathyClient.js:1426
#: ../js/ui/telepathyClient.js:1435
msgid "Status is set to offline"
msgstr "Le statut est hors ligne"
#: ../js/ui/telepathyClient.js:1428
#: ../js/ui/telepathyClient.js:1437
msgid "Encryption is not available"
msgstr "Chiffrement non disponible"
#: ../js/ui/telepathyClient.js:1430
#: ../js/ui/telepathyClient.js:1439
msgid "Certificate is invalid"
msgstr "Certificat non valide"
#: ../js/ui/telepathyClient.js:1432
#: ../js/ui/telepathyClient.js:1441
msgid "Connection has been refused"
msgstr "La connexion a été refusée"
#: ../js/ui/telepathyClient.js:1434
#: ../js/ui/telepathyClient.js:1443
msgid "Connection can't be established"
msgstr "La connexion ne peut pas être établie"
#: ../js/ui/telepathyClient.js:1436
#: ../js/ui/telepathyClient.js:1445
msgid "Connection has been lost"
msgstr "La connexion a été perdue"
#: ../js/ui/telepathyClient.js:1438
#: ../js/ui/telepathyClient.js:1447
msgid "This resource is already connected to the server"
msgstr "Cette ressource est déjà connectée au serveur"
#: ../js/ui/telepathyClient.js:1440
#: ../js/ui/telepathyClient.js:1449
msgid ""
"Connection has been replaced by a new connection using the same resource"
msgstr ""
"La connexion a été remplacée par une nouvelle connexion utilisant la même "
"ressource"
#: ../js/ui/telepathyClient.js:1442
#: ../js/ui/telepathyClient.js:1451
msgid "The account already exists on the server"
msgstr "Ce compte existe déjà sur le serveur"
#: ../js/ui/telepathyClient.js:1444
#: ../js/ui/telepathyClient.js:1453
msgid "Server is currently too busy to handle the connection"
msgstr "Le serveur est actuellement trop chargé pour traiter la connexion"
#: ../js/ui/telepathyClient.js:1446
#: ../js/ui/telepathyClient.js:1455
msgid "Certificate has been revoked"
msgstr "Le certificat a été révoqué"
#: ../js/ui/telepathyClient.js:1448
#: ../js/ui/telepathyClient.js:1457
msgid ""
"Certificate uses an insecure cipher algorithm or is cryptographically weak"
msgstr ""
"Le certificat utilise un algorithme de chiffrement douteux, ou est faible "
"cryptographiquement"
#: ../js/ui/telepathyClient.js:1450
#: ../js/ui/telepathyClient.js:1459
msgid ""
"The length of the server certificate, or the depth of the server certificate "
"chain, exceed the limits imposed by the cryptography library"
@ -1507,20 +1524,20 @@ msgstr ""
#. translators: argument is the account name, like
#. * name@jabber.org for example.
#: ../js/ui/telepathyClient.js:1459
#: ../js/ui/telepathyClient.js:1468
#, c-format
msgid "Connection to %s failed"
msgstr "La connexion à %s a échoué"
#: ../js/ui/telepathyClient.js:1468
#: ../js/ui/telepathyClient.js:1477
msgid "Reconnect"
msgstr "Se reconnecter"
#: ../js/ui/telepathyClient.js:1469
#: ../js/ui/telepathyClient.js:1478
msgid "Edit account"
msgstr "Modifier le compte"
#: ../js/ui/telepathyClient.js:1515
#: ../js/ui/telepathyClient.js:1524
msgid "Unknown reason"
msgstr "Raison inconnue"
@ -1536,39 +1553,39 @@ msgstr "Inactif"
msgid "Unavailable"
msgstr "Non disponible"
#: ../js/ui/userMenu.js:512 ../js/ui/userMenu.js:516 ../js/ui/userMenu.js:586
#: ../js/ui/userMenu.js:552 ../js/ui/userMenu.js:556 ../js/ui/userMenu.js:626
msgid "Power Off..."
msgstr "Éteindre..."
#: ../js/ui/userMenu.js:548
#: ../js/ui/userMenu.js:588
msgid "Notifications"
msgstr "Notifications"
#: ../js/ui/userMenu.js:556
#: ../js/ui/userMenu.js:596
msgid "Online Accounts"
msgstr "Comptes en ligne"
#: ../js/ui/userMenu.js:560
#: ../js/ui/userMenu.js:600
msgid "System Settings"
msgstr "Paramètres système"
#: ../js/ui/userMenu.js:567
#: ../js/ui/userMenu.js:607
msgid "Lock Screen"
msgstr "Verrouiller l'écran"
#: ../js/ui/userMenu.js:572
#: ../js/ui/userMenu.js:612
msgid "Switch User"
msgstr "Changer d'utilisateur"
#: ../js/ui/userMenu.js:577
#: ../js/ui/userMenu.js:617
msgid "Log Out..."
msgstr "Fermer la session..."
#: ../js/ui/userMenu.js:605
#: ../js/ui/userMenu.js:645
msgid "Your chat status will be set to busy"
msgstr "Votre statut pour les discussions sera défini à occupé"
#: ../js/ui/userMenu.js:606
#: ../js/ui/userMenu.js:646
msgid ""
"Notifications are now disabled, including chat messages. Your online status "
"has been adjusted to let others know that you might not see their messages."
@ -1581,20 +1598,15 @@ msgstr ""
#. in the search entry when no search is
#. active; it should not exceed ~30
#. characters.
#: ../js/ui/viewSelector.js:120
#: ../js/ui/viewSelector.js:121
msgid "Type to search..."
msgstr "Rechercher..."
#: ../js/ui/viewSelector.js:140 ../src/shell-util.c:261
#: ../js/ui/viewSelector.js:142 ../src/shell-util.c:261
msgid "Search"
msgstr "Recherche"
#: ../js/ui/windowAttentionHandler.js:39
#, c-format
msgid "%s has finished starting"
msgstr "Lancement de %s terminé"
#: ../js/ui/windowAttentionHandler.js:41
#: ../js/ui/windowAttentionHandler.js:35
#, c-format
msgid "'%s' is ready"
msgstr "« %s » est prêt"
@ -1629,7 +1641,7 @@ msgstr "Affiche la version"
msgid "Mode used by GDM for login screen"
msgstr "Mode utilisé par GDM pour l'écran de connexion"
#: ../src/shell-app.c:581
#: ../src/shell-app.c:579
#, c-format
msgid "Failed to launch '%s'"
msgstr "Impossible de lancer « %s »"
@ -1665,3 +1677,4 @@ msgstr "Système de fichiers"
#, c-format
msgid "%1$s: %2$s"
msgstr "%1$s : %2$s"

1025
po/ga.po

File diff suppressed because it is too large Load Diff

290
po/gl.po
View File

@ -12,8 +12,8 @@ msgid ""
msgstr ""
"Project-Id-Version: gnome-shell master\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2011-09-21 22:50+0200\n"
"PO-Revision-Date: 2011-09-21 22:51+0200\n"
"POT-Creation-Date: 2011-10-18 00:04+0200\n"
"PO-Revision-Date: 2011-10-18 00:04+0200\n"
"Last-Translator: Fran Dieguez <frandieguez@gnome.org>\n"
"Language-Team: Galician <gnome-l10n-gl@gnome.org>\n"
"Language: gl\n"
@ -191,38 +191,38 @@ msgstr "fornecedores de OpenSearch desactivados"
msgid "Session..."
msgstr "Sesión…"
#: ../js/gdm/loginDialog.js:785
#: ../js/gdm/loginDialog.js:788
msgctxt "title"
msgid "Sign In"
msgstr "Iniciar sesión"
#. translators: this message is shown below the password entry field
#. to indicate the user can swipe their finger instead
#: ../js/gdm/loginDialog.js:830
#: ../js/gdm/loginDialog.js:833
msgid "(or swipe finger)"
msgstr "(ou pase o dedo)"
#: ../js/gdm/loginDialog.js:848
#: ../js/gdm/loginDialog.js:851
msgid "Not listed?"
msgstr "Non está na lista?"
#: ../js/gdm/loginDialog.js:1004 ../js/ui/endSessionDialog.js:426
#: ../js/ui/extensionSystem.js:477 ../js/ui/networkAgent.js:165
#: ../js/ui/polkitAuthenticationAgent.js:171 ../js/ui/status/bluetooth.js:480
#: ../js/gdm/loginDialog.js:1019 ../js/ui/endSessionDialog.js:426
#: ../js/ui/extensionSystem.js:477 ../js/ui/networkAgent.js:148
#: ../js/ui/polkitAuthenticationAgent.js:173 ../js/ui/status/bluetooth.js:480
msgid "Cancel"
msgstr "Cancelar"
#: ../js/gdm/loginDialog.js:1009
#: ../js/gdm/loginDialog.js:1024
msgctxt "button"
msgid "Sign In"
msgstr "Iniciar sesión"
#: ../js/gdm/loginDialog.js:1358
#: ../js/gdm/loginDialog.js:1376
msgid "Login Window"
msgstr "Xanela de inicio de sesión"
#: ../js/gdm/powerMenu.js:116 ../js/ui/userMenu.js:514
#: ../js/ui/userMenu.js:516 ../js/ui/userMenu.js:585
#: ../js/gdm/powerMenu.js:116 ../js/ui/userMenu.js:549
#: ../js/ui/userMenu.js:551 ../js/ui/userMenu.js:620
msgid "Suspend"
msgstr "Suspender"
@ -445,32 +445,32 @@ msgstr "Esta semana"
msgid "Next week"
msgstr "A vindeira semana"
#: ../js/ui/contactDisplay.js:59 ../js/ui/notificationDaemon.js:444
#: ../js/ui/status/power.js:223 ../src/shell-app.c:355
#: ../js/ui/contactDisplay.js:65 ../js/ui/notificationDaemon.js:459
#: ../js/ui/status/power.js:223 ../src/shell-app.c:353
msgid "Unknown"
msgstr "Descoñecido"
#: ../js/ui/contactDisplay.js:80 ../js/ui/userMenu.js:139
#: ../js/ui/contactDisplay.js:86 ../js/ui/userMenu.js:139
msgid "Available"
msgstr "Dispoñíbel"
#: ../js/ui/contactDisplay.js:85 ../js/ui/userMenu.js:148
#: ../js/ui/contactDisplay.js:91 ../js/ui/userMenu.js:148
msgid "Away"
msgstr "Ausente"
#: ../js/ui/contactDisplay.js:89 ../js/ui/userMenu.js:142
#: ../js/ui/contactDisplay.js:95 ../js/ui/userMenu.js:142
msgid "Busy"
msgstr "Ocupado"
#: ../js/ui/contactDisplay.js:93
#: ../js/ui/contactDisplay.js:99
msgid "Offline"
msgstr "Desconectado"
#: ../js/ui/contactDisplay.js:140
#: ../js/ui/contactDisplay.js:146
msgid "CONTACTS"
msgstr "CONTACTOS"
#: ../js/ui/dash.js:172 ../js/ui/messageTray.js:1197
#: ../js/ui/dash.js:174 ../js/ui/messageTray.js:1205
msgid "Remove"
msgstr "Eliminar"
@ -607,96 +607,96 @@ msgstr "Instalar"
msgid "Download and install '%s' from extensions.gnome.org?"
msgstr "Desexa descargar e instalar «%s» desde extensions.gnome.org?"
#: ../js/ui/keyboard.js:517 ../js/ui/status/power.js:211
#: ../js/ui/keyboard.js:325
msgid "tray"
msgstr "área de notificación"
#: ../js/ui/keyboard.js:547 ../js/ui/status/power.js:211
msgid "Keyboard"
msgstr "Teclado"
#: ../js/ui/lookingGlass.js:645
#: ../js/ui/lookingGlass.js:646
msgid "No extensions installed"
msgstr "Non hai ningunha extensión instalada"
#: ../js/ui/lookingGlass.js:691
#: ../js/ui/lookingGlass.js:692
msgid "Enabled"
msgstr "Activado"
#. translators:
#. * The device has been disabled
#: ../js/ui/lookingGlass.js:693 ../src/gvc/gvc-mixer-control.c:1093
#: ../js/ui/lookingGlass.js:694 ../src/gvc/gvc-mixer-control.c:1093
msgid "Disabled"
msgstr "Desactivado"
#: ../js/ui/lookingGlass.js:695
#: ../js/ui/lookingGlass.js:696
msgid "Error"
msgstr "Erro"
#: ../js/ui/lookingGlass.js:697
#: ../js/ui/lookingGlass.js:698
msgid "Out of date"
msgstr "Desactualizado"
#: ../js/ui/lookingGlass.js:699
#: ../js/ui/lookingGlass.js:700
msgid "Downloading"
msgstr "Descargando"
#: ../js/ui/lookingGlass.js:724
#: ../js/ui/lookingGlass.js:721
msgid "View Source"
msgstr "Ver fonte"
#: ../js/ui/lookingGlass.js:730
#: ../js/ui/lookingGlass.js:727
msgid "Web Page"
msgstr "Páxina web"
#: ../js/ui/messageTray.js:1190
#: ../js/ui/messageTray.js:1198
msgid "Open"
msgstr "Abrir"
#: ../js/ui/messageTray.js:2372
#: ../js/ui/messageTray.js:2407
msgid "System Information"
msgstr "Información do sistema"
#: ../js/ui/networkAgent.js:145
msgid "Show password"
msgstr "Mostrar contrasinal"
#: ../js/ui/networkAgent.js:160
#: ../js/ui/networkAgent.js:143
msgid "Connect"
msgstr "Conectar"
#. Cisco LEAP
#: ../js/ui/networkAgent.js:255 ../js/ui/networkAgent.js:267
#: ../js/ui/networkAgent.js:294 ../js/ui/networkAgent.js:314
#: ../js/ui/networkAgent.js:324
#: ../js/ui/networkAgent.js:238 ../js/ui/networkAgent.js:250
#: ../js/ui/networkAgent.js:277 ../js/ui/networkAgent.js:297
#: ../js/ui/networkAgent.js:307
msgid "Password: "
msgstr "Contrasinal: "
#. static WEP
#: ../js/ui/networkAgent.js:260
#: ../js/ui/networkAgent.js:243
msgid "Key: "
msgstr "Chave: "
#. TTLS and PEAP are actually much more complicated, but this complication
#. is not visible here since we only care about phase2 authentication
#. (and don't even care of which one)
#: ../js/ui/networkAgent.js:292 ../js/ui/networkAgent.js:310
#: ../js/ui/networkAgent.js:275 ../js/ui/networkAgent.js:293
msgid "Username: "
msgstr "Nome de usuario: "
#: ../js/ui/networkAgent.js:298
#: ../js/ui/networkAgent.js:281
msgid "Identity: "
msgstr "Identidade: "
#: ../js/ui/networkAgent.js:300
#: ../js/ui/networkAgent.js:283
msgid "Private key password: "
msgstr "Contrasinal da chave privada: "
#: ../js/ui/networkAgent.js:312
#: ../js/ui/networkAgent.js:295
msgid "Service: "
msgstr "Servizo: "
#: ../js/ui/networkAgent.js:341
#: ../js/ui/networkAgent.js:324
msgid "Authentication required by wireless network"
msgstr "A rede sen fíos require autenticación"
#: ../js/ui/networkAgent.js:342
#: ../js/ui/networkAgent.js:325
#, c-format
msgid ""
"Passwords or encryption keys are required to access the wireless network "
@ -705,35 +705,35 @@ msgstr ""
"Son necesarios contrasinais ou chaves de codificación para acceder á rede "
"sen fíos '%s'."
#: ../js/ui/networkAgent.js:346
#: ../js/ui/networkAgent.js:329
msgid "Wired 802.1X authentication"
msgstr "Autenticación con fíos 802.1X"
#: ../js/ui/networkAgent.js:348
#: ../js/ui/networkAgent.js:331
msgid "Network name: "
msgstr "Nome da rede:"
#: ../js/ui/networkAgent.js:353
#: ../js/ui/networkAgent.js:336
msgid "DSL authentication"
msgstr "Autenticación DSL"
#: ../js/ui/networkAgent.js:360
#: ../js/ui/networkAgent.js:343
msgid "PIN code required"
msgstr "Requírese un código PIN"
#: ../js/ui/networkAgent.js:361
#: ../js/ui/networkAgent.js:344
msgid "PIN code is needed for the mobile broadband device"
msgstr "É necesario un código PIN para o dispositivo de banda larga móbil"
#: ../js/ui/networkAgent.js:362
#: ../js/ui/networkAgent.js:345
msgid "PIN: "
msgstr "PIN:"
#: ../js/ui/networkAgent.js:368
#: ../js/ui/networkAgent.js:351
msgid "Mobile broadband network password"
msgstr "Contrasinal da rede de banda larga móbil"
#: ../js/ui/networkAgent.js:369
#: ../js/ui/networkAgent.js:352
#, c-format
msgid "A password is required to connect to '%s'."
msgstr "Requírese un contrasinal para conectarse a «%s»."
@ -789,15 +789,15 @@ msgstr "Conectar con…"
msgid "PLACES & DEVICES"
msgstr "LUGARES E DISPOSITIVOS"
#: ../js/ui/polkitAuthenticationAgent.js:72
#: ../js/ui/polkitAuthenticationAgent.js:73
msgid "Authentication Required"
msgstr "Autenticación requirida"
#: ../js/ui/polkitAuthenticationAgent.js:106
#: ../js/ui/polkitAuthenticationAgent.js:107
msgid "Administrator"
msgstr "Administrador"
#: ../js/ui/polkitAuthenticationAgent.js:175
#: ../js/ui/polkitAuthenticationAgent.js:177
msgid "Authenticate"
msgstr "Autenticar"
@ -805,11 +805,11 @@ msgstr "Autenticar"
#. * requested authentication was not gained; this can happen
#. * because of an authentication error (like invalid password),
#. * for instance.
#: ../js/ui/polkitAuthenticationAgent.js:256
#: ../js/ui/polkitAuthenticationAgent.js:258
msgid "Sorry, that didn't work. Please try again."
msgstr "Desculpe, iso non funcionou. Ténteo de novo."
#: ../js/ui/polkitAuthenticationAgent.js:268
#: ../js/ui/polkitAuthenticationAgent.js:270
msgid "Password:"
msgstr "Contrasinal:"
@ -818,11 +818,11 @@ msgstr "Contrasinal:"
#. "ON" and "OFF") or "toggle-switch-intl" (for toggle
#. switches containing "◯" and "|"). Other values will
#. simply result in invisible toggle switches.
#: ../js/ui/popupMenu.js:727
#: ../js/ui/popupMenu.js:731
msgid "toggle-switch-us"
msgstr "toggle-switch-intl"
#: ../js/ui/runDialog.js:208
#: ../js/ui/runDialog.js:209
msgid "Please enter a command:"
msgstr "Insira unha orde:"
@ -834,6 +834,22 @@ msgstr "Buscando..."
msgid "No matching results."
msgstr "Non hai resultados que coincidan."
#: ../js/ui/shellEntry.js:30
msgid "Copy"
msgstr "Copiar"
#: ../js/ui/shellEntry.js:35
msgid "Paste"
msgstr "Pegar"
#: ../js/ui/shellEntry.js:81
msgid "Show Text"
msgstr "Mostrar texto"
#: ../js/ui/shellEntry.js:83
msgid "Hide Text"
msgstr "Ocultar texto"
#: ../js/ui/shellMountOperation.js:285
msgid "Wrong password, please try again"
msgstr "O contrasinal é incorrecto, ténteo de novo"
@ -967,7 +983,7 @@ msgstr "Conceder acceso sempre"
msgid "Grant this time only"
msgstr "Conceder só esta vez"
#: ../js/ui/status/bluetooth.js:392 ../js/ui/telepathyClient.js:1196
#: ../js/ui/status/bluetooth.js:392 ../js/ui/telepathyClient.js:1204
msgid "Reject"
msgstr "Rexeitar"
@ -1236,39 +1252,39 @@ msgid "Invitation"
msgstr "Convite"
#. We got the TpContact
#: ../js/ui/telepathyClient.js:325
#: ../js/ui/telepathyClient.js:327
msgid "Call"
msgstr "Chamar"
#. We got the TpContact
#: ../js/ui/telepathyClient.js:353
#: ../js/ui/telepathyClient.js:357
msgid "File Transfer"
msgstr "Transferencia de ficheiro"
#: ../js/ui/telepathyClient.js:434
#: ../js/ui/telepathyClient.js:438
msgid "Subscription request"
msgstr "Solicitude de autorización"
#: ../js/ui/telepathyClient.js:470
#: ../js/ui/telepathyClient.js:474
msgid "Connection error"
msgstr "Erro de conexión"
#: ../js/ui/telepathyClient.js:733
#: ../js/ui/telepathyClient.js:741
#, c-format
msgid "%s is online."
msgstr "%s está conectado/a."
#: ../js/ui/telepathyClient.js:738
#: ../js/ui/telepathyClient.js:746
#, c-format
msgid "%s is offline."
msgstr "%s está desconectado/a."
#: ../js/ui/telepathyClient.js:741
#: ../js/ui/telepathyClient.js:749
#, c-format
msgid "%s is away."
msgstr "%s está ausente."
#: ../js/ui/telepathyClient.js:744
#: ../js/ui/telepathyClient.js:752
#, c-format
msgid "%s is busy."
msgstr "%s está ocupado/a."
@ -1276,35 +1292,35 @@ msgstr "%s está ocupado/a."
#. Translators: this is a time format string followed by a date.
#. If applicable, replace %X with a strftime format valid for your
#. locale, without seconds.
#: ../js/ui/telepathyClient.js:978
#: ../js/ui/telepathyClient.js:986
#, no-c-format
msgid "Sent at <b>%X</b> on <b>%A</b>"
msgstr "Enviado ás <b>%X</b> o <b>%A</b>"
#. Translators: this is a time format in the style of "Wednesday, May 25",
#. shown when you get a chat message in the same year.
#: ../js/ui/telepathyClient.js:984
#: ../js/ui/telepathyClient.js:992
#, no-c-format
msgid "Sent on <b>%A</b>, <b>%B %d</b>"
msgstr "Enviado ás <b>%X</b> o <b>%B %d</b>"
#. Translators: this is a time format in the style of "Wednesday, May 25, 2012",
#. shown when you get a chat message in a different year.
#: ../js/ui/telepathyClient.js:989
#: ../js/ui/telepathyClient.js:997
#, no-c-format
msgid "Sent on <b>%A</b>, <b>%B %d</b>, %Y"
msgstr "Enviado ás <b>%X</b> o <b>%B %d</b>, %Y"
#. Translators: this is the other person changing their old IM name to their new
#. IM name.
#: ../js/ui/telepathyClient.js:1031
#: ../js/ui/telepathyClient.js:1039
#, c-format
msgid "%s is now known as %s"
msgstr "%s é coñecido agora como %s"
#. translators: argument is a room name like
#. * room@jabber.org for example.
#: ../js/ui/telepathyClient.js:1140
#: ../js/ui/telepathyClient.js:1148
#, c-format
msgid "Invitation to %s"
msgstr "Convidado a %s"
@ -1312,34 +1328,35 @@ msgstr "Convidado a %s"
#. 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
#. * for example.
#: ../js/ui/telepathyClient.js:1148
#: ../js/ui/telepathyClient.js:1156
#, c-format
msgid "%s is inviting you to join %s"
msgstr "%s esta convidando a unirse a %s"
#: ../js/ui/telepathyClient.js:1150 ../js/ui/telepathyClient.js:1239
#: ../js/ui/telepathyClient.js:1343
#: ../js/ui/telepathyClient.js:1158 ../js/ui/telepathyClient.js:1248
#: ../js/ui/telepathyClient.js:1352
msgid "Decline"
msgstr "Rexeitar"
#: ../js/ui/telepathyClient.js:1151 ../js/ui/telepathyClient.js:1240
#: ../js/ui/telepathyClient.js:1344
#: ../js/ui/telepathyClient.js:1159 ../js/ui/telepathyClient.js:1249
#: ../js/ui/telepathyClient.js:1353
msgid "Accept"
msgstr "Aceptar"
#. translators: argument is a contact name like Alice for example.
#: ../js/ui/telepathyClient.js:1184
#: ../js/ui/telepathyClient.js:1192
#, c-format
msgid "Video call from %s"
msgstr "Videochamada de %s"
#. translators: argument is a contact name like Alice for example.
#: ../js/ui/telepathyClient.js:1187
#: ../js/ui/telepathyClient.js:1195
#, c-format
msgid "Call from %s"
msgstr "Chamada de %s"
#: ../js/ui/telepathyClient.js:1197
#. translators: this is a button label (verb), not a noun
#: ../js/ui/telepathyClient.js:1206
msgid "Answer"
msgstr "Respostar"
@ -1348,111 +1365,111 @@ msgstr "Respostar"
#. * file name. The string will be something
#. * like: "Alice is sending you test.ogg"
#.
#: ../js/ui/telepathyClient.js:1233
#: ../js/ui/telepathyClient.js:1242
#, c-format
msgid "%s is sending you %s"
msgstr "%s esta enviándolle %s"
#. To translators: The parameter is the contact's alias
#: ../js/ui/telepathyClient.js:1308
#: ../js/ui/telepathyClient.js:1317
#, c-format
msgid "%s would like permission to see when you are online"
msgstr "%s solicita permiso para ver cando vostede está dispoñíbel"
#: ../js/ui/telepathyClient.js:1406
#: ../js/ui/telepathyClient.js:1415
msgid "Network error"
msgstr "Erro de rede"
#: ../js/ui/telepathyClient.js:1408
#: ../js/ui/telepathyClient.js:1417
msgid "Authentication failed"
msgstr "A autenticación fallou"
#: ../js/ui/telepathyClient.js:1410
#: ../js/ui/telepathyClient.js:1419
msgid "Encryption error"
msgstr "Erro de cifrado"
#: ../js/ui/telepathyClient.js:1412
#: ../js/ui/telepathyClient.js:1421
msgid "Certificate not provided"
msgstr "Non se forneceu o certificado"
#: ../js/ui/telepathyClient.js:1414
#: ../js/ui/telepathyClient.js:1423
msgid "Certificate untrusted"
msgstr "Certificado non fiábel"
#: ../js/ui/telepathyClient.js:1416
#: ../js/ui/telepathyClient.js:1425
msgid "Certificate expired"
msgstr "O certificado caducou"
#: ../js/ui/telepathyClient.js:1418
#: ../js/ui/telepathyClient.js:1427
msgid "Certificate not activated"
msgstr "O certificado non está activado"
#: ../js/ui/telepathyClient.js:1420
#: ../js/ui/telepathyClient.js:1429
msgid "Certificate hostname mismatch"
msgstr "Certificado de cliente SSL"
#: ../js/ui/telepathyClient.js:1422
#: ../js/ui/telepathyClient.js:1431
msgid "Certificate fingerprint mismatch"
msgstr "A impresión dixital do certificado non coincide"
#: ../js/ui/telepathyClient.js:1424
#: ../js/ui/telepathyClient.js:1433
msgid "Certificate self-signed"
msgstr "Certificado autoasinado"
#: ../js/ui/telepathyClient.js:1426
#: ../js/ui/telepathyClient.js:1435
msgid "Status is set to offline"
msgstr "O estado está definido a desconectado"
#: ../js/ui/telepathyClient.js:1428
#: ../js/ui/telepathyClient.js:1437
msgid "Encryption is not available"
msgstr "O cifrado non está dispoñíbel"
#: ../js/ui/telepathyClient.js:1430
#: ../js/ui/telepathyClient.js:1439
msgid "Certificate is invalid"
msgstr "O certificado non é válido"
#: ../js/ui/telepathyClient.js:1432
#: ../js/ui/telepathyClient.js:1441
msgid "Connection has been refused"
msgstr "Rexeitouse a conexión"
#: ../js/ui/telepathyClient.js:1434
#: ../js/ui/telepathyClient.js:1443
msgid "Connection can't be established"
msgstr "Non é posíbel estabelecer a conexión"
#: ../js/ui/telepathyClient.js:1436
#: ../js/ui/telepathyClient.js:1445
msgid "Connection has been lost"
msgstr "Perdeuse a conexión"
#: ../js/ui/telepathyClient.js:1438
#: ../js/ui/telepathyClient.js:1447
msgid "This resource is already connected to the server"
msgstr "Este recurso xa está conectado ao servidor"
#: ../js/ui/telepathyClient.js:1440
#: ../js/ui/telepathyClient.js:1449
msgid ""
"Connection has been replaced by a new connection using the same resource"
msgstr ""
"A conexión foi substituída por unha nova conexión empregando o mesmo recurso"
#: ../js/ui/telepathyClient.js:1442
#: ../js/ui/telepathyClient.js:1451
msgid "The account already exists on the server"
msgstr "Esta conta xa existe no servidor"
#: ../js/ui/telepathyClient.js:1444
#: ../js/ui/telepathyClient.js:1453
msgid "Server is currently too busy to handle the connection"
msgstr "Nestes intres o servidor está moi ocupado para xesionar a conexión"
#: ../js/ui/telepathyClient.js:1446
#: ../js/ui/telepathyClient.js:1455
msgid "Certificate has been revoked"
msgstr "O certificado foi revocado"
#: ../js/ui/telepathyClient.js:1448
#: ../js/ui/telepathyClient.js:1457
msgid ""
"Certificate uses an insecure cipher algorithm or is cryptographically weak"
msgstr ""
"O certificado usa un algoritmo de cifrado inseguro ou é criptográficamente "
"débil"
#: ../js/ui/telepathyClient.js:1450
#: ../js/ui/telepathyClient.js:1459
msgid ""
"The length of the server certificate, or the depth of the server certificate "
"chain, exceed the limits imposed by the cryptography library"
@ -1463,20 +1480,20 @@ msgstr ""
#. translators: argument is the account name, like
#. * name@jabber.org for example.
#: ../js/ui/telepathyClient.js:1459
#: ../js/ui/telepathyClient.js:1468
#, c-format
msgid "Connection to %s failed"
msgstr "Produciuse un fallo na conexión a %s"
#: ../js/ui/telepathyClient.js:1468
#: ../js/ui/telepathyClient.js:1477
msgid "Reconnect"
msgstr "Reconectar"
#: ../js/ui/telepathyClient.js:1469
#: ../js/ui/telepathyClient.js:1478
msgid "Edit account"
msgstr "Editar conta"
#: ../js/ui/telepathyClient.js:1515
#: ../js/ui/telepathyClient.js:1524
msgid "Unknown reason"
msgstr "Razón descoñecido"
@ -1492,39 +1509,39 @@ msgstr "Inactivo"
msgid "Unavailable"
msgstr "Non dispoñíbel"
#: ../js/ui/userMenu.js:512 ../js/ui/userMenu.js:516 ../js/ui/userMenu.js:586
#: ../js/ui/userMenu.js:547 ../js/ui/userMenu.js:551 ../js/ui/userMenu.js:621
msgid "Power Off..."
msgstr "Apagar…"
#: ../js/ui/userMenu.js:548
#: ../js/ui/userMenu.js:583
msgid "Notifications"
msgstr "Notificacións"
#: ../js/ui/userMenu.js:556
#: ../js/ui/userMenu.js:591
msgid "Online Accounts"
msgstr "Contas en liña"
#: ../js/ui/userMenu.js:560
#: ../js/ui/userMenu.js:595
msgid "System Settings"
msgstr "Configuracións do sistema"
#: ../js/ui/userMenu.js:567
#: ../js/ui/userMenu.js:602
msgid "Lock Screen"
msgstr "Bloquear pantalla"
#: ../js/ui/userMenu.js:572
#: ../js/ui/userMenu.js:607
msgid "Switch User"
msgstr "Cambiar de usuario"
#: ../js/ui/userMenu.js:577
#: ../js/ui/userMenu.js:612
msgid "Log Out..."
msgstr "Saír da sesión…"
#: ../js/ui/userMenu.js:605
#: ../js/ui/userMenu.js:640
msgid "Your chat status will be set to busy"
msgstr "O seu estado de chat será estabelecido a «ocupado»"
#: ../js/ui/userMenu.js:606
#: ../js/ui/userMenu.js:641
msgid ""
"Notifications are now disabled, including chat messages. Your online status "
"has been adjusted to let others know that you might not see their messages."
@ -1537,20 +1554,15 @@ msgstr ""
#. in the search entry when no search is
#. active; it should not exceed ~30
#. characters.
#: ../js/ui/viewSelector.js:120
#: ../js/ui/viewSelector.js:121
msgid "Type to search..."
msgstr "Teclear para buscar…"
#: ../js/ui/viewSelector.js:140 ../src/shell-util.c:261
#: ../js/ui/viewSelector.js:142 ../src/shell-util.c:261
msgid "Search"
msgstr "Buscar"
#: ../js/ui/windowAttentionHandler.js:39
#, c-format
msgid "%s has finished starting"
msgstr "%s rematou de iniarse"
#: ../js/ui/windowAttentionHandler.js:41
#: ../js/ui/windowAttentionHandler.js:35
#, c-format
msgid "'%s' is ready"
msgstr "«%s» está preparado"
@ -1585,7 +1597,7 @@ msgstr "Imprimir versión"
msgid "Mode used by GDM for login screen"
msgstr "Modo usado por GDM para a pantalla de inicio"
#: ../src/shell-app.c:581
#: ../src/shell-app.c:579
#, c-format
msgid "Failed to launch '%s'"
msgstr "Produciuse un fallo ao iniciar «%s»"
@ -1622,6 +1634,21 @@ msgstr "Sistema de ficheiros"
msgid "%1$s: %2$s"
msgstr "%1$s: %2$s"
#~ msgid "Show password"
#~ msgstr "Mostrar contrasinal"
#~ msgid "%s has not emitted any errors."
#~ msgstr "%s non xerou ningún erro."
#~ msgid "Hide Errors"
#~ msgstr "Ocultar erros"
#~ msgid "Show Errors"
#~ msgstr "Mostrar erros"
#~ msgid "%s has finished starting"
#~ msgstr "%s rematou de iniarse"
#~ msgid "If true, display onscreen keyboard."
#~ msgstr "Se é verdadeiro, móstranse o teclado en pantalla."
@ -1929,9 +1956,6 @@ msgstr "%1$s: %2$s"
#~ msgid "Show seco_nds"
#~ msgstr "Mostrar os segu_ndos"
#~ msgid "Show the _date"
#~ msgstr "Mostrar a _data"
#~ msgid "_12 hour format"
#~ msgstr "Formato _12 horas"

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