Compare commits

..

1 Commits

Author SHA1 Message Date
Ray Strode
832240a80b shell-global: import environment from $XDG_RUNTIME_DIR/gnome/environment
environment variables are normally propagated from parent to child, but
they're used to convey information that's typically scoped to the
session. gnome-shell needs to know about environment variables that
are set in the session after it's already been started.

gnome-session now exports its environment to
$XDG_RUNTIME_DIR/gnome/environment so that programs in the session can
pick up on the latest environment variables.

This commit changes gnome-shell to propagate the gnome-session's latest
environment when launching new children.
2015-09-16 21:14:48 -04:00
182 changed files with 14216 additions and 18019 deletions

6
.gitignore vendored
View File

@@ -17,8 +17,10 @@ config.status
config
configure
data/50-gnome-shell-*.xml
data/org.gnome.Shell.desktop
data/org.gnome.Shell.desktop.in
data/gnome-shell.desktop
data/gnome-shell.desktop.in
data/gnome-shell-wayland.desktop
data/gnome-shell-wayland.desktop.in
data/gnome-shell-extension-prefs.desktop
data/gnome-shell-extension-prefs.desktop.in
data/gnome-shell-theme.gresource

97
NEWS
View File

@@ -1,100 +1,3 @@
3.19.4
======
* gdm: Do not allow bypassing disabled Sign In button [Michael; #746180]
* Style week numbers in calendar [Jakub; #683245]
* Misc. bug fixes [Christophe, Jakub, Rui; #759708, #760577, #760945]
Contributors:
Michael Catanzaro, Marek Černocký, Christophe Fergeau, Rui Matos,
Jakub Steiner
Translations:
Aurimas Černius [lt], Enrico Nicoletto [pt_BR], Andika Triwidada [id],
Mario Blättermann [de], Marek Černocký [cs], Kjartan Maraas [nb],
Muhammet Kara [tr], Stas Solovey [ru]
3.19.3
======
* Fix thumbnail scaling in window switcher on HiDPI [Florian; #758676]
* Update animated backgrounds on timezone changes [Florian; #758939]
* loginDialog: Update user list on user changes [Michael; #758568]
* Fix touch interaction on wayland [Carlos; #756748]
Contributors:
Michael Catanzaro, Carlos Garnacho, Kalev Lember, Florian Müllner
Translations:
Daniel Korostil [uk], Muhammet Kara [tr], Dušan Kazik [sk],
Baurzhan Muftakhidinov [kk], Marek Černocký [cs]
3.19.2
======
* Make gnome-shell DBus activatable [Ray; #741666]
* Fix browser plugin crash in Firefox [Carlos; #737932, #757940]
* Optionally show battery percentage in system status area [Bastien; #735771]
* Misc. bug fixes [Kalev, Florian, Bastien; #757418, #757668, #757779, #757816,
#745626, #758220]
Contributors:
Michael Biebl, Michael Catanzaro, Piotr Drąg, Carlos Garcia Campos,
Kalev Lember, Florian Müllner, Bastien Nocera, Ray Strode
Translations:
Pedro Albuquerque [pt], liushuyu [zh_CN], Yosef Or Boczko [he],
Jiri Grönroos [fi], Kjartan Maraas [nb], GNOME Translation Robot [gd],
Daniel Mustieles [es], Marek Černocký [cs], Kristjan SCHMIDT [eo],
Stas Solovey [ru]
3.19.1
======
* Respect text-scaling factor under wayland [Owen; #756447]
* Show the Bluetooth submenu when there were setup devices [Bastien; #723848]
* Misc. bug fixes [Florian, Cosimo, Rui, Ray, Owen, Jakub, Bastien;
#756697, #756714, #756605, #754814, #738942, #756983, #756925,
#757011, #673235, #757150]
Contributors:
Cosimo Cecchi, Rui Matos, Florian Müllner, Bastien Nocera, Jakub Steiner,
Ray Strode, Owen W. Taylor
Translations:
Kjartan Maraas [nb], Khaled Hosny [ar], Balázs Meskó [hu],
Daniel Șerbănescu [ro], Marek Černocký [cs]
3.18.1
======
* Fix screen freezes when a notification is pushed [Carlos; #755425]
* Fix overzealous ellipsization in system status menu [Adel, Florian; #708472]
* Hide app menu when disabled by setting [Florian; #745919]
* Fix lightbox effect when animations are disabled [Rui; #755827]
* Do not mark hotplug notifications as critical [Florian; #657923]
* Fix icons getting cut off in dash [Florian; #745649]
* Animate fullscreen/unfullscreen operations [Cosimo; #707248]
* Misc. bug fixes [Florian, Owen; #748919, #674799, #754581]
Contributors:
Emmanuele Bassi, Michael Catanzaro, Cosimo Cecchi, Matthias Clasen,
Adel Gadllah, Carlos Garnacho, Ekaterina Gerasimova, Rui Matos,
Florian Müllner, Owen W. Taylor
Translations:
Марко Костић [sr], Милош Поповић [sr@latin], Khaled Hosny [ar],
Trần Ngọc Quân [vi], Petr Kovar [cs], Alexandre Franke [fr],
Fran Dieguez [gl], Anders Jonsson [sv], Piotr Drąg [pl], Dušan Kazik [sk],
Milo Casagrande [it], Changwoo Ryu [ko], Stas Solovey [ru],
Rafael Fontenelle [pt_BR], Tom Tryfonidis [el], Aurimas Černius [lt],
Seán de Búrca [ga], Christian Kirbach [de], Jiri Grönroos [fi],
Pedro Albuquerque [pt], Baurzhan Muftakhidinov [kk], Daniel Mustieles [es],
Marek Černocký [cs], Ask Hjorth Larsen [da], Inaki Larranaga Murgoitio [eu]
3.18.0
======
Translations:
Sendy Aditya Suryana [id], Kris Thomsen [da], Seán de Búrca [ga],
Andika Triwidada [id], Enrico Nicoletto [pt_BR], Anders Jonsson [sv],
Rūdolfs Mazurs [lv]
3.17.92
=======
* Fix race when loading multiple background animations [Josselin; #741453]

View File

@@ -3,10 +3,7 @@ mozillalibdir = $(BROWSER_PLUGIN_DIR)
mozillalib_LTLIBRARIES = libgnome-shell-browser-plugin.la
# Browsers can unload and reload the module while browsing, which is not supported by GObject.
# We pass -Wl,-z,nodelete to the linker to ensure the module is never unloaded.
# https://bugzilla.gnome.org/show_bug.cgi?id=737932
libgnome_shell_browser_plugin_la_LDFLAGS = -module -avoid-version -no-undefined -Wl,-z,nodelete
libgnome_shell_browser_plugin_la_LDFLAGS = -module -avoid-version -no-undefined
libgnome_shell_browser_plugin_la_LIBADD = \
$(BROWSER_PLUGIN_LIBS)

View File

@@ -33,16 +33,20 @@
#include <json-glib/json-glib.h>
#define ORIGIN "extensions.gnome.org"
#define PLUGIN_NAME "GNOME Shell Integration"
#define PLUGIN_DESCRIPTION "This plugin provides integration with GNOME Shell " \
#define PLUGIN_NAME "Gnome Shell Integration"
#define PLUGIN_DESCRIPTION "This plugin provides integration with Gnome Shell " \
"for live extension enabling and disabling. " \
"It can be used only by extensions.gnome.org"
#define PLUGIN_MIME_STRING "application/x-gnome-shell-integration::GNOME Shell Integration Dummy Content-Type";
#define PLUGIN_MIME_STRING "application/x-gnome-shell-integration::Gnome Shell Integration Dummy Content-Type";
#define PLUGIN_API_VERSION 5
#define EXTENSION_DISABLE_VERSION_CHECK_KEY "disable-extension-version-validation"
typedef struct {
GDBusProxy *proxy;
} PluginData;
static NPNetscapeFuncs funcs;
static inline gchar *
@@ -141,6 +145,121 @@ check_origin_and_protocol (NPP instance)
return ret;
}
/* =============== public entry points =================== */
NPError
NP_Initialize(NPNetscapeFuncs *pfuncs, NPPluginFuncs *plugin)
{
/* global initialization routine, called once when plugin
is loaded */
g_debug ("plugin loaded");
memcpy (&funcs, pfuncs, sizeof (funcs));
plugin->size = sizeof(NPPluginFuncs);
plugin->newp = NPP_New;
plugin->destroy = NPP_Destroy;
plugin->getvalue = NPP_GetValue;
plugin->setwindow = NPP_SetWindow;
return NPERR_NO_ERROR;
}
NPError
NP_Shutdown(void)
{
return NPERR_NO_ERROR;
}
const char*
NP_GetMIMEDescription(void)
{
return PLUGIN_MIME_STRING;
}
NPError
NP_GetValue(void *instance,
NPPVariable variable,
void *value)
{
switch (variable) {
case NPPVpluginNameString:
*(char**)value = PLUGIN_NAME;
break;
case NPPVpluginDescriptionString:
*(char**)value = PLUGIN_DESCRIPTION;
break;
default:
;
}
return NPERR_NO_ERROR;
}
NPError
NPP_New(NPMIMEType mimetype,
NPP instance,
uint16_t mode,
int16_t argc,
char **argn,
char **argv,
NPSavedData *saved)
{
/* instance initialization function */
PluginData *data;
GError *error = NULL;
g_debug ("plugin created");
if (!check_origin_and_protocol (instance))
return NPERR_GENERIC_ERROR;
data = g_slice_new (PluginData);
instance->pdata = data;
data->proxy = g_dbus_proxy_new_for_bus_sync (G_BUS_TYPE_SESSION,
G_DBUS_PROXY_FLAGS_NONE,
NULL, /* interface info */
"org.gnome.Shell",
"/org/gnome/Shell",
"org.gnome.Shell.Extensions",
NULL, /* GCancellable */
&error);
if (!data->proxy)
{
/* ignore error if the shell is not running, otherwise warn */
if (error->domain != G_DBUS_ERROR ||
error->code != G_DBUS_ERROR_NAME_HAS_NO_OWNER)
{
g_warning ("Failed to set up Shell proxy: %s", error->message);
}
g_clear_error (&error);
return NPERR_GENERIC_ERROR;
}
g_debug ("plugin created successfully");
return NPERR_NO_ERROR;
}
NPError
NPP_Destroy(NPP instance,
NPSavedData **saved)
{
/* instance finalization function */
PluginData *data = instance->pdata;
g_debug ("plugin destroyed");
g_object_unref (data->proxy);
g_slice_free (PluginData, data);
return NPERR_NO_ERROR;
}
/* =================== scripting interface =================== */
typedef struct {
@@ -211,18 +330,45 @@ static NPObject *
plugin_object_allocate (NPP instance,
NPClass *klass)
{
PluginObject *obj = (PluginObject *) funcs.memalloc (sizeof (PluginObject));
PluginData *data = instance->pdata;
PluginObject *obj = g_slice_new0 (PluginObject);
memset (obj, 0, sizeof (PluginObject));
obj->instance = instance;
obj->proxy = g_object_ref (data->proxy);
obj->settings = g_settings_new (SHELL_SCHEMA);
obj->signal_id = g_signal_connect (obj->proxy, "g-signal",
G_CALLBACK (on_shell_signal), obj);
return (NPObject*) obj;
obj->watch_name_id = g_bus_watch_name (G_BUS_TYPE_SESSION,
"org.gnome.Shell",
G_BUS_NAME_WATCHER_FLAGS_NONE,
on_shell_appeared,
NULL,
obj,
NULL);
g_debug ("plugin object created");
return (NPObject*)obj;
}
static void
plugin_object_deallocate (NPObject *npobj)
{
funcs.memfree (npobj);
PluginObject *obj = (PluginObject*)npobj;
g_signal_handler_disconnect (obj->proxy, obj->signal_id);
g_object_unref (obj->proxy);
if (obj->listener)
funcs.releaseobject (obj->listener);
if (obj->watch_name_id)
g_bus_unwatch_name (obj->watch_name_id);
g_debug ("plugin object destroyed");
g_slice_free (PluginObject, obj);
}
static inline gboolean
@@ -873,149 +1019,6 @@ init_methods_and_properties (void)
onextension_changed_id = funcs.getstringidentifier ("onchange");
}
/* =============== public entry points =================== */
NPError
NP_Initialize(NPNetscapeFuncs *pfuncs, NPPluginFuncs *plugin)
{
/* global initialization routine, called once when plugin
is loaded */
g_debug ("plugin loaded");
memcpy (&funcs, pfuncs, sizeof (funcs));
plugin->size = sizeof(NPPluginFuncs);
plugin->newp = NPP_New;
plugin->destroy = NPP_Destroy;
plugin->getvalue = NPP_GetValue;
plugin->setwindow = NPP_SetWindow;
plugin->event = NPP_HandleEvent;
return NPERR_NO_ERROR;
}
NPError
NP_Shutdown(void)
{
return NPERR_NO_ERROR;
}
const char*
NP_GetMIMEDescription(void)
{
return PLUGIN_MIME_STRING;
}
NPError
NP_GetValue(void *instance,
NPPVariable variable,
void *value)
{
switch (variable) {
case NPPVpluginNameString:
*(char**)value = PLUGIN_NAME;
break;
case NPPVpluginDescriptionString:
*(char**)value = PLUGIN_DESCRIPTION;
break;
default:
;
}
return NPERR_NO_ERROR;
}
NPError
NPP_New(NPMIMEType mimetype,
NPP instance,
uint16_t mode,
int16_t argc,
char **argn,
char **argv,
NPSavedData *saved)
{
/* instance initialization function */
PluginObject *obj;
GError *error = NULL;
g_debug ("plugin created");
if (!check_origin_and_protocol (instance))
return NPERR_GENERIC_ERROR;
/* set windowless mode */
funcs.setvalue(instance, NPPVpluginWindowBool, NULL);
g_debug ("creating scriptable object");
init_methods_and_properties ();
obj = (PluginObject *) funcs.createobject (instance, &plugin_class);
instance->pdata = obj;
obj->proxy = g_dbus_proxy_new_for_bus_sync (G_BUS_TYPE_SESSION,
G_DBUS_PROXY_FLAGS_NONE,
NULL, /* interface info */
"org.gnome.Shell",
"/org/gnome/Shell",
"org.gnome.Shell.Extensions",
NULL, /* GCancellable */
&error);
if (!obj->proxy)
{
/* ignore error if the shell is not running, otherwise warn */
if (!g_error_matches (error, G_DBUS_ERROR, G_DBUS_ERROR_NAME_HAS_NO_OWNER))
{
g_warning ("Failed to set up Shell proxy: %s", error->message);
}
g_clear_error (&error);
return NPERR_GENERIC_ERROR;
}
obj->settings = g_settings_new (SHELL_SCHEMA);
obj->signal_id = g_signal_connect (obj->proxy, "g-signal",
G_CALLBACK (on_shell_signal), obj);
obj->watch_name_id = g_bus_watch_name (G_BUS_TYPE_SESSION,
"org.gnome.Shell",
G_BUS_NAME_WATCHER_FLAGS_NONE,
on_shell_appeared,
NULL,
obj,
NULL);
g_debug ("plugin created successfully");
return NPERR_NO_ERROR;
}
NPError
NPP_Destroy(NPP instance,
NPSavedData **saved)
{
/* instance finalization function */
PluginObject *obj = (PluginObject *) instance->pdata;
if (!obj)
return NPERR_INVALID_INSTANCE_ERROR;
g_debug ("plugin destroyed");
g_signal_handler_disconnect (obj->proxy, obj->signal_id);
g_object_unref (obj->proxy);
if (obj->listener)
funcs.releaseobject (obj->listener);
if (obj->restart_listener)
funcs.releaseobject (obj->restart_listener);
if (obj->watch_name_id)
g_bus_unwatch_name (obj->watch_name_id);
funcs.releaseobject((NPObject *)obj);
return NPERR_NO_ERROR;
}
NPError
NPP_GetValue(NPP instance,
NPPVariable variable,
@@ -1026,10 +1029,13 @@ NPP_GetValue(NPP instance,
switch (variable) {
case NPPVpluginScriptableNPObject:
g_debug ("creating scriptable object");
if (!instance->pdata)
return NPERR_INVALID_INSTANCE_ERROR;
init_methods_and_properties ();
*(NPObject**)value = instance->pdata;
*(NPObject**)value = funcs.createobject (instance, &plugin_class);
break;
case NPPVpluginNeedsXEmbed:
*(bool *)value = TRUE;
break;
default:
@@ -1047,11 +1053,3 @@ NPP_SetWindow(NPP instance,
{
return NPERR_NO_ERROR;
}
int16_t
NPP_HandleEvent(NPP instance,
void *event)
{
/* Ignore the event */
return FALSE;
}

View File

@@ -1,6 +1,5 @@
AC_PREREQ(2.63)
AC_INIT([gnome-shell],[3.19.4],[https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-shell],[gnome-shell])
AX_IS_RELEASE([git-directory])
AC_INIT([gnome-shell],[3.17.92],[https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-shell],[gnome-shell])
AC_CONFIG_HEADERS([config.h])
AC_CONFIG_SRCDIR([src/shell-global.c])
@@ -77,7 +76,7 @@ AC_MSG_RESULT($enable_systemd)
CLUTTER_MIN_VERSION=1.21.5
GOBJECT_INTROSPECTION_MIN_VERSION=1.45.4
GJS_MIN_VERSION=1.39.0
MUTTER_MIN_VERSION=3.19.4
MUTTER_MIN_VERSION=3.17.92
GTK_MIN_VERSION=3.15.0
GIO_MIN_VERSION=2.45.3
LIBECAL_MIN_VERSION=3.5.3
@@ -117,9 +116,9 @@ PKG_CHECK_MODULES(GNOME_SHELL_JS, gio-2.0 gjs-internals-1.0 >= $GJS_MIN_VERSION)
PKG_CHECK_MODULES(ST, clutter-1.0 gtk+-3.0 libcroco-0.6 >= 0.6.8 x11)
PKG_CHECK_MODULES(SHELL_PERF_HELPER, gtk+-3.0 gio-2.0)
PKG_CHECK_MODULES(SHELL_HOTPLUG_SNIFFER, gio-2.0 gdk-pixbuf-2.0)
PKG_CHECK_MODULES(TRAY, clutter-1.0 gtk+-3.0)
PKG_CHECK_MODULES(TRAY, gtk+-3.0)
PKG_CHECK_MODULES(GVC, libpulse >= $PULSE_MIN_VERS libpulse-mainloop-glib gobject-2.0)
PKG_CHECK_MODULES(DESKTOP_SCHEMAS, gsettings-desktop-schemas >= 3.19.2)
PKG_CHECK_MODULES(DESKTOP_SCHEMAS, gsettings-desktop-schemas >= 3.13.1)
AC_ARG_ENABLE(browser-plugin,
[AS_HELP_STRING([--enable-browser-plugin],
@@ -221,7 +220,7 @@ if test "$enable_man" != no; then
fi
AM_CONDITIONAL(ENABLE_MAN, test "$enable_man" != no)
AX_COMPILER_FLAGS()
GNOME_COMPILE_WARNINGS([error])
case "$WARN_CFLAGS" in
*-Werror*)
WARN_CFLAGS="$WARN_CFLAGS -Wno-error=deprecated-declarations"
@@ -270,7 +269,7 @@ Build configuration:
Prefix: ${prefix}
Source code location: ${srcdir}
Compiler: ${CC}
Compiler Warnings: $ax_enable_compile_warnings
Compiler Warnings: $enable_compile_warnings
Support for NetworkManager: $have_networkmanager
Support for GStreamer recording: $build_recorder

View File

@@ -2,7 +2,7 @@ CLEANFILES =
NULL =
desktopdir=$(datadir)/applications
desktop_DATA = org.gnome.Shell.desktop gnome-shell-extension-prefs.desktop
desktop_DATA = gnome-shell.desktop gnome-shell-wayland.desktop gnome-shell-extension-prefs.desktop
if HAVE_NETWORKMANAGER
desktop_DATA += org.gnome.Shell.PortalHelper.desktop
@@ -104,7 +104,8 @@ convertdir = $(datadir)/GConf/gsettings
convert_DATA = gnome-shell-overrides.convert
EXTRA_DIST = \
org.gnome.Shell.desktop.in.in \
gnome-shell.desktop.in.in \
gnome-shell-wayland.desktop.in.in \
gnome-shell-extension-prefs.desktop.in.in \
$(introspection_DATA) \
$(menu_DATA) \
@@ -120,7 +121,8 @@ EXTRA_DIST = \
$(NULL)
CLEANFILES += \
org.gnome.Shell.desktop.in \
gnome-shell.desktop.in \
gnome-shell-wayland.desktop.in \
gnome-shell-extension-prefs.in \
$(desktop_DATA) \
$(keys_DATA) \

View File

@@ -0,0 +1,15 @@
[Desktop Entry]
Type=Application
_Name=GNOME Shell (wayland compositor)
_Comment=Window management and application launching
Exec=@bindir@/gnome-shell --wayland --display-server
X-GNOME-Bugzilla-Bugzilla=GNOME
X-GNOME-Bugzilla-Product=gnome-shell
X-GNOME-Bugzilla-Component=general
X-GNOME-Bugzilla-Version=@VERSION@
Categories=GNOME;GTK;Core;
OnlyShowIn=GNOME;
NoDisplay=true
X-GNOME-Autostart-Phase=DisplayServer
X-GNOME-Autostart-Notify=true
X-GNOME-AutoRestart=false

View File

@@ -10,7 +10,7 @@ X-GNOME-Bugzilla-Version=@VERSION@
Categories=GNOME;GTK;Core;
OnlyShowIn=GNOME;
NoDisplay=true
X-GNOME-Autostart-Phase=DisplayServer
X-GNOME-Autostart-Phase=WindowManager
X-GNOME-Provides=panel;windowmanager;
X-GNOME-Autostart-Notify=true
X-GNOME-AutoRestart=false

View File

@@ -72,16 +72,6 @@
This key sets the default state of the checkbox.
</_description>
</key>
<key name="had-bluetooth-devices-setup" type="b">
<default>false</default>
<_summary>Whether the default Bluetooth adapter had set up devices associated to it</_summary>
<_description>
The shell will only show a Bluetooth menu item if a Bluetooth
adapter is powered, or if there were devices set up associated
with the default adapter. This will be reset if the default
adapter is ever seen not to have devices associated to it.
</_description>
</key>
<child name="calendar" schema="org.gnome.shell.calendar"/>
<child name="keybindings" schema="org.gnome.shell.keybindings"/>
<child name="keyboard" schema="org.gnome.shell.keyboard"/>

View File

@@ -199,7 +199,7 @@ StScrollBar {
border-radius: 9px;
color: #eeeeec;
background-color: rgba(23, 25, 26, 0.95);
border: 1px solid rgba(238, 238, 236, 0.2); }
border: 3px solid rgba(238, 238, 236, 0.5); }
.modal-dialog .modal-dialog-content-box {
padding: 24px; }
.modal-dialog .run-dialog-entry {
@@ -224,7 +224,7 @@ StScrollBar {
/* End Session Dialog */
.end-session-dialog {
spacing: 42px;
border: 1px solid rgba(238, 238, 236, 0.2); }
border: 3px solid rgba(238, 238, 236, 0.2); }
.end-session-dialog-list {
padding-top: 20px; }
@@ -408,9 +408,9 @@ StScrollBar {
spacing-rows: 15px;
spacing-columns: 1em; }
/* Popovers/Menus */
/* Popvers/Menus */
.popup-menu {
min-width: 15em; }
min-width: 200px; }
.popup-menu .popup-sub-menu {
background-color: black;
box-shadow: inset 0 -1px 0px #0d0d0d; }
@@ -625,8 +625,6 @@ StScrollBar {
#panel .panel-status-indicators-box,
#panel .panel-status-menu-box {
spacing: 2px; }
#panel .power-status.panel-status-indicators-box {
spacing: 0; }
#panel .screencast-indicator {
color: #f57900; }
@@ -752,20 +750,9 @@ StScrollBar {
color: rgba(255, 255, 255, 0.15);
opacity: 0.5; }
.calendar-week-number {
font-size: 70%;
font-weight: bold;
width: 2.8em;
height: 2em;
border-radius: 2px 1em 2px 2px;
padding: 0.9em 0 0;
margin: 3px;
background-color: rgba(255, 255, 255, 0.1);
color: #000; }
/* Message list */
.message-list {
width: 31.5em; }
width: 420px; }
.message-list-sections {
spacing: 1.5em; }
@@ -836,7 +823,7 @@ StScrollBar {
color: transparent; }
.aggregate-menu {
min-width: 21em; }
width: 360px; }
.aggregate-menu .popup-menu-icon {
padding: 0 4px; }
@@ -973,14 +960,10 @@ StScrollBar {
.search-entry {
width: 320px;
padding: 7px 9px;
border-radius: 6px;
border-color: #747467;
color: #eeeeec;
background-color: #2e3436; }
border-radius: 6px; }
.search-entry:focus {
padding: 6px 8px;
border-width: 2px;
border-color: #215d9c; }
border-width: 2px; }
.search-entry .search-entry-icon {
icon-size: 1em;
padding: 0 4px;

View File

@@ -199,7 +199,7 @@ StScrollBar {
border-radius: 9px;
color: #eeeeec;
background-color: rgba(23, 25, 26, 0.95);
border: 1px solid rgba(238, 238, 236, 0.2); }
border: 3px solid rgba(238, 238, 236, 0.5); }
.modal-dialog .modal-dialog-content-box {
padding: 24px; }
.modal-dialog .run-dialog-entry {
@@ -224,7 +224,7 @@ StScrollBar {
/* End Session Dialog */
.end-session-dialog {
spacing: 42px;
border: 1px solid rgba(238, 238, 236, 0.2); }
border: 3px solid rgba(238, 238, 236, 0.2); }
.end-session-dialog-list {
padding-top: 20px; }
@@ -408,9 +408,9 @@ StScrollBar {
spacing-rows: 15px;
spacing-columns: 1em; }
/* Popovers/Menus */
/* Popvers/Menus */
.popup-menu {
min-width: 15em; }
min-width: 200px; }
.popup-menu .popup-sub-menu {
background-color: #343a3a;
box-shadow: inset 0 -1px 0px #282c2c; }
@@ -625,8 +625,6 @@ StScrollBar {
#panel .panel-status-indicators-box,
#panel .panel-status-menu-box {
spacing: 2px; }
#panel .power-status.panel-status-indicators-box {
spacing: 0; }
#panel .screencast-indicator {
color: #f57900; }
@@ -752,20 +750,9 @@ StScrollBar {
color: rgba(238, 238, 236, 0.15);
opacity: 0.5; }
.calendar-week-number {
font-size: 70%;
font-weight: bold;
width: 2.8em;
height: 2em;
border-radius: 2px 1em 2px 2px;
padding: 0.9em 0 0;
margin: 3px;
background-color: rgba(238, 238, 236, 0.1);
color: #393f3f; }
/* Message list */
.message-list {
width: 31.5em; }
width: 420px; }
.message-list-sections {
spacing: 1.5em; }
@@ -836,7 +823,7 @@ StScrollBar {
color: transparent; }
.aggregate-menu {
min-width: 21em; }
width: 280px; }
.aggregate-menu .popup-menu-icon {
padding: 0 4px; }
@@ -973,14 +960,10 @@ StScrollBar {
.search-entry {
width: 320px;
padding: 7px 9px;
border-radius: 6px;
border-color: #747467;
color: #eeeeec;
background-color: #2e3436; }
border-radius: 6px; }
.search-entry:focus {
padding: 6px 8px;
border-width: 2px;
border-color: #215d9c; }
border-width: 2px; }
.search-entry .search-entry-icon {
icon-size: 1em;
padding: 0 4px;

View File

@@ -189,8 +189,7 @@ const AuthPrompt = new Lang.Class({
this._updateNextButtonSensitivity(this._entry.text.length > 0);
}));
this._entry.clutter_text.connect('activate', Lang.bind(this, function() {
if (this.nextButton.reactive)
this.emit('next');
this.emit('next');
}));
},

View File

@@ -16,34 +16,6 @@
* along with this program; if not, see <http://www.gnu.org/licenses/>.
*/
/*
* In order for transformation animations to look good, they need to be
* incremental and have some order to them (e.g., fade out hidden items,
* then shrink to close the void left over). Chaining animations in this way can
* be error-prone and wordy using just Tweener callbacks.
*
* The classes in this file help with this:
*
* - Task. encapsulates schedulable work to be run in a specific scope.
*
* - ConsecutiveBatch. runs a series of tasks in order and completes
* when the last in the series finishes.
*
* - ConcurrentBatch. runs a set of tasks at the same time and completes
* when the last to finish completes.
*
* - Hold. prevents a batch from completing the pending task until
* the hold is released.
*
* The tasks associated with a batch are specified in a list at batch
* construction time as either task objects or plain functions.
* Batches are task objects, themselves, so they can be nested.
*
* These classes aren't specific to GDM, but were found to be unintuitive and so
* are not used elsewhere. These APIs may ultimately get dropped entirely and
* replaced by something else.
*/
const Lang = imports.lang;
const Signals = imports.signals;

View File

@@ -96,7 +96,7 @@ const UserListItem = new Lang.Class({
},
_onDestroy: function() {
this.user.disconnect(this._userChangedId);
this._user.disconnect(this._userChangedId);
},
_onClicked: function() {
@@ -212,10 +212,6 @@ const UserList = new Lang.Class({
return item;
},
containsUser: function(user) {
return this._items[user.get_user_name()] != null;
},
addUser: function(user) {
if (!user.is_loaded)
return;
@@ -928,7 +924,11 @@ const LoginDialog = new Lang.Class({
},
onUpdateScope: this,
onComplete: function() {
this._greeter.call_start_session_when_ready_sync(serviceName, true, null);
let id = Mainloop.idle_add(Lang.bind(this, function() {
this._greeter.call_start_session_when_ready_sync(serviceName, true, null);
return GLib.SOURCE_REMOVE;
}));
GLib.Source.set_name_by_id(id, '[gnome-shell] this._greeter.call_start_session_when_ready_sync');
},
onCompleteScope: this });
},
@@ -1130,10 +1130,6 @@ const LoginDialog = new Lang.Class({
this._userManager.disconnect(this._userRemovedId);
this._userRemovedId = 0;
}
if (this._userChangedId) {
this._userManager.disconnect(this._userChangedId);
this._userChangedId = 0;
}
this._textureCache.disconnect(this._updateLogoTextureId);
Main.layoutManager.disconnect(this._startupCompleteId);
if (this._settings) {
@@ -1180,14 +1176,6 @@ const LoginDialog = new Lang.Class({
this._userList.removeUser(user);
}));
this._userChangedId = this._userManager.connect('user-changed',
Lang.bind(this, function(userManager, user) {
if (this._userList.containsUser(user) && user.locked)
this._userList.removeUser(user);
else if (!this._userList.containsUser(user) && !user.locked)
this._userList.addUser(user);
}));
return GLib.SOURCE_REMOVE;
},

View File

@@ -448,6 +448,8 @@ const AppSwitcher = new Lang.Class({
});
if (appIcon.cachedWindows.length > 0)
this._addIcon(appIcon);
else if (workspace == null)
throw new Error('%s appears to be running, but doesn\'t have any windows'.format(appIcon.app.get_name()));
}
this._curApp = -1;
@@ -685,17 +687,15 @@ const WindowIcon = new Lang.Class({
this._icon.destroy_all_children();
let scaleFactor = St.ThemeContext.get_for_stage(global.stage).scale_factor;
switch (mode) {
case AppIconMode.THUMBNAIL_ONLY:
size = WINDOW_PREVIEW_SIZE;
this._icon.add_actor(_createWindowClone(mutterWindow, size * scaleFactor));
this._icon.add_actor(_createWindowClone(mutterWindow, WINDOW_PREVIEW_SIZE));
break;
case AppIconMode.BOTH:
size = WINDOW_PREVIEW_SIZE;
this._icon.add_actor(_createWindowClone(mutterWindow, size * scaleFactor));
this._icon.add_actor(_createWindowClone(mutterWindow, WINDOW_PREVIEW_SIZE));
if (this.app)
this._icon.add_actor(this._createAppIcon(this.app,
@@ -707,7 +707,7 @@ const WindowIcon = new Lang.Class({
this._icon.add_actor(this._createAppIcon(this.app, size));
}
this._icon.set_size(size * scaleFactor, size * scaleFactor);
this._icon.set_size(size, size);
},
_createAppIcon: function(app, size) {

View File

@@ -7,7 +7,7 @@ const St = imports.gi.St;
const Signals = imports.signals;
const Atk = imports.gi.Atk;
const ANIMATED_ICON_UPDATE_TIMEOUT = 16;
const ANIMATED_ICON_UPDATE_TIMEOUT = 14;
const Animation = new Lang.Class({
Name: 'Animation',
@@ -33,7 +33,7 @@ const Animation = new Lang.Class({
if (this._frame == 0)
this._showFrame(0);
this._timeoutId = GLib.timeout_add(GLib.PRIORITY_LOW, this._speed, Lang.bind(this, this._update));
this._timeoutId = Mainloop.timeout_add(this._speed, Lang.bind(this, this._update));
GLib.Source.set_name_by_id(this._timeoutId, '[gnome-shell] this._update');
}

View File

@@ -26,7 +26,6 @@ const RENAMED_DESKTOP_IDS = {
'gnome-photos.desktop': 'org.gnome.Photos.desktop',
'gnome-screenshot.desktop': 'org.gnome.Screenshot.desktop',
'gnome-software.desktop': 'org.gnome.Software.desktop',
'gnome-terminal.desktop': 'org.gnome.Terminal.desktop',
'gnome-weather.desktop': 'org.gnome.Weather.Application.desktop',
'gnomine.desktop': 'gnome-mines.desktop',
'gnotravex.desktop': 'gnome-tetravex.desktop',

View File

@@ -247,13 +247,6 @@ const Background = new Lang.Class({
this._cancellable = new Gio.Cancellable();
this.isLoaded = false;
this._clock = new GnomeDesktop.WallClock();
this._timezoneChangedId = this._clock.connect('notify::timezone',
Lang.bind(this, function() {
if (this._animation)
this._loadAnimation(this._animation.file);
}));
this._settingsChangedSignalId = this._settings.connect('changed', Lang.bind(this, function() {
this.emit('changed');
}));
@@ -272,10 +265,6 @@ const Background = new Lang.Class({
}
this._fileWatches = null;
if (this._timezoneChangedId != 0)
this._clock.disconnect(this._timezoneChangedId);
this._timezoneChangedId = 0;
if (this._settingsChangedSignalId != 0)
this._settings.disconnect(this._settingsChangedSignalId);
this._settingsChangedSignalId = 0;

View File

@@ -725,8 +725,7 @@ const Calendar = new Lang.Class({
// nRows here means 6 weeks + one header + one navbar
let nRows = 8;
while (row < 8) {
// xgettext:no-javascript-format
let button = new St.Button({ label: iter.toLocaleFormat(C_("date day number format", "%d")),
let button = new St.Button({ label: iter.getDate().toString(),
can_focus: true });
let rtl = button.get_text_direction() == Clutter.TextDirection.RTL;
@@ -1231,7 +1230,7 @@ const NotificationMessage = new Lang.Class({
this._closed = true;
this.notification.destroy(MessageTray.NotificationDestroyedReason.DISMISSED);
}));
this._destroyId = notification.connect('destroy', Lang.bind(this,
notification.connect('destroy', Lang.bind(this,
function() {
if (!this._closed)
this.close();
@@ -1263,10 +1262,6 @@ const NotificationMessage = new Lang.Class({
if (this._updatedId)
this.notification.disconnect(this._updatedId);
this._updatedId = 0;
if (this._destroyId)
this.notification.disconnect(this._destroyId);
this._destroyId = 0;
}
});

View File

@@ -313,10 +313,6 @@ const AutorunSource = new Lang.Class({
getIcon: function() {
return this.mount.get_icon();
},
_createPolicy: function() {
return new MessageTray.NotificationApplicationPolicy('org.gnome.Nautilus');
}
});
@@ -329,6 +325,9 @@ const AutorunNotification = new Lang.Class({
this._manager = manager;
this._mount = source.mount;
// set the notification to urgent, so that it expands out
this.setUrgency(MessageTray.Urgency.CRITICAL);
},
createBanner: function() {

View File

@@ -644,14 +644,15 @@ const Dash = new Lang.Class({
let firstIcon = firstButton._delegate.icon;
let minHeight, natHeight;
let scaleFactor = St.ThemeContext.get_for_stage(global.stage).scale_factor;
// Enforce the current icon size during the size request
firstIcon.icon.ensure_style();
let [currentWidth, currentHeight] = firstIcon.icon.get_size();
firstIcon.icon.set_size(this.iconSize * scaleFactor, this.iconSize * scaleFactor);
firstIcon.setIconSize(this.iconSize);
[minHeight, natHeight] = firstButton.get_preferred_height(-1);
firstIcon.icon.set_size(currentWidth, currentHeight);
let scaleFactor = St.ThemeContext.get_for_stage(global.stage).scale_factor;
let iconSizes = baseIconSizes.map(function(s) {
return s * scaleFactor;
});
// Subtract icon padding and box spacing from the available height
availHeight -= iconChildren.length * (natHeight - this.iconSize * scaleFactor) +
@@ -659,10 +660,6 @@ const Dash = new Lang.Class({
let availSize = availHeight / iconChildren.length;
let iconSizes = baseIconSizes.map(function(s) {
return s * scaleFactor;
});
let newIconSize = baseIconSizes[0];
for (let i = 0; i < iconSizes.length; i++) {
if (iconSizes[i] < availSize)

View File

@@ -79,12 +79,9 @@ const _Draggable = new Lang.Class({
dragActorOpacity: undefined });
this.actor = actor;
if (!params.manualMode) {
if (!params.manualMode)
this.actor.connect('button-press-event',
Lang.bind(this, this._onButtonPress));
this.actor.connect('touch-event',
Lang.bind(this, this._onTouchEvent));
}
this.actor.connect('destroy', Lang.bind(this, function() {
this._actorDestroyed = true;
@@ -124,50 +121,8 @@ const _Draggable = new Lang.Class({
return Clutter.EVENT_PROPAGATE;
},
_onTouchEvent: function (actor, event) {
if (event.type() != Clutter.EventType.TOUCH_BEGIN ||
!global.display.is_pointer_emulating_sequence(event.get_event_sequence()))
return Clutter.EVENT_PROPAGATE;
if (Tweener.getTweenCount(actor))
return Clutter.EVENT_PROPAGATE;
this._touchSequence = event.get_event_sequence();
this._buttonDown = true;
this._grabActor();
let [stageX, stageY] = event.get_coords();
this._dragStartX = stageX;
this._dragStartY = stageY;
return Clutter.EVENT_PROPAGATE;
},
_grabDevice: function(actor) {
let manager = Clutter.DeviceManager.get_default();
let pointer = manager.get_core_device(Clutter.InputDeviceType.POINTER_DEVICE);
if (pointer && this._touchSequence)
pointer.sequence_grab(this._touchSequence, actor);
else if (pointer)
pointer.grab (actor);
this._grabbedDevice = pointer;
},
_ungrabDevice: function() {
if (this._touchSequence)
this._grabbedDevice.sequence_ungrab (this._touchSequence);
else
this._grabbedDevice.ungrab();
this._touchSequence = null;
this._grabbedDevice = null;
},
_grabActor: function() {
this._grabDevice(this.actor);
Clutter.grab_pointer(this.actor);
this._onEventId = this.actor.connect('event',
Lang.bind(this, this._onEvent));
},
@@ -176,7 +131,7 @@ const _Draggable = new Lang.Class({
if (!this._onEventId)
return;
this._ungrabDevice();
Clutter.ungrab_pointer();
this.actor.disconnect(this._onEventId);
this._onEventId = null;
},
@@ -185,13 +140,13 @@ const _Draggable = new Lang.Class({
if (!this._eventsGrabbed) {
this._eventsGrabbed = Main.pushModal(_getEventHandlerActor());
if (this._eventsGrabbed)
this._grabDevice(_getEventHandlerActor());
Clutter.grab_pointer(_getEventHandlerActor());
}
},
_ungrabEvents: function() {
if (this._eventsGrabbed) {
this._ungrabDevice();
Clutter.ungrab_pointer();
Main.popModal(_getEventHandlerActor());
this._eventsGrabbed = false;
}
@@ -202,9 +157,7 @@ const _Draggable = new Lang.Class({
// didn't start the drag, to drop the draggable in case the drag was in progress, and
// to complete the drag and ensure that whatever happens to be under the pointer does
// not get triggered if the drag was cancelled with Esc.
if (event.type() == Clutter.EventType.BUTTON_RELEASE ||
(event.type() == Clutter.EventType.TOUCH_END &&
global.display.is_pointer_emulating_sequence(event.get_event_sequence()))) {
if (event.type() == Clutter.EventType.BUTTON_RELEASE) {
this._buttonDown = false;
if (this._dragInProgress) {
return this._dragActorDropped(event);
@@ -219,9 +172,7 @@ const _Draggable = new Lang.Class({
}
// We intercept MOTION event to figure out if the drag has started and to draw
// this._dragActor under the pointer when dragging is in progress
} else if (event.type() == Clutter.EventType.MOTION ||
(event.type() == Clutter.EventType.TOUCH_UPDATE &&
global.display.is_pointer_emulating_sequence(event.get_event_sequence()))) {
} else if (event.type() == Clutter.EventType.MOTION) {
if (this._dragInProgress) {
return this._updateDragPosition(event);
} else if (this._dragActor == null) {
@@ -263,7 +214,7 @@ const _Draggable = new Lang.Class({
* This function is useful to call if you've specified manualMode
* for the draggable.
*/
startDrag: function (stageX, stageY, time, sequence) {
startDrag: function (stageX, stageY, time) {
currentDraggable = this;
this._dragInProgress = true;
@@ -277,8 +228,6 @@ const _Draggable = new Lang.Class({
this.emit('drag-begin', time);
if (this._onEventId)
this._ungrabActor();
this._touchSequence = sequence;
this._grabEvents();
global.screen.set_cursor(Meta.Cursor.DND_IN_DRAG);
@@ -389,8 +338,8 @@ const _Draggable = new Lang.Class({
let threshold = Gtk.Settings.get_default().gtk_dnd_drag_threshold;
if ((Math.abs(stageX - this._dragStartX) > threshold ||
Math.abs(stageY - this._dragStartY) > threshold)) {
this.startDrag(stageX, stageY, event.get_time(), this._touchSequence);
this._updateDragPosition(event);
this.startDrag(stageX, stageY, event.get_time());
this._updateDragPosition(event);
}
return true;

View File

@@ -334,7 +334,7 @@ function _sessionUpdated() {
// from allowExtensions in the future
if (Main.sessionMode.allowExtensions) {
if (initted)
enabledExtensions = getEnabledExtensions();
onEnabledExtensionsChanged();
enableAllExtensions();
} else {
disableAllExtensions();

View File

@@ -78,7 +78,6 @@ let _startDate;
let _defaultCssStylesheet = null;
let _cssStylesheet = null;
let _a11ySettings = null;
let _themeResource = null;
function _sessionUpdated() {
if (sessionMode.isPrimary)
@@ -138,7 +137,9 @@ function _initializeUI() {
Shell.WindowTracker.get_default();
Shell.AppUsage.get_default();
reloadThemeResource();
let resource = Gio.Resource.load(global.datadir + '/gnome-shell-theme.gresource');
resource._register();
_loadDefaultStylesheet();
// Setup the stage hierarchy early
@@ -289,14 +290,6 @@ function setThemeStylesheet(cssStylesheet) {
_cssStylesheet = cssStylesheet ? Gio.File.new_for_path(cssStylesheet) : null;
}
function reloadThemeResource() {
if (_themeResource)
_themeResource._unregister();
_themeResource = Gio.Resource.load(global.datadir + '/gnome-shell-theme.gresource');
_themeResource._register();
}
/**
* loadTheme:
*

View File

@@ -95,7 +95,6 @@ const AppMenuButton = new Lang.Class({
this._startingApps = [];
this._menuManager = panel.menuManager;
this._gtkSettings = Gtk.Settings.get_default();
this._targetApp = null;
this._appMenuNotifyId = 0;
this._actionGroupNotifyId = 0;
@@ -124,14 +123,11 @@ const AppMenuButton = new Lang.Class({
this._arrow = PopupMenu.arrowIcon(St.Side.BOTTOM);
this._container.add_actor(this._arrow);
this._visible = this._gtkSettings.gtk_shell_shows_app_menu &&
!Main.overview.visible;
this._visible = !Main.overview.visible;
if (!this._visible)
this.actor.hide();
this._overviewHidingId = Main.overview.connect('hiding', Lang.bind(this, this._sync));
this._overviewShowingId = Main.overview.connect('showing', Lang.bind(this, this._sync));
this._showsAppMenuId = this._gtkSettings.connect('notify::gtk-shell-shows-app-menu',
Lang.bind(this, this._sync));
this._stop = true;
@@ -309,9 +305,7 @@ const AppMenuButton = new Lang.Class({
}
}
let visible = (this._targetApp != null &&
this._gtkSettings.gtk_shell_shows_app_menu &&
!Main.overview.visibleTarget);
let visible = (this._targetApp != null && !Main.overview.visibleTarget);
if (visible)
this.show();
else
@@ -384,10 +378,6 @@ const AppMenuButton = new Lang.Class({
Main.overview.disconnect(this._overviewShowingId);
this._overviewShowingId = 0;
}
if (this._showsAppMenuId > 0) {
this._gtkSettings.disconnect(this._showsAppMenuId);
this._showsAppMenuId = 0;
}
if (this._switchWorkspaceNotifyId > 0) {
global.window_manager.disconnect(this._switchWorkspaceNotifyId);
this._switchWorkspaceNotifyId = 0;
@@ -459,8 +449,7 @@ const ActivitiesButton = new Lang.Class({
if (event.type() == Clutter.EventType.TOUCH_END ||
event.type() == Clutter.EventType.BUTTON_RELEASE)
if (Main.overview.shouldToggleByCornerOrButton())
Main.overview.toggle();
Main.overview.toggle();
return Clutter.EVENT_PROPAGATE;
},
@@ -468,8 +457,7 @@ const ActivitiesButton = new Lang.Class({
_onKeyRelease: function(actor, event) {
let symbol = event.get_key_symbol();
if (symbol == Clutter.KEY_Return || symbol == Clutter.KEY_space) {
if (Main.overview.shouldToggleByCornerOrButton())
Main.overview.toggle();
Main.overview.toggle();
}
return Clutter.EVENT_PROPAGATE;
},
@@ -654,50 +642,14 @@ const PanelCorner = new Lang.Class({
}
});
const AggregateLayout = new Lang.Class({
Name: 'AggregateLayout',
Extends: Clutter.BoxLayout,
_init: function(params) {
if (!params)
params = {};
params['orientation'] = Clutter.Orientation.VERTICAL;
this.parent(params);
this._sizeChildren = [];
},
addSizeChild: function(actor) {
this._sizeChildren.push(actor);
this.layout_changed();
},
vfunc_get_preferred_width: function(container, forHeight) {
let themeNode = container.get_theme_node();
let minWidth = themeNode.get_min_width();
let natWidth = minWidth;
for (let i = 0; i < this._sizeChildren.length; i++) {
let child = this._sizeChildren[i];
let [childMin, childNat] = child.get_preferred_width(forHeight);
minWidth = Math.max(minWidth, childMin);
natWidth = Math.max(minWidth, childNat);
}
return [minWidth, natWidth];
}
});
const AggregateMenu = new Lang.Class({
Name: 'AggregateMenu',
Extends: PanelMenu.Button,
_init: function() {
this.parent(0.0, C_("System menu in the top bar", "System"), false);
this.parent(0.0, _("Settings"), false);
this.menu.actor.add_style_class_name('aggregate-menu');
let menuLayout = new AggregateLayout();
this.menu.box.set_layout_manager(menuLayout);
this._indicators = new St.BoxLayout({ style_class: 'panel-status-indicators-box' });
this.actor.add_child(this._indicators);
@@ -746,11 +698,6 @@ const AggregateMenu = new Lang.Class({
this.menu.addMenuItem(this._rfkill.menu);
this.menu.addMenuItem(this._power.menu);
this.menu.addMenuItem(this._system.menu);
menuLayout.addSizeChild(this._location.menu.actor);
menuLayout.addSizeChild(this._rfkill.menu.actor);
menuLayout.addSizeChild(this._power.menu.actor);
menuLayout.addSizeChild(this._system.menu.actor);
},
});

View File

@@ -7,6 +7,13 @@ const Meta = imports.gi.Meta;
const GnomeDesktop = imports.gi.GnomeDesktop;
const Shell = imports.gi.Shell;
// We stop polling if the user is idle for more than this amount of time
const IDLE_TIME = 1000;
// This file implements a reasonably efficient system for tracking the position
// of the mouse pointer. We simply query the pointer from the X server in a loop,
// but we turn off the polling when the user is idle.
let _pointerWatcher = null;
function getPointerWatcher() {
if (_pointerWatcher == null)
@@ -18,8 +25,9 @@ function getPointerWatcher() {
const PointerWatch = new Lang.Class({
Name: 'PointerWatch',
_init: function(watcher, callback) {
_init: function(watcher, interval, callback) {
this.watcher = watcher;
this.interval = interval;
this.callback = callback;
},
@@ -35,9 +43,9 @@ const PointerWatcher = new Lang.Class({
Name: 'PointerWatcher',
_init: function() {
this._cursorTracker = Meta.CursorTracker.get_for_screen(global.screen);
this._cursorTracker.connect('position-changed', Lang.bind(this, this._updatePointer));
this._idleMonitor = Meta.IdleMonitor.get_core();
this._idleMonitor.add_idle_watch(IDLE_TIME, Lang.bind(this, this._onIdleMonitorBecameIdle));
this._idle = this._idleMonitor.get_idletime() > IDLE_TIME;
this._watches = [];
this.pointerX = null;
this.pointerY = null;
@@ -53,25 +61,60 @@ const PointerWatcher = new Lang.Class({
// Set up a watch on the position of the mouse pointer. Returns a
// PointerWatch object which has a remove() method to remove the watch.
addWatch: function(interval, callback) {
this._cursorTracker.enable_track_position();
// Avoid unreliably calling the watch for the current position
this._updatePointer();
this._watches.push(callback);
let watch = new PointerWatch(this, interval, callback);
this._watches.push(watch);
this._updateTimeout();
return watch;
},
_removeWatch: function(watch) {
for (let i = 0; i < this._watches.length; i++) {
if (this._watches[i] == watch) {
this._cursorTracker.disable_track_position();
this._watches.splice(i, 1);
this._updateTimeout();
return;
}
}
},
_onIdleMonitorBecameActive: function(monitor) {
this._idle = false;
this._updatePointer();
this._updateTimeout();
},
_onIdleMonitorBecameIdle: function(monitor) {
this._idle = true;
this._idleMonitor.add_user_active_watch(Lang.bind(this, this._onIdleMonitorBecameActive));
this._updateTimeout();
},
_updateTimeout: function() {
if (this._timeoutId) {
Mainloop.source_remove(this._timeoutId);
this._timeoutId = 0;
}
if (this._idle || this._watches.length == 0)
return;
let minInterval = this._watches[0].interval;
for (let i = 1; i < this._watches.length; i++)
minInterval = Math.min(this._watches[i].interval, minInterval);
this._timeoutId = Mainloop.timeout_add(minInterval,
Lang.bind(this, this._onTimeout));
GLib.Source.set_name_by_id(this._timeoutId, '[gnome-shell] this._onTimeout');
},
_onTimeout: function() {
this._updatePointer();
return GLib.SOURCE_CONTINUE;
},
_updatePointer: function() {
let [x, y, mods] = global.get_pointer();
if (this.pointerX == x && this.pointerY == y)

View File

@@ -396,7 +396,6 @@ const PopupImageMenuItem = new Lang.Class({
this.actor.add_child(this.label);
this._icon = new St.Icon({ style_class: 'popup-menu-icon' });
this.actor.add_child(this._icon, { align: St.Align.END });
this.actor.label_actor = this.label;
this.setIcon(iconName);
},
@@ -1146,16 +1145,6 @@ const PopupSubMenuMenuItem = new Lang.Class({
this.actor.remove_style_pseudo_class ('active');
this._setOpenState(!this._getOpenState());
return Clutter.EVENT_PROPAGATE;
},
_onTouchEvent: function(actor, event) {
if (event.type() == Clutter.EventType.TOUCH_END) {
// Since we override the parent, we need to manage what the parent does
// with the active style class
this.actor.remove_style_pseudo_class ('active');
this._setOpenState(!this._getOpenState());
}
return Clutter.EVENT_PROPAGATE;
}
});

View File

@@ -61,7 +61,6 @@ const RunDialog = new Lang.Class({
// rt is short for "reload theme"
'rt': Lang.bind(this, function() {
Main.reloadThemeResource();
Main.loadTheme();
})
};

View File

@@ -1,8 +1,11 @@
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
const Clutter = imports.gi.Clutter;
const GLib = imports.gi.GLib;
const Gio = imports.gi.Gio;
const GnomeBluetooth = imports.gi.GnomeBluetooth;
const Lang = imports.lang;
const St = imports.gi.St;
const Main = imports.ui.main;
const PanelMenu = imports.ui.panelMenu;
@@ -20,8 +23,6 @@ const RfkillManagerInterface = '<node> \
const RfkillManagerProxy = Gio.DBusProxy.makeProxyWrapper(RfkillManagerInterface);
const HAD_BLUETOOTH_DEVICES_SETUP = 'had-bluetooth-devices-setup';
const Indicator = new Lang.Class({
Name: 'BTIndicator',
Extends: PanelMenu.SystemIndicator,
@@ -31,7 +32,6 @@ const Indicator = new Lang.Class({
this._indicator = this._addIndicator();
this._indicator.icon_name = 'bluetooth-active-symbolic';
this._hadSetupDevices = global.settings.get_boolean(HAD_BLUETOOTH_DEVICES_SETUP);
this._proxy = new RfkillManagerProxy(Gio.DBus.session, BUS_NAME, OBJECT_PATH,
Lang.bind(this, function(proxy, error) {
@@ -44,15 +44,13 @@ const Indicator = new Lang.Class({
}));
this._proxy.connect('g-properties-changed', Lang.bind(this, this._sync));
this._item = new PopupMenu.PopupSubMenuMenuItem(_("Bluetooth"), true);
// The Bluetooth menu only appears when Bluetooth is in use,
// so just statically build it with a "Turn Off" menu item.
this._item = new PopupMenu.PopupSubMenuMenuItem('', true);
this._item.icon.icon_name = 'bluetooth-active-symbolic';
this._toggleItem = new PopupMenu.PopupMenuItem('');
this._toggleItem.connect('activate', Lang.bind(this, function() {
this._proxy.BluetoothAirplaneMode = !this._proxy.BluetoothAirplaneMode;
this._item.menu.addAction(_("Turn Off"), Lang.bind(this, function() {
this._proxy.BluetoothAirplaneMode = true;
}));
this._item.menu.addMenuItem(this._toggleItem);
this._item.menu.addSettingsAction(_("Bluetooth Settings"), 'gnome-bluetooth-panel.desktop');
this.menu.addMenuItem(this._item);
@@ -70,75 +68,42 @@ const Indicator = new Lang.Class({
while (ret) {
let isDefault = this._model.get_value(iter,
GnomeBluetooth.Column.DEFAULT);
let isPowered = this._model.get_value(iter,
GnomeBluetooth.Column.POWERED);
if (isDefault && isPowered)
if (isDefault)
return iter;
ret = this._model.iter_next(iter);
}
return null;
},
// nDevices is the number of devices setup for the current default
// adapter if one exists and is powered. If unpowered or unavailable,
// nDevice is "1" if it had setup devices associated to it the last
// time it was seen, and "-1" if not.
//
// nConnectedDevices is the number of devices connected to the default
// adapter if one exists and is powered, or -1 if it's not available.
_getNDevices: function() {
_getNConnectedDevices: function() {
let adapter = this._getDefaultAdapter();
if (!adapter)
return [ this._hadSetupDevices ? 1 : -1, -1 ];
return 0;
let nConnectedDevices = 0;
let nDevices = 0;
let [ret, iter] = this._model.iter_children(adapter);
while (ret) {
let isConnected = this._model.get_value(iter,
GnomeBluetooth.Column.CONNECTED);
if (isConnected)
nConnectedDevices++;
let isPaired = this._model.get_value(iter,
GnomeBluetooth.Column.PAIRED);
let isTrusted = this._model.get_value(iter,
GnomeBluetooth.Column.TRUSTED);
if (isPaired || isTrusted)
nDevices++;
ret = this._model.iter_next(iter);
}
if (this._hadSetupDevices != (nDevices > 0)) {
this._hadSetupDevices = !this._hadSetupDevices;
global.settings.set_boolean(HAD_BLUETOOTH_DEVICES_SETUP, this._hadSetupDevices);
}
return [ nDevices, nConnectedDevices];
return nDevices;
},
_sync: function() {
let [ nDevices, nConnectedDevices ] = this._getNDevices();
let nDevices = this._getNConnectedDevices();
let sensitive = !Main.sessionMode.isLocked && !Main.sessionMode.isGreeter;
this.menu.setSensitive(sensitive);
this._indicator.visible = nConnectedDevices > 0;
this._indicator.visible = nDevices > 0;
this._item.actor.visible = this._proxy.BluetoothHasAirplaneMode && !this._proxy.BluetoothAirplaneMode;
// Remember if there were setup devices and show the menu
// if we've seen setup devices and we're not hard blocked
if (nDevices > 0)
this._item.actor.visible = !this._proxy.BluetoothHardwareAirplaneMode;
else
this._item.actor.visible = this._proxy.BluetoothHasAirplaneMode && !this._proxy.BluetoothAirplaneMode;
if (nConnectedDevices > 0)
/* Translators: this is the number of connected bluetooth devices */
this._item.label.text = ngettext("%d Connected", "%d Connected", nConnectedDevices).format(nConnectedDevices);
else if (nConnectedDevices == -1)
this._item.label.text = _("Off");
this._item.label.text = ngettext("%d Connected", "%d Connected", nDevices).format(nDevices);
else
this._item.label.text = _("Not In Use");
this._toggleItem.label.text = this._proxy.BluetoothAirplaneMode ? _("Turn On") : _("Turn Off");
},
});

View File

@@ -1,8 +1,6 @@
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
const Gio = imports.gi.Gio;
const Clutter = imports.gi.Clutter;
const St = imports.gi.St;
const Lang = imports.lang;
const UPower = imports.gi.UPowerGlib;
@@ -27,8 +25,6 @@ const DisplayDeviceInterface = '<node> \
const PowerManagerProxy = Gio.DBusProxy.makeProxyWrapper(DisplayDeviceInterface);
const SHOW_BATTERY_PERCENTAGE = 'show-battery-percentage';
const Indicator = new Lang.Class({
Name: 'PowerIndicator',
Extends: PanelMenu.SystemIndicator,
@@ -36,15 +32,7 @@ const Indicator = new Lang.Class({
_init: function() {
this.parent();
this._desktopSettings = new Gio.Settings({ schema_id: 'org.gnome.desktop.interface' });
this._desktopSettings.connect('changed::' + SHOW_BATTERY_PERCENTAGE,
Lang.bind(this, this._sync));
this._indicator = this._addIndicator();
this._percentageLabel = new St.Label({ y_expand: true,
y_align: Clutter.ActorAlign.CENTER });
this.indicators.add(this._percentageLabel, { expand: true, y_fill: true });
this.indicators.add_style_class_name('power-status');
this._proxy = new PowerManagerProxy(Gio.DBus.system, BUS_NAME, OBJECT_PATH,
Lang.bind(this, function(proxy, error) {
@@ -95,12 +83,12 @@ const Indicator = new Lang.Class({
if (this._proxy.State == UPower.DeviceState.DISCHARGING) {
// Translators: this is <hours>:<minutes> Remaining (<percentage>)
return _("%d\u2236%02d Remaining (%d\u2009%%)").format(hours, minutes, this._proxy.Percentage);
return _("%d\u2236%02d Remaining (%d%%)").format(hours, minutes, this._proxy.Percentage);
}
if (this._proxy.State == UPower.DeviceState.CHARGING) {
// Translators: this is <hours>:<minutes> Until Full (<percentage>)
return _("%d\u2236%02d Until Full (%d\u2009%%)").format(hours, minutes, this._proxy.Percentage);
return _("%d\u2236%02d Until Full (%d%%)").format(hours, minutes, this._proxy.Percentage);
}
return null;
@@ -111,12 +99,10 @@ const Indicator = new Lang.Class({
let visible = this._proxy.IsPresent;
if (visible) {
this._item.actor.show();
this._percentageLabel.visible = this._desktopSettings.get_boolean(SHOW_BATTERY_PERCENTAGE);
} else {
// If there's no battery, then we use the power icon.
this._item.actor.hide();
this._indicator.icon_name = 'system-shutdown-symbolic';
this._percentageLabel.hide();
return;
}
@@ -125,14 +111,6 @@ const Indicator = new Lang.Class({
this._indicator.icon_name = icon;
this._item.icon.icon_name = icon;
// The icon label
let label
if (this._proxy.State == UPower.DeviceState.FULLY_CHARGED)
label = _("%d\u2009%%").format(100);
else
label = _("%d\u2009%%").format(this._proxy.Percentage);
this._percentageLabel.clutter_text.set_markup('<span size="smaller">' + label + '</span>');
// The status label
this._item.label.text = this._getStatus();
},

View File

@@ -677,7 +677,6 @@ const WindowManager = new Lang.Class({
this._minimizing = [];
this._unminimizing = [];
this._mapping = [];
this._resizing = [];
this._destroying = [];
this._movingWindow = null;
@@ -693,7 +692,6 @@ const WindowManager = new Lang.Class({
this._minimizeWindowDone(shellwm, actor);
this._mapWindowDone(shellwm, actor);
this._destroyWindowDone(shellwm, actor);
this._sizeChangeWindowDone(shellwm, actor);
}));
this._shellwm.connect('switch-workspace', Lang.bind(this, this._switchWorkspace));
@@ -1220,120 +1218,9 @@ const WindowManager = new Lang.Class({
},
_sizeChangeWindow : function(shellwm, actor, whichChange, oldFrameRect, oldBufferRect) {
let types = [Meta.WindowType.NORMAL];
if (!this._shouldAnimateActor(actor, types)) {
shellwm.completed_size_change(actor);
return;
}
if (whichChange == Meta.SizeChange.FULLSCREEN)
this._fullscreenWindow(shellwm, actor, oldFrameRect, oldBufferRect);
else if (whichChange == Meta.SizeChange.UNFULLSCREEN)
this._unfullscreenWindow(shellwm, actor, oldFrameRect, oldBufferRect);
else
shellwm.completed_size_change(actor);
},
_fullscreenWindow: function(shellwm, actor, oldFrameRect, oldBufferRect) {
let monitor = Main.layoutManager.monitors[actor.meta_window.get_monitor()];
actor.translation_x = oldFrameRect.x - monitor.x;
actor.translation_y = oldFrameRect.y - monitor.y;
this._fullscreenAnimation(shellwm, actor, oldFrameRect);
},
_unfullscreenWindow: function(shellwm, actor, oldFrameRect, oldBufferRect) {
let targetRect = actor.meta_window.get_frame_rect();
let monitor = Main.layoutManager.monitors[actor.meta_window.get_monitor()];
actor.translation_x = -(targetRect.x - monitor.x);
actor.translation_y = -(targetRect.y - monitor.y);
this._fullscreenAnimation(shellwm, actor, oldFrameRect);
},
_fullscreenAnimation: function(shellwm, actor, oldFrameRect) {
this._resizing.push(actor);
// Position a clone of the window on top of the old position,
// while actor updates are frozen.
// Note that the MetaWindow has up to date sizing information for
// the new geometry already.
let targetRect = actor.meta_window.get_frame_rect();
let actorContent = Shell.util_get_content_for_window_actor(actor, oldFrameRect);
let actorClone = new St.Widget({ content: actorContent });
actorClone.set_offscreen_redirect(Clutter.OffscreenRedirect.ALWAYS);
actorClone.set_position(oldFrameRect.x, oldFrameRect.y);
actorClone.set_size(oldFrameRect.width, oldFrameRect.height);
Main.uiGroup.add_actor(actorClone);
actor.__fullscreenClone = actorClone;
let scaleX = targetRect.width / oldFrameRect.width;
let scaleY = targetRect.height / oldFrameRect.height;
// Now scale and fade out the clone
Tweener.addTween(actorClone,
{ x: targetRect.x,
y: targetRect.y,
scale_x: scaleX,
scale_y: scaleY,
opacity: 0,
time: WINDOW_ANIMATION_TIME,
transition: 'easeOutQuad'
});
// Now set scale the actor to size it as the clone.
// Note that the caller of this function already set a translation
// on the actor.
actor.scale_x = 1 / scaleX;
actor.scale_y = 1 / scaleY;
// Scale it to its actual new size
Tweener.addTween(actor,
{ scale_x: 1.0,
scale_y: 1.0,
translation_x: 0,
translation_y: 0,
time: WINDOW_ANIMATION_TIME,
transition: 'easeOutQuad',
onComplete: this._sizeChangeWindowDone,
onCompleteScope: this,
onCompleteParams: [shellwm, actor],
onOverwrite: this._sizeChangeWindowOverwritten,
onOverwriteScope: this,
onOverwriteParams: [shellwm, actor]
});
// Now unfreeze actor updates, to get it to the new size.
// It's important that we don't wait until the animation is completed to
// do this, otherwise our scale will be applied to the old texture size.
shellwm.completed_size_change(actor);
},
_sizeChangeWindowDone: function(shellwm, actor) {
if (this._removeEffect(this._resizing, actor)) {
Tweener.removeTweens(actor);
actor.scale_x = 1.0;
actor.scale_y = 1.0;
actor.translation_x = 0;
actor.translation_y = 0;
let actorClone = actor.__fullscreenClone;
if (actorClone) {
actorClone.destroy();
delete actor.__fullscreenClone;
}
}
},
_sizeChangeWindowOverwritten: function(shellwm, actor) {
if (this._removeEffect(this._resizing, actor)) {
let actorClone = actor.__fullscreenClone;
if (actorClone) {
actorClone.destroy();
delete actor.__fullscreenClone;
}
}
},
_hasAttachedDialogs: function(window, ignoreWindow) {
var count = 0;
window.foreach_transient(function(win) {

View File

@@ -214,7 +214,7 @@ const WindowMenuManager = new Lang.Class({
menu.close();
});
this._sourceActor.set_size(Math.max(1, rect.width), Math.max(1, rect.height));
this._sourceActor.set_size(rect.width, rect.height);
this._sourceActor.set_position(rect.x, rect.y);
this._sourceActor.show();

View File

@@ -361,9 +361,6 @@ const WindowClone = new Lang.Class({
// a long-press canceled when the pointer movement
// exceeds dnd-drag-threshold to manually start the drag
if (state == Clutter.LongPressState.CANCEL) {
let event = Clutter.get_current_event();
this._dragTouchSequence = event.get_event_sequence();
// A click cancels a long-press before any click handler is
// run - make sure to not start a drag in that case
Meta.later_add(Meta.LaterType.BEFORE_REDRAW, Lang.bind(this,
@@ -372,7 +369,7 @@ const WindowClone = new Lang.Class({
return;
let [x, y] = action.get_coords();
action.release();
this._draggable.startDrag(x, y, global.get_current_time(), this._dragTouchSequence);
this._draggable.startDrag(x, y, global.get_current_time());
}));
}
return true;

View File

@@ -80,8 +80,6 @@ const WindowClone = new Lang.Class({
this.actor.connect('button-release-event',
Lang.bind(this, this._onButtonRelease));
this.actor.connect('touch-event',
Lang.bind(this, this._onTouchEvent));
this.actor.connect('destroy', Lang.bind(this, this._onDestroy));
@@ -202,15 +200,6 @@ const WindowClone = new Lang.Class({
return Clutter.EVENT_STOP;
},
_onTouchEvent : function (actor, event) {
if (event.type() != Clutter.EventType.TOUCH_END ||
!global.display.is_pointer_emulating_sequence(event.get_event_sequence()))
return Clutter.EVENT_PROPAGATE;
this.emit('selected', event.get_time());
return Clutter.EVENT_STOP;
},
_onDragBegin : function (draggable, time) {
this.inDrag = true;
this.emit('drag-begin');
@@ -653,7 +642,6 @@ const ThumbnailsBox = new Lang.Class({
this.actor.connect('button-press-event', function() { return Clutter.EVENT_STOP; });
this.actor.connect('button-release-event', Lang.bind(this, this._onButtonRelease));
this.actor.connect('touch-event', Lang.bind(this, this._onTouchEvent));
Main.overview.connect('showing',
Lang.bind(this, this._createThumbnails));
@@ -684,31 +672,18 @@ const ThumbnailsBox = new Lang.Class({
global.screen.n_workspaces > 1;
},
_activateThumbnailAtPoint: function (stageX, stageY, time) {
_onButtonRelease: function(actor, event) {
let [stageX, stageY] = event.get_coords();
let [r, x, y] = this.actor.transform_stage_point(stageX, stageY);
for (let i = 0; i < this._thumbnails.length; i++) {
let thumbnail = this._thumbnails[i]
let [w, h] = thumbnail.actor.get_transformed_size();
if (y >= thumbnail.actor.y && y <= thumbnail.actor.y + h) {
thumbnail.activate(time);
thumbnail.activate(event.get_time());
break;
}
}
},
_onButtonRelease: function(actor, event) {
let [stageX, stageY] = event.get_coords();
this._activateThumbnailAtPoint(stageX, stageY, event.get_time());
return Clutter.EVENT_STOP;
},
_onTouchEvent: function (actor, event) {
if (event.type() == Clutter.EventType.TOUCH_END &&
global.display.is_pointer_emulating_sequence(event.get_event_sequence())) {
let [stageX, stageY] = event.get_coords();
this._activateThumbnailAtPoint(stageX, stageY, event.get_time());
}
return Clutter.EVENT_STOP;
},

View File

@@ -421,7 +421,7 @@ const WorkspacesDisplay = new Lang.Class({
// Only switch to the workspace when there's no application
// windows open. The problem is that it's too easy to miss
// an app window and get the wrong one focused.
if ((action.get_button() == 1 || action.get_button() == 0) &&
if (action.get_button() == 1 &&
this._getPrimaryView().getActiveWorkspace().isEmpty())
Main.overview.hide();
}));

View File

@@ -140,7 +140,7 @@
<para>
<filename>/usr/share/gnome-session/sessions/gnome.session</filename>,
<filename>/usr/share/applications/org.gnome.Shell.desktop</filename>.</para>
<filename>/usr/share/applications/gnome-shell.desktop</filename>.</para>
</refsect1>
<refsect1>

View File

@@ -24,7 +24,6 @@ fi
fr
fur
ga
gd
gl
gu
he

View File

@@ -2,8 +2,9 @@
# Please keep this file sorted alphabetically.
[encoding: UTF-8]
data/50-gnome-shell-system.xml.in
data/gnome-shell.desktop.in.in
data/gnome-shell-extension-prefs.desktop.in.in
data/org.gnome.Shell.desktop.in.in
data/gnome-shell-wayland.desktop.in.in
data/org.gnome.shell.gschema.xml.in.in
data/org.gnome.Shell.PortalHelper.desktop.in
js/extensionPrefs/main.js

555
po/ar.po

File diff suppressed because it is too large Load Diff

648
po/bg.po

File diff suppressed because it is too large Load Diff

447
po/cs.po

File diff suppressed because it is too large Load Diff

541
po/da.po

File diff suppressed because it is too large Load Diff

381
po/de.po

File diff suppressed because it is too large Load Diff

194
po/el.po
View File

@@ -7,8 +7,8 @@ msgstr ""
"Project-Id-Version: gnome-shell.po.master\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
"shell&keywords=I18N+L10N&component=general\n"
"POT-Creation-Date: 2015-09-29 20:37+0000\n"
"PO-Revision-Date: 2015-09-30 10:37+0300\n"
"POT-Creation-Date: 2015-08-28 20:12+0000\n"
"PO-Revision-Date: 2015-08-29 01:20+0300\n"
"Last-Translator: Tom Tryfonidis <tomtryf@gmail.com>\n"
"Language-Team: www.gnome.gr\n"
"Language: el\n"
@@ -332,7 +332,7 @@ msgid "Cancel"
msgstr "Ακύρωση"
#: ../js/gdm/authPrompt.js:169 ../js/gdm/authPrompt.js:215
#: ../js/gdm/authPrompt.js:447
#: ../js/gdm/authPrompt.js:435
msgid "Next"
msgstr "Επόμενο"
@@ -350,29 +350,21 @@ msgstr "Σύνδεση"
msgid "Choose Session"
msgstr "Επιλογή συνεδρίας"
#. translators: this message is shown below the user list on the
#. login screen. It can be activated to reveal an entry for
#. manually entering the username.
#: ../js/gdm/loginDialog.js:431
msgid "Not listed?"
msgstr "Δεν είστε στη λίστα;"
#. Translators: this message is shown below the username entry field
#. to clue the user in on how to login to the local network realm
#: ../js/gdm/loginDialog.js:850
#: ../js/gdm/loginDialog.js:847
#, javascript-format
msgid "(e.g., user or %s)"
msgstr "(π.χ, χρήστης ή %s)"
#. TTLS and PEAP are actually much more complicated, but this complication
#. is not visible here since we only care about phase2 authentication
#. (and don't even care of which one)
#: ../js/gdm/loginDialog.js:855 ../js/ui/components/networkAgent.js:271
#: ../js/gdm/loginDialog.js:852 ../js/ui/components/networkAgent.js:271
#: ../js/ui/components/networkAgent.js:289
msgid "Username: "
msgstr "Όνομα χρήστη: "
#: ../js/gdm/loginDialog.js:1184
#: ../js/gdm/loginDialog.js:1181
msgid "Login Window"
msgstr "Παράθυρο σύνδεσης"
@@ -380,11 +372,6 @@ msgstr "Παράθυρο σύνδεσης"
msgid "Authentication error"
msgstr "Σφάλμα πιστοποίησης"
#. We don't show fingerprint messages directly since it's
#. not the main auth service. Instead we use the messages
#. as a cue to display our own message.
#. Translators: this message is shown below the password entry field
#. to indicate the user can swipe their finger instead
#: ../js/gdm/util.js:473
msgid "(or swipe finger)"
msgstr "(ή περάστε το δάκτυλο σας)"
@@ -393,8 +380,6 @@ msgstr "(ή περάστε το δάκτυλο σας)"
msgid "Command not found"
msgstr "Δε βρέθηκε η εντολή"
#. Replace "Error invoking GLib.shell_parse_argv: " with
#. something nicer
#: ../js/misc/util.js:152
msgid "Could not parse command:"
msgstr "Δεν ήταν δυνατό να γίνει ανάλυση της εντολής:"
@@ -404,78 +389,70 @@ msgstr "Δεν ήταν δυνατό να γίνει ανάλυση της εν
msgid "Execution of “%s” failed:"
msgstr "Απέτυχε η εκτέλεση του “%s”:"
#. Translators: Time in 24h format
#. Translators: Time in 24h format */
#: ../js/misc/util.js:191
msgid "%H%M"
msgstr "%H%M"
#. Translators: this is the word "Yesterday" followed by a
#. time string in 24h format. i.e. "Yesterday, 14:30"
#. time string in 24h format. i.e. "Yesterday, 14:30" */
#: ../js/misc/util.js:197
#, no-c-format
msgid "Yesterday, %H%M"
msgstr "Χθες, %H%M"
#. Translators: this is the week day name followed by a time
#. string in 24h format. i.e. "Monday, 14:30"
#. string in 24h format. i.e. "Monday, 14:30" */
#: ../js/misc/util.js:203
#, no-c-format
msgid "%A, %H%M"
msgstr "%A, %H%M"
#. Translators: this is the month name and day number
#. followed by a time string in 24h format.
#. i.e. "May 25, 14:30"
#. i.e. "May 25, 14:30" */
#: ../js/misc/util.js:209
#, no-c-format
msgid "%B %d, %H%M"
msgstr "%B %d, %H%M"
#. Translators: this is the month name, day number, year
#. number followed by a time string in 24h format.
#. i.e. "May 25 2012, 14:30"
#. i.e. "May 25 2012, 14:30" */
#: ../js/misc/util.js:215
#, no-c-format
msgid "%B %d %Y, %H%M"
msgstr "%B %d %Y, %H%M"
#. Translators: Time in 12h format
#. Translators: Time in 12h format */
#: ../js/misc/util.js:220
msgid "%l%M %p"
msgstr "%l%M%p"
#. Translators: this is the word "Yesterday" followed by a
#. time string in 12h format. i.e. "Yesterday, 2:30 pm"
#. time string in 12h format. i.e. "Yesterday, 2:30 pm" */
#: ../js/misc/util.js:226
#, no-c-format
msgid "Yesterday, %l%M %p"
msgstr "Χθες %l:%M %p"
#. Translators: this is the week day name followed by a time
#. string in 12h format. i.e. "Monday, 2:30 pm"
#. string in 12h format. i.e. "Monday, 2:30 pm" */
#: ../js/misc/util.js:232
#, no-c-format
msgid "%A, %l%M %p"
msgstr "%A, %l%M %p"
#. Translators: this is the month name and day number
#. followed by a time string in 12h format.
#. i.e. "May 25, 2:30 pm"
#. i.e. "May 25, 2:30 pm" */
#: ../js/misc/util.js:238
#, no-c-format
msgid "%B %d, %l%M %p"
msgstr "%B %d, %l%M %p"
#. Translators: this is the month name, day number, year
#. number followed by a time string in 12h format.
#. i.e. "May 25 2012, 2:30 pm"
#. i.e. "May 25 2012, 2:30 pm"*/
#: ../js/misc/util.js:244
#, no-c-format
msgid "%B %d %Y, %l%M %p"
msgstr "%B %d %Y, %l%M %p"
#. TRANSLATORS: this is the title of the wifi captive portal login
#. * window, until we know the title of the actual login page
#. * window, until we know the title of the actual login page */
#: ../js/portalHelper/main.js:85
msgid "Web Authentication Redirect"
msgstr "Ανακατεύθυνση πιστοποίησης ιστού"
@@ -526,11 +503,12 @@ msgstr "Αλλαγή παρασκηνίου…"
msgid "Display Settings"
msgstr "Ρυθμίσεις οθόνης"
#: ../js/ui/backgroundMenu.js:22 ../js/ui/status/system.js:366
#: ../js/ui/backgroundMenu.js:22 ../js/ui/panel.js:650
#: ../js/ui/status/system.js:366
msgid "Settings"
msgstr "Ρυθμίσεις"
#. Translators: Enter 0-6 (Sunday-Saturday) for non-work days. Examples: "0" (Sunday) "6" (Saturday) "06" (Sunday and Saturday).
#. Translators: Enter 0-6 (Sunday-Saturday) for non-work days. Examples: "0" (Sunday) "6" (Saturday) "06" (Sunday and Saturday). */
#: ../js/ui/calendar.js:55
msgctxt "calendar-no-work"
msgid "06"
@@ -540,43 +518,43 @@ msgstr "06"
#. *
#. * NOTE: These grid abbreviations are always shown together
#. * and in order, e.g. "S M T W T F S".
#.
#. */
#: ../js/ui/calendar.js:84
msgctxt "grid sunday"
msgid "S"
msgstr "Κυ"
#. Translators: Calendar grid abbreviation for Monday
#. Translators: Calendar grid abbreviation for Monday */
#: ../js/ui/calendar.js:86
msgctxt "grid monday"
msgid "M"
msgstr "Δε"
#. Translators: Calendar grid abbreviation for Tuesday
#. Translators: Calendar grid abbreviation for Tuesday */
#: ../js/ui/calendar.js:88
msgctxt "grid tuesday"
msgid "T"
msgstr "Τρ"
#. Translators: Calendar grid abbreviation for Wednesday
#. Translators: Calendar grid abbreviation for Wednesday */
#: ../js/ui/calendar.js:90
msgctxt "grid wednesday"
msgid "W"
msgstr "Τε"
#. Translators: Calendar grid abbreviation for Thursday
#. Translators: Calendar grid abbreviation for Thursday */
#: ../js/ui/calendar.js:92
msgctxt "grid thursday"
msgid "T"
msgstr "Πε"
#. Translators: Calendar grid abbreviation for Friday
#. Translators: Calendar grid abbreviation for Friday */
#: ../js/ui/calendar.js:94
msgctxt "grid friday"
msgid "F"
msgstr "Πα"
#. Translators: Calendar grid abbreviation for Saturday
#. Translators: Calendar grid abbreviation for Saturday */
#: ../js/ui/calendar.js:96
msgctxt "grid saturday"
msgid "S"
@@ -596,39 +574,39 @@ msgstr "Εβδομάδα %V"
#. Translators: Shown in calendar event list for all day events
#. * Keep it short, best if you can use less then 10 characters
#.
#. */
#: ../js/ui/calendar.js:1188
msgctxt "event list time"
msgid "All Day"
msgstr "Όλη μέρα"
#: ../js/ui/calendar.js:1295
#: ../js/ui/calendar.js:1291
msgid "Clear section"
msgstr "Εκκαθάριση περιοχής"
#: ../js/ui/calendar.js:1522
#: ../js/ui/calendar.js:1518
msgid "Events"
msgstr "Συμβάντα"
#: ../js/ui/calendar.js:1531
#: ../js/ui/calendar.js:1527
msgctxt "calendar heading"
msgid "%A, %B %d"
msgstr "%A, %B %d"
#: ../js/ui/calendar.js:1535
#: ../js/ui/calendar.js:1531
msgctxt "calendar heading"
msgid "%A, %B %d, %Y"
msgstr "%A, %d %B, %Y"
#: ../js/ui/calendar.js:1620
#: ../js/ui/calendar.js:1616
msgid "Notifications"
msgstr "Ειδοποιήσεις"
#: ../js/ui/calendar.js:1771
#: ../js/ui/calendar.js:1767
msgid "No Notifications"
msgstr "Καμία ειδοποίηση"
#: ../js/ui/calendar.js:1774
#: ../js/ui/calendar.js:1770
msgid "No Events"
msgstr "Κανένα συμβάν"
@@ -658,7 +636,6 @@ msgstr "Πληκτρολογήστε ξανά:"
msgid "Connect"
msgstr "Σύνδεση"
#. Cisco LEAP
#: ../js/ui/components/networkAgent.js:233
#: ../js/ui/components/networkAgent.js:245
#: ../js/ui/components/networkAgent.js:273
@@ -667,7 +644,6 @@ msgstr "Σύνδεση"
msgid "Password: "
msgstr "Κωδικός πρόσβασης: "
#. static WEP
#: ../js/ui/components/networkAgent.js:238
msgid "Key: "
msgstr "Κλειδί: "
@@ -759,13 +735,13 @@ msgstr "Πιστοποίηση"
#. Translators: "that didn't work" refers to the fact that the
#. * requested authentication was not gained; this can happen
#. * because of an authentication error (like invalid password),
#. * for instance.
#. * for instance. */
#: ../js/ui/components/polkitAgent.js:301 ../js/ui/shellMountOperation.js:383
msgid "Sorry, that didn't work. Please try again."
msgstr "Συγνώμη, αυτό δεν λειτούργησε. Παρακαλούμε προσπαθήστε ξανά."
#. Translators: this is the other person changing their old IM name to their new
#. IM name.
#. IM name. */
#: ../js/ui/components/telepathyClient.js:759
#, javascript-format
msgid "%s is now known as %s"
@@ -779,15 +755,13 @@ msgstr "Παράθυρα"
msgid "Show Applications"
msgstr "Εμφάνιση εφαρμογών"
#. Translators: this is the name of the dock/favorites area on
#. the left of the overview
#: ../js/ui/dash.js:449
msgid "Dash"
msgstr "Ταμπλό"
#. Translators: This is the date format to use when the calendar popup is
#. * shown - it is shown just below the time in the shell (e.g. "Tue 9:29 AM").
#.
#. */
#: ../js/ui/dateMenu.js:73
msgid "%B %e %Y"
msgstr "%B %e %Y"
@@ -795,7 +769,7 @@ msgstr "%B %e %Y"
#. Translators: This is the accessible name of the date button shown
#. * below the time in the shell; it should combine the weekday and the
#. * date, e.g. "Tuesday February 17 2015".
#.
#. */
#: ../js/ui/dateMenu.js:80
msgid "%A %B %e %Y"
msgstr "%A %e %B %Y"
@@ -929,13 +903,13 @@ msgstr ""
msgid "Other users are logged in."
msgstr "Είναι συνδεδεμένοι άλλοι χρήστες."
#. Translators: Remote here refers to a remote session, like a ssh login
#. Translators: Remote here refers to a remote session, like a ssh login */
#: ../js/ui/endSessionDialog.js:640
#, javascript-format
msgid "%s (remote)"
msgstr "%s (απομακρυσμένο)"
#. Translators: Console here refers to a tty like a VT console
#. Translators: Console here refers to a tty like a VT console */
#: ../js/ui/endSessionDialog.js:643
#, javascript-format
msgid "%s (console)"
@@ -954,7 +928,7 @@ msgstr "Λήψη και εγκατάσταση του “%s” από το exten
msgid "Keyboard"
msgstr "Πληκτρολόγιο"
#. translators: 'Hide' is a verb
#. translators: 'Hide' is a verb */
#: ../js/ui/legacyTray.js:66
msgid "Hide tray"
msgstr "Απόκρυψη περιοχής ειδοποιήσεων"
@@ -967,7 +941,7 @@ msgstr "Εικονίδια κατάστασης"
msgid "No extensions installed"
msgstr "Δεν υπάρχουν εγκατεστημένες επεκτάσεις"
#. Translators: argument is an extension UUID.
#. Translators: argument is an extension UUID. */
#: ../js/ui/lookingGlass.js:697
#, javascript-format
msgid "%s has not emitted any errors."
@@ -987,7 +961,7 @@ msgstr "Ενεργοποιημένο"
#. translators:
#. * The device has been disabled
#: ../js/ui/lookingGlass.js:719 ../src/gvc/gvc-mixer-control.c:1828
#: ../js/ui/lookingGlass.js:719 ../src/gvc/gvc-mixer-control.c:1830
msgid "Disabled"
msgstr "Απενεργοποιημένο"
@@ -1026,7 +1000,7 @@ msgstr "Επισκόπηση"
#. Translators: this is the text displayed
#. in the search entry when no search is
#. active; it should not exceed ~30
#. characters.
#. characters. */
#: ../js/ui/overview.js:244
msgid "Type to search…"
msgstr "Πληκτρολογήστε για αναζήτηση…"
@@ -1036,25 +1010,15 @@ msgid "Quit"
msgstr "Έξοδος"
#. 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:404
msgid "Activities"
msgstr "Δραστηριότητες"
#: ../js/ui/panel.js:650
msgctxt "System menu in the top bar"
msgid "System"
msgstr "Σύστημα"
#: ../js/ui/panel.js:754
msgid "Top Bar"
msgstr "Πάνω μπάρα"
#. Translators: this MUST be either "toggle-switch-us"
#. (for toggle switches containing the English words
#. "ON" and "OFF") or "toggle-switch-intl" (for toggle
#. switches containing "◯" and "|"). Other values will
#. simply result in invisible toggle switches.
#: ../js/ui/popupMenu.js:289
msgid "toggle-switch-us"
msgstr "toggle-switch-intl"
@@ -1072,7 +1036,7 @@ msgid "Restarting…"
msgstr "Επανεκκίνηση…"
#. Translators: This is a time format for a date in
#. long format
#. long format */
#: ../js/ui/screenShield.js:85
msgid "%A, %B %d"
msgstr "%A, %B %d"
@@ -1099,13 +1063,6 @@ msgstr "Κλείδωμα"
msgid "GNOME needs to lock the screen"
msgstr "Το GNOME χρειάζεται να κλειδώσει την οθόνη"
#. We could not become modal, so we can't activate the
#. screenshield. The user is probably very upset at this
#. point, but any application using global grabs is broken
#. Just tell him to stop using this app
#.
#. XXX: another option is to kick the user into the gdm login
#. screen, where we're not affected by grabs
#: ../js/ui/screenShield.js:805 ../js/ui/screenShield.js:1271
msgid "Unable to lock"
msgstr "Αδυναμία κλειδώματος"
@@ -1201,7 +1158,7 @@ msgstr "Σβήσιμο"
msgid "Bluetooth Settings"
msgstr "Ρυθμίσεις Bluetooth"
#. Translators: this is the number of connected bluetooth devices
#. Translators: this is the number of connected bluetooth devices */
#: ../js/ui/status/bluetooth.js:105
#, javascript-format
msgid "%d Connected"
@@ -1249,59 +1206,59 @@ msgstr "Ενεργοποίηση"
msgid "<unknown>"
msgstr "<άγνωστο>"
#. Translators: %s is a network identifier
#. Translators: %s is a network identifier */
#: ../js/ui/status/network.js:451 ../js/ui/status/network.js:1308
#, javascript-format
msgid "%s Off"
msgstr "Απενεργοποιημένο %s"
#. Translators: %s is a network identifier
#. Translators: %s is a network identifier */
#: ../js/ui/status/network.js:454
#, javascript-format
msgid "%s Connected"
msgstr "%s συνδεδεμένο"
msgstr "Συνδέθηκε το %s"
#. Translators: this is for network devices that are physically present but are not
#. under NetworkManager's control (and thus cannot be used in the menu);
#. %s is a network identifier
#. %s is a network identifier */
#: ../js/ui/status/network.js:459
#, javascript-format
msgid "%s Unmanaged"
msgstr "Χωρίς διαχείριση %s"
#. Translators: %s is a network identifier
#. Translators: %s is a network identifier */
#: ../js/ui/status/network.js:462
#, javascript-format
msgid "%s Disconnecting"
msgstr "Γίνεται αποσύνδεση %s"
#. Translators: %s is a network identifier
#. Translators: %s is a network identifier */
#: ../js/ui/status/network.js:469 ../js/ui/status/network.js:1300
#, javascript-format
msgid "%s Connecting"
msgstr "Γίνεται σύνδεση %s"
#. Translators: this is for network connections that require some kind of key or password; %s is a network identifier
#. Translators: this is for network connections that require some kind of key or password; %s is a network identifier */
#: ../js/ui/status/network.js:472
#, javascript-format
msgid "%s Requires Authentication"
msgstr "Το %s απαιτεί πιστοποίηση"
#. Translators: this is for devices that require some kind of firmware or kernel
#. module, which is missing; %s is a network identifier
#. module, which is missing; %s is a network identifier */
#: ../js/ui/status/network.js:480
#, javascript-format
msgid "Firmware Missing For %s"
msgstr "Λείπει υλικολογισμικό για το %s"
#. Translators: this is for a network device that cannot be activated (for example it
#. is disabled by rfkill, or it has no coverage; %s is a network identifier
#. is disabled by rfkill, or it has no coverage; %s is a network identifier */
#: ../js/ui/status/network.js:484
#, javascript-format
msgid "%s Unavailable"
msgstr "Το %s δεν είναι διαθέσιμο"
#. Translators: %s is a network identifier
#. Translators: %s is a network identifier */
#: ../js/ui/status/network.js:487
#, javascript-format
msgid "%s Connection Failed"
@@ -1315,14 +1272,14 @@ msgstr "Ενσύρματες ρυθμίσεις"
msgid "Mobile Broadband Settings"
msgstr "Ρυθμίσεις ευρυζωνικής σύνδεσης"
#. Translators: %s is a network identifier
#. Translators: %s is a network identifier */
#: ../js/ui/status/network.js:588 ../js/ui/status/network.js:1305
#, javascript-format
msgid "%s Hardware Disabled"
msgstr "Το υλικό απενεργοποιήθηκε για το %s"
#. Translators: this is for a network device that cannot be activated
#. because it's disabled by rfkill (airplane mode); %s is a network identifier
#. because it's disabled by rfkill (airplane mode); %s is a network identifier */
#: ../js/ui/status/network.js:592
#, javascript-format
msgid "%s Disabled"
@@ -1385,13 +1342,13 @@ msgstr "Ρυθμίσεις Wi-Fi"
msgid "Turn On"
msgstr "Ενεργοποίηση"
#. Translators: %s is a network identifier
#. Translators: %s is a network identifier */
#: ../js/ui/status/network.js:1296
#, javascript-format
msgid "%s Hotspot Active"
msgstr "Ενεργό σημείο πρόσβασης %s"
#. Translators: %s is a network identifier
#. Translators: %s is a network identifier */
#: ../js/ui/status/network.js:1311
#, javascript-format
msgid "%s Not Connected"
@@ -1401,7 +1358,7 @@ msgstr "Χωρίς σύνδεση το %s"
msgid "connecting..."
msgstr "σύνδεση..."
#. Translators: this is for network connections that require some kind of key or password
#. Translators: this is for network connections that require some kind of key or password */
#: ../js/ui/status/network.js:1414
msgid "authentication required"
msgstr "απαιτείται πιστοποίηση"
@@ -1442,27 +1399,20 @@ msgstr "Ρυθμίσεις τροφοδοσίας"
msgid "Fully Charged"
msgstr "Πλήρως φορτισμένη"
#. 0 is reported when UPower does not have enough data
#. to estimate battery life
#: ../js/ui/status/power.js:72 ../js/ui/status/power.js:78
msgid "Estimating…"
msgstr "Εκτίμηση…"
#. Translators: this is <hours>:<minutes> Remaining (<percentage>)
#: ../js/ui/status/power.js:86
#, javascript-format
msgid "%d%02d Remaining (%d%%)"
msgstr "%d%02d Απομένει (%d%%)"
#. Translators: this is <hours>:<minutes> Until Full (<percentage>)
#: ../js/ui/status/power.js:91
#, javascript-format
msgid "%d%02d Until Full (%d%%)"
msgstr "%d%02d Πλήρης μέχρι (%d%%)"
#. The menu only appears when airplane mode is on, so just
#. statically build it as if it was on, rather than dynamically
#. changing the menu contents.
#: ../js/ui/status/rfkill.js:88
msgid "Airplane Mode On"
msgstr "Λειτουργία αεροπλάνου ενεργή"
@@ -1530,7 +1480,7 @@ msgstr "Θέλετε να κρατήσετε αυτές τις ρυθμίσει
#. Translators: this and the following message should be limited in lenght,
#. to avoid ellipsizing the labels.
#.
#. */
#: ../js/ui/windowManager.js:82
msgid "Revert Settings"
msgstr "Επαναφορά ρυθμίσεων"
@@ -1547,7 +1497,7 @@ msgstr[0] "Οι αλλαγές ρυθμίσεων θα επανέλθουν σε
msgstr[1] "Οι αλλαγές ρυθμίσεων θα επανέλθουν σε %d δευτερόλεπτα"
#. Translators: This represents the size of a window. The first number is
#. * the width of the window and the second is the height.
#. * the width of the window and the second is the height. */
#: ../js/ui/windowManager.js:658
#, javascript-format
msgid "%d x %d"
@@ -1623,7 +1573,7 @@ msgstr "Ημερολόγιο Evolution"
#. translators:
#. * The number of sound outputs on a particular device
#: ../src/gvc/gvc-mixer-control.c:1835
#: ../src/gvc/gvc-mixer-control.c:1837
#, c-format
msgid "%u Output"
msgid_plural "%u Outputs"
@@ -1632,31 +1582,31 @@ msgstr[1] "%u έξοδοι"
#. translators:
#. * The number of sound inputs on a particular device
#: ../src/gvc/gvc-mixer-control.c:1845
#: ../src/gvc/gvc-mixer-control.c:1847
#, c-format
msgid "%u Input"
msgid_plural "%u Inputs"
msgstr[0] "%u είσοδος"
msgstr[1] "%u είσοδοι"
#: ../src/gvc/gvc-mixer-control.c:2371
#: ../src/gvc/gvc-mixer-control.c:2373
msgid "System Sounds"
msgstr "Ήχοι συστήματος"
#: ../src/main.c:381
#: ../src/main.c:373
msgid "Print version"
msgstr "Εμφάνιση έκδοσης"
#: ../src/main.c:387
#: ../src/main.c:379
msgid "Mode used by GDM for login screen"
msgstr "Λειτουργία που χρησιμοποιείται από το GDM για την οθόνη σύνδεσης"
#: ../src/main.c:393
#: ../src/main.c:385
msgid "Use a specific mode, e.g. \"gdm\" for login screen"
msgstr ""
"Χρήση μιας συγκεκριμένης λειτουργίας, π.χ. \"gdm\" για την οθόνη σύνδεσης"
#: ../src/main.c:399
#: ../src/main.c:391
msgid "List possible modes"
msgstr "Λίστα πιθανών λειτουργιών"

1577
po/eo.po

File diff suppressed because it is too large Load Diff

5685
po/es.po

File diff suppressed because it is too large Load Diff

666
po/eu.po

File diff suppressed because it is too large Load Diff

402
po/fi.po

File diff suppressed because it is too large Load Diff

190
po/fr.po
View File

@@ -19,8 +19,8 @@ msgstr ""
"Project-Id-Version: gnome-shell master fr\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
"shell&keywords=I18N+L10N&component=general\n"
"POT-Creation-Date: 2015-09-28 20:46+0000\n"
"PO-Revision-Date: 2015-09-28 23:39+0200\n"
"POT-Creation-Date: 2015-08-31 19:25+0000\n"
"PO-Revision-Date: 2015-09-01 11:03+0200\n"
"Last-Translator: Alexandre Franke <alexandre.franke@gmail.com>\n"
"Language-Team: français <gnomefr@traduc.org>\n"
"Language: French\n"
@@ -362,29 +362,21 @@ msgstr "Se connecter"
msgid "Choose Session"
msgstr "Choisir une session"
#. translators: this message is shown below the user list on the
#. login screen. It can be activated to reveal an entry for
#. manually entering the username.
#: ../js/gdm/loginDialog.js:431
msgid "Not listed?"
msgstr "Absent de la liste ?"
#. Translators: this message is shown below the username entry field
#. to clue the user in on how to login to the local network realm
#: ../js/gdm/loginDialog.js:850
#: ../js/gdm/loginDialog.js:847
#, javascript-format
msgid "(e.g., user or %s)"
msgstr "(par ex. utilisateur ou %s)"
#. TTLS and PEAP are actually much more complicated, but this complication
#. is not visible here since we only care about phase2 authentication
#. (and don't even care of which one)
#: ../js/gdm/loginDialog.js:855 ../js/ui/components/networkAgent.js:271
#: ../js/gdm/loginDialog.js:852 ../js/ui/components/networkAgent.js:271
#: ../js/ui/components/networkAgent.js:289
msgid "Username: "
msgstr "Nom d'utilisateur : "
#: ../js/gdm/loginDialog.js:1184
#: ../js/gdm/loginDialog.js:1181
msgid "Login Window"
msgstr "Fenêtre de connexion"
@@ -392,11 +384,6 @@ msgstr "Fenêtre de connexion"
msgid "Authentication error"
msgstr "Erreur d'authentification"
#. We don't show fingerprint messages directly since it's
#. not the main auth service. Instead we use the messages
#. as a cue to display our own message.
#. Translators: this message is shown below the password entry field
#. to indicate the user can swipe their finger instead
#: ../js/gdm/util.js:473
msgid "(or swipe finger)"
msgstr "(ou faites glisser le doigt)"
@@ -405,8 +392,6 @@ msgstr "(ou faites glisser le doigt)"
msgid "Command not found"
msgstr "Commande non trouvée"
#. Replace "Error invoking GLib.shell_parse_argv: " with
#. something nicer
#: ../js/misc/util.js:152
msgid "Could not parse command:"
msgstr "Impossible d'analyser la commande :"
@@ -416,78 +401,70 @@ msgstr "Impossible d'analyser la commande :"
msgid "Execution of “%s” failed:"
msgstr "Exécution de « %s » impossible :"
#. Translators: Time in 24h format
#. Translators: Time in 24h format */
#: ../js/misc/util.js:191
msgid "%H%M"
msgstr "%H%M"
#. Translators: this is the word "Yesterday" followed by a
#. time string in 24h format. i.e. "Yesterday, 14:30"
#. time string in 24h format. i.e. "Yesterday, 14:30" */
#: ../js/misc/util.js:197
#, no-c-format
msgid "Yesterday, %H%M"
msgstr "Hier, %H%M"
#. Translators: this is the week day name followed by a time
#. string in 24h format. i.e. "Monday, 14:30"
#. string in 24h format. i.e. "Monday, 14:30" */
#: ../js/misc/util.js:203
#, no-c-format
msgid "%A, %H%M"
msgstr "%A, %H%M"
#. Translators: this is the month name and day number
#. followed by a time string in 24h format.
#. i.e. "May 25, 14:30"
#. i.e. "May 25, 14:30" */
#: ../js/misc/util.js:209
#, no-c-format
msgid "%B %d, %H%M"
msgstr "%d %B, %H%M"
#. Translators: this is the month name, day number, year
#. number followed by a time string in 24h format.
#. i.e. "May 25 2012, 14:30"
#. i.e. "May 25 2012, 14:30" */
#: ../js/misc/util.js:215
#, no-c-format
msgid "%B %d %Y, %H%M"
msgstr "%d %B %Y, %H%M"
#. Translators: Time in 12h format
#. Translators: Time in 12h format */
#: ../js/misc/util.js:220
msgid "%l%M %p"
msgstr "%l%M %p"
#. Translators: this is the word "Yesterday" followed by a
#. time string in 12h format. i.e. "Yesterday, 2:30 pm"
#. time string in 12h format. i.e. "Yesterday, 2:30 pm" */
#: ../js/misc/util.js:226
#, no-c-format
msgid "Yesterday, %l%M %p"
msgstr "Hier, %l%M %p"
#. Translators: this is the week day name followed by a time
#. string in 12h format. i.e. "Monday, 2:30 pm"
#. string in 12h format. i.e. "Monday, 2:30 pm" */
#: ../js/misc/util.js:232
#, no-c-format
msgid "%A, %l%M %p"
msgstr "%A, %l%M %p"
#. Translators: this is the month name and day number
#. followed by a time string in 12h format.
#. i.e. "May 25, 2:30 pm"
#. i.e. "May 25, 2:30 pm" */
#: ../js/misc/util.js:238
#, no-c-format
msgid "%B %d, %l%M %p"
msgstr "%d %B, %l%M %p"
#. Translators: this is the month name, day number, year
#. number followed by a time string in 12h format.
#. i.e. "May 25 2012, 2:30 pm"
#. i.e. "May 25 2012, 2:30 pm"*/
#: ../js/misc/util.js:244
#, no-c-format
msgid "%B %d %Y, %l%M %p"
msgstr "%d %B %Y, %l%M %p"
#. TRANSLATORS: this is the title of the wifi captive portal login
#. * window, until we know the title of the actual login page
#. * window, until we know the title of the actual login page */
#: ../js/portalHelper/main.js:85
msgid "Web Authentication Redirect"
msgstr "Redirection de l'authentification Web"
@@ -538,11 +515,12 @@ msgstr "Modifier l'arrière-plan…"
msgid "Display Settings"
msgstr "Paramètres d'affichage"
#: ../js/ui/backgroundMenu.js:22 ../js/ui/status/system.js:366
#: ../js/ui/backgroundMenu.js:22 ../js/ui/panel.js:650
#: ../js/ui/status/system.js:366
msgid "Settings"
msgstr "Paramètres"
#. Translators: Enter 0-6 (Sunday-Saturday) for non-work days. Examples: "0" (Sunday) "6" (Saturday) "06" (Sunday and Saturday).
#. Translators: Enter 0-6 (Sunday-Saturday) for non-work days. Examples: "0" (Sunday) "6" (Saturday) "06" (Sunday and Saturday). */
#: ../js/ui/calendar.js:55
msgctxt "calendar-no-work"
msgid "06"
@@ -552,43 +530,43 @@ msgstr "06"
#. *
#. * NOTE: These grid abbreviations are always shown together
#. * and in order, e.g. "S M T W T F S".
#.
#. */
#: ../js/ui/calendar.js:84
msgctxt "grid sunday"
msgid "S"
msgstr "D"
#. Translators: Calendar grid abbreviation for Monday
#. Translators: Calendar grid abbreviation for Monday */
#: ../js/ui/calendar.js:86
msgctxt "grid monday"
msgid "M"
msgstr "L"
#. Translators: Calendar grid abbreviation for Tuesday
#. Translators: Calendar grid abbreviation for Tuesday */
#: ../js/ui/calendar.js:88
msgctxt "grid tuesday"
msgid "T"
msgstr "M"
#. Translators: Calendar grid abbreviation for Wednesday
#. Translators: Calendar grid abbreviation for Wednesday */
#: ../js/ui/calendar.js:90
msgctxt "grid wednesday"
msgid "W"
msgstr "M"
#. Translators: Calendar grid abbreviation for Thursday
#. Translators: Calendar grid abbreviation for Thursday */
#: ../js/ui/calendar.js:92
msgctxt "grid thursday"
msgid "T"
msgstr "J"
#. Translators: Calendar grid abbreviation for Friday
#. Translators: Calendar grid abbreviation for Friday */
#: ../js/ui/calendar.js:94
msgctxt "grid friday"
msgid "F"
msgstr "V"
#. Translators: Calendar grid abbreviation for Saturday
#. Translators: Calendar grid abbreviation for Saturday */
#: ../js/ui/calendar.js:96
msgctxt "grid saturday"
msgid "S"
@@ -623,39 +601,39 @@ msgstr "Semaine %V"
#
#. Translators: Shown in calendar event list for all day events
#. * Keep it short, best if you can use less then 10 characters
#.
#. */
#: ../js/ui/calendar.js:1188
msgctxt "event list time"
msgid "All Day"
msgstr "Journée"
#: ../js/ui/calendar.js:1295
#: ../js/ui/calendar.js:1291
msgid "Clear section"
msgstr "Effacer la section"
#: ../js/ui/calendar.js:1522
#: ../js/ui/calendar.js:1518
msgid "Events"
msgstr "Évènements"
#: ../js/ui/calendar.js:1531
#: ../js/ui/calendar.js:1527
msgctxt "calendar heading"
msgid "%A, %B %d"
msgstr "%A %d %B"
#: ../js/ui/calendar.js:1535
#: ../js/ui/calendar.js:1531
msgctxt "calendar heading"
msgid "%A, %B %d, %Y"
msgstr "%A %d %B, %Y"
#: ../js/ui/calendar.js:1620
#: ../js/ui/calendar.js:1616
msgid "Notifications"
msgstr "Notifications"
#: ../js/ui/calendar.js:1771
#: ../js/ui/calendar.js:1767
msgid "No Notifications"
msgstr "Aucune notification"
#: ../js/ui/calendar.js:1774
#: ../js/ui/calendar.js:1770
msgid "No Events"
msgstr "Aucun évènement"
@@ -685,7 +663,6 @@ msgstr "Saisissez à nouveau :"
msgid "Connect"
msgstr "Se connecter"
#. Cisco LEAP
#: ../js/ui/components/networkAgent.js:233
#: ../js/ui/components/networkAgent.js:245
#: ../js/ui/components/networkAgent.js:273
@@ -694,7 +671,6 @@ msgstr "Se connecter"
msgid "Password: "
msgstr "Mot de passe : "
#. static WEP
#: ../js/ui/components/networkAgent.js:238
msgid "Key: "
msgstr "Clé : "
@@ -786,13 +762,13 @@ msgstr "S'authentifier"
#. Translators: "that didn't work" refers to the fact that the
#. * requested authentication was not gained; this can happen
#. * because of an authentication error (like invalid password),
#. * for instance.
#. * for instance. */
#: ../js/ui/components/polkitAgent.js:301 ../js/ui/shellMountOperation.js:383
msgid "Sorry, that didn't work. Please try again."
msgstr "Échec de l'authentification. Essayez à nouveau."
#. Translators: this is the other person changing their old IM name to their new
#. IM name.
#. IM name. */
#: ../js/ui/components/telepathyClient.js:759
#, javascript-format
msgid "%s is now known as %s"
@@ -806,8 +782,6 @@ msgstr "Fenêtres"
msgid "Show Applications"
msgstr "Afficher les applications"
#. Translators: this is the name of the dock/favorites area on
#. the left of the overview
#: ../js/ui/dash.js:449
msgid "Dash"
msgstr "Dash"
@@ -820,7 +794,7 @@ msgstr "Dash"
# L M M J V S D
#. Translators: This is the date format to use when the calendar popup is
#. * shown - it is shown just below the time in the shell (e.g. "Tue 9:29 AM").
#.
#. */
#: ../js/ui/dateMenu.js:73
msgid "%B %e %Y"
msgstr "%-e %B %Y"
@@ -834,7 +808,7 @@ msgstr "%-e %B %Y"
#. Translators: This is the accessible name of the date button shown
#. * below the time in the shell; it should combine the weekday and the
#. * date, e.g. "Tuesday February 17 2015".
#.
#. */
#: ../js/ui/dateMenu.js:80
msgid "%A %B %e %Y"
msgstr "%A %e %B %Y"
@@ -964,13 +938,13 @@ msgstr ""
msgid "Other users are logged in."
msgstr "D'autres utilisateurs sont connectés."
#. Translators: Remote here refers to a remote session, like a ssh login
#. Translators: Remote here refers to a remote session, like a ssh login */
#: ../js/ui/endSessionDialog.js:640
#, javascript-format
msgid "%s (remote)"
msgstr "%s (distant)"
#. Translators: Console here refers to a tty like a VT console
#. Translators: Console here refers to a tty like a VT console */
#: ../js/ui/endSessionDialog.js:643
#, javascript-format
msgid "%s (console)"
@@ -989,7 +963,7 @@ msgstr "Télécharger et installer « %s » à partir de extensions.gnome.org
msgid "Keyboard"
msgstr "Clavier"
#. translators: 'Hide' is a verb
#. translators: 'Hide' is a verb */
#: ../js/ui/legacyTray.js:66
msgid "Hide tray"
msgstr "Masquer le tiroir"
@@ -1002,7 +976,7 @@ msgstr "Icônes d'état"
msgid "No extensions installed"
msgstr "Aucune extension installée"
#. Translators: argument is an extension UUID.
#. Translators: argument is an extension UUID. */
#: ../js/ui/lookingGlass.js:697
#, javascript-format
msgid "%s has not emitted any errors."
@@ -1022,7 +996,7 @@ msgstr "Activé"
#. translators:
#. * The device has been disabled
#: ../js/ui/lookingGlass.js:719 ../src/gvc/gvc-mixer-control.c:1828
#: ../js/ui/lookingGlass.js:719 ../src/gvc/gvc-mixer-control.c:1830
msgid "Disabled"
msgstr "Désactivé"
@@ -1061,7 +1035,7 @@ msgstr "Vue d'ensemble"
#. Translators: this is the text displayed
#. in the search entry when no search is
#. active; it should not exceed ~30
#. characters.
#. characters. */
#: ../js/ui/overview.js:244
msgid "Type to search…"
msgstr "Rechercher…"
@@ -1071,25 +1045,15 @@ msgid "Quit"
msgstr "Quitter"
#. 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:404
msgid "Activities"
msgstr "Activités"
#: ../js/ui/panel.js:650
msgctxt "System menu in the top bar"
msgid "System"
msgstr "Système"
#: ../js/ui/panel.js:754
msgid "Top Bar"
msgstr "Barre supérieure"
#. Translators: this MUST be either "toggle-switch-us"
#. (for toggle switches containing the English words
#. "ON" and "OFF") or "toggle-switch-intl" (for toggle
#. switches containing "◯" and "|"). Other values will
#. simply result in invisible toggle switches.
#: ../js/ui/popupMenu.js:289
msgid "toggle-switch-us"
msgstr "toggle-switch-intl"
@@ -1107,7 +1071,7 @@ msgid "Restarting…"
msgstr "Redémarrage en cours…"
#. Translators: This is a time format for a date in
#. long format
#. long format */
#: ../js/ui/screenShield.js:85
msgid "%A, %B %d"
msgstr "%A %d %B"
@@ -1134,13 +1098,6 @@ msgstr "Verrouiller"
msgid "GNOME needs to lock the screen"
msgstr "GNOME a besoin de verrouiller l'écran"
#. We could not become modal, so we can't activate the
#. screenshield. The user is probably very upset at this
#. point, but any application using global grabs is broken
#. Just tell him to stop using this app
#.
#. XXX: another option is to kick the user into the gdm login
#. screen, where we're not affected by grabs
#: ../js/ui/screenShield.js:805 ../js/ui/screenShield.js:1271
msgid "Unable to lock"
msgstr "Impossible de verrouiller"
@@ -1236,7 +1193,7 @@ msgstr "Éteindre"
msgid "Bluetooth Settings"
msgstr "Paramètres Bluetooth"
#. Translators: this is the number of connected bluetooth devices
#. Translators: this is the number of connected bluetooth devices */
#: ../js/ui/status/bluetooth.js:105
#, javascript-format
msgid "%d Connected"
@@ -1284,13 +1241,13 @@ msgstr "Activer"
msgid "<unknown>"
msgstr "<inconnu>"
#. Translators: %s is a network identifier
#. Translators: %s is a network identifier */
#: ../js/ui/status/network.js:451 ../js/ui/status/network.js:1308
#, javascript-format
msgid "%s Off"
msgstr "%s éteint"
#. Translators: %s is a network identifier
#. Translators: %s is a network identifier */
#: ../js/ui/status/network.js:454
#, javascript-format
msgid "%s Connected"
@@ -1298,45 +1255,45 @@ msgstr "%s connecté"
#. Translators: this is for network devices that are physically present but are not
#. under NetworkManager's control (and thus cannot be used in the menu);
#. %s is a network identifier
#. %s is a network identifier */
#: ../js/ui/status/network.js:459
#, javascript-format
msgid "%s Unmanaged"
msgstr "%s non géré"
#. Translators: %s is a network identifier
#. Translators: %s is a network identifier */
#: ../js/ui/status/network.js:462
#, javascript-format
msgid "%s Disconnecting"
msgstr "Déconnexion de %s en cours"
#. Translators: %s is a network identifier
#. Translators: %s is a network identifier */
#: ../js/ui/status/network.js:469 ../js/ui/status/network.js:1300
#, javascript-format
msgid "%s Connecting"
msgstr "Connexion de %s en cours"
#. Translators: this is for network connections that require some kind of key or password; %s is a network identifier
#. Translators: this is for network connections that require some kind of key or password; %s is a network identifier */
#: ../js/ui/status/network.js:472
#, javascript-format
msgid "%s Requires Authentication"
msgstr "Authentification nécessaire pour %s"
#. Translators: this is for devices that require some kind of firmware or kernel
#. module, which is missing; %s is a network identifier
#. module, which is missing; %s is a network identifier */
#: ../js/ui/status/network.js:480
#, javascript-format
msgid "Firmware Missing For %s"
msgstr "Micrologiciel manquant pour %s"
#. Translators: this is for a network device that cannot be activated (for example it
#. is disabled by rfkill, or it has no coverage; %s is a network identifier
#. is disabled by rfkill, or it has no coverage; %s is a network identifier */
#: ../js/ui/status/network.js:484
#, javascript-format
msgid "%s Unavailable"
msgstr "%s non disponible"
#. Translators: %s is a network identifier
#. Translators: %s is a network identifier */
#: ../js/ui/status/network.js:487
#, javascript-format
msgid "%s Connection Failed"
@@ -1350,14 +1307,14 @@ msgstr "Paramètres filaire"
msgid "Mobile Broadband Settings"
msgstr "Paramètres connexion mobile"
#. Translators: %s is a network identifier
#. Translators: %s is a network identifier */
#: ../js/ui/status/network.js:588 ../js/ui/status/network.js:1305
#, javascript-format
msgid "%s Hardware Disabled"
msgstr "Équipement %s désactivé"
#. Translators: this is for a network device that cannot be activated
#. because it's disabled by rfkill (airplane mode); %s is a network identifier
#. because it's disabled by rfkill (airplane mode); %s is a network identifier */
#: ../js/ui/status/network.js:592
#, javascript-format
msgid "%s Disabled"
@@ -1419,13 +1376,13 @@ msgstr "Paramètres Wi-Fi"
msgid "Turn On"
msgstr "Activer"
#. Translators: %s is a network identifier
#. Translators: %s is a network identifier */
#: ../js/ui/status/network.js:1296
#, javascript-format
msgid "%s Hotspot Active"
msgstr "Hotspot %s actif"
#. Translators: %s is a network identifier
#. Translators: %s is a network identifier */
#: ../js/ui/status/network.js:1311
#, javascript-format
msgid "%s Not Connected"
@@ -1435,7 +1392,7 @@ msgstr "%s non connecté"
msgid "connecting..."
msgstr "connexion..."
#. Translators: this is for network connections that require some kind of key or password
#. Translators: this is for network connections that require some kind of key or password */
#: ../js/ui/status/network.js:1414
msgid "authentication required"
msgstr "authentification nécessaire"
@@ -1476,27 +1433,20 @@ msgstr "Paramètres de gestion de l'énergie"
msgid "Fully Charged"
msgstr "Charge complète"
#. 0 is reported when UPower does not have enough data
#. to estimate battery life
#: ../js/ui/status/power.js:72 ../js/ui/status/power.js:78
msgid "Estimating…"
msgstr "Estimation en cours…"
#. Translators: this is <hours>:<minutes> Remaining (<percentage>)
#: ../js/ui/status/power.js:86
#, javascript-format
msgid "%d%02d Remaining (%d%%)"
msgstr "%d%02d restant (%d%%)"
#. Translators: this is <hours>:<minutes> Until Full (<percentage>)
#: ../js/ui/status/power.js:91
#, javascript-format
msgid "%d%02d Until Full (%d%%)"
msgstr "%d%02d avant chargement complet (%d%%)"
#. The menu only appears when airplane mode is on, so just
#. statically build it as if it was on, rather than dynamically
#. changing the menu contents.
#: ../js/ui/status/rfkill.js:88
msgid "Airplane Mode On"
msgstr "Mode avion activé"
@@ -1564,7 +1514,7 @@ msgstr "Voulez-vous conserver ces paramètres d'affichage ?"
#. Translators: this and the following message should be limited in lenght,
#. to avoid ellipsizing the labels.
#.
#. */
#: ../js/ui/windowManager.js:82
msgid "Revert Settings"
msgstr "Restaurer les paramètres"
@@ -1581,7 +1531,7 @@ msgstr[0] "Les paramètres seront restaurés dans %d seconde"
msgstr[1] "Les paramètres seront restaurés dans %d secondes"
#. Translators: This represents the size of a window. The first number is
#. * the width of the window and the second is the height.
#. * the width of the window and the second is the height. */
#: ../js/ui/windowManager.js:658
#, javascript-format
msgid "%d x %d"
@@ -1657,7 +1607,7 @@ msgstr "Agenda d'Evolution"
#. translators:
#. * The number of sound outputs on a particular device
#: ../src/gvc/gvc-mixer-control.c:1835
#: ../src/gvc/gvc-mixer-control.c:1837
#, c-format
msgid "%u Output"
msgid_plural "%u Outputs"
@@ -1666,31 +1616,31 @@ msgstr[1] "%u sorties"
#. translators:
#. * The number of sound inputs on a particular device
#: ../src/gvc/gvc-mixer-control.c:1845
#: ../src/gvc/gvc-mixer-control.c:1847
#, c-format
msgid "%u Input"
msgid_plural "%u Inputs"
msgstr[0] "%u entrée"
msgstr[1] "%u entrées"
#: ../src/gvc/gvc-mixer-control.c:2371
#: ../src/gvc/gvc-mixer-control.c:2373
msgid "System Sounds"
msgstr "Sons système"
#: ../src/main.c:381
#: ../src/main.c:373
msgid "Print version"
msgstr "Affiche la version"
#: ../src/main.c:387
#: ../src/main.c:379
msgid "Mode used by GDM for login screen"
msgstr "Mode utilisé par GDM pour l'écran de connexion"
#: ../src/main.c:393
#: ../src/main.c:385
msgid "Use a specific mode, e.g. \"gdm\" for login screen"
msgstr ""
"Utiliser un mode particulier, par ex. « gdm » pour l'écran de connexion"
#: ../src/main.c:399
#: ../src/main.c:391
msgid "List possible modes"
msgstr "Lister les modes possibles"

1727
po/ga.po

File diff suppressed because it is too large Load Diff

1517
po/gd.po

File diff suppressed because it is too large Load Diff

View File

@@ -10,10 +10,9 @@
msgid ""
msgstr ""
"Project-Id-Version: gnome-shell master\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
"shell&keywords=I18N+L10N&component=general\n"
"POT-Creation-Date: 2015-09-28 20:46+0000\n"
"PO-Revision-Date: 2015-09-29 00:34+0200\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-08-26 00:05+0200\n"
"PO-Revision-Date: 2015-08-26 00:10+0200\n"
"Last-Translator: Fran Dieguez <frandieguez@gnome.org>\n"
"Language-Team: gnome-l10n-gl@gnome.org\n"
"Language: gl\n"
@@ -321,7 +320,7 @@ msgid "Cancel"
msgstr "Cancelar"
#: ../js/gdm/authPrompt.js:169 ../js/gdm/authPrompt.js:215
#: ../js/gdm/authPrompt.js:447
#: ../js/gdm/authPrompt.js:435
msgid "Next"
msgstr "Seguinte"
@@ -348,7 +347,7 @@ msgstr "Non está na lista?"
#. Translators: this message is shown below the username entry field
#. to clue the user in on how to login to the local network realm
#: ../js/gdm/loginDialog.js:850
#: ../js/gdm/loginDialog.js:847
#, javascript-format
msgid "(e.g., user or %s)"
msgstr "(p.ex., usuario ou %s)"
@@ -356,12 +355,12 @@ msgstr "(p.ex., usuario ou %s)"
#. TTLS and PEAP are actually much more complicated, but this complication
#. is not visible here since we only care about phase2 authentication
#. (and don't even care of which one)
#: ../js/gdm/loginDialog.js:855 ../js/ui/components/networkAgent.js:271
#: ../js/gdm/loginDialog.js:852 ../js/ui/components/networkAgent.js:271
#: ../js/ui/components/networkAgent.js:289
msgid "Username: "
msgstr "Nome de usuario: "
#: ../js/gdm/loginDialog.js:1184
#: ../js/gdm/loginDialog.js:1181
msgid "Login Window"
msgstr "Xanela de inicio de sesión"
@@ -515,7 +514,8 @@ msgstr "Cambiar fondo de escritorio…"
msgid "Display Settings"
msgstr "Preferencias da pantalla"
#: ../js/ui/backgroundMenu.js:22 ../js/ui/status/system.js:366
#: ../js/ui/backgroundMenu.js:22 ../js/ui/panel.js:650
#: ../js/ui/status/system.js:366
msgid "Settings"
msgstr "Preferencias"
@@ -591,33 +591,33 @@ msgctxt "event list time"
msgid "All Day"
msgstr "Todo o día"
#: ../js/ui/calendar.js:1295
#: ../js/ui/calendar.js:1291
msgid "Clear section"
msgstr "Limpar sección"
#: ../js/ui/calendar.js:1522
#: ../js/ui/calendar.js:1518
msgid "Events"
msgstr "Eventos"
#: ../js/ui/calendar.js:1531
#: ../js/ui/calendar.js:1527
msgctxt "calendar heading"
msgid "%A, %B %d"
msgstr "%A, %d de %B"
#: ../js/ui/calendar.js:1535
#: ../js/ui/calendar.js:1531
msgctxt "calendar heading"
msgid "%A, %B %d, %Y"
msgstr "%A, %d de %B de %Y"
#: ../js/ui/calendar.js:1620
#: ../js/ui/calendar.js:1616
msgid "Notifications"
msgstr "Notificacións"
#: ../js/ui/calendar.js:1771
#: ../js/ui/calendar.js:1767
msgid "No Notifications"
msgstr "Non hai notificacións"
#: ../js/ui/calendar.js:1774
#: ../js/ui/calendar.js:1770
msgid "No Events"
msgstr "Non hai eventos"
@@ -973,7 +973,7 @@ msgstr "Activado"
#. translators:
#. * The device has been disabled
#: ../js/ui/lookingGlass.js:719 ../src/gvc/gvc-mixer-control.c:1828
#: ../js/ui/lookingGlass.js:719 ../src/gvc/gvc-mixer-control.c:1830
msgid "Disabled"
msgstr "Desactivado"
@@ -1027,12 +1027,6 @@ msgstr "Saír"
msgid "Activities"
msgstr "Actividades"
#: ../js/ui/panel.js:650
#| msgid "System"
msgctxt "System menu in the top bar"
msgid "System"
msgstr "Sistema"
#: ../js/ui/panel.js:754
msgid "Top Bar"
msgstr "Barra superior"
@@ -1609,7 +1603,7 @@ msgstr "Calendario de Evolution"
#. translators:
#. * The number of sound outputs on a particular device
#: ../src/gvc/gvc-mixer-control.c:1835
#: ../src/gvc/gvc-mixer-control.c:1837
#, c-format
msgid "%u Output"
msgid_plural "%u Outputs"
@@ -1618,32 +1612,32 @@ msgstr[1] "%u saídas"
#. translators:
#. * The number of sound inputs on a particular device
#: ../src/gvc/gvc-mixer-control.c:1845
#: ../src/gvc/gvc-mixer-control.c:1847
#, c-format
msgid "%u Input"
msgid_plural "%u Inputs"
msgstr[0] "%u entrada"
msgstr[1] "%u entradas"
#: ../src/gvc/gvc-mixer-control.c:2371
#: ../src/gvc/gvc-mixer-control.c:2373
msgid "System Sounds"
msgstr "Sons do sistema"
#: ../src/main.c:381
#: ../src/main.c:373
msgid "Print version"
msgstr "Imprimir versión"
#: ../src/main.c:387
#: ../src/main.c:379
msgid "Mode used by GDM for login screen"
msgstr "Modo usado por GDM para a pantalla de inicio"
#: ../src/main.c:393
#: ../src/main.c:385
msgid "Use a specific mode, e.g. \"gdm\" for login screen"
msgstr ""
"Usar un modo específico, por exemplo, «gdm» para a pantalla de inicio de "
"sesión"
#: ../src/main.c:399
#: ../src/main.c:391
msgid "List possible modes"
msgstr "Listar os modos posíbeis"

265
po/he.po
View File

@@ -10,8 +10,8 @@ msgid ""
msgid ""
msgstr ""
"Project-Id-Version: gnome-shell master\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-11-19 20:37+0200\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-08-30 21:15+0300\n"
"PO-Revision-Date: 2015-08-30 21:16+0300\n"
"Last-Translator: Yosef Or Boczko <yoseforb@gmail.com>\n"
"Language-Team: עברית <>\n"
@@ -47,6 +47,15 @@ msgstr "הצגת כל היישומים"
#: ../data/50-gnome-shell-system.xml.in.h:6
msgid "Open the application menu"
msgstr "פתיחת תפריט היישום"
#: ../data/gnome-shell.desktop.in.in.h:1
msgid "GNOME Shell"
msgstr "מעטפת GNOME"
#: ../data/gnome-shell.desktop.in.in.h:2
#: ../data/gnome-shell-wayland.desktop.in.in.h:2
msgid "Window management and application launching"
msgstr "ניהול חלונות והרצת יישומים"
#: ../data/gnome-shell-extension-prefs.desktop.in.in.h:1
msgid "GNOME Shell Extension Preferences"
@@ -55,13 +64,9 @@ msgstr "העדפות ההרחבות של GNOME Shell"
#: ../data/gnome-shell-extension-prefs.desktop.in.in.h:2
msgid "Configure GNOME Shell Extensions"
msgstr "הגדרת הרחבות GNOME Shell"
#: ../data/org.gnome.Shell.desktop.in.in.h:1
msgid "GNOME Shell"
msgstr "מעטפת GNOME"
#: ../data/org.gnome.Shell.desktop.in.in.h:2
msgid "Window management and application launching"
#: ../data/gnome-shell-wayland.desktop.in.in.h:1
msgid "GNOME Shell (wayland compositor)"
msgstr "GNOME Shell (מסדר wayland)"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:1
@@ -165,92 +170,74 @@ msgstr ""
"'Remember Password' checkbox will be present. This key sets the default "
"state of the checkbox."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:18
msgid ""
"Whether the default Bluetooth adapter had set up devices associated to it"
msgstr ""
"Whether the default Bluetooth adapter had set up devices associated to it"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:19
msgid ""
"The shell will only show a Bluetooth menu item if a Bluetooth adapter is "
"powered, or if there were devices set up associated with the default "
"adapter. This will be reset if the default adapter is ever seen not to have "
"devices associated to it."
msgstr ""
"The shell will only show a Bluetooth menu item if a Bluetooth adapter is "
"powered, or if there were devices set up associated with the default "
"adapter. This will be reset if the default adapter is ever seen not to have "
"devices associated to it."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:18
msgid "Show the week date in the calendar"
msgstr "Show the week date in the calendar"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:19
msgid "If true, display the ISO week date in the calendar."
msgstr "If true, display the ISO week date in the calendar."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:20
msgid "Keybinding to open the application menu"
msgstr "Keybinding to open the application menu"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:21
msgid "Keybinding to open the application menu."
msgstr "Keybinding to open the application menu."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:22
msgid "Keybinding to open the \"Show Applications\" view"
msgstr "Keybinding to open the \"Show Applications\" view"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:23
msgid ""
"Keybinding to open the \"Show Applications\" view of the Activities Overview."
msgstr ""
"Keybinding to open the \"Show Applications\" view of the Activities Overview."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:24
msgid "Keybinding to open the overview"
msgstr "Keybinding to open the overview"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:25
msgid "Keybinding to open the Activities Overview."
msgstr "Keybinding to open the Activities Overview."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:26
msgid "Keybinding to toggle the visibility of the notification list"
msgstr "Keybinding to toggle the visibility of the notification list"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:27
msgid "Keybinding to toggle the visibility of the notification list."
msgstr "Keybinding to toggle the visibility of the notification list."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:28
msgid "Keybinding to focus the active notification"
msgstr "Keybinding to focus the active notification"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:29
msgid "Keybinding to focus the active notification."
msgstr "Keybinding to focus the active notification."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:30
msgid ""
"Keybinding that pauses and resumes all running tweens, for debugging purposes"
msgstr ""
"Keybinding that pauses and resumes all running tweens, for debugging purposes"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:31
msgid "Which keyboard to use"
msgstr "Which keyboard to use"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:32
msgid "The type of keyboard to use."
msgstr "The type of keyboard to use."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:33
msgid "Limit switcher to current workspace."
msgstr "Limit switcher to current workspace."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:34
msgid ""
"If true, only applications that have windows on the current workspace are "
@@ -258,51 +245,51 @@ msgstr ""
msgstr ""
"If true, only applications that have windows on the current workspace are "
"shown in the switcher. Otherwise, all applications are included."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:35
msgid "The application icon mode."
msgstr "The application icon mode."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:36
msgid ""
"Configures how the windows are shown in the switcher. Valid possibilities "
"are 'thumbnail-only' (shows a thumbnail of the window), 'app-icon-"
"only' (shows only the application icon) or 'both'."
msgstr ""
"Configures how the windows are shown in the switcher. Valid possibilities "
"are 'thumbnail-only' (shows a thumbnail of the window), 'app-icon-"
"only' (shows only the application icon) or 'both'."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:37
msgid ""
"If true, only windows from the current workspace are shown in the switcher. "
"Otherwise, all windows are included."
msgstr ""
"If true, only windows from the current workspace are shown in the switcher. "
"Otherwise, all windows are included."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:38
msgid ""
"Configures how the windows are shown in the switcher. Valid possibilities "
"are 'thumbnail-only' (shows a thumbnail of the window), 'app-icon-"
"only' (shows only the application icon) or 'both'."
msgstr ""
"Configures how the windows are shown in the switcher. Valid possibilities "
"are 'thumbnail-only' (shows a thumbnail of the window), 'app-icon-"
"only' (shows only the application icon) or 'both'."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:39
msgid ""
"If true, only windows from the current workspace are shown in the switcher. "
"Otherwise, all windows are included."
msgstr ""
"If true, only windows from the current workspace are shown in the switcher. "
"Otherwise, all windows are included."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:38
msgid "Attach modal dialog to the parent window"
msgstr "Attach modal dialog to the parent window"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:39
msgid ""
"This key overrides the key in org.gnome.mutter when running GNOME Shell."
msgstr ""
"This key overrides the key in org.gnome.mutter when running GNOME Shell."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:40
msgid "Enable edge tiling when dropping windows on screen edges"
msgstr "Enable edge tiling when dropping windows on screen edges"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:41
msgid "Workspaces are managed dynamically"
msgstr "Workspaces are managed dynamically"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:42
msgid "Workspaces only on primary monitor"
msgstr "Workspaces only on primary monitor"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:43
msgid "Delay focus changes in mouse mode until the pointer stops moving"
msgstr "Delay focus changes in mouse mode until the pointer stops moving"
@@ -327,7 +314,7 @@ msgid "Cancel"
msgid "Cancel"
msgstr "ביטול"
#: ../js/gdm/authPrompt.js:169 ../js/gdm/authPrompt.js:215
#: ../js/gdm/authPrompt.js:169 ../js/gdm/authPrompt.js:215
#: ../js/gdm/authPrompt.js:435
msgid "Next"
msgstr "הבא"
@@ -354,7 +341,7 @@ msgstr "לא רשום?"
msgstr "לא רשום?"
#. Translators: this message is shown below the username entry field
#. to clue the user in on how to login to the local network realm
#. to clue the user in on how to login to the local network realm
#: ../js/gdm/loginDialog.js:847
#, javascript-format
msgid "(e.g., user or %s)"
@@ -362,12 +349,12 @@ msgstr "(משתמש או %s לדוגמה)"
#. TTLS and PEAP are actually much more complicated, but this complication
#. is not visible here since we only care about phase2 authentication
#. (and don't even care of which one)
#. (and don't even care of which one)
#: ../js/gdm/loginDialog.js:852 ../js/ui/components/networkAgent.js:271
#: ../js/ui/components/networkAgent.js:289
msgid "Username: "
msgstr "שם משתמש:"
#: ../js/gdm/loginDialog.js:1181
msgid "Login Window"
msgstr "חלון כניסה"
@@ -503,12 +490,12 @@ msgstr "הוספה למועדפים"
#: ../js/ui/appDisplay.js:1897
msgid "Show Details"
msgstr "הצגת פרטים"
#: ../js/ui/appFavorites.js:132
#, javascript-format
msgid "%s has been added to your favorites."
msgstr "%s נוסף למועדפים שלך."
#: ../js/ui/appFavorites.js:166
#, javascript-format
msgid "%s has been removed from your favorites."
@@ -521,7 +508,8 @@ msgstr "החלפת הרקע…"
#: ../js/ui/backgroundMenu.js:21
msgid "Display Settings"
msgstr "הגדרות תצוגה"
#: ../js/ui/backgroundMenu.js:22 ../js/ui/panel.js:650
#: ../js/ui/status/system.js:366
msgid "Settings"
msgstr "הגדרות"
@@ -585,12 +573,6 @@ msgstr "חודש קודם"
#: ../js/ui/calendar.js:576
msgid "Next month"
msgstr "חודש הבא"
#: ../js/ui/calendar.js:728
#, javascript-format
msgctxt "date day number format"
msgid "%d"
msgstr "%d"
#: ../js/ui/calendar.js:783
msgid "Week %V"
@@ -603,33 +585,33 @@ msgctxt "event list time"
msgctxt "event list time"
msgid "All Day"
msgstr "יום שלם"
#: ../js/ui/calendar.js:1291
msgid "Clear section"
msgstr "ניקוי מקטע"
#: ../js/ui/calendar.js:1518
msgid "Events"
msgstr "אירועים"
#: ../js/ui/calendar.js:1527
msgctxt "calendar heading"
msgid "%A, %B %d"
msgstr "%A, ה־%e ב%B"
#: ../js/ui/calendar.js:1531
msgctxt "calendar heading"
msgid "%A, %B %d, %Y"
msgstr "%A, ה־%e ב%B, %Y"
#: ../js/ui/calendar.js:1616
msgid "Notifications"
msgstr "התרעות"
#: ../js/ui/calendar.js:1767
msgid "No Notifications"
msgstr "אין התרעות"
#: ../js/ui/calendar.js:1770
msgid "No Events"
msgstr "אין אירועים"
@@ -641,7 +623,7 @@ msgstr "חובר כונן חיצוני"
#: ../js/ui/components/automountManager.js:102
msgid "External drive disconnected"
msgstr "נותק כונן חיצוני"
#: ../js/ui/components/autorunManager.js:354
#, javascript-format
msgid "Open with %s"
@@ -979,7 +961,7 @@ msgstr "פעיל"
msgstr "פעיל"
#. translators:
#. * The device has been disabled
#. * The device has been disabled
#: ../js/ui/lookingGlass.js:719 ../src/gvc/gvc-mixer-control.c:1830
msgid "Disabled"
msgstr "מנוטרל"
@@ -1023,22 +1005,17 @@ msgstr "סקירה"
#: ../js/ui/overview.js:244
msgid "Type to search…"
msgstr "יש להקליד כדי לחפש…"
#: ../js/ui/panel.js:352
msgid "Quit"
msgstr "יציאה"
#. 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:404
msgid "Activities"
msgstr "פעילויות"
#: ../js/ui/panel.js:695
msgctxt "System menu in the top bar"
msgid "System"
msgstr "מערכת"
#: ../js/ui/panel.js:754
msgid "Top Bar"
msgstr "הסרגל העליון"
@@ -1051,15 +1028,15 @@ msgstr "הסרגל העליון"
#: ../js/ui/popupMenu.js:289
msgid "toggle-switch-us"
msgstr "toggle-switch-intl"
#: ../js/ui/runDialog.js:70
msgid "Enter a Command"
msgstr "נא להזין פקודה"
#: ../js/ui/runDialog.js:110 ../js/ui/windowMenu.js:162
msgid "Close"
msgstr "סגירה"
#: ../js/ui/runDialog.js:281
msgid "Restarting…"
msgstr "מופעל מחדש…"
@@ -1184,41 +1161,29 @@ msgstr "ניגודיות גבוהה"
#: ../js/ui/status/accessibility.js:202
msgid "Large Text"
msgstr "טקסט גדול"
#: ../js/ui/status/bluetooth.js:47
msgid "Bluetooth"
#: ../js/ui/status/bluetooth.js:51 ../js/ui/status/network.js:178
#: ../js/ui/status/network.js:353 ../js/ui/status/network.js:1279
#: ../js/ui/status/network.js:1394 ../js/ui/status/rfkill.js:90
#: ../js/ui/status/rfkill.js:117
msgid "Turn Off"
msgstr "כיבוי"
#: ../js/ui/status/bluetooth.js:54
msgid "Bluetooth Settings"
msgstr "הגדרות Bluetooth"
#. Translators: this is the number of connected bluetooth devices
#. Translators: this is the number of connected bluetooth devices
#: ../js/ui/status/bluetooth.js:105
#, c-format
msgid "%d Connected"
msgid_plural "%d Connected"
msgstr[0] "אחד מחובר"
msgstr[1] "%d מחוברים"
#: ../js/ui/status/bluetooth.js:138
msgid "Off"
msgstr "כבוי"
#: ../js/ui/status/bluetooth.js:107
msgid "Not In Use"
msgstr "לא בשימוש"
#: ../js/ui/status/bluetooth.js:142 ../js/ui/status/network.js:1279
msgid "Turn On"
msgstr "הפעלה"
#: ../js/ui/status/bluetooth.js:142 ../js/ui/status/network.js:178
#: ../js/ui/status/network.js:353 ../js/ui/status/network.js:1279
#: ../js/ui/status/network.js:1394 ../js/ui/status/rfkill.js:90
#: ../js/ui/status/rfkill.js:117
msgid "Turn Off"
msgstr "כיבוי"
#: ../js/ui/status/brightness.js:44
msgid "Brightness"
@@ -1386,6 +1351,10 @@ msgstr "בחירת רשת"
#: ../js/ui/status/network.js:1177
msgid "Wi-Fi Settings"
msgstr "הגדרות רשת אלחוטית"
#: ../js/ui/status/network.js:1279
msgid "Turn On"
msgstr "הפעלה"
#. Translators: %s is a network identifier
#: ../js/ui/status/network.js:1296
@@ -1435,37 +1404,32 @@ msgstr "ההתחברות נכשלה"
#: ../js/ui/status/network.js:1698
msgid "Activation of network connection failed"
msgstr "הפעלת חיבור הרשת נכשלה"
#: ../js/ui/status/power.js:49
msgid "Power Settings"
msgstr "הגדרות צריכת החשמל"
#: ../js/ui/status/power.js:65
msgid "Fully Charged"
msgstr "בטעינה מלאה"
#. 0 is reported when UPower does not have enough data
#. to estimate battery life
#. to estimate battery life
#: ../js/ui/status/power.js:72 ../js/ui/status/power.js:78
msgid "Estimating…"
msgstr "מתבצע שערוך…"
#. Translators: this is <hours>:<minutes> Remaining (<percentage>)
#. Translators: this is <hours>:<minutes> Remaining (<percentage>)
#: ../js/ui/status/power.js:86
#, javascript-format
#, javascript-format
msgid "%d%02d Remaining (%d%%)"
msgstr "%d%02d נותרו (%d%%)"
#. Translators: this is <hours>:<minutes> Until Full (<percentage>)
#. Translators: this is <hours>:<minutes> Until Full (<percentage>)
#: ../js/ui/status/power.js:91
#, javascript-format
#, javascript-format
msgid "%d%02d Until Full (%d%%)"
msgstr "%d:%02d עד לטעינה מלאה (%d%%)"
#: ../js/ui/status/power.js:131 ../js/ui/status/power.js:133
#, javascript-format
msgid "%d%%"
msgstr "%d%%"
#. The menu only appears when airplane mode is on, so just
#. statically build it as if it was on, rather than dynamically
@@ -1630,7 +1594,7 @@ msgstr "יומן אבולושן"
msgstr "יומן אבולושן"
#. translators:
#. * The number of sound outputs on a particular device
#. * The number of sound outputs on a particular device
#: ../src/gvc/gvc-mixer-control.c:1837
#, c-format
msgid "%u Output"
@@ -1639,57 +1603,57 @@ msgstr[1] "%u פלטים"
msgstr[1] "%u פלטים"
#. translators:
#. * The number of sound inputs on a particular device
#. * The number of sound inputs on a particular device
#: ../src/gvc/gvc-mixer-control.c:1847
#, c-format
msgid "%u Input"
msgid_plural "%u Inputs"
msgstr[0] "קלט אחד"
msgstr[1] "%u קלטים"
#: ../src/gvc/gvc-mixer-control.c:2373
msgid "System Sounds"
msgstr "צלילי מערכת"
#: ../src/main.c:373
msgid "Print version"
msgstr "Print version"
#: ../src/main.c:379
msgid "Mode used by GDM for login screen"
msgstr "המצב בו GDM יעשה שימוש לצורך מסך הכניסה"
#: ../src/main.c:385
msgid "Use a specific mode, e.g. \"gdm\" for login screen"
msgstr "שימוש במצב מסוים, לדוגמה: „gdm“ למסך הכניסה"
#: ../src/main.c:391
msgid "List possible modes"
msgstr "הצגת המצבים האפשריים"
#: ../src/shell-app.c:239
msgctxt "program"
msgid "Unknown"
msgstr "לא ידוע"
#: ../src/shell-app.c:480
#, c-format
msgid "Failed to launch “%s”"
msgstr "אירע כשל בטעינת „%s”"
#: ../src/shell-keyring-prompt.c:742
msgid "Passwords do not match."
msgstr "הססמאות אינן תואמות."
#: ../src/shell-keyring-prompt.c:750
msgid "Password cannot be blank"
msgstr "הססמה אינה יכולה להישאר ריקה"
#: ../src/shell-polkit-authentication-agent.c:346
msgid "Authentication dialog was dismissed by the user"
msgstr "המשתמש בחר להתעלם מתיבת דו־שיח האימות"
#~ msgid "GNOME Shell (wayland compositor)"
#~ msgid "Bluetooth"
#~ msgstr "Bluetooth"
# javascript-format
@@ -1697,6 +1661,9 @@ msgstr "המשתמש בחר להתעלם מתיבת דו־שיח האימות"
#~ msgid_plural "%d Connected Devices"
#~ msgstr[0] "התקן אחד מחובר"
#~ msgstr[1] "%d התקנים מחוברים"
#~ msgid "Off"
#~ msgstr "כבוי"
#~ msgid "Authentication required"
#~ msgstr "נדרש אימות"
@@ -2290,6 +2257,10 @@ msgstr "המשתמש בחר להתעלם מתיבת דו־שיח האימות"
#~ msgstr[0] "דקה אחת נותרה"
#~ msgstr[1] "%d דקות נותרו"
#~ msgstr[2] "שתי דקות נותרו"
#~ msgctxt "percent of battery remaining"
#~ msgid "%d%%"
#~ msgstr "%d%%"
#~ msgid "AC Adapter"
#~ msgstr "מתאם חשמל"

529
po/hu.po

File diff suppressed because it is too large Load Diff

850
po/id.po

File diff suppressed because it is too large Load Diff

186
po/it.po
View File

@@ -11,8 +11,8 @@ msgstr ""
"Project-Id-Version: gnome-shell\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
"shell&keywords=I18N+L10N&component=general\n"
"POT-Creation-Date: 2015-09-28 20:46+0000\n"
"PO-Revision-Date: 2015-09-29 09:02+0200\n"
"POT-Creation-Date: 2015-09-03 20:12+0000\n"
"PO-Revision-Date: 2015-09-04 10:15+0200\n"
"Last-Translator: Milo Casagrande <milo@milo.name>\n"
"Language-Team: Italiano <tp@lists.linux.it>\n"
"Language: it\n"
@@ -21,7 +21,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-DamnedLies-Scope: partial\n"
"X-Generator: Poedit 1.8.5\n"
"X-Generator: Poedit 1.8.4\n"
#: ../data/50-gnome-shell-system.xml.in.h:1
msgid "System"
@@ -350,23 +350,15 @@ msgstr "Accedi"
msgid "Choose Session"
msgstr "Scegli sessione"
#. translators: this message is shown below the user list on the
#. login screen. It can be activated to reveal an entry for
#. manually entering the username.
#: ../js/gdm/loginDialog.js:431
msgid "Not listed?"
msgstr "Non elencato?"
#. Translators: this message is shown below the username entry field
#. to clue the user in on how to login to the local network realm
#: ../js/gdm/loginDialog.js:850
#, javascript-format
msgid "(e.g., user or %s)"
msgstr "(p.e. utente o %s)"
#. TTLS and PEAP are actually much more complicated, but this complication
#. is not visible here since we only care about phase2 authentication
#. (and don't even care of which one)
#: ../js/gdm/loginDialog.js:855 ../js/ui/components/networkAgent.js:271
#: ../js/ui/components/networkAgent.js:289
msgid "Username: "
@@ -380,11 +372,6 @@ msgstr "Finestra di accesso"
msgid "Authentication error"
msgstr "Errore di autenticazione"
#. We don't show fingerprint messages directly since it's
#. not the main auth service. Instead we use the messages
#. as a cue to display our own message.
#. Translators: this message is shown below the password entry field
#. to indicate the user can swipe their finger instead
#: ../js/gdm/util.js:473
msgid "(or swipe finger)"
msgstr "(o passare il dito)"
@@ -393,8 +380,6 @@ msgstr "(o passare il dito)"
msgid "Command not found"
msgstr "Comando non trovato"
#. Replace "Error invoking GLib.shell_parse_argv: " with
#. something nicer
#: ../js/misc/util.js:152
msgid "Could not parse command:"
msgstr "Impossibile analizzare il comando:"
@@ -404,78 +389,70 @@ msgstr "Impossibile analizzare il comando:"
msgid "Execution of “%s” failed:"
msgstr "Esecuzione di «%s» non riuscita:"
#. Translators: Time in 24h format
#. Translators: Time in 24h format */
#: ../js/misc/util.js:191
msgid "%H%M"
msgstr "%H%M"
#. Translators: this is the word "Yesterday" followed by a
#. time string in 24h format. i.e. "Yesterday, 14:30"
#. time string in 24h format. i.e. "Yesterday, 14:30" */
#: ../js/misc/util.js:197
#, no-c-format
msgid "Yesterday, %H%M"
msgstr "Ieri, %H%M"
#. Translators: this is the week day name followed by a time
#. string in 24h format. i.e. "Monday, 14:30"
#. string in 24h format. i.e. "Monday, 14:30" */
#: ../js/misc/util.js:203
#, no-c-format
msgid "%A, %H%M"
msgstr "%A, %H%M"
#. Translators: this is the month name and day number
#. followed by a time string in 24h format.
#. i.e. "May 25, 14:30"
#. i.e. "May 25, 14:30" */
#: ../js/misc/util.js:209
#, no-c-format
msgid "%B %d, %H%M"
msgstr "%e %B, %H%M"
#. Translators: this is the month name, day number, year
#. number followed by a time string in 24h format.
#. i.e. "May 25 2012, 14:30"
#. i.e. "May 25 2012, 14:30" */
#: ../js/misc/util.js:215
#, no-c-format
msgid "%B %d %Y, %H%M"
msgstr "%e %B %Y, %H%M"
#. Translators: Time in 12h format
#. Translators: Time in 12h format */
#: ../js/misc/util.js:220
msgid "%l%M %p"
msgstr "%I%M %p"
#. Translators: this is the word "Yesterday" followed by a
#. time string in 12h format. i.e. "Yesterday, 2:30 pm"
#. time string in 12h format. i.e. "Yesterday, 2:30 pm" */
#: ../js/misc/util.js:226
#, no-c-format
msgid "Yesterday, %l%M %p"
msgstr "Ieri, %I%M %p"
#. Translators: this is the week day name followed by a time
#. string in 12h format. i.e. "Monday, 2:30 pm"
#. string in 12h format. i.e. "Monday, 2:30 pm" */
#: ../js/misc/util.js:232
#, no-c-format
msgid "%A, %l%M %p"
msgstr "%A, %I%M %p"
#. Translators: this is the month name and day number
#. followed by a time string in 12h format.
#. i.e. "May 25, 2:30 pm"
#. i.e. "May 25, 2:30 pm" */
#: ../js/misc/util.js:238
#, no-c-format
msgid "%B %d, %l%M %p"
msgstr "%d %B, %I%M %p"
#. Translators: this is the month name, day number, year
#. number followed by a time string in 12h format.
#. i.e. "May 25 2012, 2:30 pm"
#. i.e. "May 25 2012, 2:30 pm"*/
#: ../js/misc/util.js:244
#, no-c-format
msgid "%B %d %Y, %l%M %p"
msgstr "%d %B %Y, %I%M %p"
#. TRANSLATORS: this is the title of the wifi captive portal login
#. * window, until we know the title of the actual login page
#. * window, until we know the title of the actual login page */
#: ../js/portalHelper/main.js:85
msgid "Web Authentication Redirect"
msgstr "Redirezione autenticazione web"
@@ -528,11 +505,12 @@ msgstr "Cambia sfondo…"
msgid "Display Settings"
msgstr "Impostazioni monitor"
#: ../js/ui/backgroundMenu.js:22 ../js/ui/status/system.js:366
#: ../js/ui/backgroundMenu.js:22 ../js/ui/panel.js:650
#: ../js/ui/status/system.js:366
msgid "Settings"
msgstr "Impostazioni"
#. Translators: Enter 0-6 (Sunday-Saturday) for non-work days. Examples: "0" (Sunday) "6" (Saturday) "06" (Sunday and Saturday).
#. Translators: Enter 0-6 (Sunday-Saturday) for non-work days. Examples: "0" (Sunday) "6" (Saturday) "06" (Sunday and Saturday). */
#: ../js/ui/calendar.js:55
msgctxt "calendar-no-work"
msgid "06"
@@ -542,43 +520,43 @@ msgstr "06"
#. *
#. * NOTE: These grid abbreviations are always shown together
#. * and in order, e.g. "S M T W T F S".
#.
#. */
#: ../js/ui/calendar.js:84
msgctxt "grid sunday"
msgid "S"
msgstr "D"
#. Translators: Calendar grid abbreviation for Monday
#. Translators: Calendar grid abbreviation for Monday */
#: ../js/ui/calendar.js:86
msgctxt "grid monday"
msgid "M"
msgstr "L"
#. Translators: Calendar grid abbreviation for Tuesday
#. Translators: Calendar grid abbreviation for Tuesday */
#: ../js/ui/calendar.js:88
msgctxt "grid tuesday"
msgid "T"
msgstr "M"
#. Translators: Calendar grid abbreviation for Wednesday
#. Translators: Calendar grid abbreviation for Wednesday */
#: ../js/ui/calendar.js:90
msgctxt "grid wednesday"
msgid "W"
msgstr "M"
#. Translators: Calendar grid abbreviation for Thursday
#. Translators: Calendar grid abbreviation for Thursday */
#: ../js/ui/calendar.js:92
msgctxt "grid thursday"
msgid "T"
msgstr "G"
#. Translators: Calendar grid abbreviation for Friday
#. Translators: Calendar grid abbreviation for Friday */
#: ../js/ui/calendar.js:94
msgctxt "grid friday"
msgid "F"
msgstr "V"
#. Translators: Calendar grid abbreviation for Saturday
#. Translators: Calendar grid abbreviation for Saturday */
#: ../js/ui/calendar.js:96
msgctxt "grid saturday"
msgid "S"
@@ -598,39 +576,39 @@ msgstr "Settimana %V"
#. Translators: Shown in calendar event list for all day events
#. * Keep it short, best if you can use less then 10 characters
#.
#. */
#: ../js/ui/calendar.js:1188
msgctxt "event list time"
msgid "All Day"
msgstr "Giornata"
#: ../js/ui/calendar.js:1295
#: ../js/ui/calendar.js:1291
msgid "Clear section"
msgstr "Annulla selezione"
#: ../js/ui/calendar.js:1522
#: ../js/ui/calendar.js:1518
msgid "Events"
msgstr "Eventi"
#: ../js/ui/calendar.js:1531
#: ../js/ui/calendar.js:1527
msgctxt "calendar heading"
msgid "%A, %B %d"
msgstr "%A, %e %B"
#: ../js/ui/calendar.js:1535
#: ../js/ui/calendar.js:1531
msgctxt "calendar heading"
msgid "%A, %B %d, %Y"
msgstr "%A, %e %B %Y"
#: ../js/ui/calendar.js:1620
#: ../js/ui/calendar.js:1616
msgid "Notifications"
msgstr "Notifiche"
#: ../js/ui/calendar.js:1771
#: ../js/ui/calendar.js:1767
msgid "No Notifications"
msgstr "Nessuna notifica"
#: ../js/ui/calendar.js:1774
#: ../js/ui/calendar.js:1770
msgid "No Events"
msgstr "Nessun evento"
@@ -660,7 +638,6 @@ msgstr "Inserire di nuovo:"
msgid "Connect"
msgstr "Connetti"
#. Cisco LEAP
#: ../js/ui/components/networkAgent.js:233
#: ../js/ui/components/networkAgent.js:245
#: ../js/ui/components/networkAgent.js:273
@@ -669,7 +646,6 @@ msgstr "Connetti"
msgid "Password: "
msgstr "Password: "
#. static WEP
#: ../js/ui/components/networkAgent.js:238
msgid "Key: "
msgstr "Chiave: "
@@ -761,13 +737,13 @@ msgstr "Autentica"
#. Translators: "that didn't work" refers to the fact that the
#. * requested authentication was not gained; this can happen
#. * because of an authentication error (like invalid password),
#. * for instance.
#. * for instance. */
#: ../js/ui/components/polkitAgent.js:301 ../js/ui/shellMountOperation.js:383
msgid "Sorry, that didn't work. Please try again."
msgstr "Errore nell'autenticazione. Provare di nuovo."
#. Translators: this is the other person changing their old IM name to their new
#. IM name.
#. IM name. */
#: ../js/ui/components/telepathyClient.js:759
#, javascript-format
msgid "%s is now known as %s"
@@ -782,15 +758,13 @@ msgid "Show Applications"
msgstr "Mostra applicazioni"
# cruscotto?!?!?!?!?!?!?
#. Translators: this is the name of the dock/favorites area on
#. the left of the overview
#: ../js/ui/dash.js:449
msgid "Dash"
msgstr "Dash"
#. Translators: This is the date format to use when the calendar popup is
#. * shown - it is shown just below the time in the shell (e.g. "Tue 9:29 AM").
#.
#. */
#: ../js/ui/dateMenu.js:73
msgid "%B %e %Y"
msgstr "%e %B %Y"
@@ -798,7 +772,7 @@ msgstr "%e %B %Y"
#. Translators: This is the accessible name of the date button shown
#. * below the time in the shell; it should combine the weekday and the
#. * date, e.g. "Tuesday February 17 2015".
#.
#. */
#: ../js/ui/dateMenu.js:80
msgid "%A %B %e %Y"
msgstr "%A %e %B %Y"
@@ -931,13 +905,13 @@ msgstr "Alcune applicazioni risultano occupate o con lavoro non salvato."
msgid "Other users are logged in."
msgstr "Altri utenti sono collegati."
#. Translators: Remote here refers to a remote session, like a ssh login
#. Translators: Remote here refers to a remote session, like a ssh login */
#: ../js/ui/endSessionDialog.js:640
#, javascript-format
msgid "%s (remote)"
msgstr "%s (remoto)"
#. Translators: Console here refers to a tty like a VT console
#. Translators: Console here refers to a tty like a VT console */
#: ../js/ui/endSessionDialog.js:643
#, javascript-format
msgid "%s (console)"
@@ -956,7 +930,7 @@ msgstr "Scaricare e installare «%s» da extensions.gnome.org?"
msgid "Keyboard"
msgstr "Tastiera"
#. translators: 'Hide' is a verb
#. translators: 'Hide' is a verb */
#: ../js/ui/legacyTray.js:66
msgid "Hide tray"
msgstr "Nascondi cassetto"
@@ -969,7 +943,7 @@ msgstr "Icone di stato"
msgid "No extensions installed"
msgstr "Nessuna estensione installata"
#. Translators: argument is an extension UUID.
#. Translators: argument is an extension UUID. */
#: ../js/ui/lookingGlass.js:697
#, javascript-format
msgid "%s has not emitted any errors."
@@ -991,7 +965,7 @@ msgstr "Abilitato"
# (ndt) o disabilitata?
#. translators:
#. * The device has been disabled
#: ../js/ui/lookingGlass.js:719 ../src/gvc/gvc-mixer-control.c:1828
#: ../js/ui/lookingGlass.js:719 ../src/gvc/gvc-mixer-control.c:1830
msgid "Disabled"
msgstr "Disabilitato"
@@ -1030,7 +1004,7 @@ msgstr "Panoramica"
#. Translators: this is the text displayed
#. in the search entry when no search is
#. active; it should not exceed ~30
#. characters.
#. characters. */
#: ../js/ui/overview.js:244
msgid "Type to search…"
msgstr "Digita per cercare…"
@@ -1040,25 +1014,15 @@ msgid "Quit"
msgstr "Esci"
#. 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:404
msgid "Activities"
msgstr "Attività"
#: ../js/ui/panel.js:650
msgctxt "System menu in the top bar"
msgid "System"
msgstr "Sistema"
#: ../js/ui/panel.js:754
msgid "Top Bar"
msgstr "Barra superiore"
#. Translators: this MUST be either "toggle-switch-us"
#. (for toggle switches containing the English words
#. "ON" and "OFF") or "toggle-switch-intl" (for toggle
#. switches containing "◯" and "|"). Other values will
#. simply result in invisible toggle switches.
#: ../js/ui/popupMenu.js:289
msgid "toggle-switch-us"
msgstr "toggle-switch-us"
@@ -1076,7 +1040,7 @@ msgid "Restarting…"
msgstr "Riavvio…"
#. Translators: This is a time format for a date in
#. long format
#. long format */
#: ../js/ui/screenShield.js:85
msgid "%A, %B %d"
msgstr "%A, %d %B"
@@ -1103,13 +1067,6 @@ msgstr "Blocca"
msgid "GNOME needs to lock the screen"
msgstr "GNOME deve bloccare lo schermo"
#. We could not become modal, so we can't activate the
#. screenshield. The user is probably very upset at this
#. point, but any application using global grabs is broken
#. Just tell him to stop using this app
#.
#. XXX: another option is to kick the user into the gdm login
#. screen, where we're not affected by grabs
#: ../js/ui/screenShield.js:805 ../js/ui/screenShield.js:1271
msgid "Unable to lock"
msgstr "Impossibile bloccare"
@@ -1206,7 +1163,7 @@ msgstr "Spegni"
msgid "Bluetooth Settings"
msgstr "Impostazioni Bluetooth"
#. Translators: this is the number of connected bluetooth devices
#. Translators: this is the number of connected bluetooth devices */
#: ../js/ui/status/bluetooth.js:105
#, javascript-format
msgid "%d Connected"
@@ -1255,13 +1212,13 @@ msgstr "Abilita"
msgid "<unknown>"
msgstr "<sconosciuto>"
#. Translators: %s is a network identifier
#. Translators: %s is a network identifier */
#: ../js/ui/status/network.js:451 ../js/ui/status/network.js:1308
#, javascript-format
msgid "%s Off"
msgstr "%s spento"
#. Translators: %s is a network identifier
#. Translators: %s is a network identifier */
#: ../js/ui/status/network.js:454
#, javascript-format
msgid "%s Connected"
@@ -1270,45 +1227,45 @@ msgstr "%s collegato"
# FIXME o femminile? boh
#. Translators: this is for network devices that are physically present but are not
#. under NetworkManager's control (and thus cannot be used in the menu);
#. %s is a network identifier
#. %s is a network identifier */
#: ../js/ui/status/network.js:459
#, javascript-format
msgid "%s Unmanaged"
msgstr "%s non gestito"
#. Translators: %s is a network identifier
#. Translators: %s is a network identifier */
#: ../js/ui/status/network.js:462
#, javascript-format
msgid "%s Disconnecting"
msgstr "%s in disconnessione"
#. Translators: %s is a network identifier
#. Translators: %s is a network identifier */
#: ../js/ui/status/network.js:469 ../js/ui/status/network.js:1300
#, javascript-format
msgid "%s Connecting"
msgstr "%s in connessione"
#. Translators: this is for network connections that require some kind of key or password; %s is a network identifier
#. Translators: this is for network connections that require some kind of key or password; %s is a network identifier */
#: ../js/ui/status/network.js:472
#, javascript-format
msgid "%s Requires Authentication"
msgstr "%s richiede autenticazione"
#. Translators: this is for devices that require some kind of firmware or kernel
#. module, which is missing; %s is a network identifier
#. module, which is missing; %s is a network identifier */
#: ../js/ui/status/network.js:480
#, javascript-format
msgid "Firmware Missing For %s"
msgstr "Firmware mancante per %s"
#. Translators: this is for a network device that cannot be activated (for example it
#. is disabled by rfkill, or it has no coverage; %s is a network identifier
#. is disabled by rfkill, or it has no coverage; %s is a network identifier */
#: ../js/ui/status/network.js:484
#, javascript-format
msgid "%s Unavailable"
msgstr "%s non disponibile"
#. Translators: %s is a network identifier
#. Translators: %s is a network identifier */
#: ../js/ui/status/network.js:487
#, javascript-format
msgid "%s Connection Failed"
@@ -1323,7 +1280,7 @@ msgid "Mobile Broadband Settings"
msgstr "Impostazioni banda larga mobile"
# (ndt) o disabilitata?
#. Translators: %s is a network identifier
#. Translators: %s is a network identifier */
#: ../js/ui/status/network.js:588 ../js/ui/status/network.js:1305
#, javascript-format
msgid "%s Hardware Disabled"
@@ -1331,7 +1288,7 @@ msgstr "%s disabilitato via hardware"
# (ndt) o disabilitata?
#. Translators: this is for a network device that cannot be activated
#. because it's disabled by rfkill (airplane mode); %s is a network identifier
#. because it's disabled by rfkill (airplane mode); %s is a network identifier */
#: ../js/ui/status/network.js:592
#, javascript-format
msgid "%s Disabled"
@@ -1393,13 +1350,13 @@ msgstr "Impostazioni Wi-Fi"
msgid "Turn On"
msgstr "Attiva"
#. Translators: %s is a network identifier
#. Translators: %s is a network identifier */
#: ../js/ui/status/network.js:1296
#, javascript-format
msgid "%s Hotspot Active"
msgstr "Hotspot %s attivo"
#. Translators: %s is a network identifier
#. Translators: %s is a network identifier */
#: ../js/ui/status/network.js:1311
#, javascript-format
msgid "%s Not Connected"
@@ -1409,7 +1366,7 @@ msgstr "%s non collegato"
msgid "connecting..."
msgstr "connessione…"
#. Translators: this is for network connections that require some kind of key or password
#. Translators: this is for network connections that require some kind of key or password */
#: ../js/ui/status/network.js:1414
msgid "authentication required"
msgstr "richiesta autenticazione"
@@ -1450,28 +1407,21 @@ msgstr "Impostazioni alimentazione"
msgid "Fully Charged"
msgstr "Carica"
#. 0 is reported when UPower does not have enough data
#. to estimate battery life
#: ../js/ui/status/power.js:72 ../js/ui/status/power.js:78
msgid "Estimating…"
msgstr "In stima…"
#. Translators: this is <hours>:<minutes> Remaining (<percentage>)
#: ../js/ui/status/power.js:86
#, javascript-format
msgid "%d%02d Remaining (%d%%)"
msgstr "%d%02d rimanente (%d%%)"
# in stile MacOS sarebbe "al pieno" :P
#. Translators: this is <hours>:<minutes> Until Full (<percentage>)
#: ../js/ui/status/power.js:91
#, javascript-format
msgid "%d%02d Until Full (%d%%)"
msgstr "%d%02d alla carica (%d%%)"
#. The menu only appears when airplane mode is on, so just
#. statically build it as if it was on, rather than dynamically
#. changing the menu contents.
#: ../js/ui/status/rfkill.js:88
msgid "Airplane Mode On"
msgstr "Modalità aereo attiva"
@@ -1540,7 +1490,7 @@ msgstr "Mantenere queste impostazioni per il monitor?"
#. Translators: this and the following message should be limited in lenght,
#. to avoid ellipsizing the labels.
#.
#. */
#: ../js/ui/windowManager.js:82
msgid "Revert Settings"
msgstr "Ripristina impostazioni"
@@ -1557,7 +1507,7 @@ msgstr[0] "Le modifiche alle impostazioni saranno ripristinate tra %d secondo"
msgstr[1] "Le modifiche alle impostazioni saranno ripristinate tra %d secondi"
#. Translators: This represents the size of a window. The first number is
#. * the width of the window and the second is the height.
#. * the width of the window and the second is the height. */
#: ../js/ui/windowManager.js:658
#, javascript-format
msgid "%d x %d"
@@ -1633,7 +1583,7 @@ msgstr "Calendario di Evolution"
#. translators:
#. * The number of sound outputs on a particular device
#: ../src/gvc/gvc-mixer-control.c:1835
#: ../src/gvc/gvc-mixer-control.c:1837
#, c-format
msgid "%u Output"
msgid_plural "%u Outputs"
@@ -1642,30 +1592,30 @@ msgstr[1] "%u uscite"
#. translators:
#. * The number of sound inputs on a particular device
#: ../src/gvc/gvc-mixer-control.c:1845
#: ../src/gvc/gvc-mixer-control.c:1847
#, c-format
msgid "%u Input"
msgid_plural "%u Inputs"
msgstr[0] "%u ingresso"
msgstr[1] "%u ingressi"
#: ../src/gvc/gvc-mixer-control.c:2371
#: ../src/gvc/gvc-mixer-control.c:2373
msgid "System Sounds"
msgstr "Audio di sistema"
#: ../src/main.c:381
#: ../src/main.c:373
msgid "Print version"
msgstr "Stampa la versione"
#: ../src/main.c:387
#: ../src/main.c:379
msgid "Mode used by GDM for login screen"
msgstr "Modalità usata da GDM per la schermata d'accesso"
#: ../src/main.c:393
#: ../src/main.c:385
msgid "Use a specific mode, e.g. \"gdm\" for login screen"
msgstr "Usa una modalità specifica, p.e. \"gdm\" per la schermata di accesso"
#: ../src/main.c:399
#: ../src/main.c:391
msgid "List possible modes"
msgstr "Elenca le modalità possibili"

395
po/kk.po
View File

@@ -8,8 +8,8 @@ msgstr ""
"Project-Id-Version: master\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
"shell&keywords=I18N+L10N&component=general\n"
"POT-Creation-Date: 2015-12-06 10:12+0000\n"
"PO-Revision-Date: 2015-12-06 19:33+0500\n"
"POT-Creation-Date: 2015-09-12 08:19+0000\n"
"PO-Revision-Date: 2015-09-12 21:07+0500\n"
"Last-Translator: Baurzhan Muftakhidinov <baurthefirst@gmail.com>\n"
"Language-Team: Kazakh <kk_KZ@googlegroups.com>\n"
"Language: kk\n"
@@ -17,7 +17,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
"X-Generator: Poedit 1.8.5\n"
"X-Generator: Poedit 1.8.4\n"
#: ../data/50-gnome-shell-system.xml.in.h:1
msgid "System"
@@ -43,6 +43,15 @@ msgstr "Барлық қолданбаларды көрсету"
msgid "Open the application menu"
msgstr "Қолданбалар мәзірін ашу"
#: ../data/gnome-shell.desktop.in.in.h:1
msgid "GNOME Shell"
msgstr "GNOME Shell"
#: ../data/gnome-shell.desktop.in.in.h:2
#: ../data/gnome-shell-wayland.desktop.in.in.h:2
msgid "Window management and application launching"
msgstr "Терезелерді басқару мен қолданбаларды жөнелту"
#: ../data/gnome-shell-extension-prefs.desktop.in.in.h:1
msgid "GNOME Shell Extension Preferences"
msgstr "GNOME Shell кеңейту баптаулары"
@@ -51,13 +60,9 @@ msgstr "GNOME Shell кеңейту баптаулары"
msgid "Configure GNOME Shell Extensions"
msgstr "GNOME Shell кеңейтулерін баптау"
#: ../data/org.gnome.Shell.desktop.in.in.h:1
msgid "GNOME Shell"
msgstr "GNOME Shell"
#: ../data/org.gnome.Shell.desktop.in.in.h:2
msgid "Window management and application launching"
msgstr "Терезелерді басқару мен қолданбаларды жөнелту"
#: ../data/gnome-shell-wayland.desktop.in.in.h:1
msgid "GNOME Shell (wayland compositor)"
msgstr "GNOME Shell (wayland үйлестіргіші)"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:1
msgid "Enable internal tools useful for developers and testers from Alt-F2"
@@ -165,95 +170,77 @@ msgstr ""
"бастапқы күйін орнатады."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:18
msgid ""
"Whether the default Bluetooth adapter had set up devices associated to it"
msgstr ""
"Үнсіз келісім бойынша Bluetooth адаптерінде байланысқан құрылғылар бар ма"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:19
msgid ""
"The shell will only show a Bluetooth menu item if a Bluetooth adapter is "
"powered, or if there were devices set up associated with the default "
"adapter. This will be reset if the default adapter is ever seen not to have "
"devices associated to it."
msgstr ""
"Қоршам Bluetooth мәзірін тек Bluetooth адаптері іске қосылған болса және "
"үнсіз келісім бойынша адаптерінде байланысқан құрылғылар бар болса ғана "
"көрсетеді. Бұл үнсіз келісім адаптерінде байланысқан құрылғылар жоқ болса "
"тасталады."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:20
msgid "Show the week date in the calendar"
msgstr "Күнтізбеде апта күнін көрсету"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:21
#: ../data/org.gnome.shell.gschema.xml.in.in.h:19
msgid "If true, display the ISO week date in the calendar."
msgstr "Ақиқат болса, күнтізбеде ISO апта күнін көрсетеді."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:22
#: ../data/org.gnome.shell.gschema.xml.in.in.h:20
msgid "Keybinding to open the application menu"
msgstr "Қолданбалар мәзірін ашу үшін пернелер комбинациясы"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:23
#: ../data/org.gnome.shell.gschema.xml.in.in.h:21
msgid "Keybinding to open the application menu."
msgstr "Қолданбалар мәзірін ашу үшін пернелер комбинациясы."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:24
#: ../data/org.gnome.shell.gschema.xml.in.in.h:22
msgid "Keybinding to open the \"Show Applications\" view"
msgstr "\"Қолданбаларды көрсету\" көрінісін ашу үшін пернелер комбинациясы"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:25
#: ../data/org.gnome.shell.gschema.xml.in.in.h:23
msgid ""
"Keybinding to open the \"Show Applications\" view of the Activities Overview."
msgstr ""
"Көрініс ішінен \"Қолданбаларды көрсету\" ашу үшін пернелер комбинациясы"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:26
#: ../data/org.gnome.shell.gschema.xml.in.in.h:24
msgid "Keybinding to open the overview"
msgstr "Шолуды ашу үшін пернелер комбинациясы."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:27
#: ../data/org.gnome.shell.gschema.xml.in.in.h:25
msgid "Keybinding to open the Activities Overview."
msgstr "Көріністі ашу үшін пернелер комбинациясы."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:28
#: ../data/org.gnome.shell.gschema.xml.in.in.h:26
msgid "Keybinding to toggle the visibility of the notification list"
msgstr ""
"Хабарламалар тізімінің көрінуін іске қосу/сөндіру үшін пернелер комбинациясы"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:29
#: ../data/org.gnome.shell.gschema.xml.in.in.h:27
msgid "Keybinding to toggle the visibility of the notification list."
msgstr ""
"Хабарламалар тізімінің көрінуін іске қосу/сөндіру үшін пернелер комбинациясы."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:30
#: ../data/org.gnome.shell.gschema.xml.in.in.h:28
msgid "Keybinding to focus the active notification"
msgstr "Белсенді ескертуге фокусты ауыстыру пернелер комбинациясы"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:31
#: ../data/org.gnome.shell.gschema.xml.in.in.h:29
msgid "Keybinding to focus the active notification."
msgstr "Белсенді ескертуге фокусты ауыстыру пернелер комбинациясы."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:32
#: ../data/org.gnome.shell.gschema.xml.in.in.h:30
msgid ""
"Keybinding that pauses and resumes all running tweens, for debugging purposes"
msgstr ""
"Барлық орындалып тұрған анимацияларды тоқтататын не жалғастыратын пернелер "
"жарлығы (жөндеу үшін)"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:33
#: ../data/org.gnome.shell.gschema.xml.in.in.h:31
msgid "Which keyboard to use"
msgstr "Қолданылатын пернетақта"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:34
#: ../data/org.gnome.shell.gschema.xml.in.in.h:32
msgid "The type of keyboard to use."
msgstr "Қолданылатын пернетақта түрі."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:35
#: ../data/org.gnome.shell.gschema.xml.in.in.h:33
msgid "Limit switcher to current workspace."
msgstr "Ауыстырғышты ағымдағы жұмыс орнымен шектеу."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:36
#: ../data/org.gnome.shell.gschema.xml.in.in.h:34
msgid ""
"If true, only applications that have windows on the current workspace are "
"shown in the switcher. Otherwise, all applications are included."
@@ -261,11 +248,11 @@ msgstr ""
"Таңдалса, ауыстырғышта тек ағымдағы жұмыс орнындағы терезелері бар "
"қолданбалар көрсетіледі. Болмаса, барлық қолданбалар болады."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:37
#: ../data/org.gnome.shell.gschema.xml.in.in.h:35
msgid "The application icon mode."
msgstr "Қолданбаның таңбаша режимі."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:38
#: ../data/org.gnome.shell.gschema.xml.in.in.h:36
msgid ""
"Configures how the windows are shown in the switcher. Valid possibilities "
"are 'thumbnail-only' (shows a thumbnail of the window), 'app-icon-"
@@ -275,7 +262,7 @@ msgstr ""
"'thumbnail-only' (терезенің кіші көрінісі көрсетіледі), 'app-icon-only' (тек "
"қолданба таңбашасы көрсетіледі) немесе 'both' (екеуі де)."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:39
#: ../data/org.gnome.shell.gschema.xml.in.in.h:37
msgid ""
"If true, only windows from the current workspace are shown in the switcher. "
"Otherwise, all windows are included."
@@ -283,32 +270,32 @@ msgstr ""
"Таңдалса, ауыстырғышта тек ағымдағы жұмыс орнындағы терезелер көрсетіледі. "
"Болмаса, барлық терезелер болады."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:40
#: ../data/org.gnome.shell.gschema.xml.in.in.h:38
msgid "Attach modal dialog to the parent window"
msgstr "Модальды сұхбатты аталық терезесіне жалғау"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:41
#: ../data/org.gnome.shell.gschema.xml.in.in.h:39
msgid ""
"This key overrides the key in org.gnome.mutter when running GNOME Shell."
msgstr ""
"Бұл кілт GNOME Shell орындалған кезде org.gnome.mutter ішіндегі кілтті "
"үстінен жазады."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:42
#: ../data/org.gnome.shell.gschema.xml.in.in.h:40
msgid "Enable edge tiling when dropping windows on screen edges"
msgstr ""
"Терезелерді экран шеттеріне апарған кезде олардың өлшемдерін өзгертуді іске "
"қосу"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:43
#: ../data/org.gnome.shell.gschema.xml.in.in.h:41
msgid "Workspaces are managed dynamically"
msgstr "Жұмыс орындары динамикалы түрде басқарылады"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:44
#: ../data/org.gnome.shell.gschema.xml.in.in.h:42
msgid "Workspaces only on primary monitor"
msgstr "Жұмыс орындар тек біріншілік мониторда"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:45
#: ../data/org.gnome.shell.gschema.xml.in.in.h:43
msgid "Delay focus changes in mouse mode until the pointer stops moving"
msgstr "Тышқан режиміндегі фокусты ауыстыру курсор тоқтағанша дейін кідірту"
@@ -347,33 +334,25 @@ msgctxt "button"
msgid "Sign In"
msgstr "Кіру"
#: ../js/gdm/loginDialog.js:285
#: ../js/gdm/loginDialog.js:281
msgid "Choose Session"
msgstr "Сессияны таңдау"
#. translators: this message is shown below the user list on the
#. login screen. It can be activated to reveal an entry for
#. manually entering the username.
#: ../js/gdm/loginDialog.js:435
#: ../js/gdm/loginDialog.js:431
msgid "Not listed?"
msgstr "Тізімде жоқсыз ба?"
#. Translators: this message is shown below the username entry field
#. to clue the user in on how to login to the local network realm
#: ../js/gdm/loginDialog.js:854
#: ../js/gdm/loginDialog.js:850
#, javascript-format
msgid "(e.g., user or %s)"
msgstr "(мыс., пайдаланушы не %s)"
#. TTLS and PEAP are actually much more complicated, but this complication
#. is not visible here since we only care about phase2 authentication
#. (and don't even care of which one)
#: ../js/gdm/loginDialog.js:859 ../js/ui/components/networkAgent.js:271
#: ../js/gdm/loginDialog.js:855 ../js/ui/components/networkAgent.js:271
#: ../js/ui/components/networkAgent.js:289
msgid "Username: "
msgstr "Пайдаланушы аты:"
#: ../js/gdm/loginDialog.js:1196
#: ../js/gdm/loginDialog.js:1184
msgid "Login Window"
msgstr "Жүйеге кіру терезесі"
@@ -381,11 +360,6 @@ msgstr "Жүйеге кіру терезесі"
msgid "Authentication error"
msgstr "Аутентификация қатесі"
#. We don't show fingerprint messages directly since it's
#. not the main auth service. Instead we use the messages
#. as a cue to display our own message.
#. Translators: this message is shown below the password entry field
#. to indicate the user can swipe their finger instead
#: ../js/gdm/util.js:473
msgid "(or swipe finger)"
msgstr "(немесе саусағыңызды өткізіңіз)"
@@ -394,8 +368,6 @@ msgstr "(немесе саусағыңызды өткізіңіз)"
msgid "Command not found"
msgstr "Команда табылмады"
#. Replace "Error invoking GLib.shell_parse_argv: " with
#. something nicer
#: ../js/misc/util.js:152
msgid "Could not parse command:"
msgstr "Команданы талдау мүмкін емес:"
@@ -405,78 +377,70 @@ msgstr "Команданы талдау мүмкін емес:"
msgid "Execution of “%s” failed:"
msgstr "\"%s\" жөнелту сәтсіз:"
#. Translators: Time in 24h format
#. Translators: Time in 24h format */
#: ../js/misc/util.js:191
msgid "%H%M"
msgstr "%H%M"
#. Translators: this is the word "Yesterday" followed by a
#. time string in 24h format. i.e. "Yesterday, 14:30"
#. time string in 24h format. i.e. "Yesterday, 14:30" */
#: ../js/misc/util.js:197
#, no-c-format
msgid "Yesterday, %H%M"
msgstr "Кеше, %H%M"
#. Translators: this is the week day name followed by a time
#. string in 24h format. i.e. "Monday, 14:30"
#. string in 24h format. i.e. "Monday, 14:30" */
#: ../js/misc/util.js:203
#, no-c-format
msgid "%A, %H%M"
msgstr "%A, %H%M"
#. Translators: this is the month name and day number
#. followed by a time string in 24h format.
#. i.e. "May 25, 14:30"
#. i.e. "May 25, 14:30" */
#: ../js/misc/util.js:209
#, no-c-format
msgid "%B %d, %H%M"
msgstr "%B %d, %H%M"
#. Translators: this is the month name, day number, year
#. number followed by a time string in 24h format.
#. i.e. "May 25 2012, 14:30"
#. i.e. "May 25 2012, 14:30" */
#: ../js/misc/util.js:215
#, no-c-format
msgid "%B %d %Y, %H%M"
msgstr "%B %d %Y, %H%M"
#. Translators: Time in 12h format
#. Translators: Time in 12h format */
#: ../js/misc/util.js:220
msgid "%l%M %p"
msgstr "%l%M %p"
#. Translators: this is the word "Yesterday" followed by a
#. time string in 12h format. i.e. "Yesterday, 2:30 pm"
#. time string in 12h format. i.e. "Yesterday, 2:30 pm" */
#: ../js/misc/util.js:226
#, no-c-format
msgid "Yesterday, %l%M %p"
msgstr "Кеше, %l%M %p"
#. Translators: this is the week day name followed by a time
#. string in 12h format. i.e. "Monday, 2:30 pm"
#. string in 12h format. i.e. "Monday, 2:30 pm" */
#: ../js/misc/util.js:232
#, no-c-format
msgid "%A, %l%M %p"
msgstr "%A, %l%M %p"
#. Translators: this is the month name and day number
#. followed by a time string in 12h format.
#. i.e. "May 25, 2:30 pm"
#. i.e. "May 25, 2:30 pm" */
#: ../js/misc/util.js:238
#, no-c-format
msgid "%B %d, %l%M %p"
msgstr "%B %d, %l%M %p"
#. Translators: this is the month name, day number, year
#. number followed by a time string in 12h format.
#. i.e. "May 25 2012, 2:30 pm"
#. i.e. "May 25 2012, 2:30 pm"*/
#: ../js/misc/util.js:244
#, no-c-format
msgid "%B %d %Y, %l%M %p"
msgstr "%B %d %Y, %l%M %p"
#. TRANSLATORS: this is the title of the wifi captive portal login
#. * window, until we know the title of the actual login page
#. * window, until we know the title of the actual login page */
#: ../js/portalHelper/main.js:85
msgid "Web Authentication Redirect"
msgstr "Веб аутентификацияның қайта бағдарлауы"
@@ -509,12 +473,12 @@ msgstr "Таңдамалыларға қосу"
msgid "Show Details"
msgstr "Деректерді көрсету"
#: ../js/ui/appFavorites.js:133
#: ../js/ui/appFavorites.js:132
#, javascript-format
msgid "%s has been added to your favorites."
msgstr "%s таңдамалыларыңызға қосылды."
#: ../js/ui/appFavorites.js:167
#: ../js/ui/appFavorites.js:166
#, javascript-format
msgid "%s has been removed from your favorites."
msgstr "%s таңдамалыларыңыздан өшірілді."
@@ -527,11 +491,12 @@ msgstr "Фонды өзгерту..."
msgid "Display Settings"
msgstr "Экран баптаулары"
#: ../js/ui/backgroundMenu.js:22 ../js/ui/status/system.js:366
#: ../js/ui/backgroundMenu.js:22 ../js/ui/panel.js:650
#: ../js/ui/status/system.js:366
msgid "Settings"
msgstr "Баптаулар"
#. Translators: Enter 0-6 (Sunday-Saturday) for non-work days. Examples: "0" (Sunday) "6" (Saturday) "06" (Sunday and Saturday).
#. Translators: Enter 0-6 (Sunday-Saturday) for non-work days. Examples: "0" (Sunday) "6" (Saturday) "06" (Sunday and Saturday). */
#: ../js/ui/calendar.js:55
msgctxt "calendar-no-work"
msgid "06"
@@ -541,43 +506,43 @@ msgstr "06"
#. *
#. * NOTE: These grid abbreviations are always shown together
#. * and in order, e.g. "S M T W T F S".
#.
#. */
#: ../js/ui/calendar.js:84
msgctxt "grid sunday"
msgid "S"
msgstr "Жк"
#. Translators: Calendar grid abbreviation for Monday
#. Translators: Calendar grid abbreviation for Monday */
#: ../js/ui/calendar.js:86
msgctxt "grid monday"
msgid "M"
msgstr "Дс"
#. Translators: Calendar grid abbreviation for Tuesday
#. Translators: Calendar grid abbreviation for Tuesday */
#: ../js/ui/calendar.js:88
msgctxt "grid tuesday"
msgid "T"
msgstr "Сс"
#. Translators: Calendar grid abbreviation for Wednesday
#. Translators: Calendar grid abbreviation for Wednesday */
#: ../js/ui/calendar.js:90
msgctxt "grid wednesday"
msgid "W"
msgstr "Ср"
#. Translators: Calendar grid abbreviation for Thursday
#. Translators: Calendar grid abbreviation for Thursday */
#: ../js/ui/calendar.js:92
msgctxt "grid thursday"
msgid "T"
msgstr "Бс"
#. Translators: Calendar grid abbreviation for Friday
#. Translators: Calendar grid abbreviation for Friday */
#: ../js/ui/calendar.js:94
msgctxt "grid friday"
msgid "F"
msgstr "Жм"
#. Translators: Calendar grid abbreviation for Saturday
#. Translators: Calendar grid abbreviation for Saturday */
#: ../js/ui/calendar.js:96
msgctxt "grid saturday"
msgid "S"
@@ -591,51 +556,45 @@ msgstr "Өткен ай"
msgid "Next month"
msgstr "Келесі ай"
#: ../js/ui/calendar.js:728
#, javascript-format
msgctxt "date day number format"
msgid "%d"
msgstr "%d"
#: ../js/ui/calendar.js:783
msgid "Week %V"
msgstr "Апта %V"
#. Translators: Shown in calendar event list for all day events
#. * Keep it short, best if you can use less then 10 characters
#.
#. */
#: ../js/ui/calendar.js:1188
msgctxt "event list time"
msgid "All Day"
msgstr "Толық күн"
#: ../js/ui/calendar.js:1295
#: ../js/ui/calendar.js:1291
msgid "Clear section"
msgstr "Санатты тазарту"
#: ../js/ui/calendar.js:1522
#: ../js/ui/calendar.js:1518
msgid "Events"
msgstr "Оқиғалар"
#: ../js/ui/calendar.js:1531
#: ../js/ui/calendar.js:1527
msgctxt "calendar heading"
msgid "%A, %B %d"
msgstr "%A, %B %d"
#: ../js/ui/calendar.js:1535
#: ../js/ui/calendar.js:1531
msgctxt "calendar heading"
msgid "%A, %B %d, %Y"
msgstr "%A, %B %d, %Y"
#: ../js/ui/calendar.js:1620
#: ../js/ui/calendar.js:1616
msgid "Notifications"
msgstr "Хабарламалар"
#: ../js/ui/calendar.js:1771
#: ../js/ui/calendar.js:1767
msgid "No Notifications"
msgstr "Хабарламалар жоқ"
#: ../js/ui/calendar.js:1774
#: ../js/ui/calendar.js:1770
msgid "No Events"
msgstr "Оқиғалар жоқ"
@@ -647,7 +606,7 @@ msgstr "Сыртқы диск қосылды"
msgid "External drive disconnected"
msgstr "Сыртқы диск алынды"
#: ../js/ui/components/autorunManager.js:355
#: ../js/ui/components/autorunManager.js:354
#, javascript-format
msgid "Open with %s"
msgstr "%s көмегімен ашу"
@@ -665,7 +624,6 @@ msgstr "Қайтадан енгізіңіз:"
msgid "Connect"
msgstr "Байланысу"
#. Cisco LEAP
#: ../js/ui/components/networkAgent.js:233
#: ../js/ui/components/networkAgent.js:245
#: ../js/ui/components/networkAgent.js:273
@@ -674,7 +632,6 @@ msgstr "Байланысу"
msgid "Password: "
msgstr "Пароль:"
#. static WEP
#: ../js/ui/components/networkAgent.js:238
msgid "Key: "
msgstr "Кілт:"
@@ -765,13 +722,13 @@ msgstr "Аутентификация"
#. Translators: "that didn't work" refers to the fact that the
#. * requested authentication was not gained; this can happen
#. * because of an authentication error (like invalid password),
#. * for instance.
#. * for instance. */
#: ../js/ui/components/polkitAgent.js:301 ../js/ui/shellMountOperation.js:383
msgid "Sorry, that didn't work. Please try again."
msgstr "Кешіріңіз, талап сәтсіз. Қайтадан көріңіз."
#. Translators: this is the other person changing their old IM name to their new
#. IM name.
#. IM name. */
#: ../js/ui/components/telepathyClient.js:759
#, javascript-format
msgid "%s is now known as %s"
@@ -785,15 +742,13 @@ msgstr "Терезелер"
msgid "Show Applications"
msgstr "Қолданбаларды көрсету"
#. Translators: this is the name of the dock/favorites area on
#. the left of the overview
#: ../js/ui/dash.js:449
msgid "Dash"
msgstr "Dash"
#. Translators: This is the date format to use when the calendar popup is
#. * shown - it is shown just below the time in the shell (e.g. "Tue 9:29 AM").
#.
#. */
#: ../js/ui/dateMenu.js:73
msgid "%B %e %Y"
msgstr "%B %e %Y"
@@ -801,7 +756,7 @@ msgstr "%B %e %Y"
#. Translators: This is the accessible name of the date button shown
#. * below the time in the shell; it should combine the weekday and the
#. * date, e.g. "Tuesday February 17 2015".
#.
#. */
#: ../js/ui/dateMenu.js:80
msgid "%A %B %e %Y"
msgstr "%A %B %e %Y"
@@ -927,13 +882,13 @@ msgstr "Кейбір қолданбалар бос емес не сақталм
msgid "Other users are logged in."
msgstr "Басқа пайдаланушылар жүйеге кіріп тұр."
#. Translators: Remote here refers to a remote session, like a ssh login
#. Translators: Remote here refers to a remote session, like a ssh login */
#: ../js/ui/endSessionDialog.js:640
#, javascript-format
msgid "%s (remote)"
msgstr "%s (қашықтағы)"
#. Translators: Console here refers to a tty like a VT console
#. Translators: Console here refers to a tty like a VT console */
#: ../js/ui/endSessionDialog.js:643
#, javascript-format
msgid "%s (console)"
@@ -952,7 +907,7 @@ msgstr "extensions.gnome.org адресінен “%s” жүктеп алып,
msgid "Keyboard"
msgstr "Пернетақта"
#. translators: 'Hide' is a verb
#. translators: 'Hide' is a verb */
#: ../js/ui/legacyTray.js:66
msgid "Hide tray"
msgstr "Жүйелік трейді жасыру"
@@ -965,7 +920,7 @@ msgstr "Қалып-күй таңбашалары"
msgid "No extensions installed"
msgstr "Кеңейтулер орнатылмаған"
#. Translators: argument is an extension UUID.
#. Translators: argument is an extension UUID. */
#: ../js/ui/lookingGlass.js:697
#, javascript-format
msgid "%s has not emitted any errors."
@@ -985,7 +940,7 @@ msgstr "Іске қосылған"
#. translators:
#. * The device has been disabled
#: ../js/ui/lookingGlass.js:719 ../src/gvc/gvc-mixer-control.c:1828
#: ../js/ui/lookingGlass.js:719 ../src/gvc/gvc-mixer-control.c:1830
msgid "Disabled"
msgstr "Сөндірулі"
@@ -1024,53 +979,43 @@ msgstr "Шолу"
#. Translators: this is the text displayed
#. in the search entry when no search is
#. active; it should not exceed ~30
#. characters.
#. characters. */
#: ../js/ui/overview.js:244
msgid "Type to search…"
msgstr "Іздеу үшін теріңіз..."
#: ../js/ui/panel.js:358
#: ../js/ui/panel.js:352
msgid "Quit"
msgstr "Шығу"
#. Translators: If there is no suitable word for "Activities"
#. in your language, you can use the word for "Overview".
#: ../js/ui/panel.js:414
#. in your language, you can use the word for "Overview". */
#: ../js/ui/panel.js:404
msgid "Activities"
msgstr "Көрініс"
#: ../js/ui/panel.js:695
msgctxt "System menu in the top bar"
msgid "System"
msgstr "Жүйелік"
#: ../js/ui/panel.js:807
#: ../js/ui/panel.js:754
msgid "Top Bar"
msgstr "Үстідегі панель"
#. Translators: this MUST be either "toggle-switch-us"
#. (for toggle switches containing the English words
#. "ON" and "OFF") or "toggle-switch-intl" (for toggle
#. switches containing "◯" and "|"). Other values will
#. simply result in invisible toggle switches.
#: ../js/ui/popupMenu.js:289
msgid "toggle-switch-us"
msgstr "toggle-switch-intl"
#: ../js/ui/runDialog.js:71
#: ../js/ui/runDialog.js:70
msgid "Enter a Command"
msgstr "Команданы енгізу"
#: ../js/ui/runDialog.js:111 ../js/ui/windowMenu.js:162
#: ../js/ui/runDialog.js:110 ../js/ui/windowMenu.js:162
msgid "Close"
msgstr "Жабу"
#: ../js/ui/runDialog.js:282
#: ../js/ui/runDialog.js:281
msgid "Restarting…"
msgstr "Қайта қосу…"
#. Translators: This is a time format for a date in
#. long format
#. long format */
#: ../js/ui/screenShield.js:85
msgid "%A, %B %d"
msgstr "%A, %B %d"
@@ -1095,13 +1040,6 @@ msgstr "Блоктау"
msgid "GNOME needs to lock the screen"
msgstr "GNOME экранды блоктау керек"
#. We could not become modal, so we can't activate the
#. screenshield. The user is probably very upset at this
#. point, but any application using global grabs is broken
#. Just tell him to stop using this app
#.
#. XXX: another option is to kick the user into the gdm login
#. screen, where we're not affected by grabs
#: ../js/ui/screenShield.js:805 ../js/ui/screenShield.js:1271
msgid "Unable to lock"
msgstr "Блоктау мүмкін емес"
@@ -1186,40 +1124,28 @@ msgstr "Жоғары контраст"
msgid "Large Text"
msgstr "Үлкен мәтін"
#: ../js/ui/status/bluetooth.js:47
msgid "Bluetooth"
msgstr "Bluetooth"
#: ../js/ui/status/bluetooth.js:56
msgid "Bluetooth Settings"
msgstr "Bluetooth баптаулары"
#. Translators: this is the number of connected bluetooth devices
#: ../js/ui/status/bluetooth.js:136
#, javascript-format
msgid "%d Connected"
msgid_plural "%d Connected"
msgstr[0] "%d байланысқан"
#: ../js/ui/status/bluetooth.js:138
msgid "Off"
msgstr "Сөнд."
#: ../js/ui/status/bluetooth.js:140
msgid "Not In Use"
msgstr "Қолданылуда емес"
#: ../js/ui/status/bluetooth.js:142 ../js/ui/status/network.js:1279
msgid "Turn On"
msgstr "Іске қосу"
#: ../js/ui/status/bluetooth.js:142 ../js/ui/status/network.js:178
#: ../js/ui/status/bluetooth.js:51 ../js/ui/status/network.js:178
#: ../js/ui/status/network.js:353 ../js/ui/status/network.js:1279
#: ../js/ui/status/network.js:1394 ../js/ui/status/rfkill.js:90
#: ../js/ui/status/rfkill.js:117
msgid "Turn Off"
msgstr "Сөндіру"
#: ../js/ui/status/bluetooth.js:54
msgid "Bluetooth Settings"
msgstr "Bluetooth баптаулары"
#. Translators: this is the number of connected bluetooth devices */
#: ../js/ui/status/bluetooth.js:105
#, javascript-format
msgid "%d Connected"
msgid_plural "%d Connected"
msgstr[0] "%d байланысқан"
#: ../js/ui/status/bluetooth.js:107
msgid "Not In Use"
msgstr "Қолданылуда емес"
#: ../js/ui/status/brightness.js:44
msgid "Brightness"
msgstr "Жарықтылығы"
@@ -1256,13 +1182,13 @@ msgstr "Іске қосу"
msgid "<unknown>"
msgstr "<белгісіз>"
#. Translators: %s is a network identifier
#. Translators: %s is a network identifier */
#: ../js/ui/status/network.js:451 ../js/ui/status/network.js:1308
#, javascript-format
msgid "%s Off"
msgstr "%s сөндірулі"
#. Translators: %s is a network identifier
#. Translators: %s is a network identifier */
#: ../js/ui/status/network.js:454
#, javascript-format
msgid "%s Connected"
@@ -1270,45 +1196,45 @@ msgstr "%s байланысқан"
#. Translators: this is for network devices that are physically present but are not
#. under NetworkManager's control (and thus cannot be used in the menu);
#. %s is a network identifier
#. %s is a network identifier */
#: ../js/ui/status/network.js:459
#, javascript-format
msgid "%s Unmanaged"
msgstr "%s басқарылмайтын"
#. Translators: %s is a network identifier
#. Translators: %s is a network identifier */
#: ../js/ui/status/network.js:462
#, javascript-format
msgid "%s Disconnecting"
msgstr "%s байланысты үзуде"
#. Translators: %s is a network identifier
#. Translators: %s is a network identifier */
#: ../js/ui/status/network.js:469 ../js/ui/status/network.js:1300
#, javascript-format
msgid "%s Connecting"
msgstr "%s байланысуда"
#. Translators: this is for network connections that require some kind of key or password; %s is a network identifier
#. Translators: this is for network connections that require some kind of key or password; %s is a network identifier */
#: ../js/ui/status/network.js:472
#, javascript-format
msgid "%s Requires Authentication"
msgstr "%s аутентификацияны талап етеді"
#. Translators: this is for devices that require some kind of firmware or kernel
#. module, which is missing; %s is a network identifier
#. module, which is missing; %s is a network identifier */
#: ../js/ui/status/network.js:480
#, javascript-format
msgid "Firmware Missing For %s"
msgstr "%s үшін бинарлы кодтары жоқ"
#. Translators: this is for a network device that cannot be activated (for example it
#. is disabled by rfkill, or it has no coverage; %s is a network identifier
#. is disabled by rfkill, or it has no coverage; %s is a network identifier */
#: ../js/ui/status/network.js:484
#, javascript-format
msgid "%s Unavailable"
msgstr "%s қолжетерсіз"
#. Translators: %s is a network identifier
#. Translators: %s is a network identifier */
#: ../js/ui/status/network.js:487
#, javascript-format
msgid "%s Connection Failed"
@@ -1322,14 +1248,14 @@ msgstr "Сымды желі баптаулары"
msgid "Mobile Broadband Settings"
msgstr "Сымсыз кеңжолақты желісінің баптаулары"
#. Translators: %s is a network identifier
#. Translators: %s is a network identifier */
#: ../js/ui/status/network.js:588 ../js/ui/status/network.js:1305
#, javascript-format
msgid "%s Hardware Disabled"
msgstr "%s құрылғылық түрде сөндірулі тұр"
#. Translators: this is for a network device that cannot be activated
#. because it's disabled by rfkill (airplane mode); %s is a network identifier
#. because it's disabled by rfkill (airplane mode); %s is a network identifier */
#: ../js/ui/status/network.js:592
#, javascript-format
msgid "%s Disabled"
@@ -1387,13 +1313,17 @@ msgstr "Желіні таңдау"
msgid "Wi-Fi Settings"
msgstr "Wi-Fi баптаулары"
#. Translators: %s is a network identifier
#: ../js/ui/status/network.js:1279
msgid "Turn On"
msgstr "Іске қосу"
#. Translators: %s is a network identifier */
#: ../js/ui/status/network.js:1296
#, javascript-format
msgid "%s Hotspot Active"
msgstr "%s қатынау нүктесі белсенді"
#. Translators: %s is a network identifier
#. Translators: %s is a network identifier */
#: ../js/ui/status/network.js:1311
#, javascript-format
msgid "%s Not Connected"
@@ -1403,7 +1333,7 @@ msgstr "%s байланыспаған"
msgid "connecting..."
msgstr "байланысты орнату..."
#. Translators: this is for network connections that require some kind of key or password
#. Translators: this is for network connections that require some kind of key or password */
#: ../js/ui/status/network.js:1414
msgid "authentication required"
msgstr "аутентификация керек"
@@ -1436,42 +1366,28 @@ msgstr "Байланыс орнату сәтсіз"
msgid "Activation of network connection failed"
msgstr "Желілік байланысты белсендіру сәтсіз"
#: ../js/ui/status/power.js:61
#: ../js/ui/status/power.js:49
msgid "Power Settings"
msgstr "Қорек баптаулары"
#: ../js/ui/status/power.js:77
#: ../js/ui/status/power.js:65
msgid "Fully Charged"
msgstr "Толығымен зарядталған"
#. 0 is reported when UPower does not have enough data
#. to estimate battery life
#: ../js/ui/status/power.js:84 ../js/ui/status/power.js:90
#: ../js/ui/status/power.js:72 ../js/ui/status/power.js:78
msgid "Estimating…"
msgstr "Есептеу..."
#. Translators: this is <hours>:<minutes> Remaining (<percentage>)
#: ../js/ui/status/power.js:98
#: ../js/ui/status/power.js:86
#, javascript-format
#| msgid "%d%02d Remaining (%d%%)"
msgid "%d%02d Remaining (%d%%)"
msgstr "%d%02d қалды (%d%%)"
msgid "%d%02d Remaining (%d%%)"
msgstr "%d%02d қалды (%d%%)"
#. Translators: this is <hours>:<minutes> Until Full (<percentage>)
#: ../js/ui/status/power.js:103
#: ../js/ui/status/power.js:91
#, javascript-format
#| msgid "%d%02d Until Full (%d%%)"
msgid "%d%02d Until Full (%d%%)"
msgstr "%d%02d толық зарядқа дейін (%d%%)"
msgid "%d%02d Until Full (%d%%)"
msgstr "%d%02d толық зарядқа дейін (%d%%)"
#: ../js/ui/status/power.js:131 ../js/ui/status/power.js:133
#, javascript-format
msgid "%d%%"
msgstr "%d%%"
#. The menu only appears when airplane mode is on, so just
#. statically build it as if it was on, rather than dynamically
#. changing the menu contents.
#: ../js/ui/status/rfkill.js:88
msgid "Airplane Mode On"
msgstr "Ұшақтағы режим іске қосулы"
@@ -1539,7 +1455,7 @@ msgstr "Экранның бұл баптауларын сақтауды қала
#. Translators: this and the following message should be limited in lenght,
#. to avoid ellipsizing the labels.
#.
#. */
#: ../js/ui/windowManager.js:82
msgid "Revert Settings"
msgstr "Баптауларды қалпына келтіру"
@@ -1555,7 +1471,7 @@ msgid_plural "Settings changes will revert in %d seconds"
msgstr[0] "Өзгертілген баптаулар %d секундтан кейін қалпына келтіріледі"
#. Translators: This represents the size of a window. The first number is
#. * the width of the window and the second is the height.
#. * the width of the window and the second is the height. */
#: ../js/ui/windowManager.js:658
#, javascript-format
msgid "%d x %d"
@@ -1631,7 +1547,7 @@ msgstr "Evolution күнтізбесі"
#. translators:
#. * The number of sound outputs on a particular device
#: ../src/gvc/gvc-mixer-control.c:1835
#: ../src/gvc/gvc-mixer-control.c:1837
#, c-format
msgid "%u Output"
msgid_plural "%u Outputs"
@@ -1639,61 +1555,64 @@ msgstr[0] "%u шығысы"
#. translators:
#. * The number of sound inputs on a particular device
#: ../src/gvc/gvc-mixer-control.c:1845
#: ../src/gvc/gvc-mixer-control.c:1847
#, c-format
msgid "%u Input"
msgid_plural "%u Inputs"
msgstr[0] "%u кірісі"
#: ../src/gvc/gvc-mixer-control.c:2371
#: ../src/gvc/gvc-mixer-control.c:2373
msgid "System Sounds"
msgstr "Жүйелік дыбыстар"
#: ../src/main.c:381
#: ../src/main.c:373
msgid "Print version"
msgstr "Баспа нұсқасы"
#: ../src/main.c:387
#: ../src/main.c:379
msgid "Mode used by GDM for login screen"
msgstr "GDM жүйеге кіру экраны үшін қолданатын режимі"
#: ../src/main.c:393
#: ../src/main.c:385
msgid "Use a specific mode, e.g. \"gdm\" for login screen"
msgstr "Жүйеге кіру экраны үшін арнайы режимді, мыс. \"gdm\", қолдану"
#: ../src/main.c:399
#: ../src/main.c:391
msgid "List possible modes"
msgstr "Қолжетерлік режимдерді тізіп шығу"
#: ../src/shell-app.c:246
#: ../src/shell-app.c:239
msgctxt "program"
msgid "Unknown"
msgstr "Белгісіз"
#: ../src/shell-app.c:487
#: ../src/shell-app.c:480
#, c-format
msgid "Failed to launch “%s”"
msgstr "\"%s\" жөнелту сәтсіз"
#: ../src/shell-keyring-prompt.c:730
#: ../src/shell-keyring-prompt.c:742
msgid "Passwords do not match."
msgstr "Парольдер өзара сәйкес емес."
#: ../src/shell-keyring-prompt.c:738
#: ../src/shell-keyring-prompt.c:750
msgid "Password cannot be blank"
msgstr "Пароль бос болуы мүмкін емес"
#: ../src/shell-polkit-authentication-agent.c:353
#: ../src/shell-polkit-authentication-agent.c:346
msgid "Authentication dialog was dismissed by the user"
msgstr "Аутентификация терезесін пайдаланушы тайдырды"
#~ msgid "GNOME Shell (wayland compositor)"
#~ msgstr "GNOME Shell (wayland үйлестіргіші)"
#~ msgid "Bluetooth"
#~ msgstr "Bluetooth"
#~ msgid "%d Connected Device"
#~ msgid_plural "%d Connected Devices"
#~ msgstr[0] "%d байланысқан құрылғы"
#~ msgid "Off"
#~ msgstr "Сөнд."
#~ msgid "Authentication required"
#~ msgstr "Аутентификация керек"

186
po/ko.po
View File

@@ -20,8 +20,8 @@ msgstr ""
"Project-Id-Version: gnome-shell\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
"shell&keywords=I18N+L10N&component=general\n"
"POT-Creation-Date: 2015-09-29 08:39+0000\n"
"PO-Revision-Date: 2015-09-29 19:14+0900\n"
"POT-Creation-Date: 2015-09-05 08:12+0000\n"
"PO-Revision-Date: 2015-09-06 02:06+0900\n"
"Last-Translator: Changwoo Ryu <cwryu@debian.org>\n"
"Language-Team: GNOME Korea <gnome-kr@googlegroups.com>\n"
"Language: Korean\n"
@@ -331,23 +331,15 @@ msgstr "로그인"
msgid "Choose Session"
msgstr "세션 선택"
#. translators: this message is shown below the user list on the
#. login screen. It can be activated to reveal an entry for
#. manually entering the username.
#: ../js/gdm/loginDialog.js:431
msgid "Not listed?"
msgstr "목록에 없습니까?"
#. Translators: this message is shown below the username entry field
#. to clue the user in on how to login to the local network realm
#: ../js/gdm/loginDialog.js:850
#, javascript-format
msgid "(e.g., user or %s)"
msgstr "(예를 들어, 사용자 또는 %s)"
#. TTLS and PEAP are actually much more complicated, but this complication
#. is not visible here since we only care about phase2 authentication
#. (and don't even care of which one)
#: ../js/gdm/loginDialog.js:855 ../js/ui/components/networkAgent.js:271
#: ../js/ui/components/networkAgent.js:289
msgid "Username: "
@@ -361,11 +353,6 @@ msgstr "로그인 창"
msgid "Authentication error"
msgstr "인증 오류"
#. We don't show fingerprint messages directly since it's
#. not the main auth service. Instead we use the messages
#. as a cue to display our own message.
#. Translators: this message is shown below the password entry field
#. to indicate the user can swipe their finger instead
#: ../js/gdm/util.js:473
msgid "(or swipe finger)"
msgstr "(또는 지문을 문지르십시오)"
@@ -374,8 +361,6 @@ msgstr "(또는 지문을 문지르십시오)"
msgid "Command not found"
msgstr "명령이 없습니다"
#. Replace "Error invoking GLib.shell_parse_argv: " with
#. something nicer
#: ../js/misc/util.js:152
msgid "Could not parse command:"
msgstr "명령어를 파싱할 수 없습니다:"
@@ -385,78 +370,70 @@ msgstr "명령어를 파싱할 수 없습니다:"
msgid "Execution of “%s” failed:"
msgstr "“%s” 실행이 실패했습니다:"
#. Translators: Time in 24h format
#. Translators: Time in 24h format */
#: ../js/misc/util.js:191
msgid "%H%M"
msgstr "%H%M"
#. Translators: this is the word "Yesterday" followed by a
#. time string in 24h format. i.e. "Yesterday, 14:30"
#. time string in 24h format. i.e. "Yesterday, 14:30" */
#: ../js/misc/util.js:197
#, no-c-format
msgid "Yesterday, %H%M"
msgstr "어제, %H:%M"
#. Translators: this is the week day name followed by a time
#. string in 24h format. i.e. "Monday, 14:30"
#. string in 24h format. i.e. "Monday, 14:30" */
#: ../js/misc/util.js:203
#, no-c-format
msgid "%A, %H%M"
msgstr "%A, %H:%M"
#. Translators: this is the month name and day number
#. followed by a time string in 24h format.
#. i.e. "May 25, 14:30"
#. i.e. "May 25, 14:30" */
#: ../js/misc/util.js:209
#, no-c-format
msgid "%B %d, %H%M"
msgstr "%B %d일, %H%M"
#. Translators: this is the month name, day number, year
#. number followed by a time string in 24h format.
#. i.e. "May 25 2012, 14:30"
#. i.e. "May 25 2012, 14:30" */
#: ../js/misc/util.js:215
#, no-c-format
msgid "%B %d %Y, %H%M"
msgstr "%Y년 %B %d일, %H%M"
#. Translators: Time in 12h format
#. Translators: Time in 12h format */
#: ../js/misc/util.js:220
msgid "%l%M %p"
msgstr "%p %l%M"
#. Translators: this is the word "Yesterday" followed by a
#. time string in 12h format. i.e. "Yesterday, 2:30 pm"
#. time string in 12h format. i.e. "Yesterday, 2:30 pm" */
#: ../js/misc/util.js:226
#, no-c-format
msgid "Yesterday, %l%M %p"
msgstr "어제, %p %l%M"
#. Translators: this is the week day name followed by a time
#. string in 12h format. i.e. "Monday, 2:30 pm"
#. string in 12h format. i.e. "Monday, 2:30 pm" */
#: ../js/misc/util.js:232
#, no-c-format
msgid "%A, %l%M %p"
msgstr "%A, %p %l%M"
#. Translators: this is the month name and day number
#. followed by a time string in 12h format.
#. i.e. "May 25, 2:30 pm"
#. i.e. "May 25, 2:30 pm" */
#: ../js/misc/util.js:238
#, no-c-format
msgid "%B %d, %l%M %p"
msgstr "%B %d일, %p %l%M"
#. Translators: this is the month name, day number, year
#. number followed by a time string in 12h format.
#. i.e. "May 25 2012, 2:30 pm"
#. i.e. "May 25 2012, 2:30 pm"*/
#: ../js/misc/util.js:244
#, no-c-format
msgid "%B %d %Y, %l%M %p"
msgstr "%Y년 %B %d일, %p %l%M"
#. TRANSLATORS: this is the title of the wifi captive portal login
#. * window, until we know the title of the actual login page
#. * window, until we know the title of the actual login page */
#: ../js/portalHelper/main.js:85
msgid "Web Authentication Redirect"
msgstr "웹 인증 리다이렉트"
@@ -508,11 +485,12 @@ msgstr "배경 바꾸기…"
msgid "Display Settings"
msgstr "디스플레이 설정"
#: ../js/ui/backgroundMenu.js:22 ../js/ui/status/system.js:366
#: ../js/ui/backgroundMenu.js:22 ../js/ui/panel.js:650
#: ../js/ui/status/system.js:366
msgid "Settings"
msgstr "설정"
#. Translators: Enter 0-6 (Sunday-Saturday) for non-work days. Examples: "0" (Sunday) "6" (Saturday) "06" (Sunday and Saturday).
#. Translators: Enter 0-6 (Sunday-Saturday) for non-work days. Examples: "0" (Sunday) "6" (Saturday) "06" (Sunday and Saturday). */
#: ../js/ui/calendar.js:55
msgctxt "calendar-no-work"
msgid "06"
@@ -522,43 +500,43 @@ msgstr "06"
#. *
#. * NOTE: These grid abbreviations are always shown together
#. * and in order, e.g. "S M T W T F S".
#.
#. */
#: ../js/ui/calendar.js:84
msgctxt "grid sunday"
msgid "S"
msgstr "일"
#. Translators: Calendar grid abbreviation for Monday
#. Translators: Calendar grid abbreviation for Monday */
#: ../js/ui/calendar.js:86
msgctxt "grid monday"
msgid "M"
msgstr "월"
#. Translators: Calendar grid abbreviation for Tuesday
#. Translators: Calendar grid abbreviation for Tuesday */
#: ../js/ui/calendar.js:88
msgctxt "grid tuesday"
msgid "T"
msgstr "화"
#. Translators: Calendar grid abbreviation for Wednesday
#. Translators: Calendar grid abbreviation for Wednesday */
#: ../js/ui/calendar.js:90
msgctxt "grid wednesday"
msgid "W"
msgstr "수"
#. Translators: Calendar grid abbreviation for Thursday
#. Translators: Calendar grid abbreviation for Thursday */
#: ../js/ui/calendar.js:92
msgctxt "grid thursday"
msgid "T"
msgstr "목"
#. Translators: Calendar grid abbreviation for Friday
#. Translators: Calendar grid abbreviation for Friday */
#: ../js/ui/calendar.js:94
msgctxt "grid friday"
msgid "F"
msgstr "금"
#. Translators: Calendar grid abbreviation for Saturday
#. Translators: Calendar grid abbreviation for Saturday */
#: ../js/ui/calendar.js:96
msgctxt "grid saturday"
msgid "S"
@@ -578,39 +556,39 @@ msgstr "주 %V"
#. Translators: Shown in calendar event list for all day events
#. * Keep it short, best if you can use less then 10 characters
#.
#. */
#: ../js/ui/calendar.js:1188
msgctxt "event list time"
msgid "All Day"
msgstr "종일"
#: ../js/ui/calendar.js:1295
#: ../js/ui/calendar.js:1291
msgid "Clear section"
msgstr "부분 지우기"
#: ../js/ui/calendar.js:1522
#: ../js/ui/calendar.js:1518
msgid "Events"
msgstr "행사"
#: ../js/ui/calendar.js:1531
#: ../js/ui/calendar.js:1527
msgctxt "calendar heading"
msgid "%A, %B %d"
msgstr "%B %d일 %A"
#: ../js/ui/calendar.js:1535
#: ../js/ui/calendar.js:1531
msgctxt "calendar heading"
msgid "%A, %B %d, %Y"
msgstr "%Y년 %B %d일 %A"
#: ../js/ui/calendar.js:1620
#: ../js/ui/calendar.js:1616
msgid "Notifications"
msgstr "알림"
#: ../js/ui/calendar.js:1771
#: ../js/ui/calendar.js:1767
msgid "No Notifications"
msgstr "알림 없음"
#: ../js/ui/calendar.js:1774
#: ../js/ui/calendar.js:1770
msgid "No Events"
msgstr "행사 없음"
@@ -640,7 +618,6 @@ msgstr "다시 입력하십시오:"
msgid "Connect"
msgstr "연결"
#. Cisco LEAP
#: ../js/ui/components/networkAgent.js:233
#: ../js/ui/components/networkAgent.js:245
#: ../js/ui/components/networkAgent.js:273
@@ -649,7 +626,6 @@ msgstr "연결"
msgid "Password: "
msgstr "암호: "
#. static WEP
#: ../js/ui/components/networkAgent.js:238
msgid "Key: "
msgstr "키: "
@@ -739,13 +715,13 @@ msgstr "인증"
#. Translators: "that didn't work" refers to the fact that the
#. * requested authentication was not gained; this can happen
#. * because of an authentication error (like invalid password),
#. * for instance.
#. * for instance. */
#: ../js/ui/components/polkitAgent.js:301 ../js/ui/shellMountOperation.js:383
msgid "Sorry, that didn't work. Please try again."
msgstr "죄송합니다. 동작하지 않았습니다. 다시 시도하십시오."
#. Translators: this is the other person changing their old IM name to their new
#. IM name.
#. IM name. */
#: ../js/ui/components/telepathyClient.js:759
#, javascript-format
msgid "%s is now known as %s"
@@ -759,15 +735,13 @@ msgstr "창"
msgid "Show Applications"
msgstr "프로그램 표시"
#. Translators: this is the name of the dock/favorites area on
#. the left of the overview
#: ../js/ui/dash.js:449
msgid "Dash"
msgstr "대시보드"
#. Translators: This is the date format to use when the calendar popup is
#. * shown - it is shown just below the time in the shell (e.g. "Tue 9:29 AM").
#.
#. */
#: ../js/ui/dateMenu.js:73
msgid "%B %e %Y"
msgstr "%Y년 %B %e일"
@@ -775,7 +749,7 @@ msgstr "%Y년 %B %e일"
#. Translators: This is the accessible name of the date button shown
#. * below the time in the shell; it should combine the weekday and the
#. * date, e.g. "Tuesday February 17 2015".
#.
#. */
#: ../js/ui/dateMenu.js:80
msgid "%A %B %e %Y"
msgstr "%Y년 %B %e일 %A"
@@ -897,13 +871,13 @@ msgstr "일부 프로그램이 동작 중이거나 저장하지 않은 작업이
msgid "Other users are logged in."
msgstr "다른 사용자가 로그인 중입니다."
#. Translators: Remote here refers to a remote session, like a ssh login
#. Translators: Remote here refers to a remote session, like a ssh login */
#: ../js/ui/endSessionDialog.js:640
#, javascript-format
msgid "%s (remote)"
msgstr "%s (원격)"
#. Translators: Console here refers to a tty like a VT console
#. Translators: Console here refers to a tty like a VT console */
#: ../js/ui/endSessionDialog.js:643
#, javascript-format
msgid "%s (console)"
@@ -923,7 +897,7 @@ msgstr ""
msgid "Keyboard"
msgstr "키보드"
#. translators: 'Hide' is a verb
#. translators: 'Hide' is a verb */
#: ../js/ui/legacyTray.js:66
msgid "Hide tray"
msgstr "트레이 숨기기"
@@ -936,7 +910,7 @@ msgstr "상태 아이콘"
msgid "No extensions installed"
msgstr "확장을 설치하지 않았습니다"
#. Translators: argument is an extension UUID.
#. Translators: argument is an extension UUID. */
#: ../js/ui/lookingGlass.js:697
#, javascript-format
msgid "%s has not emitted any errors."
@@ -956,7 +930,7 @@ msgstr "사용"
#. translators:
#. * The device has been disabled
#: ../js/ui/lookingGlass.js:719 ../src/gvc/gvc-mixer-control.c:1828
#: ../js/ui/lookingGlass.js:719 ../src/gvc/gvc-mixer-control.c:1830
msgid "Disabled"
msgstr "사용 않음"
@@ -995,7 +969,7 @@ msgstr "개요"
#. Translators: this is the text displayed
#. in the search entry when no search is
#. active; it should not exceed ~30
#. characters.
#. characters. */
#: ../js/ui/overview.js:244
msgid "Type to search…"
msgstr "검색하려면 입력하십시오…"
@@ -1005,25 +979,15 @@ msgid "Quit"
msgstr "끝내기"
#. 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:404
msgid "Activities"
msgstr "현재 활동"
#: ../js/ui/panel.js:650
msgctxt "System menu in the top bar"
msgid "System"
msgstr "시스템"
#: ../js/ui/panel.js:754
msgid "Top Bar"
msgstr "위 막대"
#. Translators: this MUST be either "toggle-switch-us"
#. (for toggle switches containing the English words
#. "ON" and "OFF") or "toggle-switch-intl" (for toggle
#. switches containing "◯" and "|"). Other values will
#. simply result in invisible toggle switches.
#: ../js/ui/popupMenu.js:289
msgid "toggle-switch-us"
msgstr "toggle-switch-intl"
@@ -1041,7 +1005,7 @@ msgid "Restarting…"
msgstr "다시 시작하는 중…"
#. Translators: This is a time format for a date in
#. long format
#. long format */
#: ../js/ui/screenShield.js:85
msgid "%A, %B %d"
msgstr "%B %d일 %A"
@@ -1066,13 +1030,6 @@ msgstr "잠그기"
msgid "GNOME needs to lock the screen"
msgstr "그놈에서 화면을 잠궈야 합니다"
#. We could not become modal, so we can't activate the
#. screenshield. The user is probably very upset at this
#. point, but any application using global grabs is broken
#. Just tell him to stop using this app
#.
#. XXX: another option is to kick the user into the gdm login
#. screen, where we're not affected by grabs
#: ../js/ui/screenShield.js:805 ../js/ui/screenShield.js:1271
msgid "Unable to lock"
msgstr "잠글 수 없습니다"
@@ -1168,7 +1125,7 @@ msgstr "끄기"
msgid "Bluetooth Settings"
msgstr "블루투스 설정"
#. Translators: this is the number of connected bluetooth devices
#. Translators: this is the number of connected bluetooth devices */
#: ../js/ui/status/bluetooth.js:105
#, javascript-format
msgid "%d Connected"
@@ -1215,13 +1172,13 @@ msgstr "사용"
msgid "<unknown>"
msgstr "<알 수 없음>"
#. Translators: %s is a network identifier
#. Translators: %s is a network identifier */
#: ../js/ui/status/network.js:451 ../js/ui/status/network.js:1308
#, javascript-format
msgid "%s Off"
msgstr "%s 꺼짐"
#. Translators: %s is a network identifier
#. Translators: %s is a network identifier */
#: ../js/ui/status/network.js:454
#, javascript-format
msgid "%s Connected"
@@ -1229,45 +1186,45 @@ msgstr "%s 연결됨"
#. Translators: this is for network devices that are physically present but are not
#. under NetworkManager's control (and thus cannot be used in the menu);
#. %s is a network identifier
#. %s is a network identifier */
#: ../js/ui/status/network.js:459
#, javascript-format
msgid "%s Unmanaged"
msgstr "%s 관리되지 않음"
#. Translators: %s is a network identifier
#. Translators: %s is a network identifier */
#: ../js/ui/status/network.js:462
#, javascript-format
msgid "%s Disconnecting"
msgstr "%s 연결 끊는 중"
#. Translators: %s is a network identifier
#. Translators: %s is a network identifier */
#: ../js/ui/status/network.js:469 ../js/ui/status/network.js:1300
#, javascript-format
msgid "%s Connecting"
msgstr "%s 연결하는 중"
#. Translators: this is for network connections that require some kind of key or password; %s is a network identifier
#. Translators: this is for network connections that require some kind of key or password; %s is a network identifier */
#: ../js/ui/status/network.js:472
#, javascript-format
msgid "%s Requires Authentication"
msgstr "%s 인증 필요"
#. Translators: this is for devices that require some kind of firmware or kernel
#. module, which is missing; %s is a network identifier
#. module, which is missing; %s is a network identifier */
#: ../js/ui/status/network.js:480
#, javascript-format
msgid "Firmware Missing For %s"
msgstr "%s에 필요한 펌웨어 없음"
#. Translators: this is for a network device that cannot be activated (for example it
#. is disabled by rfkill, or it has no coverage; %s is a network identifier
#. is disabled by rfkill, or it has no coverage; %s is a network identifier */
#: ../js/ui/status/network.js:484
#, javascript-format
msgid "%s Unavailable"
msgstr "%s 사용 불가"
#. Translators: %s is a network identifier
#. Translators: %s is a network identifier */
#: ../js/ui/status/network.js:487
#, javascript-format
msgid "%s Connection Failed"
@@ -1281,14 +1238,14 @@ msgstr "유선 네트워크 설정"
msgid "Mobile Broadband Settings"
msgstr "휴대전화 네트워크 설정"
#. Translators: %s is a network identifier
#. Translators: %s is a network identifier */
#: ../js/ui/status/network.js:588 ../js/ui/status/network.js:1305
#, javascript-format
msgid "%s Hardware Disabled"
msgstr "%s 하드웨어 사용 않음"
#. Translators: this is for a network device that cannot be activated
#. because it's disabled by rfkill (airplane mode); %s is a network identifier
#. because it's disabled by rfkill (airplane mode); %s is a network identifier */
#: ../js/ui/status/network.js:592
#, javascript-format
msgid "%s Disabled"
@@ -1350,13 +1307,13 @@ msgstr "와이파이 설정"
msgid "Turn On"
msgstr "켜기"
#. Translators: %s is a network identifier
#. Translators: %s is a network identifier */
#: ../js/ui/status/network.js:1296
#, javascript-format
msgid "%s Hotspot Active"
msgstr "%s 핫스팟 사용 중"
#. Translators: %s is a network identifier
#. Translators: %s is a network identifier */
#: ../js/ui/status/network.js:1311
#, javascript-format
msgid "%s Not Connected"
@@ -1366,7 +1323,7 @@ msgstr "%s 연결되지 않음"
msgid "connecting..."
msgstr "연결하는 중..."
#. Translators: this is for network connections that require some kind of key or password
#. Translators: this is for network connections that require some kind of key or password */
#: ../js/ui/status/network.js:1414
msgid "authentication required"
msgstr "인증 필요"
@@ -1389,7 +1346,7 @@ msgstr "가상사설망"
#: ../js/ui/status/network.js:1513
msgid "VPN Off"
msgstr "가상사설망 꺼짐"
msgstr "가상사설망 끄기"
#: ../js/ui/status/network.js:1697
msgid "Connection failed"
@@ -1407,27 +1364,20 @@ msgstr "전원 설정"
msgid "Fully Charged"
msgstr "완전 충전"
#. 0 is reported when UPower does not have enough data
#. to estimate battery life
#: ../js/ui/status/power.js:72 ../js/ui/status/power.js:78
msgid "Estimating…"
msgstr "예상치 계산 중…"
#. Translators: this is <hours>:<minutes> Remaining (<percentage>)
#: ../js/ui/status/power.js:86
#, javascript-format
msgid "%d%02d Remaining (%d%%)"
msgstr "%d%02d 남음(%d%%)"
#. Translators: this is <hours>:<minutes> Until Full (<percentage>)
#: ../js/ui/status/power.js:91
#, javascript-format
msgid "%d%02d Until Full (%d%%)"
msgstr "충전까지 %d:%02d(%d%%)"
#. The menu only appears when airplane mode is on, so just
#. statically build it as if it was on, rather than dynamically
#. changing the menu contents.
#: ../js/ui/status/rfkill.js:88
msgid "Airplane Mode On"
msgstr "비행기 모드 켜짐"
@@ -1497,7 +1447,7 @@ msgstr "이 디스플레이 설정을 유지하시겠습니까?"
#. Translators: this and the following message should be limited in lenght,
#. to avoid ellipsizing the labels.
#.
#. */
#: ../js/ui/windowManager.js:82
msgid "Revert Settings"
msgstr "설정 되돌리기"
@@ -1513,7 +1463,7 @@ msgid_plural "Settings changes will revert in %d seconds"
msgstr[0] "바뀐 설정을 %d초 후에 되돌립니다"
#. Translators: This represents the size of a window. The first number is
#. * the width of the window and the second is the height.
#. * the width of the window and the second is the height. */
#: ../js/ui/windowManager.js:658
#, javascript-format
msgid "%d x %d"
@@ -1589,7 +1539,7 @@ msgstr "에볼루션 달력"
#. translators:
#. * The number of sound outputs on a particular device
#: ../src/gvc/gvc-mixer-control.c:1835
#: ../src/gvc/gvc-mixer-control.c:1837
#, c-format
msgid "%u Output"
msgid_plural "%u Outputs"
@@ -1597,30 +1547,30 @@ msgstr[0] "%u개 출력"
#. translators:
#. * The number of sound inputs on a particular device
#: ../src/gvc/gvc-mixer-control.c:1845
#: ../src/gvc/gvc-mixer-control.c:1847
#, c-format
msgid "%u Input"
msgid_plural "%u Inputs"
msgstr[0] "%u개 입력"
#: ../src/gvc/gvc-mixer-control.c:2371
#: ../src/gvc/gvc-mixer-control.c:2373
msgid "System Sounds"
msgstr "시스템 소리"
# 커맨드라인 옵션 설명
#: ../src/main.c:381
#: ../src/main.c:373
msgid "Print version"
msgstr "버전을 표시합니다"
#: ../src/main.c:387
#: ../src/main.c:379
msgid "Mode used by GDM for login screen"
msgstr "GDM에서 로그인 화면에 사용할 모드"
#: ../src/main.c:393
#: ../src/main.c:385
msgid "Use a specific mode, e.g. \"gdm\" for login screen"
msgstr "특정 모드 사용. 예를 들어 로그인 화면에 대해 \"gdm\""
#: ../src/main.c:399
#: ../src/main.c:391
msgid "List possible modes"
msgstr "가능한 모드 목록 표시"

462
po/lt.po

File diff suppressed because it is too large Load Diff

612
po/lv.po

File diff suppressed because it is too large Load Diff

239
po/nb.po
View File

@@ -7,10 +7,10 @@
# Torstein Adolf Winterseth <kvikende@fsfe.org>, 2010.
msgid ""
msgstr ""
"Project-Id-Version: gnome-shell 3.19.x\n"
"Project-Id-Version: gnome-shell 3.17.x\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2016-01-07 22:59+0100\n"
"PO-Revision-Date: 2016-01-07 22:59+0100\n"
"POT-Creation-Date: 2015-09-07 19:22+0200\n"
"PO-Revision-Date: 2015-09-07 19:31+0200\n"
"Last-Translator: Kjartan Maraas <kmaraas@gnome.org>\n"
"Language-Team: Norwegian bokmål <i18n-nb@lister.ping.uio.no>\n"
"Language: Norwegian bokmål\n"
@@ -44,6 +44,15 @@ msgstr "Vis alle programmer"
msgid "Open the application menu"
msgstr "Åpne programmenyen"
#: ../data/gnome-shell.desktop.in.in.h:1
msgid "GNOME Shell"
msgstr "GNOME Shell"
#: ../data/gnome-shell.desktop.in.in.h:2
#: ../data/gnome-shell-wayland.desktop.in.in.h:2
msgid "Window management and application launching"
msgstr "Vindushåndtering og oppstart av programmer"
#: ../data/gnome-shell-extension-prefs.desktop.in.in.h:1
msgid "GNOME Shell Extension Preferences"
msgstr "Brukervalg for GNOME Shell-utvidelser"
@@ -52,13 +61,9 @@ msgstr "Brukervalg for GNOME Shell-utvidelser"
msgid "Configure GNOME Shell Extensions"
msgstr "Sett opp utvidelser for GNOME Shell"
#: ../data/org.gnome.Shell.desktop.in.in.h:1
msgid "GNOME Shell"
msgstr "GNOME Shell"
#: ../data/org.gnome.Shell.desktop.in.in.h:2
msgid "Window management and application launching"
msgstr "Vindushåndtering og oppstart av programmer"
#: ../data/gnome-shell-wayland.desktop.in.in.h:1
msgid "GNOME Shell (wayland compositor)"
msgstr "GNOME Shell (Wayland-kompositør)"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:1
msgid "Enable internal tools useful for developers and testers from Alt-F2"
@@ -161,88 +166,75 @@ msgstr ""
"standardverdien for avkryssingsboksen."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:18
msgid ""
"Whether the default Bluetooth adapter had set up devices associated to it"
msgstr ""
#: ../data/org.gnome.shell.gschema.xml.in.in.h:19
msgid ""
"The shell will only show a Bluetooth menu item if a Bluetooth adapter is "
"powered, or if there were devices set up associated with the default "
"adapter. This will be reset if the default adapter is ever seen not to have "
"devices associated to it."
msgstr ""
#: ../data/org.gnome.shell.gschema.xml.in.in.h:20
msgid "Show the week date in the calendar"
msgstr "Vis ukedato/ukenummer i kalender"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:21
#: ../data/org.gnome.shell.gschema.xml.in.in.h:19
msgid "If true, display the ISO week date in the calendar."
msgstr "Viser ISO-ukedato i kalenderen hvis «true»."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:22
#: ../data/org.gnome.shell.gschema.xml.in.in.h:20
msgid "Keybinding to open the application menu"
msgstr "Tastaturbinding som åpner programmenyen"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:23
#: ../data/org.gnome.shell.gschema.xml.in.in.h:21
msgid "Keybinding to open the application menu."
msgstr "Tastaturbinding som åpner programmenyen."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:24
#: ../data/org.gnome.shell.gschema.xml.in.in.h:22
msgid "Keybinding to open the \"Show Applications\" view"
msgstr "Tastaturbinding som åpner visningen «Vis programmer»"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:25
#: ../data/org.gnome.shell.gschema.xml.in.in.h:23
msgid ""
"Keybinding to open the \"Show Applications\" view of the Activities Overview."
msgstr ""
"Tastaturbinding som åpner visningen «Vis programmer» i aktivitetsoversikten."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:26
#: ../data/org.gnome.shell.gschema.xml.in.in.h:24
msgid "Keybinding to open the overview"
msgstr "Tastaturbinding som åpner oversikten"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:27
#: ../data/org.gnome.shell.gschema.xml.in.in.h:25
msgid "Keybinding to open the Activities Overview."
msgstr "Tastaturbinding som åpner aktivitetsoversikten."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:28
#: ../data/org.gnome.shell.gschema.xml.in.in.h:26
msgid "Keybinding to toggle the visibility of the notification list"
msgstr "Tastaturbinding som slår av/på visning av varslingsliste"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:29
#: ../data/org.gnome.shell.gschema.xml.in.in.h:27
msgid "Keybinding to toggle the visibility of the notification list."
msgstr "Tastaturbinding som slår av/på visning av varslingsliste."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:30
#: ../data/org.gnome.shell.gschema.xml.in.in.h:28
msgid "Keybinding to focus the active notification"
msgstr "Tastaturbinding som fokuserer aktiv varsling"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:31
#: ../data/org.gnome.shell.gschema.xml.in.in.h:29
msgid "Keybinding to focus the active notification."
msgstr "Tastaturbinding som fokuserer aktiv varsling."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:32
#: ../data/org.gnome.shell.gschema.xml.in.in.h:30
msgid ""
"Keybinding that pauses and resumes all running tweens, for debugging purposes"
msgstr ""
"Hurtigtast som stanser og fortsetter pågående bevegelser til "
"feilsøkingsformål"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:33
#: ../data/org.gnome.shell.gschema.xml.in.in.h:31
msgid "Which keyboard to use"
msgstr "Tastatur som skal brukes"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:34
#: ../data/org.gnome.shell.gschema.xml.in.in.h:32
msgid "The type of keyboard to use."
msgstr "Type tastatur som skal brukes."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:35
#: ../data/org.gnome.shell.gschema.xml.in.in.h:33
msgid "Limit switcher to current workspace."
msgstr "Begrens programveksling til gjeldende arbeidsområde."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:36
#: ../data/org.gnome.shell.gschema.xml.in.in.h:34
msgid ""
"If true, only applications that have windows on the current workspace are "
"shown in the switcher. Otherwise, all applications are included."
@@ -251,11 +243,11 @@ msgstr ""
"gjeldende arbeidsområder som vises i programveksleren. I motsatt fall kan du "
"veksle mellom programmer på tvers av arbeidsområder."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:37
#: ../data/org.gnome.shell.gschema.xml.in.in.h:35
msgid "The application icon mode."
msgstr "Ikonmodus for programmet."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:38
#: ../data/org.gnome.shell.gschema.xml.in.in.h:36
msgid ""
"Configures how the windows are shown in the switcher. Valid possibilities "
"are 'thumbnail-only' (shows a thumbnail of the window), 'app-icon-"
@@ -265,7 +257,7 @@ msgstr ""
"valgalternativer er «thumbnail-only» (viser miniatyrbilde av vinduet), «app-"
"icon-only» (viser bare programikonet) og «both» (viser begge forannevnte)."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:39
#: ../data/org.gnome.shell.gschema.xml.in.in.h:37
msgid ""
"If true, only windows from the current workspace are shown in the switcher. "
"Otherwise, all windows are included."
@@ -274,30 +266,30 @@ msgstr ""
"arbeidsområder som vises i programveksleren. I motsatt fall vises vinduer "
"fra alle arbeidsområder."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:40
#: ../data/org.gnome.shell.gschema.xml.in.in.h:38
msgid "Attach modal dialog to the parent window"
msgstr "Fest modal dialog til opphavsvinduet"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:41
#: ../data/org.gnome.shell.gschema.xml.in.in.h:39
msgid ""
"This key overrides the key in org.gnome.mutter when running GNOME Shell."
msgstr ""
"Denne nøkkelen overstyrer nøkkelen i org.gnome.mutter når GNOME Shell kjøres."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:42
#: ../data/org.gnome.shell.gschema.xml.in.in.h:40
msgid "Enable edge tiling when dropping windows on screen edges"
msgstr ""
"Del opp skjermkantene i fliser når brukeren drar og slipper vinduer på dem"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:43
#: ../data/org.gnome.shell.gschema.xml.in.in.h:41
msgid "Workspaces are managed dynamically"
msgstr "Arbeidsområder håndteres dynamisk"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:44
#: ../data/org.gnome.shell.gschema.xml.in.in.h:42
msgid "Workspaces only on primary monitor"
msgstr "Arbeidsområder vises kun på hovedskjerm"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:45
#: ../data/org.gnome.shell.gschema.xml.in.in.h:43
msgid "Delay focus changes in mouse mode until the pointer stops moving"
msgstr "Utsett fokusendringer i musmodus til peker slutter å bevege seg"
@@ -336,20 +328,20 @@ msgctxt "button"
msgid "Sign In"
msgstr "Logg inn"
#: ../js/gdm/loginDialog.js:285
#: ../js/gdm/loginDialog.js:281
msgid "Choose Session"
msgstr "Velg økt"
#. translators: this message is shown below the user list on the
#. login screen. It can be activated to reveal an entry for
#. manually entering the username.
#: ../js/gdm/loginDialog.js:435
#: ../js/gdm/loginDialog.js:431
msgid "Not listed?"
msgstr "Ikke listet?"
#. Translators: this message is shown below the username entry field
#. to clue the user in on how to login to the local network realm
#: ../js/gdm/loginDialog.js:854
#: ../js/gdm/loginDialog.js:850
#, javascript-format
msgid "(e.g., user or %s)"
msgstr "(f.eks. bruker eller %s)"
@@ -357,12 +349,12 @@ msgstr "(f.eks. bruker eller %s)"
#. TTLS and PEAP are actually much more complicated, but this complication
#. is not visible here since we only care about phase2 authentication
#. (and don't even care of which one)
#: ../js/gdm/loginDialog.js:859 ../js/ui/components/networkAgent.js:271
#: ../js/gdm/loginDialog.js:855 ../js/ui/components/networkAgent.js:271
#: ../js/ui/components/networkAgent.js:289
msgid "Username: "
msgstr "Brukernavn: "
#: ../js/gdm/loginDialog.js:1196
#: ../js/gdm/loginDialog.js:1184
msgid "Login Window"
msgstr "Innloggingsvindu"
@@ -498,12 +490,12 @@ msgstr "Legg til i favoritter"
msgid "Show Details"
msgstr "Vis detaljer"
#: ../js/ui/appFavorites.js:133
#: ../js/ui/appFavorites.js:132
#, javascript-format
msgid "%s has been added to your favorites."
msgstr "%s ble lagt til i favoritter."
#: ../js/ui/appFavorites.js:167
#: ../js/ui/appFavorites.js:166
#, javascript-format
msgid "%s has been removed from your favorites."
msgstr "%s ble fjernet fra favoritter."
@@ -516,7 +508,8 @@ msgstr "Bytt bakgrunn …"
msgid "Display Settings"
msgstr "Innstillinger for skjerm"
#: ../js/ui/backgroundMenu.js:22 ../js/ui/status/system.js:366
#: ../js/ui/backgroundMenu.js:22 ../js/ui/panel.js:650
#: ../js/ui/status/system.js:366
msgid "Settings"
msgstr "Innstillinger"
@@ -580,51 +573,45 @@ msgstr "Forrige måned"
msgid "Next month"
msgstr "Neste måned"
#: ../js/ui/calendar.js:729
#, no-javascript-format
msgctxt "date day number format"
msgid "%d"
msgstr "%d"
#: ../js/ui/calendar.js:784
#: ../js/ui/calendar.js:783
msgid "Week %V"
msgstr "Uke %V"
#. Translators: Shown in calendar event list for all day events
#. * Keep it short, best if you can use less then 10 characters
#.
#: ../js/ui/calendar.js:1189
#: ../js/ui/calendar.js:1188
msgctxt "event list time"
msgid "All Day"
msgstr "Hele dagen"
#: ../js/ui/calendar.js:1296
#: ../js/ui/calendar.js:1291
msgid "Clear section"
msgstr "Tøm seksjon"
#: ../js/ui/calendar.js:1523
#: ../js/ui/calendar.js:1518
msgid "Events"
msgstr "Hendelser"
#: ../js/ui/calendar.js:1532
#: ../js/ui/calendar.js:1527
msgctxt "calendar heading"
msgid "%A, %B %d"
msgstr "%A %B %d"
#: ../js/ui/calendar.js:1536
#: ../js/ui/calendar.js:1531
msgctxt "calendar heading"
msgid "%A, %B %d, %Y"
msgstr "%A %B %d, %Y"
#: ../js/ui/calendar.js:1621
#: ../js/ui/calendar.js:1616
msgid "Notifications"
msgstr "Varslinger"
#: ../js/ui/calendar.js:1772
#: ../js/ui/calendar.js:1767
msgid "No Notifications"
msgstr "Ingen varslinger"
#: ../js/ui/calendar.js:1775
#: ../js/ui/calendar.js:1770
msgid "No Events"
msgstr "Ingen hendelser"
@@ -636,7 +623,7 @@ msgstr "Ekstern stasjon koblet til"
msgid "External drive disconnected"
msgstr "Ekstern stasjon koblet fra"
#: ../js/ui/components/autorunManager.js:355
#: ../js/ui/components/autorunManager.js:354
#, javascript-format
msgid "Open with %s"
msgstr "Åpne med %s"
@@ -981,7 +968,7 @@ msgstr "Slått på"
#. translators:
#. * The device has been disabled
#: ../js/ui/lookingGlass.js:719 ../src/gvc/gvc-mixer-control.c:1828
#: ../js/ui/lookingGlass.js:719 ../src/gvc/gvc-mixer-control.c:1830
msgid "Disabled"
msgstr "Slått av"
@@ -1025,22 +1012,17 @@ msgstr "Oversikt"
msgid "Type to search…"
msgstr "Skriv for å søke …"
#: ../js/ui/panel.js:358
#: ../js/ui/panel.js:352
msgid "Quit"
msgstr "Avslutt"
#. Translators: If there is no suitable word for "Activities"
#. in your language, you can use the word for "Overview".
#: ../js/ui/panel.js:414
#: ../js/ui/panel.js:404
msgid "Activities"
msgstr "Aktiviteter"
#: ../js/ui/panel.js:695
msgctxt "System menu in the top bar"
msgid "System"
msgstr "System"
#: ../js/ui/panel.js:807
#: ../js/ui/panel.js:754
msgid "Top Bar"
msgstr "Topp-panel"
@@ -1053,15 +1035,15 @@ msgstr "Topp-panel"
msgid "toggle-switch-us"
msgstr "toggle-switch-intl"
#: ../js/ui/runDialog.js:71
#: ../js/ui/runDialog.js:70
msgid "Enter a Command"
msgstr "Skriv inn en kommando"
#: ../js/ui/runDialog.js:111 ../js/ui/windowMenu.js:162
#: ../js/ui/runDialog.js:110 ../js/ui/windowMenu.js:162
msgid "Close"
msgstr "Lukk"
#: ../js/ui/runDialog.js:282
#: ../js/ui/runDialog.js:281
msgid "Restarting…"
msgstr "Starter på nytt …"
@@ -1184,41 +1166,29 @@ msgstr "Høy kontrast"
msgid "Large Text"
msgstr "Stor tekst"
#: ../js/ui/status/bluetooth.js:47
msgid "Bluetooth"
msgstr "Bluetooth"
#: ../js/ui/status/bluetooth.js:51 ../js/ui/status/network.js:178
#: ../js/ui/status/network.js:353 ../js/ui/status/network.js:1279
#: ../js/ui/status/network.js:1394 ../js/ui/status/rfkill.js:90
#: ../js/ui/status/rfkill.js:117
msgid "Turn Off"
msgstr "Slå av"
#: ../js/ui/status/bluetooth.js:56
#: ../js/ui/status/bluetooth.js:54
msgid "Bluetooth Settings"
msgstr "Bluetooth-innstillinger"
#. Translators: this is the number of connected bluetooth devices
#: ../js/ui/status/bluetooth.js:136
#: ../js/ui/status/bluetooth.js:105
#, javascript-format
msgid "%d Connected"
msgid_plural "%d Connected"
msgstr[0] "%d koblet til"
msgstr[1] "%d koblet til"
#: ../js/ui/status/bluetooth.js:138
msgid "Off"
msgstr "Av"
#: ../js/ui/status/bluetooth.js:140
#: ../js/ui/status/bluetooth.js:107
msgid "Not In Use"
msgstr "Ikke i bruk"
#: ../js/ui/status/bluetooth.js:142 ../js/ui/status/network.js:1279
msgid "Turn On"
msgstr "Slå på"
#: ../js/ui/status/bluetooth.js:142 ../js/ui/status/network.js:178
#: ../js/ui/status/network.js:353 ../js/ui/status/network.js:1279
#: ../js/ui/status/network.js:1394 ../js/ui/status/rfkill.js:90
#: ../js/ui/status/rfkill.js:117
msgid "Turn Off"
msgstr "Slå av"
#: ../js/ui/status/brightness.js:44
msgid "Brightness"
msgstr "Lysstyrke"
@@ -1386,6 +1356,10 @@ msgstr "Velg nettverk"
msgid "Wi-Fi Settings"
msgstr "Innstillinger"
#: ../js/ui/status/network.js:1279
msgid "Turn On"
msgstr "Slå på"
#. Translators: %s is a network identifier
#: ../js/ui/status/network.js:1296
#, javascript-format
@@ -1435,36 +1409,31 @@ msgstr "Tilkobling mislyktes"
msgid "Activation of network connection failed"
msgstr "Aktivering av nettverkstilkobling mislyktes"
#: ../js/ui/status/power.js:61
#: ../js/ui/status/power.js:49
msgid "Power Settings"
msgstr "Innstillinger for strøm"
#: ../js/ui/status/power.js:77
#: ../js/ui/status/power.js:65
msgid "Fully Charged"
msgstr "Fullt oppladet"
#. 0 is reported when UPower does not have enough data
#. to estimate battery life
#: ../js/ui/status/power.js:84 ../js/ui/status/power.js:90
#: ../js/ui/status/power.js:72 ../js/ui/status/power.js:78
msgid "Estimating…"
msgstr "Estimerer …"
#. Translators: this is <hours>:<minutes> Remaining (<percentage>)
#: ../js/ui/status/power.js:98
#: ../js/ui/status/power.js:86
#, javascript-format
msgid "%d%02d Remaining (%d%%)"
msgstr "%d:%02d gjenstår (%d %%)"
msgid "%d%02d Remaining (%d%%)"
msgstr "%d:%02d gjenstår (%d%%)"
#. Translators: this is <hours>:<minutes> Until Full (<percentage>)
#: ../js/ui/status/power.js:103
#: ../js/ui/status/power.js:91
#, javascript-format
msgid "%d%02d Until Full (%d%%)"
msgstr "%d:%02d til batteriet er fullt (%d %%)"
#: ../js/ui/status/power.js:131 ../js/ui/status/power.js:133
#, javascript-format
msgid "%d%%"
msgstr "%d %%"
msgid "%d%02d Until Full (%d%%)"
msgstr "%d:%02d til batteriet er fullt (%d%%)"
#. The menu only appears when airplane mode is on, so just
#. statically build it as if it was on, rather than dynamically
@@ -1593,19 +1562,19 @@ msgstr "Alltid på synlig arbeidsområde"
#: ../js/ui/windowMenu.js:105
msgid "Move to Workspace Left"
msgstr "Flytt til arbeidsområdet til venstre"
msgstr " til arbeidsområdet til venstre"
#: ../js/ui/windowMenu.js:110
msgid "Move to Workspace Right"
msgstr "Flytt til arbeidsområdet til høyre"
msgstr " til arbeidsområdet til høyre"
#: ../js/ui/windowMenu.js:115
msgid "Move to Workspace Up"
msgstr "Flytt til arbeidsområdet over"
msgstr " til arbeidsområdet over"
#: ../js/ui/windowMenu.js:120
msgid "Move to Workspace Down"
msgstr "Flytt til arbeidsområdet under"
msgstr " til arbeidsområdet under"
#: ../js/ui/windowMenu.js:136
msgid "Move to Monitor Up"
@@ -1629,7 +1598,7 @@ msgstr "Evolution kalender"
#. translators:
#. * The number of sound outputs on a particular device
#: ../src/gvc/gvc-mixer-control.c:1835
#: ../src/gvc/gvc-mixer-control.c:1837
#, c-format
msgid "%u Output"
msgid_plural "%u Outputs"
@@ -1638,51 +1607,51 @@ msgstr[1] "%u utganger"
#. translators:
#. * The number of sound inputs on a particular device
#: ../src/gvc/gvc-mixer-control.c:1845
#: ../src/gvc/gvc-mixer-control.c:1847
#, c-format
msgid "%u Input"
msgid_plural "%u Inputs"
msgstr[0] "%u inngang"
msgstr[1] "%u innganger"
#: ../src/gvc/gvc-mixer-control.c:2371
#: ../src/gvc/gvc-mixer-control.c:2373
msgid "System Sounds"
msgstr "Systemlyder"
#: ../src/main.c:381
#: ../src/main.c:373
msgid "Print version"
msgstr "Vis versjon"
#: ../src/main.c:387
#: ../src/main.c:379
msgid "Mode used by GDM for login screen"
msgstr "Modus som brukes av GDM for innloggingsskjermen"
#: ../src/main.c:393
#: ../src/main.c:385
msgid "Use a specific mode, e.g. \"gdm\" for login screen"
msgstr "Bruk spesifikt modus, f.eks «gdm» for innloggingsskjerm"
#: ../src/main.c:399
#: ../src/main.c:391
msgid "List possible modes"
msgstr "Vis mulige modi"
#: ../src/shell-app.c:246
#: ../src/shell-app.c:239
msgctxt "program"
msgid "Unknown"
msgstr "Ukjent"
#: ../src/shell-app.c:487
#: ../src/shell-app.c:480
#, c-format
msgid "Failed to launch “%s”"
msgstr "Klarte ikke å starte «%s»"
#: ../src/shell-keyring-prompt.c:730
#: ../src/shell-keyring-prompt.c:742
msgid "Passwords do not match."
msgstr "Passordene er ikke like."
#: ../src/shell-keyring-prompt.c:738
#: ../src/shell-keyring-prompt.c:750
msgid "Password cannot be blank"
msgstr "Passordet kan ikke være tomt"
#: ../src/shell-polkit-authentication-agent.c:353
#: ../src/shell-polkit-authentication-agent.c:346
msgid "Authentication dialog was dismissed by the user"
msgstr "Autentiseringsdialogen ble lukket av brukeren"

View File

@@ -12,8 +12,8 @@ msgid ""
msgstr ""
"Project-Id-Version: gnome-shell\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-09-29 00:50+0200\n"
"PO-Revision-Date: 2015-09-29 00:52+0200\n"
"POT-Creation-Date: 2015-08-24 15:27+0200\n"
"PO-Revision-Date: 2015-08-24 15:28+0200\n"
"Last-Translator: Piotr Drąg <piotrdrag@gmail.com>\n"
"Language-Team: Polish <gnomepl@aviary.pl>\n"
"Language: pl\n"
@@ -331,7 +331,7 @@ msgid "Cancel"
msgstr "Anuluj"
#: ../js/gdm/authPrompt.js:169 ../js/gdm/authPrompt.js:215
#: ../js/gdm/authPrompt.js:447
#: ../js/gdm/authPrompt.js:435
msgid "Next"
msgstr "Dalej"
@@ -358,7 +358,7 @@ msgstr "Inny użytkownik?"
#. Translators: this message is shown below the username entry field
#. to clue the user in on how to login to the local network realm
#: ../js/gdm/loginDialog.js:850
#: ../js/gdm/loginDialog.js:847
#, javascript-format
msgid "(e.g., user or %s)"
msgstr "(np. użytkownik lub %s)"
@@ -366,12 +366,12 @@ msgstr "(np. użytkownik lub %s)"
#. TTLS and PEAP are actually much more complicated, but this complication
#. is not visible here since we only care about phase2 authentication
#. (and don't even care of which one)
#: ../js/gdm/loginDialog.js:855 ../js/ui/components/networkAgent.js:271
#: ../js/gdm/loginDialog.js:852 ../js/ui/components/networkAgent.js:271
#: ../js/ui/components/networkAgent.js:289
msgid "Username: "
msgstr "Nazwa użytkownika: "
#: ../js/gdm/loginDialog.js:1184
#: ../js/gdm/loginDialog.js:1181
msgid "Login Window"
msgstr "Okno logowania"
@@ -525,7 +525,8 @@ msgstr "Zmień tło…"
msgid "Display Settings"
msgstr "Ustawienia ekranu"
#: ../js/ui/backgroundMenu.js:22 ../js/ui/status/system.js:366
#: ../js/ui/backgroundMenu.js:22 ../js/ui/panel.js:650
#: ../js/ui/status/system.js:366
msgid "Settings"
msgstr "Ustawienia"
@@ -601,33 +602,33 @@ msgctxt "event list time"
msgid "All Day"
msgstr "Cały dzień"
#: ../js/ui/calendar.js:1295
#: ../js/ui/calendar.js:1291
msgid "Clear section"
msgstr "Wyczyść"
#: ../js/ui/calendar.js:1522
#: ../js/ui/calendar.js:1518
msgid "Events"
msgstr "Wydarzenia"
#: ../js/ui/calendar.js:1531
#: ../js/ui/calendar.js:1527
msgctxt "calendar heading"
msgid "%A, %B %d"
msgstr "%A, %e %B"
#: ../js/ui/calendar.js:1535
#: ../js/ui/calendar.js:1531
msgctxt "calendar heading"
msgid "%A, %B %d, %Y"
msgstr "%A, %e %B %Y"
#: ../js/ui/calendar.js:1620
#: ../js/ui/calendar.js:1616
msgid "Notifications"
msgstr "Powiadomienia"
#: ../js/ui/calendar.js:1771
#: ../js/ui/calendar.js:1767
msgid "No Notifications"
msgstr "Brak powiadomień"
#: ../js/ui/calendar.js:1774
#: ../js/ui/calendar.js:1770
msgid "No Events"
msgstr "Brak wydarzeń"
@@ -990,7 +991,7 @@ msgstr "Włączone"
#. translators:
#. * The device has been disabled
#: ../js/ui/lookingGlass.js:719 ../src/gvc/gvc-mixer-control.c:1828
#: ../js/ui/lookingGlass.js:719 ../src/gvc/gvc-mixer-control.c:1830
msgid "Disabled"
msgstr "Wyłączone"
@@ -1044,11 +1045,6 @@ msgstr "Zakończ"
msgid "Activities"
msgstr "Podgląd"
#: ../js/ui/panel.js:650
msgctxt "System menu in the top bar"
msgid "System"
msgstr "Menu systemowe"
#: ../js/ui/panel.js:754
msgid "Top Bar"
msgstr "Górny pasek"
@@ -1629,7 +1625,7 @@ msgstr "Kalendarz programu Evolution"
#. translators:
#. * The number of sound outputs on a particular device
#: ../src/gvc/gvc-mixer-control.c:1835
#: ../src/gvc/gvc-mixer-control.c:1837
#, c-format
msgid "%u Output"
msgid_plural "%u Outputs"
@@ -1639,7 +1635,7 @@ msgstr[2] "%u wyjść"
#. translators:
#. * The number of sound inputs on a particular device
#: ../src/gvc/gvc-mixer-control.c:1845
#: ../src/gvc/gvc-mixer-control.c:1847
#, c-format
msgid "%u Input"
msgid_plural "%u Inputs"
@@ -1647,23 +1643,23 @@ msgstr[0] "%u wejście"
msgstr[1] "%u wejścia"
msgstr[2] "%u wejść"
#: ../src/gvc/gvc-mixer-control.c:2371
#: ../src/gvc/gvc-mixer-control.c:2373
msgid "System Sounds"
msgstr "Dźwięki systemowe"
#: ../src/main.c:381
#: ../src/main.c:373
msgid "Print version"
msgstr "Wyświetla wersję"
#: ../src/main.c:387
#: ../src/main.c:379
msgid "Mode used by GDM for login screen"
msgstr "Tryb używany przez GDM dla ekranu logowania"
#: ../src/main.c:393
#: ../src/main.c:385
msgid "Use a specific mode, e.g. \"gdm\" for login screen"
msgstr "Używa podanego trybu, np. „gdm” dla ekranu logowania"
#: ../src/main.c:399
#: ../src/main.c:391
msgid "List possible modes"
msgstr "Wyświetla listę możliwych trybów"

425
po/pt.po

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

2095
po/ro.po

File diff suppressed because it is too large Load Diff

421
po/ru.po

File diff suppressed because it is too large Load Diff

614
po/sk.po

File diff suppressed because it is too large Load Diff

749
po/sr.po

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

596
po/sv.po

File diff suppressed because it is too large Load Diff

426
po/tr.po

File diff suppressed because it is too large Load Diff

627
po/uk.po

File diff suppressed because it is too large Load Diff

689
po/vi.po

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -41,6 +41,8 @@
#define N_(x) x
#endif
#define CALENDAR_SOURCES_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), CALENDAR_TYPE_SOURCES, CalendarSourcesPrivate))
typedef struct _ClientData ClientData;
typedef struct _CalendarSourceData CalendarSourceData;
@@ -64,14 +66,6 @@ struct _CalendarSourceData
guint loaded : 1;
};
typedef struct _CalendarSourcesPrivate CalendarSourcesPrivate;
struct _CalendarSources
{
GObject parent;
CalendarSourcesPrivate *priv;
};
struct _CalendarSourcesPrivate
{
ESourceRegistry *registry;
@@ -83,8 +77,8 @@ struct _CalendarSourcesPrivate
CalendarSourceData task_sources;
};
G_DEFINE_TYPE_WITH_PRIVATE (CalendarSources, calendar_sources, G_TYPE_OBJECT)
static void calendar_sources_class_init (CalendarSourcesClass *klass);
static void calendar_sources_init (CalendarSources *sources);
static void calendar_sources_finalize (GObject *object);
static void backend_died_cb (EClient *client, CalendarSourceData *source_data);
@@ -114,6 +108,34 @@ client_data_free (ClientData *data)
g_slice_free (ClientData, data);
}
GType
calendar_sources_get_type (void)
{
static GType sources_type = 0;
if (!sources_type)
{
static const GTypeInfo sources_info =
{
sizeof (CalendarSourcesClass),
NULL, /* base_init */
NULL, /* base_finalize */
(GClassInitFunc) calendar_sources_class_init,
NULL, /* class_finalize */
NULL, /* class_data */
sizeof (CalendarSources),
0, /* n_preallocs */
(GInstanceInitFunc) calendar_sources_init,
};
sources_type = g_type_register_static (G_TYPE_OBJECT,
"CalendarSources",
&sources_info, 0);
}
return sources_type;
}
static void
calendar_sources_class_init (CalendarSourcesClass *klass)
{
@@ -123,11 +145,14 @@ calendar_sources_class_init (CalendarSourcesClass *klass)
gobject_class->finalize = calendar_sources_finalize;
g_type_class_add_private (klass, sizeof (CalendarSourcesPrivate));
signals [APPOINTMENT_SOURCES_CHANGED] =
g_signal_new ("appointment-sources-changed",
G_TYPE_FROM_CLASS (gobject_class),
G_SIGNAL_RUN_LAST,
0,
G_STRUCT_OFFSET (CalendarSourcesClass,
appointment_sources_changed),
NULL,
NULL,
NULL,
@@ -138,7 +163,8 @@ calendar_sources_class_init (CalendarSourcesClass *klass)
g_signal_new ("task-sources-changed",
G_TYPE_FROM_CLASS (gobject_class),
G_SIGNAL_RUN_LAST,
0,
G_STRUCT_OFFSET (CalendarSourcesClass,
task_sources_changed),
NULL,
NULL,
NULL,
@@ -153,7 +179,7 @@ calendar_sources_init (CalendarSources *sources)
GDBusConnection *session_bus;
GVariant *result;
sources->priv = calendar_sources_get_instance_private (sources);
sources->priv = CALENDAR_SOURCES_GET_PRIVATE (sources);
/* WORKAROUND: the hardcoded timeout for e_source_registry_new_sync()
(and other library calls that eventually call g_dbus_proxy_new[_sync]())

View File

@@ -28,10 +28,33 @@
G_BEGIN_DECLS
#define CALENDAR_TYPE_SOURCES (calendar_sources_get_type ())
G_DECLARE_FINAL_TYPE (CalendarSources, calendar_sources,
CALENDAR, SOURCES, GObject)
#define CALENDAR_TYPE_SOURCES (calendar_sources_get_type ())
#define CALENDAR_SOURCES(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), CALENDAR_TYPE_SOURCES, CalendarSources))
#define CALENDAR_SOURCES_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), CALENDAR_TYPE_SOURCES, CalendarSourcesClass))
#define CALENDAR_IS_SOURCES(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), CALENDAR_TYPE_SOURCES))
#define CALENDAR_IS_SOURCES_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), CALENDAR_TYPE_SOURCES))
#define CALENDAR_SOURCES_GET_CLASS(o)(G_TYPE_INSTANCE_GET_CLASS ((o), CALENDAR_TYPE_SOURCES, CalendarSourcesClass))
typedef struct _CalendarSources CalendarSources;
typedef struct _CalendarSourcesClass CalendarSourcesClass;
typedef struct _CalendarSourcesPrivate CalendarSourcesPrivate;
struct _CalendarSources
{
GObject parent;
CalendarSourcesPrivate *priv;
};
struct _CalendarSourcesClass
{
GObjectClass parent_class;
void (* appointment_sources_changed) (CalendarSources *sources);
void (* task_sources_changed) (CalendarSources *sources);
};
GType calendar_sources_get_type (void) G_GNUC_CONST;
CalendarSources *calendar_sources_get (void);
GList *calendar_sources_get_appointment_clients (CalendarSources *sources);
GList *calendar_sources_get_task_clients (CalendarSources *sources);

View File

@@ -45,8 +45,8 @@ static void gnome_shell_plugin_unminimize (MetaPlugin *plugin,
static void gnome_shell_plugin_size_change (MetaPlugin *plugin,
MetaWindowActor *actor,
MetaSizeChange which_change,
MetaRectangle *old_frame_rect,
MetaRectangle *old_buffer_rect);
MetaRectangle *old_rect,
MetaRectangle *new_rect);
static void gnome_shell_plugin_map (MetaPlugin *plugin,
MetaWindowActor *actor);
static void gnome_shell_plugin_destroy (MetaPlugin *plugin,

View File

@@ -176,15 +176,15 @@ gtk_menu_tracker_section_sync_separators (GtkMenuTrackerSection *section,
if (subsection)
{
gboolean section_could_have_separator;
gboolean could_have_separator;
section_could_have_separator = (section->with_separators && n_items > 0) || subsection->separator_label;
could_have_separator = (section->with_separators && n_items > 0) || subsection->separator_label;
/* Only pass the parent_model and parent_index in case they may be used to create the separator. */
n_items += gtk_menu_tracker_section_sync_separators (subsection, tracker, offset + n_items,
section_could_have_separator,
section_could_have_separator ? section->model : NULL,
section_could_have_separator ? i : 0);
could_have_separator,
could_have_separator ? section->model : NULL,
could_have_separator ? i : 0);
}
else
n_items++;
@@ -197,11 +197,11 @@ gtk_menu_tracker_section_sync_separators (GtkMenuTrackerSection *section,
if (should_have_separator > section->has_separator)
{
/* Add a separator */
GtkMenuTrackerItem *menuitem;
GtkMenuTrackerItem *item;
menuitem = _gtk_menu_tracker_item_new (tracker->observable, parent_model, parent_index, NULL, TRUE);
(* tracker->insert_func) (menuitem, offset, tracker->user_data);
g_object_unref (menuitem);
item = _gtk_menu_tracker_item_new (tracker->observable, parent_model, parent_index, NULL, TRUE);
(* tracker->insert_func) (item, offset, tracker->user_data);
g_object_unref (item);
section->has_separator = TRUE;
}

Submodule src/gvc updated: 0a79019088...fac3a900e5

View File

@@ -43,6 +43,8 @@
#define DIRECTORY_LOAD_ITEMS_PER_CALLBACK 100
#define HIGH_SCORE_RATIO 0.10
G_DEFINE_TYPE (ShellMimeSniffer, shell_mime_sniffer, G_TYPE_OBJECT);
enum {
PROP_FILE = 1,
NUM_PROPERTIES
@@ -70,26 +72,16 @@ typedef struct {
gint total_items;
} DeepCountState;
typedef struct _ShellMimeSnifferPrivate ShellMimeSnifferPrivate;
struct _ShellMimeSniffer
{
GObject parent_instance;
ShellMimeSnifferPrivate *priv;
};
struct _ShellMimeSnifferPrivate {
GFile *file;
GCancellable *cancellable;
guint watchdog_id;
GTask *task;
GSimpleAsyncResult *async_result;
gchar **sniffed_mime;
};
G_DEFINE_TYPE_WITH_PRIVATE (ShellMimeSniffer, shell_mime_sniffer, G_TYPE_OBJECT);
static void deep_count_load (DeepCountState *state,
GFile *file);
@@ -187,7 +179,6 @@ prepare_async_result (DeepCountState *state)
GArray *results;
GPtrArray *sniffed_mime;
SniffedResult result;
char **mimes;
sniffed_mime = g_ptr_array_new ();
results = g_array_new (TRUE, TRUE, sizeof (SniffedResult));
@@ -229,10 +220,10 @@ prepare_async_result (DeepCountState *state)
out:
g_ptr_array_add (sniffed_mime, NULL);
mimes = (gchar **) g_ptr_array_free (sniffed_mime, FALSE);
self->priv->sniffed_mime = (gchar **) g_ptr_array_free (sniffed_mime, FALSE);
g_array_free (results, TRUE);
g_task_return_pointer (self->priv->task, mimes, (GDestroyNotify)g_strfreev);
g_simple_async_result_complete_in_idle (self->priv->async_result);
}
/* adapted from nautilus/libnautilus-private/nautilus-directory-async.c */
@@ -425,17 +416,20 @@ query_info_async_ready_cb (GObject *source,
if (error != NULL)
{
g_task_return_error (self->priv->task, error);
g_simple_async_result_take_error (self->priv->async_result,
error);
g_simple_async_result_complete_in_idle (self->priv->async_result);
return;
}
if (g_file_info_get_file_type (info) != G_FILE_TYPE_DIRECTORY)
{
g_task_return_new_error (self->priv->task,
G_IO_ERROR,
G_IO_ERROR_NOT_DIRECTORY,
"Not a directory");
g_simple_async_result_set_error (self->priv->async_result,
G_IO_ERROR,
G_IO_ERROR_NOT_DIRECTORY,
"Not a directory");
g_simple_async_result_complete_in_idle (self->priv->async_result);
return;
}
@@ -481,7 +475,7 @@ shell_mime_sniffer_dispose (GObject *object)
g_clear_object (&self->priv->file);
g_clear_object (&self->priv->cancellable);
g_clear_object (&self->priv->task);
g_clear_object (&self->priv->async_result);
if (self->priv->watchdog_id != 0)
{
@@ -492,6 +486,16 @@ shell_mime_sniffer_dispose (GObject *object)
G_OBJECT_CLASS (shell_mime_sniffer_parent_class)->dispose (object);
}
static void
shell_mime_sniffer_finalize (GObject *object)
{
ShellMimeSniffer *self = SHELL_MIME_SNIFFER (object);
g_strfreev (self->priv->sniffed_mime);
G_OBJECT_CLASS (shell_mime_sniffer_parent_class)->finalize (object);
}
static void
shell_mime_sniffer_get_property (GObject *object,
guint prop_id,
@@ -535,6 +539,7 @@ shell_mime_sniffer_class_init (ShellMimeSnifferClass *klass)
oclass = G_OBJECT_CLASS (klass);
oclass->dispose = shell_mime_sniffer_dispose;
oclass->finalize = shell_mime_sniffer_finalize;
oclass->get_property = shell_mime_sniffer_get_property;
oclass->set_property = shell_mime_sniffer_set_property;
@@ -545,13 +550,17 @@ shell_mime_sniffer_class_init (ShellMimeSnifferClass *klass)
G_TYPE_FILE,
G_PARAM_READWRITE);
g_type_class_add_private (klass, sizeof (ShellMimeSnifferPrivate));
g_object_class_install_properties (oclass, NUM_PROPERTIES, properties);
}
static void
shell_mime_sniffer_init (ShellMimeSniffer *self)
{
self->priv = shell_mime_sniffer_get_instance_private (self);
self->priv =
G_TYPE_INSTANCE_GET_PRIVATE (self,
SHELL_TYPE_MIME_SNIFFER,
ShellMimeSnifferPrivate);
init_mimetypes ();
}
@@ -569,11 +578,14 @@ shell_mime_sniffer_sniff_async (ShellMimeSniffer *self,
gpointer user_data)
{
g_assert (self->priv->watchdog_id == 0);
g_assert (self->priv->task == NULL);
g_assert (self->priv->async_result == NULL);
self->priv->async_result =
g_simple_async_result_new (G_OBJECT (self),
callback, user_data,
shell_mime_sniffer_sniff_finish);
self->priv->cancellable = g_cancellable_new ();
self->priv->task = g_task_new (self, self->priv->cancellable,
callback, user_data);
self->priv->watchdog_id =
g_timeout_add (WATCHDOG_TIMEOUT,
@@ -588,5 +600,8 @@ shell_mime_sniffer_sniff_finish (ShellMimeSniffer *self,
GAsyncResult *res,
GError **error)
{
return g_task_propagate_pointer (self->priv->task, error);
if (g_simple_async_result_propagate_error (self->priv->async_result, error))
return NULL;
return g_strdupv (self->priv->sniffed_mime);
}

View File

@@ -27,9 +27,30 @@
G_BEGIN_DECLS
#define SHELL_TYPE_MIME_SNIFFER (shell_mime_sniffer_get_type ())
G_DECLARE_FINAL_TYPE (ShellMimeSniffer, shell_mime_sniffer,
SHELL, MIME_SNIFFER, GObject)
#define SHELL_TYPE_MIME_SNIFFER (shell_mime_sniffer_get_type ())
#define SHELL_MIME_SNIFFER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SHELL_TYPE_MIME_SNIFFER, ShellMimeSniffer))
#define SHELL_IS_MIME_SNIFFER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SHELL_TYPE_MIME_SNIFFER))
#define SHELL_MIME_SNIFFER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SHELL_TYPE_MIME_SNIFFER, ShellMimeSnifferClass))
#define SHELL_IS_MIME_SNIFFER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SHELL_TYPE_MIME_SNIFFER))
#define SHELL_MIME_SNIFFER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SHELL_TYPE_MIME_SNIFFER, ShellMimeSnifferClass))
typedef struct _ShellMimeSniffer ShellMimeSniffer;
typedef struct _ShellMimeSnifferPrivate ShellMimeSnifferPrivate;
typedef struct _ShellMimeSnifferClass ShellMimeSnifferClass;
struct _ShellMimeSniffer
{
GObject parent_instance;
ShellMimeSnifferPrivate *priv;
};
struct _ShellMimeSnifferClass
{
GObjectClass parent_class;
};
GType shell_mime_sniffer_get_type (void) G_GNUC_CONST;
ShellMimeSniffer *shell_mime_sniffer_new (GFile *file);

View File

@@ -51,11 +51,11 @@ enum {
static int _shell_debug;
static void
shell_dbus_acquire_name (GDBusProxy *bus,
guint32 request_name_flags,
guint32 *request_name_result,
const gchar *name,
gboolean fatal)
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;
@@ -69,26 +69,24 @@ shell_dbus_acquire_name (GDBusProxy *bus,
&error)))
{
g_printerr ("failed to acquire %s: %s\n", name, error->message);
g_clear_error (&error);
if (!fatal)
return;
exit (1);
}
g_variant_get (request_name_variant, "(u)", request_name_result);
g_variant_unref (request_name_variant);
}
static void
shell_dbus_acquire_names (GDBusProxy *bus,
guint32 request_name_flags,
const gchar *name,
gboolean fatal, ...) G_GNUC_NULL_TERMINATED;
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,
const gchar *name,
gboolean fatal, ...)
shell_dbus_acquire_names (GDBusProxy *bus,
guint32 request_name_flags,
gchar *name,
gboolean fatal, ...)
{
va_list al;
guint32 request_name_result;
@@ -132,12 +130,6 @@ shell_dbus_init (gboolean replace)
NULL, /* cancellable */
&error);
if (!bus)
{
g_printerr ("Failed to get a session bus proxy: %s", error->message);
exit (1);
}
request_name_flags = G_BUS_NAME_OWNER_FLAGS_ALLOW_REPLACEMENT;
if (replace)
request_name_flags |= DBUS_NAME_FLAG_REPLACE_EXISTING;
@@ -462,7 +454,7 @@ main (int argc, char **argv)
/* Initialize the global object */
if (session_mode == NULL)
session_mode = is_gdm_mode ? (char *)"gdm" : (char *)"user";
session_mode = is_gdm_mode ? "gdm" : "user";
_shell_global_init ("session-mode", session_mode, NULL);

View File

@@ -37,15 +37,6 @@ enum {
static guint signals[LAST_SIGNAL] = { 0 };
typedef struct _ShellAppSystemPrivate ShellAppSystemPrivate;
struct _ShellAppSystem
{
GObject parent;
ShellAppSystemPrivate *priv;
};
struct _ShellAppSystemPrivate {
GHashTable *running_apps;
GHashTable *id_to_app;
@@ -54,7 +45,7 @@ struct _ShellAppSystemPrivate {
static void shell_app_system_finalize (GObject *object);
G_DEFINE_TYPE_WITH_PRIVATE (ShellAppSystem, shell_app_system, G_TYPE_OBJECT);
G_DEFINE_TYPE(ShellAppSystem, shell_app_system, G_TYPE_OBJECT);
static void shell_app_system_class_init(ShellAppSystemClass *klass)
{
@@ -73,9 +64,11 @@ static void shell_app_system_class_init(ShellAppSystemClass *klass)
g_signal_new ("installed-changed",
SHELL_TYPE_APP_SYSTEM,
G_SIGNAL_RUN_LAST,
0,
NULL, NULL, NULL,
G_STRUCT_OFFSET (ShellAppSystemClass, installed_changed),
NULL, NULL, NULL,
G_TYPE_NONE, 0);
g_type_class_add_private (gobject_class, sizeof (ShellAppSystemPrivate));
}
static void
@@ -154,7 +147,9 @@ shell_app_system_init (ShellAppSystem *self)
ShellAppSystemPrivate *priv;
GAppInfoMonitor *monitor;
self->priv = priv = shell_app_system_get_instance_private (self);
self->priv = priv = G_TYPE_INSTANCE_GET_PRIVATE (self,
SHELL_TYPE_APP_SYSTEM,
ShellAppSystemPrivate);
priv->running_apps = g_hash_table_new_full (NULL, NULL, (GDestroyNotify) g_object_unref, NULL);
priv->id_to_app = g_hash_table_new_full (g_str_hash, g_str_equal,
@@ -187,7 +182,7 @@ shell_app_system_finalize (GObject *object)
* Return Value: (transfer none): The global #ShellAppSystem singleton
*/
ShellAppSystem *
shell_app_system_get_default (void)
shell_app_system_get_default ()
{
static ShellAppSystem *instance = NULL;
@@ -353,9 +348,6 @@ _shell_app_system_notify_app_state_changed (ShellAppSystem *self,
case SHELL_APP_STATE_STOPPED:
g_hash_table_remove (self->priv->running_apps, app);
break;
default:
g_warn_if_reached();
break;
}
g_signal_emit (self, signals[APP_STATE_CHANGED], 0, app);
}

View File

@@ -8,10 +8,33 @@
#include "shell-app.h"
#define SHELL_TYPE_APP_SYSTEM (shell_app_system_get_type ())
G_DECLARE_FINAL_TYPE (ShellAppSystem, shell_app_system,
SHELL, APP_SYSTEM, GObject)
#define SHELL_TYPE_APP_SYSTEM (shell_app_system_get_type ())
#define SHELL_APP_SYSTEM(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SHELL_TYPE_APP_SYSTEM, ShellAppSystem))
#define SHELL_APP_SYSTEM_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SHELL_TYPE_APP_SYSTEM, ShellAppSystemClass))
#define SHELL_IS_APP_SYSTEM(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SHELL_TYPE_APP_SYSTEM))
#define SHELL_IS_APP_SYSTEM_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SHELL_TYPE_APP_SYSTEM))
#define SHELL_APP_SYSTEM_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SHELL_TYPE_APP_SYSTEM, ShellAppSystemClass))
typedef struct _ShellAppSystem ShellAppSystem;
typedef struct _ShellAppSystemClass ShellAppSystemClass;
typedef struct _ShellAppSystemPrivate ShellAppSystemPrivate;
struct _ShellAppSystem
{
GObject parent;
ShellAppSystemPrivate *priv;
};
struct _ShellAppSystemClass
{
GObjectClass parent_class;
void (*installed_changed)(ShellAppSystem *appsys, gpointer user_data);
void (*favorites_changed)(ShellAppSystem *appsys, gpointer user_data);
};
GType shell_app_system_get_type (void) G_GNUC_CONST;
ShellAppSystem *shell_app_system_get_default (void);
ShellApp *shell_app_system_lookup_app (ShellAppSystem *system,

View File

@@ -996,7 +996,7 @@ on_enable_monitoring_key_changed (GSettings *settings,
* Return Value: (transfer none): The global #ShellAppUsage instance
*/
ShellAppUsage *
shell_app_usage_get_default (void)
shell_app_usage_get_default ()
{
static ShellAppUsage *instance;

View File

@@ -7,9 +7,23 @@
G_BEGIN_DECLS
typedef struct _ShellAppUsage ShellAppUsage;
typedef struct _ShellAppUsageClass ShellAppUsageClass;
typedef struct _ShellAppUsagePrivate ShellAppUsagePrivate;
#define SHELL_TYPE_APP_USAGE (shell_app_usage_get_type ())
G_DECLARE_FINAL_TYPE (ShellAppUsage, shell_app_usage,
SHELL, APP_USAGE, GObject)
#define SHELL_APP_USAGE(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), SHELL_TYPE_APP_USAGE, ShellAppUsage))
#define SHELL_APP_USAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SHELL_TYPE_APP_USAGE, ShellAppUsageClass))
#define SHELL_IS_APP_USAGE(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), SHELL_TYPE_APP_USAGE))
#define SHELL_IS_APP_USAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SHELL_TYPE_APP_USAGE))
#define SHELL_APP_USAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SHELL_TYPE_APP_USAGE, ShellAppUsageClass))
struct _ShellAppUsageClass
{
GObjectClass parent_class;
};
GType shell_app_usage_get_type (void) G_GNUC_CONST;
ShellAppUsage* shell_app_usage_get_default(void);

View File

@@ -156,20 +156,16 @@ static MetaWindow *
window_backed_app_get_window (ShellApp *app)
{
g_assert (app->info == NULL);
if (app->running_state)
{
g_assert (app->running_state->windows);
return app->running_state->windows->data;
}
else
return NULL;
g_assert (app->running_state);
g_assert (app->running_state->windows);
return app->running_state->windows->data;
}
static ClutterActor *
window_backed_app_get_icon (ShellApp *app,
int size)
{
MetaWindow *window = NULL;
MetaWindow *window;
ClutterActor *actor;
gint scale;
ShellGlobal *global;
@@ -185,16 +181,14 @@ window_backed_app_get_icon (ShellApp *app,
* window-backend apps, it's possible we get a request for the icon.
* Avoid asserting here and just return an empty image.
*/
if (app->running_state != NULL)
window = window_backed_app_get_window (app);
if (window == NULL)
if (app->running_state == NULL)
{
actor = clutter_texture_new ();
g_object_set (actor, "opacity", 0, "width", (float) size, "height", (float) size, NULL);
return actor;
}
window = window_backed_app_get_window (app);
actor = st_texture_cache_bind_cairo_surface_property (st_texture_cache_get_default (),
G_OBJECT (window),
"icon");
@@ -238,10 +232,9 @@ shell_app_get_name (ShellApp *app)
else
{
MetaWindow *window = window_backed_app_get_window (app);
const char *name = NULL;
const char *name;
if (window)
name = meta_window_get_wm_class (window);
name = meta_window_get_wm_class (window);
if (!name)
name = C_("program", "Unknown");
return name;
@@ -498,9 +491,6 @@ shell_app_activate_full (ShellApp *app,
case SHELL_APP_STATE_RUNNING:
shell_app_activate_window (app, NULL, timestamp);
break;
default:
g_assert_not_reached();
break;
}
}
@@ -709,7 +699,7 @@ static int
shell_app_get_last_user_time (ShellApp *app)
{
GSList *iter;
guint32 last_user_time;
int last_user_time;
last_user_time = 0;
@@ -719,7 +709,7 @@ shell_app_get_last_user_time (ShellApp *app)
last_user_time = MAX (last_user_time, meta_window_get_user_time (iter->data));
}
return (int)last_user_time;
return last_user_time;
}
/**
@@ -1161,13 +1151,7 @@ shell_app_launch (ShellApp *app,
if (app->info == NULL)
{
MetaWindow *window = window_backed_app_get_window (app);
/* We don't use an error return if there no longer any windows, because the
* user attempting to activate a stale window backed app isn't something
* we would expect the caller to meaningfully handle or display an error
* message to the user.
*/
if (window)
meta_window_activate (window, timestamp);
meta_window_activate (window, timestamp);
return TRUE;
}

View File

@@ -9,8 +9,23 @@
G_BEGIN_DECLS
#define SHELL_TYPE_APP (shell_app_get_type ())
G_DECLARE_FINAL_TYPE (ShellApp, shell_app, SHELL, APP, GObject)
typedef struct _ShellApp ShellApp;
typedef struct _ShellAppClass ShellAppClass;
typedef struct _ShellAppPrivate ShellAppPrivate;
typedef struct _ShellAppAction ShellAppAction;
#define SHELL_TYPE_APP (shell_app_get_type ())
#define SHELL_APP(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), SHELL_TYPE_APP, ShellApp))
#define SHELL_APP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SHELL_TYPE_APP, ShellAppClass))
#define SHELL_IS_APP(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), SHELL_TYPE_APP))
#define SHELL_IS_APP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SHELL_TYPE_APP))
#define SHELL_APP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SHELL_TYPE_APP, ShellAppClass))
struct _ShellAppClass
{
GObjectClass parent_class;
};
typedef enum {
SHELL_APP_STATE_STOPPED,
@@ -18,6 +33,8 @@ typedef enum {
SHELL_APP_STATE_RUNNING
} ShellAppState;
GType shell_app_get_type (void) G_GNUC_CONST;
const char *shell_app_get_id (ShellApp *app);
GDesktopAppInfo *shell_app_get_app_info (ShellApp *app);

View File

@@ -23,22 +23,18 @@
* - Actor is mapped [actor and all parents visible, actor in stage]
*/
G_DEFINE_TYPE (ShellEmbeddedWindow, shell_embedded_window, GTK_TYPE_WINDOW);
enum {
PROP_0
};
typedef struct _ShellEmbeddedWindowPrivate ShellEmbeddedWindowPrivate;
struct _ShellEmbeddedWindowPrivate {
ShellGtkEmbed *actor;
GdkRectangle position;
};
G_DEFINE_TYPE_WITH_PRIVATE (ShellEmbeddedWindow,
shell_embedded_window,
GTK_TYPE_WINDOW);
/*
* The normal gtk_window_show() starts all of the complicated asynchronous
* window resizing code running; we don't want or need any of that.
@@ -51,22 +47,19 @@ static void
shell_embedded_window_show (GtkWidget *widget)
{
ShellEmbeddedWindow *window = SHELL_EMBEDDED_WINDOW (widget);
ShellEmbeddedWindowPrivate *priv;
GtkWidgetClass *widget_class;
priv = shell_embedded_window_get_instance_private (window);
/* Skip GtkWindow, but run the default GtkWidget handling which
* marks the widget visible */
widget_class = g_type_class_peek (GTK_TYPE_WIDGET);
widget_class->show (widget);
if (priv->actor)
if (window->priv->actor)
{
/* Size is 0x0 if the GtkWindow is not shown */
clutter_actor_queue_relayout (CLUTTER_ACTOR (priv->actor));
clutter_actor_queue_relayout (CLUTTER_ACTOR (window->priv->actor));
if (clutter_actor_is_realized (CLUTTER_ACTOR (priv->actor)))
if (clutter_actor_is_realized (CLUTTER_ACTOR (window->priv->actor)))
gtk_widget_map (widget);
}
}
@@ -75,12 +68,9 @@ static void
shell_embedded_window_hide (GtkWidget *widget)
{
ShellEmbeddedWindow *window = SHELL_EMBEDDED_WINDOW (widget);
ShellEmbeddedWindowPrivate *priv;
priv = shell_embedded_window_get_instance_private (window);
if (priv->actor)
clutter_actor_queue_relayout (CLUTTER_ACTOR (priv->actor));
if (window->priv->actor)
clutter_actor_queue_relayout (CLUTTER_ACTOR (window->priv->actor));
GTK_WIDGET_CLASS (shell_embedded_window_parent_class)->hide (widget);
}
@@ -100,9 +90,6 @@ static void
shell_embedded_window_check_resize (GtkContainer *container)
{
ShellEmbeddedWindow *window = SHELL_EMBEDDED_WINDOW (container);
ShellEmbeddedWindowPrivate *priv;
priv = shell_embedded_window_get_instance_private (window);
/* Check resize is called when a resize is queued on something
* inside the GtkWindow; we need to make sure that in response
@@ -110,8 +97,8 @@ shell_embedded_window_check_resize (GtkContainer *container)
* gtk_widget_size_allocate() are called; we defer to the Clutter
* logic and assume it will do the right thing.
*/
if (priv->actor)
clutter_actor_queue_relayout (CLUTTER_ACTOR (priv->actor));
if (window->priv->actor)
clutter_actor_queue_relayout (CLUTTER_ACTOR (window->priv->actor));
}
static GObject *
@@ -147,6 +134,8 @@ shell_embedded_window_class_init (ShellEmbeddedWindowClass *klass)
GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass);
GtkContainerClass *container_class = GTK_CONTAINER_CLASS (klass);
g_type_class_add_private (klass, sizeof (ShellEmbeddedWindowPrivate));
object_class->constructor = shell_embedded_window_constructor;
widget_class->show = shell_embedded_window_show;
@@ -159,6 +148,8 @@ shell_embedded_window_class_init (ShellEmbeddedWindowClass *klass)
static void
shell_embedded_window_init (ShellEmbeddedWindow *window)
{
window->priv = G_TYPE_INSTANCE_GET_PRIVATE (window, SHELL_TYPE_EMBEDDED_WINDOW,
ShellEmbeddedWindowPrivate);
}
/*
@@ -170,12 +161,9 @@ _shell_embedded_window_set_actor (ShellEmbeddedWindow *window,
ShellGtkEmbed *actor)
{
ShellEmbeddedWindowPrivate *priv;
g_return_if_fail (SHELL_IS_EMBEDDED_WINDOW (window));
priv = shell_embedded_window_get_instance_private (window);
priv->actor = actor;
window->priv->actor = actor;
if (actor &&
clutter_actor_is_mapped (CLUTTER_ACTOR (actor)) &&
@@ -190,23 +178,20 @@ _shell_embedded_window_allocate (ShellEmbeddedWindow *window,
int width,
int height)
{
ShellEmbeddedWindowPrivate *priv;
GtkAllocation allocation;
g_return_if_fail (SHELL_IS_EMBEDDED_WINDOW (window));
priv = shell_embedded_window_get_instance_private (window);
if (priv->position.x == x &&
priv->position.y == y &&
priv->position.width == width &&
priv->position.height == height)
if (window->priv->position.x == x &&
window->priv->position.y == y &&
window->priv->position.width == width &&
window->priv->position.height == height)
return;
priv->position.x = x;
priv->position.y = y;
priv->position.width = width;
priv->position.height = height;
window->priv->position.x = x;
window->priv->position.y = y;
window->priv->position.width = width;
window->priv->position.height = height;
if (gtk_widget_get_realized (GTK_WIDGET (window)))
gdk_window_move_resize (gtk_widget_get_window (GTK_WIDGET (window)),

View File

@@ -5,15 +5,31 @@
#include <gtk/gtk.h>
#include <clutter/clutter.h>
#define SHELL_TYPE_EMBEDDED_WINDOW (shell_embedded_window_get_type ())
G_DECLARE_DERIVABLE_TYPE (ShellEmbeddedWindow, shell_embedded_window,
SHELL, EMBEDDED_WINDOW, GtkWindow)
#define SHELL_TYPE_EMBEDDED_WINDOW (shell_embedded_window_get_type ())
#define SHELL_EMBEDDED_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SHELL_TYPE_EMBEDDED_WINDOW, ShellEmbeddedWindow))
#define SHELL_EMBEDDED_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SHELL_TYPE_EMBEDDED_WINDOW, ShellEmbeddedWindowClass))
#define SHELL_IS_EMBEDDED_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SHELL_TYPE_EMBEDDED_WINDOW))
#define SHELL_IS_EMBEDDED_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SHELL_TYPE_EMBEDDED_WINDOW))
#define SHELL_EMBEDDED_WINDOW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SHELL_TYPE_EMBEDDED_WINDOW, ShellEmbeddedWindowClass))
typedef struct _ShellEmbeddedWindow ShellEmbeddedWindow;
typedef struct _ShellEmbeddedWindowClass ShellEmbeddedWindowClass;
typedef struct _ShellEmbeddedWindowPrivate ShellEmbeddedWindowPrivate;
struct _ShellEmbeddedWindow
{
GtkWindow parent;
ShellEmbeddedWindowPrivate *priv;
};
struct _ShellEmbeddedWindowClass
{
GtkWindowClass parent_class;
};
GType shell_embedded_window_get_type (void) G_GNUC_CONST;
GtkWidget *shell_embedded_window_new (void);
#endif /* __SHELL_EMBEDDED_WINDOW_H__ */

View File

@@ -23,26 +23,16 @@
static void shell_generic_container_iface_init (ClutterContainerIface *iface);
typedef struct _ShellGenericContainerPrivate ShellGenericContainerPrivate;
struct _ShellGenericContainer
{
StWidget parent;
ShellGenericContainerPrivate *priv;
};
G_DEFINE_TYPE_WITH_CODE(ShellGenericContainer,
shell_generic_container,
ST_TYPE_WIDGET,
G_IMPLEMENT_INTERFACE (CLUTTER_TYPE_CONTAINER,
shell_generic_container_iface_init));
struct _ShellGenericContainerPrivate {
GHashTable *skip_paint;
};
G_DEFINE_TYPE_WITH_CODE(ShellGenericContainer,
shell_generic_container,
ST_TYPE_WIDGET,
G_ADD_PRIVATE (ShellGenericContainer)
G_IMPLEMENT_INTERFACE (CLUTTER_TYPE_CONTAINER,
shell_generic_container_iface_init));
/* Signals */
enum
{
@@ -395,6 +385,8 @@ shell_generic_container_class_init (ShellGenericContainerClass *klass)
0,
NULL, NULL, NULL,
G_TYPE_NONE, 2, CLUTTER_TYPE_ACTOR_BOX, CLUTTER_TYPE_ALLOCATION_FLAGS);
g_type_class_add_private (gobject_class, sizeof (ShellGenericContainerPrivate));
}
static void
@@ -415,7 +407,8 @@ shell_generic_container_iface_init (ClutterContainerIface *iface)
static void
shell_generic_container_init (ShellGenericContainer *area)
{
area->priv = shell_generic_container_get_instance_private (area);
area->priv = G_TYPE_INSTANCE_GET_PRIVATE (area, SHELL_TYPE_GENERIC_CONTAINER,
ShellGenericContainerPrivate);
area->priv->skip_paint = g_hash_table_new (NULL, NULL);
}

View File

@@ -4,9 +4,12 @@
#include "st.h"
#define SHELL_TYPE_GENERIC_CONTAINER (shell_generic_container_get_type ())
G_DECLARE_FINAL_TYPE (ShellGenericContainer, shell_generic_container,
SHELL, GENERIC_CONTAINER, StWidget)
#define SHELL_TYPE_GENERIC_CONTAINER (shell_generic_container_get_type ())
#define SHELL_GENERIC_CONTAINER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SHELL_TYPE_GENERIC_CONTAINER, ShellGenericContainer))
#define SHELL_GENERIC_CONTAINER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SHELL_TYPE_GENERIC_CONTAINER, ShellGenericContainerClass))
#define SHELL_IS_GENERIC_CONTAINER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SHELL_TYPE_GENERIC_CONTAINER))
#define SHELL_IS_GENERIC_CONTAINER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SHELL_TYPE_GENERIC_CONTAINER))
#define SHELL_GENERIC_CONTAINER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SHELL_TYPE_GENERIC_CONTAINER, ShellGenericContainerClass))
typedef struct {
float min_size;
@@ -19,6 +22,25 @@ typedef struct {
#define SHELL_TYPE_GENERIC_CONTAINER_ALLOCATION (shell_generic_container_allocation_get_type ())
GType shell_generic_container_allocation_get_type (void);
typedef struct _ShellGenericContainer ShellGenericContainer;
typedef struct _ShellGenericContainerClass ShellGenericContainerClass;
typedef struct _ShellGenericContainerPrivate ShellGenericContainerPrivate;
struct _ShellGenericContainer
{
StWidget parent;
ShellGenericContainerPrivate *priv;
};
struct _ShellGenericContainerClass
{
StWidgetClass parent_class;
};
GType shell_generic_container_get_type (void) G_GNUC_CONST;
guint shell_generic_container_get_n_skip_paint (ShellGenericContainer *self);
gboolean shell_generic_container_get_skip_paint (ShellGenericContainer *self,

View File

@@ -867,12 +867,7 @@ update_scale_factor (GtkSettings *settings,
{
g_object_set (context, "scale-factor", g_value_get_int (&value), NULL);
if (meta_is_wayland_compositor ())
{
int xft_dpi;
g_object_get (settings, "gtk-xft-dpi", &xft_dpi, NULL);
g_object_set (clutter_settings_get_default (), "font-dpi", xft_dpi, NULL);
}
g_object_set (clutter_settings_get_default (), "font-dpi", 96 * 1024 * g_value_get_int (&value), NULL);
}
/* Make sure clutter and gdk scaling stays disabled */
@@ -1571,6 +1566,64 @@ shell_global_get_current_time (ShellGlobal *global)
return clutter_get_current_event_time ();
}
static void
import_session_environment_to_app_launch_context (ShellGlobal *global,
GAppLaunchContext *context)
{
char *environment_dir, *environment_filename;
GMappedFile *environment_file;
environment_dir = g_build_filename (g_get_user_runtime_dir (), "gnome", NULL);
environment_filename = g_build_filename (environment_dir, "environment", NULL);
g_free (environment_dir);
environment_file = g_mapped_file_new (environment_filename, FALSE, NULL);
g_free (environment_filename);
if (environment_file != NULL)
{
GVariant *environment_variant;
const char **environment;
int i = 0;
gconstpointer environment_data;
gsize environment_size;
environment_data = g_mapped_file_get_contents (environment_file);
environment_size = g_mapped_file_get_length (environment_file);
environment_variant = g_variant_new_from_data (G_VARIANT_TYPE_BYTESTRING_ARRAY,
environment_data,
environment_size,
FALSE,
NULL,
NULL);
environment = g_variant_get_bytestring_array (environment_variant, NULL);
if (environment != NULL)
{
for (i = 0; environment[i] != NULL; i++)
{
char **entry;
const char *key;
const char *value;
entry = g_strsplit (environment[i], "=", 2);
key = entry[0];
value = entry[1];
if (value != NULL)
g_app_launch_context_setenv (context, key, value);
g_free (entry);
}
g_free (environment);
}
g_variant_unref (environment_variant);
}
g_mapped_file_unref (environment_file);
}
/**
* shell_global_create_app_launch_context:
* @global: A #ShellGlobal
@@ -1591,6 +1644,8 @@ shell_global_create_app_launch_context (ShellGlobal *global,
context = gdk_display_get_app_launch_context (global->gdk_display);
import_session_environment_to_app_launch_context (global, G_APP_LAUNCH_CONTEXT (context));
if (timestamp == 0)
timestamp = shell_global_get_current_time (global);
gdk_app_launch_context_set_timestamp (context, timestamp);

View File

@@ -10,8 +10,22 @@
G_BEGIN_DECLS
#define SHELL_TYPE_GLOBAL (shell_global_get_type ())
G_DECLARE_FINAL_TYPE (ShellGlobal, shell_global, SHELL, GLOBAL, GObject)
typedef struct _ShellGlobal ShellGlobal;
typedef struct _ShellGlobalClass ShellGlobalClass;
#define SHELL_TYPE_GLOBAL (shell_global_get_type ())
#define SHELL_GLOBAL(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), SHELL_TYPE_GLOBAL, ShellGlobal))
#define SHELL_GLOBAL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SHELL_TYPE_GLOBAL, ShellGlobalClass))
#define SHELL_IS_GLOBAL(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), SHELL_TYPE_GLOBAL))
#define SHELL_IS_GLOBAL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SHELL_TYPE_GLOBAL))
#define SHELL_GLOBAL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SHELL_TYPE_GLOBAL, ShellGlobalClass))
struct _ShellGlobalClass
{
GObjectClass parent_class;
};
GType shell_global_get_type (void) G_GNUC_CONST;
ShellGlobal *shell_global_get (void);

View File

@@ -16,14 +16,13 @@
#include <cogl/cogl.h>
#include "shell-glsl-quad.h"
typedef struct _ShellGLSLQuadPrivate ShellGLSLQuadPrivate;
G_DEFINE_TYPE (ShellGLSLQuad, shell_glsl_quad, CLUTTER_TYPE_ACTOR);
struct _ShellGLSLQuadPrivate
{
CoglPipeline *pipeline;
};
G_DEFINE_TYPE_WITH_PRIVATE (ShellGLSLQuad, shell_glsl_quad, CLUTTER_TYPE_ACTOR);
static gboolean
shell_glsl_quad_get_paint_volume (ClutterActor *actor,
ClutterPaintVolume *volume)
@@ -39,7 +38,7 @@ shell_glsl_quad_paint (ClutterActor *actor)
guint8 paint_opacity;
ClutterActorBox box;
priv = shell_glsl_quad_get_instance_private (self);
priv = self->priv;
paint_opacity = clutter_actor_get_paint_opacity (actor);
clutter_actor_get_allocation_box (actor, &box);
@@ -107,7 +106,7 @@ shell_glsl_quad_dispose (GObject *gobject)
ShellGLSLQuad *self = SHELL_GLSL_QUAD (gobject);
ShellGLSLQuadPrivate *priv;
priv = shell_glsl_quad_get_instance_private (self);
priv = self->priv;
g_clear_pointer (&priv->pipeline, cogl_object_unref);
@@ -117,6 +116,7 @@ shell_glsl_quad_dispose (GObject *gobject)
static void
shell_glsl_quad_init (ShellGLSLQuad *quad)
{
quad->priv = G_TYPE_INSTANCE_GET_PRIVATE (quad, SHELL_TYPE_GLSL_QUAD, ShellGLSLQuadPrivate);
}
static void
@@ -124,7 +124,6 @@ shell_glsl_quad_constructed (GObject *object)
{
ShellGLSLQuad *self;
ShellGLSLQuadClass *klass;
ShellGLSLQuadPrivate *priv;
CoglContext *ctx =
clutter_backend_get_cogl_context (clutter_get_default_backend ());
@@ -136,20 +135,18 @@ shell_glsl_quad_constructed (GObject *object)
*/
klass = SHELL_GLSL_QUAD_GET_CLASS (object);
self = SHELL_GLSL_QUAD (object);
priv = shell_glsl_quad_get_instance_private (self);
if (G_UNLIKELY (klass->base_pipeline == NULL))
{
klass->base_pipeline = cogl_pipeline_new (ctx);
cogl_pipeline_set_blend (klass->base_pipeline, "RGBA = ADD (SRC_COLOR * (SRC_COLOR[A]), DST_COLOR * (1-SRC_COLOR[A]))", NULL);
if (klass->build_pipeline != NULL)
klass->build_pipeline (self);
}
priv->pipeline = cogl_pipeline_copy (klass->base_pipeline);
self->priv->pipeline = cogl_pipeline_copy (klass->base_pipeline);
cogl_pipeline_set_layer_null_texture (priv->pipeline, 0, COGL_TEXTURE_TYPE_2D);
cogl_pipeline_set_layer_null_texture (self->priv->pipeline, 0, COGL_TEXTURE_TYPE_2D);
}
static void
@@ -163,6 +160,8 @@ shell_glsl_quad_class_init (ShellGLSLQuadClass *klass)
actor_class->get_paint_volume = shell_glsl_quad_get_paint_volume;
actor_class->paint = shell_glsl_quad_paint;
g_type_class_add_private (klass, sizeof (ShellGLSLQuadPrivate));
}
/**
@@ -177,8 +176,7 @@ int
shell_glsl_quad_get_uniform_location (ShellGLSLQuad *quad,
const char *name)
{
ShellGLSLQuadPrivate *priv = shell_glsl_quad_get_instance_private (quad);
return cogl_pipeline_get_uniform_location (priv->pipeline, name);
return cogl_pipeline_get_uniform_location (quad->priv->pipeline, name);
}
/**
@@ -196,8 +194,7 @@ shell_glsl_quad_set_uniform_float (ShellGLSLQuad *quad,
int total_count,
const float *value)
{
ShellGLSLQuadPrivate *priv = shell_glsl_quad_get_instance_private (quad);
cogl_pipeline_set_uniform_float (priv->pipeline, uniform,
cogl_pipeline_set_uniform_float (quad->priv->pipeline, uniform,
n_components, total_count / n_components,
value);
}

View File

@@ -26,9 +26,23 @@ typedef enum {
SHELL_SNIPPET_HOOK_TEXTURE_LOOKUP
} ShellSnippetHook;
#define SHELL_TYPE_GLSL_QUAD (shell_glsl_quad_get_type ())
G_DECLARE_DERIVABLE_TYPE (ShellGLSLQuad, shell_glsl_quad,
SHELL, GLSL_QUAD, ClutterActor)
#define SHELL_TYPE_GLSL_QUAD (shell_glsl_quad_get_type ())
#define SHELL_GLSL_QUAD(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SHELL_TYPE_GLSL_QUAD, ShellGLSLQuad))
#define SHELL_GLSL_QUAD_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SHELL_TYPE_GLSL_QUAD, ShellGLSLQuadClass))
#define SHELL_IS_GLSL_QUAD(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SHELL_TYPE_GLSL_QUAD))
#define SHELL_IS_GLSL_QUAD_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SHELL_TYPE_GLSL_QUAD))
#define SHELL_GLSL_QUAD_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SHELL_TYPE_GLSL_QUAD, ShellGLSLQuadClass))
typedef struct _ShellGLSLQuad ShellGLSLQuad;
typedef struct _ShellGLSLQuadClass ShellGLSLQuadClass;
typedef struct _ShellGLSLQuadPrivate ShellGLSLQuadPrivate;
struct _ShellGLSLQuad
{
ClutterActor parent;
ShellGLSLQuadPrivate *priv;
};
struct _ShellGLSLQuadClass
{
@@ -39,6 +53,8 @@ struct _ShellGLSLQuadClass
void (*build_pipeline) (ShellGLSLQuad *effect);
};
GType shell_glsl_quad_get_type (void) G_GNUC_CONST;
void shell_glsl_quad_add_glsl_snippet (ShellGLSLQuad *quad,
ShellSnippetHook hook,
const char *declarations,

View File

@@ -15,8 +15,6 @@ enum {
PROP_WINDOW
};
typedef struct _ShellGtkEmbedPrivate ShellGtkEmbedPrivate;
struct _ShellGtkEmbedPrivate
{
ShellEmbeddedWindow *window;
@@ -27,7 +25,7 @@ struct _ShellGtkEmbedPrivate
guint window_created_handler;
};
G_DEFINE_TYPE_WITH_PRIVATE (ShellGtkEmbed, shell_gtk_embed, CLUTTER_TYPE_CLONE);
G_DEFINE_TYPE (ShellGtkEmbed, shell_gtk_embed, CLUTTER_TYPE_CLONE);
static void shell_gtk_embed_set_window (ShellGtkEmbed *embed,
ShellEmbeddedWindow *window);
@@ -42,7 +40,7 @@ shell_gtk_embed_on_window_destroy (GtkWidget *object,
static void
shell_gtk_embed_remove_window_actor (ShellGtkEmbed *embed)
{
ShellGtkEmbedPrivate *priv = shell_gtk_embed_get_instance_private (embed);
ShellGtkEmbedPrivate *priv = embed->priv;
if (priv->window_actor)
{
@@ -62,7 +60,7 @@ shell_gtk_embed_window_created_cb (MetaDisplay *display,
MetaWindow *window,
ShellGtkEmbed *embed)
{
ShellGtkEmbedPrivate *priv = shell_gtk_embed_get_instance_private (embed);
ShellGtkEmbedPrivate *priv = embed->priv;
Window xwindow = meta_window_get_xwindow (window);
GdkWindow *gdk_window = gtk_widget_get_window (GTK_WIDGET (priv->window));
@@ -70,6 +68,7 @@ shell_gtk_embed_window_created_cb (MetaDisplay *display,
{
ClutterActor *window_actor =
CLUTTER_ACTOR (meta_window_get_compositor_private (window));
MetaDisplay *display = shell_global_get_display (shell_global_get ());
GCallback remove_cb = G_CALLBACK (shell_gtk_embed_remove_window_actor);
cairo_region_t *empty_region;
@@ -121,12 +120,11 @@ static void
shell_gtk_embed_on_window_mapped (GtkWidget *object,
ShellGtkEmbed *embed)
{
ShellGtkEmbedPrivate *priv = shell_gtk_embed_get_instance_private (embed);
MetaDisplay *display = shell_global_get_display (shell_global_get ());
/* Listen for new windows so we can detect when Mutter has
created a MutterWindow for this window */
priv->window_created_handler =
embed->priv->window_created_handler =
g_signal_connect (display,
"window-created",
G_CALLBACK (shell_gtk_embed_window_created_cb),
@@ -137,45 +135,44 @@ static void
shell_gtk_embed_set_window (ShellGtkEmbed *embed,
ShellEmbeddedWindow *window)
{
ShellGtkEmbedPrivate *priv = shell_gtk_embed_get_instance_private (embed);
MetaDisplay *display = shell_global_get_display (shell_global_get ());
if (priv->window)
if (embed->priv->window)
{
if (priv->window_created_handler)
if (embed->priv->window_created_handler)
{
g_signal_handler_disconnect (display,
priv->window_created_handler);
priv->window_created_handler = 0;
embed->priv->window_created_handler);
embed->priv->window_created_handler = 0;
}
shell_gtk_embed_remove_window_actor (embed);
_shell_embedded_window_set_actor (priv->window, NULL);
_shell_embedded_window_set_actor (embed->priv->window, NULL);
g_object_unref (priv->window);
g_object_unref (embed->priv->window);
g_signal_handlers_disconnect_by_func (priv->window,
g_signal_handlers_disconnect_by_func (embed->priv->window,
(gpointer)shell_gtk_embed_on_window_destroy,
embed);
g_signal_handlers_disconnect_by_func (priv->window,
g_signal_handlers_disconnect_by_func (embed->priv->window,
(gpointer)shell_gtk_embed_on_window_mapped,
embed);
}
priv->window = window;
embed->priv->window = window;
if (priv->window)
if (embed->priv->window)
{
g_object_ref (priv->window);
g_object_ref (embed->priv->window);
_shell_embedded_window_set_actor (priv->window, embed);
_shell_embedded_window_set_actor (embed->priv->window, embed);
g_signal_connect (priv->window, "destroy",
g_signal_connect (embed->priv->window, "destroy",
G_CALLBACK (shell_gtk_embed_on_window_destroy), embed);
g_signal_connect (priv->window, "map",
g_signal_connect (embed->priv->window, "map",
G_CALLBACK (shell_gtk_embed_on_window_mapped), embed);
}
@@ -209,12 +206,11 @@ shell_gtk_embed_get_property (GObject *object,
GParamSpec *pspec)
{
ShellGtkEmbed *embed = SHELL_GTK_EMBED (object);
ShellGtkEmbedPrivate *priv = shell_gtk_embed_get_instance_private (embed);
switch (prop_id)
{
case PROP_WINDOW:
g_value_set_object (value, priv->window);
g_value_set_object (value, embed->priv->window);
break;
default:
@@ -230,13 +226,12 @@ shell_gtk_embed_get_preferred_width (ClutterActor *actor,
float *natural_width_p)
{
ShellGtkEmbed *embed = SHELL_GTK_EMBED (actor);
ShellGtkEmbedPrivate *priv = shell_gtk_embed_get_instance_private (embed);
if (priv->window
&& gtk_widget_get_visible (GTK_WIDGET (priv->window)))
if (embed->priv->window
&& gtk_widget_get_visible (GTK_WIDGET (embed->priv->window)))
{
GtkRequisition min_req, natural_req;
gtk_widget_get_preferred_size (GTK_WIDGET (priv->window), &min_req, &natural_req);
gtk_widget_get_preferred_size (GTK_WIDGET (embed->priv->window), &min_req, &natural_req);
*min_width_p = min_req.width;
*natural_width_p = natural_req.width;
@@ -252,13 +247,12 @@ shell_gtk_embed_get_preferred_height (ClutterActor *actor,
float *natural_height_p)
{
ShellGtkEmbed *embed = SHELL_GTK_EMBED (actor);
ShellGtkEmbedPrivate *priv = shell_gtk_embed_get_instance_private (embed);
if (priv->window
&& gtk_widget_get_visible (GTK_WIDGET (priv->window)))
if (embed->priv->window
&& gtk_widget_get_visible (GTK_WIDGET (embed->priv->window)))
{
GtkRequisition min_req, natural_req;
gtk_widget_get_preferred_size (GTK_WIDGET (priv->window), &min_req, &natural_req);
gtk_widget_get_preferred_size (GTK_WIDGET (embed->priv->window), &min_req, &natural_req);
*min_height_p = min_req.height;
*natural_height_p = natural_req.height;
@@ -273,7 +267,6 @@ shell_gtk_embed_allocate (ClutterActor *actor,
ClutterAllocationFlags flags)
{
ShellGtkEmbed *embed = SHELL_GTK_EMBED (actor);
ShellGtkEmbedPrivate *priv = shell_gtk_embed_get_instance_private (embed);
float wx = 0.0, wy = 0.0, x, y, ax, ay;
CLUTTER_ACTOR_CLASS (shell_gtk_embed_parent_class)->
@@ -293,7 +286,7 @@ shell_gtk_embed_allocate (ClutterActor *actor,
actor = clutter_actor_get_parent (actor);
}
_shell_embedded_window_allocate (priv->window,
_shell_embedded_window_allocate (embed->priv->window,
(int)(0.5 + wx), (int)(0.5 + wy),
box->x2 - box->x1,
box->y2 - box->y1);
@@ -303,9 +296,8 @@ static void
shell_gtk_embed_map (ClutterActor *actor)
{
ShellGtkEmbed *embed = SHELL_GTK_EMBED (actor);
ShellGtkEmbedPrivate *priv = shell_gtk_embed_get_instance_private (embed);
_shell_embedded_window_map (priv->window);
_shell_embedded_window_map (embed->priv->window);
CLUTTER_ACTOR_CLASS (shell_gtk_embed_parent_class)->map (actor);
}
@@ -314,9 +306,8 @@ static void
shell_gtk_embed_unmap (ClutterActor *actor)
{
ShellGtkEmbed *embed = SHELL_GTK_EMBED (actor);
ShellGtkEmbedPrivate *priv = shell_gtk_embed_get_instance_private (embed);
_shell_embedded_window_unmap (priv->window);
_shell_embedded_window_unmap (embed->priv->window);
CLUTTER_ACTOR_CLASS (shell_gtk_embed_parent_class)->unmap (actor);
}
@@ -337,6 +328,8 @@ shell_gtk_embed_class_init (ShellGtkEmbedClass *klass)
GObjectClass *object_class = G_OBJECT_CLASS (klass);
ClutterActorClass *actor_class = CLUTTER_ACTOR_CLASS (klass);
g_type_class_add_private (klass, sizeof (ShellGtkEmbedPrivate));
object_class->get_property = shell_gtk_embed_get_property;
object_class->set_property = shell_gtk_embed_set_property;
object_class->dispose = shell_gtk_embed_dispose;
@@ -359,6 +352,8 @@ shell_gtk_embed_class_init (ShellGtkEmbedClass *klass)
static void
shell_gtk_embed_init (ShellGtkEmbed *embed)
{
embed->priv = G_TYPE_INSTANCE_GET_PRIVATE (embed, SHELL_TYPE_GTK_EMBED,
ShellGtkEmbedPrivate);
}
/*

View File

@@ -6,15 +6,30 @@
#include "shell-embedded-window.h"
#define SHELL_TYPE_GTK_EMBED (shell_gtk_embed_get_type ())
G_DECLARE_DERIVABLE_TYPE (ShellGtkEmbed, shell_gtk_embed,
SHELL, GTK_EMBED, ClutterClone)
#define SHELL_TYPE_GTK_EMBED (shell_gtk_embed_get_type ())
#define SHELL_GTK_EMBED(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SHELL_TYPE_GTK_EMBED, ShellGtkEmbed))
#define SHELL_GTK_EMBED_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SHELL_TYPE_GTK_EMBED, ShellGtkEmbedClass))
#define SHELL_IS_GTK_EMBED(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SHELL_TYPE_GTK_EMBED))
#define SHELL_IS_GTK_EMBED_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SHELL_TYPE_GTK_EMBED))
#define SHELL_GTK_EMBED_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SHELL_TYPE_GTK_EMBED, ShellGtkEmbedClass))
typedef struct _ShellGtkEmbed ShellGtkEmbed;
typedef struct _ShellGtkEmbedClass ShellGtkEmbedClass;
typedef struct _ShellGtkEmbedPrivate ShellGtkEmbedPrivate;
struct _ShellGtkEmbed
{
ClutterClone parent;
ShellGtkEmbedPrivate *priv;
};
struct _ShellGtkEmbedClass
{
ClutterCloneClass parent_class;
};
GType shell_gtk_embed_get_type (void) G_GNUC_CONST;
ClutterActor *shell_gtk_embed_new (ShellEmbeddedWindow *window);
#endif /* __SHELL_GTK_EMBED_H__ */

View File

@@ -32,6 +32,7 @@
#include <string.h>
typedef struct _ShellPasswordPromptClass ShellPasswordPromptClass;
typedef struct _ShellPasswordPromptPrivate ShellPasswordPromptPrivate;
typedef enum
@@ -56,13 +57,19 @@ struct _ShellKeyringPrompt
gchar *continue_label;
gchar *cancel_label;
GTask *task;
GcrPromptReply last_reply;
GSimpleAsyncResult *async_result;
ClutterText *password_actor;
ClutterText *confirm_actor;
PromptingMode mode;
gboolean shown;
};
typedef struct _ShellKeyringPromptClass
{
GObjectClass parent_class;
} ShellKeyringPromptClass;
enum {
PROP_0,
PROP_TITLE,
@@ -281,9 +288,9 @@ shell_keyring_prompt_dispose (GObject *obj)
if (self->shown)
gcr_prompt_close (GCR_PROMPT (self));
if (self->task)
if (self->async_result)
shell_keyring_prompt_cancel (self);
g_assert (self->task == NULL);
g_assert (self->async_result == NULL);
shell_keyring_prompt_set_password_actor (self, NULL);
shell_keyring_prompt_set_confirm_actor (self, NULL);
@@ -413,14 +420,14 @@ shell_keyring_prompt_password_async (GcrPrompt *prompt,
ShellKeyringPrompt *self = SHELL_KEYRING_PROMPT (prompt);
GObject *obj;
if (self->task != NULL) {
if (self->async_result != NULL) {
g_warning ("this prompt can only show one prompt at a time");
return;
}
self->mode = PROMPTING_FOR_PASSWORD;
self->task = g_task_new (self, NULL, callback, user_data);
g_task_set_source_tag (self->task, shell_keyring_prompt_password_async);
self->async_result = g_simple_async_result_new (G_OBJECT (self), callback, user_data,
shell_keyring_prompt_password_async);
obj = G_OBJECT (self);
g_object_notify (obj, "password-visible");
@@ -437,11 +444,18 @@ shell_keyring_prompt_password_finish (GcrPrompt *prompt,
GAsyncResult *result,
GError **error)
{
g_return_val_if_fail (g_task_get_source_object (G_TASK (result)) == prompt, NULL);
g_return_val_if_fail (g_async_result_is_tagged (result,
ShellKeyringPrompt *self = SHELL_KEYRING_PROMPT (prompt);
g_return_val_if_fail (g_simple_async_result_is_valid (result, G_OBJECT (prompt),
shell_keyring_prompt_password_async), NULL);
return g_task_propagate_pointer (G_TASK (result), error);
if (g_simple_async_result_propagate_error (G_SIMPLE_ASYNC_RESULT (result), error))
return NULL;
if (self->last_reply == GCR_PROMPT_REPLY_CONTINUE)
return clutter_text_get_text (self->password_actor);
return NULL;
}
static void
@@ -453,14 +467,14 @@ shell_keyring_prompt_confirm_async (GcrPrompt *prompt,
ShellKeyringPrompt *self = SHELL_KEYRING_PROMPT (prompt);
GObject *obj;
if (self->task != NULL) {
if (self->async_result != NULL) {
g_warning ("this prompt is already prompting");
return;
}
self->mode = PROMPTING_FOR_CONFIRM;
self->task = g_task_new (self, NULL, callback, user_data);
g_task_set_source_tag (self->task, shell_keyring_prompt_confirm_async);
self->async_result = g_simple_async_result_new (G_OBJECT (self), callback, user_data,
shell_keyring_prompt_confirm_async);
obj = G_OBJECT (self);
g_object_notify (obj, "password-visible");
@@ -477,16 +491,15 @@ shell_keyring_prompt_confirm_finish (GcrPrompt *prompt,
GAsyncResult *result,
GError **error)
{
GTask *task = G_TASK (result);
gssize res;
ShellKeyringPrompt *self = SHELL_KEYRING_PROMPT (prompt);
g_return_val_if_fail (g_task_get_source_object (task) == prompt,
GCR_PROMPT_REPLY_CANCEL);
g_return_val_if_fail (g_async_result_is_tagged (result,
g_return_val_if_fail (g_simple_async_result_is_valid (result, G_OBJECT (prompt),
shell_keyring_prompt_confirm_async), GCR_PROMPT_REPLY_CANCEL);
res = g_task_propagate_int (task, error);
return res == -1 ? GCR_PROMPT_REPLY_CANCEL : (GcrPromptReply)res;
if (g_simple_async_result_propagate_error (G_SIMPLE_ASYNC_RESULT (result), error))
return GCR_PROMPT_REPLY_CANCEL;
return self->last_reply;
}
static void
@@ -705,20 +718,19 @@ shell_keyring_prompt_set_confirm_actor (ShellKeyringPrompt *self,
gboolean
shell_keyring_prompt_complete (ShellKeyringPrompt *self)
{
GTask *res;
PromptingMode mode;
GSimpleAsyncResult *res;
const gchar *password;
const gchar *confirm;
const gchar *env;
g_return_val_if_fail (SHELL_IS_KEYRING_PROMPT (self), FALSE);
g_return_val_if_fail (self->mode != PROMPTING_NONE, FALSE);
g_return_val_if_fail (self->task != NULL, FALSE);
password = clutter_text_get_text (self->password_actor);
g_return_val_if_fail (self->async_result != NULL, FALSE);
if (self->mode == PROMPTING_FOR_PASSWORD)
{
password = clutter_text_get_text (self->password_actor);
/* Is it a new password? */
if (self->password_new)
{
@@ -744,15 +756,13 @@ shell_keyring_prompt_complete (ShellKeyringPrompt *self)
g_object_notify (G_OBJECT (self), "password-strength");
}
res = self->task;
mode = self->mode;
self->task = NULL;
self->last_reply = GCR_PROMPT_REPLY_CONTINUE;
res = self->async_result;
self->async_result = NULL;
self->mode = PROMPTING_NONE;
if (mode == PROMPTING_FOR_CONFIRM)
g_task_return_int (res, (gssize)GCR_PROMPT_REPLY_CONTINUE);
else
g_task_return_pointer (res, (gpointer)password, NULL);
g_simple_async_result_complete (res);
g_object_unref (res);
return TRUE;
@@ -767,8 +777,7 @@ shell_keyring_prompt_complete (ShellKeyringPrompt *self)
void
shell_keyring_prompt_cancel (ShellKeyringPrompt *self)
{
GTask *res;
PromptingMode mode;
GSimpleAsyncResult *res;
g_return_if_fail (SHELL_IS_KEYRING_PROMPT (self));
@@ -783,16 +792,13 @@ shell_keyring_prompt_cancel (ShellKeyringPrompt *self)
return;
}
g_return_if_fail (self->task != NULL);
g_return_if_fail (self->async_result != NULL);
self->last_reply = GCR_PROMPT_REPLY_CANCEL;
res = self->task;
mode = self->mode;
self->task = NULL;
res = self->async_result;
self->async_result = NULL;
self->mode = PROMPTING_NONE;
if (mode == PROMPTING_FOR_CONFIRM)
g_task_return_int (res, (gssize) GCR_PROMPT_REPLY_CANCEL);
else
g_task_return_pointer (res, NULL, NULL);
g_simple_async_result_complete_in_idle (res);
g_object_unref (res);
}

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