Compare commits

..

51 Commits

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
113 changed files with 7351 additions and 7929 deletions

13
.gitignore vendored
View File

@ -21,19 +21,6 @@ data/gnome-shell.desktop.in
data/gschemas.compiled data/gschemas.compiled
data/org.gnome.shell.gschema.xml data/org.gnome.shell.gschema.xml
data/org.gnome.shell.gschema.valid data/org.gnome.shell.gschema.valid
docs/reference/*/*.args
docs/reference/*/*.bak
docs/reference/*/*.hierarchy
docs/reference/*/*.interfaces
docs/reference/*/*.prerequisites
docs/reference/*/*.sgml
docs/reference/*/*.signals
docs/reference/*/*.stamp
docs/reference/*/*.txt
docs/reference/*/*.types
docs/reference/*/html/
docs/reference/*/xml/
gtk-doc.make
js/misc/config.js js/misc/config.js
intltool-extract.in intltool-extract.in
intltool-merge.in intltool-merge.in

View File

@ -1,7 +1,7 @@
# Point to our macro directory and pick up user flags from the environment # Point to our macro directory and pick up user flags from the environment
ACLOCAL_AMFLAGS = -I m4 ${ACLOCAL_FLAGS} ACLOCAL_AMFLAGS = -I m4 ${ACLOCAL_FLAGS}
SUBDIRS = data js src browser-plugin tests po man docs SUBDIRS = data js src browser-plugin tests po man
EXTRA_DIST = \ EXTRA_DIST = \
.project \ .project \
@ -19,5 +19,3 @@ DIST_EXCLUDE = \
distcheck-hook: distcheck-hook:
@echo "Checking disted files against files in git" @echo "Checking disted files against files in git"
@$(srcdir)/tools/check-for-missing.py $(srcdir) $(distdir) $(DIST_EXCLUDE) @$(srcdir)/tools/check-for-missing.py $(srcdir) $(distdir) $(DIST_EXCLUDE)
DISTCHECK_CONFIGURE_FLAGS = --enable-gtk-doc

44
NEWS
View File

@ -1,3 +1,47 @@
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 3.2.1
===== =====
* Restore the IM state on startup - if you were available in when you logged * Restore the IM state on startup - if you were available in when you logged

View File

@ -455,7 +455,7 @@ plugin_enable_extension (PluginObject *obj,
NPString uuid, NPString uuid,
gboolean enabled) gboolean enabled)
{ {
const gchar *uuid_str = uuid.UTF8Characters; gchar *uuid_str = g_strndup (uuid.UTF8Characters, uuid.UTF8Length);
if (!uuid_is_valid (uuid_str)) if (!uuid_is_valid (uuid_str))
return FALSE; return FALSE;
@ -468,6 +468,8 @@ plugin_enable_extension (PluginObject *obj,
NULL, /* callback */ NULL, /* callback */
NULL /* user_data */); NULL /* user_data */);
g_free (uuid_str);
return TRUE; return TRUE;
} }
@ -476,21 +478,32 @@ plugin_install_extension (PluginObject *obj,
NPString uuid, NPString uuid,
NPString version_tag) 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)) 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, g_dbus_proxy_call (obj->proxy,
"InstallRemoteExtension", "InstallRemoteExtension",
g_variant_new ("(ss)", g_variant_new ("(ss)",
uuid_str, uuid_str,
version_tag.UTF8Characters), version_tag_str),
G_DBUS_CALL_FLAGS_NONE, G_DBUS_CALL_FLAGS_NONE,
-1, /* timeout */ -1, /* timeout */
NULL, /* cancellable */ NULL, /* cancellable */
NULL, /* callback */ NULL, /* callback */
NULL /* user_data */); NULL /* user_data */);
g_free (uuid_str);
g_free (version_tag_str);
return TRUE; return TRUE;
} }
@ -501,11 +514,14 @@ plugin_uninstall_extension (PluginObject *obj,
{ {
GError *error = NULL; GError *error = NULL;
GVariant *res; 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)) if (!uuid_is_valid (uuid_str))
return FALSE; {
g_free (uuid_str);
return FALSE;
}
res = g_dbus_proxy_call_sync (obj->proxy, res = g_dbus_proxy_call_sync (obj->proxy,
"UninstallExtension", "UninstallExtension",
@ -516,6 +532,8 @@ plugin_uninstall_extension (PluginObject *obj,
NULL, /* cancellable */ NULL, /* cancellable */
&error); &error);
g_free (uuid_str);
if (!res) if (!res)
{ {
g_warning ("Failed to uninstall extension: %s", error->message); g_warning ("Failed to uninstall extension: %s", error->message);
@ -533,11 +551,14 @@ plugin_get_info (PluginObject *obj,
{ {
GError *error = NULL; GError *error = NULL;
GVariant *res; 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)) if (!uuid_is_valid (uuid_str))
return FALSE; {
g_free (uuid_str);
return FALSE;
}
res = g_dbus_proxy_call_sync (obj->proxy, res = g_dbus_proxy_call_sync (obj->proxy,
"GetExtensionInfo", "GetExtensionInfo",
@ -547,6 +568,8 @@ plugin_get_info (PluginObject *obj,
NULL, /* cancellable */ NULL, /* cancellable */
&error); &error);
g_free (uuid_str);
if (!res) if (!res)
{ {
g_warning ("Failed to retrieve extension metadata: %s", error->message); g_warning ("Failed to retrieve extension metadata: %s", error->message);
@ -564,11 +587,14 @@ plugin_get_errors (PluginObject *obj,
{ {
GError *error = NULL; GError *error = NULL;
GVariant *res; 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)) if (!uuid_is_valid (uuid_str))
return FALSE; {
g_free (uuid_str);
return FALSE;
}
res = g_dbus_proxy_call_sync (obj->proxy, res = g_dbus_proxy_call_sync (obj->proxy,
"GetExtensionErrors", "GetExtensionErrors",
@ -578,6 +604,8 @@ plugin_get_errors (PluginObject *obj,
NULL, /* cancellable */ NULL, /* cancellable */
&error); &error);
g_free (uuid_str);
if (!res) if (!res)
{ {
g_warning ("Failed to retrieve errors: %s", error->message); g_warning ("Failed to retrieve errors: %s", error->message);
@ -633,7 +661,8 @@ plugin_get_shell_version (PluginObject *obj,
STRINGN_TO_NPVARIANT (buffer, length, *result); STRINGN_TO_NPVARIANT (buffer, length, *result);
out: out:
g_variant_unref (res); if (res)
g_variant_unref (res);
return ret; return ret;
} }

View File

@ -1,5 +1,5 @@
AC_PREREQ(2.63) AC_PREREQ(2.63)
AC_INIT([gnome-shell],[3.2.1],[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_HEADERS([config.h])
AC_CONFIG_SRCDIR([src/shell-global.c]) AC_CONFIG_SRCDIR([src/shell-global.c])
@ -36,6 +36,10 @@ AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE, "$GETTEXT_PACKAGE",
PKG_PROG_PKG_CONFIG([0.22]) PKG_PROG_PKG_CONFIG([0.22])
# GConf stuff
AC_PATH_PROG(GCONFTOOL, gconftool-2, no)
AM_GCONF_SOURCE_2
GLIB_GSETTINGS GLIB_GSETTINGS
# Get a value to substitute into gnome-shell.in # Get a value to substitute into gnome-shell.in
@ -66,7 +70,7 @@ GJS_MIN_VERSION=1.29.18
MUTTER_MIN_VERSION=3.2.1 MUTTER_MIN_VERSION=3.2.1
FOLKS_MIN_VERSION=0.5.2 FOLKS_MIN_VERSION=0.5.2
GTK_MIN_VERSION=3.0.0 GTK_MIN_VERSION=3.0.0
GIO_MIN_VERSION=2.31.0 GIO_MIN_VERSION=2.29.10
LIBECAL_MIN_VERSION=2.32.0 LIBECAL_MIN_VERSION=2.32.0
LIBEDATASERVER_MIN_VERSION=1.2.0 LIBEDATASERVER_MIN_VERSION=1.2.0
LIBEDATASERVERUI_MIN_VERSION=2.91.6 LIBEDATASERVERUI_MIN_VERSION=2.91.6
@ -76,8 +80,8 @@ POLKIT_MIN_VERSION=0.100
STARTUP_NOTIFICATION_MIN_VERSION=0.11 STARTUP_NOTIFICATION_MIN_VERSION=0.11
# Collect more than 20 libraries for a prize! # Collect more than 20 libraries for a prize!
PKG_CHECK_MODULES(GNOME_SHELL, gio-unix-2.0 >= $GIO_MIN_VERSION PKG_CHECK_MODULES(GNOME_SHELL, gio-2.0 >= $GIO_MIN_VERSION
libxml-2.0 gio-unix-2.0 dbus-glib-1 libxml-2.0
gtk+-3.0 >= $GTK_MIN_VERSION gtk+-3.0 >= $GTK_MIN_VERSION
folks >= $FOLKS_MIN_VERSION folks >= $FOLKS_MIN_VERSION
libmutter >= $MUTTER_MIN_VERSION libmutter >= $MUTTER_MIN_VERSION
@ -127,7 +131,6 @@ PKG_CHECK_EXISTS([gnome-bluetooth-1.0 >= 3.1.0],
[BLUETOOTH_DIR=`$PKG_CONFIG --variable=applet_libdir gnome-bluetooth-1.0` [BLUETOOTH_DIR=`$PKG_CONFIG --variable=applet_libdir gnome-bluetooth-1.0`
BLUETOOTH_LIBS=`$PKG_CONFIG --variable=applet_libs gnome-bluetooth-1.0` BLUETOOTH_LIBS=`$PKG_CONFIG --variable=applet_libs gnome-bluetooth-1.0`
AC_SUBST([BLUETOOTH_LIBS],["$BLUETOOTH_LIBS"]) AC_SUBST([BLUETOOTH_LIBS],["$BLUETOOTH_LIBS"])
AC_SUBST([BLUETOOTH_DIR],["$BLUETOOTH_DIR"])
AC_DEFINE_UNQUOTED([BLUETOOTH_DIR],["$BLUETOOTH_DIR"],[Path to installed GnomeBluetooth typelib and library]) AC_DEFINE_UNQUOTED([BLUETOOTH_DIR],["$BLUETOOTH_DIR"],[Path to installed GnomeBluetooth typelib and library])
AC_DEFINE([HAVE_BLUETOOTH],[1],[Define if you have libgnome-bluetooth-applet]) AC_DEFINE([HAVE_BLUETOOTH],[1],[Define if you have libgnome-bluetooth-applet])
AC_SUBST([HAVE_BLUETOOTH],[1]) AC_SUBST([HAVE_BLUETOOTH],[1])
@ -176,13 +179,11 @@ AC_SUBST(GIRDIR)
TYPELIBDIR="$($PKG_CONFIG --variable=typelibdir gobject-introspection-1.0)" TYPELIBDIR="$($PKG_CONFIG --variable=typelibdir gobject-introspection-1.0)"
AC_SUBST(TYPELIBDIR) AC_SUBST(TYPELIBDIR)
GTK_DOC_CHECK([1.15], [--flavour no-tmpl])
# Stay command-line compatible with the gnome-common configure option. Here # Stay command-line compatible with the gnome-common configure option. Here
# minimum/yes/maximum are the same, however. # minimum/yes/maximum are the same, however.
AC_ARG_ENABLE(compile_warnings, AC_ARG_ENABLE(compile_warnings,
AS_HELP_STRING([--enable-compile-warnings=@<:@no/minimum/yes/maximum/error@:>@],[Turn on compiler warnings]),, AS_HELP_STRING([--enable-compile-warnings=@<:@no/minimum/yes/maximum/error@:>@],[Turn on compiler warnings]),,
enable_compile_warnings=maximum) enable_compile_warnings=error)
changequote(,)dnl changequote(,)dnl
if test "$enable_compile_warnings" != no ; then if test "$enable_compile_warnings" != no ; then
@ -240,12 +241,6 @@ AC_ARG_VAR([BROWSER_PLUGIN_DIR],[Where to install the plugin to])
AC_CONFIG_FILES([ AC_CONFIG_FILES([
Makefile Makefile
data/Makefile data/Makefile
docs/Makefile
docs/reference/Makefile
docs/reference/shell/Makefile
docs/reference/shell/shell-docs.sgml
docs/reference/st/Makefile
docs/reference/st/st-docs.sgml
js/Makefile js/Makefile
js/misc/config.js js/misc/config.js
src/Makefile src/Makefile

View File

@ -60,14 +60,23 @@ gschemas.compiled: $(gsettings_SCHEMAS:.xml=.valid)
all-local: gschemas.compiled all-local: gschemas.compiled
# GConf schemas: provide defaults for keys from Metacity we are overriding
gconfschemadir = @GCONF_SCHEMA_FILE_DIR@
gconfschema_DATA = gnome-shell.schemas
shadersdir = $(pkgdatadir)/shaders shadersdir = $(pkgdatadir)/shaders
shaders_DATA = \ shaders_DATA = \
shaders/dim-window.glsl shaders/dim-window.glsl
install-data-local:
GCONF_CONFIG_SOURCE=$(GCONF_SCHEMA_CONFIG_SOURCE) $(GCONFTOOL) --makefile-install-rule $(srcdir)/$(gconfschema_DATA)
EXTRA_DIST = \ EXTRA_DIST = \
gnome-shell.desktop.in.in \ gnome-shell.desktop.in.in \
$(menu_DATA) \ $(menu_DATA) \
$(gconfschema_DATA) \
$(shaders_DATA) \ $(shaders_DATA) \
org.gnome.shell.gschema.xml.in org.gnome.shell.gschema.xml.in

100
data/gnome-shell.schemas Normal file
View File

@ -0,0 +1,100 @@
<gconfschemafile>
<schemalist>
<!-- Metacity overrides -->
<schema>
<key>/schemas/desktop/gnome/shell/windows/attach_modal_dialogs</key>
<applyto>/desktop/gnome/shell/windows/attach_modal_dialogs</applyto>
<owner>gnome-shell</owner>
<type>bool</type>
<default>true</default>
<locale name="C">
<short>Attach modal dialog to the parent window</short>
<long>
This key overrides /apps/mutter/general/attach_modal_dialogs when
running GNOME Shell.
</long>
</locale>
</schema>
<schema>
<key>/schemas/desktop/gnome/shell/windows/button_layout</key>
<applyto>/desktop/gnome/shell/windows/button_layout</applyto>
<owner>gnome-shell</owner>
<type>string</type>
<default>:close</default>
<locale name="C">
<short>Arrangement of buttons on the titlebar</short>
<long>
Arrangement of buttons on the titlebar. The
value should be a string, such as
"menu:minimize,maximize,spacer,close"; the colon separates the
left corner of the window from the right corner, and
the button names are comma-separated. Duplicate buttons
are not allowed. Unknown button names are silently ignored
so that buttons can be added in future gnome-shell versions
without breaking older versions.
A special spacer tag can be used to insert some space between
two adjacent buttons.
This key overrides /apps/metacity/general/button_layout when
running GNOME Shell.
</long>
</locale>
</schema>
<schema>
<key>/schemas/desktop/gnome/shell/windows/edge_tiling</key>
<applyto>/desktop/gnome/shell/windows/edge_tiling</applyto>
<owner>gnome-shell</owner>
<type>bool</type>
<default>true</default>
<locale name="C">
<short>enable edge tiling when dropping windows on screen edges</short>
<long>
If enabled, dropping windows on vertical screen edges maximizes them
vertically and resizes them horizontally to cover half of the
available area. Dropping windows on the top screen edge maximizes them
completely.
This key overrides /apps/metacity/general/edge_tiling when
running GNOME Shell.
</long>
</locale>
</schema>
<schema>
<key>/schemas/desktop/gnome/shell/windows/theme</key>
<applyto>/desktop/gnome/shell/windows/theme</applyto>
<owner>gnome-shell</owner>
<type>string</type>
<default>Adwaita</default>
<locale name="C">
<short>Current theme</short>
<long>
The theme determines the appearance of window borders,
titlebar, and so forth.
This key overrides /apps/metacity/general/theme when
running GNOME Shell.
</long>
</locale>
</schema>
<schema>
<key>/schemas/desktop/gnome/shell/windows/workspaces_only_on_primary</key>
<applyto>/desktop/gnome/shell/windows/workspaces_only_on_primary</applyto>
<owner>gnome-shell</owner>
<type>bool</type>
<default>true</default>
<locale name="C">
<short>Workspaces only on primary monitor</short>
<long>
This key overrides /apps/mutter/general/workspaces_only_on_primary when
running GNOME Shell.
</long>
</locale>
</schema>
</schemalist>
</gconfschemafile>

View File

@ -16,9 +16,8 @@
<_summary>Uuids of extensions to enable</_summary> <_summary>Uuids of extensions to enable</_summary>
<_description> <_description>
GNOME Shell extensions have a uuid property; this key lists extensions GNOME Shell extensions have a uuid property; this key lists extensions
which should be loaded. Any extension that wants to be loaded needs which should be loaded. disabled-extensions overrides this setting for
to be in this list. You can also manipulate this list with the extensions that appear in both lists.
EnableExtension and DisableExtension DBus methods on org.gnome.Shell.
</_description> </_description>
</key> </key>
<key name="enable-app-monitoring" type="b"> <key name="enable-app-monitoring" type="b">
@ -142,40 +141,4 @@
</_description> </_description>
</key> </key>
</schema> </schema>
<schema id="org.gnome.shell.overrides" path="/org/gnome/shell/overrides/">
<key name="attach-modal-dialogs" type="b">
<default>true</default>
<summary>Attach modal dialog to the parent window</summary>
<description>
This key overrides the key in org.gnome.mutter when running
GNOME Shell.
</description>
</key>
<key name="button-layout" type="s">
<default>":close"</default>
<summary>Arrangement of buttons on the titlebar</summary>
<description>
This key overrides the key in org.gnome.desktop.wm.preferences when
running GNOME Shell.
</description>
</key>
<key name="edge-tiling" type="b">
<default>true</default>
<summary>Enable edge tiling when dropping windows on screen edges</summary>
<description>
This key overrides the key in org.gnome.mutter when running GNOME Shell.
</description>
</key>
<key name="workspaces-only-on-primary" type="b">
<default>true</default>
<summary>Workspaces only on primary monitor</summary>
<description>
This key overrides the key in org.gnome.mutter when running GNOME Shell.
</description>
</key>
</schema>
</schemalist> </schemalist>

View File

@ -36,18 +36,18 @@ stage {
StScrollBar StScrollBar
{ {
padding: 0px; padding: 0px;
} }
StScrollView.vfade StScrollView.vfade
{ {
-st-vfade-offset: 68px; -st-vfade-offset: 68px;
} }
StScrollView StScrollBar StScrollView StScrollBar
{ {
min-width: 16px; min-width: 16px;
min-height: 16px; min-height: 16px;
} }
@ -509,9 +509,8 @@ StTooltip StLabel {
width: 60px; width: 60px;
} }
.placeholder { .dash-placeholder {
background-image: url("dash-placeholder.svg"); background-image: url("dash-placeholder.svg");
height: 24px;
} }
#viewSelector { #viewSelector {
@ -743,24 +742,24 @@ StTooltip StLabel {
} }
.contact-icon { .contact-icon {
border-radius: 4px; border-radius: 4px;
} }
.contact-details { .contact-details {
padding: 6px 8px 11px 8px; padding: 6px 8px 11px 8px;
} }
.contact-details-alias { .contact-details-alias {
font-size: 16px; font-size: 16px;
padding-bottom: 11px; padding-bottom: 11px;
} }
.contact-details-status { .contact-details-status {
font-size: 11pt; font-size: 11pt;
} }
.contact-details-status-icon { .contact-details-status-icon {
padding-right: 2px; padding-right: 2px;
} }
.contact:hover { .contact:hover {
@ -801,45 +800,37 @@ StTooltip StLabel {
#LookingGlassDialog #LookingGlassDialog
{ {
background-color: rgba(0,0,0,0.80); background-color: rgba(0,0,0,0.85);
spacing: 4px; spacing: 4px;
padding: 4px; padding: 4px;
border: 2px solid grey; border: 2px solid grey;
border-radius: 4px; border-radius: 4px;
color: #ffffff; color: #88ff66;
} }
#LookingGlassDialog > #Toolbar #LookingGlassDialog > #Toolbar
{ {
border: 1px solid grey; border: 1px solid grey;
border-radius: 4px; border-radius: 4px;
} }
#LookingGlassDialog .labels { #LookingGlassDialog .labels {
spacing: 4px; spacing: 4px;
} }
#LookingGlassDialog .notebook-tab { #LookingGlassDialog .notebook-tab {
-natural-hpadding: 12px; padding: 2px;
-minimum-hpadding: 6px;
font-weight: bold;
color: #ccc;
transition-duration: 100;
padding-left: .3em;
padding-right: .3em;
} }
#LookingGlassDialog .notebook-tab:hover { #LookingGlassDialog .notebook-tab:hover {
color: white; color: #00ff00;
text-shadow: black 0px 2px 2px;
} }
#LookingGlassDialog .notebook-tab:selected { #LookingGlassDialog .notebook-tab:selected {
border-image: url("panel-button-border.svg") 10 10 0 2; border: 1px solid #88ff66;
background-image: url("panel-button-highlight-wide.svg"); border-radius: 4px;
color: white; padding: 5px;
text-shadow: black 0px 2px 2px;
} }
#LookingGlassDialog .lg-inspector-title { #LookingGlassDialog .lg-inspector-title {
@ -849,58 +840,52 @@ StTooltip StLabel {
.lg-dialog StLabel .lg-dialog StLabel
{ {
color: #ffffff; color: #88ff66;
} }
.lg-dialog StEntry .lg-dialog StEntry
{ {
color: #ffffff; color: #88ff66;
selection-background-color: #bbbbbb; selection-background-color: #88ff66;
selected-color: #333333; selected-color: black;
}
.lg-completions-text
{
font-size: .9em;
font-style: italic;
} }
.lg-obj-inspector-title .lg-obj-inspector-title
{ {
spacing: 4px; spacing: 4px;
} }
.lg-obj-inspector-button .lg-obj-inspector-button
{ {
border: 1px solid gray; border: 1px solid #88ff66;
padding: 4px; padding: 4px;
border-radius: 4px; border-radius: 4px;
} }
.lg-obj-inspector-button:hover .lg-obj-inspector-button:hover
{ {
border: 1px solid #ffffff; border: 1px solid #00ff00;
} }
.lg-dialog .shell-link .lg-dialog .shell-link
{ {
color: #999999; color: #88ff66;
} }
.lg-dialog .shell-link:hover .lg-dialog .shell-link:hover
{ {
color: #dddddd; color: #00ff00;
} }
#LookingGlassDialog StBoxLayout#EvalBox #LookingGlassDialog StBoxLayout#EvalBox
{ {
padding: 4px; padding: 4px;
spacing: 4px; spacing: 4px;
} }
#LookingGlassDialog StBoxLayout#ResultsArea #LookingGlassDialog StBoxLayout#ResultsArea
{ {
spacing: 4px; spacing: 4px;
} }
#lookingGlassExtensions { #lookingGlassExtensions {
@ -927,11 +912,11 @@ StTooltip StLabel {
} }
#LookingGlassPropertyInspector { #LookingGlassPropertyInspector {
background: rgba(0, 0, 0, 0.8); background: rgba(0, 0, 0, 0.9);
border: 2px solid grey; border: 2px solid grey;
border-radius: 4px; border-radius: 4px;
padding: 6px; padding: 6px;
color: #ffffff; color: #88ff66;
} }
/* Calendar popup */ /* Calendar popup */
@ -1224,7 +1209,6 @@ StTooltip StLabel {
#notification-scrollview { #notification-scrollview {
max-height: 10em; max-height: 10em;
-st-vfade-offset: 24px;
} }
#notification-scrollview > .top-shadow, #notification-scrollview > .bottom-shadow { #notification-scrollview > .top-shadow, #notification-scrollview > .bottom-shadow {
@ -1337,8 +1321,9 @@ StTooltip StLabel {
padding: 8px 0; padding: 8px 0;
} }
.chat-received { .chat-sent {
padding-left: 4px; padding-left: 4px;
border-radius: 4px;
} }
.chat-received:rtl { .chat-received:rtl {
@ -1348,7 +1333,8 @@ StTooltip StLabel {
.chat-sent { .chat-sent {
padding-left: 18pt; padding-left: 18pt;
color: #959595; border-radius: 4px;
color: #7E7E7E;
} }
.chat-sent:rtl { .chat-sent:rtl {
@ -1358,6 +1344,7 @@ StTooltip StLabel {
.chat-meta-message { .chat-meta-message {
padding-left: 4px; padding-left: 4px;
border-radius: 4px;
font-size: 9pt; font-size: 9pt;
color: #bbbbbb; color: #bbbbbb;
} }
@ -1912,7 +1899,6 @@ StTooltip StLabel {
background-gradient-end: white; background-gradient-end: white;
background-gradient-direction: vertical; background-gradient-direction: vertical;
color: black; color: black;
selected-color: white;
border-radius: 5px; border-radius: 5px;
border: 2px solid #555753; border: 2px solid #555753;
} }

View File

@ -1 +0,0 @@
SUBDIRS = reference

View File

@ -1 +0,0 @@
SUBDIRS = shell st

View File

@ -1,105 +0,0 @@
## Process this file with automake to produce Makefile.in
# We require automake 1.6 at least.
AUTOMAKE_OPTIONS = 1.6
# This is a blank Makefile.am for using gtk-doc.
# Copy this to your project's API docs directory and modify the variables to
# suit your project. See the GTK+ Makefiles in gtk+/docs/reference for examples
# of using the various options.
# The name of the module, e.g. 'glib'.
DOC_MODULE=shell
# Uncomment for versioned docs and specify the version of the module, e.g. '2'.
#DOC_MODULE_VERSION=2
# The top-level SGML file. You can change this if you want to.
DOC_MAIN_SGML_FILE=$(DOC_MODULE)-docs.sgml
# Directories containing the source code, relative to $(srcdir).
# gtk-doc will search all .c and .h files beneath these paths
# for inline comments documenting functions and macros.
# e.g. DOC_SOURCE_DIR=../../../gtk ../../../gdk
DOC_SOURCE_DIR=../../../src
# Extra options to pass to gtkdoc-scangobj. Not normally needed.
SCANGOBJ_OPTIONS=
# Extra options to supply to gtkdoc-scan.
# e.g. SCAN_OPTIONS=--deprecated-guards="GTK_DISABLE_DEPRECATED"
SCAN_OPTIONS=--rebuild-types
# Extra options to supply to gtkdoc-mkdb.
# e.g. MKDB_OPTIONS=--xml-mode --output-format=xml
MKDB_OPTIONS=--xml-mode --output-format=xml
# Extra options to supply to gtkdoc-mktmpl
# e.g. MKTMPL_OPTIONS=--only-section-tmpl
MKTMPL_OPTIONS=
# Extra options to supply to gtkdoc-mkhtml
MKHTML_OPTIONS=
# Extra options to supply to gtkdoc-fixref. Not normally needed.
# e.g. FIXXREF_OPTIONS=--extra-dir=../gdk-pixbuf/html --extra-dir=../gdk/html
FIXXREF_OPTIONS=
# Used for dependencies. The docs will be rebuilt if any of these change.
# e.g. HFILE_GLOB=$(top_srcdir)/gtk/*.h
# e.g. CFILE_GLOB=$(top_srcdir)/gtk/*.c
HFILE_GLOB=$(top_srcdir)/src/*.h
CFILE_GLOB=$(top_srcdir)/src/*.c
# Extra header to include when scanning, which are not under DOC_SOURCE_DIR
# e.g. EXTRA_HFILES=$(top_srcdir}/contrib/extra.h
EXTRA_HFILES=
# Header files or dirs to ignore when scanning. Use base file/dir names
# e.g. IGNORE_HFILES=gtkdebug.h gtkintl.h private_code
IGNORE_HFILES=calendar-server gvc hotplug-sniffer st tray
# Images to copy into HTML directory.
# e.g. HTML_IMAGES=$(top_srcdir)/gtk/stock-icons/stock_about_24.png
HTML_IMAGES=
# Extra SGML files that are included by $(DOC_MAIN_SGML_FILE).
# e.g. content_files=running.sgml building.sgml changes-2.0.sgml
content_files=
# SGML files where gtk-doc abbrevations (#GtkWidget) are expanded
# These files must be listed here *and* in content_files
# e.g. expand_content_files=running.sgml
expand_content_files=
# CFLAGS and LDFLAGS for compiling gtkdoc-scangobj with your library.
# Only needed if you are using gtkdoc-scangobj to dynamically query widget
# signals and properties.
# e.g. GTKDOC_CFLAGS=-I$(top_srcdir) -I$(top_builddir) $(GTK_DEBUG_FLAGS)
# e.g. GTKDOC_LIBS=$(top_builddir)/gtk/$(gtktargetlib)
GTKDOC_CFLAGS=$(GNOME_SHELL_CFLAGS)
GTKDOC_LIBS=$(GNOME_SHELL_LIBS) $(top_builddir)/src/libgnome-shell.la
# This includes the standard gtk-doc make rules, copied by gtkdocize.
include $(top_srcdir)/gtk-doc.make
# Other files to distribute
# e.g. EXTRA_DIST += version.xml.in
EXTRA_DIST +=
# Files not to distribute
# for --rebuild-types in $(SCAN_OPTIONS), e.g. $(DOC_MODULE).types
# for --rebuild-sections in $(SCAN_OPTIONS) e.g. $(DOC_MODULE)-sections.txt
DISTCLEANFILES = $(DOC_MODULES).types
# Comment this out if you want 'make check' to test you doc status
# and run some sanity checks
if ENABLE_GTK_DOC
TESTS_ENVIRONMENT = cd $(srcdir) && \
DOC_MODULE=$(DOC_MODULE) DOC_MAIN_SGML_FILE=$(DOC_MAIN_SGML_FILE) \
SRCDIR=$(abs_srcdir) BUILDDIR=$(abs_builddir)
#TESTS = $(GTKDOC_CHECK)
endif
-include $(top_srcdir)/git.mk

View File

@ -1,73 +0,0 @@
<?xml version="1.0"?>
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
"http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd"
[
<!ENTITY % local.common.attrib "xmlns:xi CDATA #FIXED 'http://www.w3.org/2003/XInclude'">
]>
<book id="index">
<bookinfo>
<title>Shell Reference Manual</title>
<releaseinfo>
for Shell @VERSION@.
<!--The latest version of this documentation can be found on-line at
<ulink role="online-location" url="http://[SERVER]/shell/index.html">http://[SERVER]/shell/</ulink>.-->
</releaseinfo>
</bookinfo>
<chapter>
<title>Actors</title>
<xi:include href="xml/shell-generic-container.xml"/>
<xi:include href="xml/shell-slicer.xml"/>
<xi:include href="xml/shell-stack.xml"/>
</chapter>
<chapter>
<title>Application tracking</title>
<xi:include href="xml/shell-app.xml"/>
<xi:include href="xml/shell-app-usage.xml"/>
<xi:include href="xml/shell-window-tracker.xml"/>
</chapter>
<chapter>
<title>Search</title>
<xi:include href="xml/shell-app-system.xml"/>
<xi:include href="xml/shell-contact-system.xml"/>
<xi:include href="xml/shell-doc-system.xml"/>
</chapter>
<chapter>
<title>Tray Icons</title>
<xi:include href="xml/shell-embedded-window.xml"/>
<xi:include href="xml/shell-gtk-embed.xml"/>
<xi:include href="xml/shell-tray-icon.xml"/>
<xi:include href="xml/shell-tray-manager.xml"/>
</chapter>
<chapter>
<title>Recorder</title>
<xi:include href="xml/shell-recorder.xml"/>
<xi:include href="xml/shell-recorder-src.xml"/>
</chapter>
<chapter>
<title>Integration helpers and utilities</title>
<xi:include href="xml/shell-global.xml"/>
<xi:include href="xml/shell-wm.xml"/>
<xi:include href="xml/shell-xfixes-cursor.xml"/>
<xi:include href="xml/shell-util.xml"/>
<xi:include href="xml/shell-mount-operation.xml"/>
<xi:include href="xml/shell-mobile-providers.xml"/>
<xi:include href="xml/shell-network-agent.xml"/>
<xi:include href="xml/shell-polkit-authentication-agent.xml"/>
<xi:include href="xml/shell-tp-client.xml"/>
</chapter>
<chapter id="object-tree">
<title>Object Hierarchy</title>
<xi:include href="xml/tree_index.sgml"/>
</chapter>
<index id="api-index-full">
<title>API Index</title>
<xi:include href="xml/api-index-full.xml"><xi:fallback /></xi:include>
</index>
<index id="deprecated-api-index" role="deprecated">
<title>Index of deprecated API</title>
<xi:include href="xml/api-index-deprecated.xml"><xi:fallback /></xi:include>
</index>
<xi:include href="xml/annotation-glossary.xml"><xi:fallback /></xi:include>
</book>

View File

@ -1,105 +0,0 @@
## Process this file with automake to produce Makefile.in
# We require automake 1.6 at least.
AUTOMAKE_OPTIONS = 1.6
# This is a blank Makefile.am for using gtk-doc.
# Copy this to your project's API docs directory and modify the variables to
# suit your project. See the GTK+ Makefiles in gtk+/docs/reference for examples
# of using the various options.
# The name of the module, e.g. 'glib'.
DOC_MODULE=st
# Uncomment for versioned docs and specify the version of the module, e.g. '2'.
#DOC_MODULE_VERSION=2
# The top-level SGML file. You can change this if you want to.
DOC_MAIN_SGML_FILE=$(DOC_MODULE)-docs.sgml
# Directories containing the source code, relative to $(srcdir).
# gtk-doc will search all .c and .h files beneath these paths
# for inline comments documenting functions and macros.
# e.g. DOC_SOURCE_DIR=../../../gtk ../../../gdk
DOC_SOURCE_DIR=../../../src/st
# Extra options to pass to gtkdoc-scangobj. Not normally needed.
SCANGOBJ_OPTIONS=
# Extra options to supply to gtkdoc-scan.
# e.g. SCAN_OPTIONS=--deprecated-guards="GTK_DISABLE_DEPRECATED"
SCAN_OPTIONS=--rebuild-types --rebuild-sections
# Extra options to supply to gtkdoc-mkdb.
# e.g. MKDB_OPTIONS=--xml-mode --output-format=xml
MKDB_OPTIONS=--xml-mode --output-format=xml
# Extra options to supply to gtkdoc-mktmpl
# e.g. MKTMPL_OPTIONS=--only-section-tmpl
MKTMPL_OPTIONS=
# Extra options to supply to gtkdoc-mkhtml
MKHTML_OPTIONS=
# Extra options to supply to gtkdoc-fixref. Not normally needed.
# e.g. FIXXREF_OPTIONS=--extra-dir=../gdk-pixbuf/html --extra-dir=../gdk/html
FIXXREF_OPTIONS=
# Used for dependencies. The docs will be rebuilt if any of these change.
# e.g. HFILE_GLOB=$(top_srcdir)/gtk/*.h
# e.g. CFILE_GLOB=$(top_srcdir)/gtk/*.c
HFILE_GLOB=$(top_srcdir)/src/st/*.h
CFILE_GLOB=$(top_srcdir)/src/st/*.c
# Extra header to include when scanning, which are not under DOC_SOURCE_DIR
# e.g. EXTRA_HFILES=$(top_srcdir}/contrib/extra.h
EXTRA_HFILES=
# Header files or dirs to ignore when scanning. Use base file/dir names
# e.g. IGNORE_HFILES=gtkdebug.h gtkintl.h private_code
IGNORE_HFILES=st-private.h st-theme-node-private.h
# Images to copy into HTML directory.
# e.g. HTML_IMAGES=$(top_srcdir)/gtk/stock-icons/stock_about_24.png
HTML_IMAGES=
# Extra SGML files that are included by $(DOC_MAIN_SGML_FILE).
# e.g. content_files=running.sgml building.sgml changes-2.0.sgml
content_files=
# SGML files where gtk-doc abbrevations (#GtkWidget) are expanded
# These files must be listed here *and* in content_files
# e.g. expand_content_files=running.sgml
expand_content_files=
# CFLAGS and LDFLAGS for compiling gtkdoc-scangobj with your library.
# Only needed if you are using gtkdoc-scangobj to dynamically query widget
# signals and properties.
# e.g. GTKDOC_CFLAGS=-I$(top_srcdir) -I$(top_builddir) $(GTK_DEBUG_FLAGS)
# e.g. GTKDOC_LIBS=$(top_builddir)/gtk/$(gtktargetlib)
GTKDOC_CFLAGS=
GTKDOC_LIBS=$(top_builddir)/src/libst-1.0.la
# This includes the standard gtk-doc make rules, copied by gtkdocize.
include $(top_srcdir)/gtk-doc.make
# Other files to distribute
# e.g. EXTRA_DIST += version.xml.in
EXTRA_DIST +=
# Files not to distribute
# for --rebuild-types in $(SCAN_OPTIONS), e.g. $(DOC_MODULE).types
# for --rebuild-sections in $(SCAN_OPTIONS) e.g. $(DOC_MODULE)-sections.txt
DISTCLEANFILES = $(DOC_MODULE).types $(DOC_MODULE)-sections.txt
# Comment this out if you want 'make check' to test you doc status
# and run some sanity checks
if ENABLE_GTK_DOC
TESTS_ENVIRONMENT = cd $(srcdir) && \
DOC_MODULE=$(DOC_MODULE) DOC_MAIN_SGML_FILE=$(DOC_MAIN_SGML_FILE) \
SRCDIR=$(abs_srcdir) BUILDDIR=$(abs_builddir)
#TESTS = $(GTKDOC_CHECK)
endif
-include $(top_srcdir)/git.mk

View File

@ -1,68 +0,0 @@
<?xml version="1.0"?>
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
"http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd"
[
<!ENTITY % local.common.attrib "xmlns:xi CDATA #FIXED 'http://www.w3.org/2003/XInclude'">
]>
<book id="index">
<bookinfo>
<title>St Reference Manual</title>
<releaseinfo>
for St @VERSION@.
<!--The latest version of this documentation can be found on-line at
<ulink role="online-location" url="http://[SERVER]/st/index.html">http://[SERVER]/st/</ulink>.-->
</releaseinfo>
</bookinfo>
<part>
<title>API reference</title>
<chapter id="base">
<title>Abstract classes and Interfaces</title>
<xi:include href="xml/st-widget.xml"/>
<xi:include href="xml/st-widget-accessible.xml"/>
<xi:include href="xml/st-container.xml"/>
<xi:include href="xml/st-scrollable.xml"/>
</chapter>
<chapter id="widgets">
<title>Widgets</title>
<xi:include href="xml/st-button.xml"/>
<xi:include href="xml/st-drawing-area.xml"/>
<xi:include href="xml/st-entry.xml"/>
<xi:include href="xml/st-icon.xml"/>
<xi:include href="xml/st-label.xml"/>
<xi:include href="xml/st-tooltip.xml"/>
</chapter>
<chapter id="containers">
<title>Containers</title>
<xi:include href="xml/st-bin.xml"/>
<xi:include href="xml/st-box-layout.xml"/>
<xi:include href="xml/st-group.xml"/>
<xi:include href="xml/st-overflow-box.xml"/>
<xi:include href="xml/st-scroll-view.xml"/>
<xi:include href="xml/st-table.xml"/>
</chapter>
<chapter id="styling">
<title>Styling</title>
<xi:include href="xml/st-theme.xml"/>
<xi:include href="xml/st-theme-context.xml"/>
<xi:include href="xml/st-theme-node.xml"/>
<xi:include href="xml/st-theme-node-transition.xml"/>
<xi:include href="xml/st-texture-cache.xml"/>
</chapter>
</part>
<chapter id="object-tree">
<title>Object Hierarchy</title>
<xi:include href="xml/tree_index.sgml"/>
</chapter>
<index id="api-index-full">
<title>API Index</title>
<xi:include href="xml/api-index-full.xml"><xi:fallback /></xi:include>
</index>
<index id="deprecated-api-index" role="deprecated">
<title>Index of deprecated API</title>
<xi:include href="xml/api-index-deprecated.xml"><xi:fallback /></xi:include>
</index>
<xi:include href="xml/annotation-glossary.xml"><xi:fallback /></xi:include>
</book>

View File

@ -13,7 +13,6 @@ nobase_dist_js_DATA = \
misc/format.js \ misc/format.js \
misc/gnomeSession.js \ misc/gnomeSession.js \
misc/history.js \ misc/history.js \
misc/jsParse.js \
misc/modemManager.js \ misc/modemManager.js \
misc/params.js \ misc/params.js \
misc/screenSaver.js \ misc/screenSaver.js \

View File

@ -844,7 +844,7 @@ LoginDialog.prototype = {
x_fill: true, x_fill: true,
y_fill: false, y_fill: false,
x_align: St.Align.START }); x_align: St.Align.START });
// Translators: this message is shown below the password entry field // translators: this message is shown below the password entry field
// to indicate the user can swipe their finger instead // to indicate the user can swipe their finger instead
this._promptFingerprintMessage = new St.Label({ text: _("(or swipe finger)"), this._promptFingerprintMessage = new St.Label({ text: _("(or swipe finger)"),
style_class: 'login-dialog-prompt-fingerprint-message' }); style_class: 'login-dialog-prompt-fingerprint-message' });
@ -864,9 +864,6 @@ LoginDialog.prototype = {
x_align: St.Align.START }); x_align: St.Align.START });
this._promptBox.hide(); this._promptBox.hide();
// translators: this message is shown below the user list on the
// login screen. It can be activated to reveal an entry for
// manually entering the username.
let notListedLabel = new St.Label({ text: _("Not listed?"), let notListedLabel = new St.Label({ text: _("Not listed?"),
style_class: 'login-dialog-not-listed-label' }); style_class: 'login-dialog-not-listed-label' });
this._notListedButton = new St.Button({ style_class: 'login-dialog-not-listed-button', this._notListedButton = new St.Button({ style_class: 'login-dialog-not-listed-button',

View File

@ -38,7 +38,7 @@ function recursivelyDeleteDir(dir) {
let child = dir.get_child(info.get_name()); let child = dir.get_child(info.get_name());
if (type == Gio.FileType.REGULAR) if (type == Gio.FileType.REGULAR)
deleteGFile(child); deleteGFile(child);
else if (type == Gio.TypeType.DIRECTORY) else if (type == Gio.FileType.DIRECTORY)
recursivelyDeleteDir(child); recursivelyDeleteDir(child);
} }

View File

@ -1,18 +1,20 @@
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*- // -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
const Gio = imports.gi.Gio; const DBus = imports.dbus;
const Lang = imports.lang; const Lang = imports.lang;
const Signals = imports.signals; const Signals = imports.signals;
const PresenceIface = <interface name="org.gnome.SessionManager.Presence"> const PresenceIface = {
<method name="SetStatus"> name: 'org.gnome.SessionManager.Presence',
<arg type="u" direction="in"/> methods: [{ name: 'SetStatus',
</method> inSignature: 'u',
<property name="status" type="u" access="readwrite"/> outSignature: '' }],
<signal name="StatusChanged"> properties: [{ name: 'status',
<arg type="u" direction="out"/> signature: 'u',
</signal> access: 'readwrite' }],
</interface>; signals: [{ name: 'StatusChanged',
inSignature: 'u' }]
};
const PresenceStatus = { const PresenceStatus = {
AVAILABLE: 0, AVAILABLE: 0,
@ -21,41 +23,104 @@ const PresenceStatus = {
IDLE: 3 IDLE: 3
}; };
var PresenceProxy = Gio.DBusProxy.makeProxyWrapper(PresenceIface); function Presence() {
function Presence(initCallback, cancellable) { this._init();
return new PresenceProxy(Gio.DBus.session, 'org.gnome.SessionManager',
'/org/gnome/SessionManager/Presence', initCallback, cancellable);
} }
Presence.prototype = {
_init: function() {
DBus.session.proxifyObject(this, 'org.gnome.SessionManager', '/org/gnome/SessionManager/Presence', this);
},
getStatus: function(callback) {
this.GetRemote('status', Lang.bind(this,
function(status, ex) {
if (!ex)
callback(this, status);
}));
},
setStatus: function(status) {
this.SetStatusRemote(status);
}
};
DBus.proxifyPrototype(Presence.prototype, PresenceIface);
// Note inhibitors are immutable objects, so they don't // Note inhibitors are immutable objects, so they don't
// change at runtime (changes always come in the form // change at runtime (changes always come in the form
// of new inhibitors) // of new inhibitors)
const InhibitorIface = <interface name="org.gnome.SessionManager.Inhibitor"> const InhibitorIface = {
<property name="app_id" type="s" access="read" /> name: 'org.gnome.SessionManager.Inhibitor',
<property name="client_id" type="s" access="read" /> properties: [{ name: 'app_id',
<property name="reason" type="s" access="read" /> signature: 's',
<property name="flags" type="u" access="read" /> access: 'readonly' },
<property name="toplevel_xid" type="u" access="read" /> { name: 'client_id',
<property name="cookie" type="u" access="read" /> signature: 's',
</interface>; access: 'readonly' },
{ name: 'reason',
signature: 's',
access: 'readonly' },
{ name: 'flags',
signature: 'u',
access: 'readonly' },
{ name: 'toplevel_xid',
signature: 'u',
access: 'readonly' },
{ name: 'cookie',
signature: 'u',
access: 'readonly' }],
};
var InhibitorProxy = Gio.DBusProxy.makeProxyWrapper(InhibitorIface); function Inhibitor(objectPath) {
function Inhibitor(objectPath, initCallback, cancellable) { this._init(objectPath);
return new InhibitorProxy(Gio.DBus.session, 'org.gnome.SessionManager', objectPath, initCallback, cancellable);
} }
Inhibitor.prototype = {
_init: function(objectPath) {
DBus.session.proxifyObject(this,
'org.gnome.SessionManager',
objectPath);
this.isLoaded = false;
this._loadingPropertiesCount = InhibitorIface.properties.length;
for (let i = 0; i < InhibitorIface.properties.length; i++) {
let propertyName = InhibitorIface.properties[i].name;
this.GetRemote(propertyName, Lang.bind(this,
function(value, exception) {
if (exception)
return;
this[propertyName] = value;
this._loadingPropertiesCount--;
if (this._loadingPropertiesCount == 0) {
this.isLoaded = true;
this.emit('is-loaded');
}
}));
}
},
};
DBus.proxifyPrototype(Inhibitor.prototype, InhibitorIface);
Signals.addSignalMethods(Inhibitor.prototype);
// Not the full interface, only the methods we use // Not the full interface, only the methods we use
const SessionManagerIface = <interface name="org.gnome.SessionManager"> const SessionManagerIface = {
<method name="Logout"> name: 'org.gnome.SessionManager',
<arg type="u" direction="in" /> methods: [
</method> { name: 'Logout', inSignature: 'u', outSignature: '' },
<method name="Shutdown" /> { name: 'Shutdown', inSignature: '', outSignature: '' },
<method name="CanShutdown"> { name: 'CanShutdown', inSignature: '', outSignature: 'b' }
<arg type="b" direction="out" /> ]
</method> };
</interface>;
var SessionManagerProxy = Gio.DBusProxy.makeProxyWrapper(SessionManagerIface); function SessionManager() {
function SessionManager(initCallback, cancellable) { this._init();
return new SessionManagerProxy(Gio.DBus.session, 'org.gnome.SessionManager', '/org/gnome/SessionManager', initCallback, cancellable);
} }
SessionManager.prototype = {
_init: function() {
DBus.session.proxifyObject(this, 'org.gnome.SessionManager', '/org/gnome/SessionManager');
}
};
DBus.proxifyPrototype(SessionManager.prototype, SessionManagerIface);

View File

@ -1,246 +0,0 @@
/* -*- mode: js2; js2-basic-offset: 4; indent-tabs-mode: nil -*- */
// Returns a list of potential completions for text. Completions either
// follow a dot (e.g. foo.ba -> bar) or they are picked from globalCompletionList (e.g. fo -> foo)
// commandHeader is prefixed on any expression before it is eval'ed. It will most likely
// consist of global constants that might not carry over from the calling environment.
//
// This function is likely the one you want to call from external modules
function getCompletions(text, commandHeader, globalCompletionList) {
let methods = [];
let expr, base;
let attrHead = '';
if (globalCompletionList == null) {
globalCompletionList = [];
}
let offset = getExpressionOffset(text, text.length - 1);
if (offset >= 0) {
text = text.slice(offset);
// Look for expressions like "Main.panel.foo" and match Main.panel and foo
let matches = text.match(/(.*)\.(.*)/);
if (matches) {
[expr, base, attrHead] = matches;
methods = getPropertyNamesFromExpression(base, commandHeader).filter(function(attr) {
return attr.slice(0, attrHead.length) == attrHead;
});
}
// Look for the empty expression or partially entered words
// not proceeded by a dot and match them against global constants
matches = text.match(/^(\w*)$/);
if (text == '' || matches) {
[expr, attrHead] = matches;
methods = globalCompletionList.filter(function(attr) {
return attr.slice(0, attrHead.length) == attrHead;
});
}
}
return [methods, attrHead];
}
//
// A few functions for parsing strings of javascript code.
//
// Identify characters that delimit an expression. That is,
// if we encounter anything that isn't a letter, '.', ')', or ']',
// we should stop parsing.
function isStopChar(c) {
return !c.match(/[\w\.\)\]]/);
}
// Given the ending position of a quoted string, find where it starts
function findMatchingQuote(expr, offset) {
let quoteChar = expr.charAt(offset);
for (let i = offset - 1; i >= 0; --i) {
if (expr.charAt(i) == quoteChar && expr.charAt(i-1) != '\\'){
return i;
}
}
return -1;
}
// Given the ending position of a regex, find where it starts
function findMatchingSlash(expr, offset) {
for (let i = offset - 1; i >= 0; --i) {
if (expr.charAt(i) == '/' && expr.charAt(i-1) != '\\'){
return i;
}
}
return -1;
}
// If expr.charAt(offset) is ')' or ']',
// return the position of the corresponding '(' or '[' bracket.
// This function does not check for syntactic correctness. e.g.,
// findMatchingBrace("[(])", 3) returns 1.
function findMatchingBrace(expr, offset) {
let closeBrace = expr.charAt(offset);
let openBrace = ({')': '(', ']': '['})[closeBrace];
function findTheBrace(expr, offset) {
if (offset < 0) {
return -1;
}
if (expr.charAt(offset) == openBrace) {
return offset;
}
if (expr.charAt(offset).match(/['"]/)) {
return findTheBrace(expr, findMatchingQuote(expr, offset) - 1);
}
if (expr.charAt(offset) == '/') {
return findTheBrace(expr, findMatchingSlash(expr, offset) - 1);
}
if (expr.charAt(offset) == closeBrace) {
return findTheBrace(expr, findTheBrace(expr, offset - 1) - 1);
}
return findTheBrace(expr, offset - 1);
}
return findTheBrace(expr, offset - 1);
}
// Walk expr backwards from offset looking for the beginning of an
// expression suitable for passing to eval.
// There is no guarantee of correct javascript syntax between the return
// value and offset. This function is meant to take a string like
// "foo(Obj.We.Are.Completing" and allow you to extract "Obj.We.Are.Completing"
function getExpressionOffset(expr, offset) {
while (offset >= 0) {
let currChar = expr.charAt(offset);
if (isStopChar(currChar)){
return offset + 1;
}
if (currChar.match(/[\)\]]/)) {
offset = findMatchingBrace(expr, offset);
}
--offset;
}
return offset + 1;
}
// Things with non-word characters or that start with a number
// are not accessible via .foo notation and so aren't returned
function isValidPropertyName(w) {
return !(w.match(/\W/) || w.match(/^\d/));
}
// To get all properties (enumerable and not), we need to walk
// the prototype chain ourselves
function getAllProps(obj) {
if (obj === null || obj === undefined) {
return [];
}
return Object.getOwnPropertyNames(obj).concat( getAllProps(Object.getPrototypeOf(obj)) );
}
// Given a string _expr_, returns all methods
// that can be accessed via '.' notation.
// e.g., expr="({ foo: null, bar: null, 4: null })" will
// return ["foo", "bar", ...] but the list will not include "4",
// since methods accessed with '.' notation must star with a letter or _.
function getPropertyNamesFromExpression(expr, commandHeader) {
if (commandHeader == null) {
commandHeader = '';
}
let obj = {};
if (!isUnsafeExpression(expr)) {
try {
obj = eval(commandHeader + expr);
} catch (e) {
return [];
}
} else {
return [];
}
let propsUnique = {};
if (typeof obj === 'object'){
let allProps = getAllProps(obj);
// Get only things we are allowed to complete following a '.'
allProps = allProps.filter( isValidPropertyName );
// Make sure propsUnique contains one key for every
// property so we end up with a unique list of properties
allProps.map(function(p){ propsUnique[p] = null; });
}
return Object.keys(propsUnique).sort();
}
// Given a list of words, returns the longest prefix they all have in common
function getCommonPrefix(words) {
let word = words[0];
for (let i = 0; i < word.length; i++) {
for (let w = 1; w < words.length; w++) {
if (words[w].charAt(i) != word.charAt(i))
return word.slice(0, i);
}
}
return word;
}
// Returns true if there is reason to think that eval(str)
// will modify the global scope
function isUnsafeExpression(str) {
// Remove any blocks that are quoted or are in a regex
function removeLiterals(str) {
if (str.length == 0) {
return '';
}
let currChar = str.charAt(str.length - 1);
if (currChar == '"' || currChar == '\'') {
return removeLiterals(str.slice(0, findMatchingQuote(str, str.length - 1)));
} else if (currChar == '/') {
return removeLiterals(str.slice(0, findMatchingSlash(str, str.length - 1)));
}
return removeLiterals(str.slice(0, str.length - 1)) + currChar;
}
// Check for any sort of assignment
// The strategy used is dumb: remove any quotes
// or regexs and comparison operators and see if there is an '=' character.
// If there is, it might be an unsafe assignment.
let prunedStr = removeLiterals(str);
prunedStr = prunedStr.replace(/[=!]==/g, ''); //replace === and !== with nothing
prunedStr = prunedStr.replace(/[=<>!]=/g, ''); //replace ==, <=, >=, != with nothing
if (prunedStr.match(/=/)) {
return true;
} else if (prunedStr.match(/;/)) {
// If we contain a semicolon not inside of a quote/regex, assume we're unsafe as well
return true;
}
return false;
}
// Returns a list of global keywords derived from str
function getDeclaredConstants(str) {
let ret = [];
str.split(';').forEach(function(s) {
let base, keyword;
let match = s.match(/const\s+(\w+)\s*=/);
if (match) {
[base, keyword] = match;
ret.push(keyword);
}
});
return ret;
}

View File

@ -1,6 +1,6 @@
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*- // -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
const Gio = imports.gi.Gio; const DBus = imports.dbus;
const Lang = imports.lang; const Lang = imports.lang;
const Shell = imports.gi.Shell; const Shell = imports.gi.Shell;
const Signals = imports.signals; const Signals = imports.signals;
@ -8,43 +8,33 @@ const Signals = imports.signals;
// The following are not the complete interfaces, just the methods we need // The following are not the complete interfaces, just the methods we need
// (or may need in the future) // (or may need in the future)
const ModemGsmNetworkInterface = <interface name="org.freedesktop.ModemManager.Modem.Gsm.Network"> const ModemGsmNetworkInterface = {
<method name="GetRegistrationInfo"> name: 'org.freedesktop.ModemManager.Modem.Gsm.Network',
<arg type="u" direction="out" /> methods: [
<arg type="s" direction="out" /> { name: 'GetRegistrationInfo', inSignature: '', outSignature: 'uss' },
<arg type="s" direction="out" /> { name: 'GetSignalQuality', inSignature: '', outSignature: 'u' }
</method> ],
<method name="GetSignalQuality"> properties: [
<arg type="u" direction="out" /> { name: 'AccessTechnology', signature: 'u', access: 'read' }
</method> ],
<property name="AccessTechnology" type="u" access="read" /> signals: [
<signal name="SignalQuality"> { name: 'SignalQuality', inSignature: 'u' },
<arg type="u" direction="out" /> { name: 'RegistrationInfo', inSignature: 'uss' }
</signal> ]
<signal name="RegistrationInfo"> };
<arg type="u" direction="out" /> const ModemGsmNetworkProxy = DBus.makeProxyClass(ModemGsmNetworkInterface);
<arg type="s" direction="out" />
<arg type="s" direction="out" />
</signal>
</interface>;
const ModemGsmNetworkProxy = Gio.DBusProxy.makeProxyWrapper(ModemGsmNetworkInterface); const ModemCdmaInterface = {
name: 'org.freedesktop.ModemManager.Modem.Cdma',
const ModemCdmaInterface = <interface name="org.freedesktop.ModemManager.Modem.Cdma"> methods: [
<method name="GetSignalQuality"> { name: 'GetSignalQuality', inSignature: '', outSignature: 'u' },
<arg type="u" direction="out" /> { name: 'GetServingSystem', inSignature: '', outSignature: 'usu' }
</method> ],
<method name="GetServingSystem"> signals: [
<arg type="u" direction="out" /> { name: 'SignalQuality', inSignature: 'u' }
<arg type="s" direction="out" /> ]
<arg type="u" direction="out" /> };
</method> const ModemCdmaProxy = DBus.makeProxyClass(ModemCdmaInterface);
<signal name="SignalQuality">
<arg type="u" direction="out" />
</signal>
</interface>;
const ModemCdmaProxy = Gio.DBusProxy.makeProxyWrapper(ModemCdmaInterface);
let _providersTable; let _providersTable;
function _getProvidersTable() { function _getProvidersTable() {
@ -60,17 +50,17 @@ function ModemGsm() {
ModemGsm.prototype = { ModemGsm.prototype = {
_init: function(path) { _init: function(path) {
this._proxy = new ModemGsmNetworkProxy(Gio.DBus.system, 'org.freedesktop.ModemManager', path); this._proxy = new ModemGsmNetworkProxy(DBus.system, 'org.freedesktop.ModemManager', path);
this.signal_quality = 0; this.signal_quality = 0;
this.operator_name = null; this.operator_name = null;
// Code is duplicated because the function have different signatures // Code is duplicated because the function have different signatures
this._proxy.connectSignal('SignalQuality', Lang.bind(this, function(proxy, sender, [quality]) { this._proxy.connect('SignalQuality', Lang.bind(this, function(proxy, quality) {
this.signal_quality = quality; this.signal_quality = quality;
this.emit('notify::signal-quality'); this.emit('notify::signal-quality');
})); }));
this._proxy.connectSignal('RegistrationInfo', Lang.bind(this, function(proxy, sender, [status, code, name]) { this._proxy.connect('RegistrationInfo', Lang.bind(this, function(proxy, status, code, name) {
this.operator_name = this._findOperatorName(name, code); this.operator_name = this._findOperatorName(name, code);
this.emit('notify::operator-name'); this.emit('notify::operator-name');
})); }));
@ -165,12 +155,12 @@ function ModemCdma() {
ModemCdma.prototype = { ModemCdma.prototype = {
_init: function(path) { _init: function(path) {
this._proxy = new ModemCdmaProxy(Gio.DBus.system, 'org.freedesktop.ModemManager', path); this._proxy = new ModemCdmaProxy(DBus.system, 'org.freedesktop.ModemManager', path);
this.signal_quality = 0; this.signal_quality = 0;
this.operator_name = null; this.operator_name = null;
this._proxy.connect('SignalQuality', Lang.bind(this, function(proxy, sender, params) { this._proxy.connect('SignalQuality', Lang.bind(this, function(proxy, quality) {
this.signal_quality = params[0]; this.signal_quality = quality;
this.emit('notify::signal-quality'); this.emit('notify::signal-quality');
// receiving this signal means the device got activated // receiving this signal means the device got activated

View File

@ -1,48 +1,53 @@
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*- // -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
const Gio = imports.gi.Gio; const DBus = imports.dbus;
const Lang = imports.lang; const Lang = imports.lang;
const ScreenSaverIface = <interface name="org.gnome.ScreenSaver"> const ScreenSaverIface = {
<method name="GetActive"> name: 'org.gnome.ScreenSaver',
<arg type="b" direction="out" /> methods: [{ name: 'GetActive',
</method> inSignature: '',
<method name="Lock" /> outSignature: 'b' },
<method name="SetActive"> { name: 'Lock',
<arg type="b" direction="in" /> inSignature: '' },
</method> { name: 'SetActive',
<signal name="ActiveChanged"> inSignature: 'b' }],
<arg type="b" direction="out" /> signals: [{ name: 'ActiveChanged',
</signal> inSignature: 'b' }]
</interface>; };
const ScreenSaverInfo = Gio.DBusInterfaceInfo.new_for_xml(ScreenSaverIface);
function ScreenSaverProxy() { function ScreenSaverProxy() {
var self = new Gio.DBusProxy({ g_connection: Gio.DBus.session, this._init();
g_interface_name: ScreenSaverInfo.name,
g_interface_info: ScreenSaverInfo,
g_name: 'org.gnome.ScreenSaver',
g_object_path: '/org/gnome/ScreenSaver',
g_flags: (Gio.DBusProxyFlags.DO_NOT_AUTO_START |
Gio.DBusProxyFlags.DO_NOT_LOAD_PROPERTIES) });
self.init(null);
self.screenSaverActive = false;
self.connectSignal('ActiveChanged', function(proxy, senderName, [isActive]) {
self.screenSaverActive = isActive;
});
self.connect('notify::g-name-owner', function() {
if (self.g_name_owner) {
self.GetActiveRemote(function(result, excp) {
if (result) {
let [isActive] = result;
self.screenSaverActive = isActive;
}
});
} else
self.screenSaverActive = false;
});
return self;
} }
ScreenSaverProxy.prototype = {
_init: function() {
DBus.session.proxifyObject(this,
'org.gnome.ScreenSaver',
'/org/gnome/ScreenSaver');
DBus.session.watch_name('org.gnome.ScreenSaver',
false, // do not launch a name-owner if none exists
Lang.bind(this, this._onSSAppeared),
Lang.bind(this, this._onSSVanished));
this.screenSaverActive = false;
this.connect('ActiveChanged',
Lang.bind(this, this._onActiveChanged));
},
_onSSAppeared: function(owner) {
this.GetActiveRemote(Lang.bind(this, function(isActive) {
this.screenSaverActive = isActive;
}))
},
_onSSVanished: function(oldOwner) {
this.screenSaverActive = false;
},
_onActiveChanged: function(object, isActive) {
this.screenSaverActive = isActive;
}
};
DBus.proxifyPrototype(ScreenSaverProxy.prototype, ScreenSaverIface);

View File

@ -170,12 +170,8 @@ AltTabPopup.prototype = {
if (localApps.length == 0 && otherApps.length == 0) if (localApps.length == 0 && otherApps.length == 0)
return false; return false;
if (!Main.pushModal(this.actor)) { if (!Main.pushModal(this.actor))
// Probably someone else has a pointer grab, try again with keyboard only return false;
if (!Main.pushModal(this.actor, global.get_current_time(), Meta.ModalOptions.POINTER_ALREADY_GRABBED)) {
return false;
}
}
this._haveModal = true; this._haveModal = true;
this._modifierMask = primaryModifier(mask); this._modifierMask = primaryModifier(mask);
@ -199,7 +195,7 @@ AltTabPopup.prototype = {
this.actor.get_allocation_box(); this.actor.get_allocation_box();
// Make the initial selection // Make the initial selection
if (binding == 'switch-group') { if (binding == 'switch_group') {
if (backward) { if (backward) {
this._select(0, this._appIcons[0].cachedWindows.length - 1); this._select(0, this._appIcons[0].cachedWindows.length - 1);
} else { } else {
@ -208,9 +204,9 @@ AltTabPopup.prototype = {
else else
this._select(0, 0); this._select(0, 0);
} }
} else if (binding == 'switch-group-backward') { } else if (binding == 'switch_group_backward') {
this._select(0, this._appIcons[0].cachedWindows.length - 1); this._select(0, this._appIcons[0].cachedWindows.length - 1);
} else if (binding == 'switch-windows-backward') { } else if (binding == 'switch_windows_backward') {
this._select(this._appIcons.length - 1); this._select(this._appIcons.length - 1);
} else if (this._appIcons.length == 1) { } else if (this._appIcons.length == 1) {
this._select(0); this._select(0);

View File

@ -1,6 +1,7 @@
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*- // -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
const Lang = imports.lang; const Lang = imports.lang;
const DBus = imports.dbus;
const Mainloop = imports.mainloop; const Mainloop = imports.mainloop;
const Gio = imports.gi.Gio; const Gio = imports.gi.Gio;
const Params = imports.misc.params; const Params = imports.misc.params;
@ -15,54 +16,63 @@ const SETTING_ENABLE_AUTOMOUNT = 'automount';
const AUTORUN_EXPIRE_TIMEOUT_SECS = 10; const AUTORUN_EXPIRE_TIMEOUT_SECS = 10;
const ConsoleKitSessionIface = <interface name="org.freedesktop.ConsoleKit.Session"> const ConsoleKitSessionIface = {
<method name="IsActive"> name: 'org.freedesktop.ConsoleKit.Session',
<arg type="b" direction="out" /> methods: [{ name: 'IsActive',
</method> inSignature: '',
<signal name="ActiveChanged"> outSignature: 'b' }],
<arg type="b" direction="out" /> signals: [{ name: 'ActiveChanged',
</signal> inSignature: 'b' }]
</interface>; };
const ConsoleKitSessionProxy = Gio.DBusProxy.makeProxyWrapper(ConsoleKitSessionIface); const ConsoleKitSessionProxy = DBus.makeProxyClass(ConsoleKitSessionIface);
const ConsoleKitManagerIface = <interface name="org.freedesktop.ConsoleKit.Manager"> const ConsoleKitManagerIface = {
<method name="GetCurrentSession"> name: 'org.freedesktop.ConsoleKit.Manager',
<arg type="o" direction="out" /> methods: [{ name: 'GetCurrentSession',
</method> inSignature: '',
</interface>; outSignature: 'o' }]
};
const ConsoleKitManagerInfo = Gio.DBusInterfaceInfo.new_for_xml(ConsoleKitManagerIface);
function ConsoleKitManager() { function ConsoleKitManager() {
var self = new Gio.DBusProxy({ g_connection: Gio.DBus.system, this._init();
g_interface_name: ConsoleKitManagerInfo.name, };
g_interface_info: ConsoleKitManagerInfo,
g_name: 'org.freedesktop.ConsoleKit',
g_object_path: '/org/freedesktop/ConsoleKit/Manager',
g_flags: (Gio.DBusProxyFlags.DO_NOT_AUTO_START |
Gio.DBusProxyFlags.DO_NOT_LOAD_PROPERTIES) });
self.connect('notify::g-name-owner', function() { ConsoleKitManager.prototype = {
if (self.g_name_owner) { _init: function() {
self.GetCurrentSessionRemote(function([session]) { this.sessionActive = true;
self._ckSession = new ConsoleKitSessionProxy(Gio.DBus.system, 'org.freedesktop.ConsoleKit', session);
self._ckSession.connectSignal('ActiveChanged', function(object, senderName, [isActive]) { DBus.system.proxifyObject(this,
self.sessionActive = isActive; 'org.freedesktop.ConsoleKit',
}); '/org/freedesktop/ConsoleKit/Manager');
self._ckSession.IsActiveRemote(function([isActive]) {
self.sessionActive = isActive;
});
});
} else {
self.sessionActive = true;
}
});
self.init(null); DBus.system.watch_name('org.freedesktop.ConsoleKit',
return self; false, // do not launch a name-owner if none exists
} Lang.bind(this, this._onManagerAppeared),
Lang.bind(this, this._onManagerVanished));
},
_onManagerAppeared: function(owner) {
this.GetCurrentSessionRemote(Lang.bind(this, this._onCurrentSession));
},
_onManagerVanished: function(oldOwner) {
this.sessionActive = true;
},
_onCurrentSession: function(session) {
this._ckSession = new ConsoleKitSessionProxy(DBus.system, 'org.freedesktop.ConsoleKit', session);
this._ckSession.connect
('ActiveChanged', Lang.bind(this, function(object, isActive) {
this.sessionActive = isActive;
}));
this._ckSession.IsActiveRemote(Lang.bind(this, function(isActive) {
this.sessionActive = isActive;
}));
}
};
DBus.proxifyPrototype(ConsoleKitManager.prototype, ConsoleKitManagerIface);
function AutomountManager() { function AutomountManager() {
this._init(); this._init();
@ -76,8 +86,9 @@ AutomountManager.prototype = {
this.ckListener = new ConsoleKitManager(); this.ckListener = new ConsoleKitManager();
this._ssProxy = new ScreenSaver.ScreenSaverProxy(); this._ssProxy = new ScreenSaver.ScreenSaverProxy();
this._ssProxy.connectSignal('ActiveChanged', this._ssProxy.connect('ActiveChanged',
Lang.bind(this, this._screenSaverActiveChanged)); Lang.bind(this,
this._screenSaverActiveChanged));
this._volumeMonitor = Gio.VolumeMonitor.get(); this._volumeMonitor = Gio.VolumeMonitor.get();
@ -100,7 +111,7 @@ AutomountManager.prototype = {
Mainloop.idle_add(Lang.bind(this, this._startupMountAll)); Mainloop.idle_add(Lang.bind(this, this._startupMountAll));
}, },
_screenSaverActiveChanged: function(object, senderName, [isActive]) { _screenSaverActiveChanged: function(object, isActive) {
if (!isActive) { if (!isActive) {
this._volumeQueue.forEach(Lang.bind(this, function(volume) { this._volumeQueue.forEach(Lang.bind(this, function(volume) {
this._checkAndMountVolume(volume); this._checkAndMountVolume(volume);

View File

@ -1,6 +1,7 @@
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*- // -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
const Lang = imports.lang; const Lang = imports.lang;
const DBus = imports.dbus;
const Gio = imports.gi.Gio; const Gio = imports.gi.Gio;
const St = imports.gi.St; const St = imports.gi.St;
@ -61,19 +62,25 @@ function startAppForMount(app, mount) {
/******************************************/ /******************************************/
const HotplugSnifferIface = <interface name="org.gnome.Shell.HotplugSniffer"> const HotplugSnifferIface = {
<method name="SniffURI"> name: 'org.gnome.Shell.HotplugSniffer',
<arg type="s" direction="in" /> methods: [{ name: 'SniffURI',
<arg type="as" direction="out" /> inSignature: 's',
</method> outSignature: 'as' }]
</interface>; };
const HotplugSnifferProxy = Gio.DBusProxy.makeProxyWrapper(HotplugSnifferIface); const HotplugSniffer = function() {
function HotplugSniffer() { this._init();
return new HotplugSnifferProxy(Gio.DBus.session, };
HotplugSniffer.prototype = {
_init: function() {
DBus.session.proxifyObject(this,
'org.gnome.Shell.HotplugSniffer', 'org.gnome.Shell.HotplugSniffer',
'/org/gnome/Shell/HotplugSniffer'); '/org/gnome/Shell/HotplugSniffer');
} },
};
DBus.proxifyPrototype(HotplugSniffer.prototype, HotplugSnifferIface);
function ContentTypeDiscoverer(callback) { function ContentTypeDiscoverer(callback) {
this._init(callback); this._init(callback);
@ -107,8 +114,9 @@ ContentTypeDiscoverer.prototype = {
let root = mount.get_root(); let root = mount.get_root();
let hotplugSniffer = new HotplugSniffer(); let hotplugSniffer = new HotplugSniffer();
hotplugSniffer.SniffURIRemote(root.get_uri(), hotplugSniffer.SniffURIRemote
Lang.bind(this, function([contentTypes]) { (root.get_uri(), DBus.CALL_FLAG_START,
Lang.bind(this, function(contentTypes) {
this._emitCallback(mount, contentTypes); this._emitCallback(mount, contentTypes);
})); }));
} }

View File

@ -1,5 +1,6 @@
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*- // -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
const DBus = imports.dbus;
const Clutter = imports.gi.Clutter; const Clutter = imports.gi.Clutter;
const Gio = imports.gi.Gio; const Gio = imports.gi.Gio;
const Lang = imports.lang; const Lang = imports.lang;
@ -194,34 +195,30 @@ EmptyEventSource.prototype = {
}; };
Signals.addSignalMethods(EmptyEventSource.prototype); Signals.addSignalMethods(EmptyEventSource.prototype);
const CalendarServerIface = <interface name="org.gnome.Shell.CalendarServer"> const CalendarServerIface = {
<method name="GetEvents"> name: 'org.gnome.Shell.CalendarServer',
<arg type="x" direction="in" /> methods: [{ name: 'GetEvents',
<arg type="x" direction="in" /> inSignature: 'xxb',
<arg type="b" direction="in" /> outSignature: 'a(sssbxxa{sv})' }],
<arg type="a(sssbxxa{sv})" direction="out" /> signals: [{ name: 'Changed',
</method> inSignature: '' }]
<signal name="Changed" /> };
</interface>;
const CalendarServerInfo = Gio.DBusInterfaceInfo.new_for_xml(CalendarServerIface); const CalendarServer = function () {
this._init();
};
function CalendarServer() { CalendarServer.prototype = {
var self = new Gio.DBusProxy({ g_connection: Gio.DBus.session, _init: function() {
g_interface_name: CalendarServerInfo.name, DBus.session.proxifyObject(this, 'org.gnome.Shell.CalendarServer', '/org/gnome/Shell/CalendarServer');
g_interface_info: CalendarServerInfo, }
g_name: 'org.gnome.Shell.CalendarServer', };
g_object_path: '/org/gnome/Shell/CalendarServer',
g_flags: (Gio.DBusProxyFlags.DO_NOT_AUTO_START |
Gio.DBusProxyFlags.DO_NOT_LOAD_PROPERTIES) });
self.init(null); DBus.proxifyPrototype(CalendarServer.prototype, CalendarServerIface);
return self;
}
// an implementation that reads data from a session bus service // an implementation that reads data from a session bus service
function DBusEventSource() { function DBusEventSource(owner) {
this._init(); this._init(owner);
} }
function _datesEqual(a, b) { function _datesEqual(a, b) {
@ -244,18 +241,16 @@ function _dateIntervalsOverlap(a0, a1, b0, b1)
DBusEventSource.prototype = { DBusEventSource.prototype = {
_init: function() { _init: function(owner) {
this._resetCache(); this._resetCache();
this._dbusProxy = new CalendarServer(); this._dbusProxy = new CalendarServer(owner);
this._dbusProxy.connectSignal('Changed', Lang.bind(this, this._onChanged)); this._dbusProxy.connect('Changed', Lang.bind(this, this._onChanged));
this._dbusProxy.connect('notify::g-name-owner', Lang.bind(this, function() { DBus.session.watch_name('org.gnome.Shell.CalendarServer',
if (this._dbusProxy.g_name_owner) false, // do not launch a name-owner if none exists
this._onNameAppeared(); Lang.bind(this, this._onNameAppeared),
else Lang.bind(this, this._onNameVanished));
this._onNameVanished();
}));
}, },
_resetCache: function() { _resetCache: function() {
@ -278,7 +273,7 @@ DBusEventSource.prototype = {
this._loadEvents(false); this._loadEvents(false);
}, },
_onEventsReceived: function([appointments]) { _onEventsReceived: function(appointments) {
let newEvents = []; let newEvents = [];
if (appointments != null) { if (appointments != null) {
for (let n = 0; n < appointments.length; n++) { for (let n = 0; n < appointments.length; n++) {
@ -301,9 +296,9 @@ DBusEventSource.prototype = {
_loadEvents: function(forceReload) { _loadEvents: function(forceReload) {
if (this._curRequestBegin && this._curRequestEnd){ if (this._curRequestBegin && this._curRequestEnd){
let callFlags = Gio.DBusCallFlags.NO_AUTO_START; let callFlags = 0;
if (forceReload) if (forceReload)
callFlags = Gio.DBusCallFlags.NONE; callFlags |= DBus.CALL_FLAG_START;
this._dbusProxy.GetEventsRemote(this._curRequestBegin.getTime() / 1000, this._dbusProxy.GetEventsRemote(this._curRequestBegin.getTime() / 1000,
this._curRequestEnd.getTime() / 1000, this._curRequestEnd.getTime() / 1000,
forceReload, forceReload,

View File

@ -187,7 +187,7 @@ CtrlAltTabPopup.prototype = {
let [childMinHeight, childNaturalHeight] = this._switcher.actor.get_preferred_height(primary.width - hPadding); let [childMinHeight, childNaturalHeight] = this._switcher.actor.get_preferred_height(primary.width - hPadding);
let [childMinWidth, childNaturalWidth] = this._switcher.actor.get_preferred_width(childNaturalHeight); let [childMinWidth, childNaturalWidth] = this._switcher.actor.get_preferred_width(childNaturalHeight);
childBox.x1 = Math.max(primary.x + leftPadding, primary.x + Math.floor((primary.width - childNaturalWidth) / 2)); childBox.x1 = Math.max(primary.x + leftPadding, primary.x + Math.floor((primary.width - childNaturalWidth) / 2));
childBox.x2 = Math.min(primary.x + primary.width - hPadding, childBox.x1 + childNaturalWidth); childBox.x2 = Math.min(primary.width - hPadding, childBox.x1 + childNaturalWidth);
childBox.y1 = primary.y + Math.floor((primary.height - childNaturalHeight) / 2); childBox.y1 = primary.y + Math.floor((primary.height - childNaturalHeight) / 2);
childBox.y2 = childBox.y1 + childNaturalHeight; childBox.y2 = childBox.y1 + childNaturalHeight;
this._switcher.actor.allocate(childBox, flags); this._switcher.actor.allocate(childBox, flags);

View File

@ -231,7 +231,7 @@ DragPlaceholderItem.prototype = {
_init: function() { _init: function() {
DashItemContainer.prototype._init.call(this); DashItemContainer.prototype._init.call(this);
this.setChild(new St.Bin({ style_class: 'placeholder' })); this.setChild(new St.Bin({ style_class: 'dash-placeholder' }));
} }
}; };

View File

@ -18,19 +18,19 @@
* 02111-1307, USA. * 02111-1307, USA.
*/ */
const DBus = imports.dbus;
const Lang = imports.lang; const Lang = imports.lang;
const Signals = imports.signals; const Signals = imports.signals;
const AccountsService = imports.gi.AccountsService; const AccountsService = imports.gi.AccountsService;
const Clutter = imports.gi.Clutter; const Clutter = imports.gi.Clutter;
const Gio = imports.gi.Gio;
const GLib = imports.gi.GLib; const GLib = imports.gi.GLib;
const Gtk = imports.gi.Gtk; const Gtk = imports.gi.Gtk;
const Pango = imports.gi.Pango; const Pango = imports.gi.Pango;
const St = imports.gi.St; const St = imports.gi.St;
const Shell = imports.gi.Shell; const Shell = imports.gi.Shell;
const GnomeSession = imports.misc.gnomeSession; const GnomeSession = imports.misc.gnomeSession
const Lightbox = imports.ui.lightbox; const Lightbox = imports.ui.lightbox;
const Main = imports.ui.main; const Main = imports.ui.main;
const ModalDialog = imports.ui.modalDialog; const ModalDialog = imports.ui.modalDialog;
@ -43,23 +43,22 @@ const _DIALOG_ICON_SIZE = 32;
const GSM_SESSION_MANAGER_LOGOUT_FORCE = 2; const GSM_SESSION_MANAGER_LOGOUT_FORCE = 2;
const EndSessionDialogIface = <interface name="org.gnome.SessionManager.EndSessionDialog"> const EndSessionDialogIface = {
<method name="Open"> name: 'org.gnome.SessionManager.EndSessionDialog',
<arg type="u" direction="in" /> methods: [{ name: 'Open',
<arg type="u" direction="in" /> inSignature: 'uuuao',
<arg type="u" direction="in" /> outSignature: ''
<arg type="ao" direction="in" /> }
</method> ],
<signal name="ConfirmedLogout" /> signals: [{ name: 'Canceled',
<signal name="ConfirmedReboot" /> inSignature: '',
<signal name="ConfirmedShutdown" /> }],
<signal name="Canceled" /> properties: []
<signal name="Closed" /> };
</interface>;
const logoutDialogContent = { const logoutDialogContent = {
subjectWithUser: C_("title", "Log Out %s"), subjectWithUser: _("Log Out %s"),
subject: C_("title", "Log Out"), subject: _("Log Out"),
inhibitedDescription: _("Click Log Out to quit these applications and log out of the system."), inhibitedDescription: _("Click Log Out to quit these applications and log out of the system."),
uninhibitedDescriptionWithUser: function(user, seconds) { uninhibitedDescriptionWithUser: function(user, seconds) {
return ngettext("%s will be logged out automatically in %d second.", return ngettext("%s will be logged out automatically in %d second.",
@ -73,12 +72,12 @@ const logoutDialogContent = {
}, },
endDescription: _("Logging out of the system."), endDescription: _("Logging out of the system."),
confirmButtons: [{ signal: 'ConfirmedLogout', confirmButtons: [{ signal: 'ConfirmedLogout',
label: C_("button", "Log Out") }], label: _("Log Out") }],
iconStyleClass: 'end-session-dialog-logout-icon' iconStyleClass: 'end-session-dialog-logout-icon'
}; };
const shutdownDialogContent = { const shutdownDialogContent = {
subject: C_("title", "Power Off"), subject: _("Power Off"),
inhibitedDescription: _("Click Power Off to quit these applications and power off the system."), inhibitedDescription: _("Click Power Off to quit these applications and power off the system."),
uninhibitedDescription: function(seconds) { uninhibitedDescription: function(seconds) {
return ngettext("The system will power off automatically in %d second.", return ngettext("The system will power off automatically in %d second.",
@ -87,15 +86,15 @@ const shutdownDialogContent = {
}, },
endDescription: _("Powering off the system."), endDescription: _("Powering off the system."),
confirmButtons: [{ signal: 'ConfirmedReboot', confirmButtons: [{ signal: 'ConfirmedReboot',
label: C_("button", "Restart") }, label: _("Restart") },
{ signal: 'ConfirmedShutdown', { signal: 'ConfirmedShutdown',
label: C_("button", "Power Off") }], label: _("Power Off") }],
iconName: 'system-shutdown', iconName: 'system-shutdown',
iconStyleClass: 'end-session-dialog-shutdown-icon' iconStyleClass: 'end-session-dialog-shutdown-icon'
}; };
const restartDialogContent = { const restartDialogContent = {
subject: C_("title", "Restart"), subject: _("Restart"),
inhibitedDescription: _("Click Restart to quit these applications and restart the system."), inhibitedDescription: _("Click Restart to quit these applications and restart the system."),
uninhibitedDescription: function(seconds) { uninhibitedDescription: function(seconds) {
return ngettext("The system will restart automatically in %d second.", return ngettext("The system will restart automatically in %d second.",
@ -104,7 +103,7 @@ const restartDialogContent = {
}, },
endDescription: _("Restarting the system."), endDescription: _("Restarting the system."),
confirmButtons: [{ signal: 'ConfirmedReboot', confirmButtons: [{ signal: 'ConfirmedReboot',
label: C_("button", "Restart") }], label: _("Restart") }],
iconName: 'system-shutdown', iconName: 'system-shutdown',
iconStyleClass: 'end-session-dialog-shutdown-icon' iconStyleClass: 'end-session-dialog-shutdown-icon'
}; };
@ -233,6 +232,8 @@ function _setLabelText(label, text) {
function EndSessionDialog() { function EndSessionDialog() {
if (_endSessionDialog == null) { if (_endSessionDialog == null) {
this._init(); this._init();
DBus.session.exportObject('/org/gnome/SessionManager/EndSessionDialog',
this);
_endSessionDialog = this; _endSessionDialog = this;
} }
@ -325,9 +326,6 @@ EndSessionDialog.prototype = {
if (this._applicationList.get_children().length == 0) if (this._applicationList.get_children().length == 0)
scrollView.hide(); scrollView.hide();
})); }));
this._dbusImpl = Gio.DBusExportedObject.wrapJSObject(EndSessionDialogIface, this);
this._dbusImpl.export(Gio.DBus.session, '/org/gnome/SessionManager/EndSessionDialog');
}, },
_onDestroy: function() { _onDestroy: function() {
@ -442,19 +440,25 @@ EndSessionDialog.prototype = {
close: function() { close: function() {
ModalDialog.ModalDialog.prototype.close.call(this); ModalDialog.ModalDialog.prototype.close.call(this);
this._dbusImpl.emit_signal('Closed', null); DBus.session.emit_signal('/org/gnome/SessionManager/EndSessionDialog',
'org.gnome.SessionManager.EndSessionDialog',
'Closed', '', []);
}, },
cancel: function() { cancel: function() {
this._stopTimer(); this._stopTimer();
this._dbusImpl.emit_signal('Canceled', null); DBus.session.emit_signal('/org/gnome/SessionManager/EndSessionDialog',
'org.gnome.SessionManager.EndSessionDialog',
'Canceled', '', []);
this.close(global.get_current_time()); this.close(global.get_current_time());
}, },
_confirm: function(signal) { _confirm: function(signal) {
this._fadeOutDialog(); this._fadeOutDialog();
this._stopTimer(); this._stopTimer();
this._dbusImpl.emit_signal(signal, null); DBus.session.emit_signal('/org/gnome/SessionManager/EndSessionDialog',
'org.gnome.SessionManager.EndSessionDialog',
signal, '', []);
}, },
_onOpened: function() { _onOpened: function() {
@ -506,41 +510,39 @@ EndSessionDialog.prototype = {
this._updateContent(); this._updateContent();
}, },
OpenAsync: function(parameters, invocation) { OpenAsync: function(type, timestamp, totalSecondsToStayOpen, inhibitorObjectPaths, callback) {
let [type, timestamp, totalSecondsToStayOpen, inhibitorObjectPaths] = parameters;
this._totalSecondsToStayOpen = totalSecondsToStayOpen; this._totalSecondsToStayOpen = totalSecondsToStayOpen;
this._inhibitors = []; this._inhibitors = [];
this._applicationList.destroy_children(); this._applicationList.destroy_children();
this._type = type; this._type = type;
if (!(this._type in DialogContent)) { if (!(this._type in DialogContent))
invocation.report_dbus_error('org.gnome.Shell.ModalDialog.TypeError', throw new DBus.DBusError('org.gnome.Shell.ModalDialog.TypeError',
"Unknown dialog type requested"); "Unknown dialog type requested");
return;
}
for (let i = 0; i < inhibitorObjectPaths.length; i++) { for (let i = 0; i < inhibitorObjectPaths.length; i++) {
let inhibitor = new GnomeSession.Inhibitor(inhibitorObjectPaths[i], Lang.bind(this, function(proxy, error) { let inhibitor = new GnomeSession.Inhibitor(inhibitorObjectPaths[i]);
this._onInhibitorLoaded(proxy);
}));
inhibitor.connect('is-loaded',
Lang.bind(this, function() {
this._onInhibitorLoaded(inhibitor);
}));
this._inhibitors.push(inhibitor); this._inhibitors.push(inhibitor);
} }
this._updateButtons(); this._updateButtons();
if (!this.open(timestamp)) { if (!this.open(timestamp))
invocation.report_dbus_error('org.gnome.Shell.ModalDialog.GrabError', throw new DBus.DBusError('org.gnome.Shell.ModalDialog.GrabError',
"Cannot grab pointer and keyboard"); "Cannot grab pointer and keyboard");
return;
}
this._updateContent(); this._updateContent();
let signalId = this.connect('opened', let signalId = this.connect('opened',
Lang.bind(this, function() { Lang.bind(this, function() {
invocation.return_value(null); callback();
this.disconnect(signalId); this.disconnect(signalId);
})); }));
} }
}; };
DBus.conformExport(EndSessionDialog.prototype, EndSessionDialogIface);

View File

@ -22,7 +22,6 @@ const ExtensionState = {
ERROR: 3, ERROR: 3,
OUT_OF_DATE: 4, OUT_OF_DATE: 4,
DOWNLOADING: 5, DOWNLOADING: 5,
INITIALIZED: 6,
// Used as an error state for operations on unknown extensions, // Used as an error state for operations on unknown extensions,
// should never be in a real extensionMeta object. // should never be in a real extensionMeta object.
@ -63,9 +62,6 @@ const extensionMeta = {};
const extensions = {}; const extensions = {};
// Maps uuid -> extension state object (returned from init()) // Maps uuid -> extension state object (returned from init())
const extensionStateObjs = {}; const extensionStateObjs = {};
// Contains the order that extensions were enabled in.
const extensionOrder = [];
// Arrays of uuids // Arrays of uuids
var enabledExtensions; var enabledExtensions;
// GFile for user extensions // GFile for user extensions
@ -216,27 +212,6 @@ function disableExtension(uuid) {
let extensionState = extensionStateObjs[uuid]; let extensionState = extensionStateObjs[uuid];
// "Rebase" the extension order by disabling and then enabling extensions
// in order to help prevent conflicts.
// Example:
// order = [A, B, C, D, E]
// user disables C
// this should: disable E, disable D, disable C, enable D, enable E
let orderIdx = extensionOrder.indexOf(uuid);
let order = extensionOrder.slice(orderIdx + 1);
let orderReversed = order.slice().reverse();
for (let i = 0; i < orderReversed.length; i++) {
let uuid = orderReversed[i];
try {
extensionStateObjs[uuid].disable();
} catch(e) {
logExtensionError(uuid, e.toString());
}
}
try { try {
extensionState.disable(); extensionState.disable();
} catch(e) { } catch(e) {
@ -244,17 +219,6 @@ function disableExtension(uuid) {
return; return;
} }
for (let i = 0; i < order.length; i++) {
let uuid = order[i];
try {
extensionStateObjs[uuid].enable();
} catch(e) {
logExtensionError(uuid, e.toString());
}
}
extensionOrder.splice(orderIdx, 1);
meta.state = ExtensionState.DISABLED; meta.state = ExtensionState.DISABLED;
_signals.emit('extension-state-changed', meta); _signals.emit('extension-state-changed', meta);
} }
@ -264,18 +228,11 @@ function enableExtension(uuid) {
if (!meta) if (!meta)
return; return;
if (meta.state == ExtensionState.INITIALIZED) {
loadExtension(meta.dir, meta.type, true);
return;
}
if (meta.state != ExtensionState.DISABLED) if (meta.state != ExtensionState.DISABLED)
return; return;
let extensionState = extensionStateObjs[uuid]; let extensionState = extensionStateObjs[uuid];
extensionOrder.push(uuid);
try { try {
extensionState.enable(); extensionState.enable();
} catch(e) { } catch(e) {
@ -297,7 +254,7 @@ function logExtensionError(uuid, message, state) {
state: state }); state: state });
} }
function loadExtension(dir, type, enabled) { function loadExtension(dir, enabled, type) {
let info; let info;
let uuid = dir.get_basename(); let uuid = dir.get_basename();
@ -346,9 +303,14 @@ function loadExtension(dir, type, enabled) {
return; return;
} }
if (!versionCheck(meta['shell-version'], Config.PACKAGE_VERSION) ||
(meta['js-version'] && !versionCheck(meta['js-version'], Config.GJS_VERSION))) {
logExtensionError(uuid, 'extension is not compatible with current GNOME Shell and/or GJS version');
return;
}
extensionMeta[uuid] = meta; extensionMeta[uuid] = meta;
meta.type = type; meta.type = type;
meta.dir = dir;
meta.path = dir.get_path(); meta.path = dir.get_path();
meta.error = ''; meta.error = '';
@ -362,11 +324,6 @@ function loadExtension(dir, type, enabled) {
return; return;
} }
if (!enabled) {
meta.state = ExtensionState.INITIALIZED;
return;
}
let extensionJs = dir.get_child('extension.js'); let extensionJs = dir.get_child('extension.js');
if (!extensionJs.query_exists(null)) { if (!extensionJs.query_exists(null)) {
logExtensionError(uuid, 'Missing extension.js'); logExtensionError(uuid, 'Missing extension.js');
@ -426,7 +383,8 @@ function loadExtension(dir, type, enabled) {
meta.state = ExtensionState.DISABLED; meta.state = ExtensionState.DISABLED;
enableExtension(uuid); if (enabled)
enableExtension(uuid);
_signals.emit('extension-loaded', meta.uuid); _signals.emit('extension-loaded', meta.uuid);
_signals.emit('extension-state-changed', meta); _signals.emit('extension-state-changed', meta);
@ -486,7 +444,7 @@ function _loadExtensionsIn(dir, type) {
let name = info.get_name(); let name = info.get_name();
let child = dir.get_child(name); let child = dir.get_child(name);
let enabled = enabledExtensions.indexOf(name) != -1; let enabled = enabledExtensions.indexOf(name) != -1;
loadExtension(child, type, enabled); loadExtension(child, enabled, type);
} }
fileEnum.close(null); fileEnum.close(null);
} }

View File

@ -147,6 +147,11 @@ BaseIcon.prototype = {
size = found ? len : ICON_SIZE; size = found ? len : ICON_SIZE;
} }
// don't create icons unnecessarily
if (size == this.iconSize &&
this._iconBin.child)
return;
this._createIconTexture(size); this._createIconTexture(size);
} }
}; };

View File

@ -289,7 +289,7 @@ Keyboard.prototype = {
if (focus && (focus._extended_keys || (focus._key && focus._key.extended_key))) if (focus && (focus._extended_keys || (focus._key && focus._key.extended_key)))
return; return;
let time = global.get_current_time(); let time = global.current_event_time();
if (focus instanceof Clutter.Text) if (focus instanceof Clutter.Text)
this.Show(time); this.Show(time);
else else

View File

@ -587,13 +587,12 @@ Chrome.prototype = {
this._screenSaverActive = false; this._screenSaverActive = false;
this._screenSaverProxy = new ScreenSaver.ScreenSaverProxy(); this._screenSaverProxy = new ScreenSaver.ScreenSaverProxy();
this._screenSaverProxy.connectSignal('ActiveChanged', Lang.bind(this, function(proxy, senderName, [isActive]) { this._screenSaverProxy.connect('ActiveChanged', Lang.bind(this, this._onScreenSaverActiveChanged));
this._onScreenSaverActiveChanged(isActive); this._screenSaverProxy.GetActiveRemote(Lang.bind(this,
})); function(result, err) {
this._screenSaverProxy.GetActiveRemote(Lang.bind(this, function(result, err) { if (!err)
if (!err) this._onScreenSaverActiveChanged(this._screenSaverProxy, result);
this._onScreenSaverActiveChanged(result[0]); }));
}));
this._relayout(); this._relayout();
}, },
@ -734,7 +733,7 @@ Chrome.prototype = {
this._queueUpdateRegions(); this._queueUpdateRegions();
}, },
_onScreenSaverActiveChanged: function(screenSaverActive) { _onScreenSaverActiveChanged: function(proxy, screenSaverActive) {
this._screenSaverActive = screenSaverActive; this._screenSaverActive = screenSaverActive;
this._updateVisibility(); this._updateVisibility();
this._queueUpdateRegions(); this._queueUpdateRegions();

View File

@ -2,6 +2,7 @@
const Clutter = imports.gi.Clutter; const Clutter = imports.gi.Clutter;
const Cogl = imports.gi.Cogl; const Cogl = imports.gi.Cogl;
const GConf = imports.gi.GConf;
const GLib = imports.gi.GLib; const GLib = imports.gi.GLib;
const Gio = imports.gi.Gio; const Gio = imports.gi.Gio;
const Gtk = imports.gi.Gtk; const Gtk = imports.gi.Gtk;
@ -19,7 +20,6 @@ const Link = imports.ui.link;
const ShellEntry = imports.ui.shellEntry; const ShellEntry = imports.ui.shellEntry;
const Tweener = imports.ui.tweener; const Tweener = imports.ui.tweener;
const Main = imports.ui.main; const Main = imports.ui.main;
const JsParse = imports.misc.jsParse;
/* Imports...feel free to add here as needed */ /* Imports...feel free to add here as needed */
var commandHeader = 'const Clutter = imports.gi.Clutter; ' + var commandHeader = 'const Clutter = imports.gi.Clutter; ' +
@ -41,86 +41,6 @@ var commandHeader = 'const Clutter = imports.gi.Clutter; ' +
'const r = Lang.bind(Main.lookingGlass, Main.lookingGlass.getResult); '; 'const r = Lang.bind(Main.lookingGlass, Main.lookingGlass.getResult); ';
const HISTORY_KEY = 'looking-glass-history'; const HISTORY_KEY = 'looking-glass-history';
// Time between tabs for them to count as a double-tab event
const AUTO_COMPLETE_DOUBLE_TAB_DELAY = 500;
const AUTO_COMPLETE_SHOW_COMPLETION_ANIMATION_DURATION = 0.2;
const AUTO_COMPLETE_GLOBAL_KEYWORDS = _getAutoCompleteGlobalKeywords();
function _getAutoCompleteGlobalKeywords() {
const keywords = ['true', 'false', 'null', 'new'];
// Don't add the private properties of window (i.e., ones starting with '_')
const windowProperties = Object.getOwnPropertyNames(window).filter(function(a){ return a.charAt(0) != '_' });
const headerProperties = JsParse.getDeclaredConstants(commandHeader);
return keywords.concat(windowProperties).concat(headerProperties);
}
function AutoComplete(entry) {
this._init(entry);
}
AutoComplete.prototype = {
_init: function(entry) {
this._entry = entry;
this._entry.connect('key-press-event', Lang.bind(this, this._entryKeyPressEvent));
this._lastTabTime = global.get_current_time();
},
_processCompletionRequest: function(event) {
if (event.completions.length == 0) {
return;
}
// Unique match = go ahead and complete; multiple matches + single tab = complete the common starting string;
// multiple matches + double tab = emit a suggest event with all possible options
if (event.completions.length == 1) {
this.additionalCompletionText(event.completions[0], event.attrHead);
this.emit('completion', { completion: event.completions[0], type: 'whole-word' });
} else if (event.completions.length > 1 && event.tabType === 'single') {
let commonPrefix = JsParse.getCommonPrefix(event.completions);
if (commonPrefix.length > 0) {
this.additionalCompletionText(commonPrefix, event.attrHead);
this.emit('completion', { completion: commonPrefix, type: 'prefix' });
this.emit('suggest', { completions: event.completions});
}
} else if (event.completions.length > 1 && event.tabType === 'double') {
this.emit('suggest', { completions: event.completions});
}
},
_entryKeyPressEvent: function(actor, event) {
let cursorPos = this._entry.clutter_text.get_cursor_position();
let text = this._entry.get_text();
if (cursorPos != -1) {
text = text.slice(0, cursorPos);
}
if (event.get_key_symbol() == Clutter.Tab) {
let [completions, attrHead] = JsParse.getCompletions(text, commandHeader, AUTO_COMPLETE_GLOBAL_KEYWORDS);
let currTime = global.get_current_time();
if ((currTime - this._lastTabTime) < AUTO_COMPLETE_DOUBLE_TAB_DELAY) {
this._processCompletionRequest({ tabType: 'double',
completions: completions,
attrHead: attrHead });
} else {
this._processCompletionRequest({ tabType: 'single',
completions: completions,
attrHead: attrHead });
}
this._lastTabTime = currTime;
}
},
// Insert characters of text not already included in head at cursor position. i.e., if text="abc" and head="a",
// the string "bc" will be appended to this._entry
additionalCompletionText: function(text, head) {
let additionalCompletionText = text.slice(head.length);
let cursorPos = this._entry.clutter_text.get_cursor_position();
this._entry.clutter_text.insert_text(additionalCompletionText, cursorPos);
}
};
Signals.addSignalMethods(AutoComplete.prototype);
function Notebook() { function Notebook() {
this._init(); this._init();
@ -231,24 +151,6 @@ Notebook.prototype = {
return; return;
let vAdjust = tabData.scrollView.vscroll.adjustment; let vAdjust = tabData.scrollView.vscroll.adjustment;
vAdjust.value = vAdjust.upper - vAdjust.page_size; vAdjust.value = vAdjust.upper - vAdjust.page_size;
},
nextTab: function() {
let nextIndex = this._selectedIndex;
if (nextIndex < this._tabs.length - 1) {
++nextIndex;
}
this.selectIndex(nextIndex);
},
prevTab: function() {
let prevIndex = this._selectedIndex;
if (prevIndex > 0) {
--prevIndex;
}
this.selectIndex(prevIndex);
} }
}; };
Signals.addSignalMethods(Notebook.prototype); Signals.addSignalMethods(Notebook.prototype);
@ -784,40 +686,11 @@ Extensions.prototype = {
Main.lookingGlass.close(); Main.lookingGlass.close();
}, },
_onViewErrors: function (actor) {
let meta = actor._extensionMeta;
let shouldShow = !actor._isShowing;
if (shouldShow) {
let errors = ExtensionSystem.errors[meta.uuid];
let errorDisplay = new St.BoxLayout({ vertical: true });
if (errors && errors.length) {
for (let i = 0; i < errors.length; i ++)
errorDisplay.add(new St.Label({ text: errors[i] }));
} else {
/* Translators: argument is an extension UUID. */
let message = _("%s has not emitted any errors.").format(meta.uuid);
errorDisplay.add(new St.Label({ text: message }));
}
actor._errorDisplay = errorDisplay;
actor._parentBox.add(errorDisplay);
actor.label = _("Hide Errors");
} else {
actor._errorDisplay.destroy();
actor._errorDisplay = null;
actor.label = _("Show Errors");
}
actor._isShowing = shouldShow;
},
_stateToString: function(extensionState) { _stateToString: function(extensionState) {
switch (extensionState) { switch (extensionState) {
case ExtensionSystem.ExtensionState.ENABLED: case ExtensionSystem.ExtensionState.ENABLED:
return _("Enabled"); return _("Enabled");
case ExtensionSystem.ExtensionState.DISABLED: case ExtensionSystem.ExtensionState.DISABLED:
case ExtensionSystem.ExtensionState.INITIALIZED:
return _("Disabled"); return _("Disabled");
case ExtensionSystem.ExtensionState.ERROR: case ExtensionSystem.ExtensionState.ERROR:
return _("Error"); return _("Error");
@ -857,13 +730,6 @@ Extensions.prototype = {
metaBox.add(webpage.actor); metaBox.add(webpage.actor);
} }
let viewerrors = new Link.Link({ label: _("Show Errors") });
viewerrors.actor._extensionMeta = meta;
viewerrors.actor._parentBox = box;
viewerrors.actor._isShowing = false;
viewerrors.actor.connect('clicked', Lang.bind(this, this._onViewErrors));
metaBox.add(viewerrors.actor);
return box; return box;
} }
}; };
@ -944,15 +810,15 @@ LookingGlass.prototype = {
this._resultsArea = new St.BoxLayout({ name: 'ResultsArea', vertical: true }); this._resultsArea = new St.BoxLayout({ name: 'ResultsArea', vertical: true });
this._evalBox.add(this._resultsArea, { expand: true }); this._evalBox.add(this._resultsArea, { expand: true });
this._entryArea = new St.BoxLayout({ name: 'EntryArea' }); let entryArea = new St.BoxLayout({ name: 'EntryArea' });
this._evalBox.add_actor(this._entryArea); this._evalBox.add_actor(entryArea);
let label = new St.Label({ text: 'js>>> ' }); let label = new St.Label({ text: 'js>>> ' });
this._entryArea.add(label); entryArea.add(label);
this._entry = new St.Entry({ can_focus: true }); this._entry = new St.Entry({ can_focus: true });
ShellEntry.addContextMenu(this._entry); ShellEntry.addContextMenu(this._entry);
this._entryArea.add(this._entry, { expand: true }); entryArea.add(this._entry, { expand: true });
this._windowList = new WindowList(); this._windowList = new WindowList();
this._windowList.connect('selected', Lang.bind(this, function(list, window) { this._windowList.connect('selected', Lang.bind(this, function(list, window) {
@ -971,9 +837,6 @@ LookingGlass.prototype = {
notebook.appendPage('Extensions', this._extensions.actor); notebook.appendPage('Extensions', this._extensions.actor);
this._entry.clutter_text.connect('activate', Lang.bind(this, function (o, e) { this._entry.clutter_text.connect('activate', Lang.bind(this, function (o, e) {
// Hide any completions we are currently showing
this._hideCompletions();
let text = o.get_text(); let text = o.get_text();
// Ensure we don't get newlines in the command; the history file is // Ensure we don't get newlines in the command; the history file is
// newline-separated. // newline-separated.
@ -989,17 +852,6 @@ LookingGlass.prototype = {
this._history = new History.HistoryManager({ gsettingsKey: HISTORY_KEY, this._history = new History.HistoryManager({ gsettingsKey: HISTORY_KEY,
entry: this._entry.clutter_text }); entry: this._entry.clutter_text });
this._autoComplete = new AutoComplete(this._entry);
this._autoComplete.connect('suggest', Lang.bind(this, function(a,e) {
this._showCompletions(e.completions);
}));
// If a completion is completed unambiguously, the currently-displayed completion
// suggestions become irrelevant.
this._autoComplete.connect('completion', Lang.bind(this, function(a,e) {
if (e.type == 'whole-word')
this._hideCompletions();
}));
this._resize(); this._resize();
}, },
@ -1044,59 +896,6 @@ LookingGlass.prototype = {
this._notebook.scrollToBottom(0); this._notebook.scrollToBottom(0);
}, },
_showCompletions: function(completions) {
if (!this._completionActor) {
let actor = new St.BoxLayout({ vertical: true });
this._completionText = new St.Label({ name: 'LookingGlassAutoCompletionText', style_class: 'lg-completions-text' });
this._completionText.clutter_text.ellipsize = Pango.EllipsizeMode.NONE;
this._completionText.clutter_text.line_wrap = true;
actor.add(this._completionText);
let line = new Clutter.Rectangle();
let padBin = new St.Bin({ x_fill: true, y_fill: true });
padBin.add_actor(line);
actor.add(padBin);
this._completionActor = actor;
this._evalBox.insert_before(this._completionActor, this._entryArea);
}
this._completionText.set_text(completions.join(', '));
// Setting the height to -1 allows us to get its actual preferred height rather than
// whatever was last given in set_height by Tweener.
this._completionActor.set_height(-1);
let [minHeight, naturalHeight] = this._completionText.get_preferred_height(this._resultsArea.get_width());
// Don't reanimate if we are already visible
if (this._completionActor.visible) {
this._completionActor.height = naturalHeight;
} else {
this._completionActor.show();
Tweener.removeTweens(this._completionActor);
Tweener.addTween(this._completionActor, { time: AUTO_COMPLETE_SHOW_COMPLETION_ANIMATION_DURATION / St.get_slow_down_factor(),
transition: 'easeOutQuad',
height: naturalHeight,
opacity: 255
});
}
},
_hideCompletions: function() {
if (this._completionActor) {
Tweener.removeTweens(this._completionActor);
Tweener.addTween(this._completionActor, { time: AUTO_COMPLETE_SHOW_COMPLETION_ANIMATION_DURATION / St.get_slow_down_factor(),
transition: 'easeOutQuad',
height: 0,
opacity: 0,
onComplete: Lang.bind(this, function () {
this._completionActor.hide();
})
});
}
},
_evaluate : function(command) { _evaluate : function(command) {
this._history.addItem(command); this._history.addItem(command);
@ -1161,7 +960,6 @@ LookingGlass.prototype = {
// Handle key events which are relevant for all tabs of the LookingGlass // Handle key events which are relevant for all tabs of the LookingGlass
_globalKeyPressEvent : function(actor, event) { _globalKeyPressEvent : function(actor, event) {
let symbol = event.get_key_symbol(); let symbol = event.get_key_symbol();
let modifierState = Shell.get_event_state(event);
if (symbol == Clutter.Escape) { if (symbol == Clutter.Escape) {
if (this._objInspector.actor.visible) { if (this._objInspector.actor.visible) {
this._objInspector.close(); this._objInspector.close();
@ -1170,14 +968,6 @@ LookingGlass.prototype = {
} }
return true; return true;
} }
// Ctrl+PgUp and Ctrl+PgDown switches tabs in the notebook view
if (modifierState & Clutter.ModifierType.CONTROL_MASK) {
if (symbol == Clutter.KEY_Page_Up) {
this._notebook.prevTab();
} else if (symbol == Clutter.KEY_Page_Down) {
this._notebook.nextTab();
}
}
return false; return false;
}, },

View File

@ -1,7 +1,6 @@
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*- // -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
const Clutter = imports.gi.Clutter; const Clutter = imports.gi.Clutter;
const GDesktopEnums = imports.gi.GDesktopEnums;
const Gio = imports.gi.Gio; const Gio = imports.gi.Gio;
const Shell = imports.gi.Shell; const Shell = imports.gi.Shell;
const St = imports.gi.St; const St = imports.gi.St;
@ -13,6 +12,22 @@ const Main = imports.ui.main;
const MagnifierDBus = imports.ui.magnifierDBus; const MagnifierDBus = imports.ui.magnifierDBus;
const Params = imports.misc.params; const Params = imports.misc.params;
// Keep enums in sync with GSettings schemas
const MouseTrackingMode = {
NONE: 0,
CENTERED: 1,
PROPORTIONAL: 2,
PUSH: 3
};
const ScreenPosition = {
NONE: 0,
FULL_SCREEN: 1,
TOP_HALF: 2,
BOTTOM_HALF: 3,
LEFT_HALF: 4,
RIGHT_HALF: 5
};
const MOUSE_POLL_FREQUENCY = 50; const MOUSE_POLL_FREQUENCY = 50;
const CROSSHAIRS_CLIP_SIZE = [100, 100]; const CROSSHAIRS_CLIP_SIZE = [100, 100];
@ -505,7 +520,7 @@ Magnifier.prototype = {
if (this._zoomRegions.length) { if (this._zoomRegions.length) {
let position = this._settings.get_enum(SCREEN_POSITION_KEY); let position = this._settings.get_enum(SCREEN_POSITION_KEY);
this._zoomRegions[0].setScreenPosition(position); this._zoomRegions[0].setScreenPosition(position);
if (position != GDesktopEnums.MagnifierScreenPosition.FULL_SCREEN) if (position != ScreenPosition.FULL_SCREEN)
this._updateLensMode(); this._updateLensMode();
} }
}, },
@ -554,10 +569,10 @@ ZoomRegion.prototype = {
_init: function(magnifier, mouseSourceActor) { _init: function(magnifier, mouseSourceActor) {
this._magnifier = magnifier; this._magnifier = magnifier;
this._mouseTrackingMode = GDesktopEnums.MagnifierMouseTrackingMode.NONE; this._mouseTrackingMode = MouseTrackingMode.NONE;
this._clampScrollingAtEdges = false; this._clampScrollingAtEdges = false;
this._lensMode = false; this._lensMode = false;
this._screenPosition = GDesktopEnums.MagnifierScreenPosition.FULL_SCREEN; this._screenPosition = ScreenPosition.FULL_SCREEN;
this._magView = null; this._magView = null;
this._uiGroupClone = null; this._uiGroupClone = null;
@ -632,8 +647,7 @@ ZoomRegion.prototype = {
* @mode: One of the enum MouseTrackingMode values. * @mode: One of the enum MouseTrackingMode values.
*/ */
setMouseTrackingMode: function(mode) { setMouseTrackingMode: function(mode) {
if (mode >= GDesktopEnums.MagnifierMouseTrackingMode.NONE && if (mode >= MouseTrackingMode.NONE && mode <= MouseTrackingMode.PUSH)
mode <= GDesktopEnums.MagnifierMouseTrackingMode.PUSH)
this._mouseTrackingMode = mode; this._mouseTrackingMode = mode;
}, },
@ -654,7 +668,7 @@ ZoomRegion.prototype = {
*/ */
setViewPort: function(viewPort) { setViewPort: function(viewPort) {
this._setViewPort(viewPort); this._setViewPort(viewPort);
this._screenPosition = GDesktopEnums.MagnifierScreenPosition.NONE; this._screenPosition = ScreenPosition.NONE;
}, },
/** /**
@ -736,7 +750,7 @@ ZoomRegion.prototype = {
viewPort.width = global.screen_width; viewPort.width = global.screen_width;
viewPort.height = global.screen_height/2; viewPort.height = global.screen_height/2;
this._setViewPort(viewPort); this._setViewPort(viewPort);
this._screenPosition = GDesktopEnums.MagnifierScreenPosition.TOP_HALF; this._screenPosition = ScreenPosition.TOP_HALF;
}, },
/** /**
@ -750,7 +764,7 @@ ZoomRegion.prototype = {
viewPort.width = global.screen_width; viewPort.width = global.screen_width;
viewPort.height = global.screen_height/2; viewPort.height = global.screen_height/2;
this._setViewPort(viewPort); this._setViewPort(viewPort);
this._screenPosition = GDesktopEnums.MagnifierScreenPosition.BOTTOM_HALF; this._screenPosition = ScreenPosition.BOTTOM_HALF;
}, },
/** /**
@ -764,7 +778,7 @@ ZoomRegion.prototype = {
viewPort.width = global.screen_width/2; viewPort.width = global.screen_width/2;
viewPort.height = global.screen_height; viewPort.height = global.screen_height;
this._setViewPort(viewPort); this._setViewPort(viewPort);
this._screenPosition = GDesktopEnums.MagnifierScreenPosition.LEFT_HALF; this._screenPosition = ScreenPosition.LEFT_HALF;
}, },
/** /**
@ -778,7 +792,7 @@ ZoomRegion.prototype = {
viewPort.width = global.screen_width/2; viewPort.width = global.screen_width/2;
viewPort.height = global.screen_height; viewPort.height = global.screen_height;
this._setViewPort(viewPort); this._setViewPort(viewPort);
this._screenPosition = GDesktopEnums.MagnifierScreenPosition.RIGHT_HALF; this._screenPosition = ScreenPosition.RIGHT_HALF;
}, },
/** /**
@ -794,7 +808,7 @@ ZoomRegion.prototype = {
viewPort.height = global.screen_height; viewPort.height = global.screen_height;
this.setViewPort(viewPort); this.setViewPort(viewPort);
this._screenPosition = GDesktopEnums.MagnifierScreenPosition.FULL_SCREEN; this._screenPosition = ScreenPosition.FULL_SCREEN;
}, },
/** /**
@ -807,19 +821,19 @@ ZoomRegion.prototype = {
*/ */
setScreenPosition: function(inPosition) { setScreenPosition: function(inPosition) {
switch (inPosition) { switch (inPosition) {
case GDesktopEnums.MagnifierScreenPosition.FULL_SCREEN: case ScreenPosition.FULL_SCREEN:
this.setFullScreenMode(); this.setFullScreenMode();
break; break;
case GDesktopEnums.MagnifierScreenPosition.TOP_HALF: case ScreenPosition.TOP_HALF:
this.setTopHalf(); this.setTopHalf();
break; break;
case GDesktopEnums.MagnifierScreenPosition.BOTTOM_HALF: case ScreenPosition.BOTTOM_HALF:
this.setBottomHalf(); this.setBottomHalf();
break; break;
case GDesktopEnums.MagnifierScreenPosition.LEFT_HALF: case ScreenPosition.LEFT_HALF:
this.setLeftHalf(); this.setLeftHalf();
break; break;
case GDesktopEnums.MagnifierScreenPosition.RIGHT_HALF: case ScreenPosition.RIGHT_HALF:
this.setRightHalf(); this.setRightHalf();
break; break;
} }
@ -842,7 +856,7 @@ ZoomRegion.prototype = {
*/ */
scrollToMousePos: function() { scrollToMousePos: function() {
this._followingCursor = true; this._followingCursor = true;
if (this._mouseTrackingMode != GDesktopEnums.MagnifierMouseTrackingMode.NONE) if (this._mouseTrackingMode != MouseTrackingMode.NONE)
this._changeROI({ redoCursorTracking: true }); this._changeROI({ redoCursorTracking: true });
else else
this._updateMousePosition(); this._updateMousePosition();
@ -977,7 +991,7 @@ ZoomRegion.prototype = {
this._yMagFactor = params.yMagFactor; this._yMagFactor = params.yMagFactor;
if (params.redoCursorTracking && if (params.redoCursorTracking &&
this._mouseTrackingMode != GDesktopEnums.MagnifierMouseTrackingMode.NONE) { this._mouseTrackingMode != MouseTrackingMode.NONE) {
// This depends on this.xMagFactor/yMagFactor already being updated // This depends on this.xMagFactor/yMagFactor already being updated
[params.xCenter, params.yCenter] = this._centerFromMousePosition(); [params.xCenter, params.yCenter] = this._centerFromMousePosition();
} }
@ -1027,7 +1041,7 @@ ZoomRegion.prototype = {
_isFullScreen: function() { _isFullScreen: function() {
// Does the magnified view occupy the whole screen? Note that this // Does the magnified view occupy the whole screen? Note that this
// doesn't necessarily imply // doesn't necessarily imply
// this._screenPosition = GDesktopEnums.MagnifierScreenPosition.FULL_SCREEN; // this._screenPosition = ScreenPosition.FULL_SCREEN;
if (this._viewPortX != 0 || this._viewPortY != 0) if (this._viewPortX != 0 || this._viewPortY != 0)
return false; return false;
@ -1044,13 +1058,13 @@ ZoomRegion.prototype = {
let xMouse = this._magnifier.xMouse; let xMouse = this._magnifier.xMouse;
let yMouse = this._magnifier.yMouse; let yMouse = this._magnifier.yMouse;
if (this._mouseTrackingMode == GDesktopEnums.MagnifierMouseTrackingMode.PROPORTIONAL) { if (this._mouseTrackingMode == MouseTrackingMode.PROPORTIONAL) {
return this._centerFromMouseProportional(xMouse, yMouse); return this._centerFromMouseProportional(xMouse, yMouse);
} }
else if (this._mouseTrackingMode == GDesktopEnums.MagnifierMouseTrackingMode.PUSH) { else if (this._mouseTrackingMode == MouseTrackingMode.PUSH) {
return this._centerFromMousePush(xMouse, yMouse); return this._centerFromMousePush(xMouse, yMouse);
} }
else if (this._mouseTrackingMode == GDesktopEnums.MagnifierMouseTrackingMode.CENTERED) { else if (this._mouseTrackingMode == MouseTrackingMode.CENTERED) {
return this._centerFromMouseCentered(xMouse, yMouse); return this._centerFromMouseCentered(xMouse, yMouse);
} }

View File

@ -1,7 +1,6 @@
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*- // -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
const Gio = imports.gi.Gio; const DBus = imports.dbus;
const GLib = imports.gi.GLib;
const Main = imports.ui.main; const Main = imports.ui.main;
const MAG_SERVICE_NAME = 'org.gnome.Magnifier'; const MAG_SERVICE_NAME = 'org.gnome.Magnifier';
@ -11,85 +10,47 @@ const ZOOM_SERVICE_PATH = '/org/gnome/Magnifier/ZoomRegion';
// Subset of gnome-mag's Magnifier dbus interface -- to be expanded. See: // Subset of gnome-mag's Magnifier dbus interface -- to be expanded. See:
// http://git.gnome.org/browse/gnome-mag/tree/xml/...Magnifier.xml // http://git.gnome.org/browse/gnome-mag/tree/xml/...Magnifier.xml
const MagnifierIface = <interface name={MAG_SERVICE_NAME}> const MagnifierIface = {
<method name="setActive"> name: MAG_SERVICE_NAME,
<arg type="b" direction="in" /> methods: [
</method> { name: 'setActive', inSignature: 'b', outSignature: '' },
<method name="isActive"> { name: 'isActive', inSignature: '', outSignature: 'b' },
<arg type="b" direction="out" /> { name: 'showCursor', inSignature: '', outSignature: '' },
</method> { name: 'hideCursor', inSignature: '', outSignature: '' },
<method name="showCursor" /> { name: 'createZoomRegion', inSignature: 'ddaiai', outSignature: 'o' },
<method name="hideCursor" /> { name: 'addZoomRegion', inSignature: 'o', outSignature: 'b' },
<method name="createZoomRegion"> { name: 'getZoomRegions', inSignature: '', outSignature: 'ao' },
<arg type="d" direction="in" /> { name: 'clearAllZoomRegions', inSignature: '', outSignature: '' },
<arg type="d" direction="in" /> { name: 'fullScreenCapable', inSignature: '', outSignature: 'b' },
<arg type="ai" direction="in" />
<arg type="ai" direction="in" /> { name: 'setCrosswireSize', inSignature: 'i', outSignature: '' },
<arg type="o" direction="out" /> { name: 'getCrosswireSize', inSignature: '', outSignature: 'i' },
</method> { name: 'setCrosswireLength', inSignature: 'i', outSignature: '' },
<method name="addZoomRegion"> { name: 'getCrosswireLength', inSignature: '', outSignature: 'i' },
<arg type="o" direction="in" /> { name: 'setCrosswireClip', inSignature: 'b', outSignature: '' },
<arg type="b" direction="out" /> { name: 'getCrosswireClip', inSignature: '', outSignature: 'b' },
</method> { name: 'setCrosswireColor', inSignature: 'u', outSignature: '' },
<method name="getZoomRegions"> { name: 'getCrosswireColor', inSignature: '', outSignature: 'u' }
<arg type="ao" direction="out" /> ],
</method> signals: [],
<method name="clearAllZoomRegions" /> properties: []
<method name="fullScreenCapable"> };
<arg type="b" direction="out" />
</method>
<method name="setCrosswireSize">
<arg type="i" direction="in" />
</method>
<method name="getCrosswireSize">
<arg type="i" direction="out" />
</method>
<method name="setCrosswireLength">
<arg type="i" direction="in" />
</method>
<method name="getCrosswireLength">
<arg type="i" direction="out" />
</method>
<method name="setCrosswireClip">
<arg type="b" direction="in" />
</method>
<method name="getCrosswireClip">
<arg type="b" direction="out" />
</method>
<method name="setCrosswireColor">
<arg type="u" direction="in" />
</method>
<method name="getCrosswireColor">
<arg type="u" direction="out" />
</method>
</interface>;
// Subset of gnome-mag's ZoomRegion dbus interface -- to be expanded. See: // Subset of gnome-mag's ZoomRegion dbus interface -- to be expanded. See:
// http://git.gnome.org/browse/gnome-mag/tree/xml/...ZoomRegion.xml // http://git.gnome.org/browse/gnome-mag/tree/xml/...ZoomRegion.xml
const ZoomRegionIface = <interface name={ZOOM_SERVICE_NAME}> const ZoomRegionIface = {
<method name="setMagFactor"> name: ZOOM_SERVICE_NAME,
<arg type="d" direction="in" /> methods: [
<arg type="d" direction="in" /> { name: 'setMagFactor', inSignature: 'dd', outSignature: ''},
</method> { name: 'getMagFactor', inSignature: '', outSignature: 'dd' },
<method name="getMagFactor"> { name: 'setRoi', inSignature: 'ai', outSignature: '' },
<arg type="d" direction="out" /> { name: 'getRoi', inSignature: '', outSignature: 'ai' },
<arg type="d" direction="out" /> { name: 'shiftContentsTo', inSignature: 'ii', outSignature: 'b' },
</method> { name: 'moveResize', inSignature: 'ai', outSignature: '' }
<method name="setRoi"> ],
<arg type="ai" direction="in" /> signals: [],
</method> properties: []
<method name="getRoi"> };
<arg type="ai" direction="out" />
</method>
<method name="shiftContentsTo">
<arg type="i" direction="in" />
<arg type="i" direction="in" />
<arg type="b" direction="out" />
</method>
<method name="moveResize">
<arg type="ai" direction="in" />
</method>
</interface>;
// For making unique ZoomRegion DBus proxy object paths of the form: // For making unique ZoomRegion DBus proxy object paths of the form:
// '/org/gnome/Magnifier/ZoomRegion/zoomer0', // '/org/gnome/Magnifier/ZoomRegion/zoomer0',
@ -103,9 +64,7 @@ function ShellMagnifier() {
ShellMagnifier.prototype = { ShellMagnifier.prototype = {
_init: function() { _init: function() {
this._zoomers = {}; this._zoomers = {};
DBus.session.exportObject(MAG_SERVICE_PATH, this);
this._dbusImpl = Gio.DBusExportedObject.wrapJSObject(MagnifierIface, this);
this._dbusImpl.export(Gio.DBus.session, MAG_SERVICE_PATH);
}, },
/** /**
@ -236,10 +195,10 @@ ShellMagnifier.prototype = {
Main.magnifier.clearAllZoomRegions(); Main.magnifier.clearAllZoomRegions();
for (let objectPath in this._zoomers) { for (let objectPath in this._zoomers) {
let proxyAndZoomer = this._zoomers[objectPath]; let proxyAndZoomer = this._zoomers[objectPath];
proxyAndZoomer.proxy.destroy();
proxyAndZoomer.proxy = null; proxyAndZoomer.proxy = null;
proxyAndZoomer.zoomRegion = null; proxyAndZoomer.zoomRegion = null;
delete this._zoomers[objectPath]; delete this._zoomers[objectPath];
DBus.session.unexportObject(proxyAndZoomer);
} }
this._zoomers = {}; this._zoomers = {};
}, },
@ -341,9 +300,8 @@ function ShellMagnifierZoomRegion(zoomerObjectPath, zoomRegion) {
ShellMagnifierZoomRegion.prototype = { ShellMagnifierZoomRegion.prototype = {
_init: function(zoomerObjectPath, zoomRegion) { _init: function(zoomerObjectPath, zoomRegion) {
this._zoomRegion = zoomRegion; this._zoomRegion = zoomRegion;
DBus.session.proxifyObject(this, ZOOM_SERVICE_NAME, zoomerObjectPath);
this._dbusImpl = Gio.DBusExportedObject.wrapJSObject(ZoomRegionIface, this); DBus.session.exportObject(zoomerObjectPath, this);
this._dbusImpl.export(Gio.DBus.session, zoomerObjectPath);
}, },
/** /**
@ -418,9 +376,8 @@ ShellMagnifierZoomRegion.prototype = {
moveResize: function(viewPort) { moveResize: function(viewPort) {
let viewRect = { x: viewPort[0], y: viewPort[1], width: viewPort[2] - viewPort[0], height: viewPort[3] - viewPort[1] }; let viewRect = { x: viewPort[0], y: viewPort[1], width: viewPort[2] - viewPort[0], height: viewPort[3] - viewPort[1] };
this._zoomRegion.setViewPort(viewRect); this._zoomRegion.setViewPort(viewRect);
},
destroy: function() {
this._dbusImpl.unexport();
} }
}; };
DBus.conformExport(ShellMagnifier.prototype, MagnifierIface);
DBus.conformExport(ShellMagnifierZoomRegion.prototype, ZoomRegionIface);

View File

@ -1,9 +1,11 @@
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*- // -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
const Clutter = imports.gi.Clutter; const Clutter = imports.gi.Clutter;
const DBus = imports.dbus;
const Gdk = imports.gi.Gdk; const Gdk = imports.gi.Gdk;
const Gio = imports.gi.Gio; const Gio = imports.gi.Gio;
const GLib = imports.gi.GLib; const GLib = imports.gi.GLib;
const GConf = imports.gi.GConf;
const Lang = imports.lang; const Lang = imports.lang;
const Mainloop = imports.mainloop; const Mainloop = imports.mainloop;
const Meta = imports.gi.Meta; const Meta = imports.gi.Meta;
@ -134,13 +136,13 @@ function _initUserSession() {
let shellwm = global.window_manager; let shellwm = global.window_manager;
shellwm.takeover_keybinding('panel-run-dialog'); shellwm.takeover_keybinding('panel_run_dialog');
shellwm.connect('keybinding::panel-run-dialog', function () { shellwm.connect('keybinding::panel_run_dialog', function () {
getRunDialog().open(); getRunDialog().open();
}); });
shellwm.takeover_keybinding('panel-main-menu'); shellwm.takeover_keybinding('panel_main_menu');
shellwm.connect('keybinding::panel-main-menu', function () { shellwm.connect('keybinding::panel_main_menu', function () {
overview.toggle(); overview.toggle();
}); });
@ -161,6 +163,11 @@ function start() {
Gio.DesktopAppInfo.set_desktop_env('GNOME'); Gio.DesktopAppInfo.set_desktop_env('GNOME');
shellDBusService = new ShellDBus.GnomeShell(); shellDBusService = new ShellDBus.GnomeShell();
// Force a connection now; dbus.js will do this internally
// if we use its name acquisition stuff but we aren't right
// now; to do so we'd need to convert from its async calls
// back into sync ones.
DBus.session.flush();
// Ensure ShellWindowTracker and ShellAppUsage are initialized; this will // Ensure ShellWindowTracker and ShellAppUsage are initialized; this will
// also initialize ShellAppSystem first. ShellAppSystem // also initialize ShellAppSystem first. ShellAppSystem
@ -576,6 +583,16 @@ function _globalKeyPressHandler(actor, event) {
// This relies on the fact that Clutter.ModifierType is the same as Gdk.ModifierType // This relies on the fact that Clutter.ModifierType is the same as Gdk.ModifierType
let action = global.display.get_keybinding_action(keyCode, modifierState); let action = global.display.get_keybinding_action(keyCode, modifierState);
// The screenshot action should always be available (even if a
// modal dialog is present)
if (action == Meta.KeyBindingAction.COMMAND_SCREENSHOT) {
let gconf = GConf.Client.get_default();
let command = gconf.get_string('/apps/metacity/keybinding_commands/command_screenshot');
if (command != null && command != '')
Util.spawnCommandLine(command);
return true;
}
// Other bindings are only available to the user session when the overview is up and // Other bindings are only available to the user session when the overview is up and
// no modal dialog is present. // no modal dialog is present.
if (global.session_type == Shell.SessionType.USER && (!overview.visible || modalCount > 1)) if (global.session_type == Shell.SessionType.USER && (!overview.visible || modalCount > 1))
@ -651,17 +668,14 @@ function _findModal(actor) {
* initiated event. If not provided then the value of * initiated event. If not provided then the value of
* global.get_current_time() is assumed. * global.get_current_time() is assumed.
* *
* @options: optional Meta.ModalOptions flags to indicate that the
* pointer is alrady grabbed
*
* Returns: true iff we successfully acquired a grab or already had one * Returns: true iff we successfully acquired a grab or already had one
*/ */
function pushModal(actor, timestamp, options) { function pushModal(actor, timestamp) {
if (timestamp == undefined) if (timestamp == undefined)
timestamp = global.get_current_time(); timestamp = global.get_current_time();
if (modalCount == 0) { if (modalCount == 0) {
if (!global.begin_modal(timestamp, options ? options : 0)) { if (!global.begin_modal(timestamp)) {
log('pushModal: invocation of begin_modal failed'); log('pushModal: invocation of begin_modal failed');
return false; return false;
} }

View File

@ -597,7 +597,8 @@ Notification.prototype = {
this._table.add_style_class_name('multi-line-notification'); this._table.add_style_class_name('multi-line-notification');
this._scrollArea = new St.ScrollView({ name: 'notification-scrollview', this._scrollArea = new St.ScrollView({ name: 'notification-scrollview',
vscrollbar_policy: this._scrollPolicy, vscrollbar_policy: this._scrollPolicy,
hscrollbar_policy: Gtk.PolicyType.NEVER }); hscrollbar_policy: Gtk.PolicyType.NEVER,
style_class: 'vfade' });
this._table.add(this._scrollArea, { row: 1, this._table.add(this._scrollArea, { row: 1,
col: 2 }); col: 2 });
this._updateLastColumnSettings(); this._updateLastColumnSettings();
@ -991,7 +992,6 @@ Source.prototype = {
this.isTransient = false; this.isTransient = false;
this.isChat = false; this.isChat = false;
this.isMuted = false;
this.notifications = []; this.notifications = [];
}, },
@ -1056,13 +1056,6 @@ Source.prototype = {
this.emit('title-changed'); this.emit('title-changed');
}, },
setMuted: function(muted) {
if (!this.isChat || this.isMuted == muted)
return;
this.isMuted = muted;
this.emit('muted-changed');
},
// Called to create a new icon actor (of size this.ICON_SIZE). // Called to create a new icon actor (of size this.ICON_SIZE).
// Must be overridden by the subclass if you do not pass icons // Must be overridden by the subclass if you do not pass icons
// explicitly to the Notification() constructor. // explicitly to the Notification() constructor.
@ -1101,8 +1094,7 @@ Source.prototype = {
notify: function(notification) { notify: function(notification) {
this.pushNotification(notification); this.pushNotification(notification);
if (!this.isMuted) this.emit('notify', notification);
this.emit('notify', notification);
}, },
destroy: function(reason) { destroy: function(reason) {
@ -1218,18 +1210,6 @@ SummaryItem.prototype = {
})); }));
this.rightClickMenu.add(item.actor); this.rightClickMenu.add(item.actor);
if (source.isChat) {
item = new PopupMenu.PopupMenuItem('');
item.actor.connect('notify::mapped', Lang.bind(this, function() {
item.label.set_text(source.isMuted ? _("Unmute") : _("Mute"));
}));
item.connect('activate', Lang.bind(this, function() {
source.setMuted(!source.isMuted);
this.emit('done-displaying-content');
}));
this.rightClickMenu.add(item.actor);
}
let focusManager = St.FocusManager.get_for_stage(global.stage); let focusManager = St.FocusManager.get_for_stage(global.stage);
focusManager.add_group(this.rightClickMenu); focusManager.add_group(this.rightClickMenu);
}, },
@ -1349,15 +1329,12 @@ function MessageTray() {
MessageTray.prototype = { MessageTray.prototype = {
_init: function() { _init: function() {
this._presence = new GnomeSession.Presence(Lang.bind(this, function(proxy, error) { this._presence = new GnomeSession.Presence();
this._onStatusChanged(proxy.status);
}));
this._userStatus = GnomeSession.PresenceStatus.AVAILABLE; this._userStatus = GnomeSession.PresenceStatus.AVAILABLE;
this._busy = false; this._busy = false;
this._backFromAway = false; this._backFromAway = false;
this._presence.connectSignal('StatusChanged', Lang.bind(this, function(proxy, senderName, [status]) { this._presence.connect('StatusChanged', Lang.bind(this, this._onStatusChanged));
this._onStatusChanged(status); this._presence.getStatus(Lang.bind(this, this._onStatusChanged));
}));
this.actor = new St.Group({ name: 'message-tray', this.actor = new St.Group({ name: 'message-tray',
reactive: true, reactive: true,
@ -1442,8 +1419,16 @@ MessageTray.prototype = {
this._notificationRemoved = false; this._notificationRemoved = false;
this._reNotifyAfterHideNotification = null; 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); 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.actor);
Main.layoutManager.trackChrome(this._notificationBin); Main.layoutManager.trackChrome(this._notificationBin);
@ -1482,12 +1467,24 @@ MessageTray.prototype = {
this._chatSummaryItemsCount = 0; this._chatSummaryItemsCount = 0;
}, },
_onCornerEnter: function(actor, event) {
this._pointerInSummary = true;
this._updateState();
},
_setSizePosition: function() { _setSizePosition: function() {
let monitor = Main.layoutManager.bottomMonitor; let monitor = Main.layoutManager.bottomMonitor;
this._notificationBin.x = 0; this._notificationBin.x = 0;
this._notificationBin.width = monitor.width; this._notificationBin.width = monitor.width;
this._summaryBin.x = 0; this._summaryBin.x = 0;
this._summaryBin.width = monitor.width; 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) { contains: function(source) {
@ -1541,14 +1538,6 @@ MessageTray.prototype = {
source.connect('notify', Lang.bind(this, this._onNotify)); source.connect('notify', Lang.bind(this, this._onNotify));
source.connect('muted-changed', Lang.bind(this,
function () {
if (source.isMuted)
this._notificationQueue = this._notificationQueue.filter(function(notification) {
return source != notification.source;
});
}));
summaryItem.actor.connect('notify::hover', Lang.bind(this, summaryItem.actor.connect('notify::hover', Lang.bind(this,
function () { function () {
this._onSummaryItemHoverChanged(summaryItem); this._onSummaryItemHoverChanged(summaryItem);
@ -1905,7 +1894,7 @@ MessageTray.prototype = {
this._updateState(); this._updateState();
}, },
_onStatusChanged: function(status) { _onStatusChanged: function(presence, status) {
this._backFromAway = (this._userStatus == GnomeSession.PresenceStatus.IDLE && this._userStatus != status); this._backFromAway = (this._userStatus == GnomeSession.PresenceStatus.IDLE && this._userStatus != status);
this._userStatus = status; this._userStatus = status;
@ -2088,7 +2077,7 @@ MessageTray.prototype = {
_hideTray: function() { _hideTray: function() {
this._tween(this.actor, '_trayState', State.HIDDEN, this._tween(this.actor, '_trayState', State.HIDDEN,
{ y: -1, { y: this.actor.height,
time: ANIMATION_TIME, time: ANIMATION_TIME,
transition: 'easeOutQuad' transition: 'easeOutQuad'
}); });

View File

@ -110,7 +110,7 @@ ModalDialog.prototype = {
this._buttonLayout.destroy_children(); this._buttonLayout.destroy_children();
this._actionKeys = {}; this._actionKeys = {};
for (let i = 0; i < buttons.length; i++) { for (let i = 0; i < buttons.length; i ++) {
let buttonInfo = buttons[i]; let buttonInfo = buttons[i];
let label = buttonInfo['label']; let label = buttonInfo['label'];
let action = buttonInfo['action']; let action = buttonInfo['action'];

View File

@ -1,7 +1,7 @@
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*- // -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
const Clutter = imports.gi.Clutter; const Clutter = imports.gi.Clutter;
const Gio = imports.gi.Gio; const DBus = imports.dbus;
const GLib = imports.gi.GLib; const GLib = imports.gi.GLib;
const Lang = imports.lang; const Lang = imports.lang;
const Shell = imports.gi.Shell; const Shell = imports.gi.Shell;
@ -16,52 +16,49 @@ const Util = imports.misc.util;
let nextNotificationId = 1; let nextNotificationId = 1;
// Should really be defined in Gio.js // Should really be defined in dbus.js
const BusIface = <interface name="org.freedesktop.DBus"> const BusIface = {
<method name="GetConnectionUnixProcessID"> name: 'org.freedesktop.DBus',
<arg type="s" direction="in" /> methods: [{ name: 'GetConnectionUnixProcessID',
<arg type="u" direction="out" /> inSignature: 's',
</method> outSignature: 'i' }]
</interface>; };
var BusProxy = Gio.DBusProxy.makeProxyWrapper(BusIface); const Bus = function () {
function Bus() { this._init();
return new BusProxy(Gio.DBus.session, 'org.freedesktop.DBus', '/org/freedesktop/DBus'); };
}
const NotificationDaemonIface = <interface name="org.freedesktop.Notifications"> Bus.prototype = {
<method name="Notify"> _init: function() {
<arg type="s" direction="in"/> DBus.session.proxifyObject(this, 'org.freedesktop.DBus', '/org/freedesktop/DBus');
<arg type="u" direction="in"/> }
<arg type="s" direction="in"/> };
<arg type="s" direction="in"/>
<arg type="s" direction="in"/> DBus.proxifyPrototype(Bus.prototype, BusIface);
<arg type="as" direction="in"/>
<arg type="a{sv}" direction="in"/> const NotificationDaemonIface = {
<arg type="i" direction="in"/> name: 'org.freedesktop.Notifications',
<arg type="u" direction="out"/> methods: [{ name: 'Notify',
</method> inSignature: 'susssasa{sv}i',
<method name="CloseNotification"> outSignature: 'u'
<arg type="u" direction="in"/> },
</method> { name: 'CloseNotification',
<method name="GetCapabilities"> inSignature: 'u',
<arg type="as" direction="out"/> outSignature: ''
</method> },
<method name="GetServerInformation"> { name: 'GetCapabilities',
<arg type="s" direction="out"/> inSignature: '',
<arg type="s" direction="out"/> outSignature: 'as'
<arg type="s" direction="out"/> },
<arg type="s" direction="out"/> { name: 'GetServerInformation',
</method> inSignature: '',
<signal name="NotificationClosed"> outSignature: 'ssss'
<arg type="u"/> }],
<arg type="u"/> signals: [{ name: 'NotificationClosed',
</signal> inSignature: 'uu' },
<signal name="ActionInvoked"> { name: 'ActionInvoked',
<arg type="u"/> inSignature: 'us' }]
<arg type="s"/> };
</signal>
</interface>;
const NotificationClosedReason = { const NotificationClosedReason = {
EXPIRED: 1, EXPIRED: 1,
@ -93,10 +90,9 @@ function NotificationDaemon() {
NotificationDaemon.prototype = { NotificationDaemon.prototype = {
_init: function() { _init: function() {
this._dbusImpl = Gio.DBusExportedObject.wrapJSObject(NotificationDaemonIface, this); DBus.session.exportObject('/org/freedesktop/Notifications', this);
this._dbusImpl.export(Gio.DBus.session, '/org/freedesktop/Notifications');
this._sources = {}; this._sources = [];
this._senderToPid = {}; this._senderToPid = {};
this._notifications = {}; this._notifications = {};
this._busProxy = new Bus(); this._busProxy = new Bus();
@ -154,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. // Returns the source associated with ndata.notification if it is set.
// Otherwise, returns the source associated with the pid if one is // Otherwise, returns the source associated with the title and pid if
// stored in this._sources and the notification is not transient. // such source is stored in this._sources and the notification is not
// Otherwise, creates a new source as long as pid is provided. // 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 // Either a pid or ndata.notification is needed to retrieve or
// create a source. // create a source.
_getSource: function(title, pid, ndata, sender) { _getSource: function(title, pid, ndata, sender, trayIcon) {
if (!pid && !(ndata && ndata.notification)) if (!pid && !(ndata && ndata.notification))
return null; return null;
@ -178,20 +190,24 @@ NotificationDaemon.prototype = {
// with a transient one from the same sender, so we // with a transient one from the same sender, so we
// always create a new source object for new transient notifications // always create a new source object for new transient notifications
// and never add it to this._sources . // and never add it to this._sources .
if (!isForTransientNotification && this._sources[pid]) { if (!isForTransientNotification) {
let source = this._sources[pid]; let source = this._lookupSource(title, pid, trayIcon);
source.setTitle(title); if (source) {
return source; source.setTitle(title);
return source;
}
} }
let source = new Source(title, pid, sender); let source = new Source(title, pid, sender, trayIcon);
source.setTransient(isForTransientNotification); source.setTransient(isForTransientNotification);
if (!isForTransientNotification) { if (!isForTransientNotification) {
this._sources[pid] = source; this._sources.push(source);
source.connect('destroy', Lang.bind(this, source.connect('destroy', Lang.bind(this,
function() { function() {
delete this._sources[pid]; let index = this._sources.indexOf(source);
if (index >= 0)
this._sources.splice(index, 1);
})); }));
} }
@ -199,8 +215,8 @@ NotificationDaemon.prototype = {
return source; return source;
}, },
NotifyAsync: function(params, invocation) { Notify: function(appName, replacesId, icon, summary, body,
let [appName, replacesId, icon, summary, body, actions, hints, timeout] = params; actions, hints, timeout) {
let id; let id;
// Filter out chat, presence, calls and invitation notifications from // Filter out chat, presence, calls and invitation notifications from
@ -219,7 +235,7 @@ NotificationDaemon.prototype = {
function () { function () {
this._emitNotificationClosed(id, NotificationClosedReason.DISMISSED); this._emitNotificationClosed(id, NotificationClosedReason.DISMISSED);
})); }));
return invocation.return_value(GLib.Variant.new('(u)', [id])); return id;
} }
let rewrites = rewriteRules[appName]; let rewrites = rewriteRules[appName];
@ -231,11 +247,6 @@ NotificationDaemon.prototype = {
} }
} }
for (let hint in hints) {
// unpack the variants
hints[hint] = hints[hint].deep_unpack();
}
hints = Params.parse(hints, { urgency: Urgency.NORMAL }, true); hints = Params.parse(hints, { urgency: Urgency.NORMAL }, true);
// Be compatible with the various hints for image data and image path // Be compatible with the various hints for image data and image path
@ -267,55 +278,51 @@ NotificationDaemon.prototype = {
} }
this._notifications[id] = ndata; this._notifications[id] = ndata;
let sender = invocation.get_sender(); let sender = DBus.getCurrentMessageContext().sender;
let pid = this._senderToPid[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) { if (source) {
this._notifyForSource(source, ndata); this._notifyForSource(source, ndata);
return invocation.return_value(GLib.Variant.new('(u)', [id])); return id;
} }
if (replacesId) { if (replacesId) {
// There's already a pending call to GetConnectionUnixProcessID, // There's already a pending call to GetConnectionUnixProcessID,
// which will see the new notification data when it finishes, // which will see the new notification data when it finishes,
// so we don't have to do anything. // so we don't have to do anything.
return invocation.return_value(GLib.Variant.new('(u)', [id]));; return id;
} }
this._busProxy.GetConnectionUnixProcessIDRemote(sender, Lang.bind(this, function (result, excp) { this._busProxy.GetConnectionUnixProcessIDRemote(sender, Lang.bind(this,
// The app may have updated or removed the notification function (pid, ex) {
ndata = this._notifications[id]; // The app may have updated or removed the notification
if (!ndata) ndata = this._notifications[id];
return; if (!ndata)
return;
if (excp) { source = this._getSource(appName, pid, ndata, sender, null);
logError(excp, 'Call to GetConnectionUnixProcessID failed');
return;
}
let [pid] = result; // We only store sender-pid entries for persistent sources.
source = this._getSource(appName, pid, ndata, sender); // Removing the entries once the source is destroyed
// would result in the entries associated with transient
// sources removed once the notification is shown anyway.
// However, keeping these pairs would mean that we would
// possibly remove an entry associated with a persistent
// source when a transient source for the same sender is
// distroyed.
if (!source.isTransient) {
this._senderToPid[sender] = pid;
source.connect('destroy', Lang.bind(this,
function() {
delete this._senderToPid[sender];
}));
}
this._notifyForSource(source, ndata);
}));
// We only store sender-pid entries for persistent sources. return id;
// Removing the entries once the source is destroyed
// would result in the entries associated with transient
// sources removed once the notification is shown anyway.
// However, keeping these pairs would mean that we would
// possibly remove an entry associated with a persistent
// source when a transient source for the same sender is
// distroyed.
if (!source.isTransient) {
this._senderToPid[sender] = pid;
source.connect('destroy', Lang.bind(this, function() {
delete this._senderToPid[sender];
}));
}
this._notifyForSource(source, ndata);
}));
return invocation.return_value(GLib.Variant.new('(u)', [id]));
}, },
_notifyForSource: function(source, ndata) { _notifyForSource: function(source, ndata) {
@ -445,8 +452,8 @@ NotificationDaemon.prototype = {
if (!tracker.focus_app) if (!tracker.focus_app)
return; return;
for (let id in this._sources) { for (let i = 0; i < this._sources.length; i++) {
let source = this._sources[id]; let source = this._sources[i];
if (source.app == tracker.focus_app) { if (source.app == tracker.focus_app) {
source.destroyNonResidentNotifications(); source.destroyNonResidentNotifications();
return; return;
@ -455,27 +462,32 @@ NotificationDaemon.prototype = {
}, },
_emitNotificationClosed: function(id, reason) { _emitNotificationClosed: function(id, reason) {
this._dbusImpl.emit_signal('NotificationClosed', DBus.session.emit_signal('/org/freedesktop/Notifications',
GLib.Variant.new('(uu)', [id, reason])); 'org.freedesktop.Notifications',
'NotificationClosed', 'uu',
[id, reason]);
}, },
_emitActionInvoked: function(id, action) { _emitActionInvoked: function(id, action) {
this._dbusImpl.emit_signal('ActionInvoked', DBus.session.emit_signal('/org/freedesktop/Notifications',
GLib.Variant.new('(us)', [id, action])); 'org.freedesktop.Notifications',
'ActionInvoked', 'us',
[id, action]);
}, },
_onTrayIconAdded: function(o, icon) { _onTrayIconAdded: function(o, icon) {
let source = this._getSource(icon.title || icon.wm_class || _("Unknown"), icon.pid, null, null); let source = this._getSource(icon.title || icon.wm_class || _("Unknown"), icon.pid, null, null, icon);
source.setTrayIcon(icon);
}, },
_onTrayIconRemoved: function(o, icon) { _onTrayIconRemoved: function(o, icon) {
let source = this._sources[icon.pid]; let source = this._lookupSource(icon.pid, null, true);
if (source) if (source)
source.destroy(); source.destroy();
} }
}; };
DBus.conformExport(NotificationDaemon.prototype, NotificationDaemonIface);
function Source(title, pid, sender) { function Source(title, pid, sender) {
this._init(title, pid, sender); this._init(title, pid, sender);
} }
@ -483,24 +495,34 @@ function Source(title, pid, sender) {
Source.prototype = { Source.prototype = {
__proto__: MessageTray.Source.prototype, __proto__: MessageTray.Source.prototype,
_init: function(title, pid, sender) { _init: function(title, pid, sender, trayIcon) {
MessageTray.Source.prototype._init.call(this, title); MessageTray.Source.prototype._init.call(this, title);
this._pid = pid; this.initialTitle = title;
this.pid = pid;
if (sender) if (sender)
this._nameWatcherId = Gio.DBus.session.watch_name(sender, // TODO: dbus-glib implementation of watch_name() doesnt return an id to be used for
Gio.BusNameWatcherFlags.NONE, // unwatch_name() or implement unwatch_name(), however when we move to using GDBus implementation,
null, // we should save the id here and call unwatch_name() with it in destroy().
Lang.bind(this, this._onNameVanished)); // Moving to GDBus is the work in progress: https://bugzilla.gnome.org/show_bug.cgi?id=648651
else // and https://bugzilla.gnome.org/show_bug.cgi?id=622921 .
this._nameWatcherId = 0; DBus.session.watch_name(sender,
false,
null,
Lang.bind(this, this._onNameVanished));
this._setApp(); this._setApp();
if (this.app) if (this.app)
this.title = this.app.get_name(); this.title = this.app.get_name();
else else
this.useNotificationIcon = true; this.useNotificationIcon = true;
this._trayIcon = null;
this.trayIcon = trayIcon;
if (this.trayIcon) {
this._setSummaryIcon(this.trayIcon);
this.useNotificationIcon = false;
}
}, },
_onNameVanished: function() { _onNameVanished: function() {
@ -527,7 +549,7 @@ Source.prototype = {
}, },
handleSummaryClick: function() { handleSummaryClick: function() {
if (!this._trayIcon) if (!this.trayIcon)
return false; return false;
let event = Clutter.get_current_event(); let event = Clutter.get_current_event();
@ -548,11 +570,11 @@ Source.prototype = {
let id = global.connect('notify::stage-input-mode', Lang.bind(this, let id = global.connect('notify::stage-input-mode', Lang.bind(this,
function () { function () {
global.disconnect(id); global.disconnect(id);
this._trayIcon.click(event); this.trayIcon.click(event);
})); }));
Main.overview.hide(); Main.overview.hide();
} else { } else {
this._trayIcon.click(event); this.trayIcon.click(event);
} }
return true; return true;
}, },
@ -561,31 +583,25 @@ Source.prototype = {
if (this.app) if (this.app)
return; 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) if (!this.app)
return; return;
// Only override the icon if we were previously using // Only override the icon if we were previously using
// notification-based icons (ie, not a trayicon) or if it was unset before // notification-based icons (ie, not a trayicon) or if it was unset before
if (!this._trayIcon) { if (!this.trayIcon) {
this.useNotificationIcon = false; this.useNotificationIcon = false;
this._setSummaryIcon(this.app.create_icon_texture (this.ICON_SIZE)); 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) { open: function(notification) {
this.destroyNonResidentNotifications(); this.destroyNonResidentNotifications();
this.openApp(); this.openApp();
}, },
_lastNotificationRemoved: function() { _lastNotificationRemoved: function() {
if (!this._trayIcon) if (!this.trayIcon)
this.destroy(); this.destroy();
}, },
@ -601,11 +617,6 @@ Source.prototype = {
}, },
destroy: function() { destroy: function() {
if (this._nameWatcherId) {
Gio.DBus.session.unwatch_name(this._nameWatcherId);
this._nameWatcherId = 0;
}
MessageTray.Source.prototype.destroy.call(this); MessageTray.Source.prototype.destroy.call(this);
} }
}; };

View File

@ -195,9 +195,9 @@ PlacesManager.prototype = {
this._bookmarksPath = GLib.build_filenamev([GLib.get_home_dir(), '.gtk-bookmarks']); this._bookmarksPath = GLib.build_filenamev([GLib.get_home_dir(), '.gtk-bookmarks']);
this._bookmarksFile = Gio.file_new_for_path(this._bookmarksPath); this._bookmarksFile = Gio.file_new_for_path(this._bookmarksPath);
this._monitor = this._bookmarksFile.monitor_file(Gio.FileMonitorFlags.NONE, null); let monitor = this._bookmarksFile.monitor_file(Gio.FileMonitorFlags.NONE, null);
this._bookmarkTimeoutId = 0; this._bookmarkTimeoutId = 0;
this._monitor.connect('changed', Lang.bind(this, function () { monitor.connect('changed', Lang.bind(this, function () {
if (this._bookmarkTimeoutId > 0) if (this._bookmarkTimeoutId > 0)
return; return;
/* Defensive event compression */ /* Defensive event compression */

View File

@ -108,16 +108,14 @@ PopupBaseMenuItem.prototype = {
this.emit('activate', event); this.emit('activate', event);
}, },
setActive: function (active, params) { setActive: function (active) {
let activeChanged = active != this.active; let activeChanged = active != this.active;
params = Params.parse (params, { grabKeyboard: true });
if (activeChanged) { if (activeChanged) {
this.active = active; this.active = active;
if (active) { if (active) {
this.actor.add_style_pseudo_class('active'); this.actor.add_style_pseudo_class('active');
if (params.grabKeyboard) this.actor.grab_key_focus();
this.actor.grab_key_focus();
} else } else
this.actor.remove_style_pseudo_class('active'); this.actor.remove_style_pseudo_class('active');
this.emit('active-changed', active); this.emit('active-changed', active);
@ -1021,11 +1019,6 @@ PopupMenuBase.prototype = {
} }
if (menuItem instanceof PopupMenuSection) { if (menuItem instanceof PopupMenuSection) {
this._connectSubMenuSignals(menuItem, menuItem); this._connectSubMenuSignals(menuItem, menuItem);
menuItem._closingId = this.connect('open-state-changed',
function(self, open) {
if (!open)
menuItem.close(false);
});
menuItem.connect('destroy', Lang.bind(this, function() { menuItem.connect('destroy', Lang.bind(this, function() {
menuItem.disconnect(menuItem._subMenuActivateId); menuItem.disconnect(menuItem._subMenuActivateId);
menuItem.disconnect(menuItem._subMenuActiveChangeId); menuItem.disconnect(menuItem._subMenuActiveChangeId);
@ -1425,10 +1418,9 @@ PopupMenuSection.prototype = {
this.isOpen = true; this.isOpen = true;
}, },
// deliberately ignore any attempt to open() or close(), but emit the // deliberately ignore any attempt to open() or close()
// corresponding signal so children can still pick it up open: function(animate) { },
open: function(animate) { this.emit('open-state-changed', true); }, close: function() { },
close: function() { this.emit('open-state-changed', false); },
} }
function PopupSubMenuMenuItem() { function PopupSubMenuMenuItem() {
@ -1502,8 +1494,6 @@ PopupComboMenu.prototype = {
this.actor._delegate = this; this.actor._delegate = this;
this.actor.connect('key-press-event', Lang.bind(this, this._onKeyPressEvent)); this.actor.connect('key-press-event', Lang.bind(this, this._onKeyPressEvent));
this.actor.connect('key-focus-in', Lang.bind(this, this._onKeyFocusIn)); this.actor.connect('key-focus-in', Lang.bind(this, this._onKeyFocusIn));
sourceActor.connect('style-changed',
Lang.bind(this, this._onSourceActorStyleChanged));
this._activeItemPos = -1; this._activeItemPos = -1;
global.focus_manager.add_group(this.actor); global.focus_manager.add_group(this.actor);
}, },
@ -1523,26 +1513,6 @@ PopupComboMenu.prototype = {
activeItem.actor.grab_key_focus(); activeItem.actor.grab_key_focus();
}, },
_onSourceActorStyleChanged: function() {
// PopupComboBoxMenuItem clones the active item's actors
// to work with arbitrary items in the menu; this means
// that we need to propagate some style information and
// enforce style updates even when the menu is closed
let activeItem = this._getMenuItems()[this._activeItemPos];
if (this.sourceActor.has_style_pseudo_class('insensitive'))
activeItem.actor.add_style_pseudo_class('insensitive');
else
activeItem.actor.remove_style_pseudo_class('insensitive');
// To propagate the :active style, we need to make sure that the
// internal state of the PopupComboMenu is updated as well, but
// we must not move the keyboard grab
activeItem.setActive(this.sourceActor.has_style_pseudo_class('active'),
{ grabKeyboard: false });
_ensureStyle(this.actor);
},
open: function() { open: function() {
if (this.isOpen) if (this.isOpen)
return; return;

View File

@ -1,5 +1,6 @@
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*- // -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
const DBus = imports.dbus;
const Gio = imports.gi.Gio; const Gio = imports.gi.Gio;
const Mainloop = imports.mainloop; const Mainloop = imports.mainloop;
const Meta = imports.gi.Meta; const Meta = imports.gi.Meta;
@ -69,21 +70,24 @@ function waitLeisure() {
}; };
} }
const PerfHelperIface = <interface name="org.gnome.Shell.PerfHelper"> const PerfHelperIface = {
<method name="CreateWindow"> name: 'org.gnome.Shell.PerfHelper',
<arg type="i" direction="in" /> methods: [{ name: 'CreateWindow', inSignature: 'iibb', outSignature: '' },
<arg type="i" direction="in" /> { name: 'WaitWindows', inSignature: '', outSignature: '' },
<arg type="b" direction="in" /> { name: 'DestroyWindows', inSignature: '', outSignature: ''}]
<arg type="b" direction="in" /> };
</method>
<method name="WaitWindows" />
<method name="DestroyWindows" />
</interface>;
var PerfHelperProxy = Gio.DBusProxy.makeProxyWrapper(PerfHelperIface); const PerfHelper = function () {
function PerfHelper() { this._init();
return new PerfHelperProxy(Gio.DBus.session, 'org.gnome.Shell.PerfHelper', '/org/gnome/Shell/PerfHelper'); };
}
PerfHelper.prototype = {
_init: function() {
DBus.session.proxifyObject(this, 'org.gnome.Shell.PerfHelper', '/org/gnome/Shell/PerfHelper');
}
};
DBus.proxifyPrototype(PerfHelper.prototype, PerfHelperIface);
let _perfHelper = null; let _perfHelper = null;
function _getPerfHelper() { function _getPerfHelper() {

View File

@ -1,70 +1,71 @@
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*- // -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
const DBus = imports.dbus;
const Lang = imports.lang; const Lang = imports.lang;
const Gio = imports.gi.Gio;
const GLib = imports.gi.GLib;
const Config = imports.misc.config; const Config = imports.misc.config;
const ExtensionSystem = imports.ui.extensionSystem; const ExtensionSystem = imports.ui.extensionSystem;
const Main = imports.ui.main; const Main = imports.ui.main;
const GnomeShellIface = <interface name="org.gnome.Shell"> const GnomeShellIface = {
<method name="Eval"> name: 'org.gnome.Shell',
<arg type="s" direction="in" name="script" /> methods: [{ name: 'Eval',
<arg type="b" direction="out" name="success" /> inSignature: 's',
<arg type="s" direction="out" name="result" /> outSignature: 'bs'
</method> },
<method name="ListExtensions"> { name: 'ListExtensions',
<arg type="a{sa{sv}}" direction="out" name="extensions" /> inSignature: '',
</method> outSignature: 'a{sa{sv}}'
<method name="GetExtensionInfo"> },
<arg type="s" direction="in" name="extension" /> { name: 'GetExtensionInfo',
<arg type="a{sv}" direction="out" name="info" /> inSignature: 's',
</method> outSignature: 'a{sv}'
<method name="GetExtensionErrors"> },
<arg type="s" direction="in" name="extension" /> { name: 'GetExtensionErrors',
<arg type="as" direction="out" name="errors" /> inSignature: 's',
</method> outSignature: 'as'
<method name="ScreenshotArea"> },
<arg type="i" direction="in" name="x"/> { name: 'ScreenshotArea',
<arg type="i" direction="in" name="y"/> inSignature: 'iiiis',
<arg type="i" direction="in" name="width"/> outSignature: 'b'
<arg type="i" direction="in" name="height"/> },
<arg type="s" direction="in" name="filename"/> { name: 'ScreenshotWindow',
<arg type="b" direction="out" name="success"/> inSignature: 'bs',
</method> outSignature: 'b'
<method name="ScreenshotWindow"> },
<arg type="b" direction="in" name="include_frame"/> { name: 'Screenshot',
<arg type="s" direction="in" name="filename"/> inSignature: 's',
<arg type="b" direction="out" name="success"/> outSignature: 'b'
</method> },
<method name="Screenshot"> { name: 'EnableExtension',
<arg type="s" direction="in" name="filename"/> inSignature: 's',
<arg type="b" direction="out" name="success"/> outSignature: ''
</method> },
<method name="EnableExtension"> { name: 'DisableExtension',
<arg type="s" direction="in" name="uuid"/> inSignature: 's',
</method> outSignature: ''
<method name="DisableExtension"> },
<arg type="s" direction="in" name="uuid"/> { name: 'InstallRemoteExtension',
</method> inSignature: 'ss',
<method name="InstallRemoteExtension"> outSignature: ''
<arg type="s" direction="in" name="uuid"/> },
<arg type="s" direction="in" name="version"/> { name: 'UninstallExtension',
</method> inSignature: 's',
<method name="UninstallExtension"> outSignature: 'b'
<arg type="s" direction="in" name="uuid"/> }
<arg type="b" direction="out" name="success"/> ],
</method> signals: [{ name: 'ExtensionStatusChanged',
<property name="OverviewActive" type="b" access="readwrite" /> inSignature: 'sis' }],
<property name="ApiVersion" type="i" access="read" /> properties: [{ name: 'OverviewActive',
<property name="ShellVersion" type="s" access="read" /> signature: 'b',
<signal name="ExtensionStatusChanged"> access: 'readwrite' },
<arg type="s" name="uuid"/> { name: 'ApiVersion',
<arg type="i" name="state"/> signature: 'i',
<arg type="s" name="error"/> access: 'read' },
</signal> { name: 'ShellVersion',
</interface>; signature: 's',
access: 'read' }]
};
function GnomeShell() { function GnomeShell() {
this._init(); this._init();
@ -72,8 +73,7 @@ function GnomeShell() {
GnomeShell.prototype = { GnomeShell.prototype = {
_init: function() { _init: function() {
this._dbusImpl = Gio.DBusExportedObject.wrapJSObject(GnomeShellIface, this); DBus.session.exportObject('/org/gnome/Shell', this);
this._dbusImpl.export(Gio.DBus.session, '/org/gnome/Shell');
ExtensionSystem.connect('extension-state-changed', ExtensionSystem.connect('extension-state-changed',
Lang.bind(this, this._extensionStateChanged)); Lang.bind(this, this._extensionStateChanged));
}, },
@ -93,9 +93,6 @@ GnomeShell.prototype = {
* *
*/ */
Eval: function(code) { Eval: function(code) {
if (!global.settings.get_boolean('development-tools'))
return [false, null];
let returnValue; let returnValue;
let success; let success;
try { try {
@ -156,33 +153,11 @@ GnomeShell.prototype = {
}, },
ListExtensions: function() { ListExtensions: function() {
let out; return ExtensionSystem.extensionMeta;
for (let uuid in ExtensionSystem.extensionMeta) {
let dbusObj = this.GetExtensionInfo(uuid);
out[uuid] = dbusObj;
}
return out;
}, },
GetExtensionInfo: function(uuid) { GetExtensionInfo: function(uuid) {
let meta = ExtensionSystem.extensionMeta[uuid] || {}; return ExtensionSystem.extensionMeta[uuid] || {};
let out;
for (let key in meta) {
let val = meta[key];
let type;
switch (typeof val) {
case 'object':
throw Error('Extension had a nested object in the metadata. This is not supported');
case 'string':
type = 's';
break;
case 'number':
type = 'd';
break;
}
out[key] = GLib.Variant.new(type, val);
}
return out;
}, },
GetExtensionErrors: function(uuid) { GetExtensionErrors: function(uuid) {
@ -227,7 +202,12 @@ GnomeShell.prototype = {
ShellVersion: Config.PACKAGE_VERSION, ShellVersion: Config.PACKAGE_VERSION,
_extensionStateChanged: function(_, newState) { _extensionStateChanged: function(_, newState) {
this._dbusImpl.emit_signal('ExtensionStatusChanged', DBus.session.emit_signal('/org/gnome/Shell',
GLib.Variant.new('(sis)', [newState.uuid, newState.state, newState.error])); 'org.gnome.Shell',
'ExtensionStatusChanged', 'sis',
[newState.uuid, newState.state, newState.error]);
} }
}; };
DBus.conformExport(GnomeShell.prototype, GnomeShellIface);

View File

@ -1,7 +1,7 @@
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*- // -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
const DBus = imports.dbus; const DBus = imports.dbus;
const GDesktopEnums = imports.gi.GDesktopEnums; const GConf = imports.gi.GConf;
const Gio = imports.gi.Gio; const Gio = imports.gi.Gio;
const Gtk = imports.gi.Gtk; const Gtk = imports.gi.Gtk;
const Lang = imports.lang; const Lang = imports.lang;
@ -30,8 +30,8 @@ const DPI_FACTOR_LARGE = 1.25;
const DPI_FACTOR_LARGER = 1.5; const DPI_FACTOR_LARGER = 1.5;
const DPI_FACTOR_LARGEST = 2.0; const DPI_FACTOR_LARGEST = 2.0;
const WM_SCHEMA = 'org.gnome.desktop.wm.preferences'; const KEY_META_DIR = '/apps/metacity/general';
const KEY_VISUAL_BELL = 'visual-bell'; const KEY_VISUAL_BELL = KEY_META_DIR + '/visual_bell';
const DESKTOP_INTERFACE_SCHEMA = 'org.gnome.desktop.interface'; const DESKTOP_INTERFACE_SCHEMA = 'org.gnome.desktop.interface';
const KEY_GTK_THEME = 'gtk-theme'; const KEY_GTK_THEME = 'gtk-theme';
@ -50,6 +50,10 @@ ATIndicator.prototype = {
_init: function() { _init: function() {
PanelMenu.SystemStatusButton.prototype._init.call(this, 'preferences-desktop-accessibility', null); PanelMenu.SystemStatusButton.prototype._init.call(this, 'preferences-desktop-accessibility', null);
let client = GConf.Client.get_default();
client.add_dir(KEY_META_DIR, GConf.ClientPreloadType.PRELOAD_ONELEVEL, null);
client.notify_add(KEY_META_DIR, Lang.bind(this, this._keyChanged), null, null);
let highContrast = this._buildHCItem(); let highContrast = this._buildHCItem();
this.menu.addMenuItem(highContrast); this.menu.addMenuItem(highContrast);
@ -68,7 +72,7 @@ ATIndicator.prototype = {
'screen-keyboard-enabled'); 'screen-keyboard-enabled');
this.menu.addMenuItem(screenKeyboard); this.menu.addMenuItem(screenKeyboard);
let visualBell = this._buildItem(_("Visual Alerts"), WM_SCHEMA, KEY_VISUAL_BELL); let visualBell = this._buildItemGConf(_("Visual Alerts"), client, KEY_VISUAL_BELL);
this.menu.addMenuItem(visualBell); this.menu.addMenuItem(visualBell);
let stickyKeys = this._buildItem(_("Sticky Keys"), A11Y_SCHEMA, KEY_STICKY_KEYS_ENABLED); let stickyKeys = this._buildItem(_("Sticky Keys"), A11Y_SCHEMA, KEY_STICKY_KEYS_ENABLED);
@ -98,6 +102,22 @@ ATIndicator.prototype = {
return widget; return widget;
}, },
_buildItemGConf: function(string, client, key) {
function on_get() {
return client.get_bool(key);
}
let widget = this._buildItemExtended(string,
client.get_bool(key),
client.key_is_writable(key),
function(enabled) {
client.set_bool(key, enabled);
});
this.connect('gconf-changed', function() {
widget.setToggleState(client.get_bool(key));
});
return widget;
},
_buildItem: function(string, schema, key) { _buildItem: function(string, schema, key) {
let settings = new Gio.Settings({ schema: schema }); let settings = new Gio.Settings({ schema: schema });
let widget = this._buildItemExtended(string, let widget = this._buildItemExtended(string,
@ -171,6 +191,10 @@ ATIndicator.prototype = {
widget.setToggleState(active); widget.setToggleState(active);
}); });
return widget; return widget;
},
_keyChanged: function() {
this.emit('gconf-changed');
} }
}; };
Signals.addSignalMethods(ATIndicator.prototype); Signals.addSignalMethods(ATIndicator.prototype);

View File

@ -204,10 +204,9 @@ Indicator.prototype = {
_buildDeviceSubMenu: function(item, device) { _buildDeviceSubMenu: function(item, device) {
if (device.can_connect) { if (device.can_connect) {
let menuitem = new PopupMenu.PopupSwitchMenuItem(_("Connection"), device.connected);
item._connected = device.connected; item._connected = device.connected;
item._connectedMenuItem = menuitem; item._connectedMenuitem = new PopupMenu.PopupSwitchMenuItem(_("Connection"), device.connected);
menuitem.connect('toggled', Lang.bind(this, function() { item._connectedMenuitem.connect('toggled', Lang.bind(this, function() {
if (item._connected > ConnectionState.CONNECTED) { if (item._connected > ConnectionState.CONNECTED) {
// operation already in progress, revert // operation already in progress, revert
// (should not happen anyway) // (should not happen anyway)
@ -242,7 +241,7 @@ Indicator.prototype = {
} }
})); }));
item.menu.addMenuItem(menuitem); item.menu.addMenuItem(item._connectedMenuitem);
} }
if (device.capabilities & GnomeBluetoothApplet.Capabilities.OBEX_PUSH) { if (device.capabilities & GnomeBluetoothApplet.Capabilities.OBEX_PUSH) {

View File

@ -1,7 +1,7 @@
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*- // -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
const ByteArray = imports.byteArray; const ByteArray = imports.byteArray;
const DBus = imports.dbus;
const GLib = imports.gi.GLib; const GLib = imports.gi.GLib;
const Gio = imports.gi.Gio;
const GObject = imports.gi.GObject; const GObject = imports.gi.GObject;
const Lang = imports.lang; const Lang = imports.lang;
const Mainloop = imports.mainloop; const Mainloop = imports.mainloop;
@ -2065,11 +2065,10 @@ NMApplet.prototype = {
} }
this.setIcon('network-wireless-connected'); this.setIcon('network-wireless-connected');
} else { } else {
if (this._activeAccessPoint != ap) { if (this._accessPointUpdateId && this._activeAccessPoint != ap) {
if (this._accessPointUpdateId) this._activeAccessPoint.disconnect(this._accessPointUpdateId);
this._activeAccessPoint.disconnect(this._accessPointUpdateId);
this._activeAccessPoint = ap; this._activeAccessPoint = ap;
this._activeAccessPointUpdateId = ap.connect('notify::strength', Lang.bind(this, function() { this._activeAccessPointUpdateId = ap.connect('notify::strength', Lang.bind(function() {
this.setIcon('network-wireless-signal-' + signalToIcon(ap.strength)); this.setIcon('network-wireless-signal-' + signalToIcon(ap.strength));
})); }));
} }
@ -2096,9 +2095,8 @@ NMApplet.prototype = {
break; break;
} }
if (dev.mobileDevice != this._mobileUpdateDevice) { if (this._mobileUpdateId && this._mobileUpdateDevice != dev) {
if (this._mobileUpdateId) this._mobileUpdateDevice.disconnect(this._mobileUpdateId);
this._mobileUpdateDevice.disconnect(this._mobileUpdateId);
this._mobileUpdateDevice = dev.mobileDevice; this._mobileUpdateDevice = dev.mobileDevice;
this._mobileUpdateId = dev.mobileDevice.connect('notify::signal-quality', Lang.bind(this, function() { this._mobileUpdateId = dev.mobileDevice.connect('notify::signal-quality', Lang.bind(this, function() {
this.setIcon('network-cellular-signal-' + signalToIcon(dev.mobileDevice.signal_quality)); this.setIcon('network-cellular-signal-' + signalToIcon(dev.mobileDevice.signal_quality));

View File

@ -1,7 +1,7 @@
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*- // -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
const Gio = imports.gi.Gio; const Gio = imports.gi.Gio;
const GLib = imports.gi.GLib; const DBus = imports.dbus;
const Lang = imports.lang; const Lang = imports.lang;
const Mainloop = imports.mainloop; const Mainloop = imports.mainloop;
const Shell = imports.gi.Shell; const Shell = imports.gi.Shell;
@ -40,18 +40,20 @@ const UPDeviceState = {
PENDING_DISCHARGE: 6 PENDING_DISCHARGE: 6
}; };
const PowerManagerInterface = <interface name="org.gnome.SettingsDaemon.Power"> const PowerManagerInterface = {
<method name="GetDevices"> name: 'org.gnome.SettingsDaemon.Power',
<arg type="a(susdut)" direction="out" /> methods: [
</method> { name: 'GetDevices', inSignature: '', outSignature: 'a(susdut)' },
<method name="GetPrimaryDevice"> { name: 'GetPrimaryDevice', inSignature: '', outSignature: '(susdut)' },
<arg type="(susdut)" direction="out" /> ],
</method> signals: [
<signal name="Changed" /> { name: 'Changed', inSignature: '' },
<property name="Icon" type="s" access="read" /> ],
</interface>; properties: [
{ name: 'Icon', signature: 's', access: 'read' },
const PowerManagerProxy = Gio.DBusProxy.makeProxyWrapper(PowerManagerInterface); ]
};
let PowerManagerProxy = DBus.makeProxyClass(PowerManagerInterface);
function Indicator() { function Indicator() {
this._init.apply(this, arguments); this._init.apply(this, arguments);
@ -62,7 +64,7 @@ Indicator.prototype = {
_init: function() { _init: function() {
PanelMenu.SystemStatusButton.prototype._init.call(this, 'battery-missing'); PanelMenu.SystemStatusButton.prototype._init.call(this, 'battery-missing');
this._proxy = new PowerManagerProxy(Gio.DBus.session, BUS_NAME, OBJECT_PATH); this._proxy = new PowerManagerProxy(DBus.session, BUS_NAME, OBJECT_PATH);
this._deviceItems = [ ]; this._deviceItems = [ ];
this._hasPrimary = false; this._hasPrimary = false;
@ -79,19 +81,19 @@ Indicator.prototype = {
this.menu.addMenuItem(new PopupMenu.PopupSeparatorMenuItem()); this.menu.addMenuItem(new PopupMenu.PopupSeparatorMenuItem());
this.menu.addSettingsAction(_("Power Settings"), 'gnome-power-panel.desktop'); this.menu.addSettingsAction(_("Power Settings"), 'gnome-power-panel.desktop');
this._proxy.connectSignal('Changed', Lang.bind(this, this._devicesChanged)); this._proxy.connect('Changed', Lang.bind(this, this._devicesChanged));
this._devicesChanged(); this._devicesChanged();
}, },
_readPrimaryDevice: function() { _readPrimaryDevice: function() {
this._proxy.GetPrimaryDeviceRemote(Lang.bind(this, function(result, error) { this._proxy.GetPrimaryDeviceRemote(Lang.bind(this, function(device, error) {
if (error) { if (error) {
this._hasPrimary = false; this._hasPrimary = false;
this._primaryDeviceId = null; this._primaryDeviceId = null;
this._batteryItem.actor.hide(); this._batteryItem.actor.hide();
return; return;
} }
let [[device_id, device_type, icon, percentage, state, seconds]] = result; let [device_id, device_type, icon, percentage, state, seconds] = device;
if (device_type == UPDeviceType.BATTERY) { if (device_type == UPDeviceType.BATTERY) {
this._hasPrimary = true; this._hasPrimary = true;
let time = Math.round(seconds / 60); let time = Math.round(seconds / 60);
@ -128,7 +130,7 @@ Indicator.prototype = {
}, },
_readOtherDevices: function() { _readOtherDevices: function() {
this._proxy.GetDevicesRemote(Lang.bind(this, function(result, error) { this._proxy.GetDevicesRemote(Lang.bind(this, function(devices, error) {
this._deviceItems.forEach(function(i) { i.destroy(); }); this._deviceItems.forEach(function(i) { i.destroy(); });
this._deviceItems = []; this._deviceItems = [];
@ -137,7 +139,6 @@ Indicator.prototype = {
} }
let position = 0; let position = 0;
let [devices] = result;
for (let i = 0; i < devices.length; i++) { for (let i = 0; i < devices.length; i++) {
let [device_id, device_type] = devices[i]; let [device_id, device_type] = devices[i];
if (device_type == UPDeviceType.AC_POWER || device_id == this._primaryDeviceId) if (device_type == UPDeviceType.AC_POWER || device_id == this._primaryDeviceId)
@ -152,15 +153,16 @@ Indicator.prototype = {
}, },
_devicesChanged: function() { _devicesChanged: function() {
let icon = this._proxy.Icon; this._proxy.GetRemote('Icon', Lang.bind(this, function(icon, error) {
if (icon) { if (icon) {
let gicon = Gio.icon_new_for_string(icon); let gicon = Gio.icon_new_for_string(icon);
this.setGIcon(gicon); this.setGIcon(gicon);
this.actor.show(); this.actor.show();
} else { } else {
this.menu.close(); this.menu.close();
this.actor.hide(); this.actor.hide();
} }
}));
this._readPrimaryDevice(); this._readPrimaryDevice();
this._readOtherDevices(); this._readOtherDevices();
} }

View File

@ -1,6 +1,7 @@
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*- // -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
const Clutter = imports.gi.Clutter; const Clutter = imports.gi.Clutter;
const DBus = imports.dbus;
const Lang = imports.lang; const Lang = imports.lang;
const Mainloop = imports.mainloop; const Mainloop = imports.mainloop;
const Shell = imports.gi.Shell; const Shell = imports.gi.Shell;

View File

@ -1,5 +1,6 @@
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*- // -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
const DBus = imports.dbus;
const Gio = imports.gi.Gio; const Gio = imports.gi.Gio;
const GLib = imports.gi.GLib; const GLib = imports.gi.GLib;
const Lang = imports.lang; const Lang = imports.lang;
@ -899,7 +900,7 @@ ChatNotification.prototype = {
} }
let groups = this._contentArea.get_children(); let groups = this._contentArea.get_children();
for (let i = 0; i < groups.length; i++) { for (let i = 0; i < groups.length; i ++) {
let group = groups[i]; let group = groups[i];
if (group.get_children().length == 0) if (group.get_children().length == 0)
group.destroy(); group.destroy();
@ -937,7 +938,7 @@ ChatNotification.prototype = {
let body = highlighter.actor; let body = highlighter.actor;
let styles = props.styles; let styles = props.styles;
for (let i = 0; i < styles.length; i++) for (let i = 0; i < styles.length; i ++)
body.add_style_class_name(styles[i]); body.add_style_class_name(styles[i]);
let group = props.group; let group = props.group;
@ -1296,7 +1297,7 @@ MultiNotificationSource.prototype = {
}, },
createNotificationIcon: function() { createNotificationIcon: function() {
return new St.Icon({ gicon: Gio.icon_new_for_string(this._icon), return new St.Icon({ gicon: Shell.util_icon_from_string(this._icon),
icon_type: St.IconType.FULLCOLOR, icon_type: St.IconType.FULLCOLOR,
icon_size: this.ICON_SIZE }); icon_size: this.ICON_SIZE });
} }

View File

@ -1,6 +1,7 @@
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*- // -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
const AccountsService = imports.gi.AccountsService; const AccountsService = imports.gi.AccountsService;
const DBus = imports.dbus;
const Gio = imports.gi.Gio; const Gio = imports.gi.Gio;
const GLib = imports.gi.GLib; const GLib = imports.gi.GLib;
const Lang = imports.lang; const Lang = imports.lang;
@ -157,31 +158,21 @@ IMStatusChooserItem.prototype = {
Lang.bind(this, this._changeIMStatus)); Lang.bind(this, this._changeIMStatus));
this._presence = new GnomeSession.Presence(); this._presence = new GnomeSession.Presence();
this._presence.connectSignal('StatusChanged', Lang.bind(this, function(proxy, senderName, [status]) { this._presence.connect('StatusChanged',
this._sessionStatusChanged(status); Lang.bind(this, this._sessionStatusChanged));
}));
this._sessionPresenceRestored = false; this._sessionPresenceRestored = false;
this._imPresenceRestored = false; this._imPresenceRestored = false;
this._currentPresence = undefined; this._currentPresence = undefined;
this._accountMgr = Tp.AccountManager.dup(); this._accountMgr = Tp.AccountManager.dup()
this._accountMgr.connect('most-available-presence-changed', this._accountMgr.connect('most-available-presence-changed',
Lang.bind(this, this._IMStatusChanged)); Lang.bind(this, this._IMStatusChanged));
this._accountMgr.connect('account-enabled',
Lang.bind(this, this._IMAccountsChanged));
this._accountMgr.connect('account-disabled',
Lang.bind(this, this._IMAccountsChanged));
this._accountMgr.connect('account-removed',
Lang.bind(this, this._IMAccountsChanged));
this._accountMgr.prepare_async(null, Lang.bind(this, this._accountMgr.prepare_async(null, Lang.bind(this,
function(mgr) { function(mgr) {
let [presence, status, msg] = mgr.get_most_available_presence(); let [presence, status, msg] = mgr.get_most_available_presence();
let savedPresence = global.settings.get_int('saved-im-presence'); let savedPresence = global.settings.get_int('saved-im-presence');
this._IMAccountsChanged(mgr);
if (savedPresence == presence) { if (savedPresence == presence) {
this._IMStatusChanged(mgr, presence, status, msg); this._IMStatusChanged(mgr, presence, status, msg);
} else { } else {
@ -208,21 +199,6 @@ IMStatusChooserItem.prototype = {
})); }));
}, },
destroy: function() {
// clean up signal handlers
if (this._userLoadedId != 0) {
this._user.disconnect(this._userLoadedId);
this._userLoadedId = 0;
}
if (this._userChangedId != 0) {
this._user.disconnect(this._userChangedId);
this._userChangedId = 0;
}
PopupMenu.PopupBaseMenuItem.prototype.destroy.call(this);
},
// Override getColumnWidths()/setColumnWidths() to make the item // Override getColumnWidths()/setColumnWidths() to make the item
// independent from the overall column layout of the menu // independent from the overall column layout of the menu
getColumnWidths: function() { getColumnWidths: function() {
@ -291,13 +267,6 @@ IMStatusChooserItem.prototype = {
} }
}, },
_IMAccountsChanged: function(mgr) {
let accounts = mgr.get_valid_accounts().filter(function(account) {
return account.enabled;
});
this._combo.setSensitive(accounts.length > 0);
},
_IMStatusChanged: function(accountMgr, presence, status, message) { _IMStatusChanged: function(accountMgr, presence, status, message) {
if (!this._imPresenceRestored) if (!this._imPresenceRestored)
this._imPresenceRestored = true; this._imPresenceRestored = true;
@ -309,14 +278,12 @@ IMStatusChooserItem.prototype = {
this._setComboboxPresence(presence); this._setComboboxPresence(presence);
if (!this._sessionPresenceRestored) { if (!this._sessionPresenceRestored) {
this._presence.connectSignal('StatusChanged', Lang.bind(this, function (proxy, senderName, [status]) { this._presence.getStatus(Lang.bind(this, this._sessionStatusChanged));
this._sessionStatusChanged(status);
}));
return; return;
} }
if (presence == Tp.ConnectionPresenceType.AVAILABLE) if (presence == Tp.ConnectionPresenceType.AVAILABLE)
this._presence.status = GnomeSession.PresenceStatus.AVAILABLE; this._presence.setStatus(GnomeSession.PresenceStatus.AVAILABLE);
// We ignore the actual value of _expectedPresence and never safe // We ignore the actual value of _expectedPresence and never safe
// the first presence change after an "automatic" change, assuming // the first presence change after an "automatic" change, assuming
@ -395,14 +362,14 @@ IMStatusChooserItem.prototype = {
return this._currentPresence; return this._currentPresence;
}, },
_sessionStatusChanged: function(sessionStatus) { _sessionStatusChanged: function(sessionPresence, sessionStatus) {
if (!this._imPresenceRestored) if (!this._imPresenceRestored)
return; return;
if (!this._sessionPresenceRestored) { if (!this._sessionPresenceRestored) {
let savedStatus = global.settings.get_int('saved-session-presence'); let savedStatus = global.settings.get_int('saved-session-presence');
if (sessionStatus != savedStatus) { if (sessionStatus != savedStatus) {
this._presence.status = savedStatus; this._presence.setStatus(savedStatus);
return; return;
} }
this._sessionPresenceRestored = true; this._sessionPresenceRestored = true;
@ -448,7 +415,7 @@ UserMenuButton.prototype = {
this._session = new GnomeSession.SessionManager(); this._session = new GnomeSession.SessionManager();
this._haveShutdown = true; this._haveShutdown = true;
this._accountMgr = Tp.AccountManager.dup(); this._account_mgr = Tp.AccountManager.dup()
this._upClient = new UPowerGlib.Client(); this._upClient = new UPowerGlib.Client();
this._screenSaverProxy = new ScreenSaver.ScreenSaverProxy(); this._screenSaverProxy = new ScreenSaver.ScreenSaverProxy();
@ -471,13 +438,13 @@ UserMenuButton.prototype = {
this._idleIcon = new St.Icon({ icon_name: 'user-idle', this._idleIcon = new St.Icon({ icon_name: 'user-idle',
style_class: 'popup-menu-icon' }); style_class: 'popup-menu-icon' });
this._presence.connectSignal('StatusChanged', Lang.bind(this, function (proxy, senderName, [status]) { this._presence.connect('StatusChanged',
this._updateSwitch(status); Lang.bind(this, this._updateSwitch));
})); this._presence.getStatus(Lang.bind(this, this._updateSwitch));
this._accountMgr.connect('most-available-presence-changed', this._account_mgr.connect('most-available-presence-changed',
Lang.bind(this, this._updatePresenceIcon)); Lang.bind(this, this._updatePresenceIcon));
this._accountMgr.prepare_async(null, Lang.bind(this, this._account_mgr.prepare_async(null, Lang.bind(this,
function(mgr) { function(mgr) {
let [presence, s, msg] = mgr.get_most_available_presence(); let [presence, s, msg] = mgr.get_most_available_presence();
this._updatePresenceIcon(mgr, presence, s, msg); this._updatePresenceIcon(mgr, presence, s, msg);
@ -490,16 +457,8 @@ UserMenuButton.prototype = {
this._updateUserName(); this._updateUserName();
this._createSubMenu(); this._createSubMenu();
this._updateSwitch(this._presence.status);
this._presence.connectSignal('StatusChanged', Lang.bind(this, function (proxy, senderName, [status]) {
this._updateSwitch(status);
}));
this._userManager.connect('notify::is-loaded', this._userManager.connect('notify::is-loaded',
Lang.bind(this, this._updateSwitchUser)); Lang.bind(this, this._updateSwitchUser));
this._userManager.connect('notify::has-multiple-users',
Lang.bind(this, this._updateSwitchUser));
this._userManager.connect('user-added', this._userManager.connect('user-added',
Lang.bind(this, this._updateSwitchUser)); Lang.bind(this, this._updateSwitchUser));
this._userManager.connect('user-removed', this._userManager.connect('user-removed',
@ -544,9 +503,7 @@ UserMenuButton.prototype = {
_updateSwitchUser: function() { _updateSwitchUser: function() {
let allowSwitch = !this._lockdownSettings.get_boolean(DISABLE_USER_SWITCH_KEY); let allowSwitch = !this._lockdownSettings.get_boolean(DISABLE_USER_SWITCH_KEY);
if (allowSwitch && if (allowSwitch && this._userManager.can_switch ())
this._userManager.can_switch() &&
this._userManager.has_multiple_users)
this._loginScreenItem.actor.show(); this._loginScreenItem.actor.show();
else else
this._loginScreenItem.actor.hide(); this._loginScreenItem.actor.hide();
@ -600,7 +557,7 @@ UserMenuButton.prototype = {
} }
}, },
_updateSwitch: function(status) { _updateSwitch: function(presence, status) {
let active = status == GnomeSession.PresenceStatus.AVAILABLE; let active = status == GnomeSession.PresenceStatus.AVAILABLE;
this._notificationsSwitch.setToggleState(active); this._notificationsSwitch.setToggleState(active);
}, },
@ -681,7 +638,7 @@ UserMenuButton.prototype = {
} else { } else {
status = GnomeSession.PresenceStatus.BUSY; status = GnomeSession.PresenceStatus.BUSY;
let [presence, s, msg] = this._accountMgr.get_most_available_presence(); let [presence, s, msg] = this._account_mgr.get_most_available_presence();
let newPresence = this._statusChooser.getIMPresenceForSessionStatus(status); let newPresence = this._statusChooser.getIMPresenceForSessionStatus(status);
if (newPresence != presence && if (newPresence != presence &&
newPresence == Tp.ConnectionPresenceType.BUSY) newPresence == Tp.ConnectionPresenceType.BUSY)
@ -689,7 +646,7 @@ UserMenuButton.prototype = {
_("Notifications are now disabled, including chat messages. Your online status has been adjusted to let others know that you might not see their messages.")); _("Notifications are now disabled, including chat messages. Your online status has been adjusted to let others know that you might not see their messages."));
} }
this._presence.status = status; this._presence.setStatus(status);
}, },
_onMyAccountActivate: function() { _onMyAccountActivate: function() {

View File

@ -121,15 +121,15 @@ WindowManager.prototype = {
this._shellwm.connect('destroy', Lang.bind(this, this._destroyWindow)); this._shellwm.connect('destroy', Lang.bind(this, this._destroyWindow));
this._workspaceSwitcherPopup = null; this._workspaceSwitcherPopup = null;
this.setKeybindingHandler('switch-to-workspace-left', Lang.bind(this, this._showWorkspaceSwitcher)); this.setKeybindingHandler('switch_to_workspace_left', Lang.bind(this, this._showWorkspaceSwitcher));
this.setKeybindingHandler('switch-to-workspace-right', Lang.bind(this, this._showWorkspaceSwitcher)); this.setKeybindingHandler('switch_to_workspace_right', Lang.bind(this, this._showWorkspaceSwitcher));
this.setKeybindingHandler('switch-to-workspace-up', Lang.bind(this, this._showWorkspaceSwitcher)); this.setKeybindingHandler('switch_to_workspace_up', Lang.bind(this, this._showWorkspaceSwitcher));
this.setKeybindingHandler('switch-to-workspace-down', Lang.bind(this, this._showWorkspaceSwitcher)); this.setKeybindingHandler('switch_to_workspace_down', Lang.bind(this, this._showWorkspaceSwitcher));
this.setKeybindingHandler('switch-windows', Lang.bind(this, this._startAppSwitcher)); this.setKeybindingHandler('switch_windows', Lang.bind(this, this._startAppSwitcher));
this.setKeybindingHandler('switch-group', Lang.bind(this, this._startAppSwitcher)); this.setKeybindingHandler('switch_group', Lang.bind(this, this._startAppSwitcher));
this.setKeybindingHandler('switch-windows-backward', Lang.bind(this, this._startAppSwitcher)); this.setKeybindingHandler('switch_windows_backward', Lang.bind(this, this._startAppSwitcher));
this.setKeybindingHandler('switch-group-backward', Lang.bind(this, this._startAppSwitcher)); this.setKeybindingHandler('switch_group_backward', Lang.bind(this, this._startAppSwitcher));
this.setKeybindingHandler('switch-panels', Lang.bind(this, this._startA11ySwitcher)); this.setKeybindingHandler('switch_panels', Lang.bind(this, this._startA11ySwitcher));
Main.overview.connect('showing', Lang.bind(this, function() { Main.overview.connect('showing', Lang.bind(this, function() {
for (let i = 0; i < this._dimmedWindows.length; i++) for (let i = 0; i < this._dimmedWindows.length; i++)
@ -160,7 +160,7 @@ WindowManager.prototype = {
}, },
_shouldAnimate : function(actor) { _shouldAnimate : function(actor) {
if (Main.overview.visible || this._animationBlockCount > 0) if (Main.overview.visible || this._animationsBlocked > 0)
return false; return false;
if (actor && (actor.meta_window.get_window_type() != Meta.WindowType.NORMAL)) if (actor && (actor.meta_window.get_window_type() != Meta.WindowType.NORMAL))
return false; return false;
@ -556,15 +556,15 @@ WindowManager.prototype = {
if (this._workspaceSwitcherPopup == null) if (this._workspaceSwitcherPopup == null)
this._workspaceSwitcherPopup = new WorkspaceSwitcherPopup.WorkspaceSwitcherPopup(); this._workspaceSwitcherPopup = new WorkspaceSwitcherPopup.WorkspaceSwitcherPopup();
if (binding == 'switch-to-workspace-up') if (binding == 'switch_to_workspace_up')
this.actionMoveWorkspaceUp(); this.actionMoveWorkspaceUp();
else if (binding == 'switch-to-workspace-down') else if (binding == 'switch_to_workspace_down')
this.actionMoveWorkspaceDown(); this.actionMoveWorkspaceDown();
// left/right would effectively act as synonyms for up/down if we enabled them; // left/right would effectively act as synonyms for up/down if we enabled them;
// but that could be considered confusing. // but that could be considered confusing.
// else if (binding == 'switch-to-workspace-left') // else if (binding == 'switch_to_workspace_left')
// this.actionMoveWorkspaceLeft(); // this.actionMoveWorkspaceLeft();
// else if (binding == 'switch-to-workspace-right') // else if (binding == 'switch_to_workspace_right')
// this.actionMoveWorkspaceRight(); // this.actionMoveWorkspaceRight();
}, },

View File

@ -1,7 +1,7 @@
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*- // -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
const Clutter = imports.gi.Clutter; const Clutter = imports.gi.Clutter;
const Gio = imports.gi.Gio; const GConf = imports.gi.GConf;
const Lang = imports.lang; const Lang = imports.lang;
const Mainloop = imports.mainloop; const Mainloop = imports.mainloop;
const Meta = imports.gi.Meta; const Meta = imports.gi.Meta;
@ -28,8 +28,7 @@ const CLOSE_BUTTON_FADE_TIME = 0.1;
const DRAGGING_WINDOW_OPACITY = 100; const DRAGGING_WINDOW_OPACITY = 100;
const BUTTON_LAYOUT_SCHEMA = 'org.gnome.shell.overrides'; const BUTTON_LAYOUT_KEY = '/desktop/gnome/shell/windows/button_layout';
const BUTTON_LAYOUT_KEY = 'button-layout';
// Define a layout scheme for small window counts. For larger // Define a layout scheme for small window counts. For larger
// counts we fall back to an algorithm. We need more schemes here // counts we fall back to an algorithm. We need more schemes here
@ -528,8 +527,8 @@ WindowOverlay.prototype = {
let button = this.closeButton; let button = this.closeButton;
let title = this.title; let title = this.title;
let settings = new Gio.Settings({ schema: BUTTON_LAYOUT_SCHEMA }); let gconf = GConf.Client.get_default();
let layout = settings.get_string(BUTTON_LAYOUT_KEY); let layout = gconf.get_string(BUTTON_LAYOUT_KEY);
let rtl = St.Widget.get_default_direction() == St.TextDirection.RTL; let rtl = St.Widget.get_default_direction() == St.TextDirection.RTL;
let split = layout.split(":"); let split = layout.split(":");

View File

@ -20,11 +20,6 @@ let MAX_THUMBNAIL_SCALE = 1/8.;
const RESCALE_ANIMATION_TIME = 0.2; const RESCALE_ANIMATION_TIME = 0.2;
const SLIDE_ANIMATION_TIME = 0.2; const SLIDE_ANIMATION_TIME = 0.2;
// When we create workspaces by dragging, we add a "cut" into the top and
// bottom of each workspace so that the user doesn't have to hit the
// placeholder exactly.
const WORKSPACE_CUT_SIZE = 10;
function WindowClone(realWindow) { function WindowClone(realWindow) {
this._init(realWindow); this._init(realWindow);
} }
@ -153,6 +148,8 @@ WorkspaceThumbnail.prototype = {
this.metaWorkspace = metaWorkspace; this.metaWorkspace = metaWorkspace;
this.monitorIndex = Main.layoutManager.primaryIndex; this.monitorIndex = Main.layoutManager.primaryIndex;
this._removed = false;
this.actor = new St.Group({ reactive: true, this.actor = new St.Group({ reactive: true,
clip_to_allocation: true, clip_to_allocation: true,
style_class: 'workspace-thumbnail' }); style_class: 'workspace-thumbnail' });
@ -178,17 +175,21 @@ WorkspaceThumbnail.prototype = {
let monitor = Main.layoutManager.primaryMonitor; let monitor = Main.layoutManager.primaryMonitor;
this.setPorthole(monitor.x, monitor.y, monitor.width, monitor.height); 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 // Create clones for windows that should be visible in the Overview
this._windows = []; this._windows = [];
this._allWindows = [];
this._minimizedChangedIds = [];
for (let i = 0; i < windows.length; i++) { for (let i = 0; i < windows.length; i++) {
windows[i].meta_window._minimizedChangedId = let minimizedChangedId =
windows[i].meta_window.connect('notify::minimized', windows[i].meta_window.connect('notify::minimized',
Lang.bind(this, Lang.bind(this,
this._updateMinimized)); 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]); this._addWindowClone(windows[i]);
} }
} }
@ -273,17 +274,11 @@ WorkspaceThumbnail.prototype = {
let clone = this._windows[index]; let clone = this._windows[index];
this._windows.splice(index, 1); this._windows.splice(index, 1);
if (win && this._isOverviewWindow(win)) {
if (metaWin._minimizedChangedId) {
metaWin.disconnect(metaWin._minimizedChangedId);
delete metaWin._minimizedChangedId;
}
}
clone.destroy(); clone.destroy();
}, },
_doAddWindow : function(metaWin) { _doAddWindow : function(metaWin) {
if (this.leavingOverview) if (this._removed)
return; return;
let win = metaWin.get_compositor_private(); let win = metaWin.get_compositor_private();
@ -293,7 +288,7 @@ WorkspaceThumbnail.prototype = {
// the compositor finds out about them... // the compositor finds out about them...
Mainloop.idle_add(Lang.bind(this, Mainloop.idle_add(Lang.bind(this,
function () { function () {
if (this.actor && if (!this._removed &&
metaWin.get_compositor_private() && metaWin.get_compositor_private() &&
metaWin.get_workspace() == this.metaWorkspace) metaWin.get_workspace() == this.metaWorkspace)
this._doAddWindow(metaWin); this._doAddWindow(metaWin);
@ -302,16 +297,19 @@ WorkspaceThumbnail.prototype = {
return; 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 // We might have the window in our list already if it was on all workspaces and
// now was moved to this workspace // now was moved to this workspace
if (this._lookupIndex (metaWin) != -1) if (this._lookupIndex (metaWin) != -1)
return; return;
if (!metaWin._minimizedChangedId)
metaWin._minimizedChangedId = metaWin.connect('notify::minimized',
Lang.bind(this,
this._updateMinimized));
if (!this._isMyWindow(win) || !this._isOverviewWindow(win)) if (!this._isMyWindow(win) || !this._isOverviewWindow(win))
return; return;
@ -323,6 +321,13 @@ WorkspaceThumbnail.prototype = {
}, },
_windowRemoved : function(metaWorkspace, metaWin) { _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); this._doRemoveWindow(metaWin);
}, },
@ -349,27 +354,36 @@ WorkspaceThumbnail.prototype = {
this.actor.destroy(); this.actor.destroy();
}, },
_onDestroy: function(actor) { workspaceRemoved : function() {
if (this._removed)
return;
this._removed = true;
this.metaWorkspace.disconnect(this._windowAddedId); this.metaWorkspace.disconnect(this._windowAddedId);
this.metaWorkspace.disconnect(this._windowRemovedId); this.metaWorkspace.disconnect(this._windowRemovedId);
global.screen.disconnect(this._windowEnteredMonitorId); global.screen.disconnect(this._windowEnteredMonitorId);
global.screen.disconnect(this._windowLeftMonitorId); global.screen.disconnect(this._windowLeftMonitorId);
for (let i = 0; i < this._windows.length; i++) { for (let i = 0; i < this._allWindows.length; i++)
let metaWin = this._windows[i].metaWindow; this._allWindows[i].disconnect(this._minimizedChangedIds[i]);
if (metaWin._minimizedChangedId) { },
metaWin.disconnect(metaWin._minimizedChangedId);
delete metaWin._minimizedChangedId; _onDestroy: function(actor) {
} this.workspaceRemoved();
}
this._windows = []; this._windows = [];
this.actor = null; 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 // Tests if @win belongs to this workspace and monitor
_isMyWindow : function (win) { _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); (!win.get_meta_window() || win.get_meta_window().get_monitor() == this.monitorIndex);
}, },
@ -427,11 +441,6 @@ WorkspaceThumbnail.prototype = {
if (this.state > ThumbnailState.NORMAL) if (this.state > ThumbnailState.NORMAL)
return DND.DragMotionResult.CONTINUE; return DND.DragMotionResult.CONTINUE;
let [w, h] = this.actor.get_transformed_size();
// Bubble up if we're in the "workspace cut".
if (y < WORKSPACE_CUT_SIZE || y > h - WORKSPACE_CUT_SIZE)
return DND.DragMotionResult.CONTINUE;
if (source.realWindow && !this._isMyWindow(source.realWindow)) if (source.realWindow && !this._isMyWindow(source.realWindow))
return DND.DragMotionResult.MOVE_DROP; return DND.DragMotionResult.MOVE_DROP;
if (source.shellWorkspaceLaunch) if (source.shellWorkspaceLaunch)
@ -485,7 +494,6 @@ ThumbnailsBox.prototype = {
this.actor.connect('get-preferred-width', Lang.bind(this, this._getPreferredWidth)); this.actor.connect('get-preferred-width', Lang.bind(this, this._getPreferredWidth));
this.actor.connect('get-preferred-height', Lang.bind(this, this._getPreferredHeight)); this.actor.connect('get-preferred-height', Lang.bind(this, this._getPreferredHeight));
this.actor.connect('allocate', Lang.bind(this, this._allocate)); this.actor.connect('allocate', Lang.bind(this, this._allocate));
this.actor._delegate = this;
// When we animate the scale, we don't animate the requested size of the thumbnails, rather // When we animate the scale, we don't animate the requested size of the thumbnails, rather
// we ask for our final size and then animate within that size. This slightly simplifies the // we ask for our final size and then animate within that size. This slightly simplifies the
@ -509,10 +517,6 @@ ThumbnailsBox.prototype = {
this._indicator = indicator; this._indicator = indicator;
this.actor.add_actor(indicator); this.actor.add_actor(indicator);
this._dropPlaceholderPos = -1;
this._dropPlaceholder = new St.Bin({ style_class: 'placeholder' });
this.actor.add_actor(this._dropPlaceholder);
this._targetScale = 0; this._targetScale = 0;
this._scale = 0; this._scale = 0;
this._pendingScaleUpdate = false; this._pendingScaleUpdate = false;
@ -527,83 +531,6 @@ ThumbnailsBox.prototype = {
this._thumbnails = []; this._thumbnails = [];
}, },
// Draggable target interface
handleDragOver : function(source, actor, x, y, time) {
if (!source.realWindow && !source.shellWorkspaceLaunch)
return DND.DragMotionResult.CONTINUE;
let spacing = this.actor.get_theme_node().get_length('spacing');
let thumbHeight = this._porthole.height * this._scale;
let workspace = -1;
let firstThumbY = this._thumbnails[0].actor.y;
for (let i = 0; i < this._thumbnails.length; i ++) {
let targetBase = firstThumbY + (thumbHeight + spacing) * i;
// Allow the reorder target to have a 10px "cut" into
// each side of the thumbnail, to make dragging onto the
// placeholder easier
let targetTop = targetBase - spacing - WORKSPACE_CUT_SIZE;
let targetBottom = targetBase + WORKSPACE_CUT_SIZE;
// Expand the target to include the placeholder, if it exists.
if (i == this._dropPlaceholderPos)
targetBottom += this._dropPlaceholder.get_height();
if (y > targetTop && y <= targetBottom) {
workspace = i;
break;
}
}
this._dropPlaceholderPos = workspace;
this.actor.queue_relayout();
if (workspace == -1)
return DND.DragMotionResult.CONTINUE;
return DND.DragMotionResult.MOVE_DROP;
},
acceptDrop: function(source, actor, x, y, time) {
if (this._dropPlaceholderPos == -1)
return false;
if (!source.realWindow && !source.shellWorkspaceLaunch)
return false;
let isWindow = !!source.realWindow;
// To create a new workspace, we first slide all the windows on workspaces
// below us to the next workspace, leaving a blank workspace for us to recycle.
let newWorkspaceIndex;
[newWorkspaceIndex, this._dropPlaceholderPos] = [this._dropPlaceholderPos, -1];
// Nab all the windows below us.
let windows = global.get_window_actors().filter(function(win) {
if (isWindow)
return win.get_workspace() >= newWorkspaceIndex && win != source;
else
return win.get_workspace() >= newWorkspaceIndex;
});
// ... move them down one.
windows.forEach(function(win) {
win.meta_window.change_workspace_by_index(win.get_workspace() + 1,
true, time);
});
if (isWindow)
// ... and bam, a workspace, good as new.
source.metaWindow.change_workspace_by_index(newWorkspaceIndex,
true, time);
else (source.shellWorkspaceLaunch)
source.shellWorkspaceLaunch({ workspace: newWorkspaceIndex,
timestamp: time });
return true;
},
show: function() { show: function() {
this._switchWorkspaceNotifyId = this._switchWorkspaceNotifyId =
global.window_manager.connect('switch-workspace', global.window_manager.connect('switch-workspace',
@ -676,8 +603,10 @@ ThumbnailsBox.prototype = {
if (thumbnail.state > ThumbnailState.NORMAL) if (thumbnail.state > ThumbnailState.NORMAL)
continue; continue;
if (currentPos >= start && currentPos < start + count) if (currentPos >= start && currentPos < start + count) {
thumbnail.workspaceRemoved();
this._setThumbnailState(thumbnail, ThumbnailState.REMOVING); this._setThumbnailState(thumbnail, ThumbnailState.REMOVING);
}
currentPos++; currentPos++;
} }
@ -932,18 +861,20 @@ ThumbnailsBox.prototype = {
let y = contentBox.y1; let y = contentBox.y1;
if (this._dropPlaceholderPos == -1) {
Meta.later_add(Meta.LaterType.BEFORE_REDRAW, Lang.bind(this, function() {
this._dropPlaceholder.hide();
}));
}
for (let i = 0; i < this._thumbnails.length; i++) { for (let i = 0; i < this._thumbnails.length; i++) {
let thumbnail = this._thumbnails[i]; let thumbnail = this._thumbnails[i];
if (i > 0) if (i > 0)
y += spacing - Math.round(thumbnail.collapseFraction * spacing); y += spacing - Math.round(thumbnail.collapseFraction * spacing);
// We might end up with thumbnailHeight being something like 99.33
// pixels. To make this work and not end up with a gap at the bottom,
// we need some thumbnails to be 99 pixels and some 100 pixels height;
// we compute an actual scale separately for each thumbnail.
let y1 = Math.round(y);
let y2 = Math.round(y + thumbnailHeight);
let roundedVScale = (y2 - y1) / portholeHeight;
let x1, x2; let x1, x2;
if (rtl) { if (rtl) {
x1 = contentBox.x1 + slideOffset * thumbnail.slidePosition; x1 = contentBox.x1 + slideOffset * thumbnail.slidePosition;
@ -953,27 +884,6 @@ ThumbnailsBox.prototype = {
x2 = x1 + thumbnailWidth; x2 = x1 + thumbnailWidth;
} }
if (i == this._dropPlaceholderPos) {
let [minHeight, placeholderHeight] = this._dropPlaceholder.get_preferred_height(-1);
childBox.x1 = x1;
childBox.x2 = x1 + thumbnailWidth;
childBox.y1 = Math.round(y);
childBox.y2 = Math.round(y + placeholderHeight);
this._dropPlaceholder.allocate(childBox, flags);
Meta.later_add(Meta.LaterType.BEFORE_REDRAW, Lang.bind(this, function() {
this._dropPlaceholder.show();
}));
y += placeholderHeight + spacing;
}
// We might end up with thumbnailHeight being something like 99.33
// pixels. To make this work and not end up with a gap at the bottom,
// we need some thumbnails to be 99 pixels and some 100 pixels height;
// we compute an actual scale separately for each thumbnail.
let y1 = Math.round(y);
let y2 = Math.round(y + thumbnailHeight);
let roundedVScale = (y2 - y1) / portholeHeight;
if (thumbnail.metaWorkspace == indicatorWorkspace) if (thumbnail.metaWorkspace == indicatorWorkspace)
indicatorY = y1; indicatorY = y1;

111
po/bg.po
View File

@ -5,10 +5,10 @@
# #
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: gnome-shell master\n" "Project-Id-Version: gnome-shell gnome-3-2\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2011-10-21 23:34+0300\n" "POT-Creation-Date: 2011-10-21 23:30+0300\n"
"PO-Revision-Date: 2011-10-21 23:34+0300\n" "PO-Revision-Date: 2011-10-21 23:30+0300\n"
"Last-Translator: Ivaylo Valkov <ivaylo@e-valkov.org>\n" "Last-Translator: Ivaylo Valkov <ivaylo@e-valkov.org>\n"
"Language-Team: Bulgarian <dict@fsa-bg.org>\n" "Language-Team: Bulgarian <dict@fsa-bg.org>\n"
"Language: bg\n" "Language: bg\n"
@ -204,7 +204,7 @@ msgid "Not listed?"
msgstr "Липсва в списъка?" msgstr "Липсва в списъка?"
#: ../js/gdm/loginDialog.js:1035 ../js/ui/endSessionDialog.js:426 #: ../js/gdm/loginDialog.js:1035 ../js/ui/endSessionDialog.js:426
#: ../js/ui/extensionSystem.js:520 ../js/ui/networkAgent.js:148 #: ../js/ui/extensionSystem.js:477 ../js/ui/networkAgent.js:148
#: ../js/ui/polkitAuthenticationAgent.js:173 ../js/ui/status/bluetooth.js:480 #: ../js/ui/polkitAuthenticationAgent.js:173 ../js/ui/status/bluetooth.js:480
msgid "Cancel" msgid "Cancel"
msgstr "Отказване" msgstr "Отказване"
@ -218,16 +218,18 @@ msgstr "Регистриране"
msgid "Login Window" msgid "Login Window"
msgstr "Екран за идентификация" msgstr "Екран за идентификация"
#: ../js/gdm/powerMenu.js:116 ../js/ui/userMenu.js:569 #: ../js/gdm/powerMenu.js:116 ../js/ui/userMenu.js:554
#: ../js/ui/userMenu.js:571 ../js/ui/userMenu.js:640 #: ../js/ui/userMenu.js:556 ../js/ui/userMenu.js:625
msgid "Suspend" msgid "Suspend"
msgstr "Приспиване" msgstr "Приспиване"
#: ../js/gdm/powerMenu.js:121 #: ../js/gdm/powerMenu.js:121 ../js/ui/endSessionDialog.js:89
#: ../js/ui/endSessionDialog.js:97 ../js/ui/endSessionDialog.js:106
msgid "Restart" msgid "Restart"
msgstr "Рестартиране" msgstr "Рестартиране"
#: ../js/gdm/powerMenu.js:126 #: ../js/gdm/powerMenu.js:126 ../js/ui/endSessionDialog.js:80
#: ../js/ui/endSessionDialog.js:91
msgid "Power Off" msgid "Power Off"
msgstr "Изключване" msgstr "Изключване"
@ -530,12 +532,10 @@ msgstr "СКОРО ОТВАРЯНИ"
#: ../js/ui/endSessionDialog.js:60 #: ../js/ui/endSessionDialog.js:60
#, c-format #, c-format
msgctxt "title"
msgid "Log Out %s" msgid "Log Out %s"
msgstr "Изход на „%s“" msgstr "Изход на „%s“"
#: ../js/ui/endSessionDialog.js:61 #: ../js/ui/endSessionDialog.js:61 ../js/ui/endSessionDialog.js:75
msgctxt "title"
msgid "Log Out" msgid "Log Out"
msgstr "Изход" msgstr "Изход"
@ -564,16 +564,6 @@ msgstr[1] "Ще излезете от системата автоматично
msgid "Logging out of the system." msgid "Logging out of the system."
msgstr "Излизане от системата." msgstr "Излизане от системата."
#: ../js/ui/endSessionDialog.js:75
msgctxt "button"
msgid "Log Out"
msgstr "Изход"
#: ../js/ui/endSessionDialog.js:80
msgctxt "title"
msgid "Power Off"
msgstr "Изключване"
#: ../js/ui/endSessionDialog.js:81 #: ../js/ui/endSessionDialog.js:81
msgid "Click Power Off to quit these applications and power off the system." msgid "Click Power Off to quit these applications and power off the system."
msgstr "" msgstr ""
@ -591,21 +581,6 @@ msgstr[1] "Системата ще се изключи автоматично с
msgid "Powering off the system." msgid "Powering off the system."
msgstr "Изключване на системата." msgstr "Изключване на системата."
#: ../js/ui/endSessionDialog.js:89 ../js/ui/endSessionDialog.js:106
msgctxt "button"
msgid "Restart"
msgstr "Рестартиране"
#: ../js/ui/endSessionDialog.js:91
msgctxt "button"
msgid "Power Off"
msgstr "Изключване"
#: ../js/ui/endSessionDialog.js:97
msgctxt "title"
msgid "Restart"
msgstr "Рестартиране"
#: ../js/ui/endSessionDialog.js:98 #: ../js/ui/endSessionDialog.js:98
msgid "Click Restart to quit these applications and restart the system." msgid "Click Restart to quit these applications and restart the system."
msgstr "" msgstr ""
@ -623,11 +598,11 @@ msgstr[1] "Системата ще се рестартира автоматич
msgid "Restarting the system." msgid "Restarting the system."
msgstr "Рестартиране на системата." msgstr "Рестартиране на системата."
#: ../js/ui/extensionSystem.js:524 #: ../js/ui/extensionSystem.js:481
msgid "Install" msgid "Install"
msgstr "Инсталиране" msgstr "Инсталиране"
#: ../js/ui/extensionSystem.js:528 #: ../js/ui/extensionSystem.js:485
#, c-format #, c-format
msgid "Download and install '%s' from extensions.gnome.org?" msgid "Download and install '%s' from extensions.gnome.org?"
msgstr "Да се изтегли и инсталира ли „%s“ от from extensions.gnome.org?" msgstr "Да се изтегли и инсталира ли „%s“ от from extensions.gnome.org?"
@ -640,51 +615,37 @@ msgstr "област за уведомяване"
msgid "Keyboard" msgid "Keyboard"
msgstr "Клавиатура" msgstr "Клавиатура"
#: ../js/ui/lookingGlass.js:664 #: ../js/ui/lookingGlass.js:646
msgid "No extensions installed" msgid "No extensions installed"
msgstr "Няма инсталирани разширения" msgstr "Няма инсталирани разширения"
#. Translators: argument is an extension UUID. #: ../js/ui/lookingGlass.js:692
#: ../js/ui/lookingGlass.js:719
#, c-format
msgid "%s has not emitted any errors."
msgstr "Разширението %s не е обозначило никави грешки."
#: ../js/ui/lookingGlass.js:725
msgid "Hide Errors"
msgstr "Скриване на грешките"
#: ../js/ui/lookingGlass.js:729 ../js/ui/lookingGlass.js:779
msgid "Show Errors"
msgstr "Показване на грешките"
#: ../js/ui/lookingGlass.js:738
msgid "Enabled" msgid "Enabled"
msgstr "Включено" msgstr "Включено"
#. translators: #. translators:
#. * The device has been disabled #. * The device has been disabled
#: ../js/ui/lookingGlass.js:740 ../src/gvc/gvc-mixer-control.c:1093 #: ../js/ui/lookingGlass.js:694 ../src/gvc/gvc-mixer-control.c:1093
msgid "Disabled" msgid "Disabled"
msgstr "Изключено" msgstr "Изключено"
#: ../js/ui/lookingGlass.js:742 #: ../js/ui/lookingGlass.js:696
msgid "Error" msgid "Error"
msgstr "Грешка" msgstr "Грешка"
#: ../js/ui/lookingGlass.js:744 #: ../js/ui/lookingGlass.js:698
msgid "Out of date" msgid "Out of date"
msgstr "Остаряло" msgstr "Остаряло"
#: ../js/ui/lookingGlass.js:746 #: ../js/ui/lookingGlass.js:700
msgid "Downloading" msgid "Downloading"
msgstr "Изтегляне" msgstr "Изтегляне"
#: ../js/ui/lookingGlass.js:767 #: ../js/ui/lookingGlass.js:721
msgid "View Source" msgid "View Source"
msgstr "Преглед на изходния код" msgstr "Преглед на изходния код"
#: ../js/ui/lookingGlass.js:773 #: ../js/ui/lookingGlass.js:727
msgid "Web Page" msgid "Web Page"
msgstr "Домашна страница" msgstr "Домашна страница"
@ -1545,39 +1506,39 @@ msgstr "Бездействие"
msgid "Unavailable" msgid "Unavailable"
msgstr "Недостъпно" msgstr "Недостъпно"
#: ../js/ui/userMenu.js:567 ../js/ui/userMenu.js:571 ../js/ui/userMenu.js:641 #: ../js/ui/userMenu.js:552 ../js/ui/userMenu.js:556 ../js/ui/userMenu.js:626
msgid "Power Off..." msgid "Power Off..."
msgstr "Изключване..." msgstr "Изключване..."
#: ../js/ui/userMenu.js:603 #: ../js/ui/userMenu.js:588
msgid "Notifications" msgid "Notifications"
msgstr "Известяване" msgstr "Известяване"
#: ../js/ui/userMenu.js:611 #: ../js/ui/userMenu.js:596
msgid "Online Accounts" msgid "Online Accounts"
msgstr "Мрежови регистрации" msgstr "Мрежови регистрации"
#: ../js/ui/userMenu.js:615 #: ../js/ui/userMenu.js:600
msgid "System Settings" msgid "System Settings"
msgstr "Настройки на системата" msgstr "Настройки на системата"
#: ../js/ui/userMenu.js:622 #: ../js/ui/userMenu.js:607
msgid "Lock Screen" msgid "Lock Screen"
msgstr "Заключване на екрана" msgstr "Заключване на екрана"
#: ../js/ui/userMenu.js:627 #: ../js/ui/userMenu.js:612
msgid "Switch User" msgid "Switch User"
msgstr "Смяна на потребител" msgstr "Смяна на потребител"
#: ../js/ui/userMenu.js:632 #: ../js/ui/userMenu.js:617
msgid "Log Out..." msgid "Log Out..."
msgstr "Изход…" msgstr "Изход…"
#: ../js/ui/userMenu.js:660 #: ../js/ui/userMenu.js:645
msgid "Your chat status will be set to busy" msgid "Your chat status will be set to busy"
msgstr "Състоянието ви ще се зададе да е „Зает“" msgstr "Състоянието ви ще се зададе да е „Зает“"
#: ../js/ui/userMenu.js:661 #: ../js/ui/userMenu.js:646
msgid "" msgid ""
"Notifications are now disabled, including chat messages. Your online status " "Notifications are now disabled, including chat messages. Your online status "
"has been adjusted to let others know that you might not see their messages." "has been adjusted to let others know that you might not see their messages."
@ -1594,7 +1555,7 @@ msgstr ""
msgid "Type to search..." msgid "Type to search..."
msgstr "Търсене на написаното…" msgstr "Търсене на написаното…"
#: ../js/ui/viewSelector.js:142 ../src/shell-util.c:244 #: ../js/ui/viewSelector.js:142 ../src/shell-util.c:261
msgid "Search" msgid "Search"
msgstr "Търсене" msgstr "Търсене"
@ -1650,15 +1611,13 @@ msgstr "Стандартно"
msgid "Authentication dialog was dismissed by the user" msgid "Authentication dialog was dismissed by the user"
msgstr "Прозорецът за упълномощаване беше затворен от потребителя" msgstr "Прозорецът за упълномощаване беше затворен от потребителя"
#. Translators: this is the same string as the one found in #: ../src/shell-util.c:100
#. * nautilus msgid "Home Folder"
#: ../src/shell-util.c:89
msgid "Home"
msgstr "Домашна папка" msgstr "Домашна папка"
#. Translators: this is the same string as the one found in #. Translators: this is the same string as the one found in
#. * nautilus #. * nautilus
#: ../src/shell-util.c:98 #: ../src/shell-util.c:115
msgid "File System" msgid "File System"
msgstr "Файлова система" msgstr "Файлова система"
@ -1667,7 +1626,7 @@ msgstr "Файлова система"
#. * example, "Trash: some-directory". It means that the #. * example, "Trash: some-directory". It means that the
#. * directory called "some-directory" is in the trash. #. * directory called "some-directory" is in the trash.
#. #.
#: ../src/shell-util.c:294 #: ../src/shell-util.c:311
#, c-format #, c-format
msgid "%1$s: %2$s" msgid "%1$s: %2$s"
msgstr "%1$s: %2$s" msgstr "%1$s: %2$s"

260
po/ca.po
View File

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

View File

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

120
po/cs.po
View File

@ -7,17 +7,17 @@
# #
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: gnome-shell\n" "Project-Id-Version: gnome-shell gnome-3.2\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
"shell&keywords=I18N+L10N&component=general\n" "shell&keywords=I18N+L10N&component=general\n"
"POT-Creation-Date: 2011-10-21 20:30+0000\n" "POT-Creation-Date: 2011-10-18 19:39+0000\n"
"PO-Revision-Date: 2011-10-30 14:20+0100\n" "PO-Revision-Date: 2011-10-30 14:12+0100\n"
"Last-Translator: Petr Kovar <pknbe@volny.cz>\n" "Last-Translator: Petr Kovar <pknbe@volny.cz>\n"
"Language-Team: Czech <gnome-cs-list@gnome.org>\n" "Language-Team: Czech <gnome-cs-list@gnome.org>\n"
"Language: cs\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Language: cs\n"
"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
"X-Generator: Lokalize 1.2\n" "X-Generator: Lokalize 1.2\n"
@ -202,7 +202,7 @@ msgid "Not listed?"
msgstr "Nejste na seznamu?" msgstr "Nejste na seznamu?"
#: ../js/gdm/loginDialog.js:1035 ../js/ui/endSessionDialog.js:426 #: ../js/gdm/loginDialog.js:1035 ../js/ui/endSessionDialog.js:426
#: ../js/ui/extensionSystem.js:520 ../js/ui/networkAgent.js:148 #: ../js/ui/extensionSystem.js:477 ../js/ui/networkAgent.js:148
#: ../js/ui/polkitAuthenticationAgent.js:173 ../js/ui/status/bluetooth.js:480 #: ../js/ui/polkitAuthenticationAgent.js:173 ../js/ui/status/bluetooth.js:480
msgid "Cancel" msgid "Cancel"
msgstr "Zrušit" msgstr "Zrušit"
@ -216,16 +216,18 @@ msgstr "Přihlásit se"
msgid "Login Window" msgid "Login Window"
msgstr "Přihlašovací okno" msgstr "Přihlašovací okno"
#: ../js/gdm/powerMenu.js:116 ../js/ui/userMenu.js:569 #: ../js/gdm/powerMenu.js:116 ../js/ui/userMenu.js:554
#: ../js/ui/userMenu.js:571 ../js/ui/userMenu.js:640 #: ../js/ui/userMenu.js:556 ../js/ui/userMenu.js:625
msgid "Suspend" msgid "Suspend"
msgstr "Uspat do paměti" msgstr "Uspat do paměti"
#: ../js/gdm/powerMenu.js:121 #: ../js/gdm/powerMenu.js:121 ../js/ui/endSessionDialog.js:89
#: ../js/ui/endSessionDialog.js:97 ../js/ui/endSessionDialog.js:106
msgid "Restart" msgid "Restart"
msgstr "Restartovat" msgstr "Restartovat"
#: ../js/gdm/powerMenu.js:126 #: ../js/gdm/powerMenu.js:126 ../js/ui/endSessionDialog.js:80
#: ../js/ui/endSessionDialog.js:91
msgid "Power Off" msgid "Power Off"
msgstr "Vypnout" msgstr "Vypnout"
@ -538,14 +540,12 @@ msgstr "NEDÁVNÉ POLOŽKY"
#: ../js/ui/endSessionDialog.js:60 #: ../js/ui/endSessionDialog.js:60
#, c-format #, c-format
msgctxt "title"
msgid "Log Out %s" msgid "Log Out %s"
msgstr "Odhlásit uživatele %s" msgstr "Odhlásit uživatele %s"
#: ../js/ui/endSessionDialog.js:61 #: ../js/ui/endSessionDialog.js:61 ../js/ui/endSessionDialog.js:75
msgctxt "title"
msgid "Log Out" msgid "Log Out"
msgstr "Odhlášení" msgstr "Odhlásit"
#: ../js/ui/endSessionDialog.js:62 #: ../js/ui/endSessionDialog.js:62
msgid "Click Log Out to quit these applications and log out of the system." msgid "Click Log Out to quit these applications and log out of the system."
@ -572,16 +572,6 @@ msgstr[2] "Budete automaticky odhlášeni za %d sekund."
msgid "Logging out of the system." msgid "Logging out of the system."
msgstr "Odhlašování ze systému." msgstr "Odhlašování ze systému."
#: ../js/ui/endSessionDialog.js:75
msgctxt "button"
msgid "Log Out"
msgstr "Odhlásit"
#: ../js/ui/endSessionDialog.js:80
msgctxt "title"
msgid "Power Off"
msgstr "Vypnutí"
#: ../js/ui/endSessionDialog.js:81 #: ../js/ui/endSessionDialog.js:81
msgid "Click Power Off to quit these applications and power off the system." msgid "Click Power Off to quit these applications and power off the system."
msgstr "Tyto aplikace ukončíte a systém vypnete kliknutím na Vypnout." msgstr "Tyto aplikace ukončíte a systém vypnete kliknutím na Vypnout."
@ -598,21 +588,6 @@ msgstr[2] "Systém bude automaticky vypnut za %d sekund."
msgid "Powering off the system." msgid "Powering off the system."
msgstr "Vypínání systému." msgstr "Vypínání systému."
#: ../js/ui/endSessionDialog.js:89 ../js/ui/endSessionDialog.js:106
msgctxt "button"
msgid "Restart"
msgstr "Restartovat"
#: ../js/ui/endSessionDialog.js:91
msgctxt "button"
msgid "Power Off"
msgstr "Vypnout"
#: ../js/ui/endSessionDialog.js:97
msgctxt "title"
msgid "Restart"
msgstr "Restart"
#: ../js/ui/endSessionDialog.js:98 #: ../js/ui/endSessionDialog.js:98
msgid "Click Restart to quit these applications and restart the system." msgid "Click Restart to quit these applications and restart the system."
msgstr "Tyto aplikace ukončíte a systém restartujete kliknutím na Vypnout." msgstr "Tyto aplikace ukončíte a systém restartujete kliknutím na Vypnout."
@ -629,16 +604,17 @@ msgstr[2] "Systém bude automaticky restartován za %d sekund."
msgid "Restarting the system." msgid "Restarting the system."
msgstr "Restartuje se systém." msgstr "Restartuje se systém."
#: ../js/ui/extensionSystem.js:524 #: ../js/ui/extensionSystem.js:481
msgid "Install" msgid "Install"
msgstr "Instalovat" msgstr "Instalovat"
#: ../js/ui/extensionSystem.js:528 #: ../js/ui/extensionSystem.js:485
#, c-format #, c-format
msgid "Download and install '%s' from extensions.gnome.org?" msgid "Download and install '%s' from extensions.gnome.org?"
msgstr "Stáhnout a nainstalovat „%s“ z extensions.gnome.org?" msgstr "Stáhnout a nainstalovat „%s“ z extensions.gnome.org?"
#: ../js/ui/keyboard.js:325 #: ../js/ui/keyboard.js:325
#| msgid "Retry"
msgid "tray" msgid "tray"
msgstr "panel" msgstr "panel"
@ -646,51 +622,37 @@ msgstr "panel"
msgid "Keyboard" msgid "Keyboard"
msgstr "Klávesnice" msgstr "Klávesnice"
#: ../js/ui/lookingGlass.js:664 #: ../js/ui/lookingGlass.js:646
msgid "No extensions installed" msgid "No extensions installed"
msgstr "Nejsou nainstalována žádná rozšíření" msgstr "Nejsou nainstalována žádná rozšíření"
#. Translators: argument is an extension UUID. #: ../js/ui/lookingGlass.js:692
#: ../js/ui/lookingGlass.js:719
#, c-format
msgid "%s has not emitted any errors."
msgstr ""
#: ../js/ui/lookingGlass.js:725
msgid "Hide Errors"
msgstr "Skrývat chyby"
#: ../js/ui/lookingGlass.js:729 ../js/ui/lookingGlass.js:779
msgid "Show Errors"
msgstr "Zobrazovat chyby"
#: ../js/ui/lookingGlass.js:738
msgid "Enabled" msgid "Enabled"
msgstr "Povoleno" msgstr "Povoleno"
#. translators: #. translators:
#. * The device has been disabled #. * The device has been disabled
#: ../js/ui/lookingGlass.js:740 ../src/gvc/gvc-mixer-control.c:1093 #: ../js/ui/lookingGlass.js:694 ../src/gvc/gvc-mixer-control.c:1093
msgid "Disabled" msgid "Disabled"
msgstr "Zakázáno" msgstr "Zakázáno"
#: ../js/ui/lookingGlass.js:742 #: ../js/ui/lookingGlass.js:696
msgid "Error" msgid "Error"
msgstr "Chyba" msgstr "Chyba"
#: ../js/ui/lookingGlass.js:744 #: ../js/ui/lookingGlass.js:698
msgid "Out of date" msgid "Out of date"
msgstr "Neaktuální" msgstr "Neaktuální"
#: ../js/ui/lookingGlass.js:746 #: ../js/ui/lookingGlass.js:700
msgid "Downloading" msgid "Downloading"
msgstr "Stahování" msgstr "Stahování"
#: ../js/ui/lookingGlass.js:767 #: ../js/ui/lookingGlass.js:721
msgid "View Source" msgid "View Source"
msgstr "Zobrazit zdroj" msgstr "Zobrazit zdroj"
#: ../js/ui/lookingGlass.js:773 #: ../js/ui/lookingGlass.js:727
msgid "Web Page" msgid "Web Page"
msgstr "Webová stránka" msgstr "Webová stránka"
@ -892,6 +854,7 @@ msgid "Show Text"
msgstr "Zobrazit text" msgstr "Zobrazit text"
#: ../js/ui/shellEntry.js:83 #: ../js/ui/shellEntry.js:83
#| msgid "Large Text"
msgid "Hide Text" msgid "Hide Text"
msgstr "Skrýt text" msgstr "Skrýt text"
@ -1556,39 +1519,39 @@ msgstr "Nečinný"
msgid "Unavailable" msgid "Unavailable"
msgstr "Nedostupný" msgstr "Nedostupný"
#: ../js/ui/userMenu.js:567 ../js/ui/userMenu.js:571 ../js/ui/userMenu.js:641 #: ../js/ui/userMenu.js:552 ../js/ui/userMenu.js:556 ../js/ui/userMenu.js:626
msgid "Power Off..." msgid "Power Off..."
msgstr "Vypnout…" msgstr "Vypnout…"
#: ../js/ui/userMenu.js:603 #: ../js/ui/userMenu.js:588
msgid "Notifications" msgid "Notifications"
msgstr "Upozornění" msgstr "Upozornění"
#: ../js/ui/userMenu.js:611 #: ../js/ui/userMenu.js:596
msgid "Online Accounts" msgid "Online Accounts"
msgstr "Účty on-line" msgstr "Účty on-line"
#: ../js/ui/userMenu.js:615 #: ../js/ui/userMenu.js:600
msgid "System Settings" msgid "System Settings"
msgstr "Nastavení systému" msgstr "Nastavení systému"
#: ../js/ui/userMenu.js:622 #: ../js/ui/userMenu.js:607
msgid "Lock Screen" msgid "Lock Screen"
msgstr "Uzamknout obrazovku" msgstr "Uzamknout obrazovku"
#: ../js/ui/userMenu.js:627 #: ../js/ui/userMenu.js:612
msgid "Switch User" msgid "Switch User"
msgstr "Přepnout uživatele" msgstr "Přepnout uživatele"
#: ../js/ui/userMenu.js:632 #: ../js/ui/userMenu.js:617
msgid "Log Out..." msgid "Log Out..."
msgstr "Odhlásit…" msgstr "Odhlásit…"
#: ../js/ui/userMenu.js:660 #: ../js/ui/userMenu.js:645
msgid "Your chat status will be set to busy" msgid "Your chat status will be set to busy"
msgstr "Váš stav v konverzacích byl nastaven na „Zaneprázdněn“" msgstr "Váš stav v konverzacích byl nastaven na „Zaneprázdněn“"
#: ../js/ui/userMenu.js:661 #: ../js/ui/userMenu.js:646
msgid "" msgid ""
"Notifications are now disabled, including chat messages. Your online status " "Notifications are now disabled, including chat messages. Your online status "
"has been adjusted to let others know that you might not see their messages." "has been adjusted to let others know that you might not see their messages."
@ -1604,7 +1567,7 @@ msgstr ""
msgid "Type to search..." msgid "Type to search..."
msgstr "Vyhledávejte psaním…" msgstr "Vyhledávejte psaním…"
#: ../js/ui/viewSelector.js:142 ../src/shell-util.c:244 #: ../js/ui/viewSelector.js:142 ../src/shell-util.c:261
msgid "Search" msgid "Search"
msgstr "Hledat" msgstr "Hledat"
@ -1662,16 +1625,13 @@ msgstr "Výchozí"
msgid "Authentication dialog was dismissed by the user" msgid "Authentication dialog was dismissed by the user"
msgstr "Dialogové okno ověření bylo uživatelem zrušeno" msgstr "Dialogové okno ověření bylo uživatelem zrušeno"
#. Translators: this is the same string as the one found in #: ../src/shell-util.c:100
#. * nautilus msgid "Home Folder"
#: ../src/shell-util.c:89
#| msgid "Volume"
msgid "Home"
msgstr "Domovská složka" msgstr "Domovská složka"
#. Translators: this is the same string as the one found in #. Translators: this is the same string as the one found in
#. * nautilus #. * nautilus
#: ../src/shell-util.c:98 #: ../src/shell-util.c:115
msgid "File System" msgid "File System"
msgstr "Systém souborů" msgstr "Systém souborů"
@ -1680,7 +1640,7 @@ msgstr "Systém souborů"
#. * example, "Trash: some-directory". It means that the #. * example, "Trash: some-directory". It means that the
#. * directory called "some-directory" is in the trash. #. * directory called "some-directory" is in the trash.
#. #.
#: ../src/shell-util.c:294 #: ../src/shell-util.c:311
#, c-format #, c-format
msgid "%1$s: %2$s" msgid "%1$s: %2$s"
msgstr "%1$s: %2$s" msgstr "%1$s: %2$s"

396
po/da.po
View File

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

221
po/de.po
View File

@ -6,7 +6,7 @@
# #
# Hendrik Brandt <heb@gnome-de.org>, 2009. # Hendrik Brandt <heb@gnome-de.org>, 2009.
# Hendrik Richter <hendrikr@gnome.org>, 2009, 2010, 2011. # Hendrik Richter <hendrikr@gnome.org>, 2009, 2010, 2011.
# Mario Blättermann <mario.blaettermann@gmail.com>, 2009-2011. # Mario Blättermann <mariobl@freenet.de>, 2009, 2010, 2011.
# Mario Klug <mario@klug.me>, 2010. # Mario Klug <mario@klug.me>, 2010.
# Jakob Kramer <jakob.kramer@gmx.de>, 2010. # Jakob Kramer <jakob.kramer@gmx.de>, 2010.
# Paul Seyfert <pseyfert@mathphys.fsk.uni-heidelberg.de>, 2010, 2011. # Paul Seyfert <pseyfert@mathphys.fsk.uni-heidelberg.de>, 2010, 2011.
@ -17,9 +17,9 @@ msgstr ""
"Project-Id-Version: gnome-shell master\n" "Project-Id-Version: gnome-shell master\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
"shell&keywords=I18N+L10N&component=general\n" "shell&keywords=I18N+L10N&component=general\n"
"POT-Creation-Date: 2011-11-05 13:23+0000\n" "POT-Creation-Date: 2011-10-17 20:04+0000\n"
"PO-Revision-Date: 2011-11-05 21:08+0100\n" "PO-Revision-Date: 2011-10-17 22:05+0100\n"
"Last-Translator: Mario Blättermann <mario.blaettermann@gmail.com>\n" "Last-Translator: Paul Seyfert <pseyfert@mathphys.fsk.uni-heidelberg.de>\n"
"Language-Team: Deutsch <gnome-de@gnome.org>\n" "Language-Team: Deutsch <gnome-de@gnome.org>\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
@ -56,12 +56,10 @@ msgid "Framerate used for recording screencasts."
msgstr "Bildwiederholungsrate zur Aufnahme von Screencasts" msgstr "Bildwiederholungsrate zur Aufnahme von Screencasts"
#: ../data/org.gnome.shell.gschema.xml.in.h:5 #: ../data/org.gnome.shell.gschema.xml.in.h:5
#, fuzzy
msgid "" msgid ""
"GNOME Shell extensions have a uuid property; this key lists extensions which " "GNOME Shell extensions have a uuid property; this key lists extensions which "
"should be loaded. Any extension that wants to be loaded needs to be in this " "should be loaded. disabled-extensions overrides this setting for extensions "
"list. You can also manipulate this list with the EnableExtension and " "that appear in both lists."
"DisableExtension DBus methods on org.gnome.Shell."
msgstr "" msgstr ""
"Die Erweiterungen der GNOME-Shell besitzen eine UUID-Eigenschaft. Dieser " "Die Erweiterungen der GNOME-Shell besitzen eine UUID-Eigenschaft. Dieser "
"Schlüssel listet Erweiterungen auf, welche geladen werden sollen. »disabled-" "Schlüssel listet Erweiterungen auf, welche geladen werden sollen. »disabled-"
@ -115,11 +113,11 @@ msgstr ""
"Auffüllung haben; die Ausgabe dieser Auffüllung wird in die Ausgabedatei " "Auffüllung haben; die Ausgabe dieser Auffüllung wird in die Ausgabedatei "
"geschrieben. Die Weiterleitung kann auch mit ihrer eigenen Ausgabe umgehen. " "geschrieben. Die Weiterleitung kann auch mit ihrer eigenen Ausgabe umgehen. "
"Das kann zum Senden der Ausgabe über shout2send an einen Icecast-Server oder " "Das kann zum Senden der Ausgabe über shout2send an einen Icecast-Server oder "
"Ähnliches verwendet werden. Falls nicht (oder auf einen leeren Wert) gesetzt, " "Ähnliches verwendet werden. Falls nicht (oder auf einen leeren Wert) "
"so wird die vorgegebene Weiterleitung verwendet, welche derzeit »videorate ! " "gesetzt, so wird die vorgegebene Weiterleitung verwendet, welche derzeit "
"vp8enc quality=10 speed=2 threads=%T ! queue ! webmmux« lautet und nach WEBM " "»videorate ! vp8enc quality=10 speed=2 threads=%T ! queue ! webmmux« lautet "
"mittels des VP8-Codecs aufzeichnet. %T wird als Platzhalter für die vermutete " "und nach WEBM mittels des VP8-Codecs aufzeichnet. %T wird als Platzhalter "
"optimale Threadanzahl auf dem System verwendet." "für die vermutete optimale Threadanzahl auf dem System verwendet."
#: ../data/org.gnome.shell.gschema.xml.in.h:14 #: ../data/org.gnome.shell.gschema.xml.in.h:14
msgid "Show date in clock" msgid "Show date in clock"
@ -138,8 +136,8 @@ msgid ""
"The applications corresponding to these identifiers will be displayed in the " "The applications corresponding to these identifiers will be displayed in the "
"favorites area." "favorites area."
msgstr "" msgstr ""
"Programme, welche auf diese Bezeichner zutreffen, werden im Favoriten-Bereich " "Programme, welche auf diese Bezeichner zutreffen, werden im Favoriten-"
"angezeigt." "Bereich angezeigt."
#: ../data/org.gnome.shell.gschema.xml.in.h:18 #: ../data/org.gnome.shell.gschema.xml.in.h:18
msgid "" msgid ""
@ -198,50 +196,52 @@ msgstr "Zu verwendende Tastatur"
msgid "disabled OpenSearch providers" msgid "disabled OpenSearch providers"
msgstr "deaktivierte OpenSearch-Provider" msgstr "deaktivierte OpenSearch-Provider"
#: ../js/gdm/loginDialog.js:633 #: ../js/gdm/loginDialog.js:617
msgid "Session..." msgid "Session..."
msgstr "Sitzung …" msgstr "Sitzung …"
#: ../js/gdm/loginDialog.js:804 #: ../js/gdm/loginDialog.js:788
msgctxt "title" msgctxt "title"
msgid "Sign In" msgid "Sign In"
msgstr "Anmelden" msgstr "Anmelden"
#. translators: this message is shown below the password entry field #. translators: this message is shown below the password entry field
#. to indicate the user can swipe their finger instead #. to indicate the user can swipe their finger instead
#: ../js/gdm/loginDialog.js:849 #: ../js/gdm/loginDialog.js:833
msgid "(or swipe finger)" msgid "(or swipe finger)"
msgstr "(oder benutzen Sie den Fingerabdruckleser)" msgstr "(oder benutzen Sie den Fingerabdruckleser)"
#: ../js/gdm/loginDialog.js:867 #: ../js/gdm/loginDialog.js:851
msgid "Not listed?" msgid "Not listed?"
msgstr "Nicht aufgeführt?" msgstr "Nicht aufgeführt?"
#: ../js/gdm/loginDialog.js:1035 ../js/ui/endSessionDialog.js:426 #: ../js/gdm/loginDialog.js:1019 ../js/ui/endSessionDialog.js:426
#: ../js/ui/extensionSystem.js:519 ../js/ui/networkAgent.js:148 #: ../js/ui/extensionSystem.js:477 ../js/ui/networkAgent.js:148
#: ../js/ui/polkitAuthenticationAgent.js:173 ../js/ui/status/bluetooth.js:480 #: ../js/ui/polkitAuthenticationAgent.js:173 ../js/ui/status/bluetooth.js:480
msgid "Cancel" msgid "Cancel"
msgstr "Abbrechen" msgstr "Abbrechen"
#: ../js/gdm/loginDialog.js:1040 #: ../js/gdm/loginDialog.js:1024
msgctxt "button" msgctxt "button"
msgid "Sign In" msgid "Sign In"
msgstr "Anmelden" msgstr "Anmelden"
#: ../js/gdm/loginDialog.js:1392 #: ../js/gdm/loginDialog.js:1373
msgid "Login Window" msgid "Login Window"
msgstr "Anmeldefenster" msgstr "Anmeldefenster"
#: ../js/gdm/powerMenu.js:116 ../js/ui/userMenu.js:573 ../js/ui/userMenu.js:575 #: ../js/gdm/powerMenu.js:116 ../js/ui/userMenu.js:549
#: ../js/ui/userMenu.js:644 #: ../js/ui/userMenu.js:551 ../js/ui/userMenu.js:620
msgid "Suspend" msgid "Suspend"
msgstr "Bereitschaft" msgstr "Bereitschaft"
#: ../js/gdm/powerMenu.js:121 #: ../js/gdm/powerMenu.js:121 ../js/ui/endSessionDialog.js:89
#: ../js/ui/endSessionDialog.js:97 ../js/ui/endSessionDialog.js:106
msgid "Restart" msgid "Restart"
msgstr "Neu starten" msgstr "Neu starten"
#: ../js/gdm/powerMenu.js:126 #: ../js/gdm/powerMenu.js:126 ../js/ui/endSessionDialog.js:80
#: ../js/ui/endSessionDialog.js:91
msgid "Power Off" msgid "Power Off"
msgstr "Ausschalten" msgstr "Ausschalten"
@ -458,8 +458,8 @@ msgstr "Diese Woche"
msgid "Next week" msgid "Next week"
msgstr "Nächste Woche" msgstr "Nächste Woche"
#: ../js/ui/contactDisplay.js:65 ../js/ui/notificationDaemon.js:459 #: ../js/ui/contactDisplay.js:65 ../js/ui/notificationDaemon.js:444
#: ../js/ui/status/power.js:223 ../src/shell-app.c:350 #: ../js/ui/status/power.js:223 ../src/shell-app.c:353
msgid "Unknown" msgid "Unknown"
msgstr "Unbekannt" msgstr "Unbekannt"
@ -483,7 +483,7 @@ msgstr "Abgemeldet"
msgid "CONTACTS" msgid "CONTACTS"
msgstr "KONTAKTE" msgstr "KONTAKTE"
#: ../js/ui/dash.js:174 ../js/ui/messageTray.js:1214 #: ../js/ui/dash.js:174 ../js/ui/messageTray.js:1205
msgid "Remove" msgid "Remove"
msgstr "Entfernen" msgstr "Entfernen"
@ -548,12 +548,10 @@ msgstr "ZULETZT GEÖFFNETE DOKUMENTE"
#: ../js/ui/endSessionDialog.js:60 #: ../js/ui/endSessionDialog.js:60
#, c-format #, c-format
msgctxt "title"
msgid "Log Out %s" msgid "Log Out %s"
msgstr "%s abmelden" msgstr "%s abmelden"
#: ../js/ui/endSessionDialog.js:61 #: ../js/ui/endSessionDialog.js:61 ../js/ui/endSessionDialog.js:75
msgctxt "title"
msgid "Log Out" msgid "Log Out"
msgstr "Abmelden" msgstr "Abmelden"
@ -581,16 +579,6 @@ msgstr[1] "Sie werden automatisch in %d Sekunden abgemeldet."
msgid "Logging out of the system." msgid "Logging out of the system."
msgstr "Abmeldung vom System." msgstr "Abmeldung vom System."
#: ../js/ui/endSessionDialog.js:75
msgctxt "button"
msgid "Log Out"
msgstr "Abmelden"
#: ../js/ui/endSessionDialog.js:80
msgctxt "title"
msgid "Power Off"
msgstr "Ausschalten"
#: ../js/ui/endSessionDialog.js:81 #: ../js/ui/endSessionDialog.js:81
msgid "Click Power Off to quit these applications and power off the system." msgid "Click Power Off to quit these applications and power off the system."
msgstr "" msgstr ""
@ -608,21 +596,6 @@ msgstr[1] "Das System wird automatisch in %d Sekunden ausgeschaltet."
msgid "Powering off the system." msgid "Powering off the system."
msgstr "Das System wird ausgeschaltet." msgstr "Das System wird ausgeschaltet."
#: ../js/ui/endSessionDialog.js:89 ../js/ui/endSessionDialog.js:106
msgctxt "button"
msgid "Restart"
msgstr "Neu starten"
#: ../js/ui/endSessionDialog.js:91
msgctxt "button"
msgid "Power Off"
msgstr "Ausschalten"
#: ../js/ui/endSessionDialog.js:97
msgctxt "title"
msgid "Restart"
msgstr "Neu starten"
#: ../js/ui/endSessionDialog.js:98 #: ../js/ui/endSessionDialog.js:98
msgid "Click Restart to quit these applications and restart the system." msgid "Click Restart to quit these applications and restart the system."
msgstr "" msgstr ""
@ -640,11 +613,11 @@ msgstr[1] "Das System wird automatisch in %d Sekunden neu gestartet."
msgid "Restarting the system." msgid "Restarting the system."
msgstr "Neustart des Systems." msgstr "Neustart des Systems."
#: ../js/ui/extensionSystem.js:523 #: ../js/ui/extensionSystem.js:481
msgid "Install" msgid "Install"
msgstr "Installieren" msgstr "Installieren"
#: ../js/ui/extensionSystem.js:527 #: ../js/ui/extensionSystem.js:485
#, c-format #, c-format
msgid "Download and install '%s' from extensions.gnome.org?" msgid "Download and install '%s' from extensions.gnome.org?"
msgstr "»%s« von extensions.gnome.org herunterladen und installieren?" msgstr "»%s« von extensions.gnome.org herunterladen und installieren?"
@ -657,68 +630,45 @@ msgstr "Benachrichtigungsfeld"
msgid "Keyboard" msgid "Keyboard"
msgstr "Tastatur" msgstr "Tastatur"
#: ../js/ui/lookingGlass.js:664 #: ../js/ui/lookingGlass.js:646
msgid "No extensions installed" msgid "No extensions installed"
msgstr "Keine Erweiterungen installiert" msgstr "Keine Erweiterungen installiert"
#. Translators: argument is an extension UUID. #: ../js/ui/lookingGlass.js:692
#: ../js/ui/lookingGlass.js:719
#, c-format
msgid "%s has not emitted any errors."
msgstr "%s hat keine Fehler ausgegeben."
#: ../js/ui/lookingGlass.js:725
msgid "Hide Errors"
msgstr "Fehler verbergen"
#: ../js/ui/lookingGlass.js:729 ../js/ui/lookingGlass.js:780
msgid "Show Errors"
msgstr "Fehler anzeigen"
#: ../js/ui/lookingGlass.js:738
msgid "Enabled" msgid "Enabled"
msgstr "Aktiviert" msgstr "Aktiviert"
#. translators: #. translators:
#. * The device has been disabled #. * The device has been disabled
#: ../js/ui/lookingGlass.js:741 ../src/gvc/gvc-mixer-control.c:1093 #: ../js/ui/lookingGlass.js:694 ../src/gvc/gvc-mixer-control.c:1093
msgid "Disabled" msgid "Disabled"
msgstr "Deaktiviert" msgstr "Deaktiviert"
#: ../js/ui/lookingGlass.js:743 #: ../js/ui/lookingGlass.js:696
msgid "Error" msgid "Error"
msgstr "Fehler" msgstr "Fehler"
#: ../js/ui/lookingGlass.js:745 #: ../js/ui/lookingGlass.js:698
msgid "Out of date" msgid "Out of date"
msgstr "Veraltet" msgstr "Veraltet"
#: ../js/ui/lookingGlass.js:747 #: ../js/ui/lookingGlass.js:700
msgid "Downloading" msgid "Downloading"
msgstr "Herunterladen" msgstr "Herunterladen"
#: ../js/ui/lookingGlass.js:768 #: ../js/ui/lookingGlass.js:721
msgid "View Source" msgid "View Source"
msgstr "Quelle zeigen" msgstr "Quelle zeigen"
#: ../js/ui/lookingGlass.js:774 #: ../js/ui/lookingGlass.js:727
msgid "Web Page" msgid "Web Page"
msgstr "Webseite" msgstr "Webseite"
#: ../js/ui/messageTray.js:1207 #: ../js/ui/messageTray.js:1198
msgid "Open" msgid "Open"
msgstr "Öffnen" msgstr "Öffnen"
#: ../js/ui/messageTray.js:1224 #: ../js/ui/messageTray.js:2407
#, fuzzy
msgid "Unmute"
msgstr "Minute"
#: ../js/ui/messageTray.js:1224
msgid "Mute"
msgstr "Stumm"
#: ../js/ui/messageTray.js:2436
msgid "System Information" msgid "System Information"
msgstr "Systeminformationen" msgstr "Systeminformationen"
@ -764,7 +714,8 @@ msgstr "Legitimierung für Funknetzwerk wird benötigt"
#: ../js/ui/networkAgent.js:325 #: ../js/ui/networkAgent.js:325
#, c-format #, c-format
msgid "" 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 "" msgstr ""
"Passwörter oder Schlüssel sind erforderlich, um auf das Funknetzwerk »%s« " "Passwörter oder Schlüssel sind erforderlich, um auf das Funknetzwerk »%s« "
"zuzugreifen." "zuzugreifen."
@ -1139,13 +1090,13 @@ msgstr "nicht verfügbar"
msgid "connection failed" msgid "connection failed"
msgstr "Verbindung gescheitert" msgstr "Verbindung gescheitert"
#: ../js/ui/status/network.js:575 ../js/ui/status/network.js:1532 #: ../js/ui/status/network.js:575 ../js/ui/status/network.js:1523
msgid "More..." msgid "More..."
msgstr "Mehr ..." msgstr "Mehr ..."
#. TRANSLATORS: this is the indication that a connection for another logged in user is active, #. TRANSLATORS: this is the indication that a connection for another logged in user is active,
#. and we cannot access its settings (including the name) #. and we cannot access its settings (including the name)
#: ../js/ui/status/network.js:611 ../js/ui/status/network.js:1467 #: ../js/ui/status/network.js:611 ../js/ui/status/network.js:1458
msgid "Connected (private)" msgid "Connected (private)"
msgstr "Verbunden (privat)" msgstr "Verbunden (privat)"
@ -1162,7 +1113,7 @@ msgid "Auto dial-up"
msgstr "Einwählverbindung (automatisch)" msgstr "Einwählverbindung (automatisch)"
#. TRANSLATORS: this the automatic wireless connection name (including the network name) #. TRANSLATORS: this the automatic wireless connection name (including the network name)
#: ../js/ui/status/network.js:878 ../js/ui/status/network.js:1479 #: ../js/ui/status/network.js:878 ../js/ui/status/network.js:1470
#, c-format #, c-format
msgid "Auto %s" msgid "Auto %s"
msgstr "%s (automatisch)" msgstr "%s (automatisch)"
@ -1171,47 +1122,47 @@ msgstr "%s (automatisch)"
msgid "Auto bluetooth" msgid "Auto bluetooth"
msgstr "Bluetooth (automatisch)" msgstr "Bluetooth (automatisch)"
#: ../js/ui/status/network.js:1481 #: ../js/ui/status/network.js:1472
msgid "Auto wireless" msgid "Auto wireless"
msgstr "Drahtlos (automatisch)" msgstr "Drahtlos (automatisch)"
#: ../js/ui/status/network.js:1575 #: ../js/ui/status/network.js:1566
msgid "Enable networking" msgid "Enable networking"
msgstr "Netzwerk aktivieren" msgstr "Netzwerk aktivieren"
#: ../js/ui/status/network.js:1587 #: ../js/ui/status/network.js:1578
msgid "Wired" msgid "Wired"
msgstr "Kabelgebunden" msgstr "Kabelgebunden"
#: ../js/ui/status/network.js:1598 #: ../js/ui/status/network.js:1589
msgid "Wireless" msgid "Wireless"
msgstr "Drahtlos" msgstr "Drahtlos"
#: ../js/ui/status/network.js:1608 #: ../js/ui/status/network.js:1599
msgid "Mobile broadband" msgid "Mobile broadband"
msgstr "Mobiles Breitband" msgstr "Mobiles Breitband"
#: ../js/ui/status/network.js:1618 #: ../js/ui/status/network.js:1609
msgid "VPN Connections" msgid "VPN Connections"
msgstr "VPN-Verbindungen" msgstr "VPN-Verbindungen"
#: ../js/ui/status/network.js:1629 #: ../js/ui/status/network.js:1620
msgid "Network Settings" msgid "Network Settings"
msgstr "Netzwerkeinstellungen" msgstr "Netzwerkeinstellungen"
#: ../js/ui/status/network.js:1766 #: ../js/ui/status/network.js:1757
msgid "Connection failed" msgid "Connection failed"
msgstr "Verbindung gescheitert" msgstr "Verbindung gescheitert"
#: ../js/ui/status/network.js:1767 #: ../js/ui/status/network.js:1758
msgid "Activation of network connection failed" msgid "Activation of network connection failed"
msgstr "Aktivierung der Netzwerkverbindung ist gescheitert" msgstr "Aktivierung der Netzwerkverbindung ist gescheitert"
#: ../js/ui/status/network.js:2017 #: ../js/ui/status/network.js:2008
msgid "Networking is disabled" msgid "Networking is disabled"
msgstr "Netzwerk ist deaktiviert" msgstr "Netzwerk ist deaktiviert"
#: ../js/ui/status/network.js:2144 #: ../js/ui/status/network.js:2133
msgid "Network Manager" msgid "Network Manager"
msgstr "Netzwerk-Verwaltung" msgstr "Netzwerk-Verwaltung"
@ -1512,7 +1463,8 @@ msgid "This resource is already connected to the server"
msgstr "Diese Ressource ist bereits mit dem Server verbunden" msgstr "Diese Ressource ist bereits mit dem Server verbunden"
#: ../js/ui/telepathyClient.js:1449 #: ../js/ui/telepathyClient.js:1449
msgid "Connection has been replaced by a new connection using the same resource" msgid ""
"Connection has been replaced by a new connection using the same resource"
msgstr "" msgstr ""
"Die Verbindung wurde durch eine neue Verbindung mit der gleichen Ressource " "Die Verbindung wurde durch eine neue Verbindung mit der gleichen Ressource "
"ersetzt" "ersetzt"
@ -1577,39 +1529,39 @@ msgstr "Untätig"
msgid "Unavailable" msgid "Unavailable"
msgstr "Nicht verfügbar" msgstr "Nicht verfügbar"
#: ../js/ui/userMenu.js:571 ../js/ui/userMenu.js:575 ../js/ui/userMenu.js:645 #: ../js/ui/userMenu.js:547 ../js/ui/userMenu.js:551 ../js/ui/userMenu.js:621
msgid "Power Off..." msgid "Power Off..."
msgstr "Ausschalten …" msgstr "Ausschalten …"
#: ../js/ui/userMenu.js:607 #: ../js/ui/userMenu.js:583
msgid "Notifications" msgid "Notifications"
msgstr "Benachrichtigungen" msgstr "Benachrichtigungen"
#: ../js/ui/userMenu.js:615 #: ../js/ui/userMenu.js:591
msgid "Online Accounts" msgid "Online Accounts"
msgstr "Online-Konten" msgstr "Online-Konten"
#: ../js/ui/userMenu.js:619 #: ../js/ui/userMenu.js:595
msgid "System Settings" msgid "System Settings"
msgstr "Systemeinstellungen" msgstr "Systemeinstellungen"
#: ../js/ui/userMenu.js:626 #: ../js/ui/userMenu.js:602
msgid "Lock Screen" msgid "Lock Screen"
msgstr "Bildschirm sperren" msgstr "Bildschirm sperren"
#: ../js/ui/userMenu.js:631 #: ../js/ui/userMenu.js:607
msgid "Switch User" msgid "Switch User"
msgstr "Benutzer wechseln" msgstr "Benutzer wechseln"
#: ../js/ui/userMenu.js:636 #: ../js/ui/userMenu.js:612
msgid "Log Out..." msgid "Log Out..."
msgstr "Abmelden …" msgstr "Abmelden …"
#: ../js/ui/userMenu.js:664 #: ../js/ui/userMenu.js:640
msgid "Your chat status will be set to busy" msgid "Your chat status will be set to busy"
msgstr "Ihr Anwesenheitsstatus wird auf »Beschäftigt« gesetzt" msgstr "Ihr Anwesenheitsstatus wird auf »Beschäftigt« gesetzt"
#: ../js/ui/userMenu.js:665 #: ../js/ui/userMenu.js:641
msgid "" msgid ""
"Notifications are now disabled, including chat messages. Your online status " "Notifications are now disabled, including chat messages. Your online status "
"has been adjusted to let others know that you might not see their messages." "has been adjusted to let others know that you might not see their messages."
@ -1626,7 +1578,7 @@ msgstr ""
msgid "Type to search..." msgid "Type to search..."
msgstr "Suchbegriff eingeben …" msgstr "Suchbegriff eingeben …"
#: ../js/ui/viewSelector.js:142 ../src/shell-util.c:244 #: ../js/ui/viewSelector.js:142 ../src/shell-util.c:261
msgid "Search" msgid "Search"
msgstr "Suchen" msgstr "Suchen"
@ -1657,15 +1609,15 @@ msgstr[1] "%u Eingänge"
msgid "System Sounds" msgid "System Sounds"
msgstr "Systemklänge" msgstr "Systemklänge"
#: ../src/main.c:483 #: ../src/main.c:480
msgid "Print version" msgid "Print version"
msgstr "Version ausgeben" msgstr "Version ausgeben"
#: ../src/main.c:489 #: ../src/main.c:486
msgid "Mode used by GDM for login screen" msgid "Mode used by GDM for login screen"
msgstr "Der durch GDM im Anmeldefenster verwendete Modus" msgstr "Der durch GDM im Anmeldefenster verwendete Modus"
#: ../src/shell-app.c:567 #: ../src/shell-app.c:579
#, c-format #, c-format
msgid "Failed to launch '%s'" msgid "Failed to launch '%s'"
msgstr "»%s« konnte nicht gestartet werden" msgstr "»%s« konnte nicht gestartet werden"
@ -1682,16 +1634,13 @@ msgstr "Vorgabe"
msgid "Authentication dialog was dismissed by the user" msgid "Authentication dialog was dismissed by the user"
msgstr "Der Dialog zur Legitimierung wurde vom Benutzer geschlossen" msgstr "Der Dialog zur Legitimierung wurde vom Benutzer geschlossen"
#. Translators: this is the same string as the one found in #: ../src/shell-util.c:100
#. * nautilus msgid "Home Folder"
#: ../src/shell-util.c:89 msgstr "Persönlicher Ordner"
#, fuzzy
msgid "Home"
msgstr "Lautstärke"
#. Translators: this is the same string as the one found in #. Translators: this is the same string as the one found in
#. * nautilus #. * nautilus
#: ../src/shell-util.c:98 #: ../src/shell-util.c:115
msgid "File System" msgid "File System"
msgstr "Dateisystem" msgstr "Dateisystem"
@ -1700,17 +1649,23 @@ msgstr "Dateisystem"
#. * example, "Trash: some-directory". It means that the #. * example, "Trash: some-directory". It means that the
#. * directory called "some-directory" is in the trash. #. * directory called "some-directory" is in the trash.
#. #.
#: ../src/shell-util.c:294 #: ../src/shell-util.c:311
#, c-format #, c-format
msgid "%1$s: %2$s" msgid "%1$s: %2$s"
msgstr "%1$s: %2$s" msgstr "%1$s: %2$s"
#~ msgid "Home Folder"
#~ msgstr "Persönlicher Ordner"
#~ msgid "Show password" #~ msgid "Show password"
#~ msgstr "Passwort anzeigen" #~ 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" #~ msgid "%s has finished starting"
#~ msgstr "Start von %s ist abgeschlossen" #~ msgstr "Start von %s ist abgeschlossen"

131
po/eo.po
View File

@ -9,14 +9,14 @@ msgstr ""
"Project-Id-Version: gnome-shell master\n" "Project-Id-Version: gnome-shell master\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
"shell&keywords=I18N+L10N&component=general\n" "shell&keywords=I18N+L10N&component=general\n"
"POT-Creation-Date: 2011-10-26 09:56+0000\n" "POT-Creation-Date: 2011-10-24 17:45+0000\n"
"PO-Revision-Date: 2011-10-26 19:08+0200\n" "PO-Revision-Date: 2011-10-26 19:01+0200\n"
"Last-Translator: Kristjan SCHMIDT <kristjan.schmidt@googlemail.com>\n" "Last-Translator: Kristjan SCHMIDT <kristjan.schmidt@googlemail.com>\n"
"Language-Team: Esperanto <ubuntu-l10n-eo@lists.launchpad.net>\n" "Language-Team: Esperanto <ubuntu-l10n-eo@lists.launchpad.net>\n"
"Language: eo\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bits\n" "Content-Transfer-Encoding: 8bits\n"
"Language: eo\n"
"Plural-Forms: nplurals=2; plural=(n != 1)\n" "Plural-Forms: nplurals=2; plural=(n != 1)\n"
"X-Generator: Virtaal 0.7.1-rc1\n" "X-Generator: Virtaal 0.7.1-rc1\n"
"X-DamnedLies-Scope: partial\n" "X-DamnedLies-Scope: partial\n"
@ -186,7 +186,7 @@ msgid "Not listed?"
msgstr "Ĉu ne en listo?" msgstr "Ĉu ne en listo?"
#: ../js/gdm/loginDialog.js:1035 ../js/ui/endSessionDialog.js:426 #: ../js/gdm/loginDialog.js:1035 ../js/ui/endSessionDialog.js:426
#: ../js/ui/extensionSystem.js:520 ../js/ui/networkAgent.js:148 #: ../js/ui/extensionSystem.js:477 ../js/ui/networkAgent.js:148
#: ../js/ui/polkitAuthenticationAgent.js:173 ../js/ui/status/bluetooth.js:480 #: ../js/ui/polkitAuthenticationAgent.js:173 ../js/ui/status/bluetooth.js:480
msgid "Cancel" msgid "Cancel"
msgstr "Nuligi" msgstr "Nuligi"
@ -200,16 +200,18 @@ msgstr "Ensaluti"
msgid "Login Window" msgid "Login Window"
msgstr "Ensalutfenestro" msgstr "Ensalutfenestro"
#: ../js/gdm/powerMenu.js:116 ../js/ui/userMenu.js:573 #: ../js/gdm/powerMenu.js:116 ../js/ui/userMenu.js:554
#: ../js/ui/userMenu.js:575 ../js/ui/userMenu.js:644 #: ../js/ui/userMenu.js:556 ../js/ui/userMenu.js:625
msgid "Suspend" msgid "Suspend"
msgstr "Dormeti" msgstr "Dormeti"
#: ../js/gdm/powerMenu.js:121 #: ../js/gdm/powerMenu.js:121 ../js/ui/endSessionDialog.js:89
#: ../js/ui/endSessionDialog.js:97 ../js/ui/endSessionDialog.js:106
msgid "Restart" msgid "Restart"
msgstr "Restartigi" msgstr "Restartigi"
#: ../js/gdm/powerMenu.js:126 #: ../js/gdm/powerMenu.js:126 ../js/ui/endSessionDialog.js:80
#: ../js/ui/endSessionDialog.js:91
msgid "Power Off" msgid "Power Off"
msgstr "Elŝalti" msgstr "Elŝalti"
@ -427,7 +429,7 @@ msgid "Next week"
msgstr "Sekva semajno" msgstr "Sekva semajno"
#: ../js/ui/contactDisplay.js:65 ../js/ui/notificationDaemon.js:459 #: ../js/ui/contactDisplay.js:65 ../js/ui/notificationDaemon.js:459
#: ../js/ui/status/power.js:223 ../src/shell-app.c:350 #: ../js/ui/status/power.js:223 ../src/shell-app.c:353
msgid "Unknown" msgid "Unknown"
msgstr "Nekonata" msgstr "Nekonata"
@ -516,12 +518,10 @@ msgstr "LASTATEMPAJ ELEMENTOJ"
#: ../js/ui/endSessionDialog.js:60 #: ../js/ui/endSessionDialog.js:60
#, c-format #, c-format
msgctxt "title"
msgid "Log Out %s" msgid "Log Out %s"
msgstr "Elsaluti %s" msgstr "Elsaluti %s"
#: ../js/ui/endSessionDialog.js:61 #: ../js/ui/endSessionDialog.js:61 ../js/ui/endSessionDialog.js:75
msgctxt "title"
msgid "Log Out" msgid "Log Out"
msgstr "Elsaluti" msgstr "Elsaluti"
@ -548,16 +548,6 @@ msgstr[1] "Vi aŭtomate elsalutos post %d sekundoj."
msgid "Logging out of the system." msgid "Logging out of the system."
msgstr "Elsalutanta de la sistemo." msgstr "Elsalutanta de la sistemo."
#: ../js/ui/endSessionDialog.js:75
msgctxt "button"
msgid "Log Out"
msgstr "Elsaluti"
#: ../js/ui/endSessionDialog.js:80
msgctxt "title"
msgid "Power Off"
msgstr "Elŝalti"
#: ../js/ui/endSessionDialog.js:81 #: ../js/ui/endSessionDialog.js:81
msgid "Click Power Off to quit these applications and power off the system." msgid "Click Power Off to quit these applications and power off the system."
msgstr "Alklaku \"Elŝalti\" por ĉesi tiujn aplikaĵojn kaj elŝalti la sistemon." msgstr "Alklaku \"Elŝalti\" por ĉesi tiujn aplikaĵojn kaj elŝalti la sistemon."
@ -573,21 +563,6 @@ msgstr[1] "La sistemo aŭtomate elŝaltiĝos post %d sekundoj."
msgid "Powering off the system." msgid "Powering off the system."
msgstr "Elŝaltanta la sistemon." msgstr "Elŝaltanta la sistemon."
#: ../js/ui/endSessionDialog.js:89 ../js/ui/endSessionDialog.js:106
msgctxt "button"
msgid "Restart"
msgstr "Restartigi"
#: ../js/ui/endSessionDialog.js:91
msgctxt "button"
msgid "Power Off"
msgstr "Elŝalti"
#: ../js/ui/endSessionDialog.js:97
msgctxt "title"
msgid "Restart"
msgstr "Restartigi"
#: ../js/ui/endSessionDialog.js:98 #: ../js/ui/endSessionDialog.js:98
msgid "Click Restart to quit these applications and restart the system." msgid "Click Restart to quit these applications and restart the system."
msgstr "" msgstr ""
@ -604,11 +579,11 @@ msgstr[1] "La sistemo aŭtomate restartos post %d sekundoj."
msgid "Restarting the system." msgid "Restarting the system."
msgstr "Restartiganta la sistemon." msgstr "Restartiganta la sistemon."
#: ../js/ui/extensionSystem.js:524 #: ../js/ui/extensionSystem.js:481
msgid "Install" msgid "Install"
msgstr "Instali" msgstr "Instali"
#: ../js/ui/extensionSystem.js:528 #: ../js/ui/extensionSystem.js:485
#, c-format #, c-format
msgid "Download and install '%s' from extensions.gnome.org?" msgid "Download and install '%s' from extensions.gnome.org?"
msgstr "Elŝuti kaj instali '%s' de extensions.gnome.org?" msgstr "Elŝuti kaj instali '%s' de extensions.gnome.org?"
@ -621,51 +596,37 @@ msgstr "pleto"
msgid "Keyboard" msgid "Keyboard"
msgstr "Klavaro" msgstr "Klavaro"
#: ../js/ui/lookingGlass.js:664 #: ../js/ui/lookingGlass.js:646
msgid "No extensions installed" msgid "No extensions installed"
msgstr "Neniu kromprogramo instalita" msgstr "Neniu kromprogramo instalita"
#. Translators: argument is an extension UUID. #: ../js/ui/lookingGlass.js:692
#: ../js/ui/lookingGlass.js:719
#, c-format
msgid "%s has not emitted any errors."
msgstr "%s ne eligintaj ajnaj eraroj."
#: ../js/ui/lookingGlass.js:725
msgid "Hide Errors"
msgstr "Kaŝi erarojn"
#: ../js/ui/lookingGlass.js:729 ../js/ui/lookingGlass.js:779
msgid "Show Errors"
msgstr "Montri erarojn"
#: ../js/ui/lookingGlass.js:738
msgid "Enabled" msgid "Enabled"
msgstr "Enŝaltita" msgstr "Enŝaltita"
#. translators: #. translators:
#. * The device has been disabled #. * The device has been disabled
#: ../js/ui/lookingGlass.js:740 ../src/gvc/gvc-mixer-control.c:1093 #: ../js/ui/lookingGlass.js:694 ../src/gvc/gvc-mixer-control.c:1093
msgid "Disabled" msgid "Disabled"
msgstr "Elŝaltita" msgstr "Elŝaltita"
#: ../js/ui/lookingGlass.js:742 #: ../js/ui/lookingGlass.js:696
msgid "Error" msgid "Error"
msgstr "Eraro" msgstr "Eraro"
#: ../js/ui/lookingGlass.js:744 #: ../js/ui/lookingGlass.js:698
msgid "Out of date" msgid "Out of date"
msgstr "Neaktuala" msgstr "Neaktuala"
#: ../js/ui/lookingGlass.js:746 #: ../js/ui/lookingGlass.js:700
msgid "Downloading" msgid "Downloading"
msgstr "Elŝutanta" msgstr "Elŝutanta"
#: ../js/ui/lookingGlass.js:767 #: ../js/ui/lookingGlass.js:721
msgid "View Source" msgid "View Source"
msgstr "Montri fonton" msgstr "Montri fonton"
#: ../js/ui/lookingGlass.js:773 #: ../js/ui/lookingGlass.js:727
msgid "Web Page" msgid "Web Page"
msgstr "Retpaĝo" msgstr "Retpaĝo"
@ -1528,39 +1489,39 @@ msgstr "Neokupita"
msgid "Unavailable" msgid "Unavailable"
msgstr "Nedisponebla" msgstr "Nedisponebla"
#: ../js/ui/userMenu.js:571 ../js/ui/userMenu.js:575 ../js/ui/userMenu.js:645 #: ../js/ui/userMenu.js:552 ../js/ui/userMenu.js:556 ../js/ui/userMenu.js:626
msgid "Power Off..." msgid "Power Off..."
msgstr "Elŝalti..." msgstr "Elŝalti..."
#: ../js/ui/userMenu.js:607 #: ../js/ui/userMenu.js:588
msgid "Notifications" msgid "Notifications"
msgstr "Avizoj" msgstr "Avizoj"
#: ../js/ui/userMenu.js:615 #: ../js/ui/userMenu.js:596
msgid "Online Accounts" msgid "Online Accounts"
msgstr "Retaj kontoj" msgstr "Retaj kontoj"
#: ../js/ui/userMenu.js:619 #: ../js/ui/userMenu.js:600
msgid "System Settings" msgid "System Settings"
msgstr "Sistem-agordoj" msgstr "Sistem-agordoj"
#: ../js/ui/userMenu.js:626 #: ../js/ui/userMenu.js:607
msgid "Lock Screen" msgid "Lock Screen"
msgstr "Ŝlosi ekranon" msgstr "Ŝlosi ekranon"
#: ../js/ui/userMenu.js:631 #: ../js/ui/userMenu.js:612
msgid "Switch User" msgid "Switch User"
msgstr "Ŝanĝi uzanton" msgstr "Ŝanĝi uzanton"
#: ../js/ui/userMenu.js:636 #: ../js/ui/userMenu.js:617
msgid "Log Out..." msgid "Log Out..."
msgstr "Elsaluti..." msgstr "Elsaluti..."
#: ../js/ui/userMenu.js:664 #: ../js/ui/userMenu.js:645
msgid "Your chat status will be set to busy" msgid "Your chat status will be set to busy"
msgstr "Vi babila stato agordos okupita" msgstr "Vi babila stato agordos okupita"
#: ../js/ui/userMenu.js:665 #: ../js/ui/userMenu.js:646
msgid "" msgid ""
"Notifications are now disabled, including chat messages. Your online status " "Notifications are now disabled, including chat messages. Your online status "
"has been adjusted to let others know that you might not see their messages." "has been adjusted to let others know that you might not see their messages."
@ -1576,7 +1537,7 @@ msgstr ""
msgid "Type to search..." msgid "Type to search..."
msgstr "Tajpi por serĉi..." msgstr "Tajpi por serĉi..."
#: ../js/ui/viewSelector.js:142 ../src/shell-util.c:244 #: ../js/ui/viewSelector.js:142 ../src/shell-util.c:261
msgid "Search" msgid "Search"
msgstr "Serĉi" msgstr "Serĉi"
@ -1607,15 +1568,15 @@ msgstr[1] "%u enigoj"
msgid "System Sounds" msgid "System Sounds"
msgstr "Sistemsonoj" msgstr "Sistemsonoj"
#: ../src/main.c:483 #: ../src/main.c:480
msgid "Print version" msgid "Print version"
msgstr "Presi version" msgstr "Presi version"
#: ../src/main.c:489 #: ../src/main.c:486
msgid "Mode used by GDM for login screen" msgid "Mode used by GDM for login screen"
msgstr "Reĝimo uzata de GDM por la ensalutekrano" msgstr "Reĝimo uzata de GDM por la ensalutekrano"
#: ../src/shell-app.c:567 #: ../src/shell-app.c:579
#, c-format #, c-format
msgid "Failed to launch '%s'" msgid "Failed to launch '%s'"
msgstr "Malsukcesis lanĉi '%s'" msgstr "Malsukcesis lanĉi '%s'"
@ -1632,15 +1593,13 @@ msgstr "Defaŭlto"
msgid "Authentication dialog was dismissed by the user" msgid "Authentication dialog was dismissed by the user"
msgstr "La dialogo de la aŭtentokontrolo malakceptis de la uzanto" msgstr "La dialogo de la aŭtentokontrolo malakceptis de la uzanto"
#. Translators: this is the same string as the one found in #: ../src/shell-util.c:100
#. * nautilus msgid "Home Folder"
#: ../src/shell-util.c:89 msgstr "Hejma dosierujo"
msgid "Home"
msgstr "Hejmo"
#. Translators: this is the same string as the one found in #. Translators: this is the same string as the one found in
#. * nautilus #. * nautilus
#: ../src/shell-util.c:98 #: ../src/shell-util.c:115
msgid "File System" msgid "File System"
msgstr "Dosiersistemo" msgstr "Dosiersistemo"
@ -1649,13 +1608,19 @@ msgstr "Dosiersistemo"
#. * example, "Trash: some-directory". It means that the #. * example, "Trash: some-directory". It means that the
#. * directory called "some-directory" is in the trash. #. * directory called "some-directory" is in the trash.
#. #.
#: ../src/shell-util.c:294 #: ../src/shell-util.c:311
#, c-format #, c-format
msgid "%1$s: %2$s" msgid "%1$s: %2$s"
msgstr "%1$s: %2$s" msgstr "%1$s: %2$s"
#~ msgid "Home Folder" #~ msgid "%s has not emitted any errors."
#~ msgstr "Hejma dosierujo" #~ msgstr "%s ne eligintaj ajnaj eraroj."
#~ msgid "Hide Errors"
#~ msgstr "Kaŝi erarojn"
#~ msgid "Show Errors"
#~ msgstr "Montri erarojn"
#~ msgid "Show password" #~ msgid "Show password"
#~ msgstr "Montri pasvorton" #~ msgstr "Montri pasvorton"

283
po/es.po
View File

@ -2,22 +2,22 @@
# Copyright (C) 2009 gnome-shell's COPYRIGHT HOLDER # Copyright (C) 2009 gnome-shell's COPYRIGHT HOLDER
# This file is distributed under the same license as the gnome-shell package. # This file is distributed under the same license as the gnome-shell package.
# Benjamín Valero Espinosa <benjavalero@gmail.com>, 2011. # Benjamín Valero Espinosa <benjavalero@gmail.com>, 2011.
# Daniel Mustieles <daniel.mustieles@gmail.com>, 2010, 2011.
# Jorge González <jorgegonz@svn.gnome.org>, 2009, 2010, 2011. # Jorge González <jorgegonz@svn.gnome.org>, 2009, 2010, 2011.
# Daniel Mustieles <daniel.mustieles@gmail.com>, 2010, 2011.
# #
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: gnome-shell.master\n" "Project-Id-Version: gnome-shell.master\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
"shell&keywords=I18N+L10N&component=general\n" "shell&keywords=I18N+L10N&component=general\n"
"POT-Creation-Date: 2011-11-05 13:23+0000\n" "POT-Creation-Date: 2011-10-17 20:02+0000\n"
"PO-Revision-Date: 2011-11-06 13:31+0100\n" "PO-Revision-Date: 2011-10-18 16:10+0200\n"
"Last-Translator: Jorge González <jorgegonz@svn.gnome.org>\n" "Last-Translator: Daniel Mustieles <daniel.mustieles@gmail.com>\n"
"Language-Team: Español; Castellano <gnome-es-list@gnome.org>\n" "Language-Team: Español <gnome-es-list@gnome.org>\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n!=1);\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: ../data/gnome-shell.desktop.in.in.h:1 #: ../data/gnome-shell.desktop.in.in.h:1
msgid "GNOME Shell" msgid "GNOME Shell"
@ -50,20 +50,14 @@ msgid "Framerate used for recording screencasts."
msgstr "Tasa de fotogramas usada para grabar «screencast»." msgstr "Tasa de fotogramas usada para grabar «screencast»."
#: ../data/org.gnome.shell.gschema.xml.in.h:5 #: ../data/org.gnome.shell.gschema.xml.in.h:5
#| 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 "" msgid ""
"GNOME Shell extensions have a uuid property; this key lists extensions which " "GNOME Shell extensions have a uuid property; this key lists extensions which "
"should be loaded. Any extension that wants to be loaded needs to be in this " "should be loaded. disabled-extensions overrides this setting for extensions "
"list. You can also manipulate this list with the EnableExtension and " "that appear in both lists."
"DisableExtension DBus methods on org.gnome.Shell."
msgstr "" msgstr ""
"Las extensiones de GNOME Shell tienen una propiedad uuid; esta clave lista " "Las extensiones de GNOME Shell tienen una propiedad uuid; esta clave lista "
"las extensiones que se deben cargar. Cualquier extensión que se quiere " "las extensiones que no se deben cargar. «disabled-extensions» sobreescribe "
"cargar debe estar en la lista. También puede manipular esta lista con los " "este ajuste para las extensiones que aparecen en ambas listas."
"métodos de DBus «EnableExtension» y «DisableExtension» en org.gnome.Shell."
#: ../data/org.gnome.shell.gschema.xml.in.h:6 #: ../data/org.gnome.shell.gschema.xml.in.h:6
msgid "History for command (Alt-F2) dialog" msgid "History for command (Alt-F2) dialog"
@ -104,16 +98,16 @@ msgid ""
"at the optimal thread count on the system." "at the optimal thread count on the system."
msgstr "" msgstr ""
"Establece la tubería GStreamer usada para codificar grabaciones. Sigue la " "Establece la tubería GStreamer usada para codificar grabaciones. Sigue la "
"sintaxis usada para gst-launch. La tubería debería tener un sumidero " "sintaxis usada para gst-launch. La tubería debería tener un sumidero («sink») "
"(«sink») de ensamblaje/sesensamblaje donde el vídeo que se está grabando se " "de ensamblaje/sesensamblaje donde el vídeo que se está grabando se graba. "
"graba. Generalmente tendrá un origen de ensamblado/desensamblado; la salida " "Generalmente tendrá un origen de ensamblado/desensamblado; la salida de ese "
"de ese punto se escibirá en el archivo de salida. No obstante la tubería " "punto se escibirá en el archivo de salida. No obstante la tubería también "
"también puede tomar parte en su propia salida; esto se puede usar para " "puede tomar parte en su propia salida; esto se puede usar para enviar la "
"enviar la salida a un servidor «icecast» a través de shout2send o similar. " "salida a un servidor «icecast» a través de shout2send o similar. Cuando no "
"Cuando no está establecido o lo está a un valor vacío, se usará la tubería " "está establecido o lo está a un valor vacío, se usará la tubería "
"predeterminada. Actualmente es «videorate ! vp8enc quality=10 speed=2 " "predeterminada. Actualmente es «videorate ! vp8enc quality=10 speed=2 threads="
"threads=%T ! queue ! webmmux» y greba en WEBM usando el códec VP8. Se usa %T " "%T ! queue ! webmmux» y greba en WEBM usando el códec VP8. Se usa %T como "
"como suposición para el número de hilos óptimos en el sistema." "suposición para el número de hilos óptimos en el sistema."
#: ../data/org.gnome.shell.gschema.xml.in.h:14 #: ../data/org.gnome.shell.gschema.xml.in.h:14
msgid "Show date in clock" msgid "Show date in clock"
@ -190,50 +184,52 @@ msgstr "Qué teclado usar"
msgid "disabled OpenSearch providers" msgid "disabled OpenSearch providers"
msgstr "proveedores OpenSearch desactivados" msgstr "proveedores OpenSearch desactivados"
#: ../js/gdm/loginDialog.js:633 #: ../js/gdm/loginDialog.js:617
msgid "Session..." msgid "Session..."
msgstr "Sesión…" msgstr "Sesión…"
#: ../js/gdm/loginDialog.js:804 #: ../js/gdm/loginDialog.js:788
msgctxt "title" msgctxt "title"
msgid "Sign In" msgid "Sign In"
msgstr "Iniciar sesión" msgstr "Iniciar sesión"
#. translators: this message is shown below the password entry field #. translators: this message is shown below the password entry field
#. to indicate the user can swipe their finger instead #. to indicate the user can swipe their finger instead
#: ../js/gdm/loginDialog.js:849 #: ../js/gdm/loginDialog.js:833
msgid "(or swipe finger)" msgid "(or swipe finger)"
msgstr "(o pase el dedo)" msgstr "(o pase el dedo)"
#: ../js/gdm/loginDialog.js:867 #: ../js/gdm/loginDialog.js:851
msgid "Not listed?" msgid "Not listed?"
msgstr "¿No está listado?" msgstr "¿No está listado?"
#: ../js/gdm/loginDialog.js:1035 ../js/ui/endSessionDialog.js:426 #: ../js/gdm/loginDialog.js:1019 ../js/ui/endSessionDialog.js:426
#: ../js/ui/extensionSystem.js:519 ../js/ui/networkAgent.js:148 #: ../js/ui/extensionSystem.js:477 ../js/ui/networkAgent.js:148
#: ../js/ui/polkitAuthenticationAgent.js:173 ../js/ui/status/bluetooth.js:480 #: ../js/ui/polkitAuthenticationAgent.js:173 ../js/ui/status/bluetooth.js:480
msgid "Cancel" msgid "Cancel"
msgstr "Cancelar" msgstr "Cancelar"
#: ../js/gdm/loginDialog.js:1040 #: ../js/gdm/loginDialog.js:1024
msgctxt "button" msgctxt "button"
msgid "Sign In" msgid "Sign In"
msgstr "Iniciar sesión" msgstr "Iniciar sesión"
#: ../js/gdm/loginDialog.js:1392 #: ../js/gdm/loginDialog.js:1373
msgid "Login Window" msgid "Login Window"
msgstr "Ventana de inicio de sesión" msgstr "Ventana de inicio de sesión"
#: ../js/gdm/powerMenu.js:116 ../js/ui/userMenu.js:573 #: ../js/gdm/powerMenu.js:116 ../js/ui/userMenu.js:549
#: ../js/ui/userMenu.js:575 ../js/ui/userMenu.js:644 #: ../js/ui/userMenu.js:551 ../js/ui/userMenu.js:620
msgid "Suspend" msgid "Suspend"
msgstr "Suspender" msgstr "Suspender"
#: ../js/gdm/powerMenu.js:121 #: ../js/gdm/powerMenu.js:121 ../js/ui/endSessionDialog.js:89
#: ../js/ui/endSessionDialog.js:97 ../js/ui/endSessionDialog.js:106
msgid "Restart" msgid "Restart"
msgstr "Reiniciar" msgstr "Reiniciar"
#: ../js/gdm/powerMenu.js:126 #: ../js/gdm/powerMenu.js:126 ../js/ui/endSessionDialog.js:80
#: ../js/ui/endSessionDialog.js:91
msgid "Power Off" msgid "Power Off"
msgstr "Apagar" msgstr "Apagar"
@ -446,8 +442,8 @@ msgstr "Esta semana"
msgid "Next week" msgid "Next week"
msgstr "La semana que viene" msgstr "La semana que viene"
#: ../js/ui/contactDisplay.js:65 ../js/ui/notificationDaemon.js:459 #: ../js/ui/contactDisplay.js:65 ../js/ui/notificationDaemon.js:444
#: ../js/ui/status/power.js:223 ../src/shell-app.c:350 #: ../js/ui/status/power.js:223 ../src/shell-app.c:353
msgid "Unknown" msgid "Unknown"
msgstr "Desconocido" msgstr "Desconocido"
@ -471,7 +467,7 @@ msgstr "Desconectado"
msgid "CONTACTS" msgid "CONTACTS"
msgstr "CONTACTOS" msgstr "CONTACTOS"
#: ../js/ui/dash.js:174 ../js/ui/messageTray.js:1214 #: ../js/ui/dash.js:174 ../js/ui/messageTray.js:1205
msgid "Remove" msgid "Remove"
msgstr "Quitar" msgstr "Quitar"
@ -536,12 +532,10 @@ msgstr "ELEMENTOS RECIENTES"
#: ../js/ui/endSessionDialog.js:60 #: ../js/ui/endSessionDialog.js:60
#, c-format #, c-format
msgctxt "title"
msgid "Log Out %s" msgid "Log Out %s"
msgstr "Cerrar la sesión %s" msgstr "Cerrar la sesión %s"
#: ../js/ui/endSessionDialog.js:61 #: ../js/ui/endSessionDialog.js:61 ../js/ui/endSessionDialog.js:75
msgctxt "title"
msgid "Log Out" msgid "Log Out"
msgstr "Cerrar la sesión" msgstr "Cerrar la sesión"
@ -569,16 +563,6 @@ msgstr[1] "Su sesión se cerrará automáticamente en %d segundos."
msgid "Logging out of the system." msgid "Logging out of the system."
msgstr "Cerrando la sesión." msgstr "Cerrando la sesión."
#: ../js/ui/endSessionDialog.js:75
msgctxt "button"
msgid "Log Out"
msgstr "Cerrar la sesión"
#: ../js/ui/endSessionDialog.js:80
msgctxt "title"
msgid "Power Off"
msgstr "Apagar"
#: ../js/ui/endSessionDialog.js:81 #: ../js/ui/endSessionDialog.js:81
msgid "Click Power Off to quit these applications and power off the system." msgid "Click Power Off to quit these applications and power off the system."
msgstr "Pulse «Apagar» para salir de esas aplicaciones y apagar el sistema." msgstr "Pulse «Apagar» para salir de esas aplicaciones y apagar el sistema."
@ -594,21 +578,6 @@ msgstr[1] "El sistema se apagará automáticamente en %d segundos."
msgid "Powering off the system." msgid "Powering off the system."
msgstr "Apagando el sistema." msgstr "Apagando el sistema."
#: ../js/ui/endSessionDialog.js:89 ../js/ui/endSessionDialog.js:106
msgctxt "button"
msgid "Restart"
msgstr "Reiniciar"
#: ../js/ui/endSessionDialog.js:91
msgctxt "button"
msgid "Power Off"
msgstr "Apagar"
#: ../js/ui/endSessionDialog.js:97
msgctxt "title"
msgid "Restart"
msgstr "Reiniciar"
#: ../js/ui/endSessionDialog.js:98 #: ../js/ui/endSessionDialog.js:98
msgid "Click Restart to quit these applications and restart the system." msgid "Click Restart to quit these applications and restart the system."
msgstr "" msgstr ""
@ -625,11 +594,11 @@ msgstr[1] "El sistema se reiniciará automáticamente en %d segundos."
msgid "Restarting the system." msgid "Restarting the system."
msgstr "Reiniciando el sistema." msgstr "Reiniciando el sistema."
#: ../js/ui/extensionSystem.js:523 #: ../js/ui/extensionSystem.js:481
msgid "Install" msgid "Install"
msgstr "Instalar" msgstr "Instalar"
#: ../js/ui/extensionSystem.js:527 #: ../js/ui/extensionSystem.js:485
#, c-format #, c-format
msgid "Download and install '%s' from extensions.gnome.org?" msgid "Download and install '%s' from extensions.gnome.org?"
msgstr "¿Descargar e instalar «%s» desde extensions.gnome.org?" msgstr "¿Descargar e instalar «%s» desde extensions.gnome.org?"
@ -642,67 +611,45 @@ msgstr "bandeja"
msgid "Keyboard" msgid "Keyboard"
msgstr "Teclado" msgstr "Teclado"
#: ../js/ui/lookingGlass.js:664 #: ../js/ui/lookingGlass.js:646
msgid "No extensions installed" msgid "No extensions installed"
msgstr "No hay extensiones instaladas" msgstr "No hay extensiones instaladas"
#. Translators: argument is an extension UUID. #: ../js/ui/lookingGlass.js:692
#: ../js/ui/lookingGlass.js:719
#, c-format
msgid "%s has not emitted any errors."
msgstr "%s no ha generado ningún error."
#: ../js/ui/lookingGlass.js:725
msgid "Hide Errors"
msgstr "Ocultar errores"
#: ../js/ui/lookingGlass.js:729 ../js/ui/lookingGlass.js:780
msgid "Show Errors"
msgstr "Mostrar errores"
#: ../js/ui/lookingGlass.js:738
msgid "Enabled" msgid "Enabled"
msgstr "Activado" msgstr "Activado"
#. translators: #. translators:
#. * The device has been disabled #. * The device has been disabled
#: ../js/ui/lookingGlass.js:741 ../src/gvc/gvc-mixer-control.c:1093 #: ../js/ui/lookingGlass.js:694 ../src/gvc/gvc-mixer-control.c:1093
msgid "Disabled" msgid "Disabled"
msgstr "Desactivado" msgstr "Desactivado"
#: ../js/ui/lookingGlass.js:743 #: ../js/ui/lookingGlass.js:696
msgid "Error" msgid "Error"
msgstr "Error" msgstr "Error"
#: ../js/ui/lookingGlass.js:745 #: ../js/ui/lookingGlass.js:698
msgid "Out of date" msgid "Out of date"
msgstr "Caducado" msgstr "Caducado"
#: ../js/ui/lookingGlass.js:747 #: ../js/ui/lookingGlass.js:700
msgid "Downloading" msgid "Downloading"
msgstr "Descargando" msgstr "Descargando"
#: ../js/ui/lookingGlass.js:768 #: ../js/ui/lookingGlass.js:721
msgid "View Source" msgid "View Source"
msgstr "Ver fuente" msgstr "Ver fuente"
#: ../js/ui/lookingGlass.js:774 #: ../js/ui/lookingGlass.js:727
msgid "Web Page" msgid "Web Page"
msgstr "Página web" msgstr "Página web"
#: ../js/ui/messageTray.js:1207 #: ../js/ui/messageTray.js:1198
msgid "Open" msgid "Open"
msgstr "Abrir" msgstr "Abrir"
#: ../js/ui/messageTray.js:1224 #: ../js/ui/messageTray.js:2407
msgid "Unmute"
msgstr "Dar voz"
#: ../js/ui/messageTray.js:1224
msgid "Mute"
msgstr "Silenciar"
#: ../js/ui/messageTray.js:2436
msgid "System Information" msgid "System Information"
msgstr "Información del sistema" msgstr "Información del sistema"
@ -748,8 +695,8 @@ msgstr "La red inalámbrica requiere autenticación"
#: ../js/ui/networkAgent.js:325 #: ../js/ui/networkAgent.js:325
#, c-format #, c-format
msgid "" msgid ""
"Passwords or encryption keys are required to access the wireless network " "Passwords or encryption keys are required to access the wireless network '%"
"'%s'." "s'."
msgstr "" msgstr ""
"Se necesitan contraseñas o claves de cifrado para acceder a la red " "Se necesitan contraseñas o claves de cifrado para acceder a la red "
"inalámbrica «%s»." "inalámbrica «%s»."
@ -888,14 +835,17 @@ msgid "Copy"
msgstr "Copiar" msgstr "Copiar"
#: ../js/ui/shellEntry.js:35 #: ../js/ui/shellEntry.js:35
#| msgid "Panel"
msgid "Paste" msgid "Paste"
msgstr "Pegar" msgstr "Pegar"
#: ../js/ui/shellEntry.js:81 #: ../js/ui/shellEntry.js:81
#| msgid "Show the _date"
msgid "Show Text" msgid "Show Text"
msgstr "Mostrar texto" msgstr "Mostrar texto"
#: ../js/ui/shellEntry.js:83 #: ../js/ui/shellEntry.js:83
#| msgid "Large Text"
msgid "Hide Text" msgid "Hide Text"
msgstr "Ocultar texto" msgstr "Ocultar texto"
@ -1121,13 +1071,13 @@ msgstr "no disponible"
msgid "connection failed" msgid "connection failed"
msgstr "falló la conexión" msgstr "falló la conexión"
#: ../js/ui/status/network.js:575 ../js/ui/status/network.js:1532 #: ../js/ui/status/network.js:575 ../js/ui/status/network.js:1523
msgid "More..." msgid "More..."
msgstr "Más…" msgstr "Más…"
#. TRANSLATORS: this is the indication that a connection for another logged in user is active, #. TRANSLATORS: this is the indication that a connection for another logged in user is active,
#. and we cannot access its settings (including the name) #. and we cannot access its settings (including the name)
#: ../js/ui/status/network.js:611 ../js/ui/status/network.js:1467 #: ../js/ui/status/network.js:611 ../js/ui/status/network.js:1458
msgid "Connected (private)" msgid "Connected (private)"
msgstr "Conectada (privada)" msgstr "Conectada (privada)"
@ -1144,7 +1094,7 @@ msgid "Auto dial-up"
msgstr "Marcado automático" msgstr "Marcado automático"
#. TRANSLATORS: this the automatic wireless connection name (including the network name) #. TRANSLATORS: this the automatic wireless connection name (including the network name)
#: ../js/ui/status/network.js:878 ../js/ui/status/network.js:1479 #: ../js/ui/status/network.js:878 ../js/ui/status/network.js:1470
#, c-format #, c-format
msgid "Auto %s" msgid "Auto %s"
msgstr "%s automática" msgstr "%s automática"
@ -1153,47 +1103,47 @@ msgstr "%s automática"
msgid "Auto bluetooth" msgid "Auto bluetooth"
msgstr "Bluetooth automático" msgstr "Bluetooth automático"
#: ../js/ui/status/network.js:1481 #: ../js/ui/status/network.js:1472
msgid "Auto wireless" msgid "Auto wireless"
msgstr "Inalámbrica automática" msgstr "Inalámbrica automática"
#: ../js/ui/status/network.js:1575 #: ../js/ui/status/network.js:1566
msgid "Enable networking" msgid "Enable networking"
msgstr "Activar red" msgstr "Activar red"
#: ../js/ui/status/network.js:1587 #: ../js/ui/status/network.js:1578
msgid "Wired" msgid "Wired"
msgstr "Cableada" msgstr "Cableada"
#: ../js/ui/status/network.js:1598 #: ../js/ui/status/network.js:1589
msgid "Wireless" msgid "Wireless"
msgstr "Inalámbrica" msgstr "Inalámbrica"
#: ../js/ui/status/network.js:1608 #: ../js/ui/status/network.js:1599
msgid "Mobile broadband" msgid "Mobile broadband"
msgstr "Banda ancha móvil" msgstr "Banda ancha móvil"
#: ../js/ui/status/network.js:1618 #: ../js/ui/status/network.js:1609
msgid "VPN Connections" msgid "VPN Connections"
msgstr "Conexiones VPN" msgstr "Conexiones VPN"
#: ../js/ui/status/network.js:1629 #: ../js/ui/status/network.js:1620
msgid "Network Settings" msgid "Network Settings"
msgstr "Configuración de la red" msgstr "Configuración de la red"
#: ../js/ui/status/network.js:1766 #: ../js/ui/status/network.js:1757
msgid "Connection failed" msgid "Connection failed"
msgstr "Falló la conexión" msgstr "Falló la conexión"
#: ../js/ui/status/network.js:1767 #: ../js/ui/status/network.js:1758
msgid "Activation of network connection failed" msgid "Activation of network connection failed"
msgstr "Falló la activación de la conexión de red" msgstr "Falló la activación de la conexión de red"
#: ../js/ui/status/network.js:2017 #: ../js/ui/status/network.js:2008
msgid "Networking is disabled" msgid "Networking is disabled"
msgstr "La red está desactivada" msgstr "La red está desactivada"
#: ../js/ui/status/network.js:2144 #: ../js/ui/status/network.js:2133
msgid "Network Manager" msgid "Network Manager"
msgstr "Gestor de la red" msgstr "Gestor de la red"
@ -1559,39 +1509,39 @@ msgstr "Inactivo"
msgid "Unavailable" msgid "Unavailable"
msgstr "No disponible" msgstr "No disponible"
#: ../js/ui/userMenu.js:571 ../js/ui/userMenu.js:575 ../js/ui/userMenu.js:645 #: ../js/ui/userMenu.js:547 ../js/ui/userMenu.js:551 ../js/ui/userMenu.js:621
msgid "Power Off..." msgid "Power Off..."
msgstr "Apagar…" msgstr "Apagar…"
#: ../js/ui/userMenu.js:607 #: ../js/ui/userMenu.js:583
msgid "Notifications" msgid "Notifications"
msgstr "Notificaciones" msgstr "Notificaciones"
#: ../js/ui/userMenu.js:615 #: ../js/ui/userMenu.js:591
msgid "Online Accounts" msgid "Online Accounts"
msgstr "Cuentas en línea" msgstr "Cuentas en línea"
#: ../js/ui/userMenu.js:619 #: ../js/ui/userMenu.js:595
msgid "System Settings" msgid "System Settings"
msgstr "Configuración del sistema" msgstr "Configuración del sistema"
#: ../js/ui/userMenu.js:626 #: ../js/ui/userMenu.js:602
msgid "Lock Screen" msgid "Lock Screen"
msgstr "Bloquear la pantalla" msgstr "Bloquear la pantalla"
#: ../js/ui/userMenu.js:631 #: ../js/ui/userMenu.js:607
msgid "Switch User" msgid "Switch User"
msgstr "Cambiar de usuario" msgstr "Cambiar de usuario"
#: ../js/ui/userMenu.js:636 #: ../js/ui/userMenu.js:612
msgid "Log Out..." msgid "Log Out..."
msgstr "Cerrar la sesión…" msgstr "Cerrar la sesión…"
#: ../js/ui/userMenu.js:664 #: ../js/ui/userMenu.js:640
msgid "Your chat status will be set to busy" msgid "Your chat status will be set to busy"
msgstr "Su estado del chat se establecerá a «ocupado»" msgstr "Su estado del chat se establecerá a «ocupado»"
#: ../js/ui/userMenu.js:665 #: ../js/ui/userMenu.js:641
msgid "" msgid ""
"Notifications are now disabled, including chat messages. Your online status " "Notifications are now disabled, including chat messages. Your online status "
"has been adjusted to let others know that you might not see their messages." "has been adjusted to let others know that you might not see their messages."
@ -1608,7 +1558,7 @@ msgstr ""
msgid "Type to search..." msgid "Type to search..."
msgstr "Teclear para buscar…" msgstr "Teclear para buscar…"
#: ../js/ui/viewSelector.js:142 ../src/shell-util.c:244 #: ../js/ui/viewSelector.js:142 ../src/shell-util.c:261
msgid "Search" msgid "Search"
msgstr "Buscar" msgstr "Buscar"
@ -1639,15 +1589,15 @@ msgstr[1] "%u entradas"
msgid "System Sounds" msgid "System Sounds"
msgstr "Sonidos del sistema" msgstr "Sonidos del sistema"
#: ../src/main.c:483 #: ../src/main.c:480
msgid "Print version" msgid "Print version"
msgstr "Imprimir versión" msgstr "Imprimir versión"
#: ../src/main.c:489 #: ../src/main.c:486
msgid "Mode used by GDM for login screen" msgid "Mode used by GDM for login screen"
msgstr "Modo usado por GDM para la pantalla de inicio" msgstr "Modo usado por GDM para la pantalla de inicio"
#: ../src/shell-app.c:567 #: ../src/shell-app.c:579
#, c-format #, c-format
msgid "Failed to launch '%s'" msgid "Failed to launch '%s'"
msgstr "Falló al lanzar «%s»" msgstr "Falló al lanzar «%s»"
@ -1664,15 +1614,13 @@ msgstr "Predeterminada"
msgid "Authentication dialog was dismissed by the user" msgid "Authentication dialog was dismissed by the user"
msgstr "El usuario rechazó el diálogo de autenticación" msgstr "El usuario rechazó el diálogo de autenticación"
#. Translators: this is the same string as the one found in #: ../src/shell-util.c:100
#. * nautilus msgid "Home Folder"
#: ../src/shell-util.c:89
msgid "Home"
msgstr "Carpeta personal" msgstr "Carpeta personal"
#. Translators: this is the same string as the one found in #. Translators: this is the same string as the one found in
#. * nautilus #. * nautilus
#: ../src/shell-util.c:98 #: ../src/shell-util.c:115
msgid "File System" msgid "File System"
msgstr "Sistema de archivos" msgstr "Sistema de archivos"
@ -1681,27 +1629,25 @@ msgstr "Sistema de archivos"
#. * example, "Trash: some-directory". It means that the #. * example, "Trash: some-directory". It means that the
#. * directory called "some-directory" is in the trash. #. * directory called "some-directory" is in the trash.
#. #.
#: ../src/shell-util.c:294 #: ../src/shell-util.c:311
#, c-format #, c-format
msgid "%1$s: %2$s" msgid "%1$s: %2$s"
msgstr "%1$s: %2$s" msgstr "%1$s: %2$s"
#~ msgid ""
#~ "GNOME Shell extensions have a uuid property; this key lists extensions "
#~ "which should be loaded. disabled-extensions overrides this setting for "
#~ "extensions that appear in both lists."
#~ msgstr ""
#~ "Las extensiones de GNOME Shell tienen una propiedad uuid; esta clave "
#~ "lista las extensiones que no se deben cargar. «disabled-extensions» "
#~ "sobreescribe este ajuste para las extensiones que aparecen en ambas "
#~ "listas."
#~ msgid "Home Folder"
#~ msgstr "Carpeta personal"
#~ msgid "Show password" #~ msgid "Show password"
#~ msgstr "Mostrar contraseña" #~ 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" #~ msgid "%s has finished starting"
#~ msgstr "%s finalizó su lanzamiento" #~ msgstr "%s finalizó su lanzamiento"
@ -1737,6 +1683,16 @@ msgstr "%1$s: %2$s"
#~ msgid "You're now connected to VPN network '%s'" #~ msgid "You're now connected to VPN network '%s'"
#~ msgstr "Ahora está conectado a la VPN «%s»" #~ msgstr "Ahora está conectado a la VPN «%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."
#~ msgstr ""
#~ "Las extensiones de GNOME Shell tienen una propiedad uuid; esta clave "
#~ "lista las extensiones que no se deben cargar. Este ajuste "
#~ "sobreescribe«enabled-extensions» para las extensiones que aparecen en "
#~ "ambas listas."
#~ msgid "Uuids of extensions to disable" #~ msgid "Uuids of extensions to disable"
#~ msgstr "Uuid de las extensiones que desactivar" #~ msgstr "Uuid de las extensiones que desactivar"
@ -1958,8 +1914,8 @@ msgstr "%1$s: %2$s"
#~ "If true and format is either \"12-hour\" or \"24-hour\", display seconds " #~ "If true and format is either \"12-hour\" or \"24-hour\", display seconds "
#~ "in time." #~ "in time."
#~ msgstr "" #~ msgstr ""
#~ "Si es cierta y el formato es «12-horas» o «24-horas», muestra los " #~ "Si es cierta y el formato es «12-horas» o «24-horas», muestra los segundos "
#~ "segundos en la hora." #~ "en la hora."
#~ msgid "" #~ msgid ""
#~ "This key specifies the format used by the panel clock when the format key " #~ "This key specifies the format used by the panel clock when the format key "
@ -1976,19 +1932,18 @@ msgstr "%1$s: %2$s"
#~ msgid "" #~ msgid ""
#~ "This key specifies the hour format used by the panel clock. Possible " #~ "This key specifies the hour format used by the panel clock. Possible "
#~ "values are \"12-hour\", \"24-hour\", \"unix\" and \"custom\". If set to " #~ "values are \"12-hour\", \"24-hour\", \"unix\" and \"custom\". If set to "
#~ "\"unix\", the clock will display time in seconds since Epoch, i.e. " #~ "\"unix\", the clock will display time in seconds since Epoch, i.e. 1970-"
#~ "1970-01-01. If set to \"custom\", the clock will display time according " #~ "01-01. If set to \"custom\", the clock will display time according to the "
#~ "to the format specified in the custom_format key. Note that if set to " #~ "format specified in the custom_format key. Note that if set to either "
#~ "either \"unix\" or \"custom\", the show_date and show_seconds keys are " #~ "\"unix\" or \"custom\", the show_date and show_seconds keys are ignored."
#~ "ignored."
#~ msgstr "" #~ msgstr ""
#~ "Esta clave especifica el formato de la hora especificado por el reloj del " #~ "Esta clave especifica el formato de la hora especificado por el reloj del "
#~ "panel. Los valores posibles son «12-hour» (12 horas), «24-hour» (24 " #~ "panel. Los valores posibles son «12-hour» (12 horas), «24-hour» (24 horas), "
#~ "horas), «unix» y «custom» (personalizado).Si se establece a «unix» el " #~ "«unix» y «custom» (personalizado).Si se establece a «unix» el reloj mostrará "
#~ "reloj mostrará la hora en segundos desde la época (1 de enero de 1970). " #~ "la hora en segundos desde la época (1 de enero de 1970). Si se establece "
#~ "Si se establece a «custom» el reloj mostrará la hora según el formato " #~ "a «custom» el reloj mostrará la hora según el formato especificado en la "
#~ "especificado en la clave «custom_format». Note que si se establece a " #~ "clave «custom_format». Note que si se establece a «unix» o «custom» se "
#~ "«unix» o «custom» se ignoran las claves «show_date» y «show_seconds»." #~ "ignoran las claves «show_date» y «show_seconds»."
#~ msgid "Clock Format" #~ msgid "Clock Format"
#~ msgstr "Formato del reloj" #~ msgstr "Formato del reloj"

786
po/et.po

File diff suppressed because it is too large Load Diff

298
po/fi.po
View File

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

147
po/fr.po
View File

@ -15,8 +15,8 @@ msgstr ""
"Project-Id-Version: gnome-shell master fr\n" "Project-Id-Version: gnome-shell master fr\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
"shell&keywords=I18N+L10N&component=general\n" "shell&keywords=I18N+L10N&component=general\n"
"POT-Creation-Date: 2011-10-13 20:12+0000\n" "POT-Creation-Date: 2011-10-18 19:39+0000\n"
"PO-Revision-Date: 2011-10-11 13:23+0200 \n" "PO-Revision-Date: 2011-10-29 19:01+0200\n"
"Last-Translator: Bruno Brouard <annoa.b@gmail.com>\n" "Last-Translator: Bruno Brouard <annoa.b@gmail.com>\n"
"Language-Team: GNOME French Team <gnomefr@traduc.org>\n" "Language-Team: GNOME French Team <gnomefr@traduc.org>\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
@ -192,42 +192,42 @@ msgstr "Le clavier utilisé"
msgid "disabled OpenSearch providers" msgid "disabled OpenSearch providers"
msgstr "fournisseurs OpenSearch désactivés" msgstr "fournisseurs OpenSearch désactivés"
#: ../js/gdm/loginDialog.js:617 #: ../js/gdm/loginDialog.js:633
msgid "Session..." msgid "Session..."
msgstr "Session..." msgstr "Session..."
#: ../js/gdm/loginDialog.js:788 #: ../js/gdm/loginDialog.js:804
msgctxt "title" msgctxt "title"
msgid "Sign In" msgid "Sign In"
msgstr "Connexion" msgstr "Connexion"
#. translators: this message is shown below the password entry field #. translators: this message is shown below the password entry field
#. to indicate the user can swipe their finger instead #. to indicate the user can swipe their finger instead
#: ../js/gdm/loginDialog.js:833 #: ../js/gdm/loginDialog.js:849
msgid "(or swipe finger)" msgid "(or swipe finger)"
msgstr "(ou faites glisser le doigt)" msgstr "(ou faites glisser le doigt)"
#: ../js/gdm/loginDialog.js:851 #: ../js/gdm/loginDialog.js:867
msgid "Not listed?" msgid "Not listed?"
msgstr "Absent de la liste ?" msgstr "Absent de la liste ?"
#: ../js/gdm/loginDialog.js:1019 ../js/ui/endSessionDialog.js:426 #: ../js/gdm/loginDialog.js:1035 ../js/ui/endSessionDialog.js:426
#: ../js/ui/extensionSystem.js:477 ../js/ui/networkAgent.js:165 #: ../js/ui/extensionSystem.js:477 ../js/ui/networkAgent.js:148
#: ../js/ui/polkitAuthenticationAgent.js:171 ../js/ui/status/bluetooth.js:480 #: ../js/ui/polkitAuthenticationAgent.js:173 ../js/ui/status/bluetooth.js:480
msgid "Cancel" msgid "Cancel"
msgstr "Annuler" msgstr "Annuler"
#: ../js/gdm/loginDialog.js:1024 #: ../js/gdm/loginDialog.js:1040
msgctxt "button" msgctxt "button"
msgid "Sign In" msgid "Sign In"
msgstr "Se connecter" msgstr "Se connecter"
#: ../js/gdm/loginDialog.js:1373 #: ../js/gdm/loginDialog.js:1392
msgid "Login Window" msgid "Login Window"
msgstr "Fenêtre de connexion" msgstr "Fenêtre de connexion"
#: ../js/gdm/powerMenu.js:116 ../js/ui/userMenu.js:549 #: ../js/gdm/powerMenu.js:116 ../js/ui/userMenu.js:554
#: ../js/ui/userMenu.js:551 ../js/ui/userMenu.js:620 #: ../js/ui/userMenu.js:556 ../js/ui/userMenu.js:625
msgid "Suspend" msgid "Suspend"
msgstr "Mettre en veille" msgstr "Mettre en veille"
@ -473,7 +473,7 @@ msgstr "Cette semaine"
msgid "Next week" msgid "Next week"
msgstr "La semaine prochaine" msgstr "La semaine prochaine"
#: ../js/ui/contactDisplay.js:65 ../js/ui/notificationDaemon.js:444 #: ../js/ui/contactDisplay.js:65 ../js/ui/notificationDaemon.js:459
#: ../js/ui/status/power.js:223 ../src/shell-app.c:353 #: ../js/ui/status/power.js:223 ../src/shell-app.c:353
msgid "Unknown" msgid "Unknown"
msgstr "Inconnu" msgstr "Inconnu"
@ -498,7 +498,7 @@ msgstr "Déconnecté"
msgid "CONTACTS" msgid "CONTACTS"
msgstr "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" msgid "Remove"
msgstr "Enlever" msgstr "Enlever"
@ -643,100 +643,96 @@ msgstr "Installer"
msgid "Download and install '%s' from extensions.gnome.org?" msgid "Download and install '%s' from extensions.gnome.org?"
msgstr "Télécharger et installer « %s » à partir de extensions.gnome.org ?" msgstr "Télécharger et installer « %s » à partir de extensions.gnome.org ?"
#: ../js/ui/keyboard.js:309 #: ../js/ui/keyboard.js:325
msgid "tray" msgid "tray"
msgstr "zone de notification" msgstr "zone de notification"
#: ../js/ui/keyboard.js:531 ../js/ui/status/power.js:211 #: ../js/ui/keyboard.js:547 ../js/ui/status/power.js:211
msgid "Keyboard" msgid "Keyboard"
msgstr "Clavier" msgstr "Clavier"
#: ../js/ui/lookingGlass.js:645 #: ../js/ui/lookingGlass.js:646
msgid "No extensions installed" msgid "No extensions installed"
msgstr "Aucune extension installée" msgstr "Aucune extension installée"
#: ../js/ui/lookingGlass.js:691 #: ../js/ui/lookingGlass.js:692
msgid "Enabled" msgid "Enabled"
msgstr "Activé" msgstr "Activé"
#. translators: #. translators:
#. * The device has been disabled #. * 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" msgid "Disabled"
msgstr "Désactivé" msgstr "Désactivé"
#: ../js/ui/lookingGlass.js:695 #: ../js/ui/lookingGlass.js:696
msgid "Error" msgid "Error"
msgstr "Erreur" msgstr "Erreur"
#: ../js/ui/lookingGlass.js:697 #: ../js/ui/lookingGlass.js:698
msgid "Out of date" msgid "Out of date"
msgstr "Périmé" msgstr "Périmé"
#: ../js/ui/lookingGlass.js:699 #: ../js/ui/lookingGlass.js:700
msgid "Downloading" msgid "Downloading"
msgstr "Téléchargement" msgstr "Téléchargement"
#: ../js/ui/lookingGlass.js:720 #: ../js/ui/lookingGlass.js:721
msgid "View Source" msgid "View Source"
msgstr "Afficher la source" msgstr "Afficher la source"
#: ../js/ui/lookingGlass.js:726 #: ../js/ui/lookingGlass.js:727
msgid "Web Page" msgid "Web Page"
msgstr "Page Web" msgstr "Page Web"
#: ../js/ui/messageTray.js:1197 #: ../js/ui/messageTray.js:1199
msgid "Open" msgid "Open"
msgstr "Ouvrir" msgstr "Ouvrir"
#: ../js/ui/messageTray.js:2406 #: ../js/ui/messageTray.js:2408
msgid "System Information" msgid "System Information"
msgstr "Informations du système" msgstr "Informations du système"
#: ../js/ui/networkAgent.js:145 #: ../js/ui/networkAgent.js:143
msgid "Show password"
msgstr "Afficher le mot de passe"
#: ../js/ui/networkAgent.js:160
msgid "Connect" msgid "Connect"
msgstr "Se connecter" msgstr "Se connecter"
#. Cisco LEAP #. Cisco LEAP
#: ../js/ui/networkAgent.js:255 ../js/ui/networkAgent.js:267 #: ../js/ui/networkAgent.js:238 ../js/ui/networkAgent.js:250
#: ../js/ui/networkAgent.js:294 ../js/ui/networkAgent.js:314 #: ../js/ui/networkAgent.js:277 ../js/ui/networkAgent.js:297
#: ../js/ui/networkAgent.js:324 #: ../js/ui/networkAgent.js:307
msgid "Password: " msgid "Password: "
msgstr "Mot de passe : " msgstr "Mot de passe : "
#. static WEP #. static WEP
#: ../js/ui/networkAgent.js:260 #: ../js/ui/networkAgent.js:243
msgid "Key: " msgid "Key: "
msgstr "Clé : " msgstr "Clé : "
#. TTLS and PEAP are actually much more complicated, but this complication #. TTLS and PEAP are actually much more complicated, but this complication
#. is not visible here since we only care about phase2 authentication #. is not visible here since we only care about phase2 authentication
#. (and don't even care of which one) #. (and don't even care of which one)
#: ../js/ui/networkAgent.js:292 ../js/ui/networkAgent.js:310 #: ../js/ui/networkAgent.js:275 ../js/ui/networkAgent.js:293
msgid "Username: " msgid "Username: "
msgstr "Nom d'utilisateur : " msgstr "Nom d'utilisateur : "
#: ../js/ui/networkAgent.js:298 #: ../js/ui/networkAgent.js:281
msgid "Identity: " msgid "Identity: "
msgstr "Identité : " msgstr "Identité : "
#: ../js/ui/networkAgent.js:300 #: ../js/ui/networkAgent.js:283
msgid "Private key password: " msgid "Private key password: "
msgstr "Mot de passe de la clé privée : " msgstr "Mot de passe de la clé privée : "
#: ../js/ui/networkAgent.js:312 #: ../js/ui/networkAgent.js:295
msgid "Service: " msgid "Service: "
msgstr "Service : " msgstr "Service : "
#: ../js/ui/networkAgent.js:341 #: ../js/ui/networkAgent.js:324
msgid "Authentication required by wireless network" msgid "Authentication required by wireless network"
msgstr "L'authentification est requise par le réseau sans fil" msgstr "L'authentification est requise par le réseau sans fil"
#: ../js/ui/networkAgent.js:342 #: ../js/ui/networkAgent.js:325
#, c-format #, c-format
msgid "" msgid ""
"Passwords or encryption keys are required to access the wireless network '%" "Passwords or encryption keys are required to access the wireless network '%"
@ -745,35 +741,35 @@ msgstr ""
"Il faut un mot de passe ou une clé de chiffrement pour accéder au réseau " "Il faut un mot de passe ou une clé de chiffrement pour accéder au réseau "
"sans fil « %s »" "sans fil « %s »"
#: ../js/ui/networkAgent.js:346 #: ../js/ui/networkAgent.js:329
msgid "Wired 802.1X authentication" msgid "Wired 802.1X authentication"
msgstr "Authentification filaire 802.1X" msgstr "Authentification filaire 802.1X"
#: ../js/ui/networkAgent.js:348 #: ../js/ui/networkAgent.js:331
msgid "Network name: " msgid "Network name: "
msgstr "Nom du réseau : " msgstr "Nom du réseau : "
#: ../js/ui/networkAgent.js:353 #: ../js/ui/networkAgent.js:336
msgid "DSL authentication" msgid "DSL authentication"
msgstr "Authentification DSL" msgstr "Authentification DSL"
#: ../js/ui/networkAgent.js:360 #: ../js/ui/networkAgent.js:343
msgid "PIN code required" msgid "PIN code required"
msgstr "Code PIN requis" msgstr "Code PIN requis"
#: ../js/ui/networkAgent.js:361 #: ../js/ui/networkAgent.js:344
msgid "PIN code is needed for the mobile broadband device" msgid "PIN code is needed for the mobile broadband device"
msgstr "Un code PIN est nécessaire pour les téléphones mobiles à large bande" msgstr "Un code PIN est nécessaire pour les téléphones mobiles à large bande"
#: ../js/ui/networkAgent.js:362 #: ../js/ui/networkAgent.js:345
msgid "PIN: " msgid "PIN: "
msgstr "PIN : " msgstr "PIN : "
#: ../js/ui/networkAgent.js:368 #: ../js/ui/networkAgent.js:351
msgid "Mobile broadband network password" msgid "Mobile broadband network password"
msgstr "Mot de passe du téléphone mobile à large bande" msgstr "Mot de passe du téléphone mobile à large bande"
#: ../js/ui/networkAgent.js:369 #: ../js/ui/networkAgent.js:352
#, c-format #, c-format
msgid "A password is required to connect to '%s'." msgid "A password is required to connect to '%s'."
msgstr "Un mot de passe est requis pour se connecter à « %s »." msgstr "Un mot de passe est requis pour se connecter à « %s »."
@ -829,15 +825,15 @@ msgstr "Connexion à..."
msgid "PLACES & DEVICES" msgid "PLACES & DEVICES"
msgstr "RACCOURCIS et PÉRIPHÉRIQUES" msgstr "RACCOURCIS et PÉRIPHÉRIQUES"
#: ../js/ui/polkitAuthenticationAgent.js:72 #: ../js/ui/polkitAuthenticationAgent.js:73
msgid "Authentication Required" msgid "Authentication Required"
msgstr "Authentification nécessaire" msgstr "Authentification nécessaire"
#: ../js/ui/polkitAuthenticationAgent.js:106 #: ../js/ui/polkitAuthenticationAgent.js:107
msgid "Administrator" msgid "Administrator"
msgstr "Administrateur" msgstr "Administrateur"
#: ../js/ui/polkitAuthenticationAgent.js:175 #: ../js/ui/polkitAuthenticationAgent.js:177
msgid "Authenticate" msgid "Authenticate"
msgstr "S'authentifier" msgstr "S'authentifier"
@ -845,11 +841,11 @@ msgstr "S'authentifier"
#. * requested authentication was not gained; this can happen #. * requested authentication was not gained; this can happen
#. * because of an authentication error (like invalid password), #. * because of an authentication error (like invalid password),
#. * for instance. #. * for instance.
#: ../js/ui/polkitAuthenticationAgent.js:256 #: ../js/ui/polkitAuthenticationAgent.js:258
msgid "Sorry, that didn't work. Please try again." msgid "Sorry, that didn't work. Please try again."
msgstr "Échec de l'authentification. Essayez à nouveau." msgstr "Échec de l'authentification. Essayez à nouveau."
#: ../js/ui/polkitAuthenticationAgent.js:268 #: ../js/ui/polkitAuthenticationAgent.js:270
msgid "Password:" msgid "Password:"
msgstr "Mot de passe :" msgstr "Mot de passe :"
@ -862,7 +858,7 @@ msgstr "Mot de passe :"
msgid "toggle-switch-us" msgid "toggle-switch-us"
msgstr "toggle-switch-intl" msgstr "toggle-switch-intl"
#: ../js/ui/runDialog.js:208 #: ../js/ui/runDialog.js:209
msgid "Please enter a command:" msgid "Please enter a command:"
msgstr "Veuillez saisir une commande :" msgstr "Veuillez saisir une commande :"
@ -874,6 +870,22 @@ msgstr "Recherche en cours..."
msgid "No matching results." msgid "No matching results."
msgstr "Aucun résultat correspondant." 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 #: ../js/ui/shellMountOperation.js:285
msgid "Wrong password, please try again" msgid "Wrong password, please try again"
msgstr "Mot de passe incorrect, réessayez" msgstr "Mot de passe incorrect, réessayez"
@ -1541,39 +1553,39 @@ msgstr "Inactif"
msgid "Unavailable" msgid "Unavailable"
msgstr "Non disponible" msgstr "Non disponible"
#: ../js/ui/userMenu.js:547 ../js/ui/userMenu.js:551 ../js/ui/userMenu.js:621 #: ../js/ui/userMenu.js:552 ../js/ui/userMenu.js:556 ../js/ui/userMenu.js:626
msgid "Power Off..." msgid "Power Off..."
msgstr "Éteindre..." msgstr "Éteindre..."
#: ../js/ui/userMenu.js:583 #: ../js/ui/userMenu.js:588
msgid "Notifications" msgid "Notifications"
msgstr "Notifications" msgstr "Notifications"
#: ../js/ui/userMenu.js:591 #: ../js/ui/userMenu.js:596
msgid "Online Accounts" msgid "Online Accounts"
msgstr "Comptes en ligne" msgstr "Comptes en ligne"
#: ../js/ui/userMenu.js:595 #: ../js/ui/userMenu.js:600
msgid "System Settings" msgid "System Settings"
msgstr "Paramètres système" msgstr "Paramètres système"
#: ../js/ui/userMenu.js:602 #: ../js/ui/userMenu.js:607
msgid "Lock Screen" msgid "Lock Screen"
msgstr "Verrouiller l'écran" msgstr "Verrouiller l'écran"
#: ../js/ui/userMenu.js:607 #: ../js/ui/userMenu.js:612
msgid "Switch User" msgid "Switch User"
msgstr "Changer d'utilisateur" msgstr "Changer d'utilisateur"
#: ../js/ui/userMenu.js:612 #: ../js/ui/userMenu.js:617
msgid "Log Out..." msgid "Log Out..."
msgstr "Fermer la session..." msgstr "Fermer la session..."
#: ../js/ui/userMenu.js:640 #: ../js/ui/userMenu.js:645
msgid "Your chat status will be set to busy" msgid "Your chat status will be set to busy"
msgstr "Votre statut pour les discussions sera défini à occupé" msgstr "Votre statut pour les discussions sera défini à occupé"
#: ../js/ui/userMenu.js:641 #: ../js/ui/userMenu.js:646
msgid "" msgid ""
"Notifications are now disabled, including chat messages. Your online status " "Notifications are now disabled, including chat messages. Your online status "
"has been adjusted to let others know that you might not see their messages." "has been adjusted to let others know that you might not see their messages."
@ -1586,11 +1598,11 @@ msgstr ""
#. in the search entry when no search is #. in the search entry when no search is
#. active; it should not exceed ~30 #. active; it should not exceed ~30
#. characters. #. characters.
#: ../js/ui/viewSelector.js:120 #: ../js/ui/viewSelector.js:121
msgid "Type to search..." msgid "Type to search..."
msgstr "Rechercher..." msgstr "Rechercher..."
#: ../js/ui/viewSelector.js:140 ../src/shell-util.c:261 #: ../js/ui/viewSelector.js:142 ../src/shell-util.c:261
msgid "Search" msgid "Search"
msgstr "Recherche" msgstr "Recherche"
@ -1665,3 +1677,4 @@ msgstr "Système de fichiers"
#, c-format #, c-format
msgid "%1$s: %2$s" msgid "%1$s: %2$s"
msgstr "%1$s : %2$s" msgstr "%1$s : %2$s"

581
po/gl.po

File diff suppressed because it is too large Load Diff

522
po/he.po

File diff suppressed because it is too large Load Diff

920
po/lt.po

File diff suppressed because it is too large Load Diff

464
po/nb.po

File diff suppressed because it is too large Load Diff

2032
po/nn.po

File diff suppressed because it is too large Load Diff

View File

@ -9,20 +9,22 @@
# Rodrigo Padula <contato@rodrigopadula.com>, 2011. # Rodrigo Padula <contato@rodrigopadula.com>, 2011.
# Gabriel F. Vilar <cogumm@gmail.com>, 2011. # Gabriel F. Vilar <cogumm@gmail.com>, 2011.
# Adorilson Bezerra <adorilson@gmail.com>, 2011. # Adorilson Bezerra <adorilson@gmail.com>, 2011.
# Djavan Fagundes <djavan@comum.org>, 2011.
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: \n" "Project-Id-Version: \n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
"shell&keywords=I18N+L10N&component=general\n" "shell&keywords=I18N+L10N&component=general\n"
"POT-Creation-Date: 2011-10-15 12:39+0000\n" "POT-Creation-Date: 2011-10-20 14:38+0000\n"
"PO-Revision-Date: 2011-10-15 16:17-0300\n" "PO-Revision-Date: 2011-10-20 12:45-0200\n"
"Last-Translator: Adorilson Bezerra <adorilson@gmail.com>\n" "Last-Translator: Djavan Fagundes <djavan@comum.org>\n"
"Language-Team: Brazilian Portuguese <gnome-pt_br-list@gnome.org>\n" "Language-Team: Brazilian Portuguese <gnome-pt_br-list@gnome.org>\n"
"Language: pt_BR\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Language: pt_BR\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n" "X-Generator: Virtaal 0.6.1\n"
#: ../data/gnome-shell.desktop.in.in.h:1 #: ../data/gnome-shell.desktop.in.in.h:1
msgid "GNOME Shell" msgid "GNOME Shell"
@ -189,42 +191,42 @@ msgstr "Qual teclado usar"
msgid "disabled OpenSearch providers" msgid "disabled OpenSearch providers"
msgstr "Provedores OpenSearch desabilitados" msgstr "Provedores OpenSearch desabilitados"
#: ../js/gdm/loginDialog.js:617 #: ../js/gdm/loginDialog.js:633
msgid "Session..." msgid "Session..."
msgstr "Sessão..." msgstr "Sessão..."
#: ../js/gdm/loginDialog.js:788 #: ../js/gdm/loginDialog.js:804
msgctxt "title" msgctxt "title"
msgid "Sign In" msgid "Sign In"
msgstr "Iniciar sessão" msgstr "Iniciar sessão"
#. translators: this message is shown below the password entry field #. translators: this message is shown below the password entry field
#. to indicate the user can swipe their finger instead #. to indicate the user can swipe their finger instead
#: ../js/gdm/loginDialog.js:833 #: ../js/gdm/loginDialog.js:849
msgid "(or swipe finger)" msgid "(or swipe finger)"
msgstr "(ou deslize o dedo)" msgstr "(ou deslize o dedo)"
#: ../js/gdm/loginDialog.js:851 #: ../js/gdm/loginDialog.js:867
msgid "Not listed?" msgid "Not listed?"
msgstr "Não listado?" msgstr "Não listado?"
#: ../js/gdm/loginDialog.js:1019 ../js/ui/endSessionDialog.js:426 #: ../js/gdm/loginDialog.js:1035 ../js/ui/endSessionDialog.js:426
#: ../js/ui/extensionSystem.js:477 ../js/ui/networkAgent.js:165 #: ../js/ui/extensionSystem.js:477 ../js/ui/networkAgent.js:148
#: ../js/ui/polkitAuthenticationAgent.js:171 ../js/ui/status/bluetooth.js:480 #: ../js/ui/polkitAuthenticationAgent.js:173 ../js/ui/status/bluetooth.js:480
msgid "Cancel" msgid "Cancel"
msgstr "Cancelar" msgstr "Cancelar"
#: ../js/gdm/loginDialog.js:1024 #: ../js/gdm/loginDialog.js:1040
msgctxt "button" msgctxt "button"
msgid "Sign In" msgid "Sign In"
msgstr "Entrar" msgstr "Entrar"
#: ../js/gdm/loginDialog.js:1373 #: ../js/gdm/loginDialog.js:1392
msgid "Login Window" msgid "Login Window"
msgstr "Janela de sessão" msgstr "Janela de sessão"
#: ../js/gdm/powerMenu.js:116 ../js/ui/userMenu.js:549 #: ../js/gdm/powerMenu.js:116 ../js/ui/userMenu.js:554
#: ../js/ui/userMenu.js:551 ../js/ui/userMenu.js:620 #: ../js/ui/userMenu.js:556 ../js/ui/userMenu.js:625
msgid "Suspend" msgid "Suspend"
msgstr "Suspender" msgstr "Suspender"
@ -447,7 +449,7 @@ msgstr "Esta semana"
msgid "Next week" msgid "Next week"
msgstr "Próxima semana" msgstr "Próxima semana"
#: ../js/ui/contactDisplay.js:65 ../js/ui/notificationDaemon.js:444 #: ../js/ui/contactDisplay.js:65 ../js/ui/notificationDaemon.js:459
#: ../js/ui/status/power.js:223 ../src/shell-app.c:353 #: ../js/ui/status/power.js:223 ../src/shell-app.c:353
msgid "Unknown" msgid "Unknown"
msgstr "Desconhecido" msgstr "Desconhecido"
@ -472,7 +474,7 @@ msgstr "Desconectado"
msgid "CONTACTS" msgid "CONTACTS"
msgstr "CONTATOS" msgstr "CONTATOS"
#: ../js/ui/dash.js:172 ../js/ui/messageTray.js:1204 #: ../js/ui/dash.js:174 ../js/ui/messageTray.js:1206
msgid "Remove" msgid "Remove"
msgstr "Remover" msgstr "Remover"
@ -488,11 +490,11 @@ msgstr "Abrir calendário"
#. in 24-hour mode. #. in 24-hour mode.
#: ../js/ui/dateMenu.js:183 #: ../js/ui/dateMenu.js:183
msgid "%a %b %e, %R:%S" msgid "%a %b %e, %R:%S"
msgstr "%a, %e de %b, %R:%S" msgstr "%a %e de %b, %R:%S"
#: ../js/ui/dateMenu.js:184 #: ../js/ui/dateMenu.js:184
msgid "%a %b %e, %R" msgid "%a %b %e, %R"
msgstr "%a, %e de %b, %R" msgstr "%a %e de %b, %R"
#. Translators: This is the time format without date used #. Translators: This is the time format without date used
#. in 24-hour mode. #. in 24-hour mode.
@ -508,11 +510,11 @@ msgstr "%a %R"
#. for AM/PM. #. for AM/PM.
#: ../js/ui/dateMenu.js:196 #: ../js/ui/dateMenu.js:196
msgid "%a %b %e, %l:%M:%S %p" msgid "%a %b %e, %l:%M:%S %p"
msgstr "%a, %e de %b, %H:%M:%S" msgstr "%a %e de %b, %H:%M:%S"
#: ../js/ui/dateMenu.js:197 #: ../js/ui/dateMenu.js:197
msgid "%a %b %e, %l:%M %p" msgid "%a %b %e, %l:%M %p"
msgstr "%a, %e de %b, %l:%M %p" msgstr "%a %e de %b, %l:%M %p"
#. Translators: This is a time format without date used #. Translators: This is a time format without date used
#. for AM/PM. #. for AM/PM.
@ -606,100 +608,96 @@ msgstr "Instalar"
msgid "Download and install '%s' from extensions.gnome.org?" msgid "Download and install '%s' from extensions.gnome.org?"
msgstr "Baixar e instalar \"%s\" de extensions.gnome.org?" msgstr "Baixar e instalar \"%s\" de extensions.gnome.org?"
#: ../js/ui/keyboard.js:309 #: ../js/ui/keyboard.js:325
msgid "tray" msgid "tray"
msgstr "bandeja" msgstr "bandeja"
#: ../js/ui/keyboard.js:531 ../js/ui/status/power.js:211 #: ../js/ui/keyboard.js:547 ../js/ui/status/power.js:211
msgid "Keyboard" msgid "Keyboard"
msgstr "Teclado" msgstr "Teclado"
#: ../js/ui/lookingGlass.js:645 #: ../js/ui/lookingGlass.js:646
msgid "No extensions installed" msgid "No extensions installed"
msgstr "Nenhuma extensão instalada" msgstr "Nenhuma extensão instalada"
#: ../js/ui/lookingGlass.js:691 #: ../js/ui/lookingGlass.js:692
msgid "Enabled" msgid "Enabled"
msgstr "Habilitado" msgstr "Habilitado"
#. translators: #. translators:
#. * The device has been disabled #. * 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" msgid "Disabled"
msgstr "Desabilitado" msgstr "Desabilitado"
#: ../js/ui/lookingGlass.js:695 #: ../js/ui/lookingGlass.js:696
msgid "Error" msgid "Error"
msgstr "Erro" msgstr "Erro"
#: ../js/ui/lookingGlass.js:697 #: ../js/ui/lookingGlass.js:698
msgid "Out of date" msgid "Out of date"
msgstr "Expirado" msgstr "Expirado"
#: ../js/ui/lookingGlass.js:699 #: ../js/ui/lookingGlass.js:700
msgid "Downloading" msgid "Downloading"
msgstr "Baixando" msgstr "Baixando"
#: ../js/ui/lookingGlass.js:720 #: ../js/ui/lookingGlass.js:721
msgid "View Source" msgid "View Source"
msgstr "Ver fonte" msgstr "Ver fonte"
#: ../js/ui/lookingGlass.js:726 #: ../js/ui/lookingGlass.js:727
msgid "Web Page" msgid "Web Page"
msgstr "Página web" msgstr "Página web"
#: ../js/ui/messageTray.js:1197 #: ../js/ui/messageTray.js:1199
msgid "Open" msgid "Open"
msgstr "Abrir" msgstr "Abrir"
#: ../js/ui/messageTray.js:2406 #: ../js/ui/messageTray.js:2408
msgid "System Information" msgid "System Information"
msgstr "Informações do sistema" msgstr "Informações do sistema"
#: ../js/ui/networkAgent.js:145 #: ../js/ui/networkAgent.js:143
msgid "Show password"
msgstr "Mostrar senha"
#: ../js/ui/networkAgent.js:160
msgid "Connect" msgid "Connect"
msgstr "Conectar" msgstr "Conectar"
#. Cisco LEAP #. Cisco LEAP
#: ../js/ui/networkAgent.js:255 ../js/ui/networkAgent.js:267 #: ../js/ui/networkAgent.js:238 ../js/ui/networkAgent.js:250
#: ../js/ui/networkAgent.js:294 ../js/ui/networkAgent.js:314 #: ../js/ui/networkAgent.js:277 ../js/ui/networkAgent.js:297
#: ../js/ui/networkAgent.js:324 #: ../js/ui/networkAgent.js:307
msgid "Password: " msgid "Password: "
msgstr "Senha: " msgstr "Senha: "
#. static WEP #. static WEP
#: ../js/ui/networkAgent.js:260 #: ../js/ui/networkAgent.js:243
msgid "Key: " msgid "Key: "
msgstr "Chave: " msgstr "Chave: "
#. TTLS and PEAP are actually much more complicated, but this complication #. TTLS and PEAP are actually much more complicated, but this complication
#. is not visible here since we only care about phase2 authentication #. is not visible here since we only care about phase2 authentication
#. (and don't even care of which one) #. (and don't even care of which one)
#: ../js/ui/networkAgent.js:292 ../js/ui/networkAgent.js:310 #: ../js/ui/networkAgent.js:275 ../js/ui/networkAgent.js:293
msgid "Username: " msgid "Username: "
msgstr "Nome de usuário: " msgstr "Nome de usuário: "
#: ../js/ui/networkAgent.js:298 #: ../js/ui/networkAgent.js:281
msgid "Identity: " msgid "Identity: "
msgstr "Identidade: " msgstr "Identidade: "
#: ../js/ui/networkAgent.js:300 #: ../js/ui/networkAgent.js:283
msgid "Private key password: " msgid "Private key password: "
msgstr "Senha da chave privada: " msgstr "Senha da chave privada: "
#: ../js/ui/networkAgent.js:312 #: ../js/ui/networkAgent.js:295
msgid "Service: " msgid "Service: "
msgstr "Serviço: " msgstr "Serviço: "
#: ../js/ui/networkAgent.js:341 #: ../js/ui/networkAgent.js:324
msgid "Authentication required by wireless network" msgid "Authentication required by wireless network"
msgstr "Autenticação requisitada pela rede sem fio" msgstr "Autenticação requisitada pela rede sem fio"
#: ../js/ui/networkAgent.js:342 #: ../js/ui/networkAgent.js:325
#, c-format #, c-format
msgid "" msgid ""
"Passwords or encryption keys are required to access the wireless network '%" "Passwords or encryption keys are required to access the wireless network '%"
@ -708,35 +706,35 @@ msgstr ""
"Senhas ou chaves criptografadas são necessárias para acessar a rede sem fio " "Senhas ou chaves criptografadas são necessárias para acessar a rede sem fio "
"\"%s\"." "\"%s\"."
#: ../js/ui/networkAgent.js:346 #: ../js/ui/networkAgent.js:329
msgid "Wired 802.1X authentication" msgid "Wired 802.1X authentication"
msgstr "Autenticação 802.1X cabeada" msgstr "Autenticação 802.1X cabeada"
#: ../js/ui/networkAgent.js:348 #: ../js/ui/networkAgent.js:331
msgid "Network name: " msgid "Network name: "
msgstr "Nome da rede: " msgstr "Nome da rede: "
#: ../js/ui/networkAgent.js:353 #: ../js/ui/networkAgent.js:336
msgid "DSL authentication" msgid "DSL authentication"
msgstr "Autenticação DSL" msgstr "Autenticação DSL"
#: ../js/ui/networkAgent.js:360 #: ../js/ui/networkAgent.js:343
msgid "PIN code required" msgid "PIN code required"
msgstr "Código PIN requisitado" msgstr "Código PIN requisitado"
#: ../js/ui/networkAgent.js:361 #: ../js/ui/networkAgent.js:344
msgid "PIN code is needed for the mobile broadband device" msgid "PIN code is needed for the mobile broadband device"
msgstr "O código PIN é necessário para o dispositivo móvel de banda larga" msgstr "O código PIN é necessário para o dispositivo móvel de banda larga"
#: ../js/ui/networkAgent.js:362 #: ../js/ui/networkAgent.js:345
msgid "PIN: " msgid "PIN: "
msgstr "PIN: " msgstr "PIN: "
#: ../js/ui/networkAgent.js:368 #: ../js/ui/networkAgent.js:351
msgid "Mobile broadband network password" msgid "Mobile broadband network password"
msgstr "Senha da rede de banda larga móvel" msgstr "Senha da rede de banda larga móvel"
#: ../js/ui/networkAgent.js:369 #: ../js/ui/networkAgent.js:352
#, c-format #, c-format
msgid "A password is required to connect to '%s'." msgid "A password is required to connect to '%s'."
msgstr "Uma senha é necessária para se conectar a \"%s\"" msgstr "Uma senha é necessária para se conectar a \"%s\""
@ -792,15 +790,15 @@ msgstr "Conectar a..."
msgid "PLACES & DEVICES" msgid "PLACES & DEVICES"
msgstr "LOCAIS & DISPOSITIVOS" msgstr "LOCAIS & DISPOSITIVOS"
#: ../js/ui/polkitAuthenticationAgent.js:72 #: ../js/ui/polkitAuthenticationAgent.js:73
msgid "Authentication Required" msgid "Authentication Required"
msgstr "Autenticação necessária" msgstr "Autenticação necessária"
#: ../js/ui/polkitAuthenticationAgent.js:106 #: ../js/ui/polkitAuthenticationAgent.js:107
msgid "Administrator" msgid "Administrator"
msgstr "Administrador" msgstr "Administrador"
#: ../js/ui/polkitAuthenticationAgent.js:175 #: ../js/ui/polkitAuthenticationAgent.js:177
msgid "Authenticate" msgid "Authenticate"
msgstr "Autenticação" msgstr "Autenticação"
@ -808,11 +806,11 @@ msgstr "Autenticação"
#. * requested authentication was not gained; this can happen #. * requested authentication was not gained; this can happen
#. * because of an authentication error (like invalid password), #. * because of an authentication error (like invalid password),
#. * for instance. #. * for instance.
#: ../js/ui/polkitAuthenticationAgent.js:256 #: ../js/ui/polkitAuthenticationAgent.js:258
msgid "Sorry, that didn't work. Please try again." msgid "Sorry, that didn't work. Please try again."
msgstr "Desculpe, isto não funcionou. Por favor, tente novamente." msgstr "Desculpe, isto não funcionou. Por favor, tente novamente."
#: ../js/ui/polkitAuthenticationAgent.js:268 #: ../js/ui/polkitAuthenticationAgent.js:270
msgid "Password:" msgid "Password:"
msgstr "Senha:" msgstr "Senha:"
@ -825,7 +823,7 @@ msgstr "Senha:"
msgid "toggle-switch-us" msgid "toggle-switch-us"
msgstr "toggle-switch-intl" msgstr "toggle-switch-intl"
#: ../js/ui/runDialog.js:208 #: ../js/ui/runDialog.js:209
msgid "Please enter a command:" msgid "Please enter a command:"
msgstr "Por favor, digite um comando:" msgstr "Por favor, digite um comando:"
@ -837,6 +835,23 @@ msgstr "Pesquisando..."
msgid "No matching results." msgid "No matching results."
msgstr "Nenhum resultado encontrado." msgstr "Nenhum resultado encontrado."
#: ../js/ui/shellEntry.js:30
msgid "Copy"
msgstr "Copiar"
#: ../js/ui/shellEntry.js:35
msgid "Paste"
msgstr "Colar"
#: ../js/ui/shellEntry.js:81
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 #: ../js/ui/shellMountOperation.js:285
msgid "Wrong password, please try again" msgid "Wrong password, please try again"
msgstr "Senha errada. Por favor, tente novamente" msgstr "Senha errada. Por favor, tente novamente"
@ -1494,39 +1509,39 @@ msgstr "Inativo"
msgid "Unavailable" msgid "Unavailable"
msgstr "Indisponível" msgstr "Indisponível"
#: ../js/ui/userMenu.js:547 ../js/ui/userMenu.js:551 ../js/ui/userMenu.js:621 #: ../js/ui/userMenu.js:552 ../js/ui/userMenu.js:556 ../js/ui/userMenu.js:626
msgid "Power Off..." msgid "Power Off..."
msgstr "Desligar..." msgstr "Desligar..."
#: ../js/ui/userMenu.js:583 #: ../js/ui/userMenu.js:588
msgid "Notifications" msgid "Notifications"
msgstr "Notificações" msgstr "Notificações"
#: ../js/ui/userMenu.js:591 #: ../js/ui/userMenu.js:596
msgid "Online Accounts" msgid "Online Accounts"
msgstr "Contas online" msgstr "Contas online"
#: ../js/ui/userMenu.js:595 #: ../js/ui/userMenu.js:600
msgid "System Settings" msgid "System Settings"
msgstr "Configurações do sistema" msgstr "Configurações do sistema"
#: ../js/ui/userMenu.js:602 #: ../js/ui/userMenu.js:607
msgid "Lock Screen" msgid "Lock Screen"
msgstr "Bloquear a tela" msgstr "Bloquear a tela"
#: ../js/ui/userMenu.js:607 #: ../js/ui/userMenu.js:612
msgid "Switch User" msgid "Switch User"
msgstr "Alternar usuário" msgstr "Alternar usuário"
#: ../js/ui/userMenu.js:612 #: ../js/ui/userMenu.js:617
msgid "Log Out..." msgid "Log Out..."
msgstr "Encerrar sessão..." msgstr "Encerrar sessão..."
#: ../js/ui/userMenu.js:640 #: ../js/ui/userMenu.js:645
msgid "Your chat status will be set to busy" msgid "Your chat status will be set to busy"
msgstr "Seu status no bate-papo ficará como ocupado" msgstr "Seu status no bate-papo ficará como ocupado"
#: ../js/ui/userMenu.js:641 #: ../js/ui/userMenu.js:646
msgid "" msgid ""
"Notifications are now disabled, including chat messages. Your online status " "Notifications are now disabled, including chat messages. Your online status "
"has been adjusted to let others know that you might not see their messages." "has been adjusted to let others know that you might not see their messages."
@ -1539,11 +1554,11 @@ msgstr ""
#. in the search entry when no search is #. in the search entry when no search is
#. active; it should not exceed ~30 #. active; it should not exceed ~30
#. characters. #. characters.
#: ../js/ui/viewSelector.js:120 #: ../js/ui/viewSelector.js:121
msgid "Type to search..." msgid "Type to search..."
msgstr "Digite para pesquisar..." msgstr "Digite para pesquisar..."
#: ../js/ui/viewSelector.js:140 ../src/shell-util.c:261 #: ../js/ui/viewSelector.js:142 ../src/shell-util.c:261
msgid "Search" msgid "Search"
msgstr "Pesquisar" msgstr "Pesquisar"
@ -1619,5 +1634,8 @@ msgstr "Sistema de arquivos"
msgid "%1$s: %2$s" msgid "%1$s: %2$s"
msgstr "%1$s: %2$s" msgstr "%1$s: %2$s"
#~ msgid "Show password"
#~ msgstr "Mostrar senha"
#~ msgid "%s has finished starting" #~ msgid "%s has finished starting"
#~ msgstr "%s terminou sua inicialização" #~ msgstr "%s terminou sua inicialização"

141
po/sl.po
View File

@ -8,14 +8,14 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: gnome-shell master\n" "Project-Id-Version: gnome-shell master\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-shell&keywords=I18N+L10N&component=general\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-shell&keywords=I18N+L10N&component=general\n"
"POT-Creation-Date: 2011-10-25 17:15+0000\n" "POT-Creation-Date: 2011-10-21 20:34+0000\n"
"PO-Revision-Date: 2011-10-25 21:16+0100\n" "PO-Revision-Date: 2011-10-22 13:17+0100\n"
"Last-Translator: Matej Urbančič <mateju@svn.gnome.org>\n" "Last-Translator: Matej Urbančič <mateju@svn.gnome.org>\n"
"Language-Team: Slovenian GNOME Translation Team <gnome-si@googlegroups.com>\n" "Language-Team: Slovenian GNOME Translation Team <gnome-si@googlegroups.com>\n"
"Language: Slovenian\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Language: Slovenian\n"
"Plural-Forms: nplurals=4; plural=(n%100==1 ? 1 : n%100==2 ? 2 : n%100==3 || n%100==4 ? 3 : 0);\n" "Plural-Forms: nplurals=4; plural=(n%100==1 ? 1 : n%100==2 ? 2 : n%100==3 || n%100==4 ? 3 : 0);\n"
"X-Poedit-Language: Slovenian\n" "X-Poedit-Language: Slovenian\n"
"X-Poedit-Country: SLOVENIA\n" "X-Poedit-Country: SLOVENIA\n"
@ -151,7 +151,7 @@ msgstr "Ali je ni na seznamu?"
#: ../js/gdm/loginDialog.js:1035 #: ../js/gdm/loginDialog.js:1035
#: ../js/ui/endSessionDialog.js:426 #: ../js/ui/endSessionDialog.js:426
#: ../js/ui/extensionSystem.js:520 #: ../js/ui/extensionSystem.js:477
#: ../js/ui/networkAgent.js:148 #: ../js/ui/networkAgent.js:148
#: ../js/ui/polkitAuthenticationAgent.js:173 #: ../js/ui/polkitAuthenticationAgent.js:173
#: ../js/ui/status/bluetooth.js:480 #: ../js/ui/status/bluetooth.js:480
@ -168,17 +168,22 @@ msgid "Login Window"
msgstr "Prijavno okno" msgstr "Prijavno okno"
#: ../js/gdm/powerMenu.js:116 #: ../js/gdm/powerMenu.js:116
#: ../js/ui/userMenu.js:573 #: ../js/ui/userMenu.js:554
#: ../js/ui/userMenu.js:575 #: ../js/ui/userMenu.js:556
#: ../js/ui/userMenu.js:644 #: ../js/ui/userMenu.js:625
msgid "Suspend" msgid "Suspend"
msgstr "Zaustavi" msgstr "Zaustavi"
#: ../js/gdm/powerMenu.js:121 #: ../js/gdm/powerMenu.js:121
#: ../js/ui/endSessionDialog.js:89
#: ../js/ui/endSessionDialog.js:97
#: ../js/ui/endSessionDialog.js:106
msgid "Restart" msgid "Restart"
msgstr "Zaženi znova" msgstr "Zaženi znova"
#: ../js/gdm/powerMenu.js:126 #: ../js/gdm/powerMenu.js:126
#: ../js/ui/endSessionDialog.js:80
#: ../js/ui/endSessionDialog.js:91
msgid "Power Off" msgid "Power Off"
msgstr "Izklop" msgstr "Izklop"
@ -394,7 +399,7 @@ msgstr "Naslednji teden"
#: ../js/ui/contactDisplay.js:65 #: ../js/ui/contactDisplay.js:65
#: ../js/ui/notificationDaemon.js:459 #: ../js/ui/notificationDaemon.js:459
#: ../js/ui/status/power.js:223 #: ../js/ui/status/power.js:223
#: ../src/shell-app.c:350 #: ../src/shell-app.c:353
msgid "Unknown" msgid "Unknown"
msgstr "Neznano" msgstr "Neznano"
@ -487,12 +492,11 @@ msgstr "Nedavni predmeti"
#: ../js/ui/endSessionDialog.js:60 #: ../js/ui/endSessionDialog.js:60
#, c-format #, c-format
msgctxt "title"
msgid "Log Out %s" msgid "Log Out %s"
msgstr "Odjava %s" msgstr "Odjava %s"
#: ../js/ui/endSessionDialog.js:61 #: ../js/ui/endSessionDialog.js:61
msgctxt "title" #: ../js/ui/endSessionDialog.js:75
msgid "Log Out" msgid "Log Out"
msgstr "Odjava" msgstr "Odjava"
@ -522,16 +526,6 @@ msgstr[3] "Uporabnik bo samodejno odjavljen čez %d sekunde."
msgid "Logging out of the system." msgid "Logging out of the system."
msgstr "Odjavljanje iz sistema." msgstr "Odjavljanje iz sistema."
#: ../js/ui/endSessionDialog.js:75
msgctxt "button"
msgid "Log Out"
msgstr "Odjava"
#: ../js/ui/endSessionDialog.js:80
msgctxt "title"
msgid "Power Off"
msgstr "Izklop"
#: ../js/ui/endSessionDialog.js:81 #: ../js/ui/endSessionDialog.js:81
msgid "Click Power Off to quit these applications and power off the system." msgid "Click Power Off to quit these applications and power off the system."
msgstr "Kliknite na gumb za izklop za končanje teh programov in izklop iz sistema." msgstr "Kliknite na gumb za izklop za končanje teh programov in izklop iz sistema."
@ -549,22 +543,6 @@ msgstr[3] "Sistem se bo samodejno izklopil čez %d sekunde."
msgid "Powering off the system." msgid "Powering off the system."
msgstr "Izklapljanje sistema" msgstr "Izklapljanje sistema"
#: ../js/ui/endSessionDialog.js:89
#: ../js/ui/endSessionDialog.js:106
msgctxt "button"
msgid "Restart"
msgstr "Ponoven zagon"
#: ../js/ui/endSessionDialog.js:91
msgctxt "button"
msgid "Power Off"
msgstr "Izklop"
#: ../js/ui/endSessionDialog.js:97
msgctxt "title"
msgid "Restart"
msgstr "Ponoven zagon"
#: ../js/ui/endSessionDialog.js:98 #: ../js/ui/endSessionDialog.js:98
msgid "Click Restart to quit these applications and restart the system." msgid "Click Restart to quit these applications and restart the system."
msgstr "Kliknite Zaženi znova za končanje teh programov in ponoven zagon sistema. " msgstr "Kliknite Zaženi znova za končanje teh programov in ponoven zagon sistema. "
@ -582,11 +560,11 @@ msgstr[3] "Sistem se bo samodejno ponovno zagnal čez %d sekunde."
msgid "Restarting the system." msgid "Restarting the system."
msgstr "Ponoven zagon sistema." msgstr "Ponoven zagon sistema."
#: ../js/ui/extensionSystem.js:524 #: ../js/ui/extensionSystem.js:481
msgid "Install" msgid "Install"
msgstr "Namesti" msgstr "Namesti"
#: ../js/ui/extensionSystem.js:528 #: ../js/ui/extensionSystem.js:485
#, c-format #, c-format
msgid "Download and install '%s' from extensions.gnome.org?" msgid "Download and install '%s' from extensions.gnome.org?"
msgstr "Ali naj se razširitev '%s' namesti preko povezave z extensions.gnome.org?" msgstr "Ali naj se razširitev '%s' namesti preko povezave z extensions.gnome.org?"
@ -600,53 +578,38 @@ msgstr "sistemska vrstica"
msgid "Keyboard" msgid "Keyboard"
msgstr "Tipkovnica" msgstr "Tipkovnica"
#: ../js/ui/lookingGlass.js:664 #: ../js/ui/lookingGlass.js:646
msgid "No extensions installed" msgid "No extensions installed"
msgstr "Ni nameščenih razširitev" msgstr "Ni nameščenih razširitev"
#. Translators: argument is an extension UUID. #: ../js/ui/lookingGlass.js:692
#: ../js/ui/lookingGlass.js:719
#, c-format
msgid "%s has not emitted any errors."
msgstr "%s ni javil napak."
#: ../js/ui/lookingGlass.js:725
msgid "Hide Errors"
msgstr "Skrij napake"
#: ../js/ui/lookingGlass.js:729
#: ../js/ui/lookingGlass.js:779
msgid "Show Errors"
msgstr "Pokaži napake"
#: ../js/ui/lookingGlass.js:738
msgid "Enabled" msgid "Enabled"
msgstr "Omogočeno" msgstr "Omogočeno"
#. translators: #. translators:
#. * The device has been disabled #. * The device has been disabled
#: ../js/ui/lookingGlass.js:740 #: ../js/ui/lookingGlass.js:694
#: ../src/gvc/gvc-mixer-control.c:1093 #: ../src/gvc/gvc-mixer-control.c:1093
msgid "Disabled" msgid "Disabled"
msgstr "Onemogočeno" msgstr "Onemogočeno"
#: ../js/ui/lookingGlass.js:742 #: ../js/ui/lookingGlass.js:696
msgid "Error" msgid "Error"
msgstr "Napaka" msgstr "Napaka"
#: ../js/ui/lookingGlass.js:744 #: ../js/ui/lookingGlass.js:698
msgid "Out of date" msgid "Out of date"
msgstr "Zastarelo" msgstr "Zastarelo"
#: ../js/ui/lookingGlass.js:746 #: ../js/ui/lookingGlass.js:700
msgid "Downloading" msgid "Downloading"
msgstr "Prejemanje" msgstr "Prejemanje"
#: ../js/ui/lookingGlass.js:767 #: ../js/ui/lookingGlass.js:721
msgid "View Source" msgid "View Source"
msgstr "Poglej vir" msgstr "Poglej vir"
#: ../js/ui/lookingGlass.js:773 #: ../js/ui/lookingGlass.js:727
msgid "Web Page" msgid "Web Page"
msgstr "Spletna stran" msgstr "Spletna stran"
@ -847,6 +810,7 @@ msgid "Show Text"
msgstr "Pokaži besedilo" msgstr "Pokaži besedilo"
#: ../js/ui/shellEntry.js:83 #: ../js/ui/shellEntry.js:83
#| msgid "Large Text"
msgid "Hide Text" msgid "Hide Text"
msgstr "Skrij besedilo" msgstr "Skrij besedilo"
@ -1003,7 +967,7 @@ msgstr "Potrditev razčlenjevanja za %s"
#: ../js/ui/status/bluetooth.js:462 #: ../js/ui/status/bluetooth.js:462
#, c-format #, c-format
msgid "Device %s wants to pair with this computer" msgid "Device %s wants to pair with this computer"
msgstr "Naprava %s se poskuša seznaniti s tem računalnikom" msgstr "Naprava %s se skuša povezati s tem računalnikom"
#: ../js/ui/status/bluetooth.js:429 #: ../js/ui/status/bluetooth.js:429
#, c-format #, c-format
@ -1521,41 +1485,41 @@ msgstr "Nedejavno"
msgid "Unavailable" msgid "Unavailable"
msgstr "Nedostopno" msgstr "Nedostopno"
#: ../js/ui/userMenu.js:571 #: ../js/ui/userMenu.js:552
#: ../js/ui/userMenu.js:575 #: ../js/ui/userMenu.js:556
#: ../js/ui/userMenu.js:645 #: ../js/ui/userMenu.js:626
msgid "Power Off..." msgid "Power Off..."
msgstr "Izklop ..." msgstr "Izklop ..."
#: ../js/ui/userMenu.js:607 #: ../js/ui/userMenu.js:588
msgid "Notifications" msgid "Notifications"
msgstr "Obvestila" msgstr "Obvestila"
#: ../js/ui/userMenu.js:615 #: ../js/ui/userMenu.js:596
msgid "Online Accounts" msgid "Online Accounts"
msgstr "Spletni računi" msgstr "Spletni računi"
#: ../js/ui/userMenu.js:619 #: ../js/ui/userMenu.js:600
msgid "System Settings" msgid "System Settings"
msgstr "Sistemske nastavitve" msgstr "Sistemske nastavitve"
#: ../js/ui/userMenu.js:626 #: ../js/ui/userMenu.js:607
msgid "Lock Screen" msgid "Lock Screen"
msgstr "Zakleni zaslon" msgstr "Zakleni zaslon"
#: ../js/ui/userMenu.js:631 #: ../js/ui/userMenu.js:612
msgid "Switch User" msgid "Switch User"
msgstr "Preklopi uporabnika" msgstr "Preklopi uporabnika"
#: ../js/ui/userMenu.js:636 #: ../js/ui/userMenu.js:617
msgid "Log Out..." msgid "Log Out..."
msgstr "Odjava ..." msgstr "Odjava ..."
#: ../js/ui/userMenu.js:664 #: ../js/ui/userMenu.js:645
msgid "Your chat status will be set to busy" msgid "Your chat status will be set to busy"
msgstr "Stanje vašega klepeta bo nastavljeno na zasedeno" msgstr "Stanje vašega klepeta bo nastavljeno na zasedeno"
#: ../js/ui/userMenu.js:665 #: ../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." 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."
msgstr "Obveščanje je zdaj onemogočeno, vključno s sporočili klepeta. Vaše stanje povezanosti se je prilagodilo, da bodo drugi vedeli, da njihovih sporočil morda ne boste opazili." msgstr "Obveščanje je zdaj onemogočeno, vključno s sporočili klepeta. Vaše stanje povezanosti se je prilagodilo, da bodo drugi vedeli, da njihovih sporočil morda ne boste opazili."
@ -1568,7 +1532,7 @@ msgid "Type to search..."
msgstr "Vtipkajte za iskanje ..." msgstr "Vtipkajte za iskanje ..."
#: ../js/ui/viewSelector.js:142 #: ../js/ui/viewSelector.js:142
#: ../src/shell-util.c:244 #: ../src/shell-util.c:261
msgid "Search" msgid "Search"
msgstr "Poišči" msgstr "Poišči"
@ -1603,15 +1567,15 @@ msgstr[3] "%u dovodi naprave"
msgid "System Sounds" msgid "System Sounds"
msgstr "Sistemski zvoki" msgstr "Sistemski zvoki"
#: ../src/main.c:483 #: ../src/main.c:480
msgid "Print version" msgid "Print version"
msgstr "Izpiši različico" msgstr "Izpiši različico"
#: ../src/main.c:489 #: ../src/main.c:486
msgid "Mode used by GDM for login screen" msgid "Mode used by GDM for login screen"
msgstr "Način uporabljen v GDM za prijavni naslov" msgstr "Način uporabljen v GDM za prijavni naslov"
#: ../src/shell-app.c:567 #: ../src/shell-app.c:579
#, c-format #, c-format
msgid "Failed to launch '%s'" msgid "Failed to launch '%s'"
msgstr "Zaganjanje '%s' je spodletelo" msgstr "Zaganjanje '%s' je spodletelo"
@ -1628,15 +1592,13 @@ msgstr "Privzeto"
msgid "Authentication dialog was dismissed by the user" msgid "Authentication dialog was dismissed by the user"
msgstr "Uporabnik je zavrnil pogovorno okno overitve" msgstr "Uporabnik je zavrnil pogovorno okno overitve"
#. Translators: this is the same string as the one found in #: ../src/shell-util.c:100
#. * nautilus msgid "Home Folder"
#: ../src/shell-util.c:89
msgid "Home"
msgstr "Domača mapa" msgstr "Domača mapa"
#. Translators: this is the same string as the one found in #. Translators: this is the same string as the one found in
#. * nautilus #. * nautilus
#: ../src/shell-util.c:98 #: ../src/shell-util.c:115
msgid "File System" msgid "File System"
msgstr "Datotečni sistem" msgstr "Datotečni sistem"
@ -1645,7 +1607,7 @@ msgstr "Datotečni sistem"
#. * example, "Trash: some-directory". It means that the #. * example, "Trash: some-directory". It means that the
#. * directory called "some-directory" is in the trash. #. * directory called "some-directory" is in the trash.
#. #.
#: ../src/shell-util.c:294 #: ../src/shell-util.c:311
#, c-format #, c-format
msgid "%1$s: %2$s" msgid "%1$s: %2$s"
msgstr "%1$s: %2$s" msgstr "%1$s: %2$s"
@ -1653,5 +1615,14 @@ msgstr "%1$s: %2$s"
#~ msgid "Show password" #~ msgid "Show password"
#~ msgstr "Pokaži geslo" #~ msgstr "Pokaži geslo"
#~ msgid "Home Folder" #~ msgid "%s has not emitted any errors."
#~ msgstr "Domača mapa" #~ msgstr "%s ni vrnil napak."
#~ msgid "Hide Errors"
#~ msgstr "Skrij napake"
#~ msgid "Show Errors"
#~ msgstr "Pokaži napake"
#~ msgid "%s has finished starting"
#~ msgstr "%s je končal začenjanje"

135
po/sv.po
View File

@ -7,8 +7,8 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: gnome-shell\n" "Project-Id-Version: gnome-shell\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2011-10-26 11:55+0200\n" "POT-Creation-Date: 2011-10-26 11:54+0200\n"
"PO-Revision-Date: 2011-10-26 11:55+0100\n" "PO-Revision-Date: 2011-10-26 11:54+0100\n"
"Last-Translator: Daniel Nylander <po@danielnylander.se>\n" "Last-Translator: Daniel Nylander <po@danielnylander.se>\n"
"Language-Team: Swedish <tp-sv@listor.tp-sv.se>\n" "Language-Team: Swedish <tp-sv@listor.tp-sv.se>\n"
"Language: sv\n" "Language: sv\n"
@ -147,7 +147,7 @@ msgstr "Inte listad?"
#: ../js/gdm/loginDialog.js:1035 #: ../js/gdm/loginDialog.js:1035
#: ../js/ui/endSessionDialog.js:426 #: ../js/ui/endSessionDialog.js:426
#: ../js/ui/extensionSystem.js:520 #: ../js/ui/extensionSystem.js:477
#: ../js/ui/networkAgent.js:148 #: ../js/ui/networkAgent.js:148
#: ../js/ui/polkitAuthenticationAgent.js:173 #: ../js/ui/polkitAuthenticationAgent.js:173
#: ../js/ui/status/bluetooth.js:480 #: ../js/ui/status/bluetooth.js:480
@ -164,17 +164,22 @@ msgid "Login Window"
msgstr "Inloggningsfönster" msgstr "Inloggningsfönster"
#: ../js/gdm/powerMenu.js:116 #: ../js/gdm/powerMenu.js:116
#: ../js/ui/userMenu.js:573 #: ../js/ui/userMenu.js:554
#: ../js/ui/userMenu.js:575 #: ../js/ui/userMenu.js:556
#: ../js/ui/userMenu.js:644 #: ../js/ui/userMenu.js:625
msgid "Suspend" msgid "Suspend"
msgstr "Vänteläge" msgstr "Vänteläge"
#: ../js/gdm/powerMenu.js:121 #: ../js/gdm/powerMenu.js:121
#: ../js/ui/endSessionDialog.js:89
#: ../js/ui/endSessionDialog.js:97
#: ../js/ui/endSessionDialog.js:106
msgid "Restart" msgid "Restart"
msgstr "Starta om" msgstr "Starta om"
#: ../js/gdm/powerMenu.js:126 #: ../js/gdm/powerMenu.js:126
#: ../js/ui/endSessionDialog.js:80
#: ../js/ui/endSessionDialog.js:91
msgid "Power Off" msgid "Power Off"
msgstr "Stäng av" msgstr "Stäng av"
@ -390,7 +395,7 @@ msgstr "Nästa vecka"
#: ../js/ui/contactDisplay.js:65 #: ../js/ui/contactDisplay.js:65
#: ../js/ui/notificationDaemon.js:459 #: ../js/ui/notificationDaemon.js:459
#: ../js/ui/status/power.js:223 #: ../js/ui/status/power.js:223
#: ../src/shell-app.c:350 #: ../src/shell-app.c:353
msgid "Unknown" msgid "Unknown"
msgstr "Okänt" msgstr "Okänt"
@ -483,12 +488,11 @@ msgstr "TIDIGARE OBJEKT"
#: ../js/ui/endSessionDialog.js:60 #: ../js/ui/endSessionDialog.js:60
#, c-format #, c-format
msgctxt "title"
msgid "Log Out %s" msgid "Log Out %s"
msgstr "Logga ut %s" msgstr "Logga ut %s"
#: ../js/ui/endSessionDialog.js:61 #: ../js/ui/endSessionDialog.js:61
msgctxt "title" #: ../js/ui/endSessionDialog.js:75
msgid "Log Out" msgid "Log Out"
msgstr "Logga ut" msgstr "Logga ut"
@ -514,16 +518,6 @@ msgstr[1] "Du kommer att loggas ut automatiskt om %d sekunder."
msgid "Logging out of the system." msgid "Logging out of the system."
msgstr "Loggar ut från systemet." msgstr "Loggar ut från systemet."
#: ../js/ui/endSessionDialog.js:75
msgctxt "button"
msgid "Log Out"
msgstr "Logga ut"
#: ../js/ui/endSessionDialog.js:80
msgctxt "title"
msgid "Power Off"
msgstr "Stäng av"
#: ../js/ui/endSessionDialog.js:81 #: ../js/ui/endSessionDialog.js:81
msgid "Click Power Off to quit these applications and power off the system." msgid "Click Power Off to quit these applications and power off the system."
msgstr "Klicka på Stäng av för att avsluta dessa program och stänga av systemet." msgstr "Klicka på Stäng av för att avsluta dessa program och stänga av systemet."
@ -539,22 +533,6 @@ msgstr[1] "Systemet kommer att stängas av automatiskt om %d sekunder."
msgid "Powering off the system." msgid "Powering off the system."
msgstr "Stänger av systemet." msgstr "Stänger av systemet."
#: ../js/ui/endSessionDialog.js:89
#: ../js/ui/endSessionDialog.js:106
msgctxt "button"
msgid "Restart"
msgstr "Starta om"
#: ../js/ui/endSessionDialog.js:91
msgctxt "button"
msgid "Power Off"
msgstr "Stäng av"
#: ../js/ui/endSessionDialog.js:97
msgctxt "title"
msgid "Restart"
msgstr "Starta om"
#: ../js/ui/endSessionDialog.js:98 #: ../js/ui/endSessionDialog.js:98
msgid "Click Restart to quit these applications and restart the system." msgid "Click Restart to quit these applications and restart the system."
msgstr "Klicka på Starta om för att avsluta dessa program och starta om systemet." msgstr "Klicka på Starta om för att avsluta dessa program och starta om systemet."
@ -570,11 +548,11 @@ msgstr[1] "Systemet kommer att startas om automatiskt om %d sekunder."
msgid "Restarting the system." msgid "Restarting the system."
msgstr "Starta om systemet." msgstr "Starta om systemet."
#: ../js/ui/extensionSystem.js:524 #: ../js/ui/extensionSystem.js:481
msgid "Install" msgid "Install"
msgstr "Installera" msgstr "Installera"
#: ../js/ui/extensionSystem.js:528 #: ../js/ui/extensionSystem.js:485
#, c-format #, c-format
msgid "Download and install '%s' from extensions.gnome.org?" msgid "Download and install '%s' from extensions.gnome.org?"
msgstr "Hämta och installera \"%s\" från extensions.gnome.org?" msgstr "Hämta och installera \"%s\" från extensions.gnome.org?"
@ -588,53 +566,38 @@ msgstr "bricka"
msgid "Keyboard" msgid "Keyboard"
msgstr "Tangentbord" msgstr "Tangentbord"
#: ../js/ui/lookingGlass.js:664 #: ../js/ui/lookingGlass.js:646
msgid "No extensions installed" msgid "No extensions installed"
msgstr "Inga tillägg installerade" msgstr "Inga tillägg installerade"
#. Translators: argument is an extension UUID. #: ../js/ui/lookingGlass.js:692
#: ../js/ui/lookingGlass.js:719
#, c-format
msgid "%s has not emitted any errors."
msgstr "%s har inte skickat ut några fel."
#: ../js/ui/lookingGlass.js:725
msgid "Hide Errors"
msgstr "Dölj fel"
#: ../js/ui/lookingGlass.js:729
#: ../js/ui/lookingGlass.js:779
msgid "Show Errors"
msgstr "Visa fel"
#: ../js/ui/lookingGlass.js:738
msgid "Enabled" msgid "Enabled"
msgstr "Aktiverad" msgstr "Aktiverad"
#. translators: #. translators:
#. * The device has been disabled #. * The device has been disabled
#: ../js/ui/lookingGlass.js:740 #: ../js/ui/lookingGlass.js:694
#: ../src/gvc/gvc-mixer-control.c:1093 #: ../src/gvc/gvc-mixer-control.c:1093
msgid "Disabled" msgid "Disabled"
msgstr "Inaktiverad" msgstr "Inaktiverad"
#: ../js/ui/lookingGlass.js:742 #: ../js/ui/lookingGlass.js:696
msgid "Error" msgid "Error"
msgstr "Fel" msgstr "Fel"
#: ../js/ui/lookingGlass.js:744 #: ../js/ui/lookingGlass.js:698
msgid "Out of date" msgid "Out of date"
msgstr "Utanför datumintervallet" msgstr "Utanför datumintervallet"
#: ../js/ui/lookingGlass.js:746 #: ../js/ui/lookingGlass.js:700
msgid "Downloading" msgid "Downloading"
msgstr "Hämtar" msgstr "Hämtar"
#: ../js/ui/lookingGlass.js:767 #: ../js/ui/lookingGlass.js:721
msgid "View Source" msgid "View Source"
msgstr "Visa källa" msgstr "Visa källa"
#: ../js/ui/lookingGlass.js:773 #: ../js/ui/lookingGlass.js:727
msgid "Web Page" msgid "Web Page"
msgstr "Webbsida" msgstr "Webbsida"
@ -1501,41 +1464,41 @@ msgstr "Overksam"
msgid "Unavailable" msgid "Unavailable"
msgstr "Inte tillgänglig" msgstr "Inte tillgänglig"
#: ../js/ui/userMenu.js:571 #: ../js/ui/userMenu.js:552
#: ../js/ui/userMenu.js:575 #: ../js/ui/userMenu.js:556
#: ../js/ui/userMenu.js:645 #: ../js/ui/userMenu.js:626
msgid "Power Off..." msgid "Power Off..."
msgstr "Stäng av..." msgstr "Stäng av..."
#: ../js/ui/userMenu.js:607 #: ../js/ui/userMenu.js:588
msgid "Notifications" msgid "Notifications"
msgstr "Notifieringar" msgstr "Notifieringar"
#: ../js/ui/userMenu.js:615 #: ../js/ui/userMenu.js:596
msgid "Online Accounts" msgid "Online Accounts"
msgstr "Nätkonton" msgstr "Nätkonton"
#: ../js/ui/userMenu.js:619 #: ../js/ui/userMenu.js:600
msgid "System Settings" msgid "System Settings"
msgstr "Systeminställningar" msgstr "Systeminställningar"
#: ../js/ui/userMenu.js:626 #: ../js/ui/userMenu.js:607
msgid "Lock Screen" msgid "Lock Screen"
msgstr "Lås skärmen" msgstr "Lås skärmen"
#: ../js/ui/userMenu.js:631 #: ../js/ui/userMenu.js:612
msgid "Switch User" msgid "Switch User"
msgstr "Växla användare" msgstr "Växla användare"
#: ../js/ui/userMenu.js:636 #: ../js/ui/userMenu.js:617
msgid "Log Out..." msgid "Log Out..."
msgstr "Logga ut..." msgstr "Logga ut..."
#: ../js/ui/userMenu.js:664 #: ../js/ui/userMenu.js:645
msgid "Your chat status will be set to busy" msgid "Your chat status will be set to busy"
msgstr "Din chattstatus kommer att ställas in till upptagen" msgstr "Din chattstatus kommer att ställas in till upptagen"
#: ../js/ui/userMenu.js:665 #: ../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." 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."
msgstr "Notifieringar är nu inaktiverade, inklusive chattmeddelanden. Din anslutningsstatus har ändrats till att låta andra veta att du kanske inte ser deras meddelanden." msgstr "Notifieringar är nu inaktiverade, inklusive chattmeddelanden. Din anslutningsstatus har ändrats till att låta andra veta att du kanske inte ser deras meddelanden."
@ -1548,7 +1511,7 @@ msgid "Type to search..."
msgstr "Skriv för att söka..." msgstr "Skriv för att söka..."
#: ../js/ui/viewSelector.js:142 #: ../js/ui/viewSelector.js:142
#: ../src/shell-util.c:244 #: ../src/shell-util.c:261
msgid "Search" msgid "Search"
msgstr "Sök" msgstr "Sök"
@ -1579,15 +1542,15 @@ msgstr[1] "%u ingångar"
msgid "System Sounds" msgid "System Sounds"
msgstr "Systemljud" msgstr "Systemljud"
#: ../src/main.c:483 #: ../src/main.c:480
msgid "Print version" msgid "Print version"
msgstr "Skriv ut version" msgstr "Skriv ut version"
#: ../src/main.c:489 #: ../src/main.c:486
msgid "Mode used by GDM for login screen" msgid "Mode used by GDM for login screen"
msgstr "Läge som används av GDM för inloggningsskärmen" msgstr "Läge som används av GDM för inloggningsskärmen"
#: ../src/shell-app.c:567 #: ../src/shell-app.c:579
#, c-format #, c-format
msgid "Failed to launch '%s'" msgid "Failed to launch '%s'"
msgstr "Misslyckades med att starta \"%s\"" msgstr "Misslyckades med att starta \"%s\""
@ -1604,15 +1567,13 @@ msgstr "Standard"
msgid "Authentication dialog was dismissed by the user" msgid "Authentication dialog was dismissed by the user"
msgstr "Autentiseringsdialogen stängdes av användaren" msgstr "Autentiseringsdialogen stängdes av användaren"
#. Translators: this is the same string as the one found in #: ../src/shell-util.c:100
#. * nautilus msgid "Home Folder"
#: ../src/shell-util.c:89 msgstr "Hemmapp"
msgid "Home"
msgstr "Hem"
#. Translators: this is the same string as the one found in #. Translators: this is the same string as the one found in
#. * nautilus #. * nautilus
#: ../src/shell-util.c:98 #: ../src/shell-util.c:115
msgid "File System" msgid "File System"
msgstr "Filsystem" msgstr "Filsystem"
@ -1621,7 +1582,7 @@ msgstr "Filsystem"
#. * example, "Trash: some-directory". It means that the #. * example, "Trash: some-directory". It means that the
#. * directory called "some-directory" is in the trash. #. * directory called "some-directory" is in the trash.
#. #.
#: ../src/shell-util.c:294 #: ../src/shell-util.c:311
#, c-format #, c-format
msgid "%1$s: %2$s" msgid "%1$s: %2$s"
msgstr "%1$s: %2$s" msgstr "%1$s: %2$s"
@ -1629,8 +1590,14 @@ msgstr "%1$s: %2$s"
#~ msgid "Show password" #~ msgid "Show password"
#~ msgstr "Visa lösenord" #~ msgstr "Visa lösenord"
#~ msgid "Home Folder" #~ msgid "%s has not emitted any errors."
#~ msgstr "Hemmapp" #~ msgstr "%s har inte skickat ut några fel."
#~ msgid "Hide Errors"
#~ msgstr "Dölj fel"
#~ msgid "Show Errors"
#~ msgstr "Visa fel"
#~ msgid "%s has finished starting" #~ msgid "%s has finished starting"
#~ msgstr "%s har startat" #~ msgstr "%s har startat"

336
po/te.po
View File

@ -1,5 +1,5 @@
# Telugu translation for gnome-shell. # Telugu translation for gnome-shell.
# Copyright (C) 2011 Gnome Telugu Contributors. # Copyright (C) 2011 Free Software Foundation, Andhra Pradesh.
# This file is distributed under the same license as the gnome-shell package. # This file is distributed under the same license as the gnome-shell package.
# #
# Krishnababu Krothapalli <kkrothap@redhat.com>, 2011. # Krishnababu Krothapalli <kkrothap@redhat.com>, 2011.
@ -9,15 +9,16 @@
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: gnome-shell gnome-3-0\n" "Project-Id-Version: gnome-shell gnome-3-0\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-shell&keywords=I18N+L10N&component=general\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
"POT-Creation-Date: 2011-10-22 20:05+0000\n" "shell&keywords=I18N+L10N&component=general\n"
"PO-Revision-Date: 2011-10-23 12:13+0530\n" "POT-Creation-Date: 2011-10-19 08:40+0000\n"
"PO-Revision-Date: 2011-10-20 16:41+0530\n"
"Last-Translator: Praveen Illa <mail2ipn@gmail.com>\n" "Last-Translator: Praveen Illa <mail2ipn@gmail.com>\n"
"Language-Team: తెలుగు <indlinux-telugu@lists.sourceforge.net>\n" "Language-Team: తెలుగు <indlinux-telugu@lists.sourceforge.net>\n"
"Language: te\n" "Language: te\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bits\n"
"Plural-Forms: nplurals=2; plural=(n!=1);\n" "Plural-Forms: nplurals=2; plural=(n!=1);\n"
"X-Generator: Lokalize 1.2\n" "X-Generator: Lokalize 1.2\n"
@ -30,8 +31,11 @@ msgid "Window management and application launching"
msgstr "విండో నిర్వాహణ మరియు అనువర్తనము ప్రారంభించుట" msgstr "విండో నిర్వాహణ మరియు అనువర్తనము ప్రారంభించుట"
#: ../data/org.gnome.shell.gschema.xml.in.h:1 #: ../data/org.gnome.shell.gschema.xml.in.h:1
msgid "Allows access to internal debugging and monitoring tools using the Alt-F2 dialog." msgid ""
msgstr "Alt-F2 డైలాగుని వాడి అంతర్గత దోషశుద్ది మరియు సాధనాలను పర్యవేక్షించుటకు సౌలభ్యతను అనుమతిస్తుంది." "Allows access to internal debugging and monitoring tools using the Alt-F2 "
"dialog."
msgstr ""
"Alt-F2 డైలాగుని వాడి అంతర్గత దోషశుద్ది మరియు సాధనాలను పర్యవేక్షించుటకు సౌలభ్యతను అనుమతిస్తుంది."
#: ../data/org.gnome.shell.gschema.xml.in.h:2 #: ../data/org.gnome.shell.gschema.xml.in.h:2
msgid "Enable internal tools useful for developers and testers from Alt-F2" msgid "Enable internal tools useful for developers and testers from Alt-F2"
@ -46,8 +50,13 @@ msgid "Framerate used for recording screencasts."
msgstr "ఫ్రేమ్‌రేట్ అను దానిని తెరప్రసారాలను రికార్డు చేయుటకు వాడతారు." msgstr "ఫ్రేమ్‌రేట్ అను దానిని తెరప్రసారాలను రికార్డు చేయుటకు వాడతారు."
#: ../data/org.gnome.shell.gschema.xml.in.h:5 #: ../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 that appear in both lists." msgid ""
msgstr "GNOME షెల్ పొడిగింతలు ఒక uuid లక్షణాన్ని కలిగివున్నాయి; ఏ పొడిగింతలు లోడుచేయదగినవో యీ కీ జాబితాచేయును. అచేతనపరచిన-పొడిగింతలు రెండు జాబితాలనందు కనిపించు పొడిగింతలకు యీ అమర్పును దిద్దివ్రాయును." "GNOME Shell extensions have a uuid property; this key lists extensions which "
"should be loaded. disabled-extensions overrides this setting for extensions "
"that appear in both lists."
msgstr ""
"GNOME షెల్ పొడిగింతలు ఒక uuid లక్షణాన్ని కలిగివున్నాయి; ఏ పొడిగింతలు లోడుచేయదగినవో యీ కీ జాబితాచేయును. "
"అచేతనపరచిన-పొడిగింతలు రెండు జాబితాలనందు కనిపించు పొడిగింతలకు యీ అమర్పును దిద్దివ్రాయును."
#: ../data/org.gnome.shell.gschema.xml.in.h:6 #: ../data/org.gnome.shell.gschema.xml.in.h:6
msgid "History for command (Alt-F2) dialog" msgid "History for command (Alt-F2) dialog"
@ -75,8 +84,27 @@ msgstr "ప్రియమైన అనువర్తనాల కోసం డ
#: ../data/org.gnome.shell.gschema.xml.in.h:13 #: ../data/org.gnome.shell.gschema.xml.in.h:13
#, no-c-format #, no-c-format
msgid "Sets the GStreamer pipeline used to encode recordings. It follows the syntax used for gst-launch. The pipeline should have an unconnected sink pad where the recorded video is recorded. It will normally have a unconnected source pad; output from that pad will be written into the output file. However the pipeline can also take care of its own output - this might be used to send the output to an icecast server via shout2send or similar. When unset or set to an empty value, the default pipeline will be used. This is currently 'videorate ! vp8enc quality=10 speed=2 threads=%T ! queue ! webmmux' and records to WEBM using the VP8 codec. %T is used as a placeholder for a guess at the optimal thread count on the system." msgid ""
msgstr "రికార్డింగులను ఎన్‌కోడ్ చేయడానికి జిస్ట్రీమర్ పైప్‌లైన్‌ను అమర్చును. ఇది gst-launch కొరకు వ్యాక్యనిర్మాణాన్ని అనుసరిస్తుంది. వీడియో ఎక్కడైతే రికార్డు అవుతుందో అక్కడ ఒక అనుసంధానం కాని సింక్ ప్యాడ్‌ని కలిగివుండాలి. ఇది సాధారణంగా ఒక అనుసంధానము కాని మూలము ప్యాడ్ అయివుంటుంది; ఈ ప్యాడ్ నుండి వచ్చు అవుట్‌పుట్ అవుట్‌పుట్ ఫైల్ లోనికి వ్రాయబడుతుంది. ఏదిఏమైనప్పటికీ పైప్ లైన్ కూడా దాని అవుట్‌పుట్ గురించి భద్రత వహిస్తుంది - ఇది అవుట్‌పుట్‌ని ఐస్‌కాస్ట్ సేవకానికి shout2send లేదా ఇటువంటి వాటి ద్వారా పంపుటకు వాడబడుతుంది. అమర్చకపోయినా లేక ఒక ఖాళీ విలువకి అమర్చినా, అప్రమేయ పైప్‌లైన్ వాడబడుతుంది, ఇది ప్రస్తుతం 'videorate ! vp8enc quality=10 speed=2 threads=%T ! queue ! webmmux' మరియు VP8 కొడెక్ వాడి WEBMకి రికార్డుచేస్తుంది. %T అనేది వ్యవస్థ పై ఒక ప్లేస్‌హోల్డర్ వలె గ్వెస్ కొరకు ఆప్టిమల్ త్రెడ్ కౌంట్ వాడబడుతుంది." "Sets the GStreamer pipeline used to encode recordings. It follows the syntax "
"used for gst-launch. The pipeline should have an unconnected sink pad where "
"the recorded video is recorded. It will normally have a unconnected source "
"pad; output from that pad will be written into the output file. However the "
"pipeline can also take care of its own output - this might be used to send "
"the output to an icecast server via shout2send or similar. When unset or set "
"to an empty value, the default pipeline will be used. This is currently "
"'videorate ! vp8enc quality=10 speed=2 threads=%T ! queue ! webmmux' and "
"records to WEBM using the VP8 codec. %T is used as a placeholder for a guess "
"at the optimal thread count on the system."
msgstr ""
"రికార్డింగులను ఎన్‌కోడ్ చేయడానికి జిస్ట్రీమర్ పైప్‌లైన్‌ను అమర్చును. ఇది gst-launch కొరకు వ్యాక్యనిర్మాణాన్ని "
"అనుసరిస్తుంది. వీడియో ఎక్కడైతే రికార్డు అవుతుందో అక్కడ ఒక అనుసంధానం కాని సింక్ ప్యాడ్‌ని కలిగివుండాలి. "
"ఇది సాధారణంగా ఒక అనుసంధానము కాని మూలము ప్యాడ్ అయివుంటుంది; ఈ ప్యాడ్ నుండి వచ్చు అవుట్‌పుట్ "
"అవుట్‌పుట్ ఫైల్ లోనికి వ్రాయబడుతుంది. ఏదిఏమైనప్పటికీ పైప్ లైన్ కూడా దాని అవుట్‌పుట్ గురించి భద్రత వహిస్తుంది "
"- ఇది అవుట్‌పుట్‌ని ఐస్‌కాస్ట్ సేవకానికి shout2send లేదా ఇటువంటి వాటి ద్వారా పంపుటకు వాడబడుతుంది. "
"అమర్చకపోయినా లేక ఒక ఖాళీ విలువకి అమర్చినా, అప్రమేయ పైప్‌లైన్ వాడబడుతుంది, ఇది ప్రస్తుతం 'videorate ! "
"vp8enc quality=10 speed=2 threads=%T ! queue ! webmmux' మరియు VP8 కొడెక్ వాడి "
"WEBMకి రికార్డుచేస్తుంది. %T అనేది వ్యవస్థ పై ఒక ప్లేస్‌హోల్డర్ వలె గ్వెస్ కొరకు ఆప్టిమల్ త్రెడ్ కౌంట్ "
"వాడబడుతుంది."
#: ../data/org.gnome.shell.gschema.xml.in.h:14 #: ../data/org.gnome.shell.gschema.xml.in.h:14
msgid "Show date in clock" msgid "Show date in clock"
@ -91,24 +119,42 @@ msgid "Show time with seconds"
msgstr "సమయమును సెకన్లతో సహా చూపించు" msgstr "సమయమును సెకన్లతో సహా చూపించు"
#: ../data/org.gnome.shell.gschema.xml.in.h:17 #: ../data/org.gnome.shell.gschema.xml.in.h:17
msgid "The applications corresponding to these identifiers will be displayed in the favorites area." msgid ""
"The applications corresponding to these identifiers will be displayed in the "
"favorites area."
msgstr "ఈ గుర్తింపకాలకు అనుగుణమైన అనువర్తనాలు ప్రియమైన ప్రదేశములో చూపించబడతాయి." msgstr "ఈ గుర్తింపకాలకు అనుగుణమైన అనువర్తనాలు ప్రియమైన ప్రదేశములో చూపించబడతాయి."
#: ../data/org.gnome.shell.gschema.xml.in.h:18 #: ../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 a different container format." msgid ""
msgstr "రికార్డుచేయబడిన తెరప్రసారాలకు ఫైల్ పేరు ప్రస్తుత తేదీ పై ఆధారపడి ఫైల్ పేరు ఒకే విధముగా ఉంటుంది, మరియు ఈ పొడిగింతను వాడండి. ఇది వేరే ఇతర ఫార్మేటులో రికార్డు చేస్తున్నపుడు ఇది మార్చబడాలి." "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 "
"a different container format."
msgstr ""
"రికార్డుచేయబడిన తెరప్రసారాలకు ఫైల్ పేరు ప్రస్తుత తేదీ పై ఆధారపడి ఫైల్ పేరు ఒకే విధముగా ఉంటుంది, మరియు ఈ "
"పొడిగింతను వాడండి. ఇది వేరే ఇతర ఫార్మేటులో రికార్డు చేస్తున్నపుడు ఇది మార్చబడాలి."
#: ../data/org.gnome.shell.gschema.xml.in.h:19 #: ../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." msgid ""
msgstr "ఫలితముగా వచ్చు తెర ప్రసారము యొక్క ఫ్రేమ్ రేటు GNOME షెల్ తెరప్రసార రికార్డర్ ఫ్రేమ్ పర్ సెకనులలో రికార్డుచేయబడుతుంది." "The framerate of the resulting screencast recordered by GNOME Shell's "
"screencast recorder in frames-per-second."
msgstr ""
"ఫలితముగా వచ్చు తెర ప్రసారము యొక్క ఫ్రేమ్ రేటు GNOME షెల్ తెరప్రసార రికార్డర్ ఫ్రేమ్ పర్ సెకనులలో "
"రికార్డుచేయబడుతుంది."
#: ../data/org.gnome.shell.gschema.xml.in.h:20 #: ../data/org.gnome.shell.gschema.xml.in.h:20
msgid "The gstreamer pipeline used to encode the screencast" msgid "The gstreamer pipeline used to encode the screencast"
msgstr "తెరప్రసారాన్ని ఎన్‌కోడ్ చేయడానికి జి స్ట్రీమర్ పైప్‌లైన్ వాడబడుతుంది" msgstr "తెరప్రసారాన్ని ఎన్‌కోడ్ చేయడానికి జి స్ట్రీమర్ పైప్‌లైన్ వాడబడుతుంది"
#: ../data/org.gnome.shell.gschema.xml.in.h:21 #: ../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 want to disable this for privacy reasons. Please note that doing so won't remove already saved data." msgid ""
msgstr "ఎక్కువగా వాడిన వాటిని సమర్పించడానికి షెల్ సాధారణంగా క్రియాశీల అనువర్తనాలను పర్యవేక్షిస్తుంది (ఉదా. ప్రారంభకాలలో). అపుడు ఈ డేటా గోప్యంగా ఉంచబడుతుంది, గోప్యతా కారణాల వలన మీరు దీనిని అచేతనపరచాలనుకోవచ్చు. దయచేసి గుర్తుంచుకోండి ఇలా చేయడం వలన ఇదివరకే దాచబడిన డేటా తీసివేయబడదు." "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 "
"want to disable this for privacy reasons. Please note that doing so won't "
"remove already saved data."
msgstr ""
"ఎక్కువగా వాడిన వాటిని సమర్పించడానికి షెల్ సాధారణంగా క్రియాశీల అనువర్తనాలను పర్యవేక్షిస్తుంది (ఉదా. "
"ప్రారంభకాలలో). అపుడు ఈ డేటా గోప్యంగా ఉంచబడుతుంది, గోప్యతా కారణాల వలన మీరు దీనిని "
"అచేతనపరచాలనుకోవచ్చు. దయచేసి గుర్తుంచుకోండి ఇలా చేయడం వలన ఇదివరకే దాచబడిన డేటా తీసివేయబడదు."
#: ../data/org.gnome.shell.gschema.xml.in.h:22 #: ../data/org.gnome.shell.gschema.xml.in.h:22
msgid "The type of keyboard to use." msgid "The type of keyboard to use."
@ -132,7 +178,7 @@ msgstr "బహిరంగశోధన సమకూర్పకాలను అ
#: ../js/gdm/loginDialog.js:633 #: ../js/gdm/loginDialog.js:633
msgid "Session..." msgid "Session..."
msgstr "చర్యాకాలం..." msgstr "సెషన్..."
#: ../js/gdm/loginDialog.js:804 #: ../js/gdm/loginDialog.js:804
msgctxt "title" msgctxt "title"
@ -149,12 +195,9 @@ msgstr "(లేదా వ్రేలు స్వైప్‌చేయి)"
msgid "Not listed?" msgid "Not listed?"
msgstr "జాబితా చేయలేదా?" msgstr "జాబితా చేయలేదా?"
#: ../js/gdm/loginDialog.js:1035 #: ../js/gdm/loginDialog.js:1035 ../js/ui/endSessionDialog.js:426
#: ../js/ui/endSessionDialog.js:426 #: ../js/ui/extensionSystem.js:477 ../js/ui/networkAgent.js:148
#: ../js/ui/extensionSystem.js:520 #: ../js/ui/polkitAuthenticationAgent.js:173 ../js/ui/status/bluetooth.js:480
#: ../js/ui/networkAgent.js:148
#: ../js/ui/polkitAuthenticationAgent.js:173
#: ../js/ui/status/bluetooth.js:480
msgid "Cancel" msgid "Cancel"
msgstr "రద్దుచేయి" msgstr "రద్దుచేయి"
@ -165,20 +208,20 @@ msgstr "సైన్ ఇన్"
#: ../js/gdm/loginDialog.js:1392 #: ../js/gdm/loginDialog.js:1392
msgid "Login Window" msgid "Login Window"
msgstr "ప్రవేశించు విండో" msgstr "ప్రవేశ విండో"
#: ../js/gdm/powerMenu.js:116 #: ../js/gdm/powerMenu.js:116 ../js/ui/userMenu.js:554
#: ../js/ui/userMenu.js:573 #: ../js/ui/userMenu.js:556 ../js/ui/userMenu.js:625
#: ../js/ui/userMenu.js:575
#: ../js/ui/userMenu.js:644
msgid "Suspend" msgid "Suspend"
msgstr "తాత్కాలికంగా నిలిపివేయి" msgstr "తాత్కాలికంగా నిలిపివేయి"
#: ../js/gdm/powerMenu.js:121 #: ../js/gdm/powerMenu.js:121 ../js/ui/endSessionDialog.js:89
#: ../js/ui/endSessionDialog.js:97 ../js/ui/endSessionDialog.js:106
msgid "Restart" msgid "Restart"
msgstr "పునఃప్రారంభించు" msgstr "పునఃప్రారంభించు"
#: ../js/gdm/powerMenu.js:126 #: ../js/gdm/powerMenu.js:126 ../js/ui/endSessionDialog.js:80
#: ../js/ui/endSessionDialog.js:91
msgid "Power Off" msgid "Power Off"
msgstr "విద్యుత్ ఆపు" msgstr "విద్యుత్ ఆపు"
@ -285,7 +328,7 @@ msgstr "సో"
#: ../js/ui/calendar.js:119 #: ../js/ui/calendar.js:119
msgctxt "grid tuesday" msgctxt "grid tuesday"
msgid "T" msgid "T"
msgstr "మ" msgstr "మ"
#. Translators: Calendar grid abbreviation for Wednesday #. Translators: Calendar grid abbreviation for Wednesday
#: ../js/ui/calendar.js:121 #: ../js/ui/calendar.js:121
@ -391,25 +434,20 @@ msgstr "ఈ వారం"
msgid "Next week" msgid "Next week"
msgstr "తరువాత వారం" msgstr "తరువాత వారం"
#: ../js/ui/contactDisplay.js:65 #: ../js/ui/contactDisplay.js:65 ../js/ui/notificationDaemon.js:459
#: ../js/ui/notificationDaemon.js:459 #: ../js/ui/status/power.js:223 ../src/shell-app.c:353
#: ../js/ui/status/power.js:223
#: ../src/shell-app.c:353
msgid "Unknown" msgid "Unknown"
msgstr "తెలియదు" msgstr "తెలియదు"
#: ../js/ui/contactDisplay.js:86 #: ../js/ui/contactDisplay.js:86 ../js/ui/userMenu.js:139
#: ../js/ui/userMenu.js:139
msgid "Available" msgid "Available"
msgstr "అందుబాటులోవున్నారు" msgstr "అందుబాటులోవున్నారు"
#: ../js/ui/contactDisplay.js:91 #: ../js/ui/contactDisplay.js:91 ../js/ui/userMenu.js:148
#: ../js/ui/userMenu.js:148
msgid "Away" msgid "Away"
msgstr "దూరంగా ఉన్నారు" msgstr "దూరంగా"
#: ../js/ui/contactDisplay.js:95 #: ../js/ui/contactDisplay.js:95 ../js/ui/userMenu.js:142
#: ../js/ui/userMenu.js:142
msgid "Busy" msgid "Busy"
msgstr "తీరికలేదు" msgstr "తీరికలేదు"
@ -421,8 +459,7 @@ msgstr "ఆఫ్‌లైన్"
msgid "CONTACTS" msgid "CONTACTS"
msgstr "పరిచయాలు" msgstr "పరిచయాలు"
#: ../js/ui/dash.js:174 #: ../js/ui/dash.js:174 ../js/ui/messageTray.js:1206
#: ../js/ui/messageTray.js:1206
msgid "Remove" msgid "Remove"
msgstr "తీసివేయి" msgstr "తీసివేయి"
@ -487,12 +524,10 @@ msgstr "ఇటీవలి అంశాలు"
#: ../js/ui/endSessionDialog.js:60 #: ../js/ui/endSessionDialog.js:60
#, c-format #, c-format
msgctxt "title"
msgid "Log Out %s" msgid "Log Out %s"
msgstr "%s నిష్క్రమించు" msgstr "%s నిష్క్రమించు"
#: ../js/ui/endSessionDialog.js:61 #: ../js/ui/endSessionDialog.js:61 ../js/ui/endSessionDialog.js:75
msgctxt "title"
msgid "Log Out" msgid "Log Out"
msgstr "నిష్క్రమించు" msgstr "నిష్క్రమించు"
@ -518,16 +553,6 @@ msgstr[1] "మీరు %d క్షణాలలో స్వయంచాలక
msgid "Logging out of the system." msgid "Logging out of the system."
msgstr "వ్యవస్థ నుండి నిష్క్రమిస్తుంది." msgstr "వ్యవస్థ నుండి నిష్క్రమిస్తుంది."
#: ../js/ui/endSessionDialog.js:75
msgctxt "button"
msgid "Log Out"
msgstr "నిష్క్రమించు"
#: ../js/ui/endSessionDialog.js:80
msgctxt "title"
msgid "Power Off"
msgstr "విద్యుత్ ఆపు"
#: ../js/ui/endSessionDialog.js:81 #: ../js/ui/endSessionDialog.js:81
msgid "Click Power Off to quit these applications and power off the system." msgid "Click Power Off to quit these applications and power off the system."
msgstr "ఈ అనువర్తనాలను విడిచివెళ్ళుటకు మరియు వ్యవస్థను ఆపివేయుటకు విద్యుత్ ఆపు నొక్కండి." msgstr "ఈ అనువర్తనాలను విడిచివెళ్ళుటకు మరియు వ్యవస్థను ఆపివేయుటకు విద్యుత్ ఆపు నొక్కండి."
@ -543,22 +568,6 @@ msgstr[1] "%d సెకన్లలో వ్యవస్థ స్వయంచ
msgid "Powering off the system." msgid "Powering off the system."
msgstr "వ్యవస్థ విద్యుత్తును ఆపివేస్తుంది." msgstr "వ్యవస్థ విద్యుత్తును ఆపివేస్తుంది."
#: ../js/ui/endSessionDialog.js:89
#: ../js/ui/endSessionDialog.js:106
msgctxt "button"
msgid "Restart"
msgstr "పునఃప్రారంభించు"
#: ../js/ui/endSessionDialog.js:91
msgctxt "button"
msgid "Power Off"
msgstr "విద్యుత్ ఆపు"
#: ../js/ui/endSessionDialog.js:97
msgctxt "title"
msgid "Restart"
msgstr "పునఃప్రారంభించు"
#: ../js/ui/endSessionDialog.js:98 #: ../js/ui/endSessionDialog.js:98
msgid "Click Restart to quit these applications and restart the system." msgid "Click Restart to quit these applications and restart the system."
msgstr "ఈ అనువర్తనాలను విడిచివెళ్ళుటకు మరియు వ్యవస్థను పునఃప్రారంభించటానికి స నొక్కండి." msgstr "ఈ అనువర్తనాలను విడిచివెళ్ళుటకు మరియు వ్యవస్థను పునఃప్రారంభించటానికి స నొక్కండి."
@ -574,11 +583,11 @@ msgstr[1] "%d క్షణాలలో వ్యవస్థ స్వయంచ
msgid "Restarting the system." msgid "Restarting the system."
msgstr "వ్యవస్థను పునఃప్రారంభిస్తున్నది." msgstr "వ్యవస్థను పునఃప్రారంభిస్తున్నది."
#: ../js/ui/extensionSystem.js:524 #: ../js/ui/extensionSystem.js:481
msgid "Install" msgid "Install"
msgstr "స్థాపించు" msgstr "స్థాపించు"
#: ../js/ui/extensionSystem.js:528 #: ../js/ui/extensionSystem.js:485
#, c-format #, c-format
msgid "Download and install '%s' from extensions.gnome.org?" msgid "Download and install '%s' from extensions.gnome.org?"
msgstr "extensions.gnome.org నుండి '%s' డౌనులోడ్ చేసి మరియు సంస్థాపించాలా?" msgstr "extensions.gnome.org నుండి '%s' డౌనులోడ్ చేసి మరియు సంస్థాపించాలా?"
@ -587,58 +596,41 @@ msgstr "extensions.gnome.org నుండి '%s' డౌనులోడ్ చ
msgid "tray" msgid "tray"
msgstr "పళ్ళెం" msgstr "పళ్ళెం"
#: ../js/ui/keyboard.js:547 #: ../js/ui/keyboard.js:547 ../js/ui/status/power.js:211
#: ../js/ui/status/power.js:211
msgid "Keyboard" msgid "Keyboard"
msgstr "కీబోర్డు" msgstr "కీబోర్డు"
#: ../js/ui/lookingGlass.js:664 #: ../js/ui/lookingGlass.js:646
msgid "No extensions installed" msgid "No extensions installed"
msgstr "ఏ పొడిగింతలు స్థాపించబడిలేవు" msgstr "ఏ పొడిగింతలు స్థాపించబడిలేవు"
#. Translators: argument is an extension UUID. #: ../js/ui/lookingGlass.js:692
#: ../js/ui/lookingGlass.js:719
#, c-format
msgid "%s has not emitted any errors."
msgstr "%s ఎటువంటి దోషాలను ఉద్గారించలేదు."
#: ../js/ui/lookingGlass.js:725
msgid "Hide Errors"
msgstr "దోషాలను దాయి"
#: ../js/ui/lookingGlass.js:729
#: ../js/ui/lookingGlass.js:779
msgid "Show Errors"
msgstr "దోషాలను చూపించు"
#: ../js/ui/lookingGlass.js:738
msgid "Enabled" msgid "Enabled"
msgstr "చేతనమైనది" msgstr "చేతనమైనది"
#. translators: #. translators:
#. * The device has been disabled #. * The device has been disabled
#: ../js/ui/lookingGlass.js:740 #: ../js/ui/lookingGlass.js:694 ../src/gvc/gvc-mixer-control.c:1093
#: ../src/gvc/gvc-mixer-control.c:1093
msgid "Disabled" msgid "Disabled"
msgstr "చేతనమైనది" msgstr "చేతనమైనది"
#: ../js/ui/lookingGlass.js:742 #: ../js/ui/lookingGlass.js:696
msgid "Error" msgid "Error"
msgstr "దోషం" msgstr "దోషం"
#: ../js/ui/lookingGlass.js:744 #: ../js/ui/lookingGlass.js:698
msgid "Out of date" msgid "Out of date"
msgstr "కాలం చెల్లినది" msgstr "కాలం చెల్లినది"
#: ../js/ui/lookingGlass.js:746 #: ../js/ui/lookingGlass.js:700
msgid "Downloading" msgid "Downloading"
msgstr "దింపుకుంటున్నది" msgstr "దింపుకుంటున్నది"
#: ../js/ui/lookingGlass.js:767 #: ../js/ui/lookingGlass.js:721
msgid "View Source" msgid "View Source"
msgstr "మూలాన్ని చూడు" msgstr "మూలాన్ని చూడు"
#: ../js/ui/lookingGlass.js:773 #: ../js/ui/lookingGlass.js:727
msgid "Web Page" msgid "Web Page"
msgstr "వెబ్ పేజీ" msgstr "వెబ్ పేజీ"
@ -655,10 +647,8 @@ msgid "Connect"
msgstr "అనుసంధానించు" msgstr "అనుసంధానించు"
#. Cisco LEAP #. Cisco LEAP
#: ../js/ui/networkAgent.js:238 #: ../js/ui/networkAgent.js:238 ../js/ui/networkAgent.js:250
#: ../js/ui/networkAgent.js:250 #: ../js/ui/networkAgent.js:277 ../js/ui/networkAgent.js:297
#: ../js/ui/networkAgent.js:277
#: ../js/ui/networkAgent.js:297
#: ../js/ui/networkAgent.js:307 #: ../js/ui/networkAgent.js:307
msgid "Password: " msgid "Password: "
msgstr "సంకేతపదం:" msgstr "సంకేతపదం:"
@ -671,8 +661,7 @@ msgstr "కీ: "
#. TTLS and PEAP are actually much more complicated, but this complication #. TTLS and PEAP are actually much more complicated, but this complication
#. is not visible here since we only care about phase2 authentication #. is not visible here since we only care about phase2 authentication
#. (and don't even care of which one) #. (and don't even care of which one)
#: ../js/ui/networkAgent.js:275 #: ../js/ui/networkAgent.js:275 ../js/ui/networkAgent.js:293
#: ../js/ui/networkAgent.js:293
msgid "Username: " msgid "Username: "
msgstr "వాడుకరిపేరు: " msgstr "వాడుకరిపేరు: "
@ -694,7 +683,9 @@ msgstr "వైర్‌లెస్ నెట్వర్క్ చేత ధృ
#: ../js/ui/networkAgent.js:325 #: ../js/ui/networkAgent.js:325
#, c-format #, c-format
msgid "Passwords or encryption keys are required to access the wireless network '%s'." msgid ""
"Passwords or encryption keys are required to access the wireless network "
"'%s'."
msgstr "వైర్‌లెస్ నెట్వర్కు '%s' యాక్సెస్ చేయుటకు సంకేతపదాలు లేదా యెన్క్రిప్షన్ కీలు అవసరం." msgstr "వైర్‌లెస్ నెట్వర్కు '%s' యాక్సెస్ చేయుటకు సంకేతపదాలు లేదా యెన్క్రిప్షన్ కీలు అవసరం."
#: ../js/ui/networkAgent.js:329 #: ../js/ui/networkAgent.js:329
@ -820,7 +811,7 @@ msgstr "దయచేసి ఒక ఆదేశమును ప్రవేశప
#: ../js/ui/searchDisplay.js:340 #: ../js/ui/searchDisplay.js:340
msgid "Searching..." msgid "Searching..."
msgstr "శోధిస్తున్నది..." msgstr "వెతుకుతున్నది..."
#: ../js/ui/searchDisplay.js:363 #: ../js/ui/searchDisplay.js:363
msgid "No matching results." msgid "No matching results."
@ -836,11 +827,11 @@ msgstr "అతికించు"
#: ../js/ui/shellEntry.js:81 #: ../js/ui/shellEntry.js:81
msgid "Show Text" msgid "Show Text"
msgstr "పాఠ్య చూపించు" msgstr "పాఠ్యాన్ని చూపించు"
#: ../js/ui/shellEntry.js:83 #: ../js/ui/shellEntry.js:83
msgid "Hide Text" msgid "Hide Text"
msgstr "పాఠ్య దాయి" msgstr "పాఠ్యాన్ని దాయి"
#: ../js/ui/shellMountOperation.js:285 #: ../js/ui/shellMountOperation.js:285
msgid "Wrong password, please try again" msgid "Wrong password, please try again"
@ -889,12 +880,9 @@ msgstr "అధిక వ్యత్యాసం"
msgid "Large Text" msgid "Large Text"
msgstr "అతిపెద్ద పాఠ్యము" msgstr "అతిపెద్ద పాఠ్యము"
#: ../js/ui/status/bluetooth.js:39 #: ../js/ui/status/bluetooth.js:39 ../js/ui/status/bluetooth.js:261
#: ../js/ui/status/bluetooth.js:261 #: ../js/ui/status/bluetooth.js:347 ../js/ui/status/bluetooth.js:381
#: ../js/ui/status/bluetooth.js:347 #: ../js/ui/status/bluetooth.js:421 ../js/ui/status/bluetooth.js:454
#: ../js/ui/status/bluetooth.js:381
#: ../js/ui/status/bluetooth.js:421
#: ../js/ui/status/bluetooth.js:454
msgid "Bluetooth" msgid "Bluetooth"
msgstr "బ్లూటూత్" msgstr "బ్లూటూత్"
@ -923,13 +911,11 @@ msgstr "హార్డువేర్ అచేతనమైంది"
msgid "Connection" msgid "Connection"
msgstr "అనుసంధానం" msgstr "అనుసంధానం"
#: ../js/ui/status/bluetooth.js:217 #: ../js/ui/status/bluetooth.js:217 ../js/ui/status/network.js:486
#: ../js/ui/status/network.js:486
msgid "disconnecting..." msgid "disconnecting..."
msgstr "అననుసంధానిస్తోంది..." msgstr "అననుసంధానిస్తోంది..."
#: ../js/ui/status/bluetooth.js:230 #: ../js/ui/status/bluetooth.js:230 ../js/ui/status/network.js:492
#: ../js/ui/status/network.js:492
msgid "connecting..." msgid "connecting..."
msgstr "అనుసంధానిస్తున్నది..." msgstr "అనుసంధానిస్తున్నది..."
@ -958,8 +944,7 @@ msgstr "కీబోర్డు అమరికలు"
msgid "Mouse Settings" msgid "Mouse Settings"
msgstr "మౌస్ అమరికలు" msgstr "మౌస్ అమరికలు"
#: ../js/ui/status/bluetooth.js:279 #: ../js/ui/status/bluetooth.js:279 ../js/ui/status/volume.js:62
#: ../js/ui/status/volume.js:62
msgid "Sound Settings" msgid "Sound Settings"
msgstr "శబ్దపు అమరికలు" msgstr "శబ్దపు అమరికలు"
@ -981,8 +966,7 @@ msgstr "ఎల్లప్పుడు ప్రవేశ సౌలభ్యత
msgid "Grant this time only" msgid "Grant this time only"
msgstr "ఈ సారికి మాత్రమే అనుమతించు" msgstr "ఈ సారికి మాత్రమే అనుమతించు"
#: ../js/ui/status/bluetooth.js:392 #: ../js/ui/status/bluetooth.js:392 ../js/ui/telepathyClient.js:1204
#: ../js/ui/telepathyClient.js:1204
msgid "Reject" msgid "Reject"
msgstr "తిరస్కరించు" msgstr "తిరస్కరించు"
@ -991,8 +975,7 @@ msgstr "తిరస్కరించు"
msgid "Pairing confirmation for %s" msgid "Pairing confirmation for %s"
msgstr "%s కొరకు జతచేయుటకు ధృవీకరణ" msgstr "%s కొరకు జతచేయుటకు ధృవీకరణ"
#: ../js/ui/status/bluetooth.js:428 #: ../js/ui/status/bluetooth.js:428 ../js/ui/status/bluetooth.js:462
#: ../js/ui/status/bluetooth.js:462
#, c-format #, c-format
msgid "Device %s wants to pair with this computer" msgid "Device %s wants to pair with this computer"
msgstr "%s పరికరము ఈ కంప్యూటరుతో జతకట్టాలనుకుంటుంది" msgstr "%s పరికరము ఈ కంప్యూటరుతో జతకట్టాలనుకుంటుంది"
@ -1072,15 +1055,13 @@ msgstr "అందుబాటులోలేదు"
msgid "connection failed" msgid "connection failed"
msgstr "అనుసంధానం విఫలమైంది" msgstr "అనుసంధానం విఫలమైంది"
#: ../js/ui/status/network.js:575 #: ../js/ui/status/network.js:575 ../js/ui/status/network.js:1523
#: ../js/ui/status/network.js:1523
msgid "More..." msgid "More..."
msgstr "మరిన్ని..." msgstr "మరిన్ని..."
#. TRANSLATORS: this is the indication that a connection for another logged in user is active, #. TRANSLATORS: this is the indication that a connection for another logged in user is active,
#. and we cannot access its settings (including the name) #. and we cannot access its settings (including the name)
#: ../js/ui/status/network.js:611 #: ../js/ui/status/network.js:611 ../js/ui/status/network.js:1458
#: ../js/ui/status/network.js:1458
msgid "Connected (private)" msgid "Connected (private)"
msgstr "అనుసంధానించబడింది (గోప్యము)" msgstr "అనుసంధానించబడింది (గోప్యము)"
@ -1097,8 +1078,7 @@ msgid "Auto dial-up"
msgstr "ఆటో డయిల్-అప్" msgstr "ఆటో డయిల్-అప్"
#. TRANSLATORS: this the automatic wireless connection name (including the network name) #. TRANSLATORS: this the automatic wireless connection name (including the network name)
#: ../js/ui/status/network.js:878 #: ../js/ui/status/network.js:878 ../js/ui/status/network.js:1470
#: ../js/ui/status/network.js:1470
#, c-format #, c-format
msgid "Auto %s" msgid "Auto %s"
msgstr "ఆటో %s" msgstr "ఆటో %s"
@ -1193,8 +1173,7 @@ msgid_plural "%d minutes remaining"
msgstr[0] "%d నిముషం మిగిలివుంది" msgstr[0] "%d నిముషం మిగిలివుంది"
msgstr[1] "%d నిముషాలు మిగిలివుంది" msgstr[1] "%d నిముషాలు మిగిలివుంది"
#: ../js/ui/status/power.js:121 #: ../js/ui/status/power.js:121 ../js/ui/status/power.js:194
#: ../js/ui/status/power.js:194
#, c-format #, c-format
msgctxt "percent of battery remaining" msgctxt "percent of battery remaining"
msgid "%d%%" msgid "%d%%"
@ -1335,19 +1314,17 @@ msgstr "%sకు ఆహ్వానం"
#: ../js/ui/telepathyClient.js:1156 #: ../js/ui/telepathyClient.js:1156
#, c-format #, c-format
msgid "%s is inviting you to join %s" msgid "%s is inviting you to join %s"
msgstr "%s మిమ్ములను %s పై చేరుటకు ఆహ్వానిస్తోంది" msgstr "%s మిమ్ములను %s నందు చేరుటకు ఆహ్వానిస్తున్నారు"
#: ../js/ui/telepathyClient.js:1158 #: ../js/ui/telepathyClient.js:1158 ../js/ui/telepathyClient.js:1248
#: ../js/ui/telepathyClient.js:1248
#: ../js/ui/telepathyClient.js:1352 #: ../js/ui/telepathyClient.js:1352
msgid "Decline" msgid "Decline"
msgstr "తిరస్కారం" msgstr "తిరస్కారం"
#: ../js/ui/telepathyClient.js:1159 #: ../js/ui/telepathyClient.js:1159 ../js/ui/telepathyClient.js:1249
#: ../js/ui/telepathyClient.js:1249
#: ../js/ui/telepathyClient.js:1353 #: ../js/ui/telepathyClient.js:1353
msgid "Accept" msgid "Accept"
msgstr "ఆమోద" msgstr "ఆమోదించు"
#. translators: argument is a contact name like Alice for example. #. translators: argument is a contact name like Alice for example.
#: ../js/ui/telepathyClient.js:1192 #: ../js/ui/telepathyClient.js:1192
@ -1364,7 +1341,7 @@ msgstr "%s నుండి కాల్"
#. translators: this is a button label (verb), not a noun #. translators: this is a button label (verb), not a noun
#: ../js/ui/telepathyClient.js:1206 #: ../js/ui/telepathyClient.js:1206
msgid "Answer" msgid "Answer"
msgstr "సమాధాన" msgstr "సమాధానమివ్వు"
#. To translators: The first parameter is #. To translators: The first parameter is
#. * the contact's alias and the second one is the #. * the contact's alias and the second one is the
@ -1374,7 +1351,7 @@ msgstr "సమాధానం"
#: ../js/ui/telepathyClient.js:1242 #: ../js/ui/telepathyClient.js:1242
#, c-format #, c-format
msgid "%s is sending you %s" msgid "%s is sending you %s"
msgstr "%s మీకు %s పంపుచున్నది" msgstr "%s మీకు %s పంపారు"
#. To translators: The parameter is the contact's alias #. To translators: The parameter is the contact's alias
#: ../js/ui/telepathyClient.js:1317 #: ../js/ui/telepathyClient.js:1317
@ -1451,7 +1428,8 @@ msgid "This resource is already connected to the server"
msgstr "ఈ వనరు యిప్పటికే సేవికకు అనుసంధానమైంది" msgstr "ఈ వనరు యిప్పటికే సేవికకు అనుసంధానమైంది"
#: ../js/ui/telepathyClient.js:1449 #: ../js/ui/telepathyClient.js:1449
msgid "Connection has been replaced by a new connection using the same resource" msgid ""
"Connection has been replaced by a new connection using the same resource"
msgstr "అనుసంధానం అదే వనరు వుపయోగించి కొత్త అనుసంధానంచే పునఃస్థాపించబడెను" msgstr "అనుసంధానం అదే వనరు వుపయోగించి కొత్త అనుసంధానంచే పునఃస్థాపించబడెను"
#: ../js/ui/telepathyClient.js:1451 #: ../js/ui/telepathyClient.js:1451
@ -1467,12 +1445,18 @@ msgid "Certificate has been revoked"
msgstr "ధృవీకరణపత్రం కొట్టివేయబడింది" msgstr "ధృవీకరణపత్రం కొట్టివేయబడింది"
#: ../js/ui/telepathyClient.js:1457 #: ../js/ui/telepathyClient.js:1457
msgid "Certificate uses an insecure cipher algorithm or is cryptographically weak" msgid ""
msgstr "ధృవీకరణపత్రం సురక్షితం కాని సైఫర్ ఆల్గార్దెమ్ వుపయోగించుచున్నది లేదా క్రిప్టోగ్రఫీ పరంగా బలహీనంగా వుంది" "Certificate uses an insecure cipher algorithm or is cryptographically weak"
msgstr ""
"ధృవీకరణపత్రం సురక్షితం కాని సైఫర్ ఆల్గార్దెమ్ వుపయోగించుచున్నది లేదా క్రిప్టోగ్రఫీ పరంగా బలహీనంగా వుంది"
#: ../js/ui/telepathyClient.js:1459 #: ../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" msgid ""
msgstr "సేవిక ధృవీకరణపత్రం యొక్క పొడవు, లేదా సేవిక ధృవీకరణపత్రం చైన్ యొక్క లోతు, క్రిప్టోగ్రఫీ లైబ్రరీ చేత నిర్దేశితమైన పరిమితులను మించును" "The length of the server certificate, or the depth of the server certificate "
"chain, exceed the limits imposed by the cryptography library"
msgstr ""
"సేవిక ధృవీకరణపత్రం యొక్క పొడవు, లేదా సేవిక ధృవీకరణపత్రం చైన్ యొక్క లోతు, క్రిప్టోగ్రఫీ లైబ్రరీ చేత "
"నిర్దేశితమైన పరిమితులను మించును"
#. translators: argument is the account name, like #. translators: argument is the account name, like
#. * name@jabber.org for example. #. * name@jabber.org for example.
@ -1505,43 +1489,45 @@ msgstr "వాడుకలేదు"
msgid "Unavailable" msgid "Unavailable"
msgstr "అందుబాటులోలేదు" msgstr "అందుబాటులోలేదు"
#: ../js/ui/userMenu.js:571 #: ../js/ui/userMenu.js:552 ../js/ui/userMenu.js:556 ../js/ui/userMenu.js:626
#: ../js/ui/userMenu.js:575
#: ../js/ui/userMenu.js:645
msgid "Power Off..." msgid "Power Off..."
msgstr "విద్యుత్ ఆపు..." msgstr "విద్యుత్ ఆపు..."
#: ../js/ui/userMenu.js:607 #: ../js/ui/userMenu.js:588
msgid "Notifications" msgid "Notifications"
msgstr "ప్రకటనలు" msgstr "ప్రకటనలు"
#: ../js/ui/userMenu.js:615 #: ../js/ui/userMenu.js:596
msgid "Online Accounts" msgid "Online Accounts"
msgstr "ఆన్‌లైన్ ఖాతాలు" msgstr "ఆన్‌లైన్ ఖాతాలు"
#: ../js/ui/userMenu.js:619 #: ../js/ui/userMenu.js:600
msgid "System Settings" msgid "System Settings"
msgstr "వ్యవస్థ అమరికలు" msgstr "వ్యవస్థ అమరికలు"
#: ../js/ui/userMenu.js:626 #: ../js/ui/userMenu.js:607
msgid "Lock Screen" msgid "Lock Screen"
msgstr "తెరకు తాళంవేయి" msgstr "తెరకు తాళంవేయి"
#: ../js/ui/userMenu.js:631 #: ../js/ui/userMenu.js:612
msgid "Switch User" msgid "Switch User"
msgstr "వాడుకరిని మార్చు" msgstr "వాడుకరిని మార్చు"
#: ../js/ui/userMenu.js:636 #: ../js/ui/userMenu.js:617
msgid "Log Out..." msgid "Log Out..."
msgstr "నిష్క్రమించు..." msgstr "నిష్క్రమించు..."
#: ../js/ui/userMenu.js:664 #: ../js/ui/userMenu.js:645
msgid "Your chat status will be set to busy" msgid "Your chat status will be set to busy"
msgstr "మీ చాట్ అమరిక వత్తిడిలో వున్నారని వుంచబడును" msgstr "మీ చాట్ అమరిక వత్తిడిలో వున్నారని వుంచబడును"
#: ../js/ui/userMenu.js:665 #: ../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." msgid ""
msgstr "ప్రకటలను యిప్పుడు అచేతనం చేయబడెను, చాట్ సందేశములతో సహా. మీరు యితరుల సందేశాలను చూసివుండకపోవుచ్చునని వారికి తెలియునట్లు మీ ఆన్‌లైన్ స్థితి అమర్చబడెను." "Notifications are now disabled, including chat messages. Your online status "
"has been adjusted to let others know that you might not see their messages."
msgstr ""
"ప్రకటలను యిప్పుడు అచేతనం చేయబడెను, చాట్ సందేశములతో సహా. మీరు యితరుల సందేశాలను "
"చూసివుండకపోవుచ్చునని వారికి తెలియునట్లు మీ ఆన్‌లైన్ స్థితి అమర్చబడెను."
#. Translators: this is the text displayed #. Translators: this is the text displayed
#. in the search entry when no search is #. in the search entry when no search is
@ -1551,8 +1537,7 @@ msgstr "ప్రకటలను యిప్పుడు అచేతనం చ
msgid "Type to search..." msgid "Type to search..."
msgstr "వెతకడానికి టైపు చేయండి..." msgstr "వెతకడానికి టైపు చేయండి..."
#: ../js/ui/viewSelector.js:142 #: ../js/ui/viewSelector.js:142 ../src/shell-util.c:261
#: ../src/shell-util.c:244
msgid "Search" msgid "Search"
msgstr "శోధించు" msgstr "శోధించు"
@ -1589,7 +1574,7 @@ msgstr "ముద్రిత వర్షన్"
#: ../src/main.c:486 #: ../src/main.c:486
msgid "Mode used by GDM for login screen" msgid "Mode used by GDM for login screen"
msgstr "లాగిన్ తెర కొరకు GDM చేత వుపయోగించబడిన రీతి" msgstr "ప్రవేశ తెర కొరకు GDM చే వాడబడే రీతి"
#: ../src/shell-app.c:579 #: ../src/shell-app.c:579
#, c-format #, c-format
@ -1608,15 +1593,13 @@ msgstr "అప్రమేయం"
msgid "Authentication dialog was dismissed by the user" msgid "Authentication dialog was dismissed by the user"
msgstr "ప్రమాణీకరణ డైలాగు వాడుకరిచే రద్దుచేయబడింది" msgstr "ప్రమాణీకరణ డైలాగు వాడుకరిచే రద్దుచేయబడింది"
#. Translators: this is the same string as the one found in #: ../src/shell-util.c:100
#. * nautilus msgid "Home Folder"
#: ../src/shell-util.c:89 msgstr "నివాస సంచయం"
msgid "Home"
msgstr "నివాసం"
#. Translators: this is the same string as the one found in #. Translators: this is the same string as the one found in
#. * nautilus #. * nautilus
#: ../src/shell-util.c:98 #: ../src/shell-util.c:115
msgid "File System" msgid "File System"
msgstr "ఫైల్ వ్యవస్థ" msgstr "ఫైల్ వ్యవస్థ"
@ -1625,7 +1608,7 @@ msgstr "ఫైల్ వ్యవస్థ"
#. * example, "Trash: some-directory". It means that the #. * example, "Trash: some-directory". It means that the
#. * directory called "some-directory" is in the trash. #. * directory called "some-directory" is in the trash.
#. #.
#: ../src/shell-util.c:294 #: ../src/shell-util.c:311
#, c-format #, c-format
msgid "%1$s: %2$s" msgid "%1$s: %2$s"
msgstr "%1$s: %2$s" msgstr "%1$s: %2$s"
@ -1633,9 +1616,6 @@ msgstr "%1$s: %2$s"
#~ msgid "Show password" #~ msgid "Show password"
#~ msgstr "సంకేతపదం చూపు" #~ msgstr "సంకేతపదం చూపు"
#~ msgid "Home Folder"
#~ msgstr "నివాస సంచయం"
#~ msgid "%s has finished starting" #~ msgid "%s has finished starting"
#~ msgstr "ప్రారంభించుటను %s పూర్తిచేసినది" #~ msgstr "ప్రారంభించుటను %s పూర్తిచేసినది"
@ -1670,25 +1650,21 @@ msgstr "%1$s: %2$s"
#~ msgstr "ఒక నిముషం కంటే ముందు" #~ msgstr "ఒక నిముషం కంటే ముందు"
#~ msgid "%d minute ago" #~ msgid "%d minute ago"
#~ msgid_plural "%d minutes ago" #~ msgid_plural "%d minutes ago"
#~ msgstr[0] "%d నిముషం క్రితం" #~ msgstr[0] "%d నిముషం క్రితం"
#~ msgstr[1] "%d నిముషాల క్రితం" #~ msgstr[1] "%d నిముషాల క్రితం"
#~ msgid "%d hour ago" #~ msgid "%d hour ago"
#~ msgid_plural "%d hours ago" #~ msgid_plural "%d hours ago"
#~ msgstr[0] "%d గంట క్రితం" #~ msgstr[0] "%d గంట క్రితం"
#~ msgstr[1] "%d గంటల క్రితం" #~ msgstr[1] "%d గంటల క్రితం"
#~ msgid "%d day ago" #~ msgid "%d day ago"
#~ msgid_plural "%d days ago" #~ msgid_plural "%d days ago"
#~ msgstr[0] "%d రోజు క్రితం" #~ msgstr[0] "%d రోజు క్రితం"
#~ msgstr[1] "%d రోజుల క్రితం" #~ msgstr[1] "%d రోజుల క్రితం"
#~ msgid "%d week ago" #~ msgid "%d week ago"
#~ msgid_plural "%d weeks ago" #~ msgid_plural "%d weeks ago"
#~ msgstr[0] "%d వారం క్రితం" #~ msgstr[0] "%d వారం క్రితం"
#~ msgstr[1] "%d వారాల క్రితం" #~ msgstr[1] "%d వారాల క్రితం"

1238
po/tr.po

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -101,6 +101,7 @@ shell_public_headers_h = \
shell-app.h \ shell-app.h \
shell-app-system.h \ shell-app-system.h \
shell-app-usage.h \ shell-app-usage.h \
shell-arrow.h \
shell-contact-system.h \ shell-contact-system.h \
shell-doc-system.h \ shell-doc-system.h \
shell-embedded-window.h \ shell-embedded-window.h \
@ -137,6 +138,7 @@ libgnome_shell_la_SOURCES = \
shell-a11y.c \ shell-a11y.c \
shell-app-system.c \ shell-app-system.c \
shell-app-usage.c \ shell-app-usage.c \
shell-arrow.c \
shell-contact-system.c \ shell-contact-system.c \
shell-doc-system.c \ shell-doc-system.c \
shell-embedded-window.c \ shell-embedded-window.c \
@ -275,7 +277,7 @@ Shell_0_1_gir_CFLAGS = $(libgnome_shell_la_CPPFLAGS) -I $(srcdir)
Shell_0_1_gir_LIBS = libgnome-shell.la Shell_0_1_gir_LIBS = libgnome-shell.la
Shell_0_1_gir_FILES = $(libgnome_shell_la_gir_sources) Shell_0_1_gir_FILES = $(libgnome_shell_la_gir_sources)
Shell_0_1_gir_SCANNERFLAGS = --include-uninstalled=$(builddir)/St-1.0.gir \ Shell_0_1_gir_SCANNERFLAGS = --include-uninstalled=$(builddir)/St-1.0.gir \
--add-include-path=$(MUTTER_GIR_DIR) $(if $(BLUETOOTH_DIR),-L $(BLUETOOTH_DIR),) --add-include-path=$(MUTTER_GIR_DIR)
INTROSPECTION_GIRS += Shell-0.1.gir INTROSPECTION_GIRS += Shell-0.1.gir
CLEANFILES += Shell-0.1.gir CLEANFILES += Shell-0.1.gir

View File

@ -17,7 +17,15 @@ except ImportError:
print 'The Python simplejson module is required' print 'The Python simplejson module is required'
sys.exit(1) sys.exit(1)
from gi.repository import Gio parser = optparse.OptionParser()
parser.add_option("", "--create-extension", action="store_true",
help="Create a new GNOME Shell extension")
options, args = parser.parse_args()
if args:
parser.print_usage()
sys.exit(1)
SAMPLE_EXTENSION_FILES = { SAMPLE_EXTENSION_FILES = {
"extension.js": """ "extension.js": """
@ -88,7 +96,7 @@ function disable() {
""", """,
} }
def create_extension(): if options.create_extension:
print print
print '''Name should be a very short (ideally descriptive) string. print '''Name should be a very short (ideally descriptive) string.
Examples are: "Click To Focus", "Adblock", "Shell Window Shrinker". Examples are: "Click To Focus", "Adblock", "Shell Window Shrinker".
@ -142,63 +150,4 @@ use an extension title clicktofocus@janedoe.example.com.'''
print "Created extension in %r" % (extension_path, ) print "Created extension in %r" % (extension_path, )
extensionjs_path = os.path.join(extension_path, 'extension.js') extensionjs_path = os.path.join(extension_path, 'extension.js')
subprocess.Popen(['xdg-open', extensionjs_path]) subprocess.Popen(['xdg-open', extensionjs_path])
sys.exit(0)
ENABLED_EXTENSIONS_KEY = 'enabled-extensions'
def enable_extension(uuid):
settings = Gio.Settings(schema='org.gnome.shell')
extensions = settings.get_strv(ENABLED_EXTENSIONS_KEY)
if uuid in extensions:
print >> sys.stderr, "%r is already enabled." % (uuid,)
sys.exit(1)
extensions.append(uuid)
settings.set_strv(ENABLED_EXTENSIONS_KEY, extensions)
print >> sys.stderr, "%r is now enabled." % (uuid,)
def disable_extension(uuid):
settings = Gio.Settings(schema='org.gnome.shell')
extensions = settings.get_strv(ENABLED_EXTENSIONS_KEY)
if uuid not in extensions:
print >> sys.stderr, "%r is not enabled or installed." % (uuid,)
sys.exit(1)
# Use a while loop here to remove *all* mentions instances
# of the extension. Some faulty tools like to append more than one.
while uuid in extensions:
extensions.remove(uuid)
settings.set_strv(ENABLED_EXTENSIONS_KEY, extensions)
print >> sys.stderr, "%r is now disabled." % (uuid,)
def main():
parser = optparse.OptionParser()
parser.add_option("-d", "--disable-extension", dest="disable",
help="Disable a GNOME Shell extension")
parser.add_option("-e", "--enable-extension", dest="enable",
help="Enable a GNOME Shell extension")
parser.add_option("-c", "--create-extension", dest="create", action="store_true",
help="Create a new GNOME Shell extension")
options, args = parser.parse_args()
if args:
parser.print_usage()
sys.exit(1)
if options.disable:
disable_extension(options.disable)
elif options.enable:
enable_extension(options.enable)
elif options.create:
create_extension()
else:
parser.print_usage()
sys.exit(1)
if __name__ == "__main__":
main()

View File

@ -114,10 +114,7 @@ sniff_async_ready_cb (GObject *source,
{ {
InvocationData *data = user_data; InvocationData *data = user_data;
gchar **types; gchar **types;
gint idx;
GError *error = NULL; GError *error = NULL;
GVariantBuilder *builder;
GVariant *result;
types = shell_mime_sniffer_sniff_finish (SHELL_MIME_SNIFFER (source), types = shell_mime_sniffer_sniff_finish (SHELL_MIME_SNIFFER (source),
res, &error); res, &error);
@ -129,16 +126,8 @@ sniff_async_ready_cb (GObject *source,
goto out; goto out;
} }
builder = g_variant_builder_new (G_VARIANT_TYPE ("as")); g_dbus_method_invocation_return_value (data->invocation,
g_variant_new ("(^as)", types));
for (idx = 0; types[idx] != NULL; idx++)
g_variant_builder_add (builder, "s", types[idx]);
result = g_variant_new ("(as)", builder);
g_dbus_method_invocation_return_value (data->invocation, result);
g_variant_unref (result);
g_variant_builder_unref (builder);
g_strfreev (types); g_strfreev (types);
out: out:

View File

@ -8,9 +8,9 @@
#include <stdlib.h> #include <stdlib.h>
#include <string.h> #include <string.h>
#include <cogl-pango/cogl-pango.h>
#include <clutter/clutter.h> #include <clutter/clutter.h>
#include <clutter/x11/clutter-x11.h> #include <clutter/x11/clutter-x11.h>
#include <dbus/dbus-glib.h>
#include <gdk/gdk.h> #include <gdk/gdk.h>
#include <gdk/gdkx.h> #include <gdk/gdkx.h>
#include <gtk/gtk.h> #include <gtk/gtk.h>
@ -33,128 +33,102 @@ extern GType gnome_shell_plugin_get_type (void);
#define SHELL_DBUS_SERVICE "org.gnome.Shell" #define SHELL_DBUS_SERVICE "org.gnome.Shell"
#define MAGNIFIER_DBUS_SERVICE "org.gnome.Magnifier" #define MAGNIFIER_DBUS_SERVICE "org.gnome.Magnifier"
#define OVERRIDES_SCHEMA "org.gnome.shell.overrides"
static gboolean is_gdm_mode = FALSE; static gboolean is_gdm_mode = FALSE;
#define DBUS_REQUEST_NAME_REPLY_PRIMARY_OWNER 1
#define DBUS_REQUEST_NAME_REPLY_ALREADY_OWNER 4
static void
shell_dbus_acquire_name (GDBusProxy *bus,
guint32 request_name_flags,
guint32 *request_name_result,
gchar *name,
gboolean fatal)
{
GError *error = NULL;
GVariant *request_name_variant;
if (!(request_name_variant = g_dbus_proxy_call_sync (bus,
"RequestName",
g_variant_new ("(su)", name, request_name_flags),
0, /* call flags */
-1, /* timeout */
NULL, /* cancellable */
&error)))
{
g_printerr ("failed to acquire org.gnome.Shell: %s\n", error->message);
exit (1);
}
g_variant_get (request_name_variant, "(u)", request_name_result);
}
static void
shell_dbus_acquire_names (GDBusProxy *bus,
guint32 request_name_flags,
gchar *name,
gboolean fatal, ...) G_GNUC_NULL_TERMINATED;
static void
shell_dbus_acquire_names (GDBusProxy *bus,
guint32 request_name_flags,
gchar *name,
gboolean fatal, ...)
{
va_list al;
guint32 request_name_result;
va_start (al, fatal);
for (;;)
{
shell_dbus_acquire_name (bus,
request_name_flags,
&request_name_result,
name, fatal);
name = va_arg (al, gchar *);
if (!name)
break;
fatal = va_arg (al, gboolean);
}
va_end (al);
}
static void static void
shell_dbus_init (gboolean replace) shell_dbus_init (gboolean replace)
{ {
GDBusConnection *session;
GDBusProxy *bus;
GError *error = NULL; GError *error = NULL;
DBusGConnection *session;
DBusGProxy *bus;
guint32 request_name_flags; guint32 request_name_flags;
guint32 request_name_result; guint32 request_name_result;
session = g_bus_get_sync (G_BUS_TYPE_SESSION, NULL, &error); /** TODO:
* In the future we should use GDBus for this. However, in
* order to do that, we need to port all of the JavaScript
* code. Otherwise, the name will be claimed on the wrong
* connection.
*/
session = dbus_g_bus_get (DBUS_BUS_SESSION, NULL);
if (error) { bus = dbus_g_proxy_new_for_name (session,
g_printerr ("Failed to connect to session bus: %s", error->message); DBUS_SERVICE_DBUS,
exit (1); DBUS_PATH_DBUS,
} DBUS_INTERFACE_DBUS);
bus = g_dbus_proxy_new_sync (session, request_name_flags = DBUS_NAME_FLAG_DO_NOT_QUEUE | DBUS_NAME_FLAG_ALLOW_REPLACEMENT;
G_DBUS_PROXY_FLAGS_NONE,
NULL, /* interface info */
"org.freedesktop.DBus",
"/org/freedesktop/DBus",
"org.freedesktop.DBus",
NULL, /* cancellable */
&error);
request_name_flags = G_BUS_NAME_OWNER_FLAGS_ALLOW_REPLACEMENT;
if (replace) if (replace)
request_name_flags |= DBUS_NAME_FLAG_REPLACE_EXISTING; request_name_flags |= DBUS_NAME_FLAG_REPLACE_EXISTING;
if (!dbus_g_proxy_call (bus, "RequestName", &error,
shell_dbus_acquire_name (bus, G_TYPE_STRING, SHELL_DBUS_SERVICE,
request_name_flags, G_TYPE_UINT, request_name_flags,
&request_name_result, G_TYPE_INVALID,
SHELL_DBUS_SERVICE, TRUE); G_TYPE_UINT, &request_name_result,
G_TYPE_INVALID))
{
g_printerr ("failed to acquire org.gnome.Shell: %s\n", error->message);
exit (1);
}
if (!(request_name_result == DBUS_REQUEST_NAME_REPLY_PRIMARY_OWNER if (!(request_name_result == DBUS_REQUEST_NAME_REPLY_PRIMARY_OWNER
|| request_name_result == DBUS_REQUEST_NAME_REPLY_ALREADY_OWNER)) || request_name_result == DBUS_REQUEST_NAME_REPLY_ALREADY_OWNER))
{ {
g_printerr (SHELL_DBUS_SERVICE " already exists on bus and --replace not specified\n"); g_printerr ("%s already exists on bus and --replace not specified\n",
SHELL_DBUS_SERVICE);
exit (1); exit (1);
} }
/*
* We always specify REPLACE_EXISTING to ensure we kill off
* the existing service if it was running.
*/
request_name_flags |= G_BUS_NAME_OWNER_FLAGS_REPLACE;
shell_dbus_acquire_names (bus,
request_name_flags,
/* Also grab org.gnome.Panel to replace any existing panel process */ /* Also grab org.gnome.Panel to replace any existing panel process */
"org.gnome.Panel", TRUE, if (!dbus_g_proxy_call (bus, "RequestName", &error, G_TYPE_STRING,
/* ...and the org.gnome.Magnifier service. */ "org.gnome.Panel", G_TYPE_UINT,
MAGNIFIER_DBUS_SERVICE, FALSE, DBUS_NAME_FLAG_REPLACE_EXISTING | request_name_flags,
/* ...and the org.freedesktop.Notifications service. */ G_TYPE_INVALID, G_TYPE_UINT,
"org.freedesktop.Notifications", FALSE, &request_name_result, G_TYPE_INVALID))
NULL); {
g_print ("failed to acquire org.gnome.Panel: %s\n", error->message);
exit (1);
}
/* ...and the org.gnome.Magnifier service.
*/
if (!dbus_g_proxy_call (bus, "RequestName", &error,
G_TYPE_STRING, MAGNIFIER_DBUS_SERVICE,
G_TYPE_UINT, DBUS_NAME_FLAG_REPLACE_EXISTING | request_name_flags,
G_TYPE_INVALID,
G_TYPE_UINT, &request_name_result,
G_TYPE_INVALID))
{
g_print ("failed to acquire %s: %s\n", MAGNIFIER_DBUS_SERVICE, error->message);
/* Failing to acquire the magnifer service is not fatal. Log the error,
* but keep going. */
}
/* ...and the org.freedesktop.Notifications service; we always
* specify REPLACE_EXISTING to ensure we kill off
* notification-daemon if it was running.
*/
if (!dbus_g_proxy_call (bus, "RequestName", &error,
G_TYPE_STRING, "org.freedesktop.Notifications",
G_TYPE_UINT, DBUS_NAME_FLAG_REPLACE_EXISTING | request_name_flags,
G_TYPE_INVALID,
G_TYPE_UINT, &request_name_result,
G_TYPE_INVALID))
{
g_print ("failed to acquire org.freedesktop.Notifications: %s\n", error->message);
}
/* ...and the on-screen keyboard service */ /* ...and the on-screen keyboard service */
shell_dbus_acquire_name (bus, if (!dbus_g_proxy_call (bus, "RequestName", &error,
DBUS_NAME_FLAG_REPLACE_EXISTING, G_TYPE_STRING, "org.gnome.Caribou.Keyboard",
&request_name_result, G_TYPE_UINT, DBUS_NAME_FLAG_REPLACE_EXISTING,
"org.gnome.Caribou.Keyboard", FALSE); G_TYPE_INVALID,
G_TYPE_UINT, &request_name_result,
G_TYPE_INVALID))
{
g_print ("failed to acquire org.gnome.Caribou.Keyboard: %s\n", error->message);
}
g_object_unref (bus); g_object_unref (bus);
g_object_unref (session);
} }
static void static void
@ -284,15 +258,13 @@ static void
shell_fonts_init (void) shell_fonts_init (void)
{ {
GtkSettings *settings; GtkSettings *settings;
CoglPangoFontMap *fontmap;
/* Disable text mipmapping; it causes problems on pre-GEM Intel /* Disable text mipmapping; it causes problems on pre-GEM Intel
* drivers and we should just be rendering text at the right * drivers and we should just be rendering text at the right
* size rather than scaling it. If we do effects where we dynamically * size rather than scaling it. If we do effects where we dynamically
* zoom labels, then we might want to reconsider. * zoom labels, then we might want to reconsider.
*/ */
fontmap = COGL_PANGO_FONT_MAP (clutter_get_font_map ()); clutter_set_font_flags (clutter_get_font_flags () & ~CLUTTER_FONT_MIPMAPPING);
cogl_pango_font_map_set_use_mipmapping (fontmap, FALSE);
settings = gtk_settings_get_default (); settings = gtk_settings_get_default ();
g_object_connect (settings, g_object_connect (settings,
@ -311,14 +283,16 @@ shell_fonts_init (void)
static void static void
shell_prefs_init (void) shell_prefs_init (void)
{ {
meta_prefs_override_preference_schema ("attach-modal-dialogs", meta_prefs_override_preference_location ("/apps/mutter/general/attach_modal_dialogs",
OVERRIDES_SCHEMA); "/desktop/gnome/shell/windows/attach_modal_dialogs");
meta_prefs_override_preference_schema ("workspaces-only-on-primary", meta_prefs_override_preference_location ("/apps/mutter/general/workspaces_only_on_primary",
OVERRIDES_SCHEMA); "/desktop/gnome/shell/windows/workspaces_only_on_primary");
meta_prefs_override_preference_schema ("button-layout", meta_prefs_override_preference_location ("/apps/metacity/general/button_layout",
OVERRIDES_SCHEMA); "/desktop/gnome/shell/windows/button_layout");
meta_prefs_override_preference_schema ("edge-tiling", meta_prefs_override_preference_location ("/apps/metacity/general/edge_tiling",
OVERRIDES_SCHEMA); "/desktop/gnome/shell/windows/edge_tiling");
meta_prefs_override_preference_location ("/apps/metacity/general/theme",
"/desktop/gnome/shell/windows/theme");
} }
/* This is an IBus workaround. The flow of events with IBus is that every time /* This is an IBus workaround. The flow of events with IBus is that every time
@ -577,8 +551,6 @@ main (int argc, char **argv)
muted_log_handler, NULL); muted_log_handler, NULL);
g_log_set_handler ("tp-glib/proxy", G_LOG_LEVEL_DEBUG, g_log_set_handler ("tp-glib/proxy", G_LOG_LEVEL_DEBUG,
muted_log_handler, NULL); muted_log_handler, NULL);
g_log_set_handler ("GnomeShellBrowserPlugin", G_LOG_LEVEL_DEBUG,
muted_log_handler, NULL);
/* Turn on telepathy-glib debugging but filter it out in /* Turn on telepathy-glib debugging but filter it out in
* default_log_handler. This handler also exposes all the logs over D-Bus * default_log_handler. This handler also exposes all the logs over D-Bus

View File

@ -73,6 +73,8 @@ main(int argc, char **argv)
gsize len; gsize len;
int code; int code;
g_thread_init (NULL);
gtk_init (&argc, &argv); gtk_init (&argc, &argv);
clutter_x11_set_display (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ())); clutter_x11_set_display (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()));

View File

@ -30,6 +30,9 @@ typedef enum {
typedef struct { typedef struct {
guint refcount; guint refcount;
/* Last time the user interacted with any of this application's windows */
guint32 last_user_time;
/* Signal connection to dirty window sort list on workspace changes */ /* Signal connection to dirty window sort list on workspace changes */
guint workspace_switch_id; guint workspace_switch_id;
@ -506,6 +509,15 @@ shell_app_activate_window (ShellApp *app,
window = most_recent_transient; window = most_recent_transient;
if (!shell_window_tracker_is_window_interesting (window))
{
/* We won't get notify::user-time signals for uninteresting windows,
* which means that an app's last_user_time won't get updated.
* Update it here instead.
*/
app->running_state->last_user_time = timestamp;
}
if (active != workspace) if (active != workspace)
meta_workspace_activate_with_focus (workspace, window, timestamp); meta_workspace_activate_with_focus (workspace, window, timestamp);
else else
@ -740,23 +752,6 @@ shell_app_is_on_workspace (ShellApp *app,
return FALSE; return FALSE;
} }
static int
shell_app_get_last_user_time (ShellApp *app)
{
GSList *iter;
int last_user_time;
last_user_time = 0;
if (app->running_state != NULL)
{
for (iter = app->running_state->windows; iter; iter = iter->next)
last_user_time = MAX (last_user_time, meta_window_get_user_time (iter->data));
}
return last_user_time;
}
/** /**
* shell_app_compare: * shell_app_compare:
* @app: * @app:
@ -796,8 +791,7 @@ shell_app_compare (ShellApp *app,
return -1; return -1;
else if (!app->running_state->windows && other->running_state->windows) else if (!app->running_state->windows && other->running_state->windows)
return 1; return 1;
return other->running_state->last_user_time - app->running_state->last_user_time;
return shell_app_get_last_user_time (other) - shell_app_get_last_user_time (app);
} }
return 0; return 0;
@ -877,6 +871,8 @@ shell_app_on_user_time_changed (MetaWindow *window,
{ {
g_assert (app->running_state != NULL); g_assert (app->running_state != NULL);
app->running_state->last_user_time = meta_window_get_user_time (window);
/* Ideally we don't want to emit windows-changed if the sort order /* Ideally we don't want to emit windows-changed if the sort order
* isn't actually changing. This check catches most of those. * isn't actually changing. This check catches most of those.
*/ */
@ -907,6 +903,8 @@ void
_shell_app_add_window (ShellApp *app, _shell_app_add_window (ShellApp *app,
MetaWindow *window) MetaWindow *window)
{ {
guint32 user_time;
if (app->running_state && g_slist_find (app->running_state->windows, window)) if (app->running_state && g_slist_find (app->running_state->windows, window))
return; return;
@ -920,6 +918,10 @@ _shell_app_add_window (ShellApp *app,
g_signal_connect (window, "unmanaged", G_CALLBACK(shell_app_on_unmanaged), app); g_signal_connect (window, "unmanaged", G_CALLBACK(shell_app_on_unmanaged), app);
g_signal_connect (window, "notify::user-time", G_CALLBACK(shell_app_on_user_time_changed), app); g_signal_connect (window, "notify::user-time", G_CALLBACK(shell_app_on_user_time_changed), app);
user_time = meta_window_get_user_time (window);
if (user_time > app->running_state->last_user_time)
app->running_state->last_user_time = user_time;
if (app->state != SHELL_APP_STATE_STARTING) if (app->state != SHELL_APP_STATE_STARTING)
shell_app_state_transition (app, SHELL_APP_STATE_RUNNING); shell_app_state_transition (app, SHELL_APP_STATE_RUNNING);
@ -1079,7 +1081,6 @@ shell_app_launch (ShellApp *app,
gboolean ret; gboolean ret;
ShellGlobal *global; ShellGlobal *global;
MetaScreen *screen; MetaScreen *screen;
GdkDisplay *gdisplay;
if (startup_id) if (startup_id)
*startup_id = NULL; *startup_id = NULL;
@ -1098,7 +1099,6 @@ shell_app_launch (ShellApp *app,
global = shell_global_get (); global = shell_global_get ();
screen = shell_global_get_screen (global); screen = shell_global_get_screen (global);
gdisplay = gdk_screen_get_display (shell_global_get_gdk_screen (global));
if (timestamp == 0) if (timestamp == 0)
timestamp = shell_global_get_current_time (global); timestamp = shell_global_get_current_time (global);
@ -1106,7 +1106,7 @@ shell_app_launch (ShellApp *app,
if (workspace < 0) if (workspace < 0)
workspace = meta_screen_get_active_workspace_index (screen); workspace = meta_screen_get_active_workspace_index (screen);
context = gdk_display_get_app_launch_context (gdisplay); context = gdk_app_launch_context_new ();
gdk_app_launch_context_set_timestamp (context, timestamp); gdk_app_launch_context_set_timestamp (context, timestamp);
gdk_app_launch_context_set_desktop (context, workspace); gdk_app_launch_context_set_desktop (context, workspace);
@ -1220,13 +1220,12 @@ shell_app_init_search_data (ShellApp *app)
/** /**
* shell_app_compare_by_name: * shell_app_compare_by_name:
* @app: One app * @app:
* @other: The other app * @other:
* *
* Order two applications by name. * Order two applications by name.
* *
* Returns: -1, 0, or 1; suitable for use as a comparison function * Returns: -1, 0, or 1; suitable for use as a comparison function for e.g. g_slist_sort()
* for e.g. g_slist_sort()
*/ */
int int
shell_app_compare_by_name (ShellApp *app, ShellApp *other) shell_app_compare_by_name (ShellApp *app, ShellApp *other)

143
src/shell-arrow.c Normal file
View File

@ -0,0 +1,143 @@
/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
#include "config.h"
#include "shell-arrow.h"
#include <clutter/clutter.h>
#include <gtk/gtk.h>
#include <cairo.h>
enum {
PROP_0,
PROP_DIRECTION
};
G_DEFINE_TYPE(ShellArrow, shell_arrow, CLUTTER_TYPE_CAIRO_TEXTURE);
struct _ShellArrowPrivate {
GtkArrowType direction;
};
static void shell_arrow_redraw (ShellArrow *self);
static void
shell_arrow_set_property (GObject *object,
guint prop_id,
const GValue *value,
GParamSpec *pspec)
{
ShellArrow *self = SHELL_ARROW (object);
switch (prop_id)
{
case PROP_DIRECTION:
self->priv->direction = g_value_get_enum (value);
break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break;
}
shell_arrow_redraw (self);
}
static void
shell_arrow_get_property (GObject *object,
guint prop_id,
GValue *value,
GParamSpec *pspec)
{
ShellArrow *self = SHELL_ARROW (object);
switch (prop_id)
{
case PROP_DIRECTION:
g_value_set_enum (value, self->priv->direction);
break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break;
}
}
static void
shell_arrow_redraw (ShellArrow *self)
{
cairo_t *cr;
guint width, height;
g_object_get (G_OBJECT (self), "surface-width", &width,
"surface-height", &height,
NULL);
if (width == 0)
return;
cr = clutter_cairo_texture_create (CLUTTER_CAIRO_TEXTURE (self));
cairo_set_source_rgb (cr, 1, 1, 1);
switch (self->priv->direction)
{
case GTK_ARROW_RIGHT:
cairo_move_to (cr, 0, 0);
cairo_line_to (cr, width, height*0.5);
cairo_line_to (cr, 0, height);
break;
case GTK_ARROW_LEFT:
cairo_move_to (cr, width, 0);
cairo_line_to (cr, 0, height*0.5);
cairo_line_to (cr, width, height);
break;
case GTK_ARROW_UP:
cairo_move_to (cr, 0, height);
cairo_line_to (cr, width*0.5, 0);
cairo_line_to (cr, width, height);
break;
case GTK_ARROW_DOWN:
cairo_move_to (cr, 0, 0);
cairo_line_to (cr, width*0.5, height);
cairo_line_to (cr, width, height);
break;
case GTK_ARROW_NONE:
default:
break;
}
cairo_close_path (cr);
cairo_fill (cr);
cairo_destroy (cr);
}
static void
shell_arrow_class_init (ShellArrowClass *klass)
{
GObjectClass *object_class = G_OBJECT_CLASS (klass);
g_type_class_add_private (klass, sizeof (ShellArrowPrivate));
object_class->get_property = shell_arrow_get_property;
object_class->set_property = shell_arrow_set_property;
g_object_class_install_property (object_class,
PROP_DIRECTION,
g_param_spec_enum ("direction",
"Direction",
"Direction",
GTK_TYPE_ARROW_TYPE,
GTK_ARROW_NONE,
G_PARAM_READWRITE));
}
static void
shell_arrow_init (ShellArrow *actor)
{
actor->priv = G_TYPE_INSTANCE_GET_PRIVATE (actor, SHELL_TYPE_ARROW,
ShellArrowPrivate);
g_signal_connect (actor, "notify::surface-width", G_CALLBACK (shell_arrow_redraw), NULL);
}

34
src/shell-arrow.h Normal file
View File

@ -0,0 +1,34 @@
/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
#ifndef __SHELL_ARROW_H__
#define __SHELL_ARROW_H__
#include <clutter/clutter.h>
#include <gtk/gtk.h>
#define SHELL_TYPE_ARROW (shell_arrow_get_type ())
#define SHELL_ARROW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SHELL_TYPE_ARROW, ShellArrow))
#define SHELL_ARROW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SHELL_TYPE_ARROW, ShellArrowClass))
#define SHELL_IS_ARROW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SHELL_TYPE_ARROW))
#define SHELL_IS_ARROW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SHELL_TYPE_ARROW))
#define SHELL_ARROW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SHELL_TYPE_ARROW, ShellArrowClass))
typedef struct _ShellArrow ShellArrow;
typedef struct _ShellArrowClass ShellArrowClass;
typedef struct _ShellArrowPrivate ShellArrowPrivate;
struct _ShellArrow
{
ClutterCairoTexture parent;
ShellArrowPrivate *priv;
};
struct _ShellArrowClass
{
ClutterCairoTextureClass parent_class;
};
GType shell_arrow_get_type (void) G_GNUC_CONST;
#endif /* __SHELL_ARROW_H__ */

View File

@ -52,17 +52,16 @@ shell_doc_system_get_all (ShellDocSystem *self)
} }
/** /**
* shell_doc_system_lookup_by_uri: * @self: A #ShellDocSystem
* @system: A #ShellDocSystem * @uri: Url
* @uri: URI
* *
* Returns: (transfer none): Recent file info corresponding to given @uri * Returns: (transfer none): Recent file info corresponding to given @uri
*/ */
GtkRecentInfo * GtkRecentInfo *
shell_doc_system_lookup_by_uri (ShellDocSystem *system, shell_doc_system_lookup_by_uri (ShellDocSystem *self,
const char *uri) const char *uri)
{ {
return g_hash_table_lookup (system->priv->infos_by_uri, uri); return g_hash_table_lookup (self->priv->infos_by_uri, uri);
} }
static gboolean static gboolean

View File

@ -636,7 +636,6 @@ shell_global_set_cursor (ShellGlobal *global,
break; break;
case SHELL_CURSOR_POINTING_HAND: case SHELL_CURSOR_POINTING_HAND:
cursor_type = GDK_HAND2; cursor_type = GDK_HAND2;
break;
case SHELL_CURSOR_DND_UNSUPPORTED_TARGET: case SHELL_CURSOR_DND_UNSUPPORTED_TARGET:
cursor_type = GDK_X_CURSOR; cursor_type = GDK_X_CURSOR;
break; break;
@ -648,7 +647,7 @@ shell_global_set_cursor (ShellGlobal *global,
gdk_window_set_cursor (global->stage_gdk_window, cursor); gdk_window_set_cursor (global->stage_gdk_window, cursor);
g_object_unref (cursor); gdk_cursor_unref (cursor);
} }
/** /**
@ -857,18 +856,18 @@ _shell_global_get_gjs_context (ShellGlobal *global)
* overview mode or the "looking glass" debug overlay, that block * overview mode or the "looking glass" debug overlay, that block
* application and normal key shortcuts. * application and normal key shortcuts.
* *
* Returns: %TRUE if we succesfully entered the mode. %FALSE if we couldn't * Returns value: %TRUE if we succesfully entered the mode. %FALSE if we couldn't
* enter the mode. Failure may occur because an application has the pointer * enter the mode. Failure may occur because an application has the pointer
* or keyboard grabbed, because Mutter is in a mode itself like moving a * or keyboard grabbed, because Mutter is in a mode itself like moving a
* window or alt-Tab window selection, or because shell_global_begin_modal() * window or alt-Tab window selection, or because shell_global_begin_modal()
* was previouly called. * was previouly called.
*/ */
gboolean gboolean
shell_global_begin_modal (ShellGlobal *global, shell_global_begin_modal (ShellGlobal *global,
guint32 timestamp, guint32 timestamp)
MetaModalOptions options)
{ {
return meta_plugin_begin_modal (global->plugin, global->stage_xwindow, None, options, timestamp); return meta_plugin_begin_modal (global->plugin, global->stage_xwindow,
None, 0, timestamp);
} }
/** /**
@ -1182,13 +1181,12 @@ shell_global_get_memory_info (ShellGlobal *global,
JSContext *context; JSContext *context;
gint64 now; gint64 now;
memset (meminfo, 0, sizeof (meminfo));
#ifdef HAVE_MALLINFO #ifdef HAVE_MALLINFO
{ {
struct mallinfo info = mallinfo (); struct mallinfo info = mallinfo ();
meminfo->glibc_uordblks = info.uordblks; meminfo->glibc_uordblks = info.uordblks;
} }
#else
meminfo->glibc_uordblks = 0;
#endif #endif
context = gjs_context_get_native_context (global->js_context); context = gjs_context_get_native_context (global->js_context);
@ -1282,17 +1280,9 @@ shell_global_get_pointer (ShellGlobal *global,
int *y, int *y,
ClutterModifierType *mods) ClutterModifierType *mods)
{ {
GdkDeviceManager *gmanager;
GdkDevice *gdevice;
GdkScreen *gscreen;
GdkModifierType raw_mods; GdkModifierType raw_mods;
gmanager = gdk_display_get_device_manager (global->gdk_display); gdk_display_get_pointer (global->gdk_display, NULL, x, y, &raw_mods);
gdevice = gdk_device_manager_get_client_pointer (gmanager);
gdk_device_get_position (gdevice, &gscreen, x, y);
gdk_device_get_state (gdevice,
gdk_screen_get_root_window (gscreen),
NULL, &raw_mods);
*mods = raw_mods & GDK_MODIFIER_MASK; *mods = raw_mods & GDK_MODIFIER_MASK;
} }
@ -1309,18 +1299,9 @@ shell_global_sync_pointer (ShellGlobal *global)
{ {
int x, y; int x, y;
GdkModifierType mods; GdkModifierType mods;
GdkDeviceManager *gmanager;
GdkDevice *gdevice;
GdkScreen *gscreen;
ClutterMotionEvent event; ClutterMotionEvent event;
gmanager = gdk_display_get_device_manager (global->gdk_display); gdk_display_get_pointer (global->gdk_display, NULL, &x, &y, &mods);
gdevice = gdk_device_manager_get_client_pointer (gmanager);
gdk_device_get_position (gdevice, &gscreen, &x, &y);
gdk_device_get_state (gdevice,
gdk_screen_get_root_window (gscreen),
NULL, &mods);
event.type = CLUTTER_MOTION; event.type = CLUTTER_MOTION;
event.time = shell_global_get_current_time (global); event.time = shell_global_get_current_time (global);
@ -1422,7 +1403,7 @@ shell_global_create_app_launch_context (ShellGlobal *global)
{ {
GdkAppLaunchContext *context; GdkAppLaunchContext *context;
context = gdk_display_get_app_launch_context (global->gdk_display); context = gdk_app_launch_context_new ();
gdk_app_launch_context_set_timestamp (context, shell_global_get_current_time (global)); gdk_app_launch_context_set_timestamp (context, shell_global_get_current_time (global));
// Make sure that the app is opened on the current workspace even if // Make sure that the app is opened on the current workspace even if
@ -1964,7 +1945,7 @@ shell_global_screenshot_window (ShellGlobal *global,
* will enable a login dialog and run in a more confined * will enable a login dialog and run in a more confined
* way. This type is suitable for the display manager. * way. This type is suitable for the display manager.
* *
* Returns: the type of session gnome-shell is providing. * Returns the type of session gnome-shell is providing.
*/ */
ShellSessionType ShellSessionType
shell_global_get_session_type (ShellGlobal *global) shell_global_get_session_type (ShellGlobal *global)

View File

@ -39,8 +39,7 @@ guint32 shell_global_get_current_time (ShellGlobal *global);
/* Input/event handling */ /* Input/event handling */
gboolean shell_global_begin_modal (ShellGlobal *global, gboolean shell_global_begin_modal (ShellGlobal *global,
guint32 timestamp, guint32 timestamp);
MetaModalOptions options);
void shell_global_end_modal (ShellGlobal *global, void shell_global_end_modal (ShellGlobal *global,
guint32 timestamp); guint32 timestamp);

View File

@ -136,11 +136,10 @@ shell_gtk_embed_get_preferred_width (ClutterActor *actor,
if (embed->priv->window if (embed->priv->window
&& gtk_widget_get_visible (GTK_WIDGET (embed->priv->window))) && gtk_widget_get_visible (GTK_WIDGET (embed->priv->window)))
{ {
GtkRequisition min_req, natural_req; GtkRequisition requisition;
gtk_widget_get_preferred_size (GTK_WIDGET (embed->priv->window), &min_req, &natural_req); gtk_widget_size_request (GTK_WIDGET (embed->priv->window), &requisition);
*min_width_p = min_req.width; *min_width_p = *natural_width_p = requisition.width;
*natural_width_p = natural_req.width;
} }
else else
*min_width_p = *natural_width_p = 0; *min_width_p = *natural_width_p = 0;
@ -157,11 +156,10 @@ shell_gtk_embed_get_preferred_height (ClutterActor *actor,
if (embed->priv->window if (embed->priv->window
&& gtk_widget_get_visible (GTK_WIDGET (embed->priv->window))) && gtk_widget_get_visible (GTK_WIDGET (embed->priv->window)))
{ {
GtkRequisition min_req, natural_req; GtkRequisition requisition;
gtk_widget_get_preferred_size (GTK_WIDGET (embed->priv->window), &min_req, &natural_req); gtk_widget_size_request (GTK_WIDGET (embed->priv->window), &requisition);
*min_height_p = min_req.height; *min_height_p = *natural_height_p = requisition.height;
*natural_height_p = natural_req.height;
} }
else else
*min_height_p = *natural_height_p = 0; *min_height_p = *natural_height_p = 0;

View File

@ -619,9 +619,9 @@ static const GMarkupParser mobile_parser = {
* @out_ccs: (out) (allow-none): (element-type utf8 utf8): a #GHashTable containing * @out_ccs: (out) (allow-none): (element-type utf8 utf8): a #GHashTable containing
* country codes * country codes
* *
* Returns: (element-type utf8 GList) (transfer container): a * Returns: (element-type utf8 GList<Shell.MobileProvider>) (transfer container): a
* hash table where keys are country names #gchar, values are a #GSList * hash table where keys are country names 'char *', values are a 'GSList *'
* of #ShellMobileProvider. Everything is destroyed with g_hash_table_destroy(). * of 'ShellMobileProvider *'. Everything is destroyed with g_hash_table_destroy ().
*/ */
GHashTable * GHashTable *
shell_mobile_providers_parse (GHashTable **out_ccs) shell_mobile_providers_parse (GHashTable **out_ccs)

View File

@ -590,7 +590,7 @@ shell_perf_log_update_statistic_x (ShellPerfLog *perf_log,
} }
/** /**
* shell_perf_log_add_statistics_callback: * shell_perf_log_add statistics_callback:
* @perf_log: a #ShellPerfLog * @perf_log: a #ShellPerfLog
* @callback: function to call before recording statistics * @callback: function to call before recording statistics
* @user_data: data to pass to @callback * @user_data: data to pass to @callback

View File

@ -10,7 +10,6 @@ struct _ShellRecorderSrc
{ {
GstPushSrc parent; GstPushSrc parent;
GMutex mutex_data;
GMutex *mutex; GMutex *mutex;
GstCaps *caps; GstCaps *caps;
@ -41,8 +40,7 @@ shell_recorder_src_init (ShellRecorderSrc *src,
ShellRecorderSrcClass *klass) ShellRecorderSrcClass *klass)
{ {
src->queue = g_async_queue_new (); src->queue = g_async_queue_new ();
src->mutex = &src->mutex_data; src->mutex = g_mutex_new ();
g_mutex_init (src->mutex);
} }
static void static void
@ -142,7 +140,7 @@ shell_recorder_src_finalize (GObject *object)
shell_recorder_src_set_caps (src, NULL); shell_recorder_src_set_caps (src, NULL);
g_async_queue_unref (src->queue); g_async_queue_unref (src->queue);
g_mutex_clear (src->mutex); g_mutex_free (src->mutex);
G_OBJECT_CLASS (parent_class)->finalize (object); G_OBJECT_CLASS (parent_class)->finalize (object);
} }
@ -282,7 +280,6 @@ plugin_init (GstPlugin *plugin)
/** /**
* shell_recorder_src_register: * shell_recorder_src_register:
*
* Registers a plugin holding our single element to use privately in * Registers a plugin holding our single element to use privately in
* this application. Can safely be called multiple times. * this application. Can safely be called multiple times.
*/ */

View File

@ -341,7 +341,7 @@ recorder_update_memory_used (ShellRecorder *recorder,
* seems like a bad idea. * seems like a bad idea.
*/ */
recorder->only_paint = TRUE; recorder->only_paint = TRUE;
clutter_stage_ensure_redraw (recorder->stage); clutter_redraw (recorder->stage);
recorder->only_paint = FALSE; recorder->only_paint = FALSE;
} }
} }

View File

@ -7,8 +7,8 @@
G_BEGIN_DECLS G_BEGIN_DECLS
/** /**
* SECTION:shell-recorder * SECTION:ShellRecorder
* @short_description: Record from a #ClutterStage * short_description: Record from a #ClutterStage
* *
* The #ShellRecorder object is used to make recordings ("screencasts") * The #ShellRecorder object is used to make recordings ("screencasts")
* of a #ClutterStage. Recording is done via #GStreamer. The default is * of a #ClutterStage. Recording is done via #GStreamer. The default is

View File

@ -75,6 +75,8 @@ shell_util_get_file_display_name_if_mount (GFile *file)
return ret; return ret;
} }
#define HOME_NAME_SCHEMA "org.gnome.nautilus.desktop"
#define HOME_NAME_KEY "home-icon-name"
static char * static char *
shell_util_get_file_display_for_common_files (GFile *file) shell_util_get_file_display_for_common_files (GFile *file)
{ {
@ -83,11 +85,26 @@ shell_util_get_file_display_for_common_files (GFile *file)
compare = g_file_new_for_path (g_get_home_dir ()); compare = g_file_new_for_path (g_get_home_dir ());
if (g_file_equal (file, compare)) if (g_file_equal (file, compare))
{ {
GSettings *settings;
char *name;
g_object_unref (compare); g_object_unref (compare);
/* Translators: this is the same string as the one found in
* nautilus */ settings = g_settings_new (HOME_NAME_SCHEMA);
return g_strdup (_("Home")); name = g_settings_get_string (settings, HOME_NAME_KEY);
g_object_unref (settings);
if (!(name && name[0]))
{
g_free (name);
return g_strdup (_("Home Folder"));
}
else
{
return name;
}
} }
g_object_unref (compare);
compare = g_file_new_for_path ("/"); compare = g_file_new_for_path ("/");
if (g_file_equal (file, compare)) if (g_file_equal (file, compare))

View File

@ -639,7 +639,7 @@ shell_window_tracker_get_window_app (ShellWindowTracker *tracker,
/** /**
* shell_window_tracker_get_app_from_pid: * shell_window_tracker_get_app_from_pid:
* @tracker: A #ShellAppSystem * @self; A #ShellAppSystem
* @pid: A Unix process identifier * @pid: A Unix process identifier
* *
* Look up the application corresponding to a process. * Look up the application corresponding to a process.
@ -647,7 +647,7 @@ shell_window_tracker_get_window_app (ShellWindowTracker *tracker,
* Returns: (transfer none): A #ShellApp, or %NULL if none * Returns: (transfer none): A #ShellApp, or %NULL if none
*/ */
ShellApp * ShellApp *
shell_window_tracker_get_app_from_pid (ShellWindowTracker *tracker, shell_window_tracker_get_app_from_pid (ShellWindowTracker *self,
int pid) int pid)
{ {
GSList *running = shell_app_system_get_running (shell_app_system_get_default()); GSList *running = shell_app_system_get_running (shell_app_system_get_default());

View File

@ -8,8 +8,8 @@
#include <X11/extensions/Xfixes.h> #include <X11/extensions/Xfixes.h>
/** /**
* SECTION:shell-xfixes-cursor * SECTION:ShellXFixesCursor
* @short_description: Capture/manipulate system mouse cursor. * short_description: Capture/manipulate system mouse cursor.
* *
* The #ShellXFixesCursor object uses the XFixes extension to show/hide the * The #ShellXFixesCursor object uses the XFixes extension to show/hide the
* the system mouse pointer, to grab its image as it changes, and emit a * the system mouse pointer, to grab its image as it changes, and emit a

View File

@ -20,7 +20,7 @@
/** /**
* SECTION:st-group * SECTION:st-group
* @see_also:#ClutterGroup * SECTION:clutter-group
* @short_description: A fixed layout container * @short_description: A fixed layout container
* *
* A #StGroup is an Actor which contains multiple child actors positioned * A #StGroup is an Actor which contains multiple child actors positioned

View File

@ -174,6 +174,20 @@ st_icon_dispose (GObject *gobject)
G_OBJECT_CLASS (st_icon_parent_class)->dispose (gobject); G_OBJECT_CLASS (st_icon_parent_class)->dispose (gobject);
} }
static void
st_icon_finalize (GObject *gobject)
{
StIconPrivate *priv = ST_ICON (gobject)->priv;
if (priv->icon_name)
{
g_free (priv->icon_name);
priv->icon_name = NULL;
}
G_OBJECT_CLASS (st_icon_parent_class)->finalize (gobject);
}
static void static void
st_icon_get_preferred_height (ClutterActor *actor, st_icon_get_preferred_height (ClutterActor *actor,
gfloat for_width, gfloat for_width,
@ -317,6 +331,7 @@ st_icon_class_init (StIconClass *klass)
object_class->get_property = st_icon_get_property; object_class->get_property = st_icon_get_property;
object_class->set_property = st_icon_set_property; object_class->set_property = st_icon_set_property;
object_class->dispose = st_icon_dispose; object_class->dispose = st_icon_dispose;
object_class->finalize = st_icon_finalize;
actor_class->get_preferred_height = st_icon_get_preferred_height; actor_class->get_preferred_height = st_icon_get_preferred_height;
actor_class->get_preferred_width = st_icon_get_preferred_width; actor_class->get_preferred_width = st_icon_get_preferred_width;

View File

@ -25,7 +25,7 @@
*/ */
/** /**
* SECTION:st-im-text * SECTION:StIMText
* @short_description: Text widget with input method support * @short_description: Text widget with input method support
* @stability: Unstable * @stability: Unstable
* @see_also: #ClutterText * @see_also: #ClutterText

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