Compare commits

..

4 Commits

Author SHA1 Message Date
39f974358c Check error of g_dbus_proxy_new_sync call
Otherwise errors pile up and we crash later on.
2015-09-24 13:31:07 -04:00
0fb98606ef shell_dbus_acquire_name: Don't leak the result
The GVariant returned by g_dbus_proxy_call_sync must be
freed with g_variant_unref, to prevent a leak.
2015-09-24 13:19:17 -04:00
dd0d5a757c shell_dbus_acquire_name: Don't leak error
If fatal is not set, we return from this function in the error
case. Don't leak the GError if that happens.
2015-09-24 13:19:11 -04:00
0bbb226faf shell_dbus_acquire_name: Don't assume error is set
In rare cases (mostly when the bus connection is going away),
g_dbus_proxy_call_sync can return NULL without setting an error.
Don't crash in this case.
2015-09-24 13:19:04 -04:00
205 changed files with 20434 additions and 28042 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

207
NEWS
View File

@ -1,210 +1,3 @@
3.20.4
======
* Free old backgrounds immediately [Hyungwon; #766353]
* Adjust to flatpak PermissionStore API changes [Florian; #766598]
* calendar: Only hide dismissed occurrence of recurring event [Florian; #748226]
Contributors:
Hyungwon Hwang, Florian Müllner
Translations:
Bruce Cowan [en_GB], Piotr Drąg [pl]
3.20.3
======
* Fix sorting of hidden apps in app switcher [Florian; #766238]
* Allocate framebuffers early to fix a crash on NVIDIA [Martin; #764898]
* Fix cycle-windows/cycle-group keybindings [Florian; #730739]
* networkAgent: Handle VPN service aliases [David; #658484]
* Fix crash when using screen recorder under wayland [Rui; #767001]
* Plug a memory leak [Hans; #710230]
Contributors:
Rui Matos, Florian Müllner, Hans Petter Jansson, Martin Szulecki,
David Woodhouse
Translations:
Sveinn í Felli [is], Andika Triwidada [id]
3.20.2
======
* Save screencasts in HOME if XDG_VIDEO_DIR doesn't exist [Florian; #765015]
* Don't show orientation lock when g-s-d won't rotate [Florian; #765267]
* Misc. bug fixes [Heiher, Florian, Marek; #722752, #765061, #763068, #765607,
#757676]
Contributors:
Heiher, Marek Chalupa, Florian Müllner
Translations:
Arash Mousavi [fa], Kristjan SCHMIDT [eo], Tiago Santos [pt],
Kjartan Maraas [nb]
3.20.1
======
* Plug a memory leak [Aaron; #735705]
Contributors:
Aaron Plattner
Translations:
Daniel Korostil [uk], Matej Urbančič [sl], Inaki Larranaga Murgoitio [eu],
Cheng-Chia Tseng [zh_TW], Fabio Tomat [fur], Trần Ngọc Quân [vi],
YunQiang Su [zh_CN], Marek Černocký [cs], Arash Mousavi [fa],
Alexander Shopov [bg], Khaled Hosny [ar]
3.20.0
======
Translations:
Changwoo Ryu [ko], Baurzhan Muftakhidinov [kk], Milo Casagrande [it],
Anders Jonsson [sv], Muhammet Kara [tr], Alexandre Franke [fr],
Rūdolfs Mazurs [lv], Ask Hjorth Larsen [da], Jiro Matsuzawa [ja]
3.19.92
=======
* Update location dialog according to latest mockups [Zeeshan; #762480]
* Fix deleting chat notifications in calendar [Florian; #747991]
Contributors:
Zeeshan Ali (Khattak), Florian Müllner
Translations:
Rūdolfs Mazurs [lv], Changwoo Ryu [ko], Matej Urbančič [sl],
Justin van Steijn [nl], Fabio Tomat [fur], Kris Thomsen [da],
Marek Černocký [cs], Piotr Drąg [pl], Dušan Kazik [sk],
Мирослав Николић [sr, sr@latin], Balázs Úr [hu], Yosef Or Boczko [he],
Daniel Mustieles [es], Fran Dieguez [gl], Bernd Homuth [de],
Tom Tryfonidis [el], Jiri Grönroos [fi], Gil Forcada [ca],
Artur Morais [pt_BR], Aurimas Černius [lt], Stas Solovey [ru]
3.19.91
=======
* location: Ask user only once [Zeeshan; #762559]
* Fix jiggling when auto-hiding legacy tray [Florian; #747957]
* Misc. bug fixes [Florian, Michael, Ting-Wei; #762475, #762507, #755659]
Contributors:
Zeeshan Ali (Khattak), Michael Catanzaro, Ting-Wei Lan, Florian Müllner
Translations:
Мирослав Николић [sr, sr@latin], Piotr Drąg [pl], A S Alam [pa],
Artur de Aquino Morais [pt_BR], Daniel Mustieles [es],
Chao-Hsiung Liao [zh_TW], Daniel Korostil [uk], Fran Dieguez [gl],
Tom Tryfonidis [el], Bernd Homuth [de], Sebastian Rasmussen [sv],
Jordi Mas [ca], Piotr Drąg [ga], Cédric Valmary [oc], Gábor Kelemen [hu],
Baurzhan Muftakhidinov [kk], Friedel Wolff [af], Marek Černocký [cs],
Mingye Wang (Arthur2e5) [zh_CN], Aron Xu [zh_CN], Khaled Hosny [ar],
Aurimas Černius [lt], Stas Solovey [ru], Yosef Or Boczko [he]
3.19.90
=======
* Correctly identify VPN secret requests [Lubomir; #760999]
* Improve week number presentation [Jakub; #683245]
* Add audio device selection dialog [Florian; #760284]
* Add media controls to the time and date drop down [Florian; #756491]
* Fix IBus candidate popup position under wayland [Rui; #753476]
* Ask user to grant applications access to location [Zeeshan; #762119]
* Misc. bug fixes [Mario, Jakub, Florian; #761208, #761772, #762270]
Contributors:
Zeeshan Ali (Khattak), Michael Catanzaro, Rui Matos, Florian Müllner,
Lubomir Rintel, Mario Sanchez Prada, Jakub Steiner
Translations:
Alexander Shopov [bg], Balázs Meskó [hu], Fabio Tomat [fur],
Dušan Kazik [sk], Piotr Drąg [pl], Alexandre Franke [fr],
Mario Blättermann [de], Milo Casagrande [it], Jordi Mas [ca]
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
======

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,5 +1,5 @@
AC_PREREQ(2.63)
AC_INIT([gnome-shell],[3.20.4],[https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-shell],[gnome-shell])
AC_INIT([gnome-shell],[3.18.0],[https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-shell],[gnome-shell])
AX_IS_RELEASE([git-directory])
AC_CONFIG_HEADERS([config.h])
@ -77,7 +77,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.20.2
MUTTER_MIN_VERSION=3.18.0
GTK_MIN_VERSION=3.15.0
GIO_MIN_VERSION=2.45.3
LIBECAL_MIN_VERSION=3.5.3
@ -117,9 +117,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],

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; }
@ -399,54 +399,6 @@ StScrollBar {
width: 48px;
height: 48px; }
/* Audio selection dialog */
.audio-device-selection-dialog {
spacing: 30px; }
.audio-selection-content {
spacing: 20px;
padding: 24px; }
.audio-selection-title {
font-weight: bold;
text-align: center; }
.audio-selection-box {
spacing: 20px; }
.audio-selection-device {
border: 1px solid rgba(238, 238, 236, 0.2);
border-radius: 12px; }
.audio-selection-device:active, .audio-selection-device:hover, .audio-selection-device:focus {
background-color: #215d9c; }
.audio-selection-device-box {
padding: 20px;
spacing: 20px; }
.audio-selection-device-icon {
icon-size: 64px; }
/* Geolocation Dialog */
.geolocation-dialog {
spacing: 30px; }
.geolocation-dialog-main-layout {
spacing: 12px; }
.geolocation-dialog-content {
spacing: 20px; }
.geolocation-dialog-icon {
icon-size: 48px; }
.geolocation-dialog-title {
font-weight: bold; }
.geolocation-dialog-reason {
color: #999999;
font-weight: bold; }
/* Network Agent Dialog */
.network-dialog-secret-table {
spacing-rows: 15px;
@ -456,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; }
@ -673,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; }
@ -800,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.3em;
height: 1.8em;
border-radius: 2px;
padding: 0.5em 0 0;
margin: 6px;
background-color: rgba(255, 255, 255, 0.3);
color: #000; }
/* Message list */
.message-list {
width: 31.5em; }
width: 420px; }
.message-list-sections {
spacing: 1.5em; }
@ -869,23 +808,6 @@ StScrollBar {
padding: 8px;
font-size: .9em; }
.message-media-control {
padding: 6px; }
.message-media-control:last-child:ltr {
padding-right: 18px; }
.message-media-control:last-child:rtl {
padding-left: 18px; }
.media-message-cover-icon {
icon-size: 32px; }
.media-message-cover-icon.fallback {
color: #1a1a1a;
background-color: #000;
border: 2px solid #000;
border-radius: 2px;
icon-size: 16px;
padding: 8px; }
.system-switch-user-submenu-icon.user-icon {
icon-size: 20px;
padding: 0 2px; }
@ -901,7 +823,7 @@ StScrollBar {
color: transparent; }
.aggregate-menu {
min-width: 21em; }
width: 360px; }
.aggregate-menu .popup-menu-icon {
padding: 0 4px; }
@ -1038,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; }
@ -399,54 +399,6 @@ StScrollBar {
width: 48px;
height: 48px; }
/* Audio selection dialog */
.audio-device-selection-dialog {
spacing: 30px; }
.audio-selection-content {
spacing: 20px;
padding: 24px; }
.audio-selection-title {
font-weight: bold;
text-align: center; }
.audio-selection-box {
spacing: 20px; }
.audio-selection-device {
border: 1px solid rgba(238, 238, 236, 0.2);
border-radius: 12px; }
.audio-selection-device:active, .audio-selection-device:hover, .audio-selection-device:focus {
background-color: #215d9c; }
.audio-selection-device-box {
padding: 20px;
spacing: 20px; }
.audio-selection-device-icon {
icon-size: 64px; }
/* Geolocation Dialog */
.geolocation-dialog {
spacing: 30px; }
.geolocation-dialog-main-layout {
spacing: 12px; }
.geolocation-dialog-content {
spacing: 20px; }
.geolocation-dialog-icon {
icon-size: 48px; }
.geolocation-dialog-title {
font-weight: bold; }
.geolocation-dialog-reason {
color: #8e8e80;
font-weight: bold; }
/* Network Agent Dialog */
.network-dialog-secret-table {
spacing-rows: 15px;
@ -456,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; }
@ -673,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; }
@ -800,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.3em;
height: 1.8em;
border-radius: 2px;
padding: 0.5em 0 0;
margin: 6px;
background-color: rgba(238, 238, 236, 0.3);
color: #393f3f; }
/* Message list */
.message-list {
width: 31.5em; }
width: 420px; }
.message-list-sections {
spacing: 1.5em; }
@ -869,23 +808,6 @@ StScrollBar {
padding: 8px;
font-size: .9em; }
.message-media-control {
padding: 6px; }
.message-media-control:last-child:ltr {
padding-right: 18px; }
.message-media-control:last-child:rtl {
padding-left: 18px; }
.media-message-cover-icon {
icon-size: 32px; }
.media-message-cover-icon.fallback {
color: #515a5a;
background-color: #393f3f;
border: 2px solid #393f3f;
border-radius: 2px;
icon-size: 16px;
padding: 8px; }
.system-switch-user-submenu-icon.user-icon {
icon-size: 20px;
padding: 0 2px; }
@ -901,7 +823,7 @@ StScrollBar {
color: transparent; }
.aggregate-menu {
min-width: 21em; }
width: 280px; }
.aggregate-menu .popup-menu-icon {
padding: 0 4px; }
@ -1038,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

@ -23,6 +23,11 @@ const GnomeShellIface = '<node> \
</interface> \
</node>';
const customCss = '.prefs-button { \
padding: 8px; \
border-radius: 20px; \
}';
const GnomeShellProxy = Gio.DBusProxy.makeProxyWrapper(GnomeShellIface);
function stripPrefix(string, prefix) {
@ -171,6 +176,21 @@ const Application = new Lang.Class({
this._window.show_all();
},
_addCustomStyle: function() {
let provider = new Gtk.CssProvider();
try {
provider.load_from_data(customCss, -1);
} catch(e) {
log('Failed to add application style');
return;
}
let screen = this._window.window.get_screen();
let priority = Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION;
Gtk.StyleContext.add_provider_for_screen(screen, provider, priority);
},
_sortList: function(row1, row2) {
let name1 = ExtensionUtils.extensions[row1.uuid].metadata.name;
let name2 = ExtensionUtils.extensions[row2.uuid].metadata.name;
@ -219,6 +239,7 @@ const Application = new Lang.Class({
_onStartup: function(app) {
this._buildUI(app);
this._addCustomStyle();
this._scanExtensions();
},
@ -295,7 +316,7 @@ const ExtensionRow = new Lang.Class({
button.add(new Gtk.Image({ icon_name: 'emblem-system-symbolic',
icon_size: Gtk.IconSize.BUTTON,
visible: true }));
button.get_style_context().add_class('circular');
button.get_style_context().add_class('prefs-button');
hbox.add(button);
this.prefsButton = button;

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

@ -35,7 +35,6 @@
<file>ui/animation.js</file>
<file>ui/appDisplay.js</file>
<file>ui/appFavorites.js</file>
<file>ui/audioDeviceSelection.js</file>
<file>ui/backgroundMenu.js</file>
<file>ui/background.js</file>
<file>ui/boxpointer.js</file>
@ -63,9 +62,7 @@
<file>ui/magnifierDBus.js</file>
<file>ui/main.js</file>
<file>ui/messageTray.js</file>
<file>ui/messageList.js</file>
<file>ui/modalDialog.js</file>
<file>ui/mpris.js</file>
<file>ui/notificationDaemon.js</file>
<file>ui/osdWindow.js</file>
<file>ui/osdMonitorLabeler.js</file>

View File

@ -354,59 +354,6 @@ const AppSwitcherPopup = new Lang.Class({
}
});
const CyclerPopup = new Lang.Class({
Name: 'CyclerPopup',
Extends: SwitcherPopup.SwitcherPopup,
Abstract: true,
_init : function() {
this.parent();
this._items = this._getWindows();
if (this._items.length == 0)
return;
// We don't show an actual popup, so just provide what SwitcherPopup
// expects instead of inheriting from SwitcherList
this._switcherList = { actor: new St.Widget(),
highlight: Lang.bind(this, this._highlightItem),
connect: function() {} };
},
_highlightItem: function(index, justOutline) {
Main.activateWindow(this._items[index]);
},
_finish: function() {
this._highlightItem(this._selectedIndex);
this.parent();
}
});
const GroupCyclerPopup = new Lang.Class({
Name: 'GroupCyclerPopup',
Extends: CyclerPopup,
_getWindows: function() {
let app = Shell.WindowTracker.get_default().focus_app;
return app ? app.get_windows() : [];
},
_keyPressHandler: function(keysym, action) {
if (action == Meta.KeyBindingAction.CYCLE_GROUP)
this._select(this._next());
else if (action == Meta.KeyBindingAction.CYCLE_GROUP_BACKWARD)
this._select(this._previous());
else
return Clutter.EVENT_PROPAGATE;
return Clutter.EVENT_STOP;
}
});
const WindowSwitcherPopup = new Lang.Class({
Name: 'WindowSwitcherPopup',
Extends: SwitcherPopup.SwitcherPopup,
@ -454,32 +401,6 @@ const WindowSwitcherPopup = new Lang.Class({
}
});
const WindowCyclerPopup = new Lang.Class({
Name: 'WindowCyclerPopup',
Extends: CyclerPopup,
_init: function() {
this._settings = new Gio.Settings({ schema_id: 'org.gnome.shell.window-switcher' });
this.parent();
},
_getWindows: function() {
let workspace = this._settings.get_boolean('current-workspace-only') ? global.screen.get_active_workspace() : null;
return global.display.get_tab_list(Meta.TabList.NORMAL, workspace);
},
_keyPressHandler: function(keysym, action) {
if (action == Meta.KeyBindingAction.CYCLE_WINDOWS)
this._select(this._next());
else if (action == Meta.KeyBindingAction.CYCLE_WINDOWS_BACKWARD)
this._select(this._previous());
else
return Clutter.EVENT_PROPAGATE;
return Clutter.EVENT_STOP;
}
});
const AppIcon = new Lang.Class({
Name: 'AppIcon',
@ -527,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;
@ -764,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,
@ -786,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

@ -16,18 +16,16 @@ const RENAMED_DESKTOP_IDS = {
'glchess.desktop': 'gnome-chess.desktop',
'glines.desktop': 'five-or-more.desktop',
'gnect.desktop': 'four-in-a-row.desktop',
'gnibbles.desktop': 'org.gnome.Nibbles.desktop',
'gnibbles.desktop': 'gnome-nibbles.desktop',
'gnobots2.desktop': 'gnome-robots.desktop',
'gnome-boxes.desktop': 'org.gnome.Boxes.desktop',
'gnome-clocks.desktop': 'org.gnome.clocks.desktop',
'gnome-contacts.desktop': 'org.gnome.Contacts.desktop',
'gnome-documents.desktop': 'org.gnome.Documents.desktop',
'gnome-font-viewer.desktop': 'org.gnome.font-viewer.desktop',
'gnome-nibbles.desktop': 'org.gnome.Nibbles.desktop',
'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

@ -1,216 +0,0 @@
const Clutter = imports.gi.Clutter;
const Gio = imports.gi.Gio;
const GLib = imports.gi.GLib;
const Lang = imports.lang;
const Meta = imports.gi.Meta;
const Shell = imports.gi.Shell;
const St = imports.gi.St;
const Main = imports.ui.main;
const ModalDialog = imports.ui.modalDialog;
const AudioDevice = {
HEADPHONES: 1 << 0,
HEADSET: 1 << 1,
MICROPHONE: 1 << 2
};
const AudioDeviceSelectionIface = '<node> \
<interface name="org.gnome.Shell.AudioDeviceSelection"> \
<method name="Open"> \
<arg name="devices" direction="in" type="as" /> \
</method> \
<method name="Close"> \
</method> \
<signal name="DeviceSelected"> \
<arg name="device" type="s" /> \
</signal> \
</interface> \
</node>';
const AudioDeviceSelectionDialog = new Lang.Class({
Name: 'AudioDeviceSelectionDialog',
Extends: ModalDialog.ModalDialog,
_init: function(devices) {
this.parent({ styleClass: 'audio-device-selection-dialog' });
this._deviceItems = {};
this._buildLayout();
if (devices & AudioDevice.HEADPHONES)
this._addDevice(AudioDevice.HEADPHONES);
if (devices & AudioDevice.HEADSET)
this._addDevice(AudioDevice.HEADSET);
if (devices & AudioDevice.MICROPHONE)
this._addDevice(AudioDevice.MICROPHONE);
if (this._selectionBox.get_n_children() < 2)
throw new Error('Too few devices for a selection');
},
destroy: function() {
this.parent();
},
_buildLayout: function(devices) {
let title = new St.Label({ style_class: 'audio-selection-title',
text: _("Select Audio Device"),
x_align: Clutter.ActorAlign.CENTER });
this.contentLayout.style_class = 'audio-selection-content';
this.contentLayout.add(title);
this._selectionBox = new St.BoxLayout({ style_class: 'audio-selection-box' });
this.contentLayout.add(this._selectionBox, { expand: true });
this.addButton({ action: Lang.bind(this, this._openSettings),
label: _("Sound Settings") });
this.addButton({ action: Lang.bind(this, this.close),
label: _("Cancel"),
key: Clutter.Escape });
},
_getDeviceLabel: function(device) {
switch(device) {
case AudioDevice.HEADPHONES:
return _("Headphones");
case AudioDevice.HEADSET:
return _("Headset");
case AudioDevice.MICROPHONE:
return _("Microphone");
default:
return null;
}
},
_getDeviceIcon: function(device) {
switch(device) {
case AudioDevice.HEADPHONES:
return 'audio-headphones-symbolic';
case AudioDevice.HEADSET:
return 'audio-headset-symbolic';
case AudioDevice.MICROPHONE:
return 'audio-input-microphone-symbolic';
default:
return null;
}
},
_addDevice: function(device) {
let box = new St.BoxLayout({ style_class: 'audio-selection-device-box',
vertical: true });
box.connect('notify::height',
function() {
Meta.later_add(Meta.LaterType.BEFORE_REDRAW,
function() {
box.width = box.height;
});
});
let icon = new St.Icon({ style_class: 'audio-selection-device-icon',
icon_name: this._getDeviceIcon(device) });
box.add(icon);
let label = new St.Label({ style_class: 'audio-selection-device-label',
text: this._getDeviceLabel(device),
x_align: Clutter.ActorAlign.CENTER });
box.add(label);
let button = new St.Button({ style_class: 'audio-selection-device',
can_focus: true,
child: box });
this._selectionBox.add(button);
button.connect('clicked', Lang.bind(this,
function() {
this.emit('device-selected', device);
this.close();
Main.overview.hide();
}));
},
_openSettings: function() {
let desktopFile = 'gnome-sound-panel.desktop'
let app = Shell.AppSystem.get_default().lookup_app(desktopFile);
if (!app) {
log('Settings panel for desktop file ' + desktopFile + ' could not be loaded!');
return;
}
this.close();
Main.overview.hide();
app.activate();
}
});
const AudioDeviceSelectionDBus = new Lang.Class({
Name: 'AudioDeviceSelectionDBus',
_init: function() {
this._audioSelectionDialog = null;
this._dbusImpl = Gio.DBusExportedObject.wrapJSObject(AudioDeviceSelectionIface, this);
this._dbusImpl.export(Gio.DBus.session, '/org/gnome/Shell/AudioDeviceSelection');
Gio.DBus.session.own_name('org.gnome.Shell.AudioDeviceSelection', Gio.BusNameOwnerFlags.REPLACE, null, null);
},
_onDialogClosed: function() {
this._audioSelectionDialog = null;
},
_onDeviceSelected: function(dialog, device) {
let connection = this._dbusImpl.get_connection();
let info = this._dbusImpl.get_info();
let deviceName = Object.keys(AudioDevice).filter(
function(dev) {
return AudioDevice[dev] == device;
})[0].toLowerCase();
connection.emit_signal(this._audioSelectionDialog._sender,
this._dbusImpl.get_object_path(),
info ? info.name : null,
'DeviceSelected',
GLib.Variant.new('(s)', [deviceName]));
},
OpenAsync: function(params, invocation) {
if (this._audioSelectionDialog) {
invocation.return_value(null);
return;
}
let [deviceNames] = params;
let devices = 0;
deviceNames.forEach(function(n) {
devices |= AudioDevice[n.toUpperCase()];
});
let dialog;
try {
dialog = new AudioDeviceSelectionDialog(devices);
} catch(e) {
invocation.return_value(null);
return;
}
dialog._sender = invocation.get_sender();
dialog.connect('closed', Lang.bind(this, this._onDialogClosed));
dialog.connect('device-selected',
Lang.bind(this, this._onDeviceSelected));
dialog.open();
this._audioSelectionDialog = dialog;
invocation.return_value(null);
},
CloseAsync: function(params, invocation) {
if (this._audioSelectionDialog &&
this._audioSelectionDialog._sender == invocation.get_sender())
this._audioSelectionDialog.close();
invocation.return_value(null);
}
});

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;
@ -696,7 +685,6 @@ const BackgroundManager = new Lang.Class({
time: FADE_ANIMATION_TIME,
transition: 'easeOutQuad',
onComplete: function() {
oldBackgroundActor.background.run_dispose();
oldBackgroundActor.destroy();
}
});

View File

@ -1,19 +1,23 @@
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
const Atk = imports.gi.Atk;
const Clutter = imports.gi.Clutter;
const Gio = imports.gi.Gio;
const GLib = imports.gi.GLib;
const GObject = imports.gi.GObject;
const Gtk = imports.gi.Gtk;
const Lang = imports.lang;
const St = imports.gi.St;
const Signals = imports.signals;
const Pango = imports.gi.Pango;
const Gettext_gtk30 = imports.gettext.domain('gtk30');
const Mainloop = imports.mainloop;
const Meta = imports.gi.Meta;
const Shell = imports.gi.Shell;
const Main = imports.ui.main;
const MessageList = imports.ui.messageList;
const MessageTray = imports.ui.messageTray;
const Mpris = imports.ui.mpris;
const Tweener = imports.ui.tweener;
const Util = imports.misc.util;
const MSECS_IN_DAY = 24 * 60 * 60 * 1000;
@ -22,24 +26,28 @@ const ELLIPSIS_CHAR = '\u2026';
const MESSAGE_ICON_SIZE = 32;
const MESSAGE_ANIMATION_TIME = 0.1;
const DEFAULT_EXPAND_LINES = 6;
// alias to prevent xgettext from picking up strings translated in GTK+
const gtk30_ = Gettext_gtk30.gettext;
const NC_ = function(context, str) { return context + '\u0004' + str; };
function sameYear(dateA, dateB) {
function _sameYear(dateA, dateB) {
return (dateA.getYear() == dateB.getYear());
}
function sameMonth(dateA, dateB) {
return sameYear(dateA, dateB) && (dateA.getMonth() == dateB.getMonth());
function _sameMonth(dateA, dateB) {
return _sameYear(dateA, dateB) && (dateA.getMonth() == dateB.getMonth());
}
function sameDay(dateA, dateB) {
return sameMonth(dateA, dateB) && (dateA.getDate() == dateB.getDate());
function _sameDay(dateA, dateB) {
return _sameMonth(dateA, dateB) && (dateA.getDate() == dateB.getDate());
}
function isToday(date) {
return sameDay(new Date(), date);
function _isToday(date) {
return _sameDay(new Date(), date);
}
function _isWorkDay(date) {
@ -90,6 +98,148 @@ function _getCalendarDayAbbreviation(dayNumber) {
return Shell.util_translate_time_string(abbreviations[dayNumber]);
}
function _fixMarkup(text, allowMarkup) {
if (allowMarkup) {
// Support &amp;, &quot;, &apos;, &lt; and &gt;, escape all other
// occurrences of '&'.
let _text = text.replace(/&(?!amp;|quot;|apos;|lt;|gt;)/g, '&amp;');
// Support <b>, <i>, and <u>, escape anything else
// so it displays as raw markup.
_text = _text.replace(/<(?!\/?[biu]>)/g, '&lt;');
try {
Pango.parse_markup(_text, -1, '');
return _text;
} catch (e) {}
}
// !allowMarkup, or invalid markup
return GLib.markup_escape_text(text, -1);
}
const URLHighlighter = new Lang.Class({
Name: 'URLHighlighter',
_init: function(text, lineWrap, allowMarkup) {
if (!text)
text = '';
this.actor = new St.Label({ reactive: true, style_class: 'url-highlighter',
x_expand: true, x_align: Clutter.ActorAlign.START });
this._linkColor = '#ccccff';
this.actor.connect('style-changed', Lang.bind(this, function() {
let [hasColor, color] = this.actor.get_theme_node().lookup_color('link-color', false);
if (hasColor) {
let linkColor = color.to_string().substr(0, 7);
if (linkColor != this._linkColor) {
this._linkColor = linkColor;
this._highlightUrls();
}
}
}));
this.actor.clutter_text.line_wrap = lineWrap;
this.actor.clutter_text.line_wrap_mode = Pango.WrapMode.WORD_CHAR;
this.setMarkup(text, allowMarkup);
this.actor.connect('button-press-event', Lang.bind(this, function(actor, event) {
// Don't try to URL highlight when invisible.
// The MessageTray doesn't actually hide us, so
// we need to check for paint opacities as well.
if (!actor.visible || actor.get_paint_opacity() == 0)
return Clutter.EVENT_PROPAGATE;
// Keep Notification.actor from seeing this and taking
// a pointer grab, which would block our button-release-event
// handler, if an URL is clicked
return this._findUrlAtPos(event) != -1;
}));
this.actor.connect('button-release-event', Lang.bind(this, function (actor, event) {
if (!actor.visible || actor.get_paint_opacity() == 0)
return Clutter.EVENT_PROPAGATE;
let urlId = this._findUrlAtPos(event);
if (urlId != -1) {
let url = this._urls[urlId].url;
if (url.indexOf(':') == -1)
url = 'http://' + url;
Gio.app_info_launch_default_for_uri(url, global.create_app_launch_context(0, -1));
return Clutter.EVENT_STOP;
}
return Clutter.EVENT_PROPAGATE;
}));
this.actor.connect('motion-event', Lang.bind(this, function(actor, event) {
if (!actor.visible || actor.get_paint_opacity() == 0)
return Clutter.EVENT_PROPAGATE;
let urlId = this._findUrlAtPos(event);
if (urlId != -1 && !this._cursorChanged) {
global.screen.set_cursor(Meta.Cursor.POINTING_HAND);
this._cursorChanged = true;
} else if (urlId == -1) {
global.screen.set_cursor(Meta.Cursor.DEFAULT);
this._cursorChanged = false;
}
return Clutter.EVENT_PROPAGATE;
}));
this.actor.connect('leave-event', Lang.bind(this, function() {
if (!this.actor.visible || this.actor.get_paint_opacity() == 0)
return Clutter.EVENT_PROPAGATE;
if (this._cursorChanged) {
this._cursorChanged = false;
global.screen.set_cursor(Meta.Cursor.DEFAULT);
}
return Clutter.EVENT_PROPAGATE;
}));
},
setMarkup: function(text, allowMarkup) {
text = text ? _fixMarkup(text, allowMarkup) : '';
this._text = text;
this.actor.clutter_text.set_markup(text);
/* clutter_text.text contain text without markup */
this._urls = Util.findUrls(this.actor.clutter_text.text);
this._highlightUrls();
},
_highlightUrls: function() {
// text here contain markup
let urls = Util.findUrls(this._text);
let markup = '';
let pos = 0;
for (let i = 0; i < urls.length; i++) {
let url = urls[i];
let str = this._text.substr(pos, url.pos - pos);
markup += str + '<span foreground="' + this._linkColor + '"><u>' + url.url + '</u></span>';
pos = url.pos + url.url.length;
}
markup += this._text.substr(pos);
this.actor.clutter_text.set_markup(markup);
},
_findUrlAtPos: function(event) {
let success;
let [x, y] = event.get_coords();
[success, x, y] = this.actor.transform_stage_point(x, y);
let find_pos = -1;
for (let i = 0; i < this.actor.clutter_text.text.length; i++) {
let [success, px, py, line_height] = this.actor.clutter_text.position_to_coords(i);
if (py > y || py + line_height < y || x < px)
continue;
find_pos = i;
}
if (find_pos != -1) {
for (let i = 0; i < this._urls.length; i++)
if (find_pos >= this._urls[i].pos &&
this._urls[i].pos + this._urls[i].url.length > find_pos)
return i;
}
return -1;
}
});
// Abstraction for an appointment/event in a calendar
const CalendarEvent = new Lang.Class({
@ -394,7 +544,7 @@ const Calendar = new Lang.Class({
// Sets the calendar to show a specific date
setDate: function(date) {
if (sameDay(date, this._selectedDate))
if (_sameDay(date, this._selectedDate))
return;
this._selectedDate = date;
@ -575,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;
@ -607,7 +756,7 @@ const Calendar = new Lang.Class({
if (leftMost)
styleClass = 'calendar-day-left ' + styleClass;
if (sameDay(now, iter))
if (_sameDay(now, iter))
styleClass += ' calendar-today';
else if (iter.getMonth() != this._selectedDate.getMonth())
styleClass += ' calendar-other-month-day';
@ -650,16 +799,16 @@ const Calendar = new Lang.Class({
_update: function() {
let now = new Date();
if (sameYear(this._selectedDate, now))
if (_sameYear(this._selectedDate, now))
this._monthLabel.text = this._selectedDate.toLocaleFormat(this._headerFormatWithoutYear);
else
this._monthLabel.text = this._selectedDate.toLocaleFormat(this._headerFormat);
if (!this._calendarBegin || !sameMonth(this._selectedDate, this._calendarBegin) || !sameDay(now, this._markedAsToday))
if (!this._calendarBegin || !_sameMonth(this._selectedDate, this._calendarBegin) || !_sameDay(now, this._markedAsToday))
this._rebuildCalendar();
this._buttons.forEach(Lang.bind(this, function(button) {
if (sameDay(button._date, this._selectedDate)) {
if (_sameDay(button._date, this._selectedDate)) {
button.add_style_pseudo_class('active');
if (this._shouldDateGrabFocus)
button.grab_key_focus();
@ -671,9 +820,353 @@ const Calendar = new Lang.Class({
});
Signals.addSignalMethods(Calendar.prototype);
const ScaleLayout = new Lang.Class({
Name: 'ScaleLayout',
Extends: Clutter.BinLayout,
_connectContainer: function(container) {
if (this._container == container)
return;
if (this._container)
for (let id of this._signals)
this._container.disconnect(id);
this._container = container;
this._signals = [];
if (this._container)
for (let signal of ['notify::scale-x', 'notify::scale-y']) {
let id = this._container.connect(signal, Lang.bind(this,
function() {
this.layout_changed();
}));
this._signals.push(id);
}
},
vfunc_get_preferred_width: function(container, forHeight) {
this._connectContainer(container);
let [min, nat] = this.parent(container, forHeight);
return [Math.floor(min * container.scale_x),
Math.floor(nat * container.scale_x)];
},
vfunc_get_preferred_height: function(container, forWidth) {
this._connectContainer(container);
let [min, nat] = this.parent(container, forWidth);
return [Math.floor(min * container.scale_y),
Math.floor(nat * container.scale_y)];
}
});
const LabelExpanderLayout = new Lang.Class({
Name: 'LabelExpanderLayout',
Extends: Clutter.LayoutManager,
Properties: { 'expansion': GObject.ParamSpec.double('expansion',
'Expansion',
'Expansion of the layout, between 0 (collapsed) ' +
'and 1 (fully expanded',
GObject.ParamFlags.READABLE | GObject.ParamFlags.WRITABLE,
0, 1, 0)},
_init: function(params) {
this._expansion = 0;
this._expandLines = DEFAULT_EXPAND_LINES;
this.parent(params);
},
get expansion() {
return this._expansion;
},
set expansion(v) {
if (v == this._expansion)
return;
this._expansion = v;
this.notify('expansion');
let visibleIndex = this._expansion > 0 ? 1 : 0;
for (let i = 0; this._container && i < this._container.get_n_children(); i++)
this._container.get_child_at_index(i).visible = (i == visibleIndex);
this.layout_changed();
},
set expandLines(v) {
if (v == this._expandLines)
return;
this._expandLines = v;
if (this._expansion > 0)
this.layout_changed();
},
vfunc_set_container: function(container) {
this._container = container;
},
vfunc_get_preferred_width: function(container, forHeight) {
let [min, nat] = [0, 0];
for (let i = 0; i < container.get_n_children(); i++) {
if (i > 1)
break; // we support one unexpanded + one expanded child
let child = container.get_child_at_index(i);
let [childMin, childNat] = child.get_preferred_width(forHeight);
[min, nat] = [Math.max(min, childMin), Math.max(nat, childNat)];
}
return [min, nat];
},
vfunc_get_preferred_height: function(container, forWidth) {
let [min, nat] = [0, 0];
let children = container.get_children();
if (children[0])
[min, nat] = children[0].get_preferred_height(forWidth);
if (children[1]) {
let [min2, nat2] = children[1].get_preferred_height(forWidth);
let [expMin, expNat] = [Math.min(min2, min * this._expandLines),
Math.min(nat2, nat * this._expandLines)];
[min, nat] = [min + this._expansion * (expMin - min),
nat + this._expansion * (expNat - nat)];
}
return [min, nat];
},
vfunc_allocate: function(container, box, flags) {
for (let i = 0; i < container.get_n_children(); i++) {
let child = container.get_child_at_index(i);
if (child.visible)
child.allocate(box, flags);
}
}
});
const Message = new Lang.Class({
Name: 'Message',
_init: function(title, body) {
this.expanded = false;
this.actor = new St.Button({ style_class: 'message',
accessible_role: Atk.Role.NOTIFICATION,
can_focus: true,
x_expand: true, x_fill: true });
this.actor.connect('key-press-event',
Lang.bind(this, this._onKeyPressed));
let vbox = new St.BoxLayout({ vertical: true });
this.actor.set_child(vbox);
let hbox = new St.BoxLayout();
vbox.add_actor(hbox);
this._actionBin = new St.Widget({ layout_manager: new ScaleLayout(),
visible: false });
vbox.add_actor(this._actionBin);
this._iconBin = new St.Bin({ style_class: 'message-icon-bin',
y_expand: true,
visible: false });
hbox.add_actor(this._iconBin);
let contentBox = new St.BoxLayout({ style_class: 'message-content',
vertical: true, x_expand: true });
hbox.add_actor(contentBox);
let titleBox = new St.BoxLayout();
contentBox.add_actor(titleBox);
this.titleLabel = new St.Label({ style_class: 'message-title',
x_expand: true,
x_align: Clutter.ActorAlign.START });
this.setTitle(title);
titleBox.add_actor(this.titleLabel);
this._secondaryBin = new St.Bin({ style_class: 'message-secondary-bin' });
titleBox.add_actor(this._secondaryBin);
let closeIcon = new St.Icon({ icon_name: 'window-close-symbolic',
icon_size: 16 });
this._closeButton = new St.Button({ child: closeIcon, visible: false });
titleBox.add_actor(this._closeButton);
this._bodyStack = new St.Widget({ x_expand: true });
this._bodyStack.layout_manager = new LabelExpanderLayout();
contentBox.add_actor(this._bodyStack);
this.bodyLabel = new URLHighlighter('', false, this._useBodyMarkup);
this.bodyLabel.actor.add_style_class_name('message-body');
this._bodyStack.add_actor(this.bodyLabel.actor);
this.setBody(body);
this._closeButton.connect('clicked', Lang.bind(this, this.close));
this.actor.connect('notify::hover', Lang.bind(this, this._sync));
this.actor.connect('clicked', Lang.bind(this, this._onClicked));
this.actor.connect('destroy', Lang.bind(this, this._onDestroy));
this._sync();
},
close: function() {
this.emit('close');
},
setIcon: function(actor) {
this._iconBin.child = actor;
this._iconBin.visible = (actor != null);
},
setSecondaryActor: function(actor) {
this._secondaryBin.child = actor;
},
setTitle: function(text) {
let title = text ? _fixMarkup(text.replace(/\n/g, ' '), false) : '';
this.titleLabel.clutter_text.set_markup(title);
},
setBody: function(text) {
this._bodyText = text;
this.bodyLabel.setMarkup(text ? text.replace(/\n/g, ' ') : '',
this._useBodyMarkup);
if (this._expandedLabel)
this._expandedLabel.setMarkup(text, this._useBodyMarkup);
},
setUseBodyMarkup: function(enable) {
if (this._useBodyMarkup === enable)
return;
this._useBodyMarkup = enable;
if (this.bodyLabel)
this.setBody(this._bodyText);
},
setActionArea: function(actor) {
if (actor == null) {
if (this._actionBin.get_n_children() > 0)
this._actionBin.get_child_at_index(0).destroy();
return;
}
if (this._actionBin.get_n_children() > 0)
throw new Error('Message already has an action area');
this._actionBin.add_actor(actor);
this._actionBin.visible = this.expanded;
},
setExpandedBody: function(actor) {
if (actor == null) {
if (this._bodyStack.get_n_children() > 1)
this._bodyStack.get_child_at_index(1).destroy();
return;
}
if (this._bodyStack.get_n_children() > 1)
throw new Error('Message already has an expanded body actor');
this._bodyStack.insert_child_at_index(actor, 1);
},
setExpandedLines: function(nLines) {
this._bodyStack.layout_manager.expandLines = nLines;
},
expand: function(animate) {
this.expanded = true;
this._actionBin.visible = (this._actionBin.get_n_children() > 0);
if (this._bodyStack.get_n_children() < 2) {
this._expandedLabel = new URLHighlighter(this._bodyText,
true, this._useBodyMarkup);
this.setExpandedBody(this._expandedLabel.actor);
}
if (animate) {
Tweener.addTween(this._bodyStack.layout_manager,
{ expansion: 1,
time: MessageTray.ANIMATION_TIME,
transition: 'easeOutQuad' });
this._actionBin.scale_y = 0;
Tweener.addTween(this._actionBin,
{ scale_y: 1,
time: MessageTray.ANIMATION_TIME,
transition: 'easeOutQuad' });
} else {
this._bodyStack.layout_manager.expansion = 1;
this._actionBin.scale_y = 1;
}
this.emit('expanded');
},
unexpand: function(animate) {
if (animate) {
Tweener.addTween(this._bodyStack.layout_manager,
{ expansion: 0,
time: MessageTray.ANIMATION_TIME,
transition: 'easeOutQuad' });
Tweener.addTween(this._actionBin,
{ scale_y: 0,
time: MessageTray.ANIMATION_TIME,
transition: 'easeOutQuad',
onCompleteScope: this,
onComplete: function() {
this._actionBin.hide();
this.expanded = false;
}});
} else {
this._bodyStack.layout_manager.expansion = 0;
this._actionBin.scale_y = 0;
this.expanded = false;
}
this.emit('unexpanded');
},
canClose: function() {
return true;
},
_sync: function() {
let hovered = this.actor.hover;
this._closeButton.visible = hovered && this.canClose();
this._secondaryBin.visible = !hovered;
},
_onClicked: function() {
},
_onDestroy: function() {
},
_onKeyPressed: function(a, event) {
let keysym = event.get_key_symbol();
if (keysym == Clutter.KEY_Delete ||
keysym == Clutter.KEY_KP_Delete) {
this.close();
return Clutter.EVENT_STOP;
}
return Clutter.EVENT_PROPAGATE;
}
});
Signals.addSignalMethods(Message.prototype);
const EventMessage = new Lang.Class({
Name: 'EventMessage',
Extends: MessageList.Message,
Extends: Message,
_init: function(event, date) {
this._event = event;
@ -716,13 +1209,13 @@ const EventMessage = new Lang.Class({
},
canClose: function() {
return isToday(this._date);
return _isToday(this._date);
}
});
const NotificationMessage = new Lang.Class({
Name: 'NotificationMessage',
Extends: MessageList.Message,
Extends: Message,
_init: function(notification) {
this.notification = notification;
@ -776,9 +1269,217 @@ const NotificationMessage = new Lang.Class({
}
});
const MessageListSection = new Lang.Class({
Name: 'MessageListSection',
_init: function(title) {
this.actor = new St.BoxLayout({ style_class: 'message-list-section',
clip_to_allocation: true,
x_expand: true, vertical: true });
let titleBox = new St.BoxLayout({ style_class: 'message-list-section-title-box' });
this.actor.add_actor(titleBox);
this._title = new St.Button({ style_class: 'message-list-section-title',
label: title,
can_focus: true,
x_expand: true,
x_align: St.Align.START });
titleBox.add_actor(this._title);
this._title.connect('clicked', Lang.bind(this, this._onTitleClicked));
this._title.connect('key-focus-in', Lang.bind(this, this._onKeyFocusIn));
let closeIcon = new St.Icon({ icon_name: 'window-close-symbolic' });
this._closeButton = new St.Button({ style_class: 'message-list-section-close',
child: closeIcon,
accessible_name: _("Clear section"),
can_focus: true });
this._closeButton.set_x_align(Clutter.ActorAlign.END);
titleBox.add_actor(this._closeButton);
this._closeButton.connect('clicked', Lang.bind(this, this.clear));
this._list = new St.BoxLayout({ style_class: 'message-list-section-list',
vertical: true });
this.actor.add_actor(this._list);
this._list.connect('actor-added', Lang.bind(this, this._sync));
this._list.connect('actor-removed', Lang.bind(this, this._sync));
let id = Main.sessionMode.connect('updated',
Lang.bind(this, this._sync));
this.actor.connect('destroy', function() {
Main.sessionMode.disconnect(id);
});
this._messages = new Map();
this._date = new Date();
this.empty = true;
this._sync();
},
_onTitleClicked: function() {
Main.overview.hide();
Main.panel.closeCalendar();
},
_onKeyFocusIn: function(actor) {
this.emit('key-focus-in', actor);
},
get allowed() {
return true;
},
setDate: function(date) {
if (_sameDay(date, this._date))
return;
this._date = date;
this._sync();
},
addMessage: function(message, animate) {
this.addMessageAtIndex(message, -1, animate);
},
addMessageAtIndex: function(message, index, animate) {
let obj = {
container: null,
destroyId: 0,
keyFocusId: 0,
closeId: 0
};
let pivot = new Clutter.Point({ x: .5, y: .5 });
let scale = animate ? 0 : 1;
obj.container = new St.Widget({ layout_manager: new ScaleLayout(),
pivot_point: pivot,
scale_x: scale, scale_y: scale });
obj.keyFocusId = message.actor.connect('key-focus-in',
Lang.bind(this, this._onKeyFocusIn));
obj.destroyId = message.actor.connect('destroy',
Lang.bind(this, function() {
this.removeMessage(message, false);
}));
obj.closeId = message.connect('close',
Lang.bind(this, function() {
this.removeMessage(message, true);
}));
this._messages.set(message, obj);
obj.container.add_actor(message.actor);
this._list.insert_child_at_index(obj.container, index);
if (animate)
Tweener.addTween(obj.container, { scale_x: 1,
scale_y: 1,
time: MESSAGE_ANIMATION_TIME,
transition: 'easeOutQuad' });
},
moveMessage: function(message, index, animate) {
let obj = this._messages.get(message);
if (!animate) {
this._list.set_child_at_index(obj.container, index);
return;
}
let onComplete = Lang.bind(this, function() {
this._list.set_child_at_index(obj.container, index);
Tweener.addTween(obj.container, { scale_x: 1,
scale_y: 1,
time: MESSAGE_ANIMATION_TIME,
transition: 'easeOutQuad' });
});
Tweener.addTween(obj.container, { scale_x: 0,
scale_y: 0,
time: MESSAGE_ANIMATION_TIME,
transition: 'easeOutQuad',
onComplete: onComplete });
},
removeMessage: function(message, animate) {
let obj = this._messages.get(message);
message.actor.disconnect(obj.destroyId);
message.actor.disconnect(obj.keyFocusId);
message.disconnect(obj.closeId);
this._messages.delete(message);
if (animate) {
Tweener.addTween(obj.container, { scale_x: 0, scale_y: 0,
time: MESSAGE_ANIMATION_TIME,
transition: 'easeOutQuad',
onComplete: function() {
obj.container.destroy();
global.sync_pointer();
}});
} else {
obj.container.destroy();
global.sync_pointer();
}
},
clear: function() {
let messages = [...this._messages.keys()].filter(function(message) {
return message.canClose();
});
// If there are few messages, letting them all zoom out looks OK
if (messages.length < 2) {
messages.forEach(function(message) {
message.close();
});
} else {
// Otherwise we slide them out one by one, and then zoom them
// out "off-screen" in the end to smoothly shrink the parent
let delay = MESSAGE_ANIMATION_TIME / Math.max(messages.length, 5);
for (let i = 0; i < messages.length; i++) {
let message = messages[i];
let obj = this._messages.get(message);
Tweener.addTween(obj.container,
{ anchor_x: this._list.width,
opacity: 0,
time: MESSAGE_ANIMATION_TIME,
delay: i * delay,
transition: 'easeOutQuad',
onComplete: function() {
message.close();
}});
}
}
},
_canClear: function() {
for (let message of this._messages.keys())
if (message.canClose())
return true;
return false;
},
_shouldShow: function() {
return !this.empty;
},
_sync: function() {
let empty = this._list.get_n_children() == 0;
let changed = this.empty !== empty;
this.empty = empty;
if (changed)
this.emit('empty-changed');
this._closeButton.visible = this._canClear();
this.actor.visible = this.allowed && this._shouldShow();
}
});
Signals.addSignalMethods(MessageListSection.prototype);
const EventsSection = new Lang.Class({
Name: 'EventsSection',
Extends: MessageList.MessageListSection,
Extends: MessageListSection,
_init: function() {
this._desktopSettings = new Gio.Settings({ schema_id: 'org.gnome.desktop.interface' });
@ -817,14 +1518,14 @@ const EventsSection = new Lang.Class({
},
_updateTitle: function() {
if (isToday(this._date)) {
if (_isToday(this._date)) {
this._title.label = _("Events");
return;
}
let dayFormat;
let now = new Date();
if (sameYear(this._date, now))
if (_sameYear(this._date, now))
/* Translators: Shown on calendar heading when selected day occurs on current year */
dayFormat = Shell.util_translate_time_string(NC_("calendar heading",
"%A, %B %d"));
@ -900,7 +1601,7 @@ const EventsSection = new Lang.Class({
},
_shouldShow: function() {
return !this.empty || !isToday(this._date);
return !this.empty || !_isToday(this._date);
},
_sync: function() {
@ -913,7 +1614,7 @@ const EventsSection = new Lang.Class({
const NotificationSection = new Lang.Class({
Name: 'NotificationSection',
Extends: MessageList.MessageListSection,
Extends: MessageListSection,
_init: function() {
this.parent(_("Notifications"));
@ -1019,7 +1720,7 @@ const NotificationSection = new Lang.Class({
},
_shouldShow: function() {
return !this.empty && isToday(this._date);
return !this.empty && _isToday(this._date);
},
_sync: function() {
@ -1052,20 +1753,20 @@ const Placeholder = new Lang.Class({
},
setDate: function(date) {
if (sameDay(this._date, date))
if (_sameDay(this._date, date))
return;
this._date = date;
this._sync();
},
_sync: function() {
let today = isToday(this._date);
if (today && this._icon.gicon == this._todayIcon)
let isToday = _isToday(this._date);
if (isToday && this._icon.gicon == this._todayIcon)
return;
if (!today && this._icon.gicon == this._otherIcon)
if (!isToday && this._icon.gicon == this._otherIcon)
return;
if (today) {
if (isToday) {
this._icon.gicon = this._todayIcon;
this._label.text = _("No Notifications");
} else {
@ -1075,8 +1776,8 @@ const Placeholder = new Lang.Class({
}
});
const CalendarMessageList = new Lang.Class({
Name: 'CalendarMessageList',
const MessageList = new Lang.Class({
Name: 'MessageList',
_init: function() {
this.actor = new St.Widget({ style_class: 'message-list',
@ -1100,9 +1801,6 @@ const CalendarMessageList = new Lang.Class({
this._scrollView.add_actor(this._sectionList);
this._sections = new Map();
this._mediaSection = new Mpris.MediaSection();
this._addSection(this._mediaSection);
this._notificationSection = new NotificationSection();
this._addSection(this._notificationSection);

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

@ -796,18 +796,10 @@ const NetworkAgent = new Lang.Class({
path = GLib.build_filenamev([Config.LIBEXECDIR, path]);
}
if (GLib.file_test(path, GLib.FileTest.IS_EXECUTABLE)) {
if (GLib.file_test(path, GLib.FileTest.IS_EXECUTABLE))
this._vpnBinaries[service] = { fileName: path, externalUIMode: externalUIMode, supportsHints: hints };
try {
let aliases = keyfile.get_string_list('VPN Connection', 'aliases');
for (let alias of aliases) {
this._vpnBinaries[alias] = { fileName: path, externalUIMode: externalUIMode, supportsHints: hints };
}
} catch(e) { } // ignore errors if key does not exist
} else {
else
throw new Error('VPN plugin at %s is not executable'.format(path));
}
} catch(e) {
log('Error \'%s\' while processing VPN keyfile \'%s\''.
format(e.message, dir.get_child(name).get_path()));

View File

@ -12,9 +12,9 @@ const St = imports.gi.St;
const Tpl = imports.gi.TelepathyLogger;
const Tp = imports.gi.TelepathyGLib;
const Calendar = imports.ui.calendar;
const History = imports.misc.history;
const Main = imports.ui.main;
const MessageList = imports.ui.messageList;
const MessageTray = imports.ui.messageTray;
const Params = imports.misc.params;
const PopupMenu = imports.ui.popupMenu;
@ -469,7 +469,6 @@ const ChatSource = new Lang.Class({
destroy: function(reason) {
if (this._client.is_handling_channel(this._channel)) {
this._ackMessages();
// The chat box has been destroyed so it can't
// handle the channel any more.
this._channel.close_async(function(channel, result) {
@ -867,7 +866,7 @@ const ChatNotificationBanner = new Lang.Class({
},
_addMessage: function(message) {
let highlighter = new MessageList.URLHighlighter(message.body, true, true);
let highlighter = new Calendar.URLHighlighter(message.body, true, true);
let body = highlighter.actor;
let styles = message.styles;

View File

@ -259,7 +259,7 @@ const ShowAppsIcon = new Lang.Class({
},
_createIcon: function(size) {
this._iconActor = new St.Icon({ icon_name: 'view-app-grid-symbolic',
this._iconActor = new St.Icon({ icon_name: 'view-grid-symbolic',
icon_size: size,
style_class: 'show-apps-icon',
track_hover: true });
@ -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

@ -360,7 +360,7 @@ const DateMenuButton = new Lang.Class({
}));
// Fill up the first column
this._messageList = new Calendar.CalendarMessageList();
this._messageList = new Calendar.MessageList();
hbox.add(this._messageList.actor, { expand: true, y_fill: false, y_align: St.Align.START });
// Fill up the second column

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;
@ -571,13 +520,20 @@ const _Draggable = new Lang.Class({
return;
}
this._animateDragEnd(eventTime,
{ x: snapBackX,
y: snapBackY,
scale_x: snapBackScale,
scale_y: snapBackScale,
time: SNAP_BACK_ANIMATION_TIME,
});
this._animationInProgress = true;
// No target, so snap back
Tweener.addTween(this._dragActor,
{ x: snapBackX,
y: snapBackY,
scale_x: snapBackScale,
scale_y: snapBackScale,
opacity: this._dragOrigOpacity,
time: SNAP_BACK_ANIMATION_TIME,
transition: 'easeOutQuad',
onComplete: this._onAnimationComplete,
onCompleteScope: this,
onCompleteParams: [this._dragActor, eventTime]
});
},
_restoreDragActor: function(eventTime) {
@ -589,44 +545,18 @@ const _Draggable = new Lang.Class({
this._dragActor.set_scale(restoreScale, restoreScale);
this._dragActor.opacity = 0;
this._animateDragEnd(eventTime,
{ time: REVERT_ANIMATION_TIME });
},
_animateDragEnd: function (eventTime, params) {
this._animationInProgress = true;
// finish animation if the actor gets destroyed
// during it
this._dragActorDestroyId =
this._dragActor.connect('destroy',
Lang.bind(this, this._finishAnimation));
params['opacity'] = this._dragOrigOpacity;
params['transition'] = 'easeOutQuad';
params['onComplete'] = this._onAnimationComplete;
params['onCompleteScope'] = this;
params['onCompleteParams'] = [this._dragActor, eventTime];
// start the animation
Tweener.addTween(this._dragActor, params)
},
_finishAnimation : function () {
if (!this._animationInProgress)
return
this._animationInProgress = false;
if (!this._buttonDown)
this._dragComplete();
global.screen.set_cursor(Meta.Cursor.DEFAULT);
Tweener.addTween(this._dragActor,
{ opacity: this._dragOrigOpacity,
time: REVERT_ANIMATION_TIME,
transition: 'easeOutQuad',
onComplete: this._onAnimationComplete,
onCompleteScope: this,
onCompleteParams: [this._dragActor, eventTime]
});
},
_onAnimationComplete : function (dragActor, eventTime) {
dragActor.disconnect(this._dragActorDestroyId);
this._dragActorDestroyId = 0;
if (this._dragOrigParent) {
Main.uiGroup.remove_child(this._dragActor);
this._dragOrigParent.add_actor(this._dragActor);
@ -635,9 +565,12 @@ const _Draggable = new Lang.Class({
} else {
dragActor.destroy();
}
global.screen.set_cursor(Meta.Cursor.DEFAULT);
this.emit('drag-end', eventTime, false);
this._finishAnimation();
this._animationInProgress = false;
if (!this._buttonDown)
this._dragComplete();
},
_dragComplete: function() {

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

@ -158,22 +158,10 @@ const CandidatePopup = new Lang.Class({
panelService.connect('set-cursor-location',
Lang.bind(this, function(ps, x, y, w, h) {
this._setDummyCursorGeometry(x, y, w, h);
Main.layoutManager.setDummyCursorGeometry(x, y, w, h);
if (this._boxPointer.actor.visible)
this._boxPointer.setPosition(Main.layoutManager.dummyCursor, 0);
}));
try {
panelService.connect('set-cursor-location-relative',
Lang.bind(this, function(ps, x, y, w, h) {
if (!global.display.focus_window)
return;
let window = global.display.focus_window.get_compositor_private();
this._setDummyCursorGeometry(window.x + x, window.y + y, w, h);
}));
} catch(e) {
// Only recent IBus versions have support for this signal
// which is used for wayland clients. In order to work
// with older IBus versions we can silently ignore the
// signal's absence.
}
panelService.connect('update-preedit-text',
Lang.bind(this, function(ps, text, cursorPosition, visible) {
this._preeditText.visible = visible;
@ -258,12 +246,6 @@ const CandidatePopup = new Lang.Class({
}));
},
_setDummyCursorGeometry: function(x, y, w, h) {
Main.layoutManager.setDummyCursorGeometry(x, y, w, h);
if (this._boxPointer.actor.visible)
this._boxPointer.setPosition(Main.layoutManager.dummyCursor, 0);
},
_updateVisibility: function() {
let isVisible = (this._preeditText.visible ||
this._auxText.visible ||

View File

@ -50,14 +50,15 @@ const LegacyTray = new Lang.Class({
this._slideLayout.translationX = 0;
this._slideLayout.slideDirection = OverviewControls.SlideDirection.LEFT;
this._slider = new St.Widget({ x_expand: true, y_expand: true,
this._slider = new St.Widget({ style_class: 'legacy-tray',
x_expand: true, y_expand: true,
x_align: Clutter.ActorAlign.START,
y_align: Clutter.ActorAlign.END,
layout_manager: this._slideLayout });
this.actor.add_actor(this._slider);
this._slider.connect('notify::allocation', Lang.bind(this, this._syncBarrier));
this._box = new St.BoxLayout({ style_class: 'legacy-tray' });
this._box = new St.BoxLayout();
this._slider.add_actor(this._box);
this._concealHandle = new St.Button({ style_class: 'legacy-tray-handle',

View File

@ -11,7 +11,6 @@ const Meta = imports.gi.Meta;
const Shell = imports.gi.Shell;
const St = imports.gi.St;
const AudioDeviceSelection = imports.ui.audioDeviceSelection;
const Components = imports.ui.components;
const CtrlAltTab = imports.ui.ctrlAltTab;
const EndSessionDialog = imports.ui.endSessionDialog;
@ -63,7 +62,6 @@ let ctrlAltTabManager = null;
let osdWindowManager = null;
let osdMonitorLabeler = null;
let sessionMode = null;
let shellAudioSelectionDBusService = null;
let shellDBusService = null;
let shellMountOpDBusService = null;
let screenSaverDBus = null;
@ -80,7 +78,6 @@ let _startDate;
let _defaultCssStylesheet = null;
let _cssStylesheet = null;
let _a11ySettings = null;
let _themeResource = null;
function _sessionUpdated() {
if (sessionMode.isPrimary)
@ -122,7 +119,6 @@ function start() {
_loadDefaultStylesheet);
_initializeUI();
shellAudioSelectionDBusService = new AudioDeviceSelection.AudioDeviceSelectionDBus();
shellDBusService = new ShellDBus.GnomeShell();
shellMountOpDBusService = new ShellMountOperation.GnomeShellMountOpHandler();
@ -141,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
@ -292,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

@ -1,726 +0,0 @@
const Atk = imports.gi.Atk;
const Clutter = imports.gi.Clutter;
const Gio = imports.gi.Gio;
const GLib = imports.gi.GLib;
const GObject = imports.gi.GObject;
const Lang = imports.lang;
const Main = imports.ui.main;
const MessageTray = imports.ui.messageTray;
const Meta = imports.gi.Meta;
const Pango = imports.gi.Pango;
const Signals = imports.signals;
const St = imports.gi.St;
const Calendar = imports.ui.calendar;
const Tweener = imports.ui.tweener;
const Util = imports.misc.util;
const MESSAGE_ANIMATION_TIME = 0.1;
const DEFAULT_EXPAND_LINES = 6;
function _fixMarkup(text, allowMarkup) {
if (allowMarkup) {
// Support &amp;, &quot;, &apos;, &lt; and &gt;, escape all other
// occurrences of '&'.
let _text = text.replace(/&(?!amp;|quot;|apos;|lt;|gt;)/g, '&amp;');
// Support <b>, <i>, and <u>, escape anything else
// so it displays as raw markup.
_text = _text.replace(/<(?!\/?[biu]>)/g, '&lt;');
try {
Pango.parse_markup(_text, -1, '');
return _text;
} catch (e) {}
}
// !allowMarkup, or invalid markup
return GLib.markup_escape_text(text, -1);
}
const URLHighlighter = new Lang.Class({
Name: 'URLHighlighter',
_init: function(text, lineWrap, allowMarkup) {
if (!text)
text = '';
this.actor = new St.Label({ reactive: true, style_class: 'url-highlighter',
x_expand: true, x_align: Clutter.ActorAlign.START });
this._linkColor = '#ccccff';
this.actor.connect('style-changed', Lang.bind(this, function() {
let [hasColor, color] = this.actor.get_theme_node().lookup_color('link-color', false);
if (hasColor) {
let linkColor = color.to_string().substr(0, 7);
if (linkColor != this._linkColor) {
this._linkColor = linkColor;
this._highlightUrls();
}
}
}));
this.actor.clutter_text.line_wrap = lineWrap;
this.actor.clutter_text.line_wrap_mode = Pango.WrapMode.WORD_CHAR;
this.setMarkup(text, allowMarkup);
this.actor.connect('button-press-event', Lang.bind(this, function(actor, event) {
// Don't try to URL highlight when invisible.
// The MessageTray doesn't actually hide us, so
// we need to check for paint opacities as well.
if (!actor.visible || actor.get_paint_opacity() == 0)
return Clutter.EVENT_PROPAGATE;
// Keep Notification.actor from seeing this and taking
// a pointer grab, which would block our button-release-event
// handler, if an URL is clicked
return this._findUrlAtPos(event) != -1;
}));
this.actor.connect('button-release-event', Lang.bind(this, function (actor, event) {
if (!actor.visible || actor.get_paint_opacity() == 0)
return Clutter.EVENT_PROPAGATE;
let urlId = this._findUrlAtPos(event);
if (urlId != -1) {
let url = this._urls[urlId].url;
if (url.indexOf(':') == -1)
url = 'http://' + url;
Gio.app_info_launch_default_for_uri(url, global.create_app_launch_context(0, -1));
return Clutter.EVENT_STOP;
}
return Clutter.EVENT_PROPAGATE;
}));
this.actor.connect('motion-event', Lang.bind(this, function(actor, event) {
if (!actor.visible || actor.get_paint_opacity() == 0)
return Clutter.EVENT_PROPAGATE;
let urlId = this._findUrlAtPos(event);
if (urlId != -1 && !this._cursorChanged) {
global.screen.set_cursor(Meta.Cursor.POINTING_HAND);
this._cursorChanged = true;
} else if (urlId == -1) {
global.screen.set_cursor(Meta.Cursor.DEFAULT);
this._cursorChanged = false;
}
return Clutter.EVENT_PROPAGATE;
}));
this.actor.connect('leave-event', Lang.bind(this, function() {
if (!this.actor.visible || this.actor.get_paint_opacity() == 0)
return Clutter.EVENT_PROPAGATE;
if (this._cursorChanged) {
this._cursorChanged = false;
global.screen.set_cursor(Meta.Cursor.DEFAULT);
}
return Clutter.EVENT_PROPAGATE;
}));
},
setMarkup: function(text, allowMarkup) {
text = text ? _fixMarkup(text, allowMarkup) : '';
this._text = text;
this.actor.clutter_text.set_markup(text);
/* clutter_text.text contain text without markup */
this._urls = Util.findUrls(this.actor.clutter_text.text);
this._highlightUrls();
},
_highlightUrls: function() {
// text here contain markup
let urls = Util.findUrls(this._text);
let markup = '';
let pos = 0;
for (let i = 0; i < urls.length; i++) {
let url = urls[i];
let str = this._text.substr(pos, url.pos - pos);
markup += str + '<span foreground="' + this._linkColor + '"><u>' + url.url + '</u></span>';
pos = url.pos + url.url.length;
}
markup += this._text.substr(pos);
this.actor.clutter_text.set_markup(markup);
},
_findUrlAtPos: function(event) {
let success;
let [x, y] = event.get_coords();
[success, x, y] = this.actor.transform_stage_point(x, y);
let find_pos = -1;
for (let i = 0; i < this.actor.clutter_text.text.length; i++) {
let [success, px, py, line_height] = this.actor.clutter_text.position_to_coords(i);
if (py > y || py + line_height < y || x < px)
continue;
find_pos = i;
}
if (find_pos != -1) {
for (let i = 0; i < this._urls.length; i++)
if (find_pos >= this._urls[i].pos &&
this._urls[i].pos + this._urls[i].url.length > find_pos)
return i;
}
return -1;
}
});
const ScaleLayout = new Lang.Class({
Name: 'ScaleLayout',
Extends: Clutter.BinLayout,
_connectContainer: function(container) {
if (this._container == container)
return;
if (this._container)
for (let id of this._signals)
this._container.disconnect(id);
this._container = container;
this._signals = [];
if (this._container)
for (let signal of ['notify::scale-x', 'notify::scale-y']) {
let id = this._container.connect(signal, Lang.bind(this,
function() {
this.layout_changed();
}));
this._signals.push(id);
}
},
vfunc_get_preferred_width: function(container, forHeight) {
this._connectContainer(container);
let [min, nat] = this.parent(container, forHeight);
return [Math.floor(min * container.scale_x),
Math.floor(nat * container.scale_x)];
},
vfunc_get_preferred_height: function(container, forWidth) {
this._connectContainer(container);
let [min, nat] = this.parent(container, forWidth);
return [Math.floor(min * container.scale_y),
Math.floor(nat * container.scale_y)];
}
});
const LabelExpanderLayout = new Lang.Class({
Name: 'LabelExpanderLayout',
Extends: Clutter.LayoutManager,
Properties: { 'expansion': GObject.ParamSpec.double('expansion',
'Expansion',
'Expansion of the layout, between 0 (collapsed) ' +
'and 1 (fully expanded',
GObject.ParamFlags.READABLE | GObject.ParamFlags.WRITABLE,
0, 1, 0)},
_init: function(params) {
this._expansion = 0;
this._expandLines = DEFAULT_EXPAND_LINES;
this.parent(params);
},
get expansion() {
return this._expansion;
},
set expansion(v) {
if (v == this._expansion)
return;
this._expansion = v;
this.notify('expansion');
let visibleIndex = this._expansion > 0 ? 1 : 0;
for (let i = 0; this._container && i < this._container.get_n_children(); i++)
this._container.get_child_at_index(i).visible = (i == visibleIndex);
this.layout_changed();
},
set expandLines(v) {
if (v == this._expandLines)
return;
this._expandLines = v;
if (this._expansion > 0)
this.layout_changed();
},
vfunc_set_container: function(container) {
this._container = container;
},
vfunc_get_preferred_width: function(container, forHeight) {
let [min, nat] = [0, 0];
for (let i = 0; i < container.get_n_children(); i++) {
if (i > 1)
break; // we support one unexpanded + one expanded child
let child = container.get_child_at_index(i);
let [childMin, childNat] = child.get_preferred_width(forHeight);
[min, nat] = [Math.max(min, childMin), Math.max(nat, childNat)];
}
return [min, nat];
},
vfunc_get_preferred_height: function(container, forWidth) {
let [min, nat] = [0, 0];
let children = container.get_children();
if (children[0])
[min, nat] = children[0].get_preferred_height(forWidth);
if (children[1]) {
let [min2, nat2] = children[1].get_preferred_height(forWidth);
let [expMin, expNat] = [Math.min(min2, min * this._expandLines),
Math.min(nat2, nat * this._expandLines)];
[min, nat] = [min + this._expansion * (expMin - min),
nat + this._expansion * (expNat - nat)];
}
return [min, nat];
},
vfunc_allocate: function(container, box, flags) {
for (let i = 0; i < container.get_n_children(); i++) {
let child = container.get_child_at_index(i);
if (child.visible)
child.allocate(box, flags);
}
}
});
const Message = new Lang.Class({
Name: 'Message',
_init: function(title, body) {
this.expanded = false;
this.actor = new St.Button({ style_class: 'message',
accessible_role: Atk.Role.NOTIFICATION,
can_focus: true,
x_expand: true, x_fill: true });
this.actor.connect('key-press-event',
Lang.bind(this, this._onKeyPressed));
let vbox = new St.BoxLayout({ vertical: true });
this.actor.set_child(vbox);
let hbox = new St.BoxLayout();
vbox.add_actor(hbox);
this._actionBin = new St.Widget({ layout_manager: new ScaleLayout(),
visible: false });
vbox.add_actor(this._actionBin);
this._iconBin = new St.Bin({ style_class: 'message-icon-bin',
y_expand: true,
visible: false });
hbox.add_actor(this._iconBin);
let contentBox = new St.BoxLayout({ style_class: 'message-content',
vertical: true, x_expand: true });
hbox.add_actor(contentBox);
this._mediaControls = new St.BoxLayout();
hbox.add_actor(this._mediaControls);
let titleBox = new St.BoxLayout();
contentBox.add_actor(titleBox);
this.titleLabel = new St.Label({ style_class: 'message-title',
x_expand: true,
x_align: Clutter.ActorAlign.START });
this.setTitle(title);
titleBox.add_actor(this.titleLabel);
this._secondaryBin = new St.Bin({ style_class: 'message-secondary-bin' });
titleBox.add_actor(this._secondaryBin);
let closeIcon = new St.Icon({ icon_name: 'window-close-symbolic',
icon_size: 16 });
this._closeButton = new St.Button({ child: closeIcon, visible: false });
titleBox.add_actor(this._closeButton);
this._bodyStack = new St.Widget({ x_expand: true });
this._bodyStack.layout_manager = new LabelExpanderLayout();
contentBox.add_actor(this._bodyStack);
this.bodyLabel = new URLHighlighter('', false, this._useBodyMarkup);
this.bodyLabel.actor.add_style_class_name('message-body');
this._bodyStack.add_actor(this.bodyLabel.actor);
this.setBody(body);
this._closeButton.connect('clicked', Lang.bind(this, this.close));
this.actor.connect('notify::hover', Lang.bind(this, this._sync));
this.actor.connect('clicked', Lang.bind(this, this._onClicked));
this.actor.connect('destroy', Lang.bind(this, this._onDestroy));
this._sync();
},
close: function() {
this.emit('close');
},
setIcon: function(actor) {
this._iconBin.child = actor;
this._iconBin.visible = (actor != null);
},
setSecondaryActor: function(actor) {
this._secondaryBin.child = actor;
},
setTitle: function(text) {
let title = text ? _fixMarkup(text.replace(/\n/g, ' '), false) : '';
this.titleLabel.clutter_text.set_markup(title);
},
setBody: function(text) {
this._bodyText = text;
this.bodyLabel.setMarkup(text ? text.replace(/\n/g, ' ') : '',
this._useBodyMarkup);
if (this._expandedLabel)
this._expandedLabel.setMarkup(text, this._useBodyMarkup);
},
setUseBodyMarkup: function(enable) {
if (this._useBodyMarkup === enable)
return;
this._useBodyMarkup = enable;
if (this.bodyLabel)
this.setBody(this._bodyText);
},
setActionArea: function(actor) {
if (actor == null) {
if (this._actionBin.get_n_children() > 0)
this._actionBin.get_child_at_index(0).destroy();
return;
}
if (this._actionBin.get_n_children() > 0)
throw new Error('Message already has an action area');
this._actionBin.add_actor(actor);
this._actionBin.visible = this.expanded;
},
addMediaControl: function(iconName, callback) {
let icon = new St.Icon({ icon_name: iconName, icon_size: 16 });
let button = new St.Button({ style_class: 'message-media-control',
child: icon });
button.connect('clicked', callback);
this._mediaControls.add_actor(button);
return button;
},
setExpandedBody: function(actor) {
if (actor == null) {
if (this._bodyStack.get_n_children() > 1)
this._bodyStack.get_child_at_index(1).destroy();
return;
}
if (this._bodyStack.get_n_children() > 1)
throw new Error('Message already has an expanded body actor');
this._bodyStack.insert_child_at_index(actor, 1);
},
setExpandedLines: function(nLines) {
this._bodyStack.layout_manager.expandLines = nLines;
},
expand: function(animate) {
this.expanded = true;
this._actionBin.visible = (this._actionBin.get_n_children() > 0);
if (this._bodyStack.get_n_children() < 2) {
this._expandedLabel = new URLHighlighter(this._bodyText,
true, this._useBodyMarkup);
this.setExpandedBody(this._expandedLabel.actor);
}
if (animate) {
Tweener.addTween(this._bodyStack.layout_manager,
{ expansion: 1,
time: MessageTray.ANIMATION_TIME,
transition: 'easeOutQuad' });
this._actionBin.scale_y = 0;
Tweener.addTween(this._actionBin,
{ scale_y: 1,
time: MessageTray.ANIMATION_TIME,
transition: 'easeOutQuad' });
} else {
this._bodyStack.layout_manager.expansion = 1;
this._actionBin.scale_y = 1;
}
this.emit('expanded');
},
unexpand: function(animate) {
if (animate) {
Tweener.addTween(this._bodyStack.layout_manager,
{ expansion: 0,
time: MessageTray.ANIMATION_TIME,
transition: 'easeOutQuad' });
Tweener.addTween(this._actionBin,
{ scale_y: 0,
time: MessageTray.ANIMATION_TIME,
transition: 'easeOutQuad',
onCompleteScope: this,
onComplete: function() {
this._actionBin.hide();
this.expanded = false;
}});
} else {
this._bodyStack.layout_manager.expansion = 0;
this._actionBin.scale_y = 0;
this.expanded = false;
}
this.emit('unexpanded');
},
canClose: function() {
return this._mediaControls.get_n_children() == 0;
},
_sync: function() {
let hovered = this.actor.hover;
this._closeButton.visible = hovered && this.canClose();
this._secondaryBin.visible = !hovered;
},
_onClicked: function() {
},
_onDestroy: function() {
},
_onKeyPressed: function(a, event) {
let keysym = event.get_key_symbol();
if (keysym == Clutter.KEY_Delete ||
keysym == Clutter.KEY_KP_Delete) {
this.close();
return Clutter.EVENT_STOP;
}
return Clutter.EVENT_PROPAGATE;
}
});
Signals.addSignalMethods(Message.prototype);
const MessageListSection = new Lang.Class({
Name: 'MessageListSection',
_init: function(title) {
this.actor = new St.BoxLayout({ style_class: 'message-list-section',
clip_to_allocation: true,
x_expand: true, vertical: true });
let titleBox = new St.BoxLayout({ style_class: 'message-list-section-title-box' });
this.actor.add_actor(titleBox);
this._title = new St.Button({ style_class: 'message-list-section-title',
label: title,
can_focus: true,
x_expand: true,
x_align: St.Align.START });
titleBox.add_actor(this._title);
this._title.connect('clicked', Lang.bind(this, this._onTitleClicked));
this._title.connect('key-focus-in', Lang.bind(this, this._onKeyFocusIn));
let closeIcon = new St.Icon({ icon_name: 'window-close-symbolic' });
this._closeButton = new St.Button({ style_class: 'message-list-section-close',
child: closeIcon,
accessible_name: _("Clear section"),
can_focus: true });
this._closeButton.set_x_align(Clutter.ActorAlign.END);
titleBox.add_actor(this._closeButton);
this._closeButton.connect('clicked', Lang.bind(this, this.clear));
this._list = new St.BoxLayout({ style_class: 'message-list-section-list',
vertical: true });
this.actor.add_actor(this._list);
this._list.connect('actor-added', Lang.bind(this, this._sync));
this._list.connect('actor-removed', Lang.bind(this, this._sync));
let id = Main.sessionMode.connect('updated',
Lang.bind(this, this._sync));
this.actor.connect('destroy', function() {
Main.sessionMode.disconnect(id);
});
this._messages = new Map();
this._date = new Date();
this.empty = true;
this._sync();
},
_onTitleClicked: function() {
Main.overview.hide();
Main.panel.closeCalendar();
},
_onKeyFocusIn: function(actor) {
this.emit('key-focus-in', actor);
},
get allowed() {
return true;
},
setDate: function(date) {
if (Calendar.sameDay(date, this._date))
return;
this._date = date;
this._sync();
},
addMessage: function(message, animate) {
this.addMessageAtIndex(message, -1, animate);
},
addMessageAtIndex: function(message, index, animate) {
let obj = {
container: null,
destroyId: 0,
keyFocusId: 0,
closeId: 0
};
let pivot = new Clutter.Point({ x: .5, y: .5 });
let scale = animate ? 0 : 1;
obj.container = new St.Widget({ layout_manager: new ScaleLayout(),
pivot_point: pivot,
scale_x: scale, scale_y: scale });
obj.keyFocusId = message.actor.connect('key-focus-in',
Lang.bind(this, this._onKeyFocusIn));
obj.destroyId = message.actor.connect('destroy',
Lang.bind(this, function() {
this.removeMessage(message, false);
}));
obj.closeId = message.connect('close',
Lang.bind(this, function() {
this.removeMessage(message, true);
}));
this._messages.set(message, obj);
obj.container.add_actor(message.actor);
this._list.insert_child_at_index(obj.container, index);
if (animate)
Tweener.addTween(obj.container, { scale_x: 1,
scale_y: 1,
time: MESSAGE_ANIMATION_TIME,
transition: 'easeOutQuad' });
},
moveMessage: function(message, index, animate) {
let obj = this._messages.get(message);
if (!animate) {
this._list.set_child_at_index(obj.container, index);
return;
}
let onComplete = Lang.bind(this, function() {
this._list.set_child_at_index(obj.container, index);
Tweener.addTween(obj.container, { scale_x: 1,
scale_y: 1,
time: MESSAGE_ANIMATION_TIME,
transition: 'easeOutQuad' });
});
Tweener.addTween(obj.container, { scale_x: 0,
scale_y: 0,
time: MESSAGE_ANIMATION_TIME,
transition: 'easeOutQuad',
onComplete: onComplete });
},
removeMessage: function(message, animate) {
let obj = this._messages.get(message);
message.actor.disconnect(obj.destroyId);
message.actor.disconnect(obj.keyFocusId);
message.disconnect(obj.closeId);
this._messages.delete(message);
if (animate) {
Tweener.addTween(obj.container, { scale_x: 0, scale_y: 0,
time: MESSAGE_ANIMATION_TIME,
transition: 'easeOutQuad',
onComplete: function() {
obj.container.destroy();
global.sync_pointer();
}});
} else {
obj.container.destroy();
global.sync_pointer();
}
},
clear: function() {
let messages = [...this._messages.keys()].filter(function(message) {
return message.canClose();
});
// If there are few messages, letting them all zoom out looks OK
if (messages.length < 2) {
messages.forEach(function(message) {
message.close();
});
} else {
// Otherwise we slide them out one by one, and then zoom them
// out "off-screen" in the end to smoothly shrink the parent
let delay = MESSAGE_ANIMATION_TIME / Math.max(messages.length, 5);
for (let i = 0; i < messages.length; i++) {
let message = messages[i];
let obj = this._messages.get(message);
Tweener.addTween(obj.container,
{ anchor_x: this._list.width,
opacity: 0,
time: MESSAGE_ANIMATION_TIME,
delay: i * delay,
transition: 'easeOutQuad',
onComplete: function() {
message.close();
}});
}
}
},
_canClear: function() {
for (let message of this._messages.keys())
if (message.canClose())
return true;
return false;
},
_shouldShow: function() {
return !this.empty;
},
_sync: function() {
let empty = this._list.get_n_children() == 0;
let changed = this.empty !== empty;
this.empty = empty;
if (changed)
this.emit('empty-changed');
this._closeButton.visible = this._canClear();
this.actor.visible = this.allowed && this._shouldShow();
}
});
Signals.addSignalMethods(MessageListSection.prototype);

View File

@ -259,7 +259,7 @@ const ModalDialog = new Lang.Class({
if (this.state == State.OPENED || this.state == State.OPENING)
return true;
if (!this.pushModal(timestamp))
if (!this.pushModal({ timestamp: timestamp }))
return false;
this._fadeOpen(onPrimary);
@ -318,11 +318,8 @@ const ModalDialog = new Lang.Class({
pushModal: function (timestamp) {
if (this._hasModal)
return true;
let params = { actionMode: this._actionMode };
if (timestamp)
params['timestamp'] = timestamp;
if (!Main.pushModal(this._group, params))
if (!Main.pushModal(this._group, { timestamp: timestamp,
actionMode: this._actionMode }))
return false;
this._hasModal = true;

View File

@ -1,270 +0,0 @@
const Gio = imports.gi.Gio;
const Lang = imports.lang;
const Signals = imports.signals;
const Shell = imports.gi.Shell;
const St = imports.gi.St;
const Calendar = imports.ui.calendar;
const Main = imports.ui.main;
const MessageList = imports.ui.messageList;
const DBusIface = '<node> \
<interface name="org.freedesktop.DBus"> \
<method name="ListNames"> \
<arg type="as" direction="out" name="names" /> \
</method> \
<signal name="NameOwnerChanged"> \
<arg type="s" direction="out" name="name" /> \
<arg type="s" direction="out" name="oldOwner" /> \
<arg type="s" direction="out" name="newOwner" /> \
</signal> \
</interface> \
</node>';
const DBusProxy = Gio.DBusProxy.makeProxyWrapper(DBusIface);
const MprisIface = '<node> \
<interface name="org.mpris.MediaPlayer2"> \
<method name="Raise" /> \
<property name="CanRaise" type="b" access="read" /> \
<property name="DesktopEntry" type="s" access="read" /> \
</interface> \
</node>';
const MprisProxy = Gio.DBusProxy.makeProxyWrapper(MprisIface);
const MprisPlayerIface = '<node> \
<interface name="org.mpris.MediaPlayer2.Player"> \
<method name="PlayPause" /> \
<method name="Next" /> \
<method name="Previous" /> \
<property name="CanPlay" type="b" access="read" /> \
<property name="Metadata" type="a{sv}" access="read" /> \
<property name="PlaybackStatus" type="s" access="read" /> \
</interface> \
</node>';
const MprisPlayerProxy = Gio.DBusProxy.makeProxyWrapper(MprisPlayerIface);
const MPRIS_PLAYER_PREFIX = 'org.mpris.MediaPlayer2.';
const MediaMessage = new Lang.Class({
Name: 'MediaMessage',
Extends: MessageList.Message,
_init: function(player) {
this._player = player;
this.parent('', '');
this._icon = new St.Icon({ style_class: 'media-message-cover-icon' });
this.setIcon(this._icon);
this.addMediaControl('media-skip-backward-symbolic',
Lang.bind(this, function() {
this._player.previous();
}));
this._playPauseButton = this.addMediaControl(null,
Lang.bind(this, function() {
this._player.playPause();
}));
this.addMediaControl('media-skip-forward-symbolic',
Lang.bind(this, function() {
this._player.next();
}));
this._player.connect('changed', Lang.bind(this, this._update));
this._player.connect('closed', Lang.bind(this, this.close));
this._update();
},
_onClicked: function() {
this._player.raise();
Main.panel.closeCalendar();
},
_update: function() {
this.setTitle(this._player.trackArtists.join(', '));
this.setBody(this._player.trackTitle);
if (this._player.trackCoverUrl) {
let file = Gio.File.new_for_uri(this._player.trackCoverUrl);
this._icon.gicon = new Gio.FileIcon({ file: file });
this._icon.remove_style_class_name('fallback');
} else {
this._icon.icon_name = 'audio-x-generic-symbolic';
this._icon.add_style_class_name('fallback');
}
let isPlaying = this._player.status == 'Playing';
let iconName = isPlaying ? 'media-playback-pause-symbolic'
: 'media-playback-start-symbolic';
this._playPauseButton.child.icon_name = iconName;
}
});
const MprisPlayer = new Lang.Class({
Name: 'MprisPlayer',
_init: function(busName) {
this._mprisProxy = new MprisProxy(Gio.DBus.session, busName,
'/org/mpris/MediaPlayer2',
Lang.bind(this, this._onMprisProxyReady));
this._playerProxy = new MprisPlayerProxy(Gio.DBus.session, busName,
'/org/mpris/MediaPlayer2',
Lang.bind(this, this._onPlayerProxyReady));
this._visible = false;
this._trackArtists = [];
this._trackTitle = '';
this._trackCoverUrl = '';
},
get status() {
return this._playerProxy.PlaybackStatus;
},
get trackArtists() {
return this._trackArtists;
},
get trackTitle() {
return this._trackTitle;
},
get trackCoverUrl() {
return this._trackCoverUrl;
},
playPause: function() {
this._playerProxy.PlayPauseRemote();
},
next: function() {
this._playerProxy.NextRemote();
},
previous: function() {
this._playerProxy.PreviousRemote();
},
raise: function() {
// The remote Raise() method may run into focus stealing prevention,
// so prefer activating the app via .desktop file if possible
let app = null;
if (this._mprisProxy.DesktopEntry) {
let desktopId = this._mprisProxy.DesktopEntry + '.desktop';
app = Shell.AppSystem.get_default().lookup_app(desktopId);
}
if (app)
app.activate();
else if (this._mprisProxy.CanRaise)
this._mprisProxy.RaiseRemote();
},
_close: function() {
this._mprisProxy.disconnect(this._ownerNotifyId);
this._mprisProxy = null;
this._playerProxy.disconnect(this._propsChangedId);
this._playerProxy = null;
this.emit('closed');
},
_onMprisProxyReady: function() {
this._ownerNotifyId = this._mprisProxy.connect('notify::g-name-owner',
Lang.bind(this, function() {
if (!this._mprisProxy.g_name_owner)
this._close();
}));
},
_onPlayerProxyReady: function() {
this._propsChangedId = this._playerProxy.connect('g-properties-changed',
Lang.bind(this, this._updateState));
this._updateState();
},
_updateState: function() {
let metadata = {};
for (let prop in this._playerProxy.Metadata)
metadata[prop] = this._playerProxy.Metadata[prop].deep_unpack();
this._trackArtists = metadata['xesam:artist'] || [_("Unknown artist")];
this._trackTitle = metadata['xesam:title'] || _("Unknown title");
this._trackCoverUrl = metadata['mpris:artUrl'] || '';
this.emit('changed');
let visible = this._playerProxy.CanPlay;
if (this._visible != visible) {
this._visible = visible;
if (visible)
this.emit('show');
else
this._close();
}
}
});
Signals.addSignalMethods(MprisPlayer.prototype);
const MediaSection = new Lang.Class({
Name: 'MediaSection',
Extends: MessageList.MessageListSection,
_init: function() {
this.parent(_("Media"));
this._players = new Map();
this._proxy = new DBusProxy(Gio.DBus.session,
'org.freedesktop.DBus',
'/org/freedesktop/DBus',
Lang.bind(this, this._onProxyReady));
},
_shouldShow: function() {
return !this.empty && Calendar.isToday(this._date);
},
_addPlayer: function(busName) {
if (this._players.get(busName))
return;
let player = new MprisPlayer(busName);
player.connect('closed', Lang.bind(this,
function() {
this._players.delete(busName);
}));
player.connect('show', Lang.bind(this,
function() {
let message = new MediaMessage(player);
this.addMessage(message, true);
}));
this._players.set(busName, player);
},
_onProxyReady: function() {
this._proxy.ListNamesRemote(Lang.bind(this,
function([names]) {
names.forEach(Lang.bind(this,
function(name) {
if (!name.startsWith(MPRIS_PLAYER_PREFIX))
return;
this._addPlayer(name);
}));
}));
this._proxy.connectSignal('NameOwnerChanged',
Lang.bind(this, this._onNameOwnerChanged));
},
_onNameOwnerChanged: function(proxy, sender, [name, oldOwner, newOwner]) {
if (!name.startsWith(MPRIS_PLAYER_PREFIX))
return;
if (newOwner && !oldOwner)
this._addPlayer(name);
}
});

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

@ -1146,16 +1146,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

@ -137,10 +137,6 @@ const Slider = new Lang.Class({
this._motionId = this.actor.connect('motion-event', Lang.bind(this, this._motionEvent));
}
// We need to emit 'drag-begin' before moving the handle to make
// sure that no 'value-changed' signal is emitted before this one.
this.emit('drag-begin');
let absX, absY;
[absX, absY] = event.get_coords();
this._moveHandle(absX, absY);
@ -228,7 +224,6 @@ const Slider = new Lang.Class({
let delta = key == Clutter.KEY_Right ? 0.1 : -0.1;
this._value = Math.max(0, Math.min(this._value + delta, 1));
this.actor.queue_repaint();
this.emit('drag-begin');
this.emit('value-changed', this._value);
this.emit('drag-end');
return Clutter.EVENT_STOP;

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,6 +1,5 @@
// -*- 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 Lang = imports.lang;
@ -8,18 +7,12 @@ const Lang = imports.lang;
const Main = imports.ui.main;
const PanelMenu = imports.ui.panelMenu;
const PopupMenu = imports.ui.popupMenu;
const ModalDialog = imports.ui.modalDialog;
const Shell = imports.gi.Shell;
const Signals = imports.signals;
const St = imports.gi.St;
const LOCATION_SCHEMA = 'org.gnome.system.location';
const MAX_ACCURACY_LEVEL = 'max-accuracy-level';
const ENABLED = 'enabled';
const APP_PERMISSIONS_TABLE = 'gnome';
const APP_PERMISSIONS_ID = 'geolocation';
const GeoclueAccuracyLevel = {
NONE: 0,
COUNTRY: 1,
@ -29,15 +22,6 @@ const GeoclueAccuracyLevel = {
EXACT: 8
};
function accuracyLevelToString(accuracyLevel) {
for (let key in GeoclueAccuracyLevel) {
if (GeoclueAccuracyLevel[key] == accuracyLevel)
return key;
}
return 'NONE';
}
var GeoclueIface = '<node> \
<interface name="org.freedesktop.GeoClue2.Manager"> \
<property name="InUse" type="b" access="read"/> \
@ -62,26 +46,6 @@ var AgentIface = '<node> \
</interface> \
</node>';
var PermissionStoreIface = '<node> \
<interface name="org.freedesktop.impl.portal.PermissionStore"> \
<method name="Lookup"> \
<arg name="table" type="s" direction="in"/> \
<arg name="id" type="s" direction="in"/> \
<arg name="permissions" type="a{sas}" direction="out"/> \
<arg name="data" type="v" direction="out"/> \
</method> \
<method name="Set"> \
<arg name="table" type="s" direction="in"/> \
<arg name="create" type="b" direction="in"/> \
<arg name="id" type="s" direction="in"/> \
<arg name="app_permissions" type="a{sas}" direction="in"/> \
<arg name="data" type="v" direction="in"/> \
</method> \
</interface> \
</node>';
const PermissionStore = Gio.DBusProxy.makeProxyWrapper(PermissionStoreIface);
const Indicator = new Lang.Class({
Name: 'LocationIndicator',
Extends: PanelMenu.SystemIndicator,
@ -119,66 +83,64 @@ const Indicator = new Lang.Class({
this._onSessionUpdated();
this._onMaxAccuracyLevelChanged();
this._connectToGeoclue();
this._connectToPermissionStore();
},
get MaxAccuracyLevel() {
return this._getMaxAccuracyLevel();
},
AuthorizeAppAsync: function(params, invocation) {
let [desktopId, reqAccuracyLevel] = params;
// We (and geoclue) have currently no way to reliably identifying apps so
// for now, lets just authorize all apps as long as they provide a valid
// desktop ID. We also ensure they don't get more accuracy than global max.
AuthorizeApp: function(desktop_id, reqAccuracyLevel) {
var appSystem = Shell.AppSystem.get_default();
var app = appSystem.lookup_app(desktop_id + ".desktop");
if (app == null) {
return [false, 0];
}
let authorizer = new AppAuthorizer(desktopId,
reqAccuracyLevel,
this._permStoreProxy,
this._getMaxAccuracyLevel());
authorizer.authorize(Lang.bind(this, function(accuracyLevel) {
let ret = (accuracyLevel != GeoclueAccuracyLevel.NONE);
invocation.return_value(GLib.Variant.new('(bu)',
[ret, accuracyLevel]));
}));
let allowedAccuracyLevel = clamp(reqAccuracyLevel, 0, this._getMaxAccuracyLevel());
return [true, allowedAccuracyLevel];
},
_syncIndicator: function() {
if (this._managerProxy == null) {
if (this._proxy == null) {
this._indicator.visible = false;
this._item.actor.visible = false;
return;
}
this._indicator.visible = this._managerProxy.InUse;
this._indicator.visible = this._proxy.InUse;
this._item.actor.visible = this._indicator.visible;
this._updateMenuLabels();
},
_connectToGeoclue: function() {
if (this._managerProxy != null || this._connecting)
if (this._proxy != null || this._connecting)
return false;
this._connecting = true;
new GeoclueManager(Gio.DBus.system,
'org.freedesktop.GeoClue2',
'/org/freedesktop/GeoClue2/Manager',
Lang.bind(this, this._onManagerProxyReady));
Lang.bind(this, this._onProxyReady));
return true;
},
_onManagerProxyReady: function(proxy, error) {
_onProxyReady: function(proxy, error) {
if (error != null) {
log(error.message);
this._connecting = false;
return;
}
this._managerProxy = proxy;
this._propertiesChangedId = this._managerProxy.connect('g-properties-changed',
this._proxy = proxy;
this._propertiesChangedId = this._proxy.connect('g-properties-changed',
Lang.bind(this, this._onGeocluePropsChanged));
this._syncIndicator();
this._managerProxy.AddAgentRemote('gnome-shell', Lang.bind(this, this._onAgentRegistered));
this._proxy.AddAgentRemote('gnome-shell', Lang.bind(this, this._onAgentRegistered));
},
_onAgentRegistered: function(result, error) {
@ -191,10 +153,10 @@ const Indicator = new Lang.Class({
_onGeoclueVanished: function() {
if (this._propertiesChangedId) {
this._managerProxy.disconnect(this._propertiesChangedId);
this._proxy.disconnect(this._propertiesChangedId);
this._propertiesChangedId = 0;
}
this._managerProxy = null;
this._proxy = null;
this._syncIndicator();
},
@ -249,206 +211,9 @@ const Indicator = new Lang.Class({
let unpacked = properties.deep_unpack();
if ("InUse" in unpacked)
this._syncIndicator();
},
_connectToPermissionStore: function() {
this._permStoreProxy = null;
new PermissionStore(Gio.DBus.session,
'org.freedesktop.impl.portal.PermissionStore',
'/org/freedesktop/impl/portal/PermissionStore',
Lang.bind(this, this._onPermStoreProxyReady));
},
_onPermStoreProxyReady: function(proxy, error) {
if (error != null) {
log(error.message);
return;
}
this._permStoreProxy = proxy;
},
}
});
function clamp(value, min, max) {
return Math.max(min, Math.min(max, value));
}
const AppAuthorizer = new Lang.Class({
Name: 'LocationAppAuthorizer',
_init: function(desktopId,
reqAccuracyLevel,
permStoreProxy,
maxAccuracyLevel) {
this.desktopId = desktopId;
this.reqAccuracyLevel = reqAccuracyLevel;
this._permStoreProxy = permStoreProxy;
this._maxAccuracyLevel = maxAccuracyLevel;
this._accuracyLevel = GeoclueAccuracyLevel.NONE;
},
authorize: function(onAuthDone) {
this._onAuthDone = onAuthDone;
let appSystem = Shell.AppSystem.get_default();
this._app = appSystem.lookup_app(this.desktopId + ".desktop");
if (this._app == null || this._permStoreProxy == null) {
this._completeAuth();
return;
}
this._permStoreProxy.LookupRemote(APP_PERMISSIONS_TABLE,
APP_PERMISSIONS_ID,
Lang.bind(this,
this._onPermLookupDone));
},
_onPermLookupDone: function(result, error) {
if (error != null) {
if (error.domain == Gio.DBusError) {
// Likely no xdg-app installed, just authorize the app
this._accuracyLevel = this.reqAccuracyLevel;
this._permStoreProxy = null;
this._completeAuth();
} else {
// Currently xdg-app throws an error if we lookup for
// unknown ID (which would be the case first time this code
// runs) so we continue with user authorization as normal
// and ID is added to the store if user says "yes".
log(error.message);
this._permissions = {};
this._userAuthorizeApp();
}
return;
}
[this._permissions] = result;
let permission = this._permissions[this.desktopId];
if (permission == null) {
this._userAuthorizeApp();
} else {
let [levelStr] = permission || ['NONE'];
this._accuracyLevel = GeoclueAccuracyLevel[levelStr] ||
GeoclueAccuracyLevel.NONE;
this._completeAuth();
}
},
_userAuthorizeApp: function() {
let name = this._app.get_name();
let appInfo = this._app.get_app_info();
let reason = appInfo.get_string("X-Geoclue-Reason");
this._showAppAuthDialog(name, reason);
},
_showAppAuthDialog: function(name, reason) {
this._dialog = new GeolocationDialog(name,
reason,
this.reqAccuracyLevel);
let responseId = this._dialog.connect('response', Lang.bind(this,
function(dialog, level) {
this._dialog.disconnect(responseId);
this._accuracyLevel = level;
this._completeAuth();
}));
this._dialog.open();
},
_completeAuth: function() {
if (this._accuracyLevel != GeoclueAccuracyLevel.NONE) {
this._accuracyLevel = clamp(this._accuracyLevel,
0,
this._maxAccuracyLevel);
}
this._saveToPermissionStore();
this._onAuthDone(this._accuracyLevel);
},
_saveToPermissionStore: function() {
if (this._permStoreProxy == null)
return;
let levelStr = accuracyLevelToString(this._accuracyLevel);
let dateStr = Math.round(Date.now() / 1000).toString();
this._permissions[this.desktopId] = [levelStr, dateStr];
let data = GLib.Variant.new('av', {});
this._permStoreProxy.SetRemote(APP_PERMISSIONS_TABLE,
true,
APP_PERMISSIONS_ID,
this._permissions,
data,
function (result, error) {
if (error != null)
log(error.message);
});
},
});
const GeolocationDialog = new Lang.Class({
Name: 'GeolocationDialog',
Extends: ModalDialog.ModalDialog,
_init: function(name, reason, reqAccuracyLevel) {
this.parent({ styleClass: 'geolocation-dialog' });
this.reqAccuracyLevel = reqAccuracyLevel;
let mainContentBox = new St.BoxLayout({ style_class: 'geolocation-dialog-main-layout' });
this.contentLayout.add_actor(mainContentBox);
let icon = new St.Icon({ style_class: 'geolocation-dialog-icon',
icon_name: 'find-location-symbolic',
y_align: Clutter.ActorAlign.START });
mainContentBox.add_actor(icon);
let messageBox = new St.BoxLayout({ style_class: 'geolocation-dialog-content',
vertical: true });
mainContentBox.add_actor(messageBox);
this._title = new St.Label({ style_class: 'geolocation-dialog-title headline' });
messageBox.add_actor(this._title);
this._reason = new St.Label({ style_class: 'geolocation-dialog-reason' });
messageBox.add_actor(this._reason);
this._privacyNote = new St.Label();
messageBox.add_actor(this._privacyNote);
let button = this.addButton({ label: _("Deny Access"),
action: Lang.bind(this, this._onDenyClicked),
key: Clutter.KEY_Escape });
this.addButton({ label: _("Grant Access"),
action: Lang.bind(this, this._onGrantClicked) });
this.setInitialKeyFocus(button);
/* Translators: %s is an application name */
this._title.text = _("Give %s access to your location?").format(name);
this._privacyNote.text = _("Location access can be changed at any time from the privacy settings.");
if (reason)
this._reason.text = reason;
this._reason.visible = (reason != null);
},
_onGrantClicked: function() {
this.emit('response', this.reqAccuracyLevel);
this.close();
},
_onDenyClicked: function() {
this.emit('response', GeoclueAccuracyLevel.NONE);
this.close();
}
});
Signals.addSignalMethods(GeolocationDialog.prototype);

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

@ -6,7 +6,6 @@ const Gdm = imports.gi.Gdm;
const Gio = imports.gi.Gio;
const GLib = imports.gi.GLib;
const Lang = imports.lang;
const Meta = imports.gi.Meta;
const Shell = imports.gi.Shell;
const St = imports.gi.St;
@ -111,7 +110,6 @@ const Indicator = new Lang.Class({
this._session = new GnomeSession.SessionManager();
this._loginManager = LoginManager.getLoginManager();
this._monitorManager = Meta.MonitorManager.get();
this._haveShutdown = true;
this._haveSuspend = true;
@ -157,8 +155,6 @@ const Indicator = new Lang.Class({
this._orientationSettings.connect('changed::orientation-lock',
Lang.bind(this, this._updateOrientationLock));
Main.layoutManager.connect('monitors-changed',
Lang.bind(this, this._updateOrientationLock));
Gio.DBus.system.watch_name(SENSOR_BUS_NAME,
Gio.BusNameWatcherFlags.NONE,
Lang.bind(this, this._sensorProxyAppeared),
@ -268,8 +264,7 @@ const Indicator = new Lang.Class({
_updateOrientationLock: function() {
if (this._sensorProxy)
this._orientationLockAction.visible = this._sensorProxy.HasAccelerometer &&
this._monitorManager.get_is_builtin_display_on();
this._orientationLockAction.visible = this._sensorProxy.HasAccelerometer;
else
this._orientationLockAction.visible = false;

View File

@ -156,7 +156,7 @@ const ViewSelector = new Lang.Class({
this.appDisplay = new AppDisplay.AppDisplay();
this._appsPage = this._addPage(this.appDisplay.actor,
_("Applications"), 'view-app-grid-symbolic');
_("Applications"), 'view-grid-symbolic');
this._searchResults = new Search.SearchResults();
this._searchPage = this._addPage(this._searchResults.actor,

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));
@ -866,18 +864,6 @@ const WindowManager = new Lang.Class({
this.setCustomKeybindingHandler('switch-windows-backward',
Shell.ActionMode.NORMAL,
Lang.bind(this, this._startWindowSwitcher));
this.setCustomKeybindingHandler('cycle-windows',
Shell.ActionMode.NORMAL,
Lang.bind(this, this._startWindowCycler));
this.setCustomKeybindingHandler('cycle-windows-backward',
Shell.ActionMode.NORMAL,
Lang.bind(this, this._startWindowCycler));
this.setCustomKeybindingHandler('cycle-group',
Shell.ActionMode.NORMAL,
Lang.bind(this, this._startGroupCycler));
this.setCustomKeybindingHandler('cycle-group-backward',
Shell.ActionMode.NORMAL,
Lang.bind(this, this._startGroupCycler));
this.setCustomKeybindingHandler('switch-panels',
Shell.ActionMode.NORMAL |
Shell.ActionMode.OVERVIEW |
@ -1232,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) {
@ -1379,14 +1254,11 @@ const WindowManager = new Lang.Class({
let dimmer = getWindowDimmer(actor);
if (!dimmer)
return;
if (this._shouldAnimate())
Tweener.addTween(dimmer,
{ dimFactor: 1.0,
time: DIM_TIME,
transition: 'linear'
});
else
dimmer.dimFactor = 1.0;
Tweener.addTween(dimmer,
{ dimFactor: 1.0,
time: DIM_TIME,
transition: 'linear'
});
},
_undimWindow: function(window) {
@ -1396,13 +1268,10 @@ const WindowManager = new Lang.Class({
let dimmer = getWindowDimmer(actor);
if (!dimmer)
return;
if (this._shouldAnimate())
Tweener.addTween(dimmer,
{ dimFactor: 0.0,
time: UNDIM_TIME,
transition: 'linear' });
else
dimmer.dimFactor = 0.0;
Tweener.addTween(dimmer,
{ dimFactor: 0.0,
time: UNDIM_TIME,
transition: 'linear' });
},
_mapWindow : function(shellwm, actor) {
@ -1421,9 +1290,6 @@ const WindowManager = new Lang.Class({
actor._windowType = type;
}));
if (actor.meta_window.is_attached_dialog())
this._checkDimming(actor.get_meta_window().get_transient_for());
let types = [Meta.WindowType.NORMAL,
Meta.WindowType.DIALOG,
Meta.WindowType.MODAL_DIALOG];
@ -1432,6 +1298,9 @@ const WindowManager = new Lang.Class({
return;
}
if (actor.meta_window.is_attached_dialog())
this._checkDimming(actor.get_meta_window().get_transient_for());
switch (actor._windowType) {
case Meta.WindowType.NORMAL:
actor.set_pivot_point(0.5, 1.0);
@ -1514,9 +1383,6 @@ const WindowManager = new Lang.Class({
});
}
if (window.is_attached_dialog())
this._checkDimming(window.get_transient_for(), window);
let types = [Meta.WindowType.NORMAL,
Meta.WindowType.DIALOG,
Meta.WindowType.MODAL_DIALOG];
@ -1551,6 +1417,7 @@ const WindowManager = new Lang.Class({
if (window.is_attached_dialog()) {
let parent = window.get_transient_for();
this._checkDimming(parent, window);
actor._parentDestroyId = parent.connect('unmanaged', Lang.bind(this, function () {
Tweener.removeTweens(actor);
this._destroyWindowDone(shellwm, actor);
@ -1778,28 +1645,6 @@ const WindowManager = new Lang.Class({
tabPopup.destroy();
},
_startWindowCycler : function(display, screen, window, binding) {
/* prevent a corner case where both popups show up at once */
if (this._workspaceSwitcherPopup != null)
this._workspaceSwitcherPopup.destroy();
let tabPopup = new AltTab.WindowCyclerPopup();
if (!tabPopup.show(binding.is_reversed(), binding.get_name(), binding.get_mask()))
tabPopup.destroy();
},
_startGroupCycler : function(display, screen, window, binding) {
/* prevent a corner case where both popups show up at once */
if (this._workspaceSwitcherPopup != null)
this._workspaceSwitcherPopup.destroy();
let tabPopup = new AltTab.GroupCyclerPopup();
if (!tabPopup.show(binding.is_reversed(), binding.get_name(), binding.get_mask()))
tabPopup.destroy();
},
_startA11ySwitcher : function(display, screen, window, binding) {
Main.ctrlAltTabManager.popup(binding.is_reversed(), binding.get_name(), binding.get_mask());
},

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

@ -45,11 +45,11 @@ const PrimaryActorLayout = new Lang.Class({
this.primaryActor = primaryActor;
},
vfunc_get_preferred_width: function(container, forHeight) {
vfunc_get_preferred_width: function(forHeight) {
return this.primaryActor.get_preferred_width(forHeight);
},
vfunc_get_preferred_height: function(container, forWidth) {
vfunc_get_preferred_height: function(forWidth) {
return this.primaryActor.get_preferred_height(forWidth);
},
});
@ -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
@ -14,7 +15,6 @@ js/misc/util.js
js/portalHelper/main.js
js/ui/appDisplay.js
js/ui/appFavorites.js
js/ui/audioDeviceSelection.js
js/ui/backgroundMenu.js
js/ui/calendar.js
js/ui/components/automountManager.js
@ -33,9 +33,7 @@ js/ui/keyboard.js
js/ui/legacyTray.js
js/ui/lookingGlass.js
js/ui/main.js
js/ui/messageList.js
js/ui/messageTray.js
js/ui/mpris.js
js/ui/notificationDaemon.js
js/ui/overviewControls.js
js/ui/overview.js

1403
po/af.po

File diff suppressed because it is too large Load Diff

380
po/ar.po
View File

@ -1,6 +1,6 @@
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# Khaled Hosny <khaledhosny@eglug.org>, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016.
# Khaled Hosny <khaledhosny@eglug.org>, 2009, 2010, 2011, 2012, 2013, 2014, 2015.
# Muhammed Abd-ulaziz Abd-ullah <thenubianmuha_idrecy@yahoo.co.uk>, 2012.
# Abderrahim Kitouni <a.kitouni@gmail.com>, 2012, 2014.
# Ibrahim Saed <ibraheem5000@gmail.com>, 2012.
@ -8,8 +8,8 @@ msgid ""
msgstr ""
"Project-Id-Version: gnome-shell master\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2016-04-10 20:24+0200\n"
"PO-Revision-Date: 2016-04-10 20:26+0200\n"
"POT-Creation-Date: 2015-09-23 23:52+0200\n"
"PO-Revision-Date: 2015-09-23 23:52+0200\n"
"Last-Translator: Khaled Hosny <khaledhosny@eglug.org>\n"
"Language-Team: Arabic <doc@arabeyes.org>\n"
"Language: ar\n"
@ -18,7 +18,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 "
"&& n%100<=10 ? 3 : n%100>=11 ? 4 : 5;\n"
"X-Generator: Virtaal 1.0.0-beta1\n"
"X-Generator: Virtaal 0.7.1\n"
"X-Project-Style: gnome\n"
#: ../data/50-gnome-shell-system.xml.in.h:1
@ -45,6 +45,15 @@ msgstr "أظهر كل التطبيقات"
msgid "Open the application menu"
msgstr "افتح قائمة التطبيقات"
#: ../data/gnome-shell.desktop.in.in.h:1
msgid "GNOME Shell"
msgstr "صدفة جنوم"
#: ../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 "تفضيلات امتدادات صدفة جنوم"
@ -53,13 +62,9 @@ msgstr "تفضيلات امتدادات صدفة جنوم"
msgid "Configure GNOME Shell Extensions"
msgstr "اضبط امتدادات صدفة جنوم"
#: ../data/org.gnome.Shell.desktop.in.in.h:1
msgid "GNOME Shell"
msgstr "صدفة جنوم"
#: ../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 "صدفة جنوم (وايلاند)"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:1
msgid "Enable internal tools useful for developers and testers from Alt-F2"
@ -147,129 +152,116 @@ msgid ""
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 ""
#: ../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 "اعرض تاريخ الأسبوع في التقويم"
#: ../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 ""
#: ../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."
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-"
"only' (shows only the application icon) or 'both'."
msgstr ""
#: ../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."
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 ""
#: ../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 ""
@ -277,52 +269,51 @@ msgstr ""
msgid "Network Login"
msgstr "ولوج الشبكة"
#: ../js/extensionPrefs/main.js:117
#: ../js/extensionPrefs/main.js:122
#, javascript-format
msgid "There was an error loading the preferences dialog for %s:"
msgstr "حدث خطأ أثناء تشغيل حوار تفضيلات %s:"
#: ../js/extensionPrefs/main.js:149
#: ../js/extensionPrefs/main.js:154
msgid "GNOME Shell Extensions"
msgstr "امتدادات صدفة جنوم"
#: ../js/gdm/authPrompt.js:147 ../js/ui/audioDeviceSelection.js:71
#: ../js/ui/components/networkAgent.js:145
#: ../js/gdm/authPrompt.js:147 ../js/ui/components/networkAgent.js:145
#: ../js/ui/components/polkitAgent.js:179 ../js/ui/endSessionDialog.js:452
#: ../js/ui/extensionDownloader.js:195 ../js/ui/shellMountOperation.js:399
#: ../js/ui/status/network.js:916
msgid "Cancel"
msgstr "ألغِ"
#: ../js/gdm/authPrompt.js:169 ../js/gdm/authPrompt.js:216
#: ../js/gdm/authPrompt.js:448
#: ../js/gdm/authPrompt.js:169 ../js/gdm/authPrompt.js:215
#: ../js/gdm/authPrompt.js:447
msgid "Next"
msgstr "التالي"
#: ../js/gdm/authPrompt.js:212 ../js/ui/shellMountOperation.js:403
#: ../js/gdm/authPrompt.js:211 ../js/ui/shellMountOperation.js:403
#: ../js/ui/unlockDialog.js:59
msgid "Unlock"
msgstr "فك القفل"
#: ../js/gdm/authPrompt.js:214
#: ../js/gdm/authPrompt.js:213
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)"
@ -330,12 +321,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)
#: ../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 "نافذة الولوج"
@ -471,36 +462,16 @@ msgstr "أضِف إلى المفضّلة"
msgid "Show Details"
msgstr "أظهر التفاصيل"
#: ../js/ui/appFavorites.js:134
#: ../js/ui/appFavorites.js:132
#, javascript-format
msgid "%s has been added to your favorites."
msgstr "أُضيف %s إلى مفضلتك."
#: ../js/ui/appFavorites.js:168
#: ../js/ui/appFavorites.js:166
#, javascript-format
msgid "%s has been removed from your favorites."
msgstr "أُزيل %s من مفضّلتك."
#: ../js/ui/audioDeviceSelection.js:59
msgid "Select Audio Device"
msgstr "اختر جهاز صوت"
#: ../js/ui/audioDeviceSelection.js:69
msgid "Sound Settings"
msgstr "إعدادات الصوت"
#: ../js/ui/audioDeviceSelection.js:78
msgid "Headphones"
msgstr "سماعات أذن"
#: ../js/ui/audioDeviceSelection.js:80
msgid "Headset"
msgstr "سماعة رأس"
#: ../js/ui/audioDeviceSelection.js:82 ../js/ui/status/volume.js:213
msgid "Microphone"
msgstr "ميكروفون"
#: ../js/ui/backgroundMenu.js:19
msgid "Change Background…"
msgstr "غيّر الخلفية…"
@ -509,12 +480,13 @@ 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).
#: ../js/ui/calendar.js:47
#: ../js/ui/calendar.js:55
msgctxt "calendar-no-work"
msgid "06"
msgstr "56"
@ -524,96 +496,94 @@ msgstr "56"
#. * NOTE: These grid abbreviations are always shown together
#. * and in order, e.g. "S M T W T F S".
#.
#: ../js/ui/calendar.js:76
#: ../js/ui/calendar.js:84
msgctxt "grid sunday"
msgid "S"
msgstr "ح"
#. Translators: Calendar grid abbreviation for Monday
#: ../js/ui/calendar.js:78
#: ../js/ui/calendar.js:86
msgctxt "grid monday"
msgid "M"
msgstr "ن"
#. Translators: Calendar grid abbreviation for Tuesday
#: ../js/ui/calendar.js:80
#: ../js/ui/calendar.js:88
msgctxt "grid tuesday"
msgid "T"
msgstr "ث"
#. Translators: Calendar grid abbreviation for Wednesday
#: ../js/ui/calendar.js:82
#: ../js/ui/calendar.js:90
msgctxt "grid wednesday"
msgid "W"
msgstr "ر"
#. Translators: Calendar grid abbreviation for Thursday
#: ../js/ui/calendar.js:84
#: ../js/ui/calendar.js:92
msgctxt "grid thursday"
msgid "T"
msgstr "خ"
#. Translators: Calendar grid abbreviation for Friday
#: ../js/ui/calendar.js:86
#: ../js/ui/calendar.js:94
msgctxt "grid friday"
msgid "F"
msgstr "ج"
#. Translators: Calendar grid abbreviation for Saturday
#: ../js/ui/calendar.js:88
#: ../js/ui/calendar.js:96
msgctxt "grid saturday"
msgid "S"
msgstr "س"
#: ../js/ui/calendar.js:416
#: ../js/ui/calendar.js:566
msgid "Previous month"
msgstr "الشهر السابق"
#: ../js/ui/calendar.js:426
#: ../js/ui/calendar.js:576
msgid "Next month"
msgstr "الشهر التالي"
#: ../js/ui/calendar.js:579
#, no-javascript-format
msgctxt "date day number format"
msgid "%d"
msgstr "%d"
#: ../js/ui/calendar.js:634
#: ../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:695
#: ../js/ui/calendar.js:1188
msgctxt "event list time"
msgid "All Day"
msgstr "طوال اليوم"
#: ../js/ui/calendar.js:821
#: ../js/ui/calendar.js:1295
msgid "Clear section"
msgstr "امسح القسم"
#: ../js/ui/calendar.js:1522
msgid "Events"
msgstr "الأحداث"
#: ../js/ui/calendar.js:830
#: ../js/ui/calendar.js:1531
msgctxt "calendar heading"
msgid "%A, %B %d"
msgstr "%A %d %B"
#: ../js/ui/calendar.js:834
#: ../js/ui/calendar.js:1535
msgctxt "calendar heading"
msgid "%A, %B %d, %Y"
msgstr "%A %d %B %Y"
#: ../js/ui/calendar.js:919
#: ../js/ui/calendar.js:1620
msgid "Notifications"
msgstr "التنبيهات"
#: ../js/ui/calendar.js:1070
#: ../js/ui/calendar.js:1771
msgid "No Notifications"
msgstr "لا تنبيهات"
#: ../js/ui/calendar.js:1073
#: ../js/ui/calendar.js:1774
msgid "No Events"
msgstr "لا أحداث"
@ -625,7 +595,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"
@ -749,7 +719,7 @@ msgstr "للأسف لم يُفلح هذا. أعِد المحاولة."
#. Translators: this is the other person changing their old IM name to their new
#. IM name.
#: ../js/ui/components/telepathyClient.js:760
#: ../js/ui/components/telepathyClient.js:759
#, javascript-format
msgid "%s is now known as %s"
msgstr "غيّر %s اسمه إلى %s"
@ -951,11 +921,11 @@ msgid "Keyboard"
msgstr "لوحة المفاتيح"
#. translators: 'Hide' is a verb
#: ../js/ui/legacyTray.js:65
#: ../js/ui/legacyTray.js:66
msgid "Hide tray"
msgstr "أخفِ الصينية"
#: ../js/ui/legacyTray.js:106
#: ../js/ui/legacyTray.js:107
msgid "Status Icons"
msgstr "أيقونات الحالة"
@ -1007,26 +977,10 @@ msgstr "اعرض المصدر"
msgid "Web Page"
msgstr "صفحة الوب"
#: ../js/ui/messageList.js:543
msgid "Clear section"
msgstr "امسح القسم"
#: ../js/ui/messageTray.js:1486
msgid "System Information"
msgstr "معلومات النظام"
#: ../js/ui/mpris.js:194
msgid "Unknown artist"
msgstr "فنان غير معروف"
#: ../js/ui/mpris.js:195
msgid "Unknown title"
msgstr "عنوان غير معروف"
#: ../js/ui/mpris.js:217
msgid "Media"
msgstr "وسائط"
#: ../js/ui/overview.js:84
msgid "Undo"
msgstr "تراجع"
@ -1043,22 +997,17 @@ msgstr "نظرة عامة"
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
#: ../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 "الشريط العلوي"
@ -1071,15 +1020,15 @@ msgstr "الشريط العلوي"
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 "يُعيد التشغيل…"
@ -1210,16 +1159,19 @@ msgstr "تباين عال"
msgid "Large Text"
msgstr "نص كبير"
#: ../js/ui/status/bluetooth.js:47
msgid "Bluetooth"
msgstr "بلوتوث"
#: ../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:56
#: ../js/ui/status/bluetooth.js:54
msgid "Bluetooth Settings"
msgstr "إعدادات بلوتوث"
#. 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"
@ -1230,25 +1182,10 @@ msgstr[3] "%d مُتصل"
msgstr[4] "%d مُتصل"
msgstr[5] "%d مُتصل"
#: ../js/ui/status/bluetooth.js:138
msgid "Off"
msgstr "مغلق"
#: ../js/ui/status/bluetooth.js:140
#: ../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"
msgstr "السطوع"
@ -1257,48 +1194,30 @@ msgstr "السطوع"
msgid "Show Keyboard Layout"
msgstr "أظهر تخطيط لوحة المفاتيح"
#: ../js/ui/status/location.js:107 ../js/ui/status/location.js:215
#: ../js/ui/status/location.js:71 ../js/ui/status/location.js:177
msgid "Location Enabled"
msgstr "التموضع مفعّل"
#: ../js/ui/status/location.js:108 ../js/ui/status/location.js:216
#: ../js/ui/status/location.js:72 ../js/ui/status/location.js:178
msgid "Disable"
msgstr "عطّل"
#: ../js/ui/status/location.js:109
#: ../js/ui/status/location.js:73
msgid "Privacy Settings"
msgstr "إعدادات الخصوصية"
#: ../js/ui/status/location.js:214
#: ../js/ui/status/location.js:176
msgid "Location In Use"
msgstr "التموضع مستخدم"
#: ../js/ui/status/location.js:218
#: ../js/ui/status/location.js:180
msgid "Location Disabled"
msgstr "التموضع غير مفعّل"
#: ../js/ui/status/location.js:219
#: ../js/ui/status/location.js:181
msgid "Enable"
msgstr "فعّل"
#: ../js/ui/status/location.js:426
msgid "Deny Access"
msgstr "ارفض منح الصلاحية"
#: ../js/ui/status/location.js:429
msgid "Grant Access"
msgstr "امنح الصلاحية"
#. Translators: %s is an application name
#: ../js/ui/status/location.js:435
#, javascript-format
msgid "Give %s access to your location?"
msgstr "أتريد إعطاء %s صلاحية معرفة مكانك؟"
#: ../js/ui/status/location.js:437
msgid "Location access can be changed at any time from the privacy settings."
msgstr "يمكن تغيير صلاحيات الوصول لمكانك في أي وقت من إعدادات الخصوصية."
#: ../js/ui/status/network.js:101
msgid "<unknown>"
msgstr "<غير معروفة>"
@ -1307,13 +1226,13 @@ msgstr "<غير معروفة>"
#: ../js/ui/status/network.js:451 ../js/ui/status/network.js:1308
#, javascript-format
msgid "%s Off"
msgstr "%s مغلق"
msgstr "%s مغلق"
#. 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);
@ -1321,19 +1240,19 @@ msgstr "%s مُتصل"
#: ../js/ui/status/network.js:459
#, javascript-format
msgid "%s Unmanaged"
msgstr "%s غير مُدار"
msgstr "%s غير مُدار"
#. Translators: %s is a network identifier
#: ../js/ui/status/network.js:462
#, javascript-format
msgid "%s Disconnecting"
msgstr "%s يقطع الاتّصال"
msgstr "%s يقطع الاتّصال"
#. 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 يتّصل"
msgstr "%s يتّصل"
#. 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
@ -1353,7 +1272,7 @@ msgstr "برمجيات %s المغروسة (Firmware) غير متاحة"
#: ../js/ui/status/network.js:484
#, javascript-format
msgid "%s Unavailable"
msgstr "%s غير متاح"
msgstr "%s غير متاح"
#. Translators: %s is a network identifier
#: ../js/ui/status/network.js:487
@ -1380,7 +1299,7 @@ msgstr "عتاد %s مُعَطَّل"
#: ../js/ui/status/network.js:592
#, javascript-format
msgid "%s Disabled"
msgstr "%s معطّل"
msgstr "%s معطّل"
#: ../js/ui/status/network.js:632
msgid "Use as Internet connection"
@ -1434,6 +1353,10 @@ msgstr "اختر شبكة"
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
#, javascript-format
@ -1444,7 +1367,7 @@ msgstr "نقطة اتصال %s نشطة"
#: ../js/ui/status/network.js:1311
#, javascript-format
msgid "%s Not Connected"
msgstr "%s غير متّصل"
msgstr "%s غير متّصل"
#: ../js/ui/status/network.js:1411
msgid "connecting..."
@ -1472,8 +1395,9 @@ msgid "VPN"
msgstr "ش‌خ‌ف (VPN)"
#: ../js/ui/status/network.js:1513
#, fuzzy
msgid "VPN Off"
msgstr "أطفِئ ش‌خ‌ف (VPN) "
msgstr "أطفئ الحاسوب"
#: ../js/ui/status/network.js:1697
msgid "Connection failed"
@ -1483,36 +1407,31 @@ 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%%)"
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%%)"
msgstr "بقي على الاكتمال %d%02d (%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 (%d%%)"
#. The menu only appears when airplane mode is on, so just
#. statically build it as if it was on, rather than dynamically
@ -1553,6 +1472,10 @@ msgstr "تغيّرت شدة الصوت"
msgid "Volume"
msgstr "شدة الصوت"
#: ../js/ui/status/volume.js:213
msgid "Microphone"
msgstr "ميكروفون"
#: ../js/ui/unlockDialog.js:67
msgid "Log in as another user"
msgstr "لِج كمستخدم آخر"
@ -1705,49 +1628,46 @@ msgstr[5] "%u مدخل"
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 "الوضع الذي يستخدمه مدير ولوج جنوم لشاشة الولوج"
#: ../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 "%s is requesting access to your location."
#~ msgstr "يطلب %s صلاحية معرفة مكانك."
#~ msgid "GNOME Shell (wayland compositor)"
#~ msgstr "صدفة جنوم (وايلاند)"
#~ msgid "Bluetooth"
#~ msgstr "بلوتوث"
#~ msgid "%d Connected Device"
#~ msgid_plural "%d Connected Devices"
@ -1758,6 +1678,9 @@ msgstr "أغلق المستخدم مربع الاستيثاق الحِواري"
#~ msgstr[4] "%d جهازًا موصّلا"
#~ msgstr[5] "%d جهاز موصّل"
#~ msgid "Off"
#~ msgstr "مغلق"
#~ msgid "Authentication required"
#~ msgstr "الاستيثاق مطلوب"
@ -1959,6 +1882,9 @@ msgstr "أغلق المستخدم مربع الاستيثاق الحِواري"
#~ msgid "View account"
#~ msgstr "أظهر الحساب"
#~ msgid "Unknown reason"
#~ msgstr "السبب غير معروف"
#~ msgid "Open Calendar"
#~ msgstr "افتح التقويم"
@ -2051,6 +1977,9 @@ msgstr "أغلق المستخدم مربع الاستيثاق الحِواري"
#~ msgid "Device %s wants access to the service '%s'"
#~ msgstr "يريد الجهاز %s صلاحية الوصول للخدمة '%s'"
#~ msgid "Always grant access"
#~ msgstr "امنح الصلاحية دائما"
#~ msgid "Grant this time only"
#~ msgstr "امنح هذه المرة فقط"
@ -2140,6 +2069,9 @@ msgstr "أغلق المستخدم مربع الاستيثاق الحِواري"
#~ msgid "Visibility"
#~ msgstr "الرؤية"
#~ msgid "Send Files to Device…"
#~ msgstr "أرسِل ملفات للجهاز…"
#~ msgid "Set Up a New Device…"
#~ msgstr "اضبط جهازًا جديدًا…"
@ -2230,6 +2162,10 @@ msgstr "أغلق المستخدم مربع الاستيثاق الحِواري"
#~ msgstr[4] "بقيت %d دقيقة"
#~ msgstr[5] "بقيت %d دقيقة"
#~ msgctxt "percent of battery remaining"
#~ msgid "%d%%"
#~ msgstr "%d%%"
#~ msgid "AC Adapter"
#~ msgstr "مقبس طاقة"

719
po/bg.po

File diff suppressed because it is too large Load Diff

372
po/ca.po
View File

@ -3,23 +3,22 @@
# This file is distributed under the same license as the gnome-shell package.
# Siegfried-Angel Gevatter Pujals <rainct@ubuntu.com>, 2009.
# Jordi Serratosa <jordis@softcatala.cat>, 2012.
# Gil Forcada <gilforcada@guifi.net>, 2010, 2011, 2013, 2014, 2016.
# Gil Forcada <gilforcada@guifi.net>, 2010, 2011, 2013, 2014.
#
msgid ""
msgstr ""
"Project-Id-Version: HEAD\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
"shell&keywords=I18N+L10N&component=general\n"
"POT-Creation-Date: 2016-03-13 10:20+0000\n"
"PO-Revision-Date: 2016-03-13 14:47+0100\n"
"Last-Translator: Gil Forcada <gilforcada@guifi.net>\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-08-20 19:24+0200\n"
"PO-Revision-Date: 2015-05-28 19:32+0100\n"
"Last-Translator: David Medina <opensusecatala@gmail.com>\n"
"Language-Team: Catalan <tradgnome@softcatala.org>\n"
"Language: ca\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bits\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Gtranslator 2.91.6\n"
"X-Generator: Poedit 1.6.9\n"
#: ../data/50-gnome-shell-system.xml.in.h:1
msgid "System"
@ -45,6 +44,15 @@ msgstr "Mostra totes les aplicacions"
msgid "Open the application menu"
msgstr "Obre el menú d'aplicació"
#: ../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 "Gestor de finestres i llançador d'aplicacions"
#: ../data/gnome-shell-extension-prefs.desktop.in.in.h:1
msgid "GNOME Shell Extension Preferences"
msgstr "Preferències de les extensions del GNOME Shell"
@ -53,13 +61,9 @@ msgstr "Preferències de les extensions del GNOME Shell"
msgid "Configure GNOME Shell Extensions"
msgstr "Configureu les extensions del 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 "Gestor de finestres i llançador d'aplicacions"
#: ../data/gnome-shell-wayland.desktop.in.in.h:1
msgid "GNOME Shell (wayland compositor)"
msgstr "GNOME Shell (composició mitjançant Wayland)"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:1
msgid "Enable internal tools useful for developers and testers from Alt-F2"
@ -172,97 +176,78 @@ msgstr ""
"de verificació."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:18
msgid ""
"Whether the default Bluetooth adapter had set up devices associated to it"
msgstr ""
"Si l'adaptador de Bluetooth predeterminat té dispositius configurats "
"associats"
#: ../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 ""
"El Shell només mostrà una entrada de menú Bluetooth si un adaptador Bluetooh "
"està engegat, o si hi ha dispositius configurats associats a l'adaptador "
"predeterminat. Això es reiniciarà si l'adaptador predeterminat té "
"dispositius associats."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:20
msgid "Show the week date in the calendar"
msgstr "Mostra el número de la setmana al calendari"
#: ../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 "Si és «true» (cert) es mostra el número de la setmana al calendari."
#: ../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 "Vinculació per obrir el menú d'aplicació"
#: ../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 "La vinculació per obrir el menú d'aplicació."
#: ../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 "Vinculació per obrir la vista «Mostra les aplicacions»"
#: ../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 ""
"Vinculació per obrir la vista «Mostra les aplicacions» de les activitats de "
"la vista general."
#: ../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 "Vinculació per obrir la vista general"
#: ../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 "Vinculació per obrir la vista general d'activitats."
#: ../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 ""
"La vinculació per commutar la visibilitat de la llista de notificacions"
#: ../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 ""
"La vinculació per commutar la visibilitat de la llista de notificacions."
#: ../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 "Vinculació per posar el focus a la notificació activa"
#: ../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 "Vinculació per posar el focus a la notificació activa."
#: ../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 ""
"Vinculació que fa una pausa i continua tots els «tweens» en execució, per "
"motius de depuració"
#: ../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 "Quin tipus de teclat s'ha d'utilitzar"
#: ../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 "El tipus de teclat que s'utilitzarà."
#: ../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 "Limita el canviador a l'espai de treball actual."
#: ../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."
@ -271,11 +256,11 @@ msgstr ""
"de treball actual es mostren en el canviador. En cas contrari es mostren "
"totes les aplicacions."
#: ../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 "El mode d'icona de les aplicacions."
#: ../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-"
@ -286,7 +271,7 @@ msgstr ""
"icon-only» (mostra la icona de l'aplicació) o «both» (ambdues coses: mostra "
"la miniatura de la finestra i la icona de l'aplicació)."
#: ../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."
@ -294,32 +279,32 @@ msgstr ""
"Si és «true» (cert), només les finestres de l'espai de treball actual es "
"mostren en el canviador. En cas contrari, es mostren totes les finestres."
#: ../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 "Adjunta el diàleg modal a la finestra pare"
#: ../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 ""
"Si s'executa el GNOME Shell, aquesta clau sobreescriu la clau «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 ""
"Habilita la tesselització a les vores en deixar anar les finestres a les "
"vores de la pantalla"
#: ../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 "Els espais de treball es gestionen dinàmicament"
#: ../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 "Només en el monitor principal hi ha espais de treball"
#: ../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 ""
"Retarda el canvi del focus, quan s'està en mode ratolí, fins que el punter "
@ -329,52 +314,51 @@ msgstr ""
msgid "Network Login"
msgstr "Inici de sessió de la xarxa"
#: ../js/extensionPrefs/main.js:117
#: ../js/extensionPrefs/main.js:122
#, javascript-format
msgid "There was an error loading the preferences dialog for %s:"
msgstr "S'ha produït un error en carregar el diàleg de preferències de %s:"
#: ../js/extensionPrefs/main.js:149
#: ../js/extensionPrefs/main.js:154
msgid "GNOME Shell Extensions"
msgstr "Extensions del GNOME Shell"
#: ../js/gdm/authPrompt.js:147 ../js/ui/audioDeviceSelection.js:71
#: ../js/ui/components/networkAgent.js:145
#: ../js/gdm/authPrompt.js:147 ../js/ui/components/networkAgent.js:145
#: ../js/ui/components/polkitAgent.js:179 ../js/ui/endSessionDialog.js:452
#: ../js/ui/extensionDownloader.js:195 ../js/ui/shellMountOperation.js:399
#: ../js/ui/status/network.js:916
msgid "Cancel"
msgstr "Cancel·la"
#: ../js/gdm/authPrompt.js:169 ../js/gdm/authPrompt.js:216
#: ../js/gdm/authPrompt.js:448
#: ../js/gdm/authPrompt.js:169 ../js/gdm/authPrompt.js:215
#: ../js/gdm/authPrompt.js:435
msgid "Next"
msgstr "Següent"
#: ../js/gdm/authPrompt.js:212 ../js/ui/shellMountOperation.js:403
#: ../js/gdm/authPrompt.js:211 ../js/ui/shellMountOperation.js:403
#: ../js/ui/unlockDialog.js:59
msgid "Unlock"
msgstr "Desbloqueja"
#: ../js/gdm/authPrompt.js:214
#: ../js/gdm/authPrompt.js:213
msgctxt "button"
msgid "Sign In"
msgstr "Entra"
#: ../js/gdm/loginDialog.js:285
#: ../js/gdm/loginDialog.js:281
msgid "Choose Session"
msgstr "Trieu la sessió"
#. 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 "No esteu llistat?"
#. 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:847
#, javascript-format
msgid "(e.g., user or %s)"
msgstr "(p. ex. l'usuari o %s)"
@ -382,12 +366,12 @@ msgstr "(p. ex. l'usuari 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:859 ../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'usuari:"
#: ../js/gdm/loginDialog.js:1196
#: ../js/gdm/loginDialog.js:1181
msgid "Login Window"
msgstr "Finestra d'entrada"
@ -523,36 +507,16 @@ msgstr "Afegeix als preferits"
msgid "Show Details"
msgstr "Mostra els detalls"
#: ../js/ui/appFavorites.js:134
#: ../js/ui/appFavorites.js:132
#, javascript-format
msgid "%s has been added to your favorites."
msgstr "S'ha afegit %s als preferits."
#: ../js/ui/appFavorites.js:168
#: ../js/ui/appFavorites.js:166
#, javascript-format
msgid "%s has been removed from your favorites."
msgstr "S'ha suprimit %s dels preferits."
#: ../js/ui/audioDeviceSelection.js:59
msgid "Select Audio Device"
msgstr "Seleccioneu dispositiu d'àudio"
#: ../js/ui/audioDeviceSelection.js:69
msgid "Sound Settings"
msgstr "Paràmetres del so"
#: ../js/ui/audioDeviceSelection.js:78
msgid "Headphones"
msgstr "Auriculars"
#: ../js/ui/audioDeviceSelection.js:80
msgid "Headset"
msgstr "Auriculars amb micròfon"
#: ../js/ui/audioDeviceSelection.js:82 ../js/ui/status/volume.js:213
msgid "Microphone"
msgstr "Micròfon"
#: ../js/ui/backgroundMenu.js:19
msgid "Change Background…"
msgstr "Canvia el fons de l'escriptori…"
@ -561,12 +525,13 @@ msgstr "Canvia el fons de l'escriptori…"
msgid "Display Settings"
msgstr "Paràmetres de la 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 "Paràmetres"
#. Translators: Enter 0-6 (Sunday-Saturday) for non-work days. Examples: "0" (Sunday) "6" (Saturday) "06" (Sunday and Saturday).
#: ../js/ui/calendar.js:47
#: ../js/ui/calendar.js:55
msgctxt "calendar-no-work"
msgid "06"
msgstr "06"
@ -576,96 +541,94 @@ 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:76
#: ../js/ui/calendar.js:84
msgctxt "grid sunday"
msgid "S"
msgstr "Dg"
#. Translators: Calendar grid abbreviation for Monday
#: ../js/ui/calendar.js:78
#: ../js/ui/calendar.js:86
msgctxt "grid monday"
msgid "M"
msgstr "Dl"
#. Translators: Calendar grid abbreviation for Tuesday
#: ../js/ui/calendar.js:80
#: ../js/ui/calendar.js:88
msgctxt "grid tuesday"
msgid "T"
msgstr "Dt"
#. Translators: Calendar grid abbreviation for Wednesday
#: ../js/ui/calendar.js:82
#: ../js/ui/calendar.js:90
msgctxt "grid wednesday"
msgid "W"
msgstr "Dc"
#. Translators: Calendar grid abbreviation for Thursday
#: ../js/ui/calendar.js:84
#: ../js/ui/calendar.js:92
msgctxt "grid thursday"
msgid "T"
msgstr "Dj"
#. Translators: Calendar grid abbreviation for Friday
#: ../js/ui/calendar.js:86
#: ../js/ui/calendar.js:94
msgctxt "grid friday"
msgid "F"
msgstr "Dv"
#. Translators: Calendar grid abbreviation for Saturday
#: ../js/ui/calendar.js:88
#: ../js/ui/calendar.js:96
msgctxt "grid saturday"
msgid "S"
msgstr "Ds"
#: ../js/ui/calendar.js:416
#: ../js/ui/calendar.js:566
msgid "Previous month"
msgstr "Mes anterior"
#: ../js/ui/calendar.js:426
#: ../js/ui/calendar.js:576
msgid "Next month"
msgstr "Mes següent"
#: ../js/ui/calendar.js:579
#, no-javascript-format
msgctxt "date day number format"
msgid "%d"
msgstr "%d"
#: ../js/ui/calendar.js:634
#: ../js/ui/calendar.js:783
msgid "Week %V"
msgstr "Setmana %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:695
#: ../js/ui/calendar.js:1188
msgctxt "event list time"
msgid "All Day"
msgstr "Tot el dia"
#: ../js/ui/calendar.js:821
#: ../js/ui/calendar.js:1291
msgid "Clear section"
msgstr "Neteja la secció"
#: ../js/ui/calendar.js:1518
msgid "Events"
msgstr "Cites"
#: ../js/ui/calendar.js:830
#: ../js/ui/calendar.js:1527
msgctxt "calendar heading"
msgid "%A, %B %d"
msgstr "%A %d de %B"
#: ../js/ui/calendar.js:834
#: ../js/ui/calendar.js:1531
msgctxt "calendar heading"
msgid "%A, %B %d, %Y"
msgstr "%A %d de %B de %Y"
#: ../js/ui/calendar.js:919
#: ../js/ui/calendar.js:1616
msgid "Notifications"
msgstr "Notificacions"
#: ../js/ui/calendar.js:1070
#: ../js/ui/calendar.js:1767
msgid "No Notifications"
msgstr "Cap notificació"
#: ../js/ui/calendar.js:1073
#: ../js/ui/calendar.js:1770
msgid "No Events"
msgstr "Cap cita"
@ -677,7 +640,7 @@ msgstr "S'ha connectat un dispositiu extern"
msgid "External drive disconnected"
msgstr "S'ha desconnectat un dispositiu extern"
#: ../js/ui/components/autorunManager.js:355
#: ../js/ui/components/autorunManager.js:354
#, javascript-format
msgid "Open with %s"
msgstr "Obre amb %s"
@ -993,11 +956,11 @@ msgid "Keyboard"
msgstr "Teclat"
#. translators: 'Hide' is a verb
#: ../js/ui/legacyTray.js:65
#: ../js/ui/legacyTray.js:66
msgid "Hide tray"
msgstr "Oculta la Safata"
#: ../js/ui/legacyTray.js:106
#: ../js/ui/legacyTray.js:107
msgid "Status Icons"
msgstr "Icones d'estat"
@ -1025,7 +988,7 @@ msgstr "Habilitat"
#. 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 "Inhabilitat"
@ -1049,26 +1012,10 @@ msgstr "Mostra el codi font"
msgid "Web Page"
msgstr "Pàgina web"
#: ../js/ui/messageList.js:543
msgid "Clear section"
msgstr "Neteja la secció"
#: ../js/ui/messageTray.js:1486
msgid "System Information"
msgstr "Informació de l'ordinador"
#: ../js/ui/mpris.js:194
msgid "Unknown artist"
msgstr "Artista desconegut"
#: ../js/ui/mpris.js:195
msgid "Unknown title"
msgstr "Títol desconegut"
#: ../js/ui/mpris.js:217
msgid "Media"
msgstr "Multimèdia"
#: ../js/ui/overview.js:84
msgid "Undo"
msgstr "Desfés"
@ -1085,22 +1032,17 @@ msgstr "Vista general"
msgid "Type to search…"
msgstr "Teclegeu per cercar…"
#: ../js/ui/panel.js:358
#: ../js/ui/panel.js:352
msgid "Quit"
msgstr "Surt"
#. 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 "Activitats"
#: ../js/ui/panel.js:695
msgctxt "System menu in the top bar"
msgid "System"
msgstr "Sistema"
#: ../js/ui/panel.js:807
#: ../js/ui/panel.js:754
msgid "Top Bar"
msgstr "Barra superior"
@ -1113,15 +1055,15 @@ msgstr "Barra superior"
msgid "toggle-switch-us"
msgstr "toggle-switch-intl"
#: ../js/ui/runDialog.js:71
#: ../js/ui/runDialog.js:70
msgid "Enter a Command"
msgstr "Introduïu una ordre"
#: ../js/ui/runDialog.js:111 ../js/ui/windowMenu.js:162
#: ../js/ui/runDialog.js:110 ../js/ui/windowMenu.js:162
msgid "Close"
msgstr "Tanca"
#: ../js/ui/runDialog.js:282
#: ../js/ui/runDialog.js:281
msgid "Restarting…"
msgstr "S'està reiniciant…"
@ -1244,41 +1186,29 @@ msgstr "Alt contrast"
msgid "Large Text"
msgstr "Text gran"
#: ../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 "Desactiva"
#: ../js/ui/status/bluetooth.js:56
#: ../js/ui/status/bluetooth.js:54
msgid "Bluetooth Settings"
msgstr "Paràmetres del Bluetooth"
#. 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 connectat"
msgstr[1] "%d connectats"
#: ../js/ui/status/bluetooth.js:138
msgid "Off"
msgstr "Desactivat"
#: ../js/ui/status/bluetooth.js:140
#: ../js/ui/status/bluetooth.js:107
msgid "Not In Use"
msgstr "No s'usa"
#: ../js/ui/status/bluetooth.js:142 ../js/ui/status/network.js:1279
msgid "Turn On"
msgstr "Activa"
#: ../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 "Desactiva"
#: ../js/ui/status/brightness.js:44
msgid "Brightness"
msgstr "Brillantor"
@ -1287,50 +1217,30 @@ msgstr "Brillantor"
msgid "Show Keyboard Layout"
msgstr "Mostra la disposició del teclat"
#: ../js/ui/status/location.js:107 ../js/ui/status/location.js:215
#: ../js/ui/status/location.js:71 ../js/ui/status/location.js:177
msgid "Location Enabled"
msgstr "Ubicació habilitada"
#: ../js/ui/status/location.js:108 ../js/ui/status/location.js:216
#: ../js/ui/status/location.js:72 ../js/ui/status/location.js:178
msgid "Disable"
msgstr "Inhabilita"
#: ../js/ui/status/location.js:109
#: ../js/ui/status/location.js:73
msgid "Privacy Settings"
msgstr "Paràmetres de privacitat"
#: ../js/ui/status/location.js:214
#: ../js/ui/status/location.js:176
msgid "Location In Use"
msgstr "Ubicació en ús"
#: ../js/ui/status/location.js:218
#: ../js/ui/status/location.js:180
msgid "Location Disabled"
msgstr "Ubicació inhabilitada"
#: ../js/ui/status/location.js:219
#: ../js/ui/status/location.js:181
msgid "Enable"
msgstr "Habilita"
#: ../js/ui/status/location.js:426
msgid "Deny Access"
msgstr "Denega l'accés"
#: ../js/ui/status/location.js:429
msgid "Grant Access"
msgstr "Permetre l'accés"
#. Translators: %s is an application name
#: ../js/ui/status/location.js:435
#, javascript-format
msgid "Give %s access to your location?"
msgstr "Voleu donar a %s accés a la vostra ubicació?"
#: ../js/ui/status/location.js:437
msgid "Location access can be changed at any time from the privacy settings."
msgstr ""
"Podeu canviar la configuració de l'accés a la ubicació sempre que vulgueu "
"des del la configuració de la privacitat."
#: ../js/ui/status/network.js:101
msgid "<unknown>"
msgstr "<desconegut>"
@ -1466,6 +1376,10 @@ msgstr "Trieu una xarxa"
msgid "Wi-Fi Settings"
msgstr "Paràmetres del sense fil"
#: ../js/ui/status/network.js:1279
msgid "Turn On"
msgstr "Activa"
#. Translators: %s is a network identifier
#: ../js/ui/status/network.js:1296
#, javascript-format
@ -1515,36 +1429,31 @@ msgstr "Ha fallat la connexió"
msgid "Activation of network connection failed"
msgstr "Ha fallat l'activació de la connexió de xarxa"
#: ../js/ui/status/power.js:61
#: ../js/ui/status/power.js:49
msgid "Power Settings"
msgstr "Paràmetres d'energia"
#: ../js/ui/status/power.js:77
#: ../js/ui/status/power.js:65
msgid "Fully Charged"
msgstr "Totalment carregada"
#. 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 "S'està estimant la durada…"
#. 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 Queda (%d %%)"
msgid "%d%02d Remaining (%d%%)"
msgstr "%d%02d Queda (%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 Fins que estigui del tot carregada (%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 Fins que estigui del tot carregada (%d%%)"
#. The menu only appears when airplane mode is on, so just
#. statically build it as if it was on, rather than dynamically
@ -1585,6 +1494,10 @@ msgstr "S'ha canviat el volum"
msgid "Volume"
msgstr "Volum"
#: ../js/ui/status/volume.js:213
msgid "Microphone"
msgstr "Micròfon"
#: ../js/ui/unlockDialog.js:67
msgid "Log in as another user"
msgstr "Entra amb un altre usuari"
@ -1705,7 +1618,7 @@ msgstr "Calendari de l'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"
@ -1714,66 +1627,66 @@ msgstr[1] "%u sortides"
#. 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 entrades"
#: ../src/gvc/gvc-mixer-control.c:2371
#: ../src/gvc/gvc-mixer-control.c:2373
msgid "System Sounds"
msgstr "Sons del sistema"
#: ../src/main.c:381
#: ../src/main.c:373
msgid "Print version"
msgstr "Mostra la versió"
#: ../src/main.c:387
#: ../src/main.c:379
msgid "Mode used by GDM for login screen"
msgstr "El mode que utilitzarà el GDM per a la pantalla d'entrada"
#: ../src/main.c:393
#: ../src/main.c:385
msgid "Use a specific mode, e.g. \"gdm\" for login screen"
msgstr "Utilitza un mode específic, p. ex. «gdm» per la pantalla d'entrada"
#: ../src/main.c:399
#: ../src/main.c:391
msgid "List possible modes"
msgstr "Llista els modes possibles"
#: ../src/shell-app.c:246
#: ../src/shell-app.c:239
msgctxt "program"
msgid "Unknown"
msgstr "Desconegut"
#: ../src/shell-app.c:487
#: ../src/shell-app.c:480
#, c-format
msgid "Failed to launch “%s”"
msgstr "No s'ha pogut iniciar «%s»"
#: ../src/shell-keyring-prompt.c:730
#: ../src/shell-keyring-prompt.c:742
msgid "Passwords do not match."
msgstr "Les contrasenyes no coincideixen."
#: ../src/shell-keyring-prompt.c:738
#: ../src/shell-keyring-prompt.c:750
msgid "Password cannot be blank"
msgstr "La contrasenya no pot ser buida"
#: ../src/shell-polkit-authentication-agent.c:353
#: ../src/shell-polkit-authentication-agent.c:346
msgid "Authentication dialog was dismissed by the user"
msgstr "L'usuari ha descartat el diàleg d'autenticació"
#~ msgid "%s is requesting access to your location."
#~ msgstr "%s està demanant accés a la vostra ubicació."
#~ msgid "GNOME Shell (wayland compositor)"
#~ msgstr "GNOME Shell (composició mitjançant Wayland)"
#~ msgid "Bluetooth"
#~ msgstr "Bluetooth"
#~ msgid "%d Connected Device"
#~ msgid_plural "%d Connected Devices"
#~ msgstr[0] "%d dispositiu connectat"
#~ msgstr[1] "%d dispositius connectats"
#~ msgid "Off"
#~ msgstr "Desactivat"
#~ msgid "Authentication required"
#~ msgstr "Cal autenticació"
@ -1982,6 +1895,9 @@ msgstr "L'usuari ha descartat el diàleg d'autenticació"
#~ msgid "View account"
#~ msgstr "Mostra el compte"
#~ msgid "Unknown reason"
#~ msgstr "Motiu desconegut"
#~ msgid "Open Calendar"
#~ msgstr "Obre el calendari"

567
po/cs.po

File diff suppressed because it is too large Load Diff

381
po/da.po
View File

@ -1,9 +1,9 @@
# Danish translation of gnome-shell
# Copyright (C) 2010-2011, 2014-2016 gnome-shell
# Copyright (C) 2010-2011, 2014-2015 gnome-shell
# This file is distributed under the same license as the gnome-shell package.
#
# Kenneth Nielsen <k.nielsen81@gmail.com>, 2012.
# Kris Thomsen <mail@kristhomsen.dk>, 2009-2014, 2016.
# Kris Thomsen <mail@kristhomsen.dk>, 2009-2014.
# Ask Hjorth Larsen <asklarsen@gmail.com>, 2014, 2015.
#
# Konventioner:
@ -20,15 +20,15 @@ msgid ""
msgstr ""
"Project-Id-Version: gnome-shell\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2016-03-20 23:45+0100\n"
"PO-Revision-Date: 2016-03-20 03:13+0100\n"
"Last-Translator: Kris Thomsen\n"
"POT-Creation-Date: 2015-09-18 17:05+0200\n"
"PO-Revision-Date: 2015-09-04 21:21+0100\n"
"Last-Translator: Kris Thomsen <mail@kristhomsen.dk>\n"
"Language-Team: Danish <dansk@dansk-gruppen.dk>\n"
"Language: da\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
#: ../data/50-gnome-shell-system.xml.in.h:1
msgid "System"
@ -54,6 +54,15 @@ msgstr "Vis alle programmer"
msgid "Open the application menu"
msgstr "Åbn program-menuen"
#: ../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 "Vindueshåndtering og åbning af programmer"
#: ../data/gnome-shell-extension-prefs.desktop.in.in.h:1
msgid "GNOME Shell Extension Preferences"
msgstr "Udvidelsesmodulindstillinger for GNOME Shell"
@ -62,13 +71,9 @@ msgstr "Udvidelsesmodulindstillinger for GNOME Shell"
msgid "Configure GNOME Shell Extensions"
msgstr "Konfigurér udvidelsesmoduler til 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 "Vindueshåndtering og åbning af programmer"
#: ../data/gnome-shell-wayland.desktop.in.in.h:1
msgid "GNOME Shell (wayland compositor)"
msgstr "GNOME Shell (wayland-sammensætter)"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:1
msgid "Enable internal tools useful for developers and testers from Alt-F2"
@ -175,94 +180,76 @@ msgstr ""
"standard-værdien af denne tjekboks."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:18
msgid ""
"Whether the default Bluetooth adapter had set up devices associated to it"
msgstr ""
"Om standard Bluetooth-adapteren er indstillet til at have enheder tilknyttet"
#: ../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 ""
"Shell'en vil kun vise menupunktet Bluetooth, hvis en Bluetooth-adapter er "
"tændt, eller hvis der er enheder tilknyttet standard adapteren. Dette vil "
"kun blive nulstillet hvis standard adapteren på et tidspunkt, ikke længere "
"har enheder tilknyttet."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:20
msgid "Show the week date in the calendar"
msgstr "Vis ugenummer i kalenderen"
#: ../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 "Hvis sand vises ISO-ugenummeret i kalenderen."
#: ../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 "Genvejstast til at åbne program-menuen"
#: ../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 "Genvejstast til at åbne program-menuen."
#: ../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 "Genvejstast til at åbne \"Vis programmer\"-visningen"
#: ../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 ""
"Genvejstast til at åbne \"Vis programmer\"-visningen i Aktivitets-"
"overblikket."
#: ../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 "Genvejstast til at åbne overblikket"
#: ../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 "Genvejstast til at åbne Aktivitetsoverblikket."
#: ../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 "Genvejstast til at slå synligheden af påmindelseslisten til eller fra"
#: ../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 "Genvejstast til at slå synligheden af påmindelseslisten til eller fra."
#: ../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 "Genvejstast til at fokusere på den aktive påmindelse"
#: ../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 "Genvejstast til at fokusere på den aktive påmindelse."
#: ../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 ""
"Genvejstast, som pauser og genstarter alle kørende animationer, til "
"fejlsøgningsformå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 "Hvilket tastatur bruges"
#: ../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 "Tastaturtypen som bruges."
#: ../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 "Begræns skifteren til det nuværende arbejdsområ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."
@ -270,11 +257,11 @@ msgstr ""
"Hvis sand, vises kun programmer, som har vinduer på det nuværende "
"arbejdsområde, i skifteren. Ellers er alle programmer inkluderet."
#: ../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 "Ikon-tilstanden 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-"
@ -284,7 +271,7 @@ msgstr ""
"er \"thumbnail-only\" (viser forhåndsvisning af vinduet), \"app-icon-only"
"\" (viser kun programikonet) eller \"both\" (begge)."
#: ../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."
@ -292,29 +279,29 @@ msgstr ""
"Hvis sand, vises kun vinduer fra det nuværende arbejdsområde i skifteren. "
"Ellers er alle programmer inkluderet."
#: ../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 "Hæft modal dialog til overliggende vindue"
#: ../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øgle overstyrer nøglen i org.gnome.mutter, når du kører GNOME Shell."
#: ../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 "Aktivér kant-fliselægning, når vinduer placeres ved skærmkanter"
#: ../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 "Arbejdsområder er håndteret 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 "Arbejdsområder kun på den primære skærm"
#: ../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 ""
"Forsink fokusændringer i musetilstand indtil pegeren holder op med at bevæge "
@ -324,52 +311,51 @@ msgstr ""
msgid "Network Login"
msgstr "Netværksindlogning"
#: ../js/extensionPrefs/main.js:117
#: ../js/extensionPrefs/main.js:122
#, javascript-format
msgid "There was an error loading the preferences dialog for %s:"
msgstr "Der opstod in fejl ved indlæsning af indstillingsdialogen for %s:"
#: ../js/extensionPrefs/main.js:149
#: ../js/extensionPrefs/main.js:154
msgid "GNOME Shell Extensions"
msgstr "Udvidelsesmoduler til GNOME Shell"
#: ../js/gdm/authPrompt.js:147 ../js/ui/audioDeviceSelection.js:71
#: ../js/ui/components/networkAgent.js:145
#: ../js/gdm/authPrompt.js:147 ../js/ui/components/networkAgent.js:145
#: ../js/ui/components/polkitAgent.js:179 ../js/ui/endSessionDialog.js:452
#: ../js/ui/extensionDownloader.js:195 ../js/ui/shellMountOperation.js:399
#: ../js/ui/status/network.js:916
msgid "Cancel"
msgstr "Annullér"
#: ../js/gdm/authPrompt.js:169 ../js/gdm/authPrompt.js:216
#: ../js/gdm/authPrompt.js:448
#: ../js/gdm/authPrompt.js:169 ../js/gdm/authPrompt.js:215
#: ../js/gdm/authPrompt.js:447
msgid "Next"
msgstr "Næste"
#: ../js/gdm/authPrompt.js:212 ../js/ui/shellMountOperation.js:403
#: ../js/gdm/authPrompt.js:211 ../js/ui/shellMountOperation.js:403
#: ../js/ui/unlockDialog.js:59
msgid "Unlock"
msgstr "Lås op"
#: ../js/gdm/authPrompt.js:214
#: ../js/gdm/authPrompt.js:213
msgctxt "button"
msgid "Sign In"
msgstr "Log ind"
#: ../js/gdm/loginDialog.js:285
#: ../js/gdm/loginDialog.js:281
msgid "Choose Session"
msgstr "Vælg 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: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. bruger eller %s)"
@ -377,12 +363,12 @@ msgstr "(f.eks. bruger 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 "Brugernavn: "
#: ../js/gdm/loginDialog.js:1196
#: ../js/gdm/loginDialog.js:1184
msgid "Login Window"
msgstr "Indlogningsvindue"
@ -518,36 +504,16 @@ msgstr "Føj til favoritter"
msgid "Show Details"
msgstr "Vis detaljer"
#: ../js/ui/appFavorites.js:134
#: ../js/ui/appFavorites.js:132
#, javascript-format
msgid "%s has been added to your favorites."
msgstr "%s er blevet føjet til dine favoritter."
#: ../js/ui/appFavorites.js:168
#: ../js/ui/appFavorites.js:166
#, javascript-format
msgid "%s has been removed from your favorites."
msgstr "%s er blevet fjernet fra dine favoritter."
#: ../js/ui/audioDeviceSelection.js:59
msgid "Select Audio Device"
msgstr "Vælg lydenhed"
#: ../js/ui/audioDeviceSelection.js:69
msgid "Sound Settings"
msgstr "Indstillinger for lyd"
#: ../js/ui/audioDeviceSelection.js:78
msgid "Headphones"
msgstr "Hovedtelefoner"
#: ../js/ui/audioDeviceSelection.js:80
msgid "Headset"
msgstr "Headset"
#: ../js/ui/audioDeviceSelection.js:82 ../js/ui/status/volume.js:213
msgid "Microphone"
msgstr "Mikrofon"
#: ../js/ui/backgroundMenu.js:19
msgid "Change Background…"
msgstr "Skift baggrund…"
@ -556,12 +522,13 @@ msgstr "Skift baggrund…"
msgid "Display Settings"
msgstr "Skærmindstillinger"
#: ../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 "Indstillinger"
#. Translators: Enter 0-6 (Sunday-Saturday) for non-work days. Examples: "0" (Sunday) "6" (Saturday) "06" (Sunday and Saturday).
#: ../js/ui/calendar.js:47
#: ../js/ui/calendar.js:55
msgctxt "calendar-no-work"
msgid "06"
msgstr "06"
@ -571,96 +538,94 @@ 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:76
#: ../js/ui/calendar.js:84
msgctxt "grid sunday"
msgid "S"
msgstr "S"
#. Translators: Calendar grid abbreviation for Monday
#: ../js/ui/calendar.js:78
#: ../js/ui/calendar.js:86
msgctxt "grid monday"
msgid "M"
msgstr "M"
#. Translators: Calendar grid abbreviation for Tuesday
#: ../js/ui/calendar.js:80
#: ../js/ui/calendar.js:88
msgctxt "grid tuesday"
msgid "T"
msgstr "T"
#. Translators: Calendar grid abbreviation for Wednesday
#: ../js/ui/calendar.js:82
#: ../js/ui/calendar.js:90
msgctxt "grid wednesday"
msgid "W"
msgstr "O"
#. Translators: Calendar grid abbreviation for Thursday
#: ../js/ui/calendar.js:84
#: ../js/ui/calendar.js:92
msgctxt "grid thursday"
msgid "T"
msgstr "T"
#. Translators: Calendar grid abbreviation for Friday
#: ../js/ui/calendar.js:86
#: ../js/ui/calendar.js:94
msgctxt "grid friday"
msgid "F"
msgstr "F"
#. Translators: Calendar grid abbreviation for Saturday
#: ../js/ui/calendar.js:88
#: ../js/ui/calendar.js:96
msgctxt "grid saturday"
msgid "S"
msgstr "L"
#: ../js/ui/calendar.js:416
#: ../js/ui/calendar.js:566
msgid "Previous month"
msgstr "Forrige måned"
#: ../js/ui/calendar.js:426
#: ../js/ui/calendar.js:576
msgid "Next month"
msgstr "Næste måned"
#: ../js/ui/calendar.js:579
#, no-javascript-format
msgctxt "date day number format"
msgid "%d"
msgstr "%d"
#: ../js/ui/calendar.js:634
#: ../js/ui/calendar.js:783
msgid "Week %V"
msgstr "Uge %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:695
#: ../js/ui/calendar.js:1188
msgctxt "event list time"
msgid "All Day"
msgstr "Hele dagen"
#: ../js/ui/calendar.js:821
#: ../js/ui/calendar.js:1291
msgid "Clear section"
msgstr "Ryd afsnit"
#: ../js/ui/calendar.js:1518
msgid "Events"
msgstr "Begivenheder"
#: ../js/ui/calendar.js:830
#: ../js/ui/calendar.js:1527
msgctxt "calendar heading"
msgid "%A, %B %d"
msgstr "%A, %d. %B"
#: ../js/ui/calendar.js:834
#: ../js/ui/calendar.js:1531
msgctxt "calendar heading"
msgid "%A, %B %d, %Y"
msgstr "%A, %d. %B %Y"
#: ../js/ui/calendar.js:919
#: ../js/ui/calendar.js:1616
msgid "Notifications"
msgstr "Beskeder"
#: ../js/ui/calendar.js:1070
#: ../js/ui/calendar.js:1767
msgid "No Notifications"
msgstr "Ingen påmindelser"
#: ../js/ui/calendar.js:1073
#: ../js/ui/calendar.js:1770
msgid "No Events"
msgstr "Ingen begivenheder"
@ -672,7 +637,7 @@ msgstr "Eksternt drev tilkoblet"
msgid "External drive disconnected"
msgstr "Eksternt drev frakoblet"
#: ../js/ui/components/autorunManager.js:355
#: ../js/ui/components/autorunManager.js:354
#, javascript-format
msgid "Open with %s"
msgstr "Åbn med %s"
@ -798,7 +763,7 @@ msgstr "Beklager, godkendelse mislykkedes. Prøv igen."
#. Translators: this is the other person changing their old IM name to their new
#. IM name.
#: ../js/ui/components/telepathyClient.js:760
#: ../js/ui/components/telepathyClient.js:759
#, javascript-format
msgid "%s is now known as %s"
msgstr "%s kalder sig nu %s"
@ -983,11 +948,11 @@ msgid "Keyboard"
msgstr "Tastatur"
#. translators: 'Hide' is a verb
#: ../js/ui/legacyTray.js:65
#: ../js/ui/legacyTray.js:66
msgid "Hide tray"
msgstr "Skjul statusfelt"
#: ../js/ui/legacyTray.js:106
#: ../js/ui/legacyTray.js:107
msgid "Status Icons"
msgstr "Statusikoner"
@ -1015,7 +980,7 @@ msgstr "Aktiveret"
#. 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 "Deaktiveret"
@ -1039,26 +1004,10 @@ msgstr "Vis kilde"
msgid "Web Page"
msgstr "Webside"
#: ../js/ui/messageList.js:543
msgid "Clear section"
msgstr "Ryd afsnit"
#: ../js/ui/messageTray.js:1486
msgid "System Information"
msgstr "Systeminformation"
#: ../js/ui/mpris.js:194
msgid "Unknown artist"
msgstr "Ukendt kunstner"
#: ../js/ui/mpris.js:195
msgid "Unknown title"
msgstr "Ukendt titel"
#: ../js/ui/mpris.js:217
msgid "Media"
msgstr "Medier"
#: ../js/ui/overview.js:84
msgid "Undo"
msgstr "Fortryd"
@ -1075,22 +1024,17 @@ msgstr "Oversigt"
msgid "Type to search…"
msgstr "Skriv for at søge…"
#: ../js/ui/panel.js:358
#: ../js/ui/panel.js:352
msgid "Quit"
msgstr "Afslut"
#. 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 "Toppanel"
@ -1103,15 +1047,15 @@ msgstr "Toppanel"
msgid "toggle-switch-us"
msgstr "toggle-switch-intl"
#: ../js/ui/runDialog.js:71
#: ../js/ui/runDialog.js:70
msgid "Enter a Command"
msgstr "Indtast 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 "Luk"
#: ../js/ui/runDialog.js:282
#: ../js/ui/runDialog.js:281
msgid "Restarting…"
msgstr "Genstarter…"
@ -1234,41 +1178,29 @@ msgstr "Høj 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 "Sluk"
#: ../js/ui/status/bluetooth.js:56
#: ../js/ui/status/bluetooth.js:54
msgid "Bluetooth Settings"
msgstr "Indstillinger for Bluetooth"
#. 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 forbundet"
msgstr[1] "%d forbundet"
#: ../js/ui/status/bluetooth.js:138
msgid "Off"
msgstr "Slukket"
#: ../js/ui/status/bluetooth.js:140
#: ../js/ui/status/bluetooth.js:107
msgid "Not In Use"
msgstr "Ikke i brug"
#: ../js/ui/status/bluetooth.js:142 ../js/ui/status/network.js:1279
msgid "Turn On"
msgstr "Tænd"
#: ../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 "Sluk"
#: ../js/ui/status/brightness.js:44
msgid "Brightness"
msgstr "Lysstyrke"
@ -1277,49 +1209,30 @@ msgstr "Lysstyrke"
msgid "Show Keyboard Layout"
msgstr "Vis tastaturlayout"
#: ../js/ui/status/location.js:107 ../js/ui/status/location.js:215
#: ../js/ui/status/location.js:71 ../js/ui/status/location.js:177
msgid "Location Enabled"
msgstr "Placering aktiveret"
#: ../js/ui/status/location.js:108 ../js/ui/status/location.js:216
#: ../js/ui/status/location.js:72 ../js/ui/status/location.js:178
msgid "Disable"
msgstr "Slå fra"
#: ../js/ui/status/location.js:109
#: ../js/ui/status/location.js:73
msgid "Privacy Settings"
msgstr "Indstillinger for privatliv"
#: ../js/ui/status/location.js:214
#: ../js/ui/status/location.js:176
msgid "Location In Use"
msgstr "Placering i brug"
#: ../js/ui/status/location.js:218
#: ../js/ui/status/location.js:180
msgid "Location Disabled"
msgstr "Placering deaktiveret"
#: ../js/ui/status/location.js:219
#: ../js/ui/status/location.js:181
msgid "Enable"
msgstr "Slå til"
#: ../js/ui/status/location.js:426
msgid "Deny Access"
msgstr "Forbyd adgang"
#: ../js/ui/status/location.js:429
msgid "Grant Access"
msgstr "Giv adgang"
#. Translators: %s is an application name
#: ../js/ui/status/location.js:435
#, javascript-format
msgid "Give %s access to your location?"
msgstr "Giv %s adgang til din placering?"
#: ../js/ui/status/location.js:437
msgid "Location access can be changed at any time from the privacy settings."
msgstr ""
"Placeringsadgang kan ændres når som helst via privatlivsindstillingerne."
#: ../js/ui/status/network.js:101
msgid "<unknown>"
msgstr "<ukendt>"
@ -1455,6 +1368,10 @@ msgstr "Vælg netværk"
msgid "Wi-Fi Settings"
msgstr "Indstillinger for trådløs"
#: ../js/ui/status/network.js:1279
msgid "Turn On"
msgstr "Tænd"
#. Translators: %s is a network identifier
#: ../js/ui/status/network.js:1296
#, javascript-format
@ -1482,7 +1399,7 @@ msgstr "forbindelse mislykkedes"
#: ../js/ui/status/network.js:1482 ../js/ui/status/rfkill.js:93
msgid "Network Settings"
msgstr "Netværksindstillinger"
msgstr "Indstillinger for netværk"
#: ../js/ui/status/network.js:1484
msgid "VPN Settings"
@ -1504,36 +1421,31 @@ msgstr "Forbindelse mislykkedes"
msgid "Activation of network connection failed"
msgstr "Aktivering af netværksforbindelse mislykkedes"
#: ../js/ui/status/power.js:61
#: ../js/ui/status/power.js:49
msgid "Power Settings"
msgstr "Indstillinger for strømstyring"
#: ../js/ui/status/power.js:77
#: ../js/ui/status/power.js:65
msgid "Fully Charged"
msgstr "Fuldt opladet"
#. 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 "Udregner…"
#. 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 tilbage (%d %%)"
msgid "%d%02d Remaining (%d%%)"
msgstr "%d%02d tilbage (%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 indtil fuld (%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 indtil fuld (%d%%)"
#. The menu only appears when airplane mode is on, so just
#. statically build it as if it was on, rather than dynamically
@ -1574,6 +1486,10 @@ msgstr "Lydstyrke ændret"
msgid "Volume"
msgstr "Lydstyrke"
#: ../js/ui/status/volume.js:213
msgid "Microphone"
msgstr "Mikrofon"
#: ../js/ui/unlockDialog.js:67
msgid "Log in as another user"
msgstr "Log ind som en anden bruger"
@ -1694,7 +1610,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"
@ -1703,66 +1619,66 @@ msgstr[1] "%u outputs"
#. 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 input"
msgstr[1] "%u inputs"
#: ../src/gvc/gvc-mixer-control.c:2371
#: ../src/gvc/gvc-mixer-control.c:2373
msgid "System Sounds"
msgstr "Systemlyde"
#: ../src/main.c:381
#: ../src/main.c:373
msgid "Print version"
msgstr "Udskriv version"
#: ../src/main.c:387
#: ../src/main.c:379
msgid "Mode used by GDM for login screen"
msgstr "Tilstand brugt af GDM til indlogningskærm"
#: ../src/main.c:393
#: ../src/main.c:385
msgid "Use a specific mode, e.g. \"gdm\" for login screen"
msgstr "Brug en specifik tilstand, f.eks. \"gdm\" til logind-skærm"
#: ../src/main.c:399
#: ../src/main.c:391
msgid "List possible modes"
msgstr "Vis mulige tilstande"
#: ../src/shell-app.c:246
#: ../src/shell-app.c:239
msgctxt "program"
msgid "Unknown"
msgstr "Ukendt"
#: ../src/shell-app.c:487
#: ../src/shell-app.c:480
#, c-format
msgid "Failed to launch “%s”"
msgstr "Kunne ikke køre “%s”"
#: ../src/shell-keyring-prompt.c:730
#: ../src/shell-keyring-prompt.c:742
msgid "Passwords do not match."
msgstr "Adgangskoder er ikke ens."
#: ../src/shell-keyring-prompt.c:738
#: ../src/shell-keyring-prompt.c:750
msgid "Password cannot be blank"
msgstr "Adgangskode må ikke være tom"
#: ../src/shell-polkit-authentication-agent.c:353
#: ../src/shell-polkit-authentication-agent.c:346
msgid "Authentication dialog was dismissed by the user"
msgstr "Godkendelsesdialogen blev afvist af brugeren"
#~ msgid "%s is requesting access to your location."
#~ msgstr "%s spørger efter adgang til din placering."
#~ msgid "GNOME Shell (wayland compositor)"
#~ msgstr "GNOME Shell (wayland-sammensætter)"
#~ msgid "Bluetooth"
#~ msgstr "Bluetooth"
#~ msgid "%d Connected Device"
#~ msgid_plural "%d Connected Devices"
#~ msgstr[0] "%d forbundet enhed"
#~ msgstr[1] "%d forbundne enheder"
#~ msgid "Off"
#~ msgstr "Slukket"
#~ msgid "Authentication required"
#~ msgstr "Godkendelse påkrævet"
@ -1970,6 +1886,9 @@ msgstr "Godkendelsesdialogen blev afvist af brugeren"
#~ msgid "View account"
#~ msgstr "Vis konto"
#~ msgid "Unknown reason"
#~ msgstr "Ukendt årsag"
#~ msgid "Open Calendar"
#~ msgstr "Åbn kalender"
@ -2092,6 +2011,9 @@ msgstr "Godkendelsesdialogen blev afvist af brugeren"
#~ msgid "Device %s wants access to the service '%s'"
#~ msgstr "Enheden %s ønsker adgang til tjenesten \"%s\""
#~ msgid "Always grant access"
#~ msgstr "Giv altid adgang"
#~ msgid "Grant this time only"
#~ msgstr "Giv kun lov denne gang"
@ -2264,6 +2186,9 @@ msgstr "Godkendelsesdialogen blev afvist af brugeren"
#~ msgid "Visibility"
#~ msgstr "Synlighed"
#~ msgid "Send Files to Device…"
#~ msgstr "Send filer til enhed…"
#~ msgid "Set Up a New Device…"
#~ msgstr "Indstil en ny enhed…"
@ -2341,6 +2266,10 @@ msgstr "Godkendelsesdialogen blev afvist af brugeren"
#~ msgstr[0] "%d minut tilbage"
#~ msgstr[1] "%d minutter tilbage"
#~ msgctxt "percent of battery remaining"
#~ msgid "%d%%"
#~ msgstr "%d%%"
#~ msgid "AC Adapter"
#~ msgstr "AC-adapter"

916
po/de.po

File diff suppressed because it is too large Load Diff

509
po/el.po

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

1726
po/eo.po

File diff suppressed because it is too large Load Diff

5728
po/es.po

File diff suppressed because it is too large Load Diff

850
po/eu.po

File diff suppressed because it is too large Load Diff

510
po/fa.po

File diff suppressed because it is too large Load Diff

558
po/fi.po

File diff suppressed because it is too large Load Diff

499
po/fr.po

File diff suppressed because it is too large Load Diff

1630
po/fur.po

File diff suppressed because it is too large Load Diff

162
po/ga.po
View File

@ -1,5 +1,5 @@
# Irish translations for gnome-shell package.
# Copyright (C) 2009-2015 Free Software Foundation, Inc.
# Copyright (C) 2009-2013 Free Software Foundation, Inc.
# This file is distributed under the same license as the gnome-shell package.
# Seán de Búrca <leftmostcat@gmail.com>, 2009-2015.
#
@ -7,8 +7,8 @@ msgid ""
msgstr ""
"Project-Id-Version: gnome-shell.master\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-09-30 22:09-0600\n"
"PO-Revision-Date: 2015-09-30 22:29-0600\n"
"POT-Creation-Date: 2015-09-18 10:05-0600\n"
"PO-Revision-Date: 2015-09-18 10:33-0600\n"
"Last-Translator: Seán de Búrca <leftmostcat@gmail.com>\n"
"Language-Team: Irish <gaeilge-gnulinux@lists.sourceforge.net>\n"
"Language: ga\n"
@ -262,13 +262,14 @@ msgid "Delay focus changes in mouse mode until the pointer stops moving"
msgstr ""
#: ../data/org.gnome.Shell.PortalHelper.desktop.in.h:1
#, fuzzy
msgid "Network Login"
msgstr "Logáil Isteach Líonra"
msgstr "Earráid líonra"
#: ../js/extensionPrefs/main.js:122
#, javascript-format
msgid "There was an error loading the preferences dialog for %s:"
msgstr "Tharla earráid agus luchtú na dialóige sainroghanna do %s:"
msgstr ""
#: ../js/extensionPrefs/main.js:154
msgid "GNOME Shell Extensions"
@ -350,9 +351,9 @@ msgid "Could not parse command:"
msgstr "Níorbh fhéidir ordú a pharsáil:"
#: ../js/misc/util.js:160
#, javascript-format
#, fuzzy, javascript-format
msgid "Execution of “%s” failed:"
msgstr "Theip ar rith %s:"
msgstr "Theip rith '%s':"
#. Translators: Time in 24h format
#: ../js/misc/util.js:191
@ -427,8 +428,9 @@ 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
#: ../js/portalHelper/main.js:85
#, fuzzy
msgid "Web Authentication Redirect"
msgstr ""
msgstr "Fíordheimhniú de Dhíth"
#: ../js/ui/appDisplay.js:794
msgid "Frequently used applications will appear here"
@ -476,7 +478,8 @@ msgstr "Athraigh Cúlra…"
msgid "Display Settings"
msgstr "Socruithe Taispeána"
#: ../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 "Socruithe"
@ -534,15 +537,15 @@ msgstr "S"
#: ../js/ui/calendar.js:566
msgid "Previous month"
msgstr "An mhí roimhe seo"
msgstr ""
#: ../js/ui/calendar.js:576
msgid "Next month"
msgstr "An chéad mhí eile"
msgstr ""
#: ../js/ui/calendar.js:783
msgid "Week %V"
msgstr "Seachtain %V"
msgstr ""
#. Translators: Shown in calendar event list for all day events
#. * Keep it short, best if you can use less then 10 characters
@ -552,33 +555,33 @@ msgctxt "event list time"
msgid "All Day"
msgstr "An Lá ar Fad"
#: ../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 "Imeachtaí"
#: ../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 "Fógraí"
#: ../js/ui/calendar.js:1771
#: ../js/ui/calendar.js:1767
msgid "No Notifications"
msgstr "Gan Fhógra"
#: ../js/ui/calendar.js:1774
#: ../js/ui/calendar.js:1770
msgid "No Events"
msgstr "Gan Imeacht"
@ -684,9 +687,9 @@ msgstr ""
#: ../js/ui/components/networkAgent.js:663
#: ../js/ui/components/networkAgent.js:667
#: ../js/ui/components/networkAgent.js:680
#, javascript-format
#, fuzzy, javascript-format
msgid "A password is required to connect to “%s”."
msgstr "Tá focal faire de dhíth chun ceangal le %s."
msgstr "Tá focal faire de dhíth chun ceangal le '%s'."
#: ../js/ui/components/networkAgent.js:647 ../js/ui/status/network.js:1658
msgid "Network Manager"
@ -715,9 +718,9 @@ msgstr "Tá brón orm, theip sé sin. Bain triail eile as, le do thoil."
#. Translators: this is the other person changing their old IM name to their new
#. IM name.
#: ../js/ui/components/telepathyClient.js:759
#, fuzzy, javascript-format
#, javascript-format
msgid "%s is now known as %s"
msgstr "Tugtar %2$s ar %1$s anois"
msgstr ""
#: ../js/ui/ctrlAltTab.js:29 ../js/ui/viewSelector.js:155
msgid "Windows"
@ -815,7 +818,7 @@ msgstr[4] "Múchfar an córas go huathoibríoch i gceann %d soicind."
#: ../js/ui/endSessionDialog.js:91
msgctxt "checkbox"
msgid "Install pending software updates"
msgstr "Suiteáil nuashonruithe bogearraí ar feitheamh"
msgstr ""
#: ../js/ui/endSessionDialog.js:94 ../js/ui/endSessionDialog.js:111
msgctxt "button"
@ -881,7 +884,7 @@ msgstr "Suiteáil &amp; Múch"
#: ../js/ui/endSessionDialog.js:129
msgctxt "checkbox"
msgid "Power off after updates are installed"
msgstr "Múch tar éis suiteáil nuashonruithe"
msgstr ""
#: ../js/ui/endSessionDialog.js:338
msgid "Running on battery power: please plug in before installing updates."
@ -912,9 +915,9 @@ msgid "Install"
msgstr "Suiteáil"
#: ../js/ui/extensionDownloader.js:204
#, javascript-format
#, fuzzy, javascript-format
msgid "Download and install “%s” from extensions.gnome.org?"
msgstr "Íosluchtaigh agus suiteáil %s ó extensions.gnome.org?"
msgstr "Íosluchtaigh agus suiteáil '%s' ó extensions.gnome.org?"
#: ../js/ui/keyboard.js:741 ../js/ui/status/keyboard.js:713
msgid "Keyboard"
@ -922,12 +925,13 @@ msgstr "Méarchlár"
#. translators: 'Hide' is a verb
#: ../js/ui/legacyTray.js:66
#, fuzzy
msgid "Hide tray"
msgstr "Folaigh tráidire"
msgstr "Folaigh Téacs"
#: ../js/ui/legacyTray.js:107
msgid "Status Icons"
msgstr "Deilbhíní Stádais"
msgstr ""
#: ../js/ui/lookingGlass.js:643
msgid "No extensions installed"
@ -953,7 +957,7 @@ msgstr "Cumasaithe"
#. 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íchumasaithe"
@ -1007,11 +1011,6 @@ msgstr "Scoir"
msgid "Activities"
msgstr "Gníomhartha"
#: ../js/ui/panel.js:650
msgctxt "System menu in the top bar"
msgid "System"
msgstr "Córas"
#: ../js/ui/panel.js:754
msgid "Top Bar"
msgstr "Barra ag an mBarr"
@ -1175,18 +1174,18 @@ msgstr "Socruithe Bluetooth"
#. Translators: this is the number of connected bluetooth devices
#: ../js/ui/status/bluetooth.js:105
#, javascript-format
#, fuzzy, javascript-format
msgid "%d Connected"
msgid_plural "%d Connected"
msgstr[0] "%d Ceangailte"
msgstr[1] "%d Ceangailte"
msgstr[2] "%d Ceangailte"
msgstr[3] "%d Ceangailte"
msgstr[4] "%d Ceangailte"
msgstr[0] "%d Ghléas Ceangailte"
msgstr[1] "%d Ghléas Ceangailte"
msgstr[2] "%d Ghléas Ceangailte"
msgstr[3] "%d nGléas Ceangailte"
msgstr[4] "%d Gléas Ceangailte"
#: ../js/ui/status/bluetooth.js:107
msgid "Not In Use"
msgstr "Níl in Úsáid"
msgstr ""
#: ../js/ui/status/brightness.js:44
msgid "Brightness"
@ -1197,24 +1196,27 @@ msgid "Show Keyboard Layout"
msgstr "Taispeáin Leagan Amach an Mhéarchláir"
#: ../js/ui/status/location.js:71 ../js/ui/status/location.js:177
#, fuzzy
msgid "Location Enabled"
msgstr "Suíomh Cumasaithe"
msgstr "theip an ceangal"
#: ../js/ui/status/location.js:72 ../js/ui/status/location.js:178
msgid "Disable"
msgstr "Díchumasaigh"
#: ../js/ui/status/location.js:73
#, fuzzy
msgid "Privacy Settings"
msgstr "Socruithe Príobháideachais"
msgstr "Socruithe Cumhachta"
#: ../js/ui/status/location.js:176
msgid "Location In Use"
msgstr "Suíomh in Úsáid"
msgstr ""
#: ../js/ui/status/location.js:180
#, fuzzy
msgid "Location Disabled"
msgstr "Suíomh Díchumasaithe"
msgstr "theip an ceangal"
#: ../js/ui/status/location.js:181
msgid "Enable"
@ -1228,46 +1230,46 @@ msgstr "<anaithnid>"
#: ../js/ui/status/network.js:451 ../js/ui/status/network.js:1308
#, javascript-format
msgid "%s Off"
msgstr "%s Múchta"
msgstr ""
#. Translators: %s is a network identifier
#: ../js/ui/status/network.js:454
#, javascript-format
#, fuzzy, javascript-format
msgid "%s Connected"
msgstr "%s Ceangailte"
msgstr "Ceangal"
#. 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
#: ../js/ui/status/network.js:459
#, javascript-format
#, fuzzy, javascript-format
msgid "%s Unmanaged"
msgstr "%s Gan Bhainistiú"
msgstr "gan bhainistiú"
#. Translators: %s is a network identifier
#: ../js/ui/status/network.js:462
#, javascript-format
#, fuzzy, javascript-format
msgid "%s Disconnecting"
msgstr "%s ag Dícheangal"
msgstr "á dhícheangal..."
#. Translators: %s is a network identifier
#: ../js/ui/status/network.js:469 ../js/ui/status/network.js:1300
#, javascript-format
#, fuzzy, javascript-format
msgid "%s Connecting"
msgstr "%s ag Ceangal"
msgstr "Ceangal"
#. 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
#, fuzzy, javascript-format
msgid "%s Requires Authentication"
msgstr "Fíordheimhniú de Dhíth ar %s"
msgstr "Fíordheimhniú DSL"
#. Translators: this is for devices that require some kind of firmware or kernel
#. module, which is missing; %s is a network identifier
#: ../js/ui/status/network.js:480
#, javascript-format
#, fuzzy, javascript-format
msgid "Firmware Missing For %s"
msgstr "Dochtearraí do %s ar Iarraidh"
msgstr "dochtearraí ar iarraidh"
#. 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
@ -1278,13 +1280,14 @@ msgstr "Níl %s ar Fáil"
#. Translators: %s is a network identifier
#: ../js/ui/status/network.js:487
#, javascript-format
#, fuzzy, javascript-format
msgid "%s Connection Failed"
msgstr "Theip Ceangal %s"
msgstr "Theip an ceangal"
#: ../js/ui/status/network.js:503
#, fuzzy
msgid "Wired Settings"
msgstr "Socruithe Sreangaithe"
msgstr "Socruithe"
#: ../js/ui/status/network.js:545 ../js/ui/status/network.js:624
#, fuzzy
@ -1300,9 +1303,9 @@ msgstr ""
#. Translators: this is for a network device that cannot be activated
#. because it's disabled by rfkill (airplane mode); %s is a network identifier
#: ../js/ui/status/network.js:592
#, javascript-format
#, fuzzy, javascript-format
msgid "%s Disabled"
msgstr "%s Díchumasaithe"
msgstr "Díchumasaithe"
#: ../js/ui/status/network.js:632
msgid "Use as Internet connection"
@ -1324,15 +1327,16 @@ msgstr "Mód Eitleáin"
#: ../js/ui/status/network.js:824
msgid "Wi-Fi is Off"
msgstr "Tá Wi-Fi Múchta"
msgstr ""
#: ../js/ui/status/network.js:825
msgid "Wi-Fi needs to be turned on in order to connect to a network."
msgstr ""
#: ../js/ui/status/network.js:826
#, fuzzy
msgid "Turn On Wi-Fi"
msgstr "Cuir Wi-Fi ar Siúl"
msgstr "Cumasaigh"
#: ../js/ui/status/network.js:851
msgid "Wi-Fi Networks"
@ -1370,9 +1374,9 @@ msgstr ""
#. Translators: %s is a network identifier
#: ../js/ui/status/network.js:1311
#, javascript-format
#, fuzzy, javascript-format
msgid "%s Not Connected"
msgstr "%s Gan Cheangal"
msgstr "%d Ghléas Ceangailte"
#: ../js/ui/status/network.js:1411
msgid "connecting..."
@ -1400,8 +1404,9 @@ msgid "VPN"
msgstr "VPN"
#: ../js/ui/status/network.js:1513
#, fuzzy
msgid "VPN Off"
msgstr "VPN Múchta"
msgstr "Múch"
#: ../js/ui/status/network.js:1697
msgid "Connection failed"
@ -1441,8 +1446,9 @@ msgstr "%d%02d go dTí Lán (%d%%)"
#. statically build it as if it was on, rather than dynamically
#. changing the menu contents.
#: ../js/ui/status/rfkill.js:88
#, fuzzy
msgid "Airplane Mode On"
msgstr "Mód Eitleáin ar Siúl"
msgstr "Mód Eitleáin"
#: ../js/ui/status/system.js:343
msgid "Switch User"
@ -1559,7 +1565,7 @@ msgstr ""
#: ../js/ui/windowMenu.js:70
msgid "Always on Top"
msgstr "Ar Barr i gCónaí"
msgstr ""
#: ../js/ui/windowMenu.js:89
msgid "Always on Visible Workspace"
@ -1603,7 +1609,7 @@ msgstr "Féilire 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"
@ -1615,7 +1621,7 @@ msgstr[4] "%u Aschur"
#. 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"
@ -1625,23 +1631,23 @@ msgstr[2] "%u Ionchur"
msgstr[3] "%u nIonchur"
msgstr[4] "%u Ionchur"
#: ../src/gvc/gvc-mixer-control.c:2371
#: ../src/gvc/gvc-mixer-control.c:2373
msgid "System Sounds"
msgstr "Fuaimeanna Córais"
#: ../src/main.c:381
#: ../src/main.c:373
msgid "Print version"
msgstr "Taispeáin leagan"
#: ../src/main.c:387
#: ../src/main.c:379
msgid "Mode used by GDM for login screen"
msgstr ""
#: ../src/main.c:393
#: ../src/main.c:385
msgid "Use a specific mode, e.g. \"gdm\" for login screen"
msgstr ""
#: ../src/main.c:399
#: ../src/main.c:391
msgid "List possible modes"
msgstr ""

1517
po/gd.po

File diff suppressed because it is too large Load Diff

378
po/gl.po
View File

@ -6,22 +6,21 @@
# Antón Méixome <meixome@certima.net>, 2009.
# Fran Diéguez <frandieguez@gnome.org>, 2009, 2010, 2011, 2012.
# Leandro Regueiro <leandro.regueiro@gmail.com>, 2012.
# Fran Dieguez <frandieguez@gnome.org>, 2012, 2013, 2014, 2015, 2016.
#
# Fran Dieguez <frandieguez@gnome.org>, 2012, 2013, 2014, 2015.
msgid ""
msgstr ""
"Project-Id-Version: gnome-shell master\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2016-03-12 13:15+0100\n"
"PO-Revision-Date: 2016-03-12 13:16+0100\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: Galician <gnome-l10n-gl@gnome.org>\n"
"Language-Team: gnome-l10n-gl@gnome.org\n"
"Language: gl\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Gtranslator 2.91.7\n"
"X-Generator: Virtaal 0.7.1\n"
"X-Project-Style: gnome\n"
#: ../data/50-gnome-shell-system.xml.in.h:1
@ -48,6 +47,15 @@ msgstr "Mostrar todos os aplicativos"
msgid "Open the application menu"
msgstr "Abrir o menú de aplicativo"
#: ../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 "Xestor de xanelas e inicio de aplicativos"
#: ../data/gnome-shell-extension-prefs.desktop.in.in.h:1
msgid "GNOME Shell Extension Preferences"
msgstr "Preferencias das extensións de GNOME Shell"
@ -56,13 +64,9 @@ msgstr "Preferencias das extensións de GNOME Shell"
msgid "Configure GNOME Shell Extensions"
msgstr "Configure as extensións de 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 "Xestor de xanelas e inicio de aplicativos"
#: ../data/gnome-shell-wayland.desktop.in.in.h:1
msgid "GNOME Shell (wayland compositor)"
msgstr "GNOME Shell (compositor de wayland)"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:1
msgid "Enable internal tools useful for developers and testers from Alt-F2"
@ -170,95 +174,76 @@ msgstr ""
"estado por omisión da opción. "
#: ../data/org.gnome.shell.gschema.xml.in.in.h:18
msgid ""
"Whether the default Bluetooth adapter had set up devices associated to it"
msgstr ""
"Indica se o adaptador de Bluetooth por omisión ten configurados dispositivos "
"asociados a el"
#: ../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 ""
"O shell só mostrará o elemento de menú de Bluetooth se hai un adaptador de "
"Bluetooth conectado ou se houbera dispositivos asociados co adaptador "
"principal. Isto restabelecerase se o adaptador por omisión non se ve ou non "
"ten dispositivos asociados a el."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:20
msgid "Show the week date in the calendar"
msgstr "Mostrar a data da semana no calendario"
#: ../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 "Se é verdadeiro, móstrase a data da semana ISO no calendario."
#: ../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 "Combinación de teclas para abrir o menú de aplicativo"
#: ../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 "Combinación de teclas para abrir o menú de aplicativo."
#: ../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 "Combinación de teclas para abrir a vista «Mostrar aplicativos»"
#: ../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 ""
"Combinación de teclas para abrir a vista \"Mostrar aplicativos\" da Vista "
"xera de Actividades."
#: ../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 "Combinación de teclas para abrir a Vista xeral"
#: ../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 "Combinación de teclas para abrir a Vista de actividades."
#: ../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 ""
"Combinación de teclas para trocar a visibilidade da área de notificacións"
#: ../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 ""
"Combinación de teclas para trocar a visibilidade da área de notificacións."
#: ../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 "Combinación de teclas para enfocar a notificación activa"
#: ../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 "Combinación de teclas para enfocar a notificación activa."
#: ../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 "Atallo de teclado que pausa e reinicia todo os xemelgos executándose."
#: ../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 "Que teclado usar"
#: ../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 "O tipo de teclado a usar."
#: ../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 "Restrinxir o trocador ao espazo de traballo actual."
#: ../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."
@ -266,11 +251,11 @@ msgstr ""
"Se é verdadeiro, só se mostran no trocador os aplicativos que teñen xanelas "
"no espazo de traballo actual. Doutra maneira inclúense todos os aplicativos."
#: ../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 "O modo da icona do aplicativo."
#: ../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-"
@ -280,7 +265,7 @@ msgstr ""
"son «thumbnail-only» (mostra unha miniatura da xanela, «app-icon-only» (só "
"mostra a icona do aplicativo) ou «both» (móstranse ambas cosas)."
#: ../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."
@ -288,29 +273,29 @@ msgstr ""
"Se é verdadeiro, só se mostrarán no trocador as xanelas do espazo de "
"traballo actual. Doutra maneira inclúense todos os aplicativos."
#: ../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 "Anexar o diálogo modal á xanela pai"
#: ../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 ""
"Esta chave sobrescribe a chave en org.gnome.mutter cando executa GNOME Shell."
#: ../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 "Activar o mosaico nos bordos ao arrastrar xanelas aos bordos da xanela"
#: ../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 "Os espazos de traballo xestiónanse dinamicamente"
#: ../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 "Espazos de traballo só no monitor primario"
#: ../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 "Atrasar os cambios de foco no modo rato até que o punteiro se pare"
@ -318,52 +303,51 @@ msgstr "Atrasar os cambios de foco no modo rato até que o punteiro se pare"
msgid "Network Login"
msgstr "Inicio de sesión en rede"
#: ../js/extensionPrefs/main.js:117
#: ../js/extensionPrefs/main.js:122
#, javascript-format
msgid "There was an error loading the preferences dialog for %s:"
msgstr "Produciuse un erro ao cargar o diálogo de preferenzas para %s:"
#: ../js/extensionPrefs/main.js:149
#: ../js/extensionPrefs/main.js:154
msgid "GNOME Shell Extensions"
msgstr "Extensións de GNOME Shell"
#: ../js/gdm/authPrompt.js:147 ../js/ui/audioDeviceSelection.js:71
#: ../js/ui/components/networkAgent.js:145
#: ../js/gdm/authPrompt.js:147 ../js/ui/components/networkAgent.js:145
#: ../js/ui/components/polkitAgent.js:179 ../js/ui/endSessionDialog.js:452
#: ../js/ui/extensionDownloader.js:195 ../js/ui/shellMountOperation.js:399
#: ../js/ui/status/network.js:916
msgid "Cancel"
msgstr "Cancelar"
#: ../js/gdm/authPrompt.js:169 ../js/gdm/authPrompt.js:216
#: ../js/gdm/authPrompt.js:448
#: ../js/gdm/authPrompt.js:169 ../js/gdm/authPrompt.js:215
#: ../js/gdm/authPrompt.js:435
msgid "Next"
msgstr "Seguinte"
#: ../js/gdm/authPrompt.js:212 ../js/ui/shellMountOperation.js:403
#: ../js/gdm/authPrompt.js:211 ../js/ui/shellMountOperation.js:403
#: ../js/ui/unlockDialog.js:59
msgid "Unlock"
msgstr "Desbloquear"
#: ../js/gdm/authPrompt.js:214
#: ../js/gdm/authPrompt.js:213
msgctxt "button"
msgid "Sign In"
msgstr "Iniciar sesión"
#: ../js/gdm/loginDialog.js:285
#: ../js/gdm/loginDialog.js:281
msgid "Choose Session"
msgstr "Escolla unha sesión"
#. translators: this message is shown below the user list on the
#. login screen. It can be activated to reveal an entry for
#. manually entering the username.
#: ../js/gdm/loginDialog.js:435
#: ../js/gdm/loginDialog.js:431
msgid "Not listed?"
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:854
#: ../js/gdm/loginDialog.js:847
#, javascript-format
msgid "(e.g., user or %s)"
msgstr "(p.ex., usuario ou %s)"
@ -371,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:859 ../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:1196
#: ../js/gdm/loginDialog.js:1181
msgid "Login Window"
msgstr "Xanela de inicio de sesión"
@ -512,36 +496,16 @@ msgstr "Engadir aos favoritos"
msgid "Show Details"
msgstr "Mostrar detalles"
#: ../js/ui/appFavorites.js:134
#: ../js/ui/appFavorites.js:132
#, javascript-format
msgid "%s has been added to your favorites."
msgstr "%s foi engadido aos seus favoritos."
#: ../js/ui/appFavorites.js:168
#: ../js/ui/appFavorites.js:166
#, javascript-format
msgid "%s has been removed from your favorites."
msgstr "%s retirouse dos seus marcadores."
#: ../js/ui/audioDeviceSelection.js:59
msgid "Select Audio Device"
msgstr "Seleccionar dispositivo de son"
#: ../js/ui/audioDeviceSelection.js:69
msgid "Sound Settings"
msgstr "Preferencias de son"
#: ../js/ui/audioDeviceSelection.js:78
msgid "Headphones"
msgstr "Cascos auriculares"
#: ../js/ui/audioDeviceSelection.js:80
msgid "Headset"
msgstr "Auriculares"
#: ../js/ui/audioDeviceSelection.js:82 ../js/ui/status/volume.js:213
msgid "Microphone"
msgstr "Micrófono"
#: ../js/ui/backgroundMenu.js:19
msgid "Change Background…"
msgstr "Cambiar fondo de escritorio…"
@ -550,12 +514,13 @@ 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"
#. Translators: Enter 0-6 (Sunday-Saturday) for non-work days. Examples: "0" (Sunday) "6" (Saturday) "06" (Sunday and Saturday).
#: ../js/ui/calendar.js:47
#: ../js/ui/calendar.js:55
msgctxt "calendar-no-work"
msgid "06"
msgstr "06"
@ -565,96 +530,94 @@ 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:76
#: ../js/ui/calendar.js:84
msgctxt "grid sunday"
msgid "S"
msgstr "D"
#. Translators: Calendar grid abbreviation for Monday
#: ../js/ui/calendar.js:78
#: ../js/ui/calendar.js:86
msgctxt "grid monday"
msgid "M"
msgstr "L"
#. Translators: Calendar grid abbreviation for Tuesday
#: ../js/ui/calendar.js:80
#: ../js/ui/calendar.js:88
msgctxt "grid tuesday"
msgid "T"
msgstr "M"
#. Translators: Calendar grid abbreviation for Wednesday
#: ../js/ui/calendar.js:82
#: ../js/ui/calendar.js:90
msgctxt "grid wednesday"
msgid "W"
msgstr "W"
#. Translators: Calendar grid abbreviation for Thursday
#: ../js/ui/calendar.js:84
#: ../js/ui/calendar.js:92
msgctxt "grid thursday"
msgid "T"
msgstr "X"
#. Translators: Calendar grid abbreviation for Friday
#: ../js/ui/calendar.js:86
#: ../js/ui/calendar.js:94
msgctxt "grid friday"
msgid "F"
msgstr "V"
#. Translators: Calendar grid abbreviation for Saturday
#: ../js/ui/calendar.js:88
#: ../js/ui/calendar.js:96
msgctxt "grid saturday"
msgid "S"
msgstr "S"
#: ../js/ui/calendar.js:416
#: ../js/ui/calendar.js:566
msgid "Previous month"
msgstr "Anterior mes"
#: ../js/ui/calendar.js:426
#: ../js/ui/calendar.js:576
msgid "Next month"
msgstr "Seguinte mes"
#: ../js/ui/calendar.js:579
#, no-javascript-format
msgctxt "date day number format"
msgid "%d"
msgstr "%d"
#: ../js/ui/calendar.js:634
#: ../js/ui/calendar.js:783
msgid "Week %V"
msgstr "Semana %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:695
#: ../js/ui/calendar.js:1188
msgctxt "event list time"
msgid "All Day"
msgstr "Todo o día"
#: ../js/ui/calendar.js:821
#: ../js/ui/calendar.js:1291
msgid "Clear section"
msgstr "Limpar sección"
#: ../js/ui/calendar.js:1518
msgid "Events"
msgstr "Eventos"
#: ../js/ui/calendar.js:830
#: ../js/ui/calendar.js:1527
msgctxt "calendar heading"
msgid "%A, %B %d"
msgstr "%A, %d de %B"
#: ../js/ui/calendar.js:834
#: ../js/ui/calendar.js:1531
msgctxt "calendar heading"
msgid "%A, %B %d, %Y"
msgstr "%A, %d de %B de %Y"
#: ../js/ui/calendar.js:919
#: ../js/ui/calendar.js:1616
msgid "Notifications"
msgstr "Notificacións"
#: ../js/ui/calendar.js:1070
#: ../js/ui/calendar.js:1767
msgid "No Notifications"
msgstr "Non hai notificacións"
#: ../js/ui/calendar.js:1073
#: ../js/ui/calendar.js:1770
msgid "No Events"
msgstr "Non hai eventos"
@ -666,7 +629,7 @@ msgstr "Unidade externa conectada"
msgid "External drive disconnected"
msgstr "Unidade externa desconectada"
#: ../js/ui/components/autorunManager.js:355
#: ../js/ui/components/autorunManager.js:354
#, javascript-format
msgid "Open with %s"
msgstr "Abrir con %s"
@ -978,11 +941,11 @@ msgid "Keyboard"
msgstr "Teclado"
#. translators: 'Hide' is a verb
#: ../js/ui/legacyTray.js:65
#: ../js/ui/legacyTray.js:66
msgid "Hide tray"
msgstr "Ocultar bandexa"
#: ../js/ui/legacyTray.js:106
#: ../js/ui/legacyTray.js:107
msgid "Status Icons"
msgstr "Iconas de estado"
@ -1010,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"
@ -1034,26 +997,10 @@ msgstr "Ver fonte"
msgid "Web Page"
msgstr "Páxina web"
#: ../js/ui/messageList.js:543
msgid "Clear section"
msgstr "Limpar sección"
#: ../js/ui/messageTray.js:1486
msgid "System Information"
msgstr "Información do sistema"
#: ../js/ui/mpris.js:194
msgid "Unknown artist"
msgstr "Artista descoñecido"
#: ../js/ui/mpris.js:195
msgid "Unknown title"
msgstr "Título descoñecido"
#: ../js/ui/mpris.js:217
msgid "Media"
msgstr "Multimedia"
#: ../js/ui/overview.js:84
msgid "Undo"
msgstr "Desfacer"
@ -1070,22 +1017,17 @@ msgstr "Vista xeral"
msgid "Type to search…"
msgstr "Escriba para buscar…"
#: ../js/ui/panel.js:358
#: ../js/ui/panel.js:352
msgid "Quit"
msgstr "Saír"
#. 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 "Actividades"
#: ../js/ui/panel.js:695
msgctxt "System menu in the top bar"
msgid "System"
msgstr "Sistema"
#: ../js/ui/panel.js:807
#: ../js/ui/panel.js:754
msgid "Top Bar"
msgstr "Barra superior"
@ -1098,15 +1040,15 @@ msgstr "Barra superior"
msgid "toggle-switch-us"
msgstr "toggle-switch-intl"
#: ../js/ui/runDialog.js:71
#: ../js/ui/runDialog.js:70
msgid "Enter a Command"
msgstr "Escriba unha orde"
#: ../js/ui/runDialog.js:111 ../js/ui/windowMenu.js:162
#: ../js/ui/runDialog.js:110 ../js/ui/windowMenu.js:162
msgid "Close"
msgstr "Pechar"
#: ../js/ui/runDialog.js:282
#: ../js/ui/runDialog.js:281
msgid "Restarting…"
msgstr "Restimando…"
@ -1229,41 +1171,29 @@ msgstr "Contraste alto"
msgid "Large Text"
msgstr "Texto grande"
#: ../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 "Apagar"
#: ../js/ui/status/bluetooth.js:56
#: ../js/ui/status/bluetooth.js:54
msgid "Bluetooth Settings"
msgstr "Preferencias do Bluetooth"
#. 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 conectado"
msgstr[1] "%d conectados"
#: ../js/ui/status/bluetooth.js:138
msgid "Off"
msgstr "Desactivar"
#: ../js/ui/status/bluetooth.js:140
#: ../js/ui/status/bluetooth.js:107
msgid "Not In Use"
msgstr "Non está en uso"
#: ../js/ui/status/bluetooth.js:142 ../js/ui/status/network.js:1279
msgid "Turn On"
msgstr "Activar"
#: ../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 "Apagar"
#: ../js/ui/status/brightness.js:44
msgid "Brightness"
msgstr "Brillo"
@ -1272,50 +1202,30 @@ msgstr "Brillo"
msgid "Show Keyboard Layout"
msgstr "Mostrar a distribución do teclado"
#: ../js/ui/status/location.js:107 ../js/ui/status/location.js:215
#: ../js/ui/status/location.js:71 ../js/ui/status/location.js:177
msgid "Location Enabled"
msgstr "Localización activada"
#: ../js/ui/status/location.js:108 ../js/ui/status/location.js:216
#: ../js/ui/status/location.js:72 ../js/ui/status/location.js:178
msgid "Disable"
msgstr "Desactivar"
#: ../js/ui/status/location.js:109
#: ../js/ui/status/location.js:73
msgid "Privacy Settings"
msgstr "Preferencias da privacidade"
#: ../js/ui/status/location.js:214
#: ../js/ui/status/location.js:176
msgid "Location In Use"
msgstr "Localización en uso"
#: ../js/ui/status/location.js:218
#: ../js/ui/status/location.js:180
msgid "Location Disabled"
msgstr "Localización desactivada"
#: ../js/ui/status/location.js:219
#: ../js/ui/status/location.js:181
msgid "Enable"
msgstr "Activar"
#: ../js/ui/status/location.js:426
msgid "Deny Access"
msgstr "Denegar acceso"
#: ../js/ui/status/location.js:429
msgid "Grant Access"
msgstr "Conceder acceso"
#. Translators: %s is an application name
#: ../js/ui/status/location.js:435
#, javascript-format
msgid "Give %s access to your location?"
msgstr "Darlle acceso a %s á súa localización?"
#: ../js/ui/status/location.js:437
msgid "Location access can be changed at any time from the privacy settings."
msgstr ""
"Pode cambiar o acceso á localización en calquera momento desde as "
"preferencias de privacidade."
#: ../js/ui/status/network.js:101
msgid "<unknown>"
msgstr "<descoñecido>"
@ -1451,6 +1361,10 @@ msgstr "Seleccione unha rede"
msgid "Wi-Fi Settings"
msgstr "Preferencias da WiFi"
#: ../js/ui/status/network.js:1279
msgid "Turn On"
msgstr "Activar"
#. Translators: %s is a network identifier
#: ../js/ui/status/network.js:1296
#, javascript-format
@ -1500,36 +1414,31 @@ msgstr "Produciuse un fallo na conexión"
msgid "Activation of network connection failed"
msgstr "Produciuse un fallo na activación da conexión de rede"
#: ../js/ui/status/power.js:61
#: ../js/ui/status/power.js:49
msgid "Power Settings"
msgstr "Preferencias de enerxía"
#: ../js/ui/status/power.js:77
#: ../js/ui/status/power.js:65
msgid "Fully Charged"
msgstr "Carga completa"
#. 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 "Estimando…"
#. 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 Faltan (%d%%)"
msgid "%d%02d Remaining (%d%%)"
msgstr "Faltan %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%%)"
msgstr "%d%02d ate cargado (%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 ate cargado (%d%%)"
#. The menu only appears when airplane mode is on, so just
#. statically build it as if it was on, rather than dynamically
@ -1570,6 +1479,10 @@ msgstr "Volume cambiado"
msgid "Volume"
msgstr "Volume"
#: ../js/ui/status/volume.js:213
msgid "Microphone"
msgstr "Micrófono"
#: ../js/ui/unlockDialog.js:67
msgid "Log in as another user"
msgstr "Iniciar sesión como outro usuario"
@ -1690,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"
@ -1699,68 +1612,68 @@ 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"
#: ../src/shell-app.c:246
#: ../src/shell-app.c:239
msgctxt "program"
msgid "Unknown"
msgstr "Descoñecido"
#: ../src/shell-app.c:487
#: ../src/shell-app.c:480
#, c-format
msgid "Failed to launch “%s”"
msgstr "Produciuse un erro ao iniciar «%s»"
#: ../src/shell-keyring-prompt.c:730
#: ../src/shell-keyring-prompt.c:742
msgid "Passwords do not match."
msgstr "Os contrasinais non coinciden."
#: ../src/shell-keyring-prompt.c:738
#: ../src/shell-keyring-prompt.c:750
msgid "Password cannot be blank"
msgstr "O contrasinal non pode estar baleiro"
#: ../src/shell-polkit-authentication-agent.c:353
#: ../src/shell-polkit-authentication-agent.c:346
msgid "Authentication dialog was dismissed by the user"
msgstr "O usuario rexeitou o diálogo de autenticación"
#~ msgid "%s is requesting access to your location."
#~ msgstr "%s está solicitando acceso á súa localización."
#~ msgid "GNOME Shell (wayland compositor)"
#~ msgstr "GNOME Shell (compositor de wayland)"
#~ msgid "Bluetooth"
#~ msgstr "Bluetooth"
#~ msgid "%d Connected Device"
#~ msgid_plural "%d Connected Devices"
#~ msgstr[0] "%d dispositivo conectado"
#~ msgstr[1] "%d dispositivos conectados"
#~ msgid "Off"
#~ msgstr "Desactivar"
#~ msgid "Authentication required"
#~ msgstr "Requírese autenticación"
@ -1912,6 +1825,9 @@ msgstr "O usuario rexeitou o diálogo de autenticación"
#~ msgid "View account"
#~ msgstr "Ver conta"
#~ msgid "Unknown reason"
#~ msgstr "Razón descoñecida"
#~ msgid "Show the message list"
#~ msgstr "Mostrar a lista de mensaxes"
@ -2086,6 +2002,9 @@ msgstr "O usuario rexeitou o diálogo de autenticación"
#~ msgid "Device %s wants access to the service '%s'"
#~ msgstr "O dispositivo %s quere acceder ao servizo «%s»"
#~ msgid "Always grant access"
#~ msgstr "Conceder acceso sempre"
#~ msgid "Grant this time only"
#~ msgstr "Conceder só esta vez"
@ -2253,6 +2172,9 @@ msgstr "O usuario rexeitou o diálogo de autenticación"
#~ msgid "Visibility"
#~ msgstr "Visibilidade"
#~ msgid "Send Files to Device…"
#~ msgstr "Enviar ficheiros ao dispositivo…"
#~ msgid "Set Up a New Device…"
#~ msgstr "Configurar un dispositivo novo…"
@ -2306,6 +2228,10 @@ msgstr "O usuario rexeitou o diálogo de autenticación"
#~ msgstr[0] "Queda %d minuto"
#~ msgstr[1] "Quedan %d minutos"
#~ msgctxt "percent of battery remaining"
#~ msgid "%d%%"
#~ msgstr "%d%%"
#~ msgid "AC Adapter"
#~ msgstr "Adaptador de corrente"

394
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: 2016-03-11 14:49+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"
@ -310,52 +297,51 @@ msgstr "Delay focus changes in mouse mode until the pointer stops moving"
#: ../data/org.gnome.Shell.PortalHelper.desktop.in.h:1
msgid "Network Login"
msgstr "Network Login"
#: ../js/extensionPrefs/main.js:122
#, javascript-format
msgid "There was an error loading the preferences dialog for %s:"
msgstr "אירעה שגיאה בעת טעינת דו־שיח ההעדפות עבור %s:"
#: ../js/extensionPrefs/main.js:154
msgid "GNOME Shell Extensions"
msgstr "הרחבות GNOME Shell"
#: ../js/gdm/authPrompt.js:147 ../js/ui/audioDeviceSelection.js:71
#: ../js/gdm/authPrompt.js:147 ../js/ui/components/networkAgent.js:145
#: ../js/ui/components/polkitAgent.js:179 ../js/ui/endSessionDialog.js:452
#: ../js/ui/extensionDownloader.js:195 ../js/ui/shellMountOperation.js:399
#: ../js/ui/status/network.js:916
msgid "Cancel"
msgstr "ביטול"
#: ../js/gdm/authPrompt.js:169 ../js/gdm/authPrompt.js:216
#: ../js/gdm/authPrompt.js:169 ../js/gdm/authPrompt.js:215
#: ../js/gdm/authPrompt.js:435
msgid "Next"
msgstr "הבא"
#: ../js/gdm/authPrompt.js:211 ../js/ui/shellMountOperation.js:403
#: ../js/ui/unlockDialog.js:59
msgid "Unlock"
msgstr "שחרור"
#: ../js/gdm/authPrompt.js:213
msgctxt "button"
msgid "Sign In"
msgstr "כניסה"
#: ../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.
#. 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
#. 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)"
@ -363,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 "חלון כניסה"
@ -504,36 +490,16 @@ 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."
msgstr "%s הוסר מהמועדפים שלך."
#: ../js/ui/audioDeviceSelection.js:59
msgid "Select Audio Device"
msgstr "בחירת התקן שמע"
#: ../js/ui/audioDeviceSelection.js:69
msgid "Sound Settings"
msgstr "הגדרות שמע"
#: ../js/ui/audioDeviceSelection.js:78
msgid "Headphones"
msgstr "אזניות"
#: ../js/ui/audioDeviceSelection.js:80
msgid "Headset"
msgstr "אזניות עם מיקרופון"
#: ../js/ui/audioDeviceSelection.js:82 ../js/ui/status/volume.js:213
msgid "Microphone"
msgstr "מיקרופון"
#: ../js/ui/backgroundMenu.js:19
msgid "Change Background…"
@ -542,12 +508,13 @@ 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 "הגדרות"
#. 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"
@ -557,96 +524,94 @@ msgstr "65"
#. *
#. * 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"
msgstr "ש"
#: ../js/ui/calendar.js:566
msgid "Previous month"
msgstr "חודש קודם"
#: ../js/ui/calendar.js:576
msgid "Next month"
msgstr "חודש הבא"
#: ../js/ui/calendar.js:579
#, no-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: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 "אין אירועים"
@ -658,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"
@ -964,11 +929,11 @@ msgid "Keyboard"
msgid "Keyboard"
msgstr "מקלדת"
#. translators: 'Hide' is a verb
#. translators: 'Hide' is a verb
#: ../js/ui/legacyTray.js:66
msgid "Hide tray"
msgstr "הסתרת המגש"
#: ../js/ui/legacyTray.js:107
msgid "Status Icons"
msgstr "סמלי מצב"
@ -996,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 "מנוטרל"
@ -1020,26 +985,10 @@ msgstr "צפייה במקור"
#: ../js/ui/lookingGlass.js:758
msgid "Web Page"
msgstr "דף אינטרנט"
#: ../js/ui/messageList.js:543
msgid "Clear section"
msgstr "ניקוי מקטע"
#: ../js/ui/messageTray.js:1486
msgid "System Information"
msgstr "פרטי המערכת"
#: ../js/ui/mpris.js:194
msgid "Unknown artist"
msgstr "אמן לא ידוע"
#: ../js/ui/mpris.js:195
msgid "Unknown title"
msgstr "כותרת לא ידועה"
#: ../js/ui/mpris.js:217
msgid "Media"
msgstr "מדיה"
#: ../js/ui/overview.js:84
msgid "Undo"
@ -1056,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 "הסרגל העליון"
@ -1084,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 "מופעל מחדש…"
@ -1217,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"
@ -1260,48 +1192,30 @@ msgstr "בהירות"
#: ../js/ui/status/keyboard.js:736
msgid "Show Keyboard Layout"
msgstr "הצגת פריסת המקלדת"
#: ../js/ui/status/location.js:71 ../js/ui/status/location.js:177
msgid "Location Enabled"
msgstr "איכון מאופשר"
#: ../js/ui/status/location.js:72 ../js/ui/status/location.js:178
msgid "Disable"
msgstr "השבתה"
#: ../js/ui/status/location.js:73
msgid "Privacy Settings"
msgstr "הגדרות פרטיות"
#: ../js/ui/status/location.js:176
msgid "Location In Use"
msgstr "איכון בשימוש"
#: ../js/ui/status/location.js:180
msgid "Location Disabled"
msgstr "איכון מושבת"
#: ../js/ui/status/location.js:181
msgid "Enable"
msgstr "אפשור"
#: ../js/ui/status/location.js:426
msgid "Deny Access"
msgstr "מניעת גישה"
#: ../js/ui/status/location.js:429
msgid "Grant Access"
msgstr "אפשור גישה"
#. Translators: %s is an application name
#: ../js/ui/status/location.js:435
#, javascript-format
msgid "Give %s access to your location?"
msgstr "לתת ליישום %s גישה למיקום שלך?"
#: ../js/ui/status/location.js:437
msgid "Location access can be changed at any time from the privacy settings."
msgstr "ניתן לשנות בכל עת את הרשאות הגישה למיקום שלך מהגדרות הפרטיות."
#: ../js/ui/status/network.js:101
msgid "<unknown>"
@ -1437,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
@ -1486,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
@ -1556,6 +1469,10 @@ msgstr "עצמת השמע השתנתה"
#: ../js/ui/status/volume.js:162
msgid "Volume"
msgstr "עצמה"
#: ../js/ui/status/volume.js:213
msgid "Microphone"
msgstr "מיקרופון"
#: ../js/ui/unlockDialog.js:67
msgid "Log in as another user"
@ -1677,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"
@ -1686,60 +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 "%s is requesting access to your location."
#~ msgstr "%s דורש גישה למיקום שלך."
#~ msgid "GNOME Shell (wayland compositor)"
#~ msgid "Bluetooth"
#~ msgstr "Bluetooth"
# javascript-format
@ -1747,6 +1661,9 @@ msgstr "המשתמש בחר להתעלם מתיבת דו־שיח האימות"
#~ msgid_plural "%d Connected Devices"
#~ msgstr[0] "התקן אחד מחובר"
#~ msgstr[1] "%d התקנים מחוברים"
#~ msgid "Off"
#~ msgstr "כבוי"
#~ msgid "Authentication required"
#~ msgstr "נדרש אימות"
@ -1893,6 +1810,9 @@ msgstr "המשתמש בחר להתעלם מתיבת דו־שיח האימות"
#~ msgid "View account"
#~ msgstr "צפייה בחשבון"
#~ msgid "Unknown reason"
#~ msgstr "סיבה לא ידועה"
#~ msgid "Show the message list"
#~ msgstr "הצגת רשימת הודעות"
@ -2086,6 +2006,9 @@ msgstr "המשתמש בחר להתעלם מתיבת דו־שיח האימות"
#~ msgid "Device %s wants access to the service '%s'"
#~ msgstr "ההתקן %s מעוניין לגשת אל השירות '%s'"
#~ msgid "Always grant access"
#~ msgstr "תמיד להעניק גישה"
#~ msgid "Grant this time only"
#~ msgstr "הענקת גישה הפעם בלבד"
@ -2253,6 +2176,9 @@ msgstr "המשתמש בחר להתעלם מתיבת דו־שיח האימות"
#~ msgid "Visibility"
#~ msgstr "הצגה"
#~ msgid "Send Files to Device…"
#~ msgstr "שליחת קובץ להתקן…"
#~ msgid "Set Up a New Device…"
#~ msgstr "הגדרת התקן חדש…"
@ -2331,6 +2257,10 @@ msgstr "המשתמש בחר להתעלם מתיבת דו־שיח האימות"
#~ msgstr[0] "דקה אחת נותרה"
#~ msgstr[1] "%d דקות נותרו"
#~ msgstr[2] "שתי דקות נותרו"
#~ msgctxt "percent of battery remaining"
#~ msgid "%d%%"
#~ msgstr "%d%%"
#~ msgid "AC Adapter"
#~ msgstr "מתאם חשמל"

550
po/hu.po

File diff suppressed because it is too large Load Diff

516
po/id.po

File diff suppressed because it is too large Load Diff

856
po/is.po

File diff suppressed because it is too large Load Diff

524
po/it.po

File diff suppressed because it is too large Load Diff

501
po/ja.po

File diff suppressed because it is too large Load Diff

520
po/kk.po

File diff suppressed because it is too large Load Diff

513
po/ko.po

File diff suppressed because it is too large Load Diff

571
po/lt.po

File diff suppressed because it is too large Load Diff

377
po/lv.po
View File

@ -5,14 +5,14 @@
# Rudolfs <rudolfs.mazurs@gmail.com>, 2011.
# Rūdofls Mazurs <rudolfs.mazurs@gmail.com>, 2011, 2012, 2013, 2014.
# Pēteris Krišjānis <pecisk@gmail.com>, 2011.
# Rūdolfs Mazurs <rudolfs.mazurs@gmail.com>, 2014, 2015, 2016.
# Rūdolfs Mazurs <rudolfs.mazurs@gmail.com>, 2014, 2015.
msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
"shell&keywords=I18N+L10N&component=general\n"
"POT-Creation-Date: 2016-03-20 10:24+0000\n"
"PO-Revision-Date: 2016-03-20 21:26+0200\n"
"POT-Creation-Date: 2015-09-20 08:21+0000\n"
"PO-Revision-Date: 2015-09-20 22:00+0300\n"
"Last-Translator: Rūdolfs Mazurs <rudolfs.mazurs@gmail.com>\n"
"Language-Team: Latvian <lata-l10n@googlegroups.com>\n"
"Language: lv\n"
@ -21,7 +21,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : "
"2);\n"
"X-Generator: Lokalize 2.0\n"
"X-Generator: Lokalize 1.5\n"
#: ../data/50-gnome-shell-system.xml.in.h:1
msgid "System"
@ -47,6 +47,15 @@ msgstr "Rādīt visas lietotnes"
msgid "Open the application menu"
msgstr "Atvērt lietotnes izvēlni"
#: ../data/gnome-shell.desktop.in.in.h:1
msgid "GNOME Shell"
msgstr "GNOME čaula"
#: ../data/gnome-shell.desktop.in.in.h:2
#: ../data/gnome-shell-wayland.desktop.in.in.h:2
msgid "Window management and application launching"
msgstr "Logu pārvaldība un lietotņu palaišana"
#: ../data/gnome-shell-extension-prefs.desktop.in.in.h:1
msgid "GNOME Shell Extension Preferences"
msgstr "GNOME Shell paplašinājumu iestatījumi"
@ -55,13 +64,9 @@ msgstr "GNOME Shell paplašinājumu iestatījumi"
msgid "Configure GNOME Shell Extensions"
msgstr "Konfigurēt GNOME Shell paplašinājumus"
#: ../data/org.gnome.Shell.desktop.in.in.h:1
msgid "GNOME Shell"
msgstr "GNOME čaula"
#: ../data/org.gnome.Shell.desktop.in.in.h:2
msgid "Window management and application launching"
msgstr "Logu pārvaldība un lietotņu palaišana"
#: ../data/gnome-shell-wayland.desktop.in.in.h:1
msgid "GNOME Shell (wayland compositor)"
msgstr "GNOME čaula (wayland kompozitors)"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:1
msgid "Enable internal tools useful for developers and testers from Alt-F2"
@ -166,93 +171,75 @@ msgstr ""
"noklusējuma stāvokli."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:18
msgid ""
"Whether the default Bluetooth adapter had set up devices associated to it"
msgstr ""
"Vai noklusējuma Bluetooth adapteram ir iestatītas ar to asociētas ierīces"
#: ../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 ""
"Čaula rādīs Bluetooth izvēlnes vienumu tikai tad, ja Bluetooth adapters ir "
"ieslēgts vai ja ir iestatītas ierīces, kas i saistītas ar noklusējuma "
"adapteri. Tas tiks atstatīts, ja noklusējuma adapters jebkad tiks redzēts "
"bez ar to saistītām ierīcēm."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:20
msgid "Show the week date in the calendar"
msgstr "Kalendārā rādīt nedēļas datumu"
#: ../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 "Ja patiess, kalendārā rādīt ISO nedēļas datumus."
#: ../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 "Taustiņu sasaiste, kas atver lietotnes izvēlni"
#: ../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 "Taustiņu sasaiste, kas atver lietotnes izvēlni."
#: ../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 "Taustiņu sasaiste, kas atver “Rādīt lietotnes” skatu"
#: ../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 ""
"Taustiņu sasaiste, kas atver “Rādīt lietotnes” aktivitāšu pārskata skatu."
#: ../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 "Taustiņu sasaiste, kas atver pārskatu"
#: ../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 "Taustiņu sasaiste, kas atver aktivitāšu pārskatu."
#: ../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 "Taustiņu sasaiste, kas pārslēdz paziņojumu saraksta redzamību"
#: ../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 "Taustiņu sasaiste, kas pārslēdz paziņojumu saraksta redzamību."
#: ../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 "Taustiņu sasaiste, kas fokusē aktīvo paziņojumu"
#: ../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 "Taustiņu sasaiste, kas fokusē aktīvo paziņojumu."
#: ../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 ""
"Taustiņu sasaiste, kas pauzē un turpina visus tvīnus (tweens) atkļūdošanas "
"nolūkiem"
#: ../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 "Kuru tastatūru izmantot"
#: ../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 "Izmantojamās tastatūras tips."
#: ../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 "Ierobežot pārslēdzēju uz pašreizējo darbvietu."
#: ../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."
@ -260,11 +247,11 @@ msgstr ""
"Ja patiess, pārslēdzējā tiek rādītas tikai lietotnes, kas ir pašreizējā "
"darbvietā. Citāti tiek iekļautas visas lietotnes."
#: ../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 "Lietotnes ikonas režīms."
#: ../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-"
@ -274,7 +261,7 @@ msgstr ""
"only” (rāda loga sīktēlu), “app-icon-only” (rāda tikai lietotnes ikonu) vai "
"“both” (abi)."
#: ../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."
@ -282,28 +269,28 @@ msgstr ""
"Ja patiess, pārslēdzējā tiek rādītas tikai lietotnes no pašreizējās "
"darbvietas. Citāti tiek iekļautas visas lietotnes."
#: ../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 "Pievienot modālo dialoglodziņu vecāka logam"
#: ../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 "Šī atslēga pārraksta org.gnome.mutter atslēgu, darbinot GNOME čaulu."
#: ../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 "Aktivēt logu sānisko izklāšanu, kad to nomet uz ekrāna malas"
#: ../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 "Darbvietas tiek pārvaldītas dinamiski"
#: ../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 "Darbvietas tikai uz galvenā monitora"
#: ../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 "Peles režīmā aizkavēt fokusa izmaiņas, līdz rādītājs pārstāj kustēties"
@ -311,52 +298,51 @@ msgstr "Peles režīmā aizkavēt fokusa izmaiņas, līdz rādītājs pārstāj
msgid "Network Login"
msgstr "Tīkla ierakstīšanās"
#: ../js/extensionPrefs/main.js:117
#: ../js/extensionPrefs/main.js:122
#, javascript-format
msgid "There was an error loading the preferences dialog for %s:"
msgstr "Ielādējot %s iestatījumu dialogu, gadījās kļūda:"
#: ../js/extensionPrefs/main.js:149
#: ../js/extensionPrefs/main.js:154
msgid "GNOME Shell Extensions"
msgstr "GNOME čaulas paplašinājumi"
#: ../js/gdm/authPrompt.js:147 ../js/ui/audioDeviceSelection.js:71
#: ../js/ui/components/networkAgent.js:145
#: ../js/gdm/authPrompt.js:147 ../js/ui/components/networkAgent.js:145
#: ../js/ui/components/polkitAgent.js:179 ../js/ui/endSessionDialog.js:452
#: ../js/ui/extensionDownloader.js:195 ../js/ui/shellMountOperation.js:399
#: ../js/ui/status/network.js:916
msgid "Cancel"
msgstr "Atcelt"
#: ../js/gdm/authPrompt.js:169 ../js/gdm/authPrompt.js:216
#: ../js/gdm/authPrompt.js:448
#: ../js/gdm/authPrompt.js:169 ../js/gdm/authPrompt.js:215
#: ../js/gdm/authPrompt.js:447
msgid "Next"
msgstr "Nākamais"
#: ../js/gdm/authPrompt.js:212 ../js/ui/shellMountOperation.js:403
#: ../js/gdm/authPrompt.js:211 ../js/ui/shellMountOperation.js:403
#: ../js/ui/unlockDialog.js:59
msgid "Unlock"
msgstr "Atbloķēt"
#: ../js/gdm/authPrompt.js:214
#: ../js/gdm/authPrompt.js:213
msgctxt "button"
msgid "Sign In"
msgstr "Ierakstīties"
#: ../js/gdm/loginDialog.js:285
#: ../js/gdm/loginDialog.js:281
msgid "Choose Session"
msgstr "Izvēlieties sesiju"
#. 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 "Nav sarakstā?"
#. 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 "(piemēram, lietotājs vai %s)"
@ -364,12 +350,12 @@ msgstr "(piemēram, lietotājs vai %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 "Lietotājvārds: "
#: ../js/gdm/loginDialog.js:1196
#: ../js/gdm/loginDialog.js:1184
msgid "Login Window"
msgstr "Ierakstīšanās logs"
@ -505,50 +491,32 @@ msgstr "Pievienot izlasei"
msgid "Show Details"
msgstr "Rādīt sīkāku informāciju"
#: ../js/ui/appFavorites.js:134
#: ../js/ui/appFavorites.js:132
#, javascript-format
msgid "%s has been added to your favorites."
msgstr "%s ir pievienots izlasei."
#: ../js/ui/appFavorites.js:168
#: ../js/ui/appFavorites.js:166
#, javascript-format
msgid "%s has been removed from your favorites."
msgstr "%s ir izņemts no izlases."
#: ../js/ui/audioDeviceSelection.js:59
msgid "Select Audio Device"
msgstr "Izvēlieties audio ierīci"
#: ../js/ui/audioDeviceSelection.js:69
msgid "Sound Settings"
msgstr "Skaņas Iestatījumi"
#: ../js/ui/audioDeviceSelection.js:78
msgid "Headphones"
msgstr "Austiņas"
#: ../js/ui/audioDeviceSelection.js:80
msgid "Headset"
msgstr "Austiņas ar mikrofonu"
#: ../js/ui/audioDeviceSelection.js:82 ../js/ui/status/volume.js:213
msgid "Microphone"
msgstr "Mikrofons"
#: ../js/ui/backgroundMenu.js:19
msgid "Change Background…"
msgstr "Mainīt fonu…"
#: ../js/ui/backgroundMenu.js:21
#| msgid "Privacy Settings"
msgid "Display Settings"
msgstr "Displeja iestatījumi"
#: ../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 "Iestatījumi"
#. Translators: Enter 0-6 (Sunday-Saturday) for non-work days. Examples: "0" (Sunday) "6" (Saturday) "06" (Sunday and Saturday).
#: ../js/ui/calendar.js:47
#: ../js/ui/calendar.js:55
msgctxt "calendar-no-work"
msgid "06"
msgstr "06"
@ -558,96 +526,94 @@ 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:76
#: ../js/ui/calendar.js:84
msgctxt "grid sunday"
msgid "S"
msgstr "Sv"
#. Translators: Calendar grid abbreviation for Monday
#: ../js/ui/calendar.js:78
#: ../js/ui/calendar.js:86
msgctxt "grid monday"
msgid "M"
msgstr "Pr"
#. Translators: Calendar grid abbreviation for Tuesday
#: ../js/ui/calendar.js:80
#: ../js/ui/calendar.js:88
msgctxt "grid tuesday"
msgid "T"
msgstr "Ot"
#. Translators: Calendar grid abbreviation for Wednesday
#: ../js/ui/calendar.js:82
#: ../js/ui/calendar.js:90
msgctxt "grid wednesday"
msgid "W"
msgstr "Tr"
#. Translators: Calendar grid abbreviation for Thursday
#: ../js/ui/calendar.js:84
#: ../js/ui/calendar.js:92
msgctxt "grid thursday"
msgid "T"
msgstr "Ce"
#. Translators: Calendar grid abbreviation for Friday
#: ../js/ui/calendar.js:86
#: ../js/ui/calendar.js:94
msgctxt "grid friday"
msgid "F"
msgstr "Pk"
#. Translators: Calendar grid abbreviation for Saturday
#: ../js/ui/calendar.js:88
#: ../js/ui/calendar.js:96
msgctxt "grid saturday"
msgid "S"
msgstr "Se"
#: ../js/ui/calendar.js:416
#: ../js/ui/calendar.js:566
msgid "Previous month"
msgstr "Iepriekšējais mēnesis"
#: ../js/ui/calendar.js:426
#: ../js/ui/calendar.js:576
msgid "Next month"
msgstr "Nākamais mēnesis"
#: ../js/ui/calendar.js:579
#, no-javascript-format
msgctxt "date day number format"
msgid "%d"
msgstr "%d"
#: ../js/ui/calendar.js:634
#: ../js/ui/calendar.js:783
msgid "Week %V"
msgstr "Nedēļa %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:695
#: ../js/ui/calendar.js:1188
msgctxt "event list time"
msgid "All Day"
msgstr "Visu dienu"
#: ../js/ui/calendar.js:821
#: ../js/ui/calendar.js:1291
msgid "Clear section"
msgstr "Attīrīt sadaļu"
#: ../js/ui/calendar.js:1518
msgid "Events"
msgstr "Notikumi"
#: ../js/ui/calendar.js:830
#: ../js/ui/calendar.js:1527
msgctxt "calendar heading"
msgid "%A, %B %d"
msgstr "%A, %d. %B"
#: ../js/ui/calendar.js:834
#: ../js/ui/calendar.js:1531
msgctxt "calendar heading"
msgid "%A, %B %d, %Y"
msgstr "%A, %d. %B, %Y."
#: ../js/ui/calendar.js:919
#: ../js/ui/calendar.js:1616
msgid "Notifications"
msgstr "Paziņojumi"
#: ../js/ui/calendar.js:1070
#: ../js/ui/calendar.js:1767
msgid "No Notifications"
msgstr "Nav paziņojumu"
#: ../js/ui/calendar.js:1073
#: ../js/ui/calendar.js:1770
msgid "No Events"
msgstr "Nav notikumu"
@ -659,7 +625,7 @@ msgstr "Pievienots ārējs dzinis"
msgid "External drive disconnected"
msgstr "Atvienots ārējs dzinis"
#: ../js/ui/components/autorunManager.js:355
#: ../js/ui/components/autorunManager.js:354
#, javascript-format
msgid "Open with %s"
msgstr "Atvērt ar %s"
@ -785,7 +751,7 @@ msgstr "Diemžēl tas nenostrādāja. Lūdzu, mēģiniet vēlreiz."
#. Translators: this is the other person changing their old IM name to their new
#. IM name.
#: ../js/ui/components/telepathyClient.js:760
#: ../js/ui/components/telepathyClient.js:759
#, javascript-format
msgid "%s is now known as %s"
msgstr "%s tagad saucas %s"
@ -980,11 +946,11 @@ msgid "Keyboard"
msgstr "Tastatūra"
#. translators: 'Hide' is a verb
#: ../js/ui/legacyTray.js:65
#: ../js/ui/legacyTray.js:66
msgid "Hide tray"
msgstr "Slēpt paplāti"
#: ../js/ui/legacyTray.js:106
#: ../js/ui/legacyTray.js:107
msgid "Status Icons"
msgstr "Statusa ikonas"
@ -1012,7 +978,7 @@ msgstr "Aktivēta"
#. 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 "Deaktivēta"
@ -1036,26 +1002,10 @@ msgstr "Skatīt avotu"
msgid "Web Page"
msgstr "Tīmekļa lapa"
#: ../js/ui/messageList.js:543
msgid "Clear section"
msgstr "Attīrīt sadaļu"
#: ../js/ui/messageTray.js:1486
msgid "System Information"
msgstr "Sistēmas informācija"
#: ../js/ui/mpris.js:194
msgid "Unknown artist"
msgstr "Nezināms izpildītājs"
#: ../js/ui/mpris.js:195
msgid "Unknown title"
msgstr "Nezināms nosaukums"
#: ../js/ui/mpris.js:217
msgid "Media"
msgstr "Datu nesējs"
#: ../js/ui/overview.js:84
msgid "Undo"
msgstr "Atsaukt"
@ -1072,22 +1022,17 @@ msgstr "Pārskats"
msgid "Type to search…"
msgstr "Rakstiet, lai meklētu…"
#: ../js/ui/panel.js:358
#: ../js/ui/panel.js:352
msgid "Quit"
msgstr "Iziet"
#. 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 "Aktivitātes"
#: ../js/ui/panel.js:695
msgctxt "System menu in the top bar"
msgid "System"
msgstr "Sistēma"
#: ../js/ui/panel.js:807
#: ../js/ui/panel.js:754
msgid "Top Bar"
msgstr "Augšējā josla"
@ -1100,15 +1045,15 @@ msgstr "Augšējā josla"
msgid "toggle-switch-us"
msgstr "toggle-switch-intl"
#: ../js/ui/runDialog.js:71
#: ../js/ui/runDialog.js:70
msgid "Enter a Command"
msgstr "Ievadiet komandu"
#: ../js/ui/runDialog.js:111 ../js/ui/windowMenu.js:162
#: ../js/ui/runDialog.js:110 ../js/ui/windowMenu.js:162
msgid "Close"
msgstr "Aizvērt"
#: ../js/ui/runDialog.js:282
#: ../js/ui/runDialog.js:281
msgid "Restarting…"
msgstr "Pārstartē…"
@ -1233,42 +1178,32 @@ msgstr "Augsts kontrasts"
msgid "Large Text"
msgstr "Liels teksts"
#: ../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 "Izslēgt"
#: ../js/ui/status/bluetooth.js:56
#: ../js/ui/status/bluetooth.js:54
msgid "Bluetooth Settings"
msgstr "Bluetooth iestatījumi"
#. Translators: this is the number of connected bluetooth devices
#: ../js/ui/status/bluetooth.js:136
#: ../js/ui/status/bluetooth.js:105
#, javascript-format
#| msgid "Connected"
msgid "%d Connected"
msgid_plural "%d Connected"
msgstr[0] "%d savienots"
msgstr[1] "%d savienoti"
msgstr[2] "%d savienotu"
#: ../js/ui/status/bluetooth.js:138
msgid "Off"
msgstr "Izslēgts"
#: ../js/ui/status/bluetooth.js:140
#: ../js/ui/status/bluetooth.js:107
#| msgid "In Use"
msgid "Not In Use"
msgstr "Netiek izmantots"
#: ../js/ui/status/bluetooth.js:142 ../js/ui/status/network.js:1279
msgid "Turn On"
msgstr "Ieslēgt"
#: ../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 "Izslēgt"
#: ../js/ui/status/brightness.js:44
msgid "Brightness"
msgstr "Gaišums"
@ -1277,49 +1212,33 @@ msgstr "Gaišums"
msgid "Show Keyboard Layout"
msgstr "Rādīt tastatūras izkārtojumu"
#: ../js/ui/status/location.js:107 ../js/ui/status/location.js:215
#: ../js/ui/status/location.js:71 ../js/ui/status/location.js:177
#| msgid "Location"
msgid "Location Enabled"
msgstr "Atrašanās vieta ieslēgta"
#: ../js/ui/status/location.js:108 ../js/ui/status/location.js:216
#: ../js/ui/status/location.js:72 ../js/ui/status/location.js:178
msgid "Disable"
msgstr "Izslēgt"
#: ../js/ui/status/location.js:109
#: ../js/ui/status/location.js:73
msgid "Privacy Settings"
msgstr "Privātuma iestatījumi"
#: ../js/ui/status/location.js:214
#: ../js/ui/status/location.js:176
#| msgid "Location"
msgid "Location In Use"
msgstr "Atrašanās vieta tiek izmantota"
#: ../js/ui/status/location.js:218
#: ../js/ui/status/location.js:180
#| msgid "Connection failed"
msgid "Location Disabled"
msgstr "Atrašanās vieta ir izslēgta"
#: ../js/ui/status/location.js:219
#: ../js/ui/status/location.js:181
msgid "Enable"
msgstr "Ieslēgt"
#: ../js/ui/status/location.js:426
msgid "Deny Access"
msgstr "Liegt pieeju"
#: ../js/ui/status/location.js:429
msgid "Grant Access"
msgstr "Piešķirt pieeju"
#. Translators: %s is an application name
#: ../js/ui/status/location.js:435
#, javascript-format
msgid "Give %s access to your location?"
msgstr "Dot %s pieeju jūsu atrašanās vietai?"
#: ../js/ui/status/location.js:437
msgid "Location access can be changed at any time from the privacy settings."
msgstr ""
"Pieeju atrašanās vietai var mainīt jebkurā brīdī privātuma iestatījumos."
#: ../js/ui/status/network.js:101
msgid "<unknown>"
msgstr "<nezināms>"
@ -1333,6 +1252,7 @@ msgstr "%s ir izslēgta"
#. Translators: %s is a network identifier
#: ../js/ui/status/network.js:454
#, javascript-format
#| msgid "Connected"
msgid "%s Connected"
msgstr "%s ir savienots"
@ -1341,24 +1261,28 @@ msgstr "%s ir savienots"
#. %s is a network identifier
#: ../js/ui/status/network.js:459
#, javascript-format
#| msgid "Unmanaged"
msgid "%s Unmanaged"
msgstr "%s nav pārvaldīts"
#. Translators: %s is a network identifier
#: ../js/ui/status/network.js:462
#, javascript-format
#| msgid "Disconnecting"
msgid "%s Disconnecting"
msgstr "%s atvienojas"
#. Translators: %s is a network identifier
#: ../js/ui/status/network.js:469 ../js/ui/status/network.js:1300
#, javascript-format
#| msgid "Connecting"
msgid "%s Connecting"
msgstr "%s savienojas"
#. 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 "Wired 802.1X authentication"
msgid "%s Requires Authentication"
msgstr "%s pieprasa autentificēšanos"
@ -1366,6 +1290,7 @@ msgstr "%s pieprasa autentificēšanos"
#. module, which is missing; %s is a network identifier
#: ../js/ui/status/network.js:480
#, javascript-format
#| msgid "Firmware missing"
msgid "Firmware Missing For %s"
msgstr "%s trūkst aparātprogrammatūras"
@ -1373,12 +1298,14 @@ msgstr "%s trūkst aparātprogrammatūras"
#. is disabled by rfkill, or it has no coverage; %s is a network identifier
#: ../js/ui/status/network.js:484
#, javascript-format
#| msgid "Unavailable"
msgid "%s Unavailable"
msgstr "%s nav pieejams"
#. Translators: %s is a network identifier
#: ../js/ui/status/network.js:487
#, javascript-format
#| msgid "Connection failed"
msgid "%s Connection Failed"
msgstr "%s neizdevās savienoties"
@ -1393,6 +1320,7 @@ msgstr "Mobilās platjoslas iestatījumi"
#. Translators: %s is a network identifier
#: ../js/ui/status/network.js:588 ../js/ui/status/network.js:1305
#, javascript-format
#| msgid "Hardware Disabled"
msgid "%s Hardware Disabled"
msgstr "%s ir izslēgts aparatūrā"
@ -1400,6 +1328,7 @@ msgstr "%s ir izslēgts aparatūrā"
#. because it's disabled by rfkill (airplane mode); %s is a network identifier
#: ../js/ui/status/network.js:592
#, javascript-format
#| msgid "Disabled"
msgid "%s Disabled"
msgstr "%s ir izslēgts"
@ -1455,15 +1384,21 @@ msgstr "Izvēlieties tīklu"
msgid "Wi-Fi Settings"
msgstr "Wi-Fi iestatījumi"
#: ../js/ui/status/network.js:1279
msgid "Turn On"
msgstr "Ieslēgt"
#. Translators: %s is a network identifier
#: ../js/ui/status/network.js:1296
#, javascript-format
#| msgid "Hotspot Active"
msgid "%s Hotspot Active"
msgstr "%s tīklājs ir aktīvs"
#. Translators: %s is a network identifier
#: ../js/ui/status/network.js:1311
#, javascript-format
#| msgid "Not Connected"
msgid "%s Not Connected"
msgstr "%s nav savienots"
@ -1493,6 +1428,7 @@ msgid "VPN"
msgstr "VPN"
#: ../js/ui/status/network.js:1513
#| msgid "Power Off"
msgid "VPN Off"
msgstr "VPN ir izslēgts"
@ -1504,41 +1440,37 @@ msgstr "Neizdevās savienoties"
msgid "Activation of network connection failed"
msgstr "Neizdevās tīkla savienojuma aktivēšana"
#: ../js/ui/status/power.js:61
#: ../js/ui/status/power.js:49
msgid "Power Settings"
msgstr "Barošanas iestatījumi"
#: ../js/ui/status/power.js:77
#: ../js/ui/status/power.js:65
msgid "Fully Charged"
msgstr "Pilnībā uzlādēta"
#. 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 "Novērtē…"
#. 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 "Atlicis %d.%02d (%d%%)"
msgid "%d%02d Remaining (%d%%)"
msgstr "Atlicis %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%%)"
msgstr "Līdz pilnai %d.%02d (%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 "Līdz pilnai %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 is On"
msgid "Airplane Mode On"
msgstr "Lidmašīnas režīms ir ieslēgts"
@ -1551,6 +1483,7 @@ msgid "Log Out"
msgstr "Izrakstīties"
#: ../js/ui/status/system.js:353
#| msgid "Power Settings"
msgid "Account Settings"
msgstr "Konta iestatījumi"
@ -1574,6 +1507,10 @@ msgstr "Skaļums ir mainīts"
msgid "Volume"
msgstr "Skaļums"
#: ../js/ui/status/volume.js:213
msgid "Microphone"
msgstr "Mikrofons"
#: ../js/ui/unlockDialog.js:67
msgid "Log in as another user"
msgstr "Ierakstīties kā citam lietotājam"
@ -1658,10 +1595,12 @@ msgid "Always on Visible Workspace"
msgstr "Vienmēr redzamajā darbvietā"
#: ../js/ui/windowMenu.js:105
#| msgid "Move to Workspace Up"
msgid "Move to Workspace Left"
msgstr "Pārvietot uz darbvietu pa kreisi"
#: ../js/ui/windowMenu.js:110
#| msgid "Move to Workspace Up"
msgid "Move to Workspace Right"
msgstr "Pārvietot uz darbvietu pa labi"
@ -1674,10 +1613,12 @@ msgid "Move to Workspace Down"
msgstr "Pārvietot uz zemāku darbvietu"
#: ../js/ui/windowMenu.js:136
#| msgid "Move to Workspace Up"
msgid "Move to Monitor Up"
msgstr "Pārvietot uz augstāku monitoru"
#: ../js/ui/windowMenu.js:142
#| msgid "Move to Workspace Down"
msgid "Move to Monitor Down"
msgstr "Pārvietot uz zemāku monitoru"
@ -1695,7 +1636,7 @@ msgstr "Evolution kalendārs"
#. 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"
@ -1705,7 +1646,7 @@ msgstr[2] "%u izvadkanāli"
#. 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"
@ -1713,44 +1654,44 @@ msgstr[0] "%u ievadkanāls"
msgstr[1] "%u ievadkanāli"
msgstr[2] "%u ievadkanāli"
#: ../src/gvc/gvc-mixer-control.c:2371
#: ../src/gvc/gvc-mixer-control.c:2373
msgid "System Sounds"
msgstr "Sistēmas skaņas"
#: ../src/main.c:381
#: ../src/main.c:373
msgid "Print version"
msgstr "Drukāt versiju"
#: ../src/main.c:387
#: ../src/main.c:379
msgid "Mode used by GDM for login screen"
msgstr "Režīms, ko izmantot GDM pieteikšanās ekrānam"
#: ../src/main.c:393
#: ../src/main.c:385
msgid "Use a specific mode, e.g. \"gdm\" for login screen"
msgstr "Izmantot specifisku metodi, piemēram, “gdm” ierakstīšanās ekrānam"
#: ../src/main.c:399
#: ../src/main.c:391
msgid "List possible modes"
msgstr "Uzskaitīt iespējamās metodes"
#: ../src/shell-app.c:246
#: ../src/shell-app.c:239
msgctxt "program"
msgid "Unknown"
msgstr "Nezināma"
#: ../src/shell-app.c:487
#: ../src/shell-app.c:480
#, c-format
msgid "Failed to launch “%s”"
msgstr "Neizdevās palaist “%s”"
#: ../src/shell-keyring-prompt.c:730
#: ../src/shell-keyring-prompt.c:742
msgid "Passwords do not match."
msgstr "Paroles nesakrīt."
#: ../src/shell-keyring-prompt.c:738
#: ../src/shell-keyring-prompt.c:750
msgid "Password cannot be blank"
msgstr "Parole nevar būt tukša"
#: ../src/shell-polkit-authentication-agent.c:353
#: ../src/shell-polkit-authentication-agent.c:346
msgid "Authentication dialog was dismissed by the user"
msgstr "Lietotājs noraidīja autentifikācijas dialoglodziņu"

368
po/nb.po
View File

@ -3,14 +3,14 @@
# This file is distributed under the same license as the gnome-shell package.
#
# Åka Sikrom <a4@hush.com>, 2014-2015.
# Kjartan Maraas <kmaraas@gnome.org>, 2009-2016.
# Kjartan Maraas <kmaraas@gnome.org>, 2009-2015.
# Torstein Adolf Winterseth <kvikende@fsfe.org>, 2010.
msgid ""
msgstr ""
"Project-Id-Version: gnome-shell 3.20.x\n"
"Project-Id-Version: gnome-shell 3.17.x\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2016-05-03 23:34+0200\n"
"PO-Revision-Date: 2016-05-03 23:35+0200\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"
@ -305,52 +297,51 @@ msgstr "Utsett fokusendringer i musmodus til peker slutter å bevege seg"
msgid "Network Login"
msgstr "Nettverkspålogging"
#: ../js/extensionPrefs/main.js:117
#: ../js/extensionPrefs/main.js:122
#, javascript-format
msgid "There was an error loading the preferences dialog for %s:"
msgstr "Det oppsto en feil ved lasting av brukervalgdialog for %s:"
#: ../js/extensionPrefs/main.js:149
#: ../js/extensionPrefs/main.js:154
msgid "GNOME Shell Extensions"
msgstr "Utvidelser for GNOME Shell"
#: ../js/gdm/authPrompt.js:147 ../js/ui/audioDeviceSelection.js:71
#: ../js/ui/components/networkAgent.js:145
#: ../js/gdm/authPrompt.js:147 ../js/ui/components/networkAgent.js:145
#: ../js/ui/components/polkitAgent.js:179 ../js/ui/endSessionDialog.js:452
#: ../js/ui/extensionDownloader.js:195 ../js/ui/shellMountOperation.js:399
#: ../js/ui/status/network.js:916
msgid "Cancel"
msgstr "Avbryt"
#: ../js/gdm/authPrompt.js:169 ../js/gdm/authPrompt.js:216
#: ../js/gdm/authPrompt.js:448
#: ../js/gdm/authPrompt.js:169 ../js/gdm/authPrompt.js:215
#: ../js/gdm/authPrompt.js:447
msgid "Next"
msgstr "Neste"
#: ../js/gdm/authPrompt.js:212 ../js/ui/shellMountOperation.js:403
#: ../js/gdm/authPrompt.js:211 ../js/ui/shellMountOperation.js:403
#: ../js/ui/unlockDialog.js:59
msgid "Unlock"
msgstr "Lås opp"
#: ../js/gdm/authPrompt.js:214
#: ../js/gdm/authPrompt.js:213
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)"
@ -358,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"
@ -499,36 +490,16 @@ msgstr "Legg til i favoritter"
msgid "Show Details"
msgstr "Vis detaljer"
#: ../js/ui/appFavorites.js:134
#: ../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:168
#: ../js/ui/appFavorites.js:166
#, javascript-format
msgid "%s has been removed from your favorites."
msgstr "%s ble fjernet fra favoritter."
#: ../js/ui/audioDeviceSelection.js:59
msgid "Select Audio Device"
msgstr "Velg lydenhet"
#: ../js/ui/audioDeviceSelection.js:69
msgid "Sound Settings"
msgstr "Innstillinger for lyd"
#: ../js/ui/audioDeviceSelection.js:78
msgid "Headphones"
msgstr "Hodetelefoner"
#: ../js/ui/audioDeviceSelection.js:80
msgid "Headset"
msgstr "Headset"
#: ../js/ui/audioDeviceSelection.js:82 ../js/ui/status/volume.js:213
msgid "Microphone"
msgstr "Mikrofon"
#: ../js/ui/backgroundMenu.js:19
msgid "Change Background…"
msgstr "Bytt bakgrunn …"
@ -537,12 +508,13 @@ msgstr "Bytt bakgrunn …"
msgid "Display Settings"
msgstr "Innstillinger for skjerm"
#: ../js/ui/backgroundMenu.js:22 ../js/ui/status/system.js:371
#: ../js/ui/backgroundMenu.js:22 ../js/ui/panel.js:650
#: ../js/ui/status/system.js:366
msgid "Settings"
msgstr "Innstillinger"
#. Translators: Enter 0-6 (Sunday-Saturday) for non-work days. Examples: "0" (Sunday) "6" (Saturday) "06" (Sunday and Saturday).
#: ../js/ui/calendar.js:47
#: ../js/ui/calendar.js:55
msgctxt "calendar-no-work"
msgid "06"
msgstr "06"
@ -552,96 +524,94 @@ 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:76
#: ../js/ui/calendar.js:84
msgctxt "grid sunday"
msgid "S"
msgstr "S"
#. Translators: Calendar grid abbreviation for Monday
#: ../js/ui/calendar.js:78
#: ../js/ui/calendar.js:86
msgctxt "grid monday"
msgid "M"
msgstr "M"
#. Translators: Calendar grid abbreviation for Tuesday
#: ../js/ui/calendar.js:80
#: ../js/ui/calendar.js:88
msgctxt "grid tuesday"
msgid "T"
msgstr "T"
#. Translators: Calendar grid abbreviation for Wednesday
#: ../js/ui/calendar.js:82
#: ../js/ui/calendar.js:90
msgctxt "grid wednesday"
msgid "W"
msgstr "O"
#. Translators: Calendar grid abbreviation for Thursday
#: ../js/ui/calendar.js:84
#: ../js/ui/calendar.js:92
msgctxt "grid thursday"
msgid "T"
msgstr "T"
#. Translators: Calendar grid abbreviation for Friday
#: ../js/ui/calendar.js:86
#: ../js/ui/calendar.js:94
msgctxt "grid friday"
msgid "F"
msgstr "F"
#. Translators: Calendar grid abbreviation for Saturday
#: ../js/ui/calendar.js:88
#: ../js/ui/calendar.js:96
msgctxt "grid saturday"
msgid "S"
msgstr "L"
#: ../js/ui/calendar.js:416
#: ../js/ui/calendar.js:566
msgid "Previous month"
msgstr "Forrige måned"
#: ../js/ui/calendar.js:426
#: ../js/ui/calendar.js:576
msgid "Next month"
msgstr "Neste måned"
#: ../js/ui/calendar.js:579
#, no-javascript-format
msgctxt "date day number format"
msgid "%d"
msgstr "%d"
#: ../js/ui/calendar.js:634
#: ../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:695
#: ../js/ui/calendar.js:1188
msgctxt "event list time"
msgid "All Day"
msgstr "Hele dagen"
#: ../js/ui/calendar.js:821
#: ../js/ui/calendar.js:1291
msgid "Clear section"
msgstr "Tøm seksjon"
#: ../js/ui/calendar.js:1518
msgid "Events"
msgstr "Hendelser"
#: ../js/ui/calendar.js:830
#: ../js/ui/calendar.js:1527
msgctxt "calendar heading"
msgid "%A, %B %d"
msgstr "%A %B %d"
#: ../js/ui/calendar.js:834
#: ../js/ui/calendar.js:1531
msgctxt "calendar heading"
msgid "%A, %B %d, %Y"
msgstr "%A %B %d, %Y"
#: ../js/ui/calendar.js:919
#: ../js/ui/calendar.js:1616
msgid "Notifications"
msgstr "Varslinger"
#: ../js/ui/calendar.js:1070
#: ../js/ui/calendar.js:1767
msgid "No Notifications"
msgstr "Ingen varslinger"
#: ../js/ui/calendar.js:1073
#: ../js/ui/calendar.js:1770
msgid "No Events"
msgstr "Ingen hendelser"
@ -653,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"
@ -779,7 +749,7 @@ msgstr "Beklager, det virket ikke. Prøv igjen."
#. Translators: this is the other person changing their old IM name to their new
#. IM name.
#: ../js/ui/components/telepathyClient.js:760
#: ../js/ui/components/telepathyClient.js:759
#, javascript-format
msgid "%s is now known as %s"
msgstr "%s er nå kjent som %s"
@ -966,11 +936,11 @@ msgid "Keyboard"
msgstr "Tastatur"
#. translators: 'Hide' is a verb
#: ../js/ui/legacyTray.js:65
#: ../js/ui/legacyTray.js:66
msgid "Hide tray"
msgstr "Skjul statusområde"
#: ../js/ui/legacyTray.js:106
#: ../js/ui/legacyTray.js:107
msgid "Status Icons"
msgstr "Statusikoner"
@ -998,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"
@ -1022,26 +992,10 @@ msgstr "Vis kildekode"
msgid "Web Page"
msgstr "Nettside"
#: ../js/ui/messageList.js:543
msgid "Clear section"
msgstr "Tøm seksjon"
#: ../js/ui/messageTray.js:1486
msgid "System Information"
msgstr "Systeminformasjon"
#: ../js/ui/mpris.js:194
msgid "Unknown artist"
msgstr "Ukjent artist"
#: ../js/ui/mpris.js:195
msgid "Unknown title"
msgstr "Ukjent tittel"
#: ../js/ui/mpris.js:217
msgid "Media"
msgstr "Media"
#: ../js/ui/overview.js:84
msgid "Undo"
msgstr "Angre"
@ -1058,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"
@ -1086,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 …"
@ -1118,7 +1067,7 @@ msgid_plural "%d new notifications"
msgstr[0] "%d ny varsling"
msgstr[1] "%d nye varslinger"
#: ../js/ui/screenShield.js:432 ../js/ui/status/system.js:379
#: ../js/ui/screenShield.js:432 ../js/ui/status/system.js:374
msgid "Lock"
msgstr "Lås"
@ -1217,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"
@ -1260,48 +1197,30 @@ msgstr "Lysstyrke"
msgid "Show Keyboard Layout"
msgstr "Vis tastaturutforming"
#: ../js/ui/status/location.js:107 ../js/ui/status/location.js:215
#: ../js/ui/status/location.js:71 ../js/ui/status/location.js:177
msgid "Location Enabled"
msgstr "Plassering slått på"
#: ../js/ui/status/location.js:108 ../js/ui/status/location.js:216
#: ../js/ui/status/location.js:72 ../js/ui/status/location.js:178
msgid "Disable"
msgstr "Slå av"
#: ../js/ui/status/location.js:109
#: ../js/ui/status/location.js:73
msgid "Privacy Settings"
msgstr "Innstillinger for personvern"
#: ../js/ui/status/location.js:214
#: ../js/ui/status/location.js:176
msgid "Location In Use"
msgstr "Plassering i bruk"
#: ../js/ui/status/location.js:218
#: ../js/ui/status/location.js:180
msgid "Location Disabled"
msgstr "Plassering slått av"
#: ../js/ui/status/location.js:219
#: ../js/ui/status/location.js:181
msgid "Enable"
msgstr "Slå på"
#: ../js/ui/status/location.js:426
msgid "Deny Access"
msgstr "Nekt tilgang"
#: ../js/ui/status/location.js:429
msgid "Grant Access"
msgstr "Gi tilgang"
#. Translators: %s is an application name
#: ../js/ui/status/location.js:435
#, javascript-format
msgid "Give %s access to your location?"
msgstr "Gi %s tilgang til din plassering?"
#: ../js/ui/status/location.js:437
msgid "Location access can be changed at any time from the privacy settings."
msgstr "Stedstilgang kan endres når som helst under innstillinger for personvern."
#: ../js/ui/status/network.js:101
msgid "<unknown>"
msgstr "<ukjent>"
@ -1437,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
@ -1486,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
@ -1524,27 +1442,27 @@ msgstr "%d %%"
msgid "Airplane Mode On"
msgstr "Flymodus er slått på"
#: ../js/ui/status/system.js:348
#: ../js/ui/status/system.js:343
msgid "Switch User"
msgstr "Bytt bruker"
#: ../js/ui/status/system.js:353
#: ../js/ui/status/system.js:348
msgid "Log Out"
msgstr "Logg ut"
#: ../js/ui/status/system.js:358
#: ../js/ui/status/system.js:353
msgid "Account Settings"
msgstr "Innstillinger for konto"
#: ../js/ui/status/system.js:375
#: ../js/ui/status/system.js:370
msgid "Orientation Lock"
msgstr "Lås for orientering"
#: ../js/ui/status/system.js:383
#: ../js/ui/status/system.js:378
msgid "Suspend"
msgstr "Hvilemodus"
#: ../js/ui/status/system.js:386
#: ../js/ui/status/system.js:381
msgid "Power Off"
msgstr "Slå av"
@ -1556,6 +1474,10 @@ msgstr "Volum endret"
msgid "Volume"
msgstr "Volum"
#: ../js/ui/status/volume.js:213
msgid "Microphone"
msgstr "Mikrofon"
#: ../js/ui/unlockDialog.js:67
msgid "Log in as another user"
msgstr "Logg inn som en annen bruker"
@ -1640,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"
@ -1676,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"
@ -1685,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"

619
po/nl.po

File diff suppressed because it is too large Load Diff

2834
po/oc.po

File diff suppressed because it is too large Load Diff

557
po/pa.po

File diff suppressed because it is too large Load Diff

392
po/pl.po
View File

@ -4,16 +4,16 @@
# pomóc w jego rozwijaniu i pielęgnowaniu, napisz do nas:
# gnomepl@aviary.pl
# -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
# Piotr Drąg <piotrdrag@gmail.com>, 2009-2016.
# Piotr Drąg <piotrdrag@gmail.com>, 2009-2015.
# Tomasz Dominikowski <dominikowski@gmail.com>, 2009.
# Wojciech Szczęsny <wszczesny@aviary.pl>, 2013.
# Aviary.pl <gnomepl@aviary.pl>, 2009-2016.
# Aviary.pl <gnomepl@aviary.pl>, 2009-2015.
msgid ""
msgstr ""
"Project-Id-Version: gnome-shell\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2016-07-12 21:20+0200\n"
"PO-Revision-Date: 2016-07-12 21:21+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"
@ -49,6 +49,15 @@ msgstr "Wyświetlenie wszystkich programów"
msgid "Open the application menu"
msgstr "Otwarcie menu programu"
#: ../data/gnome-shell.desktop.in.in.h:1
msgid "GNOME Shell"
msgstr "Powłoka środowiska 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 "Zarządzanie oknami i uruchamianiem programów"
#: ../data/gnome-shell-extension-prefs.desktop.in.in.h:1
msgid "GNOME Shell Extension Preferences"
msgstr "Preferencje rozszerzenia powłoki GNOME"
@ -57,13 +66,9 @@ msgstr "Preferencje rozszerzenia powłoki GNOME"
msgid "Configure GNOME Shell Extensions"
msgstr "Konfiguracja rozszerzeń powłoki GNOME"
#: ../data/org.gnome.Shell.desktop.in.in.h:1
msgid "GNOME Shell"
msgstr "Powłoka środowiska GNOME"
#: ../data/org.gnome.Shell.desktop.in.in.h:2
msgid "Window management and application launching"
msgstr "Zarządzanie oknami i uruchamianiem programów"
#: ../data/gnome-shell-wayland.desktop.in.in.h:1
msgid "GNOME Shell (wayland compositor)"
msgstr "Powłoka środowiska GNOME (Wayland)"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:1
msgid "Enable internal tools useful for developers and testers from Alt-F2"
@ -166,99 +171,82 @@ msgid ""
"'Remember Password' checkbox will be present. This key sets the default "
"state of the checkbox."
msgstr ""
"Powłoka poprosi o hasło podczas montowania zaszyfrowanego urządzenia lub "
"zdalnego systemu plików. Jeśli hasło może zostać zapisane do późniejszego "
"użycia, to obecne będzie pole wyboru „Zapamiętanie hasła”. Ten klucz ustawia "
"domyślną wartość tego pola."
"Powłoka zażąda hasła po zamontowaniu zaszyfrowanego urządzenia lub zdalnego "
"systemu plików. Jeśli hasło może zostać zapisane do późniejszego użycia, to "
"obecne będzie pole wyboru „Zapamiętanie hasła”. Ten klucz ustawia domyślną "
"wartość tego pola."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:18
msgid ""
"Whether the default Bluetooth adapter had set up devices associated to it"
msgstr "Czy domyślny adapter Bluetooth ma powiązane ustawione urządzenia"
#: ../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 ""
"Powłoka będzie wyświetlała menu Bluetooth tylko, jeśli adapter Bluetooth "
"jest włączony lub są ustawione urządzenia powiązane z domyślnym adapterem. "
"Zostanie to przywrócone, kiedy tylko domyślny adapter nie będzie miał "
"żadnych powiązanych urządzeń."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:20
msgid "Show the week date in the calendar"
msgstr "Wyświetlanie dnia tygodnia w kalendarzu"
#: ../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 ""
"Jeśli jest ustawione na „true”, to wyświetla w kalendarzu dzień tygodnia w "
"formacie 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 "Skrót do otwarcia menu programu"
#: ../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 "Skrót do otwarcia menu programu."
#: ../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 "Skrót do otwarcia widoku „Wyświetl programy”"
#: ../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 "Skrót do otwarcia widoku „Wyświetl programy” ekranu podglądu."
#: ../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 "Skrót do otwarcia ekranu podglądu"
#: ../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 "Skrót do otwarcia ekranu podglądu."
#: ../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 "Skrót do przełączenia widoczności listy powiadomień"
#: ../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 "Skrót do przełączenia widoczności listy powiadomień."
#: ../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 "Skrót do aktywacji bieżącego powiadomienia"
#: ../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 "Skrót do aktywacji bieżącego powiadomienia."
#: ../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 ""
"Skrót wstrzymujący i wznawiający wszystkie działające klatki pośrednie (do "
"celów debugowania)"
#: ../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 "Której klawiatury używać"
#: ../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 "Typ używanej klawiatury."
#: ../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 "Ograniczenie przełącznika do bieżącego obszaru roboczego."
#: ../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."
@ -267,11 +255,11 @@ msgstr ""
"obszarze roboczym są wyświetlane w przełączniku. W przeciwnym przypadku "
"wszystkie programy są załączone."
#: ../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 "Tryb ikon programów."
#: ../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-"
@ -281,7 +269,7 @@ msgstr ""
"„thumbnail-only” (wyświetla miniaturę okna), „app-icon-only” (wyświetla "
"tylko ikonę programu) lub „both” (wyświetla oba)."
#: ../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."
@ -290,32 +278,32 @@ msgstr ""
"wyświetlane w przełączniku. W przeciwnym przypadku wszystkie okna są "
"załączone."
#: ../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 "Dołączanie modalnych okien dialogowych do okien nadrzędnych"
#: ../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 ""
"Ten klucz zastępuje klucz w „org.gnome.mutter”, kiedy uruchomiona jest "
"powłoka GNOME."
#: ../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 ""
"Włączenie kafelkowania przy krawędziach podczas przenoszenia okien do "
"krawędzi ekranu"
#: ../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 "Dynamiczne zarządzanie obszarami roboczymi"
#: ../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 "Obszary robocze tylko na pierwszym monitorze"
#: ../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 ""
"Opóźnienie zmiany aktywności w trybie myszy do momentu, w którym kursor się "
@ -325,53 +313,52 @@ msgstr ""
msgid "Network Login"
msgstr "Logowanie do sieci"
#: ../js/extensionPrefs/main.js:117
#: ../js/extensionPrefs/main.js:122
#, javascript-format
msgid "There was an error loading the preferences dialog for %s:"
msgstr ""
"Wystąpił błąd podczas wczytywania okna preferencji dla rozszerzenia „%s”:"
#: ../js/extensionPrefs/main.js:149
#: ../js/extensionPrefs/main.js:154
msgid "GNOME Shell Extensions"
msgstr "Rozszerzenia powłoki GNOME"
#: ../js/gdm/authPrompt.js:147 ../js/ui/audioDeviceSelection.js:71
#: ../js/ui/components/networkAgent.js:145
#: ../js/gdm/authPrompt.js:147 ../js/ui/components/networkAgent.js:145
#: ../js/ui/components/polkitAgent.js:179 ../js/ui/endSessionDialog.js:452
#: ../js/ui/extensionDownloader.js:195 ../js/ui/shellMountOperation.js:399
#: ../js/ui/status/network.js:916
msgid "Cancel"
msgstr "Anuluj"
#: ../js/gdm/authPrompt.js:169 ../js/gdm/authPrompt.js:216
#: ../js/gdm/authPrompt.js:448
#: ../js/gdm/authPrompt.js:169 ../js/gdm/authPrompt.js:215
#: ../js/gdm/authPrompt.js:435
msgid "Next"
msgstr "Dalej"
#: ../js/gdm/authPrompt.js:212 ../js/ui/shellMountOperation.js:403
#: ../js/gdm/authPrompt.js:211 ../js/ui/shellMountOperation.js:403
#: ../js/ui/unlockDialog.js:59
msgid "Unlock"
msgstr "Odblokuj"
#: ../js/gdm/authPrompt.js:214
#: ../js/gdm/authPrompt.js:213
msgctxt "button"
msgid "Sign In"
msgstr "Zaloguj"
#: ../js/gdm/loginDialog.js:285
#: ../js/gdm/loginDialog.js:281
msgid "Choose Session"
msgstr "Wybór sesji"
#. 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 "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:854
#: ../js/gdm/loginDialog.js:847
#, javascript-format
msgid "(e.g., user or %s)"
msgstr "(np. użytkownik lub %s)"
@ -379,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:859 ../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:1196
#: ../js/gdm/loginDialog.js:1181
msgid "Login Window"
msgstr "Okno logowania"
@ -520,36 +507,16 @@ msgstr "Dodaj do ulubionych"
msgid "Show Details"
msgstr "Wyświetl szczegóły"
#: ../js/ui/appFavorites.js:134
#: ../js/ui/appFavorites.js:132
#, javascript-format
msgid "%s has been added to your favorites."
msgstr "Program „%s” został dodany do ulubionych."
#: ../js/ui/appFavorites.js:168
#: ../js/ui/appFavorites.js:166
#, javascript-format
msgid "%s has been removed from your favorites."
msgstr "Program „%s” został usunięty z ulubionych."
#: ../js/ui/audioDeviceSelection.js:59
msgid "Select Audio Device"
msgstr "Wybór urządzenia dźwiękowego"
#: ../js/ui/audioDeviceSelection.js:69
msgid "Sound Settings"
msgstr "Ustawienia dźwięku"
#: ../js/ui/audioDeviceSelection.js:78
msgid "Headphones"
msgstr "Słuchawki"
#: ../js/ui/audioDeviceSelection.js:80
msgid "Headset"
msgstr "Słuchawki z mikrofonem"
#: ../js/ui/audioDeviceSelection.js:82 ../js/ui/status/volume.js:213
msgid "Microphone"
msgstr "Mikrofon"
#: ../js/ui/backgroundMenu.js:19
msgid "Change Background…"
msgstr "Zmień tło…"
@ -558,12 +525,13 @@ msgstr "Zmień tło…"
msgid "Display Settings"
msgstr "Ustawienia ekranu"
#: ../js/ui/backgroundMenu.js:22 ../js/ui/status/system.js:371
#: ../js/ui/backgroundMenu.js:22 ../js/ui/panel.js:650
#: ../js/ui/status/system.js:366
msgid "Settings"
msgstr "Ustawienia"
#. Translators: Enter 0-6 (Sunday-Saturday) for non-work days. Examples: "0" (Sunday) "6" (Saturday) "06" (Sunday and Saturday).
#: ../js/ui/calendar.js:47
#: ../js/ui/calendar.js:55
msgctxt "calendar-no-work"
msgid "06"
msgstr "06"
@ -573,96 +541,94 @@ 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:76
#: ../js/ui/calendar.js:84
msgctxt "grid sunday"
msgid "S"
msgstr "N"
#. Translators: Calendar grid abbreviation for Monday
#: ../js/ui/calendar.js:78
#: ../js/ui/calendar.js:86
msgctxt "grid monday"
msgid "M"
msgstr "P"
#. Translators: Calendar grid abbreviation for Tuesday
#: ../js/ui/calendar.js:80
#: ../js/ui/calendar.js:88
msgctxt "grid tuesday"
msgid "T"
msgstr "W"
#. Translators: Calendar grid abbreviation for Wednesday
#: ../js/ui/calendar.js:82
#: ../js/ui/calendar.js:90
msgctxt "grid wednesday"
msgid "W"
msgstr "Ś"
#. Translators: Calendar grid abbreviation for Thursday
#: ../js/ui/calendar.js:84
#: ../js/ui/calendar.js:92
msgctxt "grid thursday"
msgid "T"
msgstr "C"
#. Translators: Calendar grid abbreviation for Friday
#: ../js/ui/calendar.js:86
#: ../js/ui/calendar.js:94
msgctxt "grid friday"
msgid "F"
msgstr "P"
#. Translators: Calendar grid abbreviation for Saturday
#: ../js/ui/calendar.js:88
#: ../js/ui/calendar.js:96
msgctxt "grid saturday"
msgid "S"
msgstr "S"
#: ../js/ui/calendar.js:416
#: ../js/ui/calendar.js:566
msgid "Previous month"
msgstr "Poprzedni miesiąc"
#: ../js/ui/calendar.js:426
#: ../js/ui/calendar.js:576
msgid "Next month"
msgstr "Następny miesiąc"
#: ../js/ui/calendar.js:579
#, no-javascript-format
msgctxt "date day number format"
msgid "%d"
msgstr "%d"
#: ../js/ui/calendar.js:634
#: ../js/ui/calendar.js:783
msgid "Week %V"
msgstr "%V. tydzień"
msgstr "%V tydzień"
#. 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:695
#: ../js/ui/calendar.js:1188
msgctxt "event list time"
msgid "All Day"
msgstr "Cały dzień"
#: ../js/ui/calendar.js:821
#: ../js/ui/calendar.js:1291
msgid "Clear section"
msgstr "Wyczyść"
#: ../js/ui/calendar.js:1518
msgid "Events"
msgstr "Wydarzenia"
#: ../js/ui/calendar.js:830
#: ../js/ui/calendar.js:1527
msgctxt "calendar heading"
msgid "%A, %B %d"
msgstr "%A, %e %B"
#: ../js/ui/calendar.js:834
#: ../js/ui/calendar.js:1531
msgctxt "calendar heading"
msgid "%A, %B %d, %Y"
msgstr "%A, %e %B %Y"
#: ../js/ui/calendar.js:919
#: ../js/ui/calendar.js:1616
msgid "Notifications"
msgstr "Powiadomienia"
#: ../js/ui/calendar.js:1070
#: ../js/ui/calendar.js:1767
msgid "No Notifications"
msgstr "Brak powiadomień"
#: ../js/ui/calendar.js:1073
#: ../js/ui/calendar.js:1770
msgid "No Events"
msgstr "Brak wydarzeń"
@ -674,7 +640,7 @@ msgstr "Podłączono dysk zewnętrzny"
msgid "External drive disconnected"
msgstr "Odłączono dysk zewnętrzny"
#: ../js/ui/components/autorunManager.js:355
#: ../js/ui/components/autorunManager.js:354
#, javascript-format
msgid "Open with %s"
msgstr "Otwórz za pomocą „%s”"
@ -800,7 +766,7 @@ msgstr "To nie zadziałało. Proszę spróbować ponownie."
#. Translators: this is the other person changing their old IM name to their new
#. IM name.
#: ../js/ui/components/telepathyClient.js:760
#: ../js/ui/components/telepathyClient.js:759
#, javascript-format
msgid "%s is now known as %s"
msgstr "Użytkownik %s jest teraz znany jako %s"
@ -993,11 +959,11 @@ msgid "Keyboard"
msgstr "Klawiatura"
#. translators: 'Hide' is a verb
#: ../js/ui/legacyTray.js:65
#: ../js/ui/legacyTray.js:66
msgid "Hide tray"
msgstr "Ukryj obszar powiadamiania"
#: ../js/ui/legacyTray.js:106
#: ../js/ui/legacyTray.js:107
msgid "Status Icons"
msgstr "Ikony stanu"
@ -1025,7 +991,7 @@ msgstr "Włączone"
#. translators:
#. * The device has been disabled
#: ../js/ui/lookingGlass.js:719 ../src/gvc/gvc-mixer-control.c:1866
#: ../js/ui/lookingGlass.js:719 ../src/gvc/gvc-mixer-control.c:1830
msgid "Disabled"
msgstr "Wyłączone"
@ -1049,26 +1015,10 @@ msgstr "Wyświetl źródło"
msgid "Web Page"
msgstr "Strona WWW"
#: ../js/ui/messageList.js:543
msgid "Clear section"
msgstr "Wyczyść"
#: ../js/ui/messageTray.js:1486
msgid "System Information"
msgstr "Informacje systemowe"
#: ../js/ui/mpris.js:194
msgid "Unknown artist"
msgstr "Nieznany wykonawca"
#: ../js/ui/mpris.js:195
msgid "Unknown title"
msgstr "Nieznany tytuł"
#: ../js/ui/mpris.js:217
msgid "Media"
msgstr "Multimedia"
#: ../js/ui/overview.js:84
msgid "Undo"
msgstr "Cofnij"
@ -1085,22 +1035,17 @@ msgstr "Podgląd"
msgid "Type to search…"
msgstr "Wyszukiwanie…"
#: ../js/ui/panel.js:358
#: ../js/ui/panel.js:352
msgid "Quit"
msgstr "Zakończ"
#. 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 "Podgląd"
#: ../js/ui/panel.js:695
msgctxt "System menu in the top bar"
msgid "System"
msgstr "Menu systemowe"
#: ../js/ui/panel.js:807
#: ../js/ui/panel.js:754
msgid "Top Bar"
msgstr "Górny pasek"
@ -1113,15 +1058,15 @@ msgstr "Górny pasek"
msgid "toggle-switch-us"
msgstr "toggle-switch-intl"
#: ../js/ui/runDialog.js:71
#: ../js/ui/runDialog.js:70
msgid "Enter a Command"
msgstr "Proszę wprowadzić polecenie:"
msgstr "Proszę wprowadzić polecenie"
#: ../js/ui/runDialog.js:111 ../js/ui/windowMenu.js:162
#: ../js/ui/runDialog.js:110 ../js/ui/windowMenu.js:162
msgid "Close"
msgstr "Zamknij"
#: ../js/ui/runDialog.js:282
#: ../js/ui/runDialog.js:281
msgid "Restarting…"
msgstr "Ponowne uruchamianie…"
@ -1147,7 +1092,7 @@ msgstr[0] "%d nowe powiadomienie"
msgstr[1] "%d nowe powiadomienia"
msgstr[2] "%d nowych powiadomień"
#: ../js/ui/screenShield.js:432 ../js/ui/status/system.js:379
#: ../js/ui/screenShield.js:432 ../js/ui/status/system.js:374
msgid "Lock"
msgstr "Zablokuj ekran"
@ -1246,16 +1191,19 @@ msgstr "Wysoki kontrast"
msgid "Large Text"
msgstr "Duży 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 "Wyłącz"
#: ../js/ui/status/bluetooth.js:56
#: ../js/ui/status/bluetooth.js:54
msgid "Bluetooth Settings"
msgstr "Ustawienia Bluetooth"
#. 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"
@ -1263,25 +1211,10 @@ msgstr[0] "%d połączone urządzenie"
msgstr[1] "%d połączone urządzenia"
msgstr[2] "%d połączonych urządzeń"
#: ../js/ui/status/bluetooth.js:138
msgid "Off"
msgstr "Wyłączono"
#: ../js/ui/status/bluetooth.js:140
#: ../js/ui/status/bluetooth.js:107
msgid "Not In Use"
msgstr "Nieużywane"
#: ../js/ui/status/bluetooth.js:142 ../js/ui/status/network.js:1279
msgid "Turn On"
msgstr "Włącz"
#: ../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 "Wyłącz"
#: ../js/ui/status/brightness.js:44
msgid "Brightness"
msgstr "Jasność"
@ -1290,49 +1223,30 @@ msgstr "Jasność"
msgid "Show Keyboard Layout"
msgstr "Wyświetl układ klawiatury"
#: ../js/ui/status/location.js:107 ../js/ui/status/location.js:215
#: ../js/ui/status/location.js:71 ../js/ui/status/location.js:177
msgid "Location Enabled"
msgstr "Włączono ustalanie położenia"
msgstr "Włączono położenie"
#: ../js/ui/status/location.js:108 ../js/ui/status/location.js:216
#: ../js/ui/status/location.js:72 ../js/ui/status/location.js:178
msgid "Disable"
msgstr "Wyłącz"
#: ../js/ui/status/location.js:109
#: ../js/ui/status/location.js:73
msgid "Privacy Settings"
msgstr "Ustawienia prywatności"
#: ../js/ui/status/location.js:214
#: ../js/ui/status/location.js:176
msgid "Location In Use"
msgstr "Ustalanie położenia jest używane"
msgstr "Położenie jest używane"
#: ../js/ui/status/location.js:218
#: ../js/ui/status/location.js:180
msgid "Location Disabled"
msgstr "Wyłączono ustalanie położenia"
msgstr "Wyłączono położenie"
#: ../js/ui/status/location.js:219
#: ../js/ui/status/location.js:181
msgid "Enable"
msgstr "Włącz"
#: ../js/ui/status/location.js:426
msgid "Deny Access"
msgstr "Odmów dostępu"
#: ../js/ui/status/location.js:429
msgid "Grant Access"
msgstr "Udziel dostępu"
#. Translators: %s is an application name
#: ../js/ui/status/location.js:435
#, javascript-format
msgid "Give %s access to your location?"
msgstr "Udzielić programowi „%s” dostępu do położenia użytkownika?"
#: ../js/ui/status/location.js:437
msgid "Location access can be changed at any time from the privacy settings."
msgstr ""
"W każdej chwili można zmienić dostęp do położenia w ustawieniach prywatności."
#: ../js/ui/status/network.js:101
msgid "<unknown>"
msgstr "<nieznane>"
@ -1468,6 +1382,10 @@ msgstr "Wybierz sieć"
msgid "Wi-Fi Settings"
msgstr "Ustawienia sieci Wi-Fi"
#: ../js/ui/status/network.js:1279
msgid "Turn On"
msgstr "Włącz"
#. Translators: %s is a network identifier
#: ../js/ui/status/network.js:1296
#, javascript-format
@ -1517,37 +1435,32 @@ msgstr "Połączenie się nie powiodło"
msgid "Activation of network connection failed"
msgstr "Aktywacja połączenia sieciowego się nie powiodła"
#: ../js/ui/status/power.js:61
#: ../js/ui/status/power.js:49
msgid "Power Settings"
msgstr "Ustawienia zasilania"
#: ../js/ui/status/power.js:77
#: ../js/ui/status/power.js:65
msgid "Fully Charged"
msgstr "Naładowane"
#. 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 "Obliczanie…"
#. 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 "Pozostało: %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 "Do naładowania: %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.
@ -1555,27 +1468,27 @@ msgstr "%d%%"
msgid "Airplane Mode On"
msgstr "Włączono tryb samolotowy"
#: ../js/ui/status/system.js:348
#: ../js/ui/status/system.js:343
msgid "Switch User"
msgstr "Przełącz użytkownika"
#: ../js/ui/status/system.js:353
#: ../js/ui/status/system.js:348
msgid "Log Out"
msgstr "Wyloguj się"
#: ../js/ui/status/system.js:358
#: ../js/ui/status/system.js:353
msgid "Account Settings"
msgstr "Ustawienia konta"
#: ../js/ui/status/system.js:375
#: ../js/ui/status/system.js:370
msgid "Orientation Lock"
msgstr "Blokada orientacji"
#: ../js/ui/status/system.js:383
#: ../js/ui/status/system.js:378
msgid "Suspend"
msgstr "Uśpij"
#: ../js/ui/status/system.js:386
#: ../js/ui/status/system.js:381
msgid "Power Off"
msgstr "Wyłącz komputer"
@ -1587,6 +1500,10 @@ msgstr "Zmieniono głośność"
msgid "Volume"
msgstr "Głośność"
#: ../js/ui/status/volume.js:213
msgid "Microphone"
msgstr "Mikrofon"
#: ../js/ui/unlockDialog.js:67
msgid "Log in as another user"
msgstr "Zaloguj jako inny użytkownik"
@ -1708,7 +1625,7 @@ msgstr "Kalendarz programu Evolution"
#. translators:
#. * The number of sound outputs on a particular device
#: ../src/gvc/gvc-mixer-control.c:1873
#: ../src/gvc/gvc-mixer-control.c:1837
#, c-format
msgid "%u Output"
msgid_plural "%u Outputs"
@ -1718,7 +1635,7 @@ msgstr[2] "%u wyjść"
#. translators:
#. * The number of sound inputs on a particular device
#: ../src/gvc/gvc-mixer-control.c:1883
#: ../src/gvc/gvc-mixer-control.c:1847
#, c-format
msgid "%u Input"
msgid_plural "%u Inputs"
@ -1726,57 +1643,44 @@ msgstr[0] "%u wejście"
msgstr[1] "%u wejścia"
msgstr[2] "%u wejść"
#: ../src/gvc/gvc-mixer-control.c:2738
#: ../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"
#: ../src/shell-app.c:246
#: ../src/shell-app.c:239
msgctxt "program"
msgid "Unknown"
msgstr "Nieznany"
#: ../src/shell-app.c:487
#: ../src/shell-app.c:480
#, c-format
msgid "Failed to launch “%s”"
msgstr "Uruchomienie „%s” się nie powiodło"
#: ../src/shell-keyring-prompt.c:730
#: ../src/shell-keyring-prompt.c:742
msgid "Passwords do not match."
msgstr "Hasła się nie zgadzają."
#: ../src/shell-keyring-prompt.c:738
#: ../src/shell-keyring-prompt.c:750
msgid "Password cannot be blank"
msgstr "Hasło nie może być puste"
#: ../src/shell-polkit-authentication-agent.c:353
#: ../src/shell-polkit-authentication-agent.c:346
msgid "Authentication dialog was dismissed by the user"
msgstr "Okno dialogowe uwierzytelnienia zostało odrzucone przez użytkownika"
msgctxt "title"
msgid "Restart & Install Upgrade"
msgstr "Ponowne uruchomienie i instalacja aktualizacji"
msgid ""
"%s %s will be installed after restart. Upgrade installation can take a "
"long time: ensure that you have backed up and that the computer is "
"plugged in."
msgstr ""
"System %s %s zostanie zainstalowany po ponownym uruchomieniu. Instalacja "
"aktualizacji może zająć dużo czasu. Proszę się upewnić, że wykonano kopię "
"zapasową danych i podłączono komputer do prądu."

573
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

529
po/ru.po

File diff suppressed because it is too large Load Diff

729
po/sk.po

File diff suppressed because it is too large Load Diff

788
po/sl.po

File diff suppressed because it is too large Load Diff

382
po/sr.po
View File

@ -1,28 +1,28 @@
# Serbian translation for gnome-shell.
# Courtesy of Prevod.org team (http://prevod.org/) -- 2010—2016.
# Courtesy of Prevod.org team (http://prevod.org/) -- 2010—2015.
# Copyright (C) 2010 gnome-shell's COPYRIGHT HOLDER
# This file is distributed under the same license as the gnome-shell package.
#
# Translators:
# Милош Поповић <gpopac@gmail.com>, 2010—2011.
# Мирослав Николић <miroslavnikolic@rocketmail.com>, 2011—2016.
# Марко М. Костић <marko.m.kostic@gmail.com>, 2016.
# Мирослав Николић <miroslavnikolic@rocketmail.com>, 2011—2015.
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: 2016-03-10 22:19+0000\n"
"PO-Revision-Date: 2016-03-11 02:53+0200\n"
"Last-Translator: Мирослав Николић <miroslavnikolic@rocketmail.com>\n"
"Language-Team: Serbian <(gnom@prevod.org)>\n"
"POT-Creation-Date: 2015-09-22 08:38+0000\n"
"PO-Revision-Date: 2015-09-22 13:35+0200\n"
"Last-Translator: Марко М. Костић (Marko M. Kostić) <marko.m.kostic@gmail."
"com>\n"
"Language-Team: Serbian <gnom@prevod.org>\n"
"Language: sr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=4; plural=n==1? 3 : n%10==1 && n%100!=11 ? 0 : "
"n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
"Plural-Forms: nplurals=4; plural=n==1? 3 : n%10==1 && n%100!=11 ? 0 : n"
"%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
"X-Project-Style: gnome\n"
"X-Generator: Poedit 1.8.4\n"
"X-Poedit-Bookmarks: -1,224,-1,-1,-1,-1,-1,-1,-1,-1\n"
#: ../data/50-gnome-shell-system.xml.in.h:1
msgid "System"
@ -48,6 +48,15 @@ msgstr "Прикажи све програме"
msgid "Open the application menu"
msgstr "Отворите изборник програма"
#: ../data/gnome-shell.desktop.in.in.h:1
msgid "GNOME Shell"
msgstr "Гномова шкољка"
#: ../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 "Поставке проширења Гномове шкољке"
@ -56,13 +65,9 @@ msgstr "Поставке проширења Гномове шкољке"
msgid "Configure GNOME Shell Extensions"
msgstr "Подесите проширења Гномове шкољке"
#: ../data/org.gnome.Shell.desktop.in.in.h:1
msgid "GNOME Shell"
msgstr "Гномова шкољка"
#: ../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 "Гномова шкољка (вајланд састављач)"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:1
msgid "Enable internal tools useful for developers and testers from Alt-F2"
@ -167,91 +172,74 @@ 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 "Да ли је основни адаптер блутута подесио њему придружене уређаје"
#: ../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 "Приказује дан у недељи у календару"
#: ../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 "Ако је изабрано, приказује ИСО дан у недељи у календару."
#: ../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."
@ -259,11 +247,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-"
@ -273,7 +261,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."
@ -281,30 +269,30 @@ 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 ""
"Овај кључ превазилази кључ у „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 "Застој првог плана се мења у режиму миша док се показивач не заустави"
@ -312,52 +300,51 @@ msgstr "Застој првог плана се мења у режиму миш
msgid "Network Login"
msgstr "Мрежна пријава"
#: ../js/extensionPrefs/main.js:117
#: ../js/extensionPrefs/main.js:122
#, javascript-format
msgid "There was an error loading the preferences dialog for %s:"
msgstr "Дошло је до грешке при учитавању прозорчета поставки за „%s“:"
#: ../js/extensionPrefs/main.js:149
#: ../js/extensionPrefs/main.js:154
msgid "GNOME Shell Extensions"
msgstr "Проширења Гномове шкољке"
#: ../js/gdm/authPrompt.js:147 ../js/ui/audioDeviceSelection.js:71
#: ../js/ui/components/networkAgent.js:145
#: ../js/gdm/authPrompt.js:147 ../js/ui/components/networkAgent.js:145
#: ../js/ui/components/polkitAgent.js:179 ../js/ui/endSessionDialog.js:452
#: ../js/ui/extensionDownloader.js:195 ../js/ui/shellMountOperation.js:399
#: ../js/ui/status/network.js:916
msgid "Cancel"
msgstr "Откажи"
#: ../js/gdm/authPrompt.js:169 ../js/gdm/authPrompt.js:216
#: ../js/gdm/authPrompt.js:448
#: ../js/gdm/authPrompt.js:169 ../js/gdm/authPrompt.js:215
#: ../js/gdm/authPrompt.js:447
msgid "Next"
msgstr "Даље"
#: ../js/gdm/authPrompt.js:212 ../js/ui/shellMountOperation.js:403
#: ../js/gdm/authPrompt.js:211 ../js/ui/shellMountOperation.js:403
#: ../js/ui/unlockDialog.js:59
msgid "Unlock"
msgstr "Откључај"
#: ../js/gdm/authPrompt.js:214
#: ../js/gdm/authPrompt.js:213
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)"
@ -365,12 +352,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)
#: ../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 "Прозор за пријављивање"
@ -506,36 +493,16 @@ msgstr "Додај у омиљене"
msgid "Show Details"
msgstr "Прикажи детаље"
#: ../js/ui/appFavorites.js:134
#: ../js/ui/appFavorites.js:132
#, javascript-format
msgid "%s has been added to your favorites."
msgstr "„%s“ је додат међу омиљене."
#: ../js/ui/appFavorites.js:168
#: ../js/ui/appFavorites.js:166
#, javascript-format
msgid "%s has been removed from your favorites."
msgstr "„%s“ је уклоњен из омиљених."
#: ../js/ui/audioDeviceSelection.js:59
msgid "Select Audio Device"
msgstr "Изаберите звучни уређај"
#: ../js/ui/audioDeviceSelection.js:69
msgid "Sound Settings"
msgstr "Подешавања звука"
#: ../js/ui/audioDeviceSelection.js:78
msgid "Headphones"
msgstr "Слушалице"
#: ../js/ui/audioDeviceSelection.js:80
msgid "Headset"
msgstr "Слушалице са микрофоном"
#: ../js/ui/audioDeviceSelection.js:82 ../js/ui/status/volume.js:213
msgid "Microphone"
msgstr "Микрофон"
#: ../js/ui/backgroundMenu.js:19
msgid "Change Background…"
msgstr "Измени позадину…"
@ -544,12 +511,13 @@ 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).
#: ../js/ui/calendar.js:47
#: ../js/ui/calendar.js:55
msgctxt "calendar-no-work"
msgid "06"
msgstr "06"
@ -559,96 +527,94 @@ 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:76
#: ../js/ui/calendar.js:84
msgctxt "grid sunday"
msgid "S"
msgstr "Н"
#. Translators: Calendar grid abbreviation for Monday
#: ../js/ui/calendar.js:78
#: ../js/ui/calendar.js:86
msgctxt "grid monday"
msgid "M"
msgstr "П"
#. Translators: Calendar grid abbreviation for Tuesday
#: ../js/ui/calendar.js:80
#: ../js/ui/calendar.js:88
msgctxt "grid tuesday"
msgid "T"
msgstr "У"
#. Translators: Calendar grid abbreviation for Wednesday
#: ../js/ui/calendar.js:82
#: ../js/ui/calendar.js:90
msgctxt "grid wednesday"
msgid "W"
msgstr "С"
#. Translators: Calendar grid abbreviation for Thursday
#: ../js/ui/calendar.js:84
#: ../js/ui/calendar.js:92
msgctxt "grid thursday"
msgid "T"
msgstr "Ч"
#. Translators: Calendar grid abbreviation for Friday
#: ../js/ui/calendar.js:86
#: ../js/ui/calendar.js:94
msgctxt "grid friday"
msgid "F"
msgstr "П"
#. Translators: Calendar grid abbreviation for Saturday
#: ../js/ui/calendar.js:88
#: ../js/ui/calendar.js:96
msgctxt "grid saturday"
msgid "S"
msgstr "С"
#: ../js/ui/calendar.js:416
#: ../js/ui/calendar.js:566
msgid "Previous month"
msgstr "Претходни месец"
#: ../js/ui/calendar.js:426
#: ../js/ui/calendar.js:576
msgid "Next month"
msgstr "Следећи месец"
#: ../js/ui/calendar.js:579
#, no-javascript-format
msgctxt "date day number format"
msgid "%d"
msgstr "%d"
#: ../js/ui/calendar.js:634
#: ../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:695
#: ../js/ui/calendar.js:1188
msgctxt "event list time"
msgid "All Day"
msgstr "Цео дан"
#: ../js/ui/calendar.js:821
#: ../js/ui/calendar.js:1291
msgid "Clear section"
msgstr "Очисти одељак"
#: ../js/ui/calendar.js:1518
msgid "Events"
msgstr "Догађаји"
#: ../js/ui/calendar.js:830
#: ../js/ui/calendar.js:1527
msgctxt "calendar heading"
msgid "%A, %B %d"
msgstr "%A, %d. %B"
#: ../js/ui/calendar.js:834
#: ../js/ui/calendar.js:1531
msgctxt "calendar heading"
msgid "%A, %B %d, %Y"
msgstr "%A, %d. %B %Y."
#: ../js/ui/calendar.js:919
#: ../js/ui/calendar.js:1616
msgid "Notifications"
msgstr "Обавештења"
#: ../js/ui/calendar.js:1070
#: ../js/ui/calendar.js:1767
msgid "No Notifications"
msgstr "Без обавештења"
#: ../js/ui/calendar.js:1073
#: ../js/ui/calendar.js:1770
msgid "No Events"
msgstr "Без догађаја"
@ -660,7 +626,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"
@ -982,11 +948,11 @@ msgid "Keyboard"
msgstr "Тастатура"
#. translators: 'Hide' is a verb
#: ../js/ui/legacyTray.js:65
#: ../js/ui/legacyTray.js:66
msgid "Hide tray"
msgstr "Сакриј касету"
#: ../js/ui/legacyTray.js:106
#: ../js/ui/legacyTray.js:107
msgid "Status Icons"
msgstr "Иконице стања"
@ -1014,7 +980,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 "Искључено"
@ -1038,26 +1004,10 @@ msgstr "Прикажи код"
msgid "Web Page"
msgstr "Веб страница"
#: ../js/ui/messageList.js:543
msgid "Clear section"
msgstr "Очисти одељак"
#: ../js/ui/messageTray.js:1486
msgid "System Information"
msgstr "Подаци о систему"
#: ../js/ui/mpris.js:194
msgid "Unknown artist"
msgstr "Непознат извођач"
#: ../js/ui/mpris.js:195
msgid "Unknown title"
msgstr "Непознат наслов"
#: ../js/ui/mpris.js:217
msgid "Media"
msgstr "Медији"
#: ../js/ui/overview.js:84
msgid "Undo"
msgstr "Опозови"
@ -1074,22 +1024,17 @@ msgstr "Преглед"
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
#: ../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 "Горња трака"
@ -1102,15 +1047,15 @@ msgstr "Горња трака"
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 "Поновно покрећем…"
@ -1237,16 +1182,19 @@ msgstr "Велики контраст"
msgid "Large Text"
msgstr "Велики текст"
#: ../js/ui/status/bluetooth.js:47
msgid "Bluetooth"
msgstr "Блутут"
#: ../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:56
#: ../js/ui/status/bluetooth.js:54
msgid "Bluetooth Settings"
msgstr "Подешавања Блутута"
#. 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"
@ -1255,25 +1203,10 @@ msgstr[1] "%d повезана"
msgstr[2] "%d повезано"
msgstr[3] "%d повезан"
#: ../js/ui/status/bluetooth.js:138
msgid "Off"
msgstr "Искљ."
#: ../js/ui/status/bluetooth.js:140
#: ../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"
msgstr "Осветљеност"
@ -1282,50 +1215,30 @@ msgstr "Осветљеност"
msgid "Show Keyboard Layout"
msgstr "Покажи распоред тастатуре"
#: ../js/ui/status/location.js:107 ../js/ui/status/location.js:215
#: ../js/ui/status/location.js:71 ../js/ui/status/location.js:177
msgid "Location Enabled"
msgstr "Одређивање места укључено"
#: ../js/ui/status/location.js:108 ../js/ui/status/location.js:216
#: ../js/ui/status/location.js:72 ../js/ui/status/location.js:178
msgid "Disable"
msgstr "Искључи"
#: ../js/ui/status/location.js:109
#: ../js/ui/status/location.js:73
msgid "Privacy Settings"
msgstr "Подешавања приватности"
#: ../js/ui/status/location.js:214
#: ../js/ui/status/location.js:176
msgid "Location In Use"
msgstr "Одређивање места се користи"
#: ../js/ui/status/location.js:218
#: ../js/ui/status/location.js:180
msgid "Location Disabled"
msgstr "Одређивање места искључено"
#: ../js/ui/status/location.js:219
#: ../js/ui/status/location.js:181
msgid "Enable"
msgstr "Укључи"
#: ../js/ui/status/location.js:426
msgid "Deny Access"
msgstr "Забрани приступ"
#: ../js/ui/status/location.js:429
msgid "Grant Access"
msgstr "Дозволи приступ"
#. Translators: %s is an application name
#: ../js/ui/status/location.js:435
#, javascript-format
msgid "Give %s access to your location?"
msgstr "Да ли да „%s“ дам приступ вашем месту?"
#: ../js/ui/status/location.js:437
msgid "Location access can be changed at any time from the privacy settings."
msgstr ""
"Приступ месту можете да измените у било које време у подешавањима "
"приватности."
#: ../js/ui/status/network.js:101
msgid "<unknown>"
msgstr "<непознато>"
@ -1461,6 +1374,10 @@ msgstr "Изабери мрежу"
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
#, javascript-format
@ -1510,36 +1427,31 @@ 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%%)"
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%%)"
msgstr "%d:%02d до краја пуњења (%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 до краја пуњења (%d%%)"
#. The menu only appears when airplane mode is on, so just
#. statically build it as if it was on, rather than dynamically
@ -1580,9 +1492,13 @@ msgstr "Промена јачине звука"
msgid "Volume"
msgstr "Јачина звука"
#: ../js/ui/status/volume.js:213
msgid "Microphone"
msgstr "Микрофон"
#: ../js/ui/unlockDialog.js:67
msgid "Log in as another user"
msgstr "Пријавите се као други корисник"
msgstr "Пријавите се као други корсник"
#: ../js/ui/unlockDialog.js:84
msgid "Unlock Window"
@ -1702,7 +1618,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"
@ -1713,7 +1629,7 @@ msgstr[3] "%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"
@ -1722,53 +1638,50 @@ msgstr[1] "%u улаза"
msgstr[2] "%u улаза"
msgstr[3] "%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 "Који режим користи ГДМ за екран пријављивања"
#: ../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 "%s is requesting access to your location."
#~ msgstr "„%s“ захтева приступ вашем месту."
#~ msgid "GNOME Shell (wayland compositor)"
#~ msgstr "Гномова шкољка (вајланд састављач)"
#~ msgid "Bluetooth"
#~ msgstr "Блутут"
#~ msgid "%d Connected Device"
#~ msgid_plural "%d Connected Devices"
@ -1777,6 +1690,9 @@ msgstr "Корисник је одбацио прозорче за потврђ
#~ msgstr[2] "%d прикључених уређаја"
#~ msgstr[3] "%d прикључени уређај"
#~ msgid "Off"
#~ msgstr "Искљ."
#~ msgid "Authentication required"
#~ msgstr "Потребно је потврђивање идентитета"
@ -1982,6 +1898,9 @@ msgstr "Корисник је одбацио прозорче за потврђ
#~ msgid "View account"
#~ msgstr "Види налог"
#~ msgid "Unknown reason"
#~ msgstr "Непознат разлог"
#~ msgid "Open Calendar"
#~ msgstr "Отвори календар"
@ -2083,6 +2002,9 @@ msgstr "Корисник је одбацио прозорче за потврђ
#~ msgid "Device %s wants access to the service '%s'"
#~ msgstr "Уређај „%s“ жели приступ услузи „%s“"
#~ msgid "Always grant access"
#~ msgstr "Увек дозволи приступ"
#~ msgid "Grant this time only"
#~ msgstr "Одобри само овај пут"

View File

@ -1,28 +1,28 @@
# Serbian translation for gnome-shell.
# Courtesy of Prevod.org team (http://prevod.org/) -- 2010—2016.
# Courtesy of Prevod.org team (http://prevod.org/) -- 2010—2015.
# Copyright (C) 2010 gnome-shell's COPYRIGHT HOLDER
# This file is distributed under the same license as the gnome-shell package.
#
# Translators:
# Miloš Popović <gpopac@gmail.com>, 2010—2011.
# Miroslav Nikolić <miroslavnikolic@rocketmail.com>, 2011—2016.
# Marko M. Kostić <marko.m.kostic@gmail.com>, 2016.
# Miroslav Nikolić <miroslavnikolic@rocketmail.com>, 2011—2015.
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: 2016-03-10 22:19+0000\n"
"PO-Revision-Date: 2016-03-11 02:53+0200\n"
"Last-Translator: Miroslav Nikolić <miroslavnikolic@rocketmail.com>\n"
"Language-Team: Serbian <(gnom@prevod.org)>\n"
"POT-Creation-Date: 2015-09-22 08:38+0000\n"
"PO-Revision-Date: 2015-09-22 13:35+0200\n"
"Last-Translator: Marko M. Kostić (Marko M. Kost) <marko.m.kostic@gmail."
"com>\n"
"Language-Team: Serbian <gnom@prevod.org>\n"
"Language: sr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=4; plural=n==1? 3 : n%10==1 && n%100!=11 ? 0 : "
"n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
"Plural-Forms: nplurals=4; plural=n==1? 3 : n%10==1 && n%100!=11 ? 0 : n"
"%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
"X-Project-Style: gnome\n"
"X-Generator: Poedit 1.8.4\n"
"X-Poedit-Bookmarks: -1,224,-1,-1,-1,-1,-1,-1,-1,-1\n"
#: ../data/50-gnome-shell-system.xml.in.h:1
msgid "System"
@ -48,6 +48,15 @@ msgstr "Prikaži sve programe"
msgid "Open the application menu"
msgstr "Otvorite izbornik programa"
#: ../data/gnome-shell.desktop.in.in.h:1
msgid "GNOME Shell"
msgstr "Gnomova školjka"
#: ../data/gnome-shell.desktop.in.in.h:2
#: ../data/gnome-shell-wayland.desktop.in.in.h:2
msgid "Window management and application launching"
msgstr "Upravnik prozorima i pokretač programa"
#: ../data/gnome-shell-extension-prefs.desktop.in.in.h:1
msgid "GNOME Shell Extension Preferences"
msgstr "Postavke proširenja Gnomove školjke"
@ -56,13 +65,9 @@ msgstr "Postavke proširenja Gnomove školjke"
msgid "Configure GNOME Shell Extensions"
msgstr "Podesite proširenja Gnomove školjke"
#: ../data/org.gnome.Shell.desktop.in.in.h:1
msgid "GNOME Shell"
msgstr "Gnomova školjka"
#: ../data/org.gnome.Shell.desktop.in.in.h:2
msgid "Window management and application launching"
msgstr "Upravnik prozorima i pokretač programa"
#: ../data/gnome-shell-wayland.desktop.in.in.h:1
msgid "GNOME Shell (wayland compositor)"
msgstr "Gnomova školjka (vajland sastavljač)"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:1
msgid "Enable internal tools useful for developers and testers from Alt-F2"
@ -167,91 +172,74 @@ msgstr ""
"polja za izbor."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:18
msgid ""
"Whether the default Bluetooth adapter had set up devices associated to it"
msgstr "Da li je osnovni adapter blututa podesio njemu pridružene uređaje"
#: ../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 ""
"Školjka će prikazati stavku izbornika blututa samo ako je adapter blututa "
"upaljen, ili ako ima podešenih uređaja pridruženih osnovnom adapteru. Ovo će "
"se vratiti na početno stanje ako se ustanovi da osnovni adapter nema njemu "
"pridruženih uređaja."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:20
msgid "Show the week date in the calendar"
msgstr "Prikazuje dan u nedelji u kalendaru"
#: ../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 "Ako je izabrano, prikazuje ISO dan u nedelji u kalendaru."
#: ../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 "Prečica za otvaranje izbornika programa"
#: ../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 "Prečica za otvaranje izbornika programa."
#: ../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 "Prečica za otvaranje pregleda „Prikaži programe“"
#: ../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 "Prečica za otvaranje pregleda „Prikaži programe“ u pregledu aktivnosti."
#: ../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 "Prečica za otvaranje pregleda"
#: ../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 "Prečica za otvaranje pregleda aktivnosti."
#: ../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 "Prečica za okidanje vidljivosti spiska obaveštenja"
#: ../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 "Prečica za okidanje vidljivosti spiska obaveštenja."
#: ../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 "Prečica za postavljanje u žižu radnog obaveštenja"
#: ../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 "Prečica za postavljanje u žižu radnog obaveštenja."
#: ../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 ""
"Sveza tastera koja pauzira i nastavlja sve pokrenute blizance, za svrhe "
"pročišćavanja"
#: ../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 "Koja će tastatura biti korišćena"
#: ../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 "Vrsta tastature za upotrebu."
#: ../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 "Ograničava prebacivača na tekući radni prostor."
#: ../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."
@ -259,11 +247,11 @@ msgstr ""
"Ako je izabrano, samo programi koji imaju prozore na tekućem radnom prostoru "
"se prikazuju u prebacivaču. U suprotnom, svi programi su uključeni."
#: ../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 "Režim ikonice programa."
#: ../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-"
@ -273,7 +261,7 @@ msgstr ""
"„thumbnail-only“ (prikazuje sličicu prozora), „app-icon-only“ (prikazuje "
"samo ikonicu programa) ili „both“ (oba)."
#: ../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."
@ -281,30 +269,30 @@ msgstr ""
"Ako je izabrano, samo prozori sa tekućeg radnog prostora se prikazuju u "
"prebacivaču. U suprotnom, svi prozori su uključeni."
#: ../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 "Prikačinje prozorče roditeljskom prozoru"
#: ../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 ""
"Ovaj ključ prevazilazi ključ u „org.gnome.mutter“ kada pokreće Gnomovu školjku."
#: ../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 ""
"Uključuje popločavanje ivice prilikom otpuštanja prozora na ivicama ekrana"
#: ../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 "Radnim prostorima se upravlja dinamički"
#: ../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 "Radni prostori samo na primarnom monitoru"
#: ../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 "Zastoj prvog plana se menja u režimu miša dok se pokazivač ne zaustavi"
@ -312,52 +300,51 @@ msgstr "Zastoj prvog plana se menja u režimu miša dok se pokazivač ne zaustav
msgid "Network Login"
msgstr "Mrežna prijava"
#: ../js/extensionPrefs/main.js:117
#: ../js/extensionPrefs/main.js:122
#, javascript-format
msgid "There was an error loading the preferences dialog for %s:"
msgstr "Došlo je do greške pri učitavanju prozorčeta postavki za „%s“:"
#: ../js/extensionPrefs/main.js:149
#: ../js/extensionPrefs/main.js:154
msgid "GNOME Shell Extensions"
msgstr "Proširenja Gnomove školjke"
#: ../js/gdm/authPrompt.js:147 ../js/ui/audioDeviceSelection.js:71
#: ../js/ui/components/networkAgent.js:145
#: ../js/gdm/authPrompt.js:147 ../js/ui/components/networkAgent.js:145
#: ../js/ui/components/polkitAgent.js:179 ../js/ui/endSessionDialog.js:452
#: ../js/ui/extensionDownloader.js:195 ../js/ui/shellMountOperation.js:399
#: ../js/ui/status/network.js:916
msgid "Cancel"
msgstr "Otkaži"
#: ../js/gdm/authPrompt.js:169 ../js/gdm/authPrompt.js:216
#: ../js/gdm/authPrompt.js:448
#: ../js/gdm/authPrompt.js:169 ../js/gdm/authPrompt.js:215
#: ../js/gdm/authPrompt.js:447
msgid "Next"
msgstr "Dalje"
#: ../js/gdm/authPrompt.js:212 ../js/ui/shellMountOperation.js:403
#: ../js/gdm/authPrompt.js:211 ../js/ui/shellMountOperation.js:403
#: ../js/ui/unlockDialog.js:59
msgid "Unlock"
msgstr "Otključaj"
#: ../js/gdm/authPrompt.js:214
#: ../js/gdm/authPrompt.js:213
msgctxt "button"
msgid "Sign In"
msgstr "Prijavi me"
#: ../js/gdm/loginDialog.js:285
#: ../js/gdm/loginDialog.js:281
msgid "Choose Session"
msgstr "Izaberi sesiju"
#. 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 "Nije na spisku?"
#. 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 "(npr., korisnik ili %s)"
@ -365,12 +352,12 @@ msgstr "(npr., korisnik ili %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 "Korisničko ime: "
#: ../js/gdm/loginDialog.js:1196
#: ../js/gdm/loginDialog.js:1184
msgid "Login Window"
msgstr "Prozor za prijavljivanje"
@ -506,36 +493,16 @@ msgstr "Dodaj u omiljene"
msgid "Show Details"
msgstr "Prikaži detalje"
#: ../js/ui/appFavorites.js:134
#: ../js/ui/appFavorites.js:132
#, javascript-format
msgid "%s has been added to your favorites."
msgstr "„%s“ je dodat među omiljene."
#: ../js/ui/appFavorites.js:168
#: ../js/ui/appFavorites.js:166
#, javascript-format
msgid "%s has been removed from your favorites."
msgstr "„%s“ je uklonjen iz omiljenih."
#: ../js/ui/audioDeviceSelection.js:59
msgid "Select Audio Device"
msgstr "Izaberite zvučni uređaj"
#: ../js/ui/audioDeviceSelection.js:69
msgid "Sound Settings"
msgstr "Podešavanja zvuka"
#: ../js/ui/audioDeviceSelection.js:78
msgid "Headphones"
msgstr "Slušalice"
#: ../js/ui/audioDeviceSelection.js:80
msgid "Headset"
msgstr "Slušalice sa mikrofonom"
#: ../js/ui/audioDeviceSelection.js:82 ../js/ui/status/volume.js:213
msgid "Microphone"
msgstr "Mikrofon"
#: ../js/ui/backgroundMenu.js:19
msgid "Change Background…"
msgstr "Izmeni pozadinu…"
@ -544,12 +511,13 @@ msgstr "Izmeni pozadinu…"
msgid "Display Settings"
msgstr "Podešavanja prikaza"
#: ../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 "Podešavanja"
#. Translators: Enter 0-6 (Sunday-Saturday) for non-work days. Examples: "0" (Sunday) "6" (Saturday) "06" (Sunday and Saturday).
#: ../js/ui/calendar.js:47
#: ../js/ui/calendar.js:55
msgctxt "calendar-no-work"
msgid "06"
msgstr "06"
@ -559,96 +527,94 @@ 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:76
#: ../js/ui/calendar.js:84
msgctxt "grid sunday"
msgid "S"
msgstr "N"
#. Translators: Calendar grid abbreviation for Monday
#: ../js/ui/calendar.js:78
#: ../js/ui/calendar.js:86
msgctxt "grid monday"
msgid "M"
msgstr "P"
#. Translators: Calendar grid abbreviation for Tuesday
#: ../js/ui/calendar.js:80
#: ../js/ui/calendar.js:88
msgctxt "grid tuesday"
msgid "T"
msgstr "U"
#. Translators: Calendar grid abbreviation for Wednesday
#: ../js/ui/calendar.js:82
#: ../js/ui/calendar.js:90
msgctxt "grid wednesday"
msgid "W"
msgstr "S"
#. Translators: Calendar grid abbreviation for Thursday
#: ../js/ui/calendar.js:84
#: ../js/ui/calendar.js:92
msgctxt "grid thursday"
msgid "T"
msgstr "Č"
#. Translators: Calendar grid abbreviation for Friday
#: ../js/ui/calendar.js:86
#: ../js/ui/calendar.js:94
msgctxt "grid friday"
msgid "F"
msgstr "P"
#. Translators: Calendar grid abbreviation for Saturday
#: ../js/ui/calendar.js:88
#: ../js/ui/calendar.js:96
msgctxt "grid saturday"
msgid "S"
msgstr "S"
#: ../js/ui/calendar.js:416
#: ../js/ui/calendar.js:566
msgid "Previous month"
msgstr "Prethodni mesec"
#: ../js/ui/calendar.js:426
#: ../js/ui/calendar.js:576
msgid "Next month"
msgstr "Sledeći mesec"
#: ../js/ui/calendar.js:579
#, no-javascript-format
msgctxt "date day number format"
msgid "%d"
msgstr "%d"
#: ../js/ui/calendar.js:634
#: ../js/ui/calendar.js:783
msgid "Week %V"
msgstr "Sedmica %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:695
#: ../js/ui/calendar.js:1188
msgctxt "event list time"
msgid "All Day"
msgstr "Ceo dan"
#: ../js/ui/calendar.js:821
#: ../js/ui/calendar.js:1291
msgid "Clear section"
msgstr "Očisti odeljak"
#: ../js/ui/calendar.js:1518
msgid "Events"
msgstr "Događaji"
#: ../js/ui/calendar.js:830
#: ../js/ui/calendar.js:1527
msgctxt "calendar heading"
msgid "%A, %B %d"
msgstr "%A, %d. %B"
#: ../js/ui/calendar.js:834
#: ../js/ui/calendar.js:1531
msgctxt "calendar heading"
msgid "%A, %B %d, %Y"
msgstr "%A, %d. %B %Y."
#: ../js/ui/calendar.js:919
#: ../js/ui/calendar.js:1616
msgid "Notifications"
msgstr "Obaveštenja"
#: ../js/ui/calendar.js:1070
#: ../js/ui/calendar.js:1767
msgid "No Notifications"
msgstr "Bez obaveštenja"
#: ../js/ui/calendar.js:1073
#: ../js/ui/calendar.js:1770
msgid "No Events"
msgstr "Bez događaja"
@ -660,7 +626,7 @@ msgstr "Spoljni uređaj je priključen"
msgid "External drive disconnected"
msgstr "Spoljni uređaj je isključen"
#: ../js/ui/components/autorunManager.js:355
#: ../js/ui/components/autorunManager.js:354
#, javascript-format
msgid "Open with %s"
msgstr "Otvori programom %s"
@ -982,11 +948,11 @@ msgid "Keyboard"
msgstr "Tastatura"
#. translators: 'Hide' is a verb
#: ../js/ui/legacyTray.js:65
#: ../js/ui/legacyTray.js:66
msgid "Hide tray"
msgstr "Sakrij kasetu"
#: ../js/ui/legacyTray.js:106
#: ../js/ui/legacyTray.js:107
msgid "Status Icons"
msgstr "Ikonice stanja"
@ -1014,7 +980,7 @@ msgstr "Uključeno"
#. 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 "Isključeno"
@ -1038,26 +1004,10 @@ msgstr "Prikaži kod"
msgid "Web Page"
msgstr "Veb stranica"
#: ../js/ui/messageList.js:543
msgid "Clear section"
msgstr "Očisti odeljak"
#: ../js/ui/messageTray.js:1486
msgid "System Information"
msgstr "Podaci o sistemu"
#: ../js/ui/mpris.js:194
msgid "Unknown artist"
msgstr "Nepoznat izvođač"
#: ../js/ui/mpris.js:195
msgid "Unknown title"
msgstr "Nepoznat naslov"
#: ../js/ui/mpris.js:217
msgid "Media"
msgstr "Mediji"
#: ../js/ui/overview.js:84
msgid "Undo"
msgstr "Opozovi"
@ -1074,22 +1024,17 @@ msgstr "Pregled"
msgid "Type to search…"
msgstr "Upišite tekst za pretragu…"
#: ../js/ui/panel.js:358
#: ../js/ui/panel.js:352
msgid "Quit"
msgstr "Izađi"
#. 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 "Aktivnosti"
#: ../js/ui/panel.js:695
msgctxt "System menu in the top bar"
msgid "System"
msgstr "Sistem"
#: ../js/ui/panel.js:807
#: ../js/ui/panel.js:754
msgid "Top Bar"
msgstr "Gornja traka"
@ -1102,15 +1047,15 @@ msgstr "Gornja traka"
msgid "toggle-switch-us"
msgstr "toggle-switch-intl"
#: ../js/ui/runDialog.js:71
#: ../js/ui/runDialog.js:70
msgid "Enter a Command"
msgstr "Unesite naredbu"
#: ../js/ui/runDialog.js:111 ../js/ui/windowMenu.js:162
#: ../js/ui/runDialog.js:110 ../js/ui/windowMenu.js:162
msgid "Close"
msgstr "Zatvori"
#: ../js/ui/runDialog.js:282
#: ../js/ui/runDialog.js:281
msgid "Restarting…"
msgstr "Ponovno pokrećem…"
@ -1237,16 +1182,19 @@ msgstr "Veliki kontrast"
msgid "Large Text"
msgstr "Veliki tekst"
#: ../js/ui/status/bluetooth.js:47
msgid "Bluetooth"
msgstr "Blutut"
#: ../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 "Isključi"
#: ../js/ui/status/bluetooth.js:56
#: ../js/ui/status/bluetooth.js:54
msgid "Bluetooth Settings"
msgstr "Podešavanja Blututa"
#. 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"
@ -1255,25 +1203,10 @@ msgstr[1] "%d povezana"
msgstr[2] "%d povezano"
msgstr[3] "%d povezan"
#: ../js/ui/status/bluetooth.js:138
msgid "Off"
msgstr "Isklj."
#: ../js/ui/status/bluetooth.js:140
#: ../js/ui/status/bluetooth.js:107
msgid "Not In Use"
msgstr "Nije u upotrebi"
#: ../js/ui/status/bluetooth.js:142 ../js/ui/status/network.js:1279
msgid "Turn On"
msgstr "Uključi"
#: ../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 "Isključi"
#: ../js/ui/status/brightness.js:44
msgid "Brightness"
msgstr "Osvetljenost"
@ -1282,50 +1215,30 @@ msgstr "Osvetljenost"
msgid "Show Keyboard Layout"
msgstr "Pokaži raspored tastature"
#: ../js/ui/status/location.js:107 ../js/ui/status/location.js:215
#: ../js/ui/status/location.js:71 ../js/ui/status/location.js:177
msgid "Location Enabled"
msgstr "Određivanje mesta uključeno"
#: ../js/ui/status/location.js:108 ../js/ui/status/location.js:216
#: ../js/ui/status/location.js:72 ../js/ui/status/location.js:178
msgid "Disable"
msgstr "Isključi"
#: ../js/ui/status/location.js:109
#: ../js/ui/status/location.js:73
msgid "Privacy Settings"
msgstr "Podešavanja privatnosti"
#: ../js/ui/status/location.js:214
#: ../js/ui/status/location.js:176
msgid "Location In Use"
msgstr "Određivanje mesta se koristi"
#: ../js/ui/status/location.js:218
#: ../js/ui/status/location.js:180
msgid "Location Disabled"
msgstr "Određivanje mesta isključeno"
#: ../js/ui/status/location.js:219
#: ../js/ui/status/location.js:181
msgid "Enable"
msgstr "Uključi"
#: ../js/ui/status/location.js:426
msgid "Deny Access"
msgstr "Zabrani pristup"
#: ../js/ui/status/location.js:429
msgid "Grant Access"
msgstr "Dozvoli pristup"
#. Translators: %s is an application name
#: ../js/ui/status/location.js:435
#, javascript-format
msgid "Give %s access to your location?"
msgstr "Da li da „%s“ dam pristup vašem mestu?"
#: ../js/ui/status/location.js:437
msgid "Location access can be changed at any time from the privacy settings."
msgstr ""
"Pristup mestu možete da izmenite u bilo koje vreme u podešavanjima "
"privatnosti."
#: ../js/ui/status/network.js:101
msgid "<unknown>"
msgstr "<nepoznato>"
@ -1461,6 +1374,10 @@ msgstr "Izaberi mrežu"
msgid "Wi-Fi Settings"
msgstr "Podešavanja bežične veze"
#: ../js/ui/status/network.js:1279
msgid "Turn On"
msgstr "Uključi"
#. Translators: %s is a network identifier
#: ../js/ui/status/network.js:1296
#, javascript-format
@ -1510,36 +1427,31 @@ msgstr "Povezivanje nije uspelo"
msgid "Activation of network connection failed"
msgstr "Aktiviranje mrežne veze nije uspelo"
#: ../js/ui/status/power.js:61
#: ../js/ui/status/power.js:49
msgid "Power Settings"
msgstr "Podešavanja napajanja"
#: ../js/ui/status/power.js:77
#: ../js/ui/status/power.js:65
msgid "Fully Charged"
msgstr "Potpuno puna"
#. 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 "Približno…"
#. 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 "Preostalo vreme %d:%02d (%d %%)"
msgid "%d%02d Remaining (%d%%)"
msgstr "Preostaje %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%%)"
msgstr "%d:%02d do kraja punjenja (%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 do kraja punjenja (%d%%)"
#. The menu only appears when airplane mode is on, so just
#. statically build it as if it was on, rather than dynamically
@ -1580,9 +1492,13 @@ msgstr "Promena jačine zvuka"
msgid "Volume"
msgstr "Jačina zvuka"
#: ../js/ui/status/volume.js:213
msgid "Microphone"
msgstr "Mikrofon"
#: ../js/ui/unlockDialog.js:67
msgid "Log in as another user"
msgstr "Prijavite se kao drugi korisnik"
msgstr "Prijavite se kao drugi korsnik"
#: ../js/ui/unlockDialog.js:84
msgid "Unlock Window"
@ -1702,7 +1618,7 @@ msgstr "Kalendar Evolucije"
#. 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"
@ -1713,7 +1629,7 @@ msgstr[3] "%u izlaz"
#. 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"
@ -1722,53 +1638,50 @@ msgstr[1] "%u ulaza"
msgstr[2] "%u ulaza"
msgstr[3] "%u ulaz"
#: ../src/gvc/gvc-mixer-control.c:2371
#: ../src/gvc/gvc-mixer-control.c:2373
msgid "System Sounds"
msgstr "Sistemski zvuci"
#: ../src/main.c:381
#: ../src/main.c:373
msgid "Print version"
msgstr "Ispisuje izdanje"
#: ../src/main.c:387
#: ../src/main.c:379
msgid "Mode used by GDM for login screen"
msgstr "Koji režim koristi GDM za ekran prijavljivanja"
#: ../src/main.c:393
#: ../src/main.c:385
msgid "Use a specific mode, e.g. \"gdm\" for login screen"
msgstr "Koristi naročit režim, npr. „gdm“ za ekran prijavljivanja"
#: ../src/main.c:399
#: ../src/main.c:391
msgid "List possible modes"
msgstr "Ispisuje moguće režime"
#: ../src/shell-app.c:246
#: ../src/shell-app.c:239
msgctxt "program"
msgid "Unknown"
msgstr "Nepoznat"
#: ../src/shell-app.c:487
#: ../src/shell-app.c:480
#, c-format
msgid "Failed to launch “%s”"
msgstr "Nisam uspeo da pokrenem „%s“"
#: ../src/shell-keyring-prompt.c:730
#: ../src/shell-keyring-prompt.c:742
msgid "Passwords do not match."
msgstr "Lozinke se ne podudaraju."
#: ../src/shell-keyring-prompt.c:738
#: ../src/shell-keyring-prompt.c:750
msgid "Password cannot be blank"
msgstr "Lozinka ne može biti prazna"
#: ../src/shell-polkit-authentication-agent.c:353
#: ../src/shell-polkit-authentication-agent.c:346
msgid "Authentication dialog was dismissed by the user"
msgstr "Korisnik je odbacio prozorče za potvrđivanje identiteta"
#~ msgid "%s is requesting access to your location."
#~ msgstr "„%s“ zahteva pristup vašem mestu."
#~ msgid "GNOME Shell (wayland compositor)"
#~ msgstr "Gnomova školjka (vajland sastavljač)"
#~ msgid "Bluetooth"
#~ msgstr "Blutut"
#~ msgid "%d Connected Device"
#~ msgid_plural "%d Connected Devices"
@ -1777,6 +1690,9 @@ msgstr "Korisnik je odbacio prozorče za potvrđivanje identiteta"
#~ msgstr[2] "%d priključenih uređaja"
#~ msgstr[3] "%d priključeni uređaj"
#~ msgid "Off"
#~ msgstr "Isklj."
#~ msgid "Authentication required"
#~ msgstr "Potrebno je potvrđivanje identiteta"
@ -1982,6 +1898,9 @@ msgstr "Korisnik je odbacio prozorče za potvrđivanje identiteta"
#~ msgid "View account"
#~ msgstr "Vidi nalog"
#~ msgid "Unknown reason"
#~ msgstr "Nepoznat razlog"
#~ msgid "Open Calendar"
#~ msgstr "Otvori kalendar"
@ -2083,6 +2002,9 @@ msgstr "Korisnik je odbacio prozorče za potvrđivanje identiteta"
#~ msgid "Device %s wants access to the service '%s'"
#~ msgstr "Uređaj „%s“ želi pristup usluzi „%s“"
#~ msgid "Always grant access"
#~ msgstr "Uvek dozvoli pristup"
#~ msgid "Grant this time only"
#~ msgstr "Odobri samo ovaj put"

505
po/sv.po

File diff suppressed because it is too large Load Diff

542
po/tr.po

File diff suppressed because it is too large Load Diff

712
po/uk.po

File diff suppressed because it is too large Load Diff

401
po/vi.po
View File

@ -1,18 +1,18 @@
# Vietnamese translation for gnome-shell.
# Bản dịch tiếng Việt dành cho gnome-shell.
# Copyright (C) 2016 GNOME i18n Project for Vietnamese.
# Copyright (C) 2015 GNOME i18n Project for Vietnamese.
# This file is distributed under the same license as the gnome-shell package.
# Nguyễn Thái Ngọc Duy <pclouds@gmail.com>, 2010-2013.
# Ngô Chin <ndtrung4419@gmail.com>, 2011.
# Trần Ngọc Quân <vnwildman@gmail.com>, 2013-2014, 2015, 2016.
# Trần Ngọc Quân <vnwildman@gmail.com>, 2013-2014, 2015.
#
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: 2016-03-25 22:36+0000\n"
"PO-Revision-Date: 2016-03-26 13:42+0700\n"
"POT-Creation-Date: 2015-09-23 22:01+0000\n"
"PO-Revision-Date: 2015-09-24 15:14+0700\n"
"Last-Translator: Trần Ngọc Quân <vnwildman@gmail.com>\n"
"Language-Team: Vietnamese <gnome-vi-list@gnome.org>\n"
"Language: vi\n"
@ -46,6 +46,15 @@ msgstr "Hiện mọi ứng dụng"
msgid "Open the application menu"
msgstr "Mở trình đơn ứng dụng"
#: ../data/gnome-shell.desktop.in.in.h:1
msgid "GNOME Shell"
msgstr "Hệ vỏ 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 "Quản lý cửa sổ và chạy ứng dụng"
#: ../data/gnome-shell-extension-prefs.desktop.in.in.h:1
msgid "GNOME Shell Extension Preferences"
msgstr "Cá nhân hóa phần mở rộng hệ vỏ GNOME"
@ -54,13 +63,9 @@ msgstr "Cá nhân hóa phần mở rộng hệ vỏ GNOME"
msgid "Configure GNOME Shell Extensions"
msgstr "Cấu hình phần mở rộng Hệ vỏ GNOME"
#: ../data/org.gnome.Shell.desktop.in.in.h:1
msgid "GNOME Shell"
msgstr "Hệ vỏ GNOME"
#: ../data/org.gnome.Shell.desktop.in.in.h:2
msgid "Window management and application launching"
msgstr "Quản lý cửa sổ và chạy ứng dụng"
#: ../data/gnome-shell-wayland.desktop.in.in.h:1
msgid "GNOME Shell (wayland compositor)"
msgstr "Hệ vỏ GNOME (wayland compositor)"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:1
msgid "Enable internal tools useful for developers and testers from Alt-F2"
@ -130,7 +135,7 @@ msgstr "Hộp thoại lịch sử lệnh (Alt-F2)"
#. Translators: looking glass is a debugger and inspector tool, see https://live.gnome.org/GnomeShell/LookingGlass
#: ../data/org.gnome.shell.gschema.xml.in.in.h:13
msgid "History for the looking glass dialog"
msgstr "Lịch sử hộp thoại kính tìm kiếm"
msgstr "Lịch sử hộp thoại looking glass"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:14
msgid "Always show the 'Log out' menu item in the user menu."
@ -164,90 +169,72 @@ msgstr ""
"hộp dấu kiểm."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:18
msgid ""
"Whether the default Bluetooth adapter had set up devices associated to it"
msgstr ""
"Có nên để bộ điều hợp Bluetooth mặc định phải cài đặt thiết bị liên kết với "
"nó hay không"
#: ../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 ""
"Hệ vỏ sẽ chỉ hiển thị mục tin trình đơn Bluetooth nếu nó được bật, hoặc là "
"có các thiết bị được cài đặt liên kết với bộ tiếp hợp mặc định. Cái này sẽ "
"được đặt lại nếu bộ tiếp hợp mặc định không còn được liên kết với nó nữa."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:20
msgid "Show the week date in the calendar"
msgstr "Hiện tuần trên lịch"
#: ../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 "Nếu được đặt, hiện tuần trong lịch theo chuẩn 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 "Phím mở trình đơn ứng dụng"
#: ../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 "Phím mở trình đơn ứng dụng."
#: ../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 "Phím hiện “Ứng dụng”"
#: ../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 "Phím hiện “Ứng dụng” trong “Tổng quan hoạt động”."
msgstr "Phím hiện “Ứng dụng” trong tổng quan “Hoạt động”."
#: ../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 "Phím mở tổng quan"
#: ../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 "Phím mở tổng quan hoạt động."
#: ../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 "Phím để bật/tắt hiển thị danh sách thông báo"
#: ../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 "Phím để bật/tắt hiển thị danh sách thông báo."
#: ../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 "Phím để tập trung vào thông báo hoạt động"
#: ../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 "Phím để tập trung vào thông báo hoạt động."
#: ../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 "Phím ràng buộc cái mà dừng hay tiếp tục chạy, dành cho mục đích gỡ lỗi"
#: ../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 "Bàn phím được dùng"
#: ../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 "Kiểu bàn phím được dùng."
#: ../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 "Giới hạn bộ chuyển đổi cho không gian làm việc hiện tại."
#: ../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."
@ -256,11 +243,11 @@ msgstr ""
"tại là hiện ra trên bộ chuyển. Nếu không, tất cả các ứng dụng sẽ được bao "
"gồm."
#: ../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 "Chế độ biểu tượng ứng dụng."
#: ../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-"
@ -270,7 +257,7 @@ msgstr ""
"“thumbnail-only” (hiển thị ảnh thu nhỏ của cửa sổ), “app-icon-only” (chỉ "
"hiển thị biểu tượng của ứng dụng) hoặc “both” (cả hai)."
#: ../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."
@ -278,29 +265,29 @@ msgstr ""
"Nếu được đặt, chỉ những cửa sổ từ không gian làm việc hiện hành được hiện "
"thị ở bộ chuyển. Nếu không, tất cả các cửa sổ sẽ được gộp vào."
#: ../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 "Gắn hộp thoại dạng modal vào cửa sổ mẹ"
#: ../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 ""
"Khóa này sẽ đè lên khóa có trong org.gnome.mutter khi chạy hệ vỏ GNOME."
#: ../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 "Bật xếp lớp ở cạnh khi thả cửa sổ vào cạnh màn hình"
#: ../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 "Quản lý động vùng làm việc"
#: ../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 "Vùng làm việc chỉ ở trên màn hình chính"
#: ../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 "Khoảng trễ chờ cho con chuột ngừng di chuyển"
@ -308,52 +295,51 @@ msgstr "Khoảng trễ chờ cho con chuột ngừng di chuyển"
msgid "Network Login"
msgstr "Đăng nhập mạng"
#: ../js/extensionPrefs/main.js:117
#: ../js/extensionPrefs/main.js:122
#, javascript-format
msgid "There was an error loading the preferences dialog for %s:"
msgstr "Có lỗi khi đang tải hộp thoại tùy thích cho %s:"
msgstr "Có lỗi khi đang nạp hộp thoại tùy thích cho %s:"
#: ../js/extensionPrefs/main.js:149
#: ../js/extensionPrefs/main.js:154
msgid "GNOME Shell Extensions"
msgstr "Phần mở rộng Hệ vỏ GNOME"
#: ../js/gdm/authPrompt.js:147 ../js/ui/audioDeviceSelection.js:71
#: ../js/ui/components/networkAgent.js:145
#: ../js/gdm/authPrompt.js:147 ../js/ui/components/networkAgent.js:145
#: ../js/ui/components/polkitAgent.js:179 ../js/ui/endSessionDialog.js:452
#: ../js/ui/extensionDownloader.js:195 ../js/ui/shellMountOperation.js:399
#: ../js/ui/status/network.js:916
msgid "Cancel"
msgstr "Thôi"
#: ../js/gdm/authPrompt.js:169 ../js/gdm/authPrompt.js:216
#: ../js/gdm/authPrompt.js:448
#: ../js/gdm/authPrompt.js:169 ../js/gdm/authPrompt.js:215
#: ../js/gdm/authPrompt.js:447
msgid "Next"
msgstr "Kế tiếp"
#: ../js/gdm/authPrompt.js:212 ../js/ui/shellMountOperation.js:403
#: ../js/gdm/authPrompt.js:211 ../js/ui/shellMountOperation.js:403
#: ../js/ui/unlockDialog.js:59
msgid "Unlock"
msgstr "Mở khóa"
#: ../js/gdm/authPrompt.js:214
#: ../js/gdm/authPrompt.js:213
msgctxt "button"
msgid "Sign In"
msgstr "Đăng nhập"
#: ../js/gdm/loginDialog.js:285
#: ../js/gdm/loginDialog.js:281
msgid "Choose Session"
msgstr "Chọn phiên làm việc"
#. 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 "Không có trong danh sách?"
#. 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 "(ví dụ: tài khoản hoặc %s)"
@ -361,12 +347,12 @@ msgstr "(ví dụ: tài khoản hoặc %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 "Tài khoản: "
#: ../js/gdm/loginDialog.js:1196
#: ../js/gdm/loginDialog.js:1184
msgid "Login Window"
msgstr "Cửa sổ đăng nhập"
@ -502,36 +488,16 @@ msgstr "Đánh dấu ưa thích"
msgid "Show Details"
msgstr "Hiện chi tiết"
#: ../js/ui/appFavorites.js:134
#: ../js/ui/appFavorites.js:132
#, javascript-format
msgid "%s has been added to your favorites."
msgstr "Đã đánh dấu ưa thích cho %s."
#: ../js/ui/appFavorites.js:168
#: ../js/ui/appFavorites.js:166
#, javascript-format
msgid "%s has been removed from your favorites."
msgstr "%s đã bị xóa khỏi danh sách ưa thích."
#: ../js/ui/audioDeviceSelection.js:59
msgid "Select Audio Device"
msgstr "Chọn thiết bị âm thanh"
#: ../js/ui/audioDeviceSelection.js:69
msgid "Sound Settings"
msgstr "Cài đặt âm thanh"
#: ../js/ui/audioDeviceSelection.js:78
msgid "Headphones"
msgstr "Tai nghe"
#: ../js/ui/audioDeviceSelection.js:80
msgid "Headset"
msgstr "Bộ tai nghe + micrô"
#: ../js/ui/audioDeviceSelection.js:82 ../js/ui/status/volume.js:213
msgid "Microphone"
msgstr "Micrô"
#: ../js/ui/backgroundMenu.js:19
msgid "Change Background…"
msgstr "Đổi ảnh nền…"
@ -540,12 +506,13 @@ msgstr "Đổi ảnh nền…"
msgid "Display Settings"
msgstr "Cài đặt hiển thị"
#: ../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 "Cài đặt"
#. Translators: Enter 0-6 (Sunday-Saturday) for non-work days. Examples: "0" (Sunday) "6" (Saturday) "06" (Sunday and Saturday).
#: ../js/ui/calendar.js:47
#: ../js/ui/calendar.js:55
msgctxt "calendar-no-work"
msgid "06"
msgstr "06"
@ -555,96 +522,94 @@ 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:76
#: ../js/ui/calendar.js:84
msgctxt "grid sunday"
msgid "S"
msgstr "C"
#. Translators: Calendar grid abbreviation for Monday
#: ../js/ui/calendar.js:78
#: ../js/ui/calendar.js:86
msgctxt "grid monday"
msgid "M"
msgstr "2"
#. Translators: Calendar grid abbreviation for Tuesday
#: ../js/ui/calendar.js:80
#: ../js/ui/calendar.js:88
msgctxt "grid tuesday"
msgid "T"
msgstr "3"
#. Translators: Calendar grid abbreviation for Wednesday
#: ../js/ui/calendar.js:82
#: ../js/ui/calendar.js:90
msgctxt "grid wednesday"
msgid "W"
msgstr "4"
#. Translators: Calendar grid abbreviation for Thursday
#: ../js/ui/calendar.js:84
#: ../js/ui/calendar.js:92
msgctxt "grid thursday"
msgid "T"
msgstr "5"
#. Translators: Calendar grid abbreviation for Friday
#: ../js/ui/calendar.js:86
#: ../js/ui/calendar.js:94
msgctxt "grid friday"
msgid "F"
msgstr "6"
#. Translators: Calendar grid abbreviation for Saturday
#: ../js/ui/calendar.js:88
#: ../js/ui/calendar.js:96
msgctxt "grid saturday"
msgid "S"
msgstr "7"
#: ../js/ui/calendar.js:416
#: ../js/ui/calendar.js:566
msgid "Previous month"
msgstr "Tháng trước"
#: ../js/ui/calendar.js:426
#: ../js/ui/calendar.js:576
msgid "Next month"
msgstr "Tháng tới"
#: ../js/ui/calendar.js:579
#, no-javascript-format
msgctxt "date day number format"
msgid "%d"
msgstr "%d"
#: ../js/ui/calendar.js:634
#: ../js/ui/calendar.js:783
msgid "Week %V"
msgstr "Tuần %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:695
#: ../js/ui/calendar.js:1188
msgctxt "event list time"
msgid "All Day"
msgstr "Cả ngày"
#: ../js/ui/calendar.js:821
#: ../js/ui/calendar.js:1295
msgid "Clear section"
msgstr "Xóa phần"
#: ../js/ui/calendar.js:1522
msgid "Events"
msgstr "Sự kiện"
#: ../js/ui/calendar.js:830
#: ../js/ui/calendar.js:1531
msgctxt "calendar heading"
msgid "%A, %B %d"
msgstr "%A, %d %B"
#: ../js/ui/calendar.js:834
#: ../js/ui/calendar.js:1535
msgctxt "calendar heading"
msgid "%A, %B %d, %Y"
msgstr "%A, %d %B, %Y"
#: ../js/ui/calendar.js:919
#: ../js/ui/calendar.js:1620
msgid "Notifications"
msgstr "Thông báo"
#: ../js/ui/calendar.js:1070
#: ../js/ui/calendar.js:1771
msgid "No Notifications"
msgstr "Không có thông báo nào"
#: ../js/ui/calendar.js:1073
#: ../js/ui/calendar.js:1774
msgid "No Events"
msgstr "Không có sự kiện"
@ -656,7 +621,7 @@ msgstr "Ổ ngoài đã kết nối"
msgid "External drive disconnected"
msgstr "Ổ ngoài đã ngắt kết nối"
#: ../js/ui/components/autorunManager.js:355
#: ../js/ui/components/autorunManager.js:354
#, javascript-format
msgid "Open with %s"
msgstr "Mở bằng %s"
@ -780,7 +745,7 @@ msgstr "Rất tiếc, không được. Vui lòng thử lại."
#. Translators: this is the other person changing their old IM name to their new
#. IM name.
#: ../js/ui/components/telepathyClient.js:760
#: ../js/ui/components/telepathyClient.js:759
#, javascript-format
msgid "%s is now known as %s"
msgstr "%s bây giờ đổi thành %s"
@ -869,7 +834,7 @@ msgstr[0] "Hệ thống sẽ tự động tắt sau %d giây."
#: ../js/ui/endSessionDialog.js:91
msgctxt "checkbox"
msgid "Install pending software updates"
msgstr "Cài đặt các cập nhật phần mềm còn treo"
msgstr "Nâng cấp phần mềm còn treo"
#: ../js/ui/endSessionDialog.js:94 ../js/ui/endSessionDialog.js:111
msgctxt "button"
@ -960,11 +925,11 @@ msgid "Keyboard"
msgstr "Bàn phím"
#. translators: 'Hide' is a verb
#: ../js/ui/legacyTray.js:65
#: ../js/ui/legacyTray.js:66
msgid "Hide tray"
msgstr "Ẩn khay"
#: ../js/ui/legacyTray.js:106
#: ../js/ui/legacyTray.js:107
msgid "Status Icons"
msgstr "Biểu tượng trạng thái"
@ -1014,28 +979,12 @@ msgstr "Xem mã nguồn"
#: ../js/ui/lookingGlass.js:758
msgid "Web Page"
msgstr "Trang thông tin điện tử"
#: ../js/ui/messageList.js:543
msgid "Clear section"
msgstr "Xóa một phần"
msgstr "Trang Web"
#: ../js/ui/messageTray.js:1486
msgid "System Information"
msgstr "Thông tin hệ thống"
#: ../js/ui/mpris.js:194
msgid "Unknown artist"
msgstr "Không rõ nghệ sĩ"
#: ../js/ui/mpris.js:195
msgid "Unknown title"
msgstr "Chưa biết tiêu đề"
#: ../js/ui/mpris.js:217
msgid "Media"
msgstr "Đa phương tiện"
#: ../js/ui/overview.js:84
msgid "Undo"
msgstr "Hoàn lại"
@ -1052,22 +1001,17 @@ msgstr "Tổng quan"
msgid "Type to search…"
msgstr "Gõ từ muốn tìm…"
#: ../js/ui/panel.js:358
#: ../js/ui/panel.js:352
msgid "Quit"
msgstr "Thoát"
#. 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 "Hoạt động"
#: ../js/ui/panel.js:695
msgctxt "System menu in the top bar"
msgid "System"
msgstr "Hệ thống"
#: ../js/ui/panel.js:807
#: ../js/ui/panel.js:754
msgid "Top Bar"
msgstr "Thanh đỉnh"
@ -1080,15 +1024,15 @@ msgstr "Thanh đỉnh"
msgid "toggle-switch-us"
msgstr "toggle-switch-intl"
#: ../js/ui/runDialog.js:71
#: ../js/ui/runDialog.js:70
msgid "Enter a Command"
msgstr "Nhập lệnh"
#: ../js/ui/runDialog.js:111 ../js/ui/windowMenu.js:162
#: ../js/ui/runDialog.js:110 ../js/ui/windowMenu.js:162
msgid "Close"
msgstr "Đóng"
#: ../js/ui/runDialog.js:282
#: ../js/ui/runDialog.js:281
msgid "Restarting…"
msgstr "Đang khởi động lại…"
@ -1131,7 +1075,7 @@ msgstr "Không thể khóa"
#: ../js/ui/screenShield.js:806 ../js/ui/screenShield.js:1272
msgid "Lock was blocked by an application"
msgstr "Việc khóa bị ngăn cản bởi một ứng dụng"
msgstr "Một ứng dụng đã ngăn cản khóa"
#: ../js/ui/search.js:617
msgid "Searching…"
@ -1139,7 +1083,7 @@ msgstr "Đang tìm…"
#: ../js/ui/search.js:619
msgid "No results."
msgstr "Không tìm thấy kết quả nào."
msgstr "Không kết quả."
#: ../js/ui/shellEntry.js:25
msgid "Copy"
@ -1209,40 +1153,28 @@ msgstr "Tương phản cao"
msgid "Large Text"
msgstr "Chữ lớn"
#: ../js/ui/status/bluetooth.js:47
msgid "Bluetooth"
msgstr "Bluetooth"
#: ../js/ui/status/bluetooth.js:56
msgid "Bluetooth Settings"
msgstr "Cài đặt 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 Đã kết nối"
#: ../js/ui/status/bluetooth.js:138
msgid "Off"
msgstr "Tắt"
#: ../js/ui/status/bluetooth.js:140
msgid "Not In Use"
msgstr "Không dùng"
#: ../js/ui/status/bluetooth.js:142 ../js/ui/status/network.js:1279
msgid "Turn On"
msgstr "Bật"
#: ../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 "Tắt"
#: ../js/ui/status/bluetooth.js:54
msgid "Bluetooth Settings"
msgstr "Cài đặt 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 Đã kết nối"
#: ../js/ui/status/bluetooth.js:107
msgid "Not In Use"
msgstr "Không dùng"
#: ../js/ui/status/brightness.js:44
msgid "Brightness"
msgstr "Độ sáng"
@ -1251,50 +1183,30 @@ msgstr "Độ sáng"
msgid "Show Keyboard Layout"
msgstr "Hiện bố cục của bàn phím"
#: ../js/ui/status/location.js:107 ../js/ui/status/location.js:215
#: ../js/ui/status/location.js:71 ../js/ui/status/location.js:177
msgid "Location Enabled"
msgstr "Vị trí được bật"
#: ../js/ui/status/location.js:108 ../js/ui/status/location.js:216
#: ../js/ui/status/location.js:72 ../js/ui/status/location.js:178
msgid "Disable"
msgstr "Tắt"
#: ../js/ui/status/location.js:109
#: ../js/ui/status/location.js:73
msgid "Privacy Settings"
msgstr "Cài đặt chính sách riêng tư"
#: ../js/ui/status/location.js:214
#: ../js/ui/status/location.js:176
msgid "Location In Use"
msgstr "Vị trí đang dùng"
#: ../js/ui/status/location.js:218
#: ../js/ui/status/location.js:180
msgid "Location Disabled"
msgstr "Vị trí bị tắt"
#: ../js/ui/status/location.js:219
#: ../js/ui/status/location.js:181
msgid "Enable"
msgstr "Bật"
#: ../js/ui/status/location.js:426
msgid "Deny Access"
msgstr "Từ chối truy cập"
#: ../js/ui/status/location.js:429
msgid "Grant Access"
msgstr "Cấp quyền truy cập"
#. Translators: %s is an application name
#: ../js/ui/status/location.js:435
#, javascript-format
msgid "Give %s access to your location?"
msgstr "Cho %s truy cập vào vị trí của bạn?"
#: ../js/ui/status/location.js:437
msgid "Location access can be changed at any time from the privacy settings."
msgstr ""
"Truy cập vị trí có thể được thay đổi vào bất kỳ lúc nào từ các cài đặt riêng "
"tư."
#: ../js/ui/status/network.js:101
msgid "<unknown>"
msgstr "<không rõ>"
@ -1430,6 +1342,10 @@ msgstr "Chọn mạng"
msgid "Wi-Fi Settings"
msgstr "Cài đặt Wi-Fi"
#: ../js/ui/status/network.js:1279
msgid "Turn On"
msgstr "Bật"
#. Translators: %s is a network identifier
#: ../js/ui/status/network.js:1296
#, javascript-format
@ -1479,36 +1395,31 @@ msgstr "Lỗi kết nối"
msgid "Activation of network connection failed"
msgstr "Lỗi kích hoạt kết nối mạng"
#: ../js/ui/status/power.js:61
#: ../js/ui/status/power.js:49
msgid "Power Settings"
msgstr "Cài đặt nguồn điện"
#: ../js/ui/status/power.js:77
#: ../js/ui/status/power.js:65
msgid "Fully Charged"
msgstr "Đã sạc đầy"
#. 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 "Ước tính…"
#. 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 "Còn %d%02d (%d %%)"
msgid "%d%02d Remaining (%d%%)"
msgstr "Còn %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%%)"
msgstr "Cho đến lúc đầy cần %d%02d (%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 "Cho đến lúc đầy cần %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
@ -1549,6 +1460,10 @@ msgstr "Âm lượng đã thay đổi"
msgid "Volume"
msgstr "Âm lượng"
#: ../js/ui/status/volume.js:213
msgid "Microphone"
msgstr "Micrô"
#: ../js/ui/unlockDialog.js:67
msgid "Log in as another user"
msgstr "Đăng nhập người dùng khác"
@ -1650,19 +1565,19 @@ msgstr "Chuyển sang không gian làm việc Dưới"
#: ../js/ui/windowMenu.js:136
msgid "Move to Monitor Up"
msgstr "Chuyển sang màn hình Trên"
msgstr "Chuyển sang Màn hình Trên"
#: ../js/ui/windowMenu.js:142
msgid "Move to Monitor Down"
msgstr "Chuyển sang màn hình Dưới"
msgstr "Chuyển sang Màn hình Dưới"
#: ../js/ui/windowMenu.js:148
msgid "Move to Monitor Left"
msgstr "Chuyển sang màn hình Trái"
msgstr "Chuyển sang Màn hình Trái"
#: ../js/ui/windowMenu.js:154
msgid "Move to Monitor Right"
msgstr "Chuyển sang màn hình Phải"
msgstr "Chuyển sang Màn hình Phải"
#: ../src/calendar-server/evolution-calendar.desktop.in.in.h:1
msgid "Evolution Calendar"
@ -1688,51 +1603,54 @@ msgstr[0] "%u đầu vào"
msgid "System Sounds"
msgstr "Âm thanh hệ thống"
#: ../src/main.c:381
#: ../src/main.c:373
msgid "Print version"
msgstr "Hiển thị phiên bản"
#: ../src/main.c:387
#: ../src/main.c:379
msgid "Mode used by GDM for login screen"
msgstr "Chế độ được dùng bởi GDM cho màn hình đăng nhập"
#: ../src/main.c:393
#: ../src/main.c:385
msgid "Use a specific mode, e.g. \"gdm\" for login screen"
msgstr "Dùng chế độ đặc biệt, ví dụ “gdm” cho màn hình đăng nhập"
#: ../src/main.c:399
#: ../src/main.c:391
msgid "List possible modes"
msgstr "Danh sách chế độ có thể"
#: ../src/shell-app.c:246
#: ../src/shell-app.c:239
msgctxt "program"
msgid "Unknown"
msgstr "Chưa biết"
#: ../src/shell-app.c:487
#: ../src/shell-app.c:480
#, c-format
msgid "Failed to launch “%s”"
msgstr "Gặp lỗi khi khởi chạy “%s”"
#: ../src/shell-keyring-prompt.c:730
#: ../src/shell-keyring-prompt.c:742
msgid "Passwords do not match."
msgstr "Mật khẩu không đúng."
#: ../src/shell-keyring-prompt.c:738
#: ../src/shell-keyring-prompt.c:750
msgid "Password cannot be blank"
msgstr "Mật khẩu không thể để trống"
#: ../src/shell-polkit-authentication-agent.c:353
#: ../src/shell-polkit-authentication-agent.c:346
msgid "Authentication dialog was dismissed by the user"
msgstr "Hộp thoại xác thực bị người dùng bỏ qua"
#~ msgid "GNOME Shell (wayland compositor)"
#~ msgstr "Hệ vỏ GNOME (wayland compositor)"
#~ msgid "Bluetooth"
#~ msgstr "Bluetooth"
#~ msgid "%d Connected Device"
#~ msgid_plural "%d Connected Devices"
#~ msgstr[0] "%d thiết bị đã kết nối"
#~ msgid "Off"
#~ msgstr "Tắt"
#~ msgid "Authentication required"
#~ msgstr "Cần xác thực"
@ -1937,6 +1855,9 @@ msgstr "Hộp thoại xác thực bị người dùng bỏ qua"
#~ msgid "View account"
#~ msgstr "Xem tài khoản"
#~ msgid "Unknown reason"
#~ msgstr "Không rõ nguyên nhân"
#~ msgid "Open Calendar"
#~ msgstr "Mở lịch"
@ -2121,6 +2042,9 @@ msgstr "Hộp thoại xác thực bị người dùng bỏ qua"
#~ msgid "Visibility"
#~ msgstr "Tầm nhìn"
#~ msgid "Send Files to Device…"
#~ msgstr "Gửi tập tin đến thiết bị…"
#~ msgid "Set Up a New Device…"
#~ msgstr "Cài đặt thiết bị mới…"
@ -2148,6 +2072,9 @@ msgstr "Hộp thoại xác thực bị người dùng bỏ qua"
#~ msgid "Device %s wants access to the service '%s'"
#~ msgstr "Thiết bị %s muốn truy cập dịch vụ “%s”"
#~ msgid "Always grant access"
#~ msgstr "Luôn cho phép"
#~ msgid "Grant this time only"
#~ msgstr "Chỉ cho phép lần này"
@ -2220,6 +2147,10 @@ msgstr "Hộp thoại xác thực bị người dùng bỏ qua"
#~ msgid_plural "%d minutes remaining"
#~ msgstr[0] "%d phút còn lại"
#~ msgctxt "percent of battery remaining"
#~ msgid "%d%%"
#~ msgstr "%d%%"
#~ msgid "AC Adapter"
#~ msgstr "Nguồn AC"

File diff suppressed because it is too large Load Diff

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