Compare commits
	
		
			46 Commits
		
	
	
		
			3.35.2
			...
			gnome-3-18
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 
						 | 
					a8c769e0ff | ||
| 
						 | 
					efd8b2d3a6 | ||
| 
						 | 
					2b8d16e685 | ||
| 
						 | 
					598cf48973 | ||
| 
						 | 
					ce811ec063 | ||
| 
						 | 
					535fb0e2a0 | ||
| 
						 | 
					281101d942 | ||
| 
						 | 
					045e1f01af | ||
| 
						 | 
					db252a65f8 | ||
| 
						 | 
					358ee88e1c | ||
| 
						 | 
					cdc9652f5b | ||
| 
						 | 
					fcfa752fbd | ||
| 
						 | 
					4651b7adcc | ||
| 
						 | 
					4562a431ad | ||
| 
						 | 
					f5d9d188a7 | ||
| 
						 | 
					cca01e3f02 | ||
| 
						 | 
					1874f3605d | ||
| 
						 | 
					3001f3376c | ||
| 
						 | 
					491e511a96 | ||
| 
						 | 
					293bc98394 | ||
| 
						 | 
					2ed3482d54 | ||
| 
						 | 
					4e4414a84d | ||
| 
						 | 
					934a08f28f | ||
| 
						 | 
					732ea2a91e | ||
| 
						 | 
					aae6a3cbbd | ||
| 
						 | 
					f67a6589bd | ||
| 
						 | 
					88c1fa8a3e | ||
| 
						 | 
					012443bffa | ||
| 
						 | 
					61b14c7f04 | ||
| 
						 | 
					13dff7d5eb | ||
| 
						 | 
					55087d03e4 | ||
| 
						 | 
					e7528bf2fa | ||
| 
						 | 
					9e64a1e3d6 | ||
| 
						 | 
					007ac93cd6 | ||
| 
						 | 
					d8336efddc | ||
| 
						 | 
					a83f822512 | ||
| 
						 | 
					f64d64035a | ||
| 
						 | 
					5583f881df | ||
| 
						 | 
					10e4382a7d | ||
| 
						 | 
					9f0ee0dc9f | ||
| 
						 | 
					2f82f783f2 | ||
| 
						 | 
					4d066e3916 | ||
| 
						 | 
					342fbd16d3 | ||
| 
						 | 
					8ae0c69ccf | ||
| 
						 | 
					bed660bdf4 | ||
| 
						 | 
					ab2ca17b76 | 
							
								
								
									
										52
									
								
								NEWS
									
									
									
									
									
								
							
							
						
						
									
										52
									
								
								NEWS
									
									
									
									
									
								
							@@ -1,3 +1,55 @@
 | 
			
		||||
3.18.5
 | 
			
		||||
======
 | 
			
		||||
* Fix deleting chat notifications in calendar [Florian; #747991]
 | 
			
		||||
* Fix recount issue in network agent component [Christophe; #759708]
 | 
			
		||||
* Plug a memory leak [Aaron; #735705]
 | 
			
		||||
* Do not assert on non-fatal runtime errors [Florian; #765061]
 | 
			
		||||
 | 
			
		||||
Contributors:
 | 
			
		||||
  Christophe Fergeau, Florian Müllner, Aaron Plattner
 | 
			
		||||
 | 
			
		||||
Translations:
 | 
			
		||||
  Matej Urbančič [sl], Marek Černocký [cs]
 | 
			
		||||
 | 
			
		||||
3.18.4
 | 
			
		||||
======
 | 
			
		||||
* Fix thumbnail scaling in window switcher on HiDPI [Florian; #758676]
 | 
			
		||||
* loginDialog: Update user list on user changes [Michael; #758568]
 | 
			
		||||
* gdm: Do not allow bypassing disabled Sign In button  [Michael; #746180]
 | 
			
		||||
* Correctly identify VPN secret requests [Lubomir; #760999]
 | 
			
		||||
 | 
			
		||||
Contributors:
 | 
			
		||||
  Michael Catanzaro, Florian Müllner, Lubomir Rintel
 | 
			
		||||
 | 
			
		||||
Translations:
 | 
			
		||||
  Kristjan SCHMIDT [eo], Daniel Korostil [uk], Andika Triwidada [id]
 | 
			
		||||
 | 
			
		||||
3.18.3
 | 
			
		||||
======
 | 
			
		||||
* Fix browser plugin crash in Firefox [Carlos; #737932, #757940]
 | 
			
		||||
 | 
			
		||||
Contributors:
 | 
			
		||||
  Carlos Garcia Campos
 | 
			
		||||
 | 
			
		||||
3.18.2
 | 
			
		||||
======
 | 
			
		||||
* Fix fullscreen animation glitches [Florian, Cosimo; #756697, #756714]
 | 
			
		||||
* Fix window menu being closed immediately in top orientation [Rui; #756605]
 | 
			
		||||
* Respect text-scaling factor under wayland [Owen; #756447]
 | 
			
		||||
* Fix login screen getting stuck after authentification [Ray; #754814]
 | 
			
		||||
* Fix overview being toggled while still animating [Rui; #756925]
 | 
			
		||||
* Improve robustness of browser plugin [Carlos; #737932, #757940]
 | 
			
		||||
* Misc. bug fixes [Owen, Florian; #756983, #757150, #757779]
 | 
			
		||||
 | 
			
		||||
Contributors:
 | 
			
		||||
  Cosimo Cecchi, Carlos Garcia Campos, Rui Matos, Florian Müllner, Ray Strode,
 | 
			
		||||
  Owen W. Taylor
 | 
			
		||||
 | 
			
		||||
Translations:
 | 
			
		||||
  Kjartan Maraas [nb], Khaled Hosny [ar], Sveinn í Felli [is],
 | 
			
		||||
  Balázs Meskó [hu], Daniel Șerbănescu [ro], Aron Xu [zh_CN],
 | 
			
		||||
  Anthony Fok [zh_TW]
 | 
			
		||||
 | 
			
		||||
3.18.1
 | 
			
		||||
======
 | 
			
		||||
* Fix screen freezes when a notification is pushed [Carlos; #755425]
 | 
			
		||||
 
 | 
			
		||||
@@ -3,7 +3,10 @@ mozillalibdir = $(BROWSER_PLUGIN_DIR)
 | 
			
		||||
 | 
			
		||||
mozillalib_LTLIBRARIES = libgnome-shell-browser-plugin.la
 | 
			
		||||
 | 
			
		||||
libgnome_shell_browser_plugin_la_LDFLAGS = -module -avoid-version -no-undefined
 | 
			
		||||
# 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_LIBADD = 	\
 | 
			
		||||
	$(BROWSER_PLUGIN_LIBS)
 | 
			
		||||
 
 | 
			
		||||
@@ -43,10 +43,6 @@
 | 
			
		||||
 | 
			
		||||
#define EXTENSION_DISABLE_VERSION_CHECK_KEY "disable-extension-version-validation"
 | 
			
		||||
 | 
			
		||||
typedef struct {
 | 
			
		||||
  GDBusProxy *proxy;
 | 
			
		||||
} PluginData;
 | 
			
		||||
 | 
			
		||||
static NPNetscapeFuncs funcs;
 | 
			
		||||
 | 
			
		||||
static inline gchar *
 | 
			
		||||
@@ -145,121 +141,6 @@ 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 {
 | 
			
		||||
@@ -344,45 +225,18 @@ static NPObject *
 | 
			
		||||
plugin_object_allocate (NPP      instance,
 | 
			
		||||
                        NPClass *klass)
 | 
			
		||||
{
 | 
			
		||||
  PluginData *data = instance->pdata;
 | 
			
		||||
  PluginObject *obj = g_slice_new0 (PluginObject);
 | 
			
		||||
  PluginObject *obj = (PluginObject *) funcs.memalloc (sizeof (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);
 | 
			
		||||
 | 
			
		||||
  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;
 | 
			
		||||
  return (NPObject*) obj;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void
 | 
			
		||||
plugin_object_deallocate (NPObject *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);
 | 
			
		||||
  funcs.memfree (npobj);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static inline gboolean
 | 
			
		||||
@@ -1033,6 +887,149 @@ 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,
 | 
			
		||||
@@ -1043,13 +1040,11 @@ NPP_GetValue(NPP          instance,
 | 
			
		||||
  switch (variable) {
 | 
			
		||||
  case NPPVpluginScriptableNPObject:
 | 
			
		||||
    g_debug ("creating scriptable object");
 | 
			
		||||
    init_methods_and_properties ();
 | 
			
		||||
    if (!instance->pdata)
 | 
			
		||||
      return NPERR_INVALID_INSTANCE_ERROR;
 | 
			
		||||
 | 
			
		||||
    *(NPObject**)value = funcs.createobject (instance, &plugin_class);
 | 
			
		||||
    break;
 | 
			
		||||
 | 
			
		||||
  case NPPVpluginNeedsXEmbed:
 | 
			
		||||
    *(bool *)value = TRUE;
 | 
			
		||||
    funcs.retainobject (instance->pdata);
 | 
			
		||||
    *(NPObject**)value = instance->pdata;
 | 
			
		||||
    break;
 | 
			
		||||
 | 
			
		||||
  default:
 | 
			
		||||
@@ -1067,3 +1062,11 @@ NPP_SetWindow(NPP          instance,
 | 
			
		||||
{
 | 
			
		||||
  return NPERR_NO_ERROR;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
int16_t
 | 
			
		||||
NPP_HandleEvent(NPP   instance,
 | 
			
		||||
                void *event)
 | 
			
		||||
{
 | 
			
		||||
  /* Ignore the event */
 | 
			
		||||
  return FALSE;
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -1,5 +1,5 @@
 | 
			
		||||
AC_PREREQ(2.63)
 | 
			
		||||
AC_INIT([gnome-shell],[3.18.1],[https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-shell],[gnome-shell])
 | 
			
		||||
AC_INIT([gnome-shell],[3.18.5],[https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-shell],[gnome-shell])
 | 
			
		||||
AX_IS_RELEASE([git-directory])
 | 
			
		||||
 | 
			
		||||
AC_CONFIG_HEADERS([config.h])
 | 
			
		||||
 
 | 
			
		||||
@@ -189,7 +189,8 @@ const AuthPrompt = new Lang.Class({
 | 
			
		||||
                                             this._updateNextButtonSensitivity(this._entry.text.length > 0);
 | 
			
		||||
                                         }));
 | 
			
		||||
        this._entry.clutter_text.connect('activate', Lang.bind(this, function() {
 | 
			
		||||
            this.emit('next');
 | 
			
		||||
            if (this.nextButton.reactive)
 | 
			
		||||
                this.emit('next');
 | 
			
		||||
        }));
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -96,7 +96,7 @@ const UserListItem = new Lang.Class({
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
    _onDestroy: function() {
 | 
			
		||||
        this._user.disconnect(this._userChangedId);
 | 
			
		||||
        this.user.disconnect(this._userChangedId);
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
    _onClicked: function() {
 | 
			
		||||
@@ -212,6 +212,10 @@ 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;
 | 
			
		||||
@@ -924,11 +928,7 @@ const LoginDialog = new Lang.Class({
 | 
			
		||||
                           },
 | 
			
		||||
                           onUpdateScope: this,
 | 
			
		||||
                           onComplete: function() {
 | 
			
		||||
                               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');
 | 
			
		||||
                               this._greeter.call_start_session_when_ready_sync(serviceName, true, null);
 | 
			
		||||
                           },
 | 
			
		||||
                           onCompleteScope: this });
 | 
			
		||||
    },
 | 
			
		||||
@@ -1130,6 +1130,10 @@ 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) {
 | 
			
		||||
@@ -1176,6 +1180,14 @@ 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;
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -685,15 +685,17 @@ 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, WINDOW_PREVIEW_SIZE));
 | 
			
		||||
                this._icon.add_actor(_createWindowClone(mutterWindow, size * scaleFactor));
 | 
			
		||||
                break;
 | 
			
		||||
 | 
			
		||||
            case AppIconMode.BOTH:
 | 
			
		||||
                size = WINDOW_PREVIEW_SIZE;
 | 
			
		||||
                this._icon.add_actor(_createWindowClone(mutterWindow, WINDOW_PREVIEW_SIZE));
 | 
			
		||||
                this._icon.add_actor(_createWindowClone(mutterWindow, size * scaleFactor));
 | 
			
		||||
 | 
			
		||||
                if (this.app)
 | 
			
		||||
                    this._icon.add_actor(this._createAppIcon(this.app,
 | 
			
		||||
@@ -705,7 +707,7 @@ const WindowIcon = new Lang.Class({
 | 
			
		||||
                this._icon.add_actor(this._createAppIcon(this.app, size));
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        this._icon.set_size(size, size);
 | 
			
		||||
        this._icon.set_size(size * scaleFactor, size * scaleFactor);
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
    _createAppIcon: function(app, size) {
 | 
			
		||||
 
 | 
			
		||||
@@ -7,7 +7,7 @@ const St = imports.gi.St;
 | 
			
		||||
const Signals = imports.signals;
 | 
			
		||||
const Atk = imports.gi.Atk;
 | 
			
		||||
 | 
			
		||||
const ANIMATED_ICON_UPDATE_TIMEOUT = 14;
 | 
			
		||||
const ANIMATED_ICON_UPDATE_TIMEOUT = 16;
 | 
			
		||||
 | 
			
		||||
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 = Mainloop.timeout_add(this._speed, Lang.bind(this, this._update));
 | 
			
		||||
            this._timeoutId = GLib.timeout_add(GLib.PRIORITY_LOW, this._speed, Lang.bind(this, this._update));
 | 
			
		||||
            GLib.Source.set_name_by_id(this._timeoutId, '[gnome-shell] this._update');
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -469,6 +469,7 @@ 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) {
 | 
			
		||||
 
 | 
			
		||||
@@ -459,7 +459,8 @@ const ActivitiesButton = new Lang.Class({
 | 
			
		||||
 | 
			
		||||
        if (event.type() == Clutter.EventType.TOUCH_END ||
 | 
			
		||||
            event.type() == Clutter.EventType.BUTTON_RELEASE)
 | 
			
		||||
            Main.overview.toggle();
 | 
			
		||||
            if (Main.overview.shouldToggleByCornerOrButton())
 | 
			
		||||
                Main.overview.toggle();
 | 
			
		||||
 | 
			
		||||
        return Clutter.EVENT_PROPAGATE;
 | 
			
		||||
    },
 | 
			
		||||
@@ -467,7 +468,8 @@ const ActivitiesButton = new Lang.Class({
 | 
			
		||||
    _onKeyRelease: function(actor, event) {
 | 
			
		||||
        let symbol = event.get_key_symbol();
 | 
			
		||||
        if (symbol == Clutter.KEY_Return || symbol == Clutter.KEY_space) {
 | 
			
		||||
            Main.overview.toggle();
 | 
			
		||||
            if (Main.overview.shouldToggleByCornerOrButton())
 | 
			
		||||
                Main.overview.toggle();
 | 
			
		||||
        }
 | 
			
		||||
        return Clutter.EVENT_PROPAGATE;
 | 
			
		||||
    },
 | 
			
		||||
 
 | 
			
		||||
@@ -1235,15 +1235,17 @@ const WindowManager = new Lang.Class({
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
    _fullscreenWindow: function(shellwm, actor, oldFrameRect, oldBufferRect) {
 | 
			
		||||
        actor.translation_x = oldFrameRect.x;
 | 
			
		||||
        actor.translation_y = oldFrameRect.y;
 | 
			
		||||
        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();
 | 
			
		||||
        actor.translation_x = -targetRect.x;
 | 
			
		||||
        actor.translation_y = -targetRect.y;
 | 
			
		||||
        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);
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
@@ -1294,7 +1296,10 @@ const WindowManager = new Lang.Class({
 | 
			
		||||
                           transition: 'easeOutQuad',
 | 
			
		||||
                           onComplete: this._sizeChangeWindowDone,
 | 
			
		||||
                           onCompleteScope: this,
 | 
			
		||||
                           onCompleteParams: [shellwm, actor]
 | 
			
		||||
                           onCompleteParams: [shellwm, actor],
 | 
			
		||||
                           onOverwrite: this._sizeChangeWindowOverwritten,
 | 
			
		||||
                           onOverwriteScope: this,
 | 
			
		||||
                           onOverwriteParams: [shellwm, actor]
 | 
			
		||||
                         });
 | 
			
		||||
 | 
			
		||||
        // Now unfreeze actor updates, to get it to the new size.
 | 
			
		||||
@@ -1319,6 +1324,16 @@ const WindowManager = new Lang.Class({
 | 
			
		||||
        }
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
    _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) {
 | 
			
		||||
 
 | 
			
		||||
@@ -214,7 +214,7 @@ const WindowMenuManager = new Lang.Class({
 | 
			
		||||
                menu.close();
 | 
			
		||||
            });
 | 
			
		||||
 | 
			
		||||
        this._sourceActor.set_size(rect.width, rect.height);
 | 
			
		||||
        this._sourceActor.set_size(Math.max(1, rect.width), Math.max(1, rect.height));
 | 
			
		||||
        this._sourceActor.set_position(rect.x, rect.y);
 | 
			
		||||
        this._sourceActor.show();
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -28,6 +28,7 @@ gl
 | 
			
		||||
gu
 | 
			
		||||
he
 | 
			
		||||
hi
 | 
			
		||||
hr
 | 
			
		||||
hu
 | 
			
		||||
ia
 | 
			
		||||
id
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										16
									
								
								po/ar.po
									
									
									
									
									
								
							
							
						
						
									
										16
									
								
								po/ar.po
									
									
									
									
									
								
							@@ -1223,13 +1223,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);
 | 
			
		||||
@@ -1237,19 +1237,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
 | 
			
		||||
@@ -1269,7 +1269,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
 | 
			
		||||
@@ -1296,7 +1296,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"
 | 
			
		||||
@@ -1364,7 +1364,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..."
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										4
									
								
								po/cs.po
									
									
									
									
									
								
							
							
						
						
									
										4
									
								
								po/cs.po
									
									
									
									
									
								
							@@ -1222,7 +1222,7 @@ msgstr "Zjišťování polohy je povoleno"
 | 
			
		||||
 | 
			
		||||
#: ../js/ui/status/location.js:72 ../js/ui/status/location.js:178
 | 
			
		||||
msgid "Disable"
 | 
			
		||||
msgstr "Zakázáno"
 | 
			
		||||
msgstr "Zakázat"
 | 
			
		||||
 | 
			
		||||
#: ../js/ui/status/location.js:73
 | 
			
		||||
msgid "Privacy Settings"
 | 
			
		||||
@@ -1238,7 +1238,7 @@ msgstr "Zjišťování polohy je zakázáno"
 | 
			
		||||
 | 
			
		||||
#: ../js/ui/status/location.js:181
 | 
			
		||||
msgid "Enable"
 | 
			
		||||
msgstr "Povoleno"
 | 
			
		||||
msgstr "Povolit"
 | 
			
		||||
 | 
			
		||||
#: ../js/ui/status/network.js:101
 | 
			
		||||
msgid "<unknown>"
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										210
									
								
								po/id.po
									
									
									
									
									
								
							
							
						
						
									
										210
									
								
								po/id.po
									
									
									
									
									
								
							@@ -7,11 +7,11 @@
 | 
			
		||||
# Wibiharto <wibinem@yahoo.com>, 2011.
 | 
			
		||||
msgid ""
 | 
			
		||||
msgstr ""
 | 
			
		||||
"Project-Id-Version: gnome-shell master\n"
 | 
			
		||||
"Project-Id-Version: gnome-shell gnome-3-18\n"
 | 
			
		||||
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
 | 
			
		||||
"shell&keywords=I18N+L10N&component=general\n"
 | 
			
		||||
"POT-Creation-Date: 2015-09-19 08:21+0000\n"
 | 
			
		||||
"PO-Revision-Date: 2015-09-19 19:34+0700\n"
 | 
			
		||||
"POT-Creation-Date: 2016-01-02 10:15+0000\n"
 | 
			
		||||
"PO-Revision-Date: 2016-01-02 19:12+0700\n"
 | 
			
		||||
"Last-Translator: Andika Triwidada <andika@gmail.com>\n"
 | 
			
		||||
"Language-Team: Indonesian <gnome-l10n-id@googlegroups.com>\n"
 | 
			
		||||
"Language: id\n"
 | 
			
		||||
@@ -20,7 +20,7 @@ msgstr ""
 | 
			
		||||
"Content-Transfer-Encoding: 8bit\n"
 | 
			
		||||
"Plural-Forms: nplurals=1; plural=0;\n"
 | 
			
		||||
"X-Poedit-SourceCharset: UTF-8\n"
 | 
			
		||||
"X-Generator: Poedit 1.6.10\n"
 | 
			
		||||
"X-Generator: Poedit 1.8.4\n"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-gnome-shell-system.xml.in.h:1
 | 
			
		||||
msgid "System"
 | 
			
		||||
@@ -336,25 +336,33 @@ msgctxt "button"
 | 
			
		||||
msgid "Sign In"
 | 
			
		||||
msgstr "Masuk"
 | 
			
		||||
 | 
			
		||||
#: ../js/gdm/loginDialog.js:281
 | 
			
		||||
#: ../js/gdm/loginDialog.js:285
 | 
			
		||||
msgid "Choose Session"
 | 
			
		||||
msgstr "Pilih Sesi"
 | 
			
		||||
 | 
			
		||||
#: ../js/gdm/loginDialog.js:431
 | 
			
		||||
#. 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
 | 
			
		||||
msgid "Not listed?"
 | 
			
		||||
msgstr "Tak masuk daftar?"
 | 
			
		||||
 | 
			
		||||
#: ../js/gdm/loginDialog.js:850
 | 
			
		||||
#. 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
 | 
			
		||||
#, javascript-format
 | 
			
		||||
msgid "(e.g., user or %s)"
 | 
			
		||||
msgstr "(cth., pengguna dari %s)"
 | 
			
		||||
 | 
			
		||||
#: ../js/gdm/loginDialog.js:855 ../js/ui/components/networkAgent.js:271
 | 
			
		||||
#. 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/ui/components/networkAgent.js:289
 | 
			
		||||
msgid "Username: "
 | 
			
		||||
msgstr "Nama pengguna: "
 | 
			
		||||
 | 
			
		||||
#: ../js/gdm/loginDialog.js:1184
 | 
			
		||||
#: ../js/gdm/loginDialog.js:1196
 | 
			
		||||
msgid "Login Window"
 | 
			
		||||
msgstr "Jendela Log Masuk"
 | 
			
		||||
 | 
			
		||||
@@ -362,6 +370,11 @@ msgstr "Jendela Log Masuk"
 | 
			
		||||
msgid "Authentication error"
 | 
			
		||||
msgstr "Galat otentikasi"
 | 
			
		||||
 | 
			
		||||
#. We don't show fingerprint messages directly since it's
 | 
			
		||||
#. not the main auth service. Instead we use the messages
 | 
			
		||||
#. as a cue to display our own message.
 | 
			
		||||
#. Translators: this message is shown below the password entry field
 | 
			
		||||
#. to indicate the user can swipe their finger instead
 | 
			
		||||
#: ../js/gdm/util.js:473
 | 
			
		||||
msgid "(or swipe finger)"
 | 
			
		||||
msgstr "(atau gesekkan jari)"
 | 
			
		||||
@@ -370,6 +383,8 @@ msgstr "(atau gesekkan jari)"
 | 
			
		||||
msgid "Command not found"
 | 
			
		||||
msgstr "Perintah tidak ditemukan"
 | 
			
		||||
 | 
			
		||||
#. Replace "Error invoking GLib.shell_parse_argv: " with
 | 
			
		||||
#. something nicer
 | 
			
		||||
#: ../js/misc/util.js:152
 | 
			
		||||
msgid "Could not parse command:"
 | 
			
		||||
msgstr "Tak dapat mengurai perintah:"
 | 
			
		||||
@@ -379,70 +394,78 @@ msgstr "Tak dapat mengurai perintah:"
 | 
			
		||||
msgid "Execution of “%s” failed:"
 | 
			
		||||
msgstr "Eksekusi \"%s\" gagal:"
 | 
			
		||||
 | 
			
		||||
#. Translators: Time in 24h format */
 | 
			
		||||
#. Translators: Time in 24h format
 | 
			
		||||
#: ../js/misc/util.js:191
 | 
			
		||||
msgid "%H∶%M"
 | 
			
		||||
msgstr "%H∶%M"
 | 
			
		||||
 | 
			
		||||
#. Translators: this is the word "Yesterday" followed by a
 | 
			
		||||
#. time string in 24h format. i.e. "Yesterday, 14:30" */
 | 
			
		||||
#. time string in 24h format. i.e. "Yesterday, 14:30"
 | 
			
		||||
#: ../js/misc/util.js:197
 | 
			
		||||
#, no-c-format
 | 
			
		||||
msgid "Yesterday, %H∶%M"
 | 
			
		||||
msgstr "Kemarin, %H:%M"
 | 
			
		||||
 | 
			
		||||
#. Translators: this is the week day name followed by a time
 | 
			
		||||
#. string in 24h format. i.e. "Monday, 14:30" */
 | 
			
		||||
#. string in 24h format. i.e. "Monday, 14:30"
 | 
			
		||||
#: ../js/misc/util.js:203
 | 
			
		||||
#, no-c-format
 | 
			
		||||
msgid "%A, %H∶%M"
 | 
			
		||||
msgstr "%A, %H∶%M"
 | 
			
		||||
 | 
			
		||||
#. Translators: this is the month name and day number
 | 
			
		||||
#. followed by a time string in 24h format.
 | 
			
		||||
#. i.e. "May 25, 14:30" */
 | 
			
		||||
#. i.e. "May 25, 14:30"
 | 
			
		||||
#: ../js/misc/util.js:209
 | 
			
		||||
#, no-c-format
 | 
			
		||||
msgid "%B %d, %H∶%M"
 | 
			
		||||
msgstr "%d %B, %H∶%M"
 | 
			
		||||
 | 
			
		||||
#. Translators: this is the month name, day number, year
 | 
			
		||||
#. number followed by a time string in 24h format.
 | 
			
		||||
#. i.e. "May 25 2012, 14:30" */
 | 
			
		||||
#. i.e. "May 25 2012, 14:30"
 | 
			
		||||
#: ../js/misc/util.js:215
 | 
			
		||||
#, no-c-format
 | 
			
		||||
msgid "%B %d %Y, %H∶%M"
 | 
			
		||||
msgstr "%d %B %Y, %H∶%M"
 | 
			
		||||
 | 
			
		||||
#. Translators: Time in 12h format */
 | 
			
		||||
#. Translators: Time in 12h format
 | 
			
		||||
#: ../js/misc/util.js:220
 | 
			
		||||
msgid "%l∶%M %p"
 | 
			
		||||
msgstr "%H∶%M"
 | 
			
		||||
 | 
			
		||||
#. Translators: this is the word "Yesterday" followed by a
 | 
			
		||||
#. time string in 12h format. i.e. "Yesterday, 2:30 pm" */
 | 
			
		||||
#. time string in 12h format. i.e. "Yesterday, 2:30 pm"
 | 
			
		||||
#: ../js/misc/util.js:226
 | 
			
		||||
#, no-c-format
 | 
			
		||||
msgid "Yesterday, %l∶%M %p"
 | 
			
		||||
msgstr "Kemarin, %l∶%M %p"
 | 
			
		||||
 | 
			
		||||
#. Translators: this is the week day name followed by a time
 | 
			
		||||
#. string in 12h format. i.e. "Monday, 2:30 pm" */
 | 
			
		||||
#. string in 12h format. i.e. "Monday, 2:30 pm"
 | 
			
		||||
#: ../js/misc/util.js:232
 | 
			
		||||
#, no-c-format
 | 
			
		||||
msgid "%A, %l∶%M %p"
 | 
			
		||||
msgstr "%A, %l∶%M %p"
 | 
			
		||||
 | 
			
		||||
#. Translators: this is the month name and day number
 | 
			
		||||
#. followed by a time string in 12h format.
 | 
			
		||||
#. i.e. "May 25, 2:30 pm" */
 | 
			
		||||
#. i.e. "May 25, 2:30 pm"
 | 
			
		||||
#: ../js/misc/util.js:238
 | 
			
		||||
#, no-c-format
 | 
			
		||||
msgid "%B %d, %l∶%M %p"
 | 
			
		||||
msgstr "%d %B, %l∶%M %p"
 | 
			
		||||
 | 
			
		||||
#. Translators: this is the month name, day number, year
 | 
			
		||||
#. number followed by a time string in 12h format.
 | 
			
		||||
#. i.e. "May 25 2012, 2:30 pm"*/
 | 
			
		||||
#. i.e. "May 25 2012, 2:30 pm"
 | 
			
		||||
#: ../js/misc/util.js:244
 | 
			
		||||
#, no-c-format
 | 
			
		||||
msgid "%B %d %Y, %l∶%M %p"
 | 
			
		||||
msgstr "%d %B %Y, %l∶%M %p"
 | 
			
		||||
 | 
			
		||||
#. TRANSLATORS: this is the title of the wifi captive portal login
 | 
			
		||||
#. * window, until we know the title of the actual login page */
 | 
			
		||||
#. * window, until we know the title of the actual login page
 | 
			
		||||
#: ../js/portalHelper/main.js:85
 | 
			
		||||
msgid "Web Authentication Redirect"
 | 
			
		||||
msgstr "Pengalihan Otentikasi Web"
 | 
			
		||||
@@ -493,12 +516,11 @@ msgstr "Ubah Latar…"
 | 
			
		||||
msgid "Display Settings"
 | 
			
		||||
msgstr "Pengaturan Tampilan"
 | 
			
		||||
 | 
			
		||||
#: ../js/ui/backgroundMenu.js:22 ../js/ui/panel.js:650
 | 
			
		||||
#: ../js/ui/status/system.js:366
 | 
			
		||||
#: ../js/ui/backgroundMenu.js:22 ../js/ui/status/system.js:366
 | 
			
		||||
msgid "Settings"
 | 
			
		||||
msgstr "Pengaturan"
 | 
			
		||||
 | 
			
		||||
#. 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"
 | 
			
		||||
@@ -508,43 +530,43 @@ msgstr "06"
 | 
			
		||||
#. *
 | 
			
		||||
#. * NOTE: These grid abbreviations are always shown together
 | 
			
		||||
#. * and in order, e.g. "S M T W T F S".
 | 
			
		||||
#. */
 | 
			
		||||
#.
 | 
			
		||||
#: ../js/ui/calendar.js:84
 | 
			
		||||
msgctxt "grid sunday"
 | 
			
		||||
msgid "S"
 | 
			
		||||
msgstr "M"
 | 
			
		||||
 | 
			
		||||
#. Translators: Calendar grid abbreviation for Monday */
 | 
			
		||||
#. Translators: Calendar grid abbreviation for Monday
 | 
			
		||||
#: ../js/ui/calendar.js:86
 | 
			
		||||
msgctxt "grid monday"
 | 
			
		||||
msgid "M"
 | 
			
		||||
msgstr "S"
 | 
			
		||||
 | 
			
		||||
#. Translators: Calendar grid abbreviation for Tuesday */
 | 
			
		||||
#. Translators: Calendar grid abbreviation for Tuesday
 | 
			
		||||
#: ../js/ui/calendar.js:88
 | 
			
		||||
msgctxt "grid tuesday"
 | 
			
		||||
msgid "T"
 | 
			
		||||
msgstr "S"
 | 
			
		||||
 | 
			
		||||
#. Translators: Calendar grid abbreviation for Wednesday */
 | 
			
		||||
#. Translators: Calendar grid abbreviation for Wednesday
 | 
			
		||||
#: ../js/ui/calendar.js:90
 | 
			
		||||
msgctxt "grid wednesday"
 | 
			
		||||
msgid "W"
 | 
			
		||||
msgstr "R"
 | 
			
		||||
 | 
			
		||||
#. Translators: Calendar grid abbreviation for Thursday */
 | 
			
		||||
#. Translators: Calendar grid abbreviation for Thursday
 | 
			
		||||
#: ../js/ui/calendar.js:92
 | 
			
		||||
msgctxt "grid thursday"
 | 
			
		||||
msgid "T"
 | 
			
		||||
msgstr "K"
 | 
			
		||||
 | 
			
		||||
#. Translators: Calendar grid abbreviation for Friday */
 | 
			
		||||
#. Translators: Calendar grid abbreviation for Friday
 | 
			
		||||
#: ../js/ui/calendar.js:94
 | 
			
		||||
msgctxt "grid friday"
 | 
			
		||||
msgid "F"
 | 
			
		||||
msgstr "J"
 | 
			
		||||
 | 
			
		||||
#. Translators: Calendar grid abbreviation for Saturday */
 | 
			
		||||
#. Translators: Calendar grid abbreviation for Saturday
 | 
			
		||||
#: ../js/ui/calendar.js:96
 | 
			
		||||
msgctxt "grid saturday"
 | 
			
		||||
msgid "S"
 | 
			
		||||
@@ -564,39 +586,39 @@ msgstr "Minggu %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 "Sepanjang Hari"
 | 
			
		||||
 | 
			
		||||
#: ../js/ui/calendar.js:1291
 | 
			
		||||
#: ../js/ui/calendar.js:1295
 | 
			
		||||
msgid "Clear section"
 | 
			
		||||
msgstr "Bersihkan seksi"
 | 
			
		||||
 | 
			
		||||
#: ../js/ui/calendar.js:1518
 | 
			
		||||
#: ../js/ui/calendar.js:1522
 | 
			
		||||
msgid "Events"
 | 
			
		||||
msgstr "Kejadian"
 | 
			
		||||
 | 
			
		||||
#: ../js/ui/calendar.js:1527
 | 
			
		||||
#: ../js/ui/calendar.js:1531
 | 
			
		||||
msgctxt "calendar heading"
 | 
			
		||||
msgid "%A, %B %d"
 | 
			
		||||
msgstr "%A, %d %B"
 | 
			
		||||
 | 
			
		||||
#: ../js/ui/calendar.js:1531
 | 
			
		||||
#: ../js/ui/calendar.js:1535
 | 
			
		||||
msgctxt "calendar heading"
 | 
			
		||||
msgid "%A, %B %d, %Y"
 | 
			
		||||
msgstr "%A, %d %B %Y"
 | 
			
		||||
 | 
			
		||||
#: ../js/ui/calendar.js:1616
 | 
			
		||||
#: ../js/ui/calendar.js:1620
 | 
			
		||||
msgid "Notifications"
 | 
			
		||||
msgstr "Pemberitahuan"
 | 
			
		||||
 | 
			
		||||
#: ../js/ui/calendar.js:1767
 | 
			
		||||
#: ../js/ui/calendar.js:1771
 | 
			
		||||
msgid "No Notifications"
 | 
			
		||||
msgstr "Tak Ada Pemberitahuan"
 | 
			
		||||
 | 
			
		||||
#: ../js/ui/calendar.js:1770
 | 
			
		||||
#: ../js/ui/calendar.js:1774
 | 
			
		||||
msgid "No Events"
 | 
			
		||||
msgstr "Tak Ada Kejadian"
 | 
			
		||||
 | 
			
		||||
@@ -608,7 +630,7 @@ msgstr "Drive eksternal tersambung"
 | 
			
		||||
msgid "External drive disconnected"
 | 
			
		||||
msgstr "Drive eksternal terputus"
 | 
			
		||||
 | 
			
		||||
#: ../js/ui/components/autorunManager.js:354
 | 
			
		||||
#: ../js/ui/components/autorunManager.js:351
 | 
			
		||||
#, javascript-format
 | 
			
		||||
msgid "Open with %s"
 | 
			
		||||
msgstr "Buka dengan %s"
 | 
			
		||||
@@ -626,6 +648,7 @@ msgstr "Ketik lagi:"
 | 
			
		||||
msgid "Connect"
 | 
			
		||||
msgstr "Sambung"
 | 
			
		||||
 | 
			
		||||
#. Cisco LEAP
 | 
			
		||||
#: ../js/ui/components/networkAgent.js:233
 | 
			
		||||
#: ../js/ui/components/networkAgent.js:245
 | 
			
		||||
#: ../js/ui/components/networkAgent.js:273
 | 
			
		||||
@@ -634,6 +657,7 @@ msgstr "Sambung"
 | 
			
		||||
msgid "Password: "
 | 
			
		||||
msgstr "Sandi: "
 | 
			
		||||
 | 
			
		||||
#. static WEP
 | 
			
		||||
#: ../js/ui/components/networkAgent.js:238
 | 
			
		||||
msgid "Key: "
 | 
			
		||||
msgstr "Tombol: "
 | 
			
		||||
@@ -725,13 +749,13 @@ msgstr "Otentikasi"
 | 
			
		||||
#. Translators: "that didn't work" refers to the fact that the
 | 
			
		||||
#. * requested authentication was not gained; this can happen
 | 
			
		||||
#. * because of an authentication error (like invalid password),
 | 
			
		||||
#. * for instance. */
 | 
			
		||||
#. * for instance.
 | 
			
		||||
#: ../js/ui/components/polkitAgent.js:301 ../js/ui/shellMountOperation.js:383
 | 
			
		||||
msgid "Sorry, that didn't work. Please try again."
 | 
			
		||||
msgstr "Maaf, tidak berhasil. Silakan coba lagi."
 | 
			
		||||
 | 
			
		||||
#. Translators: this is the other person changing their old IM name to their new
 | 
			
		||||
#. IM name. */
 | 
			
		||||
#. IM name.
 | 
			
		||||
#: ../js/ui/components/telepathyClient.js:759
 | 
			
		||||
#, javascript-format
 | 
			
		||||
msgid "%s is now known as %s"
 | 
			
		||||
@@ -745,13 +769,15 @@ msgstr "Jendela"
 | 
			
		||||
msgid "Show Applications"
 | 
			
		||||
msgstr "Tampilkan Aplikasi"
 | 
			
		||||
 | 
			
		||||
#. Translators: this is the name of the dock/favorites area on
 | 
			
		||||
#. the left of the overview
 | 
			
		||||
#: ../js/ui/dash.js:449
 | 
			
		||||
msgid "Dash"
 | 
			
		||||
msgstr "Dash"
 | 
			
		||||
 | 
			
		||||
#. Translators: This is the date format to use when the calendar popup is
 | 
			
		||||
#. * shown - it is shown just below the time in the shell (e.g. "Tue 9:29 AM").
 | 
			
		||||
#. */
 | 
			
		||||
#.
 | 
			
		||||
#: ../js/ui/dateMenu.js:73
 | 
			
		||||
msgid "%B %e %Y"
 | 
			
		||||
msgstr "%e %B %Y"
 | 
			
		||||
@@ -759,7 +785,7 @@ msgstr "%e %B %Y"
 | 
			
		||||
#. Translators: This is the accessible name of the date button shown
 | 
			
		||||
#. * below the time in the shell; it should combine the weekday and the
 | 
			
		||||
#. * date, e.g. "Tuesday February 17 2015".
 | 
			
		||||
#. */
 | 
			
		||||
#.
 | 
			
		||||
#: ../js/ui/dateMenu.js:80
 | 
			
		||||
msgid "%A %B %e %Y"
 | 
			
		||||
msgstr "%A %e %B %Y"
 | 
			
		||||
@@ -884,13 +910,13 @@ msgstr "Beberapa aplikasi sedang sibuk atau belum disimpan perubahannya."
 | 
			
		||||
msgid "Other users are logged in."
 | 
			
		||||
msgstr "Pengguna lain sedang log masuk."
 | 
			
		||||
 | 
			
		||||
#. Translators: Remote here refers to a remote session, like a ssh login */
 | 
			
		||||
#. Translators: Remote here refers to a remote session, like a ssh login
 | 
			
		||||
#: ../js/ui/endSessionDialog.js:640
 | 
			
		||||
#, javascript-format
 | 
			
		||||
msgid "%s (remote)"
 | 
			
		||||
msgstr "%s (jarak jauh)"
 | 
			
		||||
 | 
			
		||||
#. Translators: Console here refers to a tty like a VT console */
 | 
			
		||||
#. Translators: Console here refers to a tty like a VT console
 | 
			
		||||
#: ../js/ui/endSessionDialog.js:643
 | 
			
		||||
#, javascript-format
 | 
			
		||||
msgid "%s (console)"
 | 
			
		||||
@@ -909,7 +935,7 @@ msgstr "Unduh dan pasang \"%s\" dari extensions.gnome.org?"
 | 
			
		||||
msgid "Keyboard"
 | 
			
		||||
msgstr "Papan Ketik"
 | 
			
		||||
 | 
			
		||||
#. translators: 'Hide' is a verb */
 | 
			
		||||
#. translators: 'Hide' is a verb
 | 
			
		||||
#: ../js/ui/legacyTray.js:66
 | 
			
		||||
msgid "Hide tray"
 | 
			
		||||
msgstr "Sembunyikan baki"
 | 
			
		||||
@@ -922,7 +948,7 @@ msgstr "Ikon Status"
 | 
			
		||||
msgid "No extensions installed"
 | 
			
		||||
msgstr "Tak ada ekstensi terpasang"
 | 
			
		||||
 | 
			
		||||
#. Translators: argument is an extension UUID. */
 | 
			
		||||
#. Translators: argument is an extension UUID.
 | 
			
		||||
#: ../js/ui/lookingGlass.js:697
 | 
			
		||||
#, javascript-format
 | 
			
		||||
msgid "%s has not emitted any errors."
 | 
			
		||||
@@ -942,7 +968,7 @@ msgstr "Diaktifkan"
 | 
			
		||||
 | 
			
		||||
#. translators:
 | 
			
		||||
#. * The device has been disabled
 | 
			
		||||
#: ../js/ui/lookingGlass.js:719 ../src/gvc/gvc-mixer-control.c:1830
 | 
			
		||||
#: ../js/ui/lookingGlass.js:719 ../src/gvc/gvc-mixer-control.c:1828
 | 
			
		||||
msgid "Disabled"
 | 
			
		||||
msgstr "Dinonaktifkan"
 | 
			
		||||
 | 
			
		||||
@@ -981,26 +1007,36 @@ msgstr "Gambaran"
 | 
			
		||||
#. Translators: this is the text displayed
 | 
			
		||||
#. in the search entry when no search is
 | 
			
		||||
#. active; it should not exceed ~30
 | 
			
		||||
#. characters. */
 | 
			
		||||
#. characters.
 | 
			
		||||
#: ../js/ui/overview.js:244
 | 
			
		||||
msgid "Type to search…"
 | 
			
		||||
msgstr "Ketik untuk mencari…"
 | 
			
		||||
 | 
			
		||||
#: ../js/ui/panel.js:352
 | 
			
		||||
#: ../js/ui/panel.js:358
 | 
			
		||||
msgid "Quit"
 | 
			
		||||
msgstr "Keluar"
 | 
			
		||||
 | 
			
		||||
#. Translators: If there is no suitable word for "Activities"
 | 
			
		||||
#. in your language, you can use the word for "Overview". */
 | 
			
		||||
#: ../js/ui/panel.js:404
 | 
			
		||||
#. in your language, you can use the word for "Overview".
 | 
			
		||||
#: ../js/ui/panel.js:414
 | 
			
		||||
msgid "Activities"
 | 
			
		||||
msgstr "Aktivitas"
 | 
			
		||||
 | 
			
		||||
#: ../js/ui/panel.js:754
 | 
			
		||||
#: ../js/ui/panel.js:695
 | 
			
		||||
msgctxt "System menu in the top bar"
 | 
			
		||||
msgid "System"
 | 
			
		||||
msgstr "Sistem"
 | 
			
		||||
 | 
			
		||||
#: ../js/ui/panel.js:807
 | 
			
		||||
msgid "Top Bar"
 | 
			
		||||
msgstr "Bar Atas"
 | 
			
		||||
 | 
			
		||||
# Dirgita: Hayo, enaknya pake I/O atau ON/OFF?^^
 | 
			
		||||
#. Translators: this MUST be either "toggle-switch-us"
 | 
			
		||||
#. (for toggle switches containing the English words
 | 
			
		||||
#. "ON" and "OFF") or "toggle-switch-intl" (for toggle
 | 
			
		||||
#. switches containing "◯" and "|"). Other values will
 | 
			
		||||
#. simply result in invisible toggle switches.
 | 
			
		||||
#: ../js/ui/popupMenu.js:289
 | 
			
		||||
msgid "toggle-switch-us"
 | 
			
		||||
msgstr "toggle-switch-intl"
 | 
			
		||||
@@ -1018,7 +1054,7 @@ msgid "Restarting…"
 | 
			
		||||
msgstr "Memulai ulang..."
 | 
			
		||||
 | 
			
		||||
#. Translators: This is a time format for a date in
 | 
			
		||||
#. long format */
 | 
			
		||||
#. long format
 | 
			
		||||
#: ../js/ui/screenShield.js:85
 | 
			
		||||
msgid "%A, %B %d"
 | 
			
		||||
msgstr "%A, %d %B"
 | 
			
		||||
@@ -1043,6 +1079,13 @@ msgstr "Kunci"
 | 
			
		||||
msgid "GNOME needs to lock the screen"
 | 
			
		||||
msgstr "GNOME perlu mengunci layar"
 | 
			
		||||
 | 
			
		||||
#. We could not become modal, so we can't activate the
 | 
			
		||||
#. screenshield. The user is probably very upset at this
 | 
			
		||||
#. point, but any application using global grabs is broken
 | 
			
		||||
#. Just tell him to stop using this app
 | 
			
		||||
#.
 | 
			
		||||
#. XXX: another option is to kick the user into the gdm login
 | 
			
		||||
#. screen, where we're not affected by grabs
 | 
			
		||||
#: ../js/ui/screenShield.js:805 ../js/ui/screenShield.js:1271
 | 
			
		||||
msgid "Unable to lock"
 | 
			
		||||
msgstr "Tak bisa mengunci"
 | 
			
		||||
@@ -1138,7 +1181,7 @@ msgstr "Matikan"
 | 
			
		||||
msgid "Bluetooth Settings"
 | 
			
		||||
msgstr "Pengaturan Bluetooth"
 | 
			
		||||
 | 
			
		||||
#. Translators: this is the number of connected bluetooth devices */
 | 
			
		||||
#. Translators: this is the number of connected bluetooth devices
 | 
			
		||||
#: ../js/ui/status/bluetooth.js:105
 | 
			
		||||
#, javascript-format
 | 
			
		||||
msgid "%d Connected"
 | 
			
		||||
@@ -1185,13 +1228,13 @@ msgstr "Fungsikan"
 | 
			
		||||
msgid "<unknown>"
 | 
			
		||||
msgstr "<tak dikenal>"
 | 
			
		||||
 | 
			
		||||
#. Translators: %s is a network identifier */
 | 
			
		||||
#. Translators: %s is a network identifier
 | 
			
		||||
#: ../js/ui/status/network.js:451 ../js/ui/status/network.js:1308
 | 
			
		||||
#, javascript-format
 | 
			
		||||
msgid "%s Off"
 | 
			
		||||
msgstr "%s Mati"
 | 
			
		||||
 | 
			
		||||
#. Translators: %s is a network identifier */
 | 
			
		||||
#. Translators: %s is a network identifier
 | 
			
		||||
#: ../js/ui/status/network.js:454
 | 
			
		||||
#, javascript-format
 | 
			
		||||
msgid "%s Connected"
 | 
			
		||||
@@ -1199,45 +1242,45 @@ msgstr "%s Tersambung"
 | 
			
		||||
 | 
			
		||||
#. Translators: this is for network devices that are physically present but are not
 | 
			
		||||
#. under NetworkManager's control (and thus cannot be used in the menu);
 | 
			
		||||
#. %s is a network identifier */
 | 
			
		||||
#. %s is a network identifier
 | 
			
		||||
#: ../js/ui/status/network.js:459
 | 
			
		||||
#, javascript-format
 | 
			
		||||
msgid "%s Unmanaged"
 | 
			
		||||
msgstr "%s Tak Dikelola"
 | 
			
		||||
 | 
			
		||||
#. Translators: %s is a network identifier */
 | 
			
		||||
#. Translators: %s is a network identifier
 | 
			
		||||
#: ../js/ui/status/network.js:462
 | 
			
		||||
#, javascript-format
 | 
			
		||||
msgid "%s Disconnecting"
 | 
			
		||||
msgstr "%s Memutus"
 | 
			
		||||
 | 
			
		||||
#. Translators: %s is a network identifier */
 | 
			
		||||
#. Translators: %s is a network identifier
 | 
			
		||||
#: ../js/ui/status/network.js:469 ../js/ui/status/network.js:1300
 | 
			
		||||
#, javascript-format
 | 
			
		||||
msgid "%s Connecting"
 | 
			
		||||
msgstr "%s Menyambung"
 | 
			
		||||
 | 
			
		||||
#. Translators: this is for network connections that require some kind of key or password; %s is a network identifier */
 | 
			
		||||
#. Translators: this is for network connections that require some kind of key or password; %s is a network identifier
 | 
			
		||||
#: ../js/ui/status/network.js:472
 | 
			
		||||
#, javascript-format
 | 
			
		||||
msgid "%s Requires Authentication"
 | 
			
		||||
msgstr "%s Memerlukan Otentikasi"
 | 
			
		||||
 | 
			
		||||
#. Translators: this is for devices that require some kind of firmware or kernel
 | 
			
		||||
#. module, which is missing; %s is a network identifier */
 | 
			
		||||
#. module, which is missing; %s is a network identifier
 | 
			
		||||
#: ../js/ui/status/network.js:480
 | 
			
		||||
#, javascript-format
 | 
			
		||||
msgid "Firmware Missing For %s"
 | 
			
		||||
msgstr "Firmware Hilang Untuk %s"
 | 
			
		||||
 | 
			
		||||
#. Translators: this is for a network device that cannot be activated (for example it
 | 
			
		||||
#. is disabled by rfkill, or it has no coverage; %s is a network identifier */
 | 
			
		||||
#. is disabled by rfkill, or it has no coverage; %s is a network identifier
 | 
			
		||||
#: ../js/ui/status/network.js:484
 | 
			
		||||
#, javascript-format
 | 
			
		||||
msgid "%s Unavailable"
 | 
			
		||||
msgstr "%s Tak tersedia"
 | 
			
		||||
 | 
			
		||||
#. Translators: %s is a network identifier */
 | 
			
		||||
#. Translators: %s is a network identifier
 | 
			
		||||
#: ../js/ui/status/network.js:487
 | 
			
		||||
#, javascript-format
 | 
			
		||||
msgid "%s Connection Failed"
 | 
			
		||||
@@ -1251,14 +1294,14 @@ msgstr "Pengaturan Kabel"
 | 
			
		||||
msgid "Mobile Broadband Settings"
 | 
			
		||||
msgstr "Pengaturan Data Seluler"
 | 
			
		||||
 | 
			
		||||
#. Translators: %s is a network identifier */
 | 
			
		||||
#. Translators: %s is a network identifier
 | 
			
		||||
#: ../js/ui/status/network.js:588 ../js/ui/status/network.js:1305
 | 
			
		||||
#, javascript-format
 | 
			
		||||
msgid "%s Hardware Disabled"
 | 
			
		||||
msgstr "%s Perangkat Keras Dinonaktifkan"
 | 
			
		||||
 | 
			
		||||
#. Translators: this is for a network device that cannot be activated
 | 
			
		||||
#. because it's disabled by rfkill (airplane mode); %s is a network identifier */
 | 
			
		||||
#. because it's disabled by rfkill (airplane mode); %s is a network identifier
 | 
			
		||||
#: ../js/ui/status/network.js:592
 | 
			
		||||
#, javascript-format
 | 
			
		||||
msgid "%s Disabled"
 | 
			
		||||
@@ -1320,13 +1363,13 @@ msgstr "Pengaturan Wi-Fi"
 | 
			
		||||
msgid "Turn On"
 | 
			
		||||
msgstr "Nyalakan"
 | 
			
		||||
 | 
			
		||||
#. Translators: %s is a network identifier */
 | 
			
		||||
#. Translators: %s is a network identifier
 | 
			
		||||
#: ../js/ui/status/network.js:1296
 | 
			
		||||
#, javascript-format
 | 
			
		||||
msgid "%s Hotspot Active"
 | 
			
		||||
msgstr "%s Hotspot Aktif"
 | 
			
		||||
 | 
			
		||||
#. Translators: %s is a network identifier */
 | 
			
		||||
#. Translators: %s is a network identifier
 | 
			
		||||
#: ../js/ui/status/network.js:1311
 | 
			
		||||
#, javascript-format
 | 
			
		||||
msgid "%s Not Connected"
 | 
			
		||||
@@ -1336,7 +1379,7 @@ msgstr "%s Tak Tersambung"
 | 
			
		||||
msgid "connecting..."
 | 
			
		||||
msgstr "menghubungi..."
 | 
			
		||||
 | 
			
		||||
#. Translators: this is for network connections that require some kind of key or password */
 | 
			
		||||
#. Translators: this is for network connections that require some kind of key or password
 | 
			
		||||
#: ../js/ui/status/network.js:1414
 | 
			
		||||
msgid "authentication required"
 | 
			
		||||
msgstr "diperlukan otentikasi"
 | 
			
		||||
@@ -1377,20 +1420,27 @@ msgstr "Pengaturan Daya"
 | 
			
		||||
msgid "Fully Charged"
 | 
			
		||||
msgstr "Terisi Penuh"
 | 
			
		||||
 | 
			
		||||
#. 0 is reported when UPower does not have enough data
 | 
			
		||||
#. to estimate battery life
 | 
			
		||||
#: ../js/ui/status/power.js:72 ../js/ui/status/power.js:78
 | 
			
		||||
msgid "Estimating…"
 | 
			
		||||
msgstr "Memperkirakan…"
 | 
			
		||||
 | 
			
		||||
#. Translators: this is <hours>:<minutes> Remaining (<percentage>)
 | 
			
		||||
#: ../js/ui/status/power.js:86
 | 
			
		||||
#, javascript-format
 | 
			
		||||
msgid "%d∶%02d Remaining (%d%%)"
 | 
			
		||||
msgstr "%d:%02d Tersisa (%d%%)"
 | 
			
		||||
 | 
			
		||||
#. Translators: this is <hours>:<minutes> Until Full (<percentage>)
 | 
			
		||||
#: ../js/ui/status/power.js:91
 | 
			
		||||
#, javascript-format
 | 
			
		||||
msgid "%d∶%02d Until Full (%d%%)"
 | 
			
		||||
msgstr "%d:%02d Sampai Penuh (%d%%)"
 | 
			
		||||
 | 
			
		||||
#. The menu only appears when airplane mode is on, so just
 | 
			
		||||
#. statically build it as if it was on, rather than dynamically
 | 
			
		||||
#. changing the menu contents.
 | 
			
		||||
#: ../js/ui/status/rfkill.js:88
 | 
			
		||||
msgid "Airplane Mode On"
 | 
			
		||||
msgstr "Mode Pesawat Terbang Aktif"
 | 
			
		||||
@@ -1458,7 +1508,7 @@ msgstr "Apakah Anda ingin mempertahankan pengaturan tampilan ini?"
 | 
			
		||||
 | 
			
		||||
#. Translators: this and the following message should be limited in lenght,
 | 
			
		||||
#. to avoid ellipsizing the labels.
 | 
			
		||||
#. */
 | 
			
		||||
#.
 | 
			
		||||
#: ../js/ui/windowManager.js:82
 | 
			
		||||
msgid "Revert Settings"
 | 
			
		||||
msgstr "Balikkan Tatanan"
 | 
			
		||||
@@ -1474,7 +1524,7 @@ msgid_plural "Settings changes will revert in %d seconds"
 | 
			
		||||
msgstr[0] "Perubahan tatanan akan dikembalikan dalam %d detik"
 | 
			
		||||
 | 
			
		||||
#. Translators: This represents the size of a window. The first number is
 | 
			
		||||
#. * the width of the window and the second is the height. */
 | 
			
		||||
#. * the width of the window and the second is the height.
 | 
			
		||||
#: ../js/ui/windowManager.js:658
 | 
			
		||||
#, javascript-format
 | 
			
		||||
msgid "%d x %d"
 | 
			
		||||
@@ -1550,7 +1600,7 @@ msgstr "Evolution Kalender"
 | 
			
		||||
 | 
			
		||||
#. translators:
 | 
			
		||||
#. * The number of sound outputs on a particular device
 | 
			
		||||
#: ../src/gvc/gvc-mixer-control.c:1837
 | 
			
		||||
#: ../src/gvc/gvc-mixer-control.c:1835
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid "%u Output"
 | 
			
		||||
msgid_plural "%u Outputs"
 | 
			
		||||
@@ -1558,38 +1608,38 @@ msgstr[0] "%u Keluaran"
 | 
			
		||||
 | 
			
		||||
#. translators:
 | 
			
		||||
#. * The number of sound inputs on a particular device
 | 
			
		||||
#: ../src/gvc/gvc-mixer-control.c:1847
 | 
			
		||||
#: ../src/gvc/gvc-mixer-control.c:1845
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid "%u Input"
 | 
			
		||||
msgid_plural "%u Inputs"
 | 
			
		||||
msgstr[0] "%u Masukan"
 | 
			
		||||
 | 
			
		||||
#: ../src/gvc/gvc-mixer-control.c:2373
 | 
			
		||||
#: ../src/gvc/gvc-mixer-control.c:2371
 | 
			
		||||
msgid "System Sounds"
 | 
			
		||||
msgstr "Suara Sistem"
 | 
			
		||||
 | 
			
		||||
#: ../src/main.c:373
 | 
			
		||||
#: ../src/main.c:381
 | 
			
		||||
msgid "Print version"
 | 
			
		||||
msgstr "Versi Cetak"
 | 
			
		||||
 | 
			
		||||
#: ../src/main.c:379
 | 
			
		||||
#: ../src/main.c:387
 | 
			
		||||
msgid "Mode used by GDM for login screen"
 | 
			
		||||
msgstr "Mode yang dipakai oleh layar log masuk GDM"
 | 
			
		||||
 | 
			
		||||
#: ../src/main.c:385
 | 
			
		||||
#: ../src/main.c:393
 | 
			
		||||
msgid "Use a specific mode, e.g. \"gdm\" for login screen"
 | 
			
		||||
msgstr "Menggunakan mode tertentu, mis. \"gdm\" untuk layar masuk"
 | 
			
		||||
 | 
			
		||||
#: ../src/main.c:391
 | 
			
		||||
#: ../src/main.c:399
 | 
			
		||||
msgid "List possible modes"
 | 
			
		||||
msgstr "Menampilkan mode yang mungkin"
 | 
			
		||||
 | 
			
		||||
#: ../src/shell-app.c:239
 | 
			
		||||
#: ../src/shell-app.c:246
 | 
			
		||||
msgctxt "program"
 | 
			
		||||
msgid "Unknown"
 | 
			
		||||
msgstr "Tak dikenal"
 | 
			
		||||
 | 
			
		||||
#: ../src/shell-app.c:480
 | 
			
		||||
#: ../src/shell-app.c:487
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid "Failed to launch “%s”"
 | 
			
		||||
msgstr "Gagal meluncurkan \"%s\""
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										54
									
								
								po/nb.po
									
									
									
									
									
								
							
							
						
						
									
										54
									
								
								po/nb.po
									
									
									
									
									
								
							@@ -9,8 +9,8 @@ msgid ""
 | 
			
		||||
msgstr ""
 | 
			
		||||
"Project-Id-Version: gnome-shell 3.17.x\n"
 | 
			
		||||
"Report-Msgid-Bugs-To: \n"
 | 
			
		||||
"POT-Creation-Date: 2015-09-07 19:22+0200\n"
 | 
			
		||||
"PO-Revision-Date: 2015-09-07 19:31+0200\n"
 | 
			
		||||
"POT-Creation-Date: 2015-10-16 18:11+0200\n"
 | 
			
		||||
"PO-Revision-Date: 2015-10-16 18:11+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"
 | 
			
		||||
@@ -508,8 +508,7 @@ msgstr "Bytt bakgrunn …"
 | 
			
		||||
msgid "Display Settings"
 | 
			
		||||
msgstr "Innstillinger for skjerm"
 | 
			
		||||
 | 
			
		||||
#: ../js/ui/backgroundMenu.js:22 ../js/ui/panel.js:650
 | 
			
		||||
#: ../js/ui/status/system.js:366
 | 
			
		||||
#: ../js/ui/backgroundMenu.js:22 ../js/ui/status/system.js:366
 | 
			
		||||
msgid "Settings"
 | 
			
		||||
msgstr "Innstillinger"
 | 
			
		||||
 | 
			
		||||
@@ -585,33 +584,33 @@ msgctxt "event list time"
 | 
			
		||||
msgid "All Day"
 | 
			
		||||
msgstr "Hele dagen"
 | 
			
		||||
 | 
			
		||||
#: ../js/ui/calendar.js:1291
 | 
			
		||||
#: ../js/ui/calendar.js:1295
 | 
			
		||||
msgid "Clear section"
 | 
			
		||||
msgstr "Tøm seksjon"
 | 
			
		||||
 | 
			
		||||
#: ../js/ui/calendar.js:1518
 | 
			
		||||
#: ../js/ui/calendar.js:1522
 | 
			
		||||
msgid "Events"
 | 
			
		||||
msgstr "Hendelser"
 | 
			
		||||
 | 
			
		||||
#: ../js/ui/calendar.js:1527
 | 
			
		||||
#: ../js/ui/calendar.js:1531
 | 
			
		||||
msgctxt "calendar heading"
 | 
			
		||||
msgid "%A, %B %d"
 | 
			
		||||
msgstr "%A %B %d"
 | 
			
		||||
 | 
			
		||||
#: ../js/ui/calendar.js:1531
 | 
			
		||||
#: ../js/ui/calendar.js:1535
 | 
			
		||||
msgctxt "calendar heading"
 | 
			
		||||
msgid "%A, %B %d, %Y"
 | 
			
		||||
msgstr "%A %B %d, %Y"
 | 
			
		||||
 | 
			
		||||
#: ../js/ui/calendar.js:1616
 | 
			
		||||
#: ../js/ui/calendar.js:1620
 | 
			
		||||
msgid "Notifications"
 | 
			
		||||
msgstr "Varslinger"
 | 
			
		||||
 | 
			
		||||
#: ../js/ui/calendar.js:1767
 | 
			
		||||
#: ../js/ui/calendar.js:1771
 | 
			
		||||
msgid "No Notifications"
 | 
			
		||||
msgstr "Ingen varslinger"
 | 
			
		||||
 | 
			
		||||
#: ../js/ui/calendar.js:1770
 | 
			
		||||
#: ../js/ui/calendar.js:1774
 | 
			
		||||
msgid "No Events"
 | 
			
		||||
msgstr "Ingen hendelser"
 | 
			
		||||
 | 
			
		||||
@@ -623,7 +622,7 @@ msgstr "Ekstern stasjon koblet til"
 | 
			
		||||
msgid "External drive disconnected"
 | 
			
		||||
msgstr "Ekstern stasjon koblet fra"
 | 
			
		||||
 | 
			
		||||
#: ../js/ui/components/autorunManager.js:354
 | 
			
		||||
#: ../js/ui/components/autorunManager.js:351
 | 
			
		||||
#, javascript-format
 | 
			
		||||
msgid "Open with %s"
 | 
			
		||||
msgstr "Åpne med %s"
 | 
			
		||||
@@ -1012,17 +1011,22 @@ msgstr "Oversikt"
 | 
			
		||||
msgid "Type to search…"
 | 
			
		||||
msgstr "Skriv for å søke …"
 | 
			
		||||
 | 
			
		||||
#: ../js/ui/panel.js:352
 | 
			
		||||
#: ../js/ui/panel.js:358
 | 
			
		||||
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:404
 | 
			
		||||
#: ../js/ui/panel.js:414
 | 
			
		||||
msgid "Activities"
 | 
			
		||||
msgstr "Aktiviteter"
 | 
			
		||||
 | 
			
		||||
#: ../js/ui/panel.js:754
 | 
			
		||||
#: ../js/ui/panel.js:693
 | 
			
		||||
msgctxt "System menu in the top bar"
 | 
			
		||||
msgid "System"
 | 
			
		||||
msgstr "System"
 | 
			
		||||
 | 
			
		||||
#: ../js/ui/panel.js:805
 | 
			
		||||
msgid "Top Bar"
 | 
			
		||||
msgstr "Topp-panel"
 | 
			
		||||
 | 
			
		||||
@@ -1562,19 +1566,19 @@ msgstr "Alltid på synlig arbeidsområde"
 | 
			
		||||
 | 
			
		||||
#: ../js/ui/windowMenu.js:105
 | 
			
		||||
msgid "Move to Workspace Left"
 | 
			
		||||
msgstr "Gå til arbeidsområdet til venstre"
 | 
			
		||||
msgstr "Flytt til arbeidsområdet til venstre"
 | 
			
		||||
 | 
			
		||||
#: ../js/ui/windowMenu.js:110
 | 
			
		||||
msgid "Move to Workspace Right"
 | 
			
		||||
msgstr "Gå til arbeidsområdet til høyre"
 | 
			
		||||
msgstr "Flytt til arbeidsområdet til høyre"
 | 
			
		||||
 | 
			
		||||
#: ../js/ui/windowMenu.js:115
 | 
			
		||||
msgid "Move to Workspace Up"
 | 
			
		||||
msgstr "Gå til arbeidsområdet over"
 | 
			
		||||
msgstr "Flytt til arbeidsområdet over"
 | 
			
		||||
 | 
			
		||||
#: ../js/ui/windowMenu.js:120
 | 
			
		||||
msgid "Move to Workspace Down"
 | 
			
		||||
msgstr "Gå til arbeidsområdet under"
 | 
			
		||||
msgstr "Flytt til arbeidsområdet under"
 | 
			
		||||
 | 
			
		||||
#: ../js/ui/windowMenu.js:136
 | 
			
		||||
msgid "Move to Monitor Up"
 | 
			
		||||
@@ -1618,28 +1622,28 @@ msgstr[1] "%u innganger"
 | 
			
		||||
msgid "System Sounds"
 | 
			
		||||
msgstr "Systemlyder"
 | 
			
		||||
 | 
			
		||||
#: ../src/main.c:373
 | 
			
		||||
#: ../src/main.c:381
 | 
			
		||||
msgid "Print version"
 | 
			
		||||
msgstr "Vis versjon"
 | 
			
		||||
 | 
			
		||||
#: ../src/main.c:379
 | 
			
		||||
#: ../src/main.c:387
 | 
			
		||||
msgid "Mode used by GDM for login screen"
 | 
			
		||||
msgstr "Modus som brukes av GDM for innloggingsskjermen"
 | 
			
		||||
 | 
			
		||||
#: ../src/main.c:385
 | 
			
		||||
#: ../src/main.c:393
 | 
			
		||||
msgid "Use a specific mode, e.g. \"gdm\" for login screen"
 | 
			
		||||
msgstr "Bruk spesifikt modus, f.eks «gdm» for innloggingsskjerm"
 | 
			
		||||
 | 
			
		||||
#: ../src/main.c:391
 | 
			
		||||
#: ../src/main.c:399
 | 
			
		||||
msgid "List possible modes"
 | 
			
		||||
msgstr "Vis mulige modi"
 | 
			
		||||
 | 
			
		||||
#: ../src/shell-app.c:239
 | 
			
		||||
#: ../src/shell-app.c:246
 | 
			
		||||
msgctxt "program"
 | 
			
		||||
msgid "Unknown"
 | 
			
		||||
msgstr "Ukjent"
 | 
			
		||||
 | 
			
		||||
#: ../src/shell-app.c:480
 | 
			
		||||
#: ../src/shell-app.c:487
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid "Failed to launch “%s”"
 | 
			
		||||
msgstr "Klarte ikke å starte «%s»"
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										65
									
								
								po/pl.po
									
									
									
									
									
								
							
							
						
						
									
										65
									
								
								po/pl.po
									
									
									
									
									
								
							@@ -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-2015.
 | 
			
		||||
# Piotr Drąg <piotrdrag@gmail.com>, 2009-2016.
 | 
			
		||||
# Tomasz Dominikowski <dominikowski@gmail.com>, 2009.
 | 
			
		||||
# Wojciech Szczęsny <wszczesny@aviary.pl>, 2013.
 | 
			
		||||
# Aviary.pl <gnomepl@aviary.pl>, 2009-2015.
 | 
			
		||||
# Aviary.pl <gnomepl@aviary.pl>, 2009-2016.
 | 
			
		||||
msgid ""
 | 
			
		||||
msgstr ""
 | 
			
		||||
"Project-Id-Version: gnome-shell\n"
 | 
			
		||||
"Report-Msgid-Bugs-To: \n"
 | 
			
		||||
"POT-Creation-Date: 2015-09-29 00:50+0200\n"
 | 
			
		||||
"PO-Revision-Date: 2015-09-29 00:52+0200\n"
 | 
			
		||||
"POT-Creation-Date: 2016-07-12 21:23+0200\n"
 | 
			
		||||
"PO-Revision-Date: 2016-07-12 21:24+0200\n"
 | 
			
		||||
"Last-Translator: Piotr Drąg <piotrdrag@gmail.com>\n"
 | 
			
		||||
"Language-Team: Polish <gnomepl@aviary.pl>\n"
 | 
			
		||||
"Language: pl\n"
 | 
			
		||||
@@ -330,35 +330,35 @@ msgstr "Rozszerzenia powłoki GNOME"
 | 
			
		||||
msgid "Cancel"
 | 
			
		||||
msgstr "Anuluj"
 | 
			
		||||
 | 
			
		||||
#: ../js/gdm/authPrompt.js:169 ../js/gdm/authPrompt.js:215
 | 
			
		||||
#: ../js/gdm/authPrompt.js:447
 | 
			
		||||
#: ../js/gdm/authPrompt.js:169 ../js/gdm/authPrompt.js:216
 | 
			
		||||
#: ../js/gdm/authPrompt.js:448
 | 
			
		||||
msgid "Next"
 | 
			
		||||
msgstr "Dalej"
 | 
			
		||||
 | 
			
		||||
#: ../js/gdm/authPrompt.js:211 ../js/ui/shellMountOperation.js:403
 | 
			
		||||
#: ../js/gdm/authPrompt.js:212 ../js/ui/shellMountOperation.js:403
 | 
			
		||||
#: ../js/ui/unlockDialog.js:59
 | 
			
		||||
msgid "Unlock"
 | 
			
		||||
msgstr "Odblokuj"
 | 
			
		||||
 | 
			
		||||
#: ../js/gdm/authPrompt.js:213
 | 
			
		||||
#: ../js/gdm/authPrompt.js:214
 | 
			
		||||
msgctxt "button"
 | 
			
		||||
msgid "Sign In"
 | 
			
		||||
msgstr "Zaloguj"
 | 
			
		||||
 | 
			
		||||
#: ../js/gdm/loginDialog.js:281
 | 
			
		||||
#: ../js/gdm/loginDialog.js:285
 | 
			
		||||
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:431
 | 
			
		||||
#: ../js/gdm/loginDialog.js:435
 | 
			
		||||
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:850
 | 
			
		||||
#: ../js/gdm/loginDialog.js:854
 | 
			
		||||
#, javascript-format
 | 
			
		||||
msgid "(e.g., user or %s)"
 | 
			
		||||
msgstr "(np. użytkownik lub %s)"
 | 
			
		||||
@@ -366,12 +366,12 @@ msgstr "(np. użytkownik lub %s)"
 | 
			
		||||
#. TTLS and PEAP are actually much more complicated, but this complication
 | 
			
		||||
#. is not visible here since we only care about phase2 authentication
 | 
			
		||||
#. (and don't even care of which one)
 | 
			
		||||
#: ../js/gdm/loginDialog.js:855 ../js/ui/components/networkAgent.js:271
 | 
			
		||||
#: ../js/gdm/loginDialog.js:859 ../js/ui/components/networkAgent.js:271
 | 
			
		||||
#: ../js/ui/components/networkAgent.js:289
 | 
			
		||||
msgid "Username: "
 | 
			
		||||
msgstr "Nazwa użytkownika: "
 | 
			
		||||
 | 
			
		||||
#: ../js/gdm/loginDialog.js:1184
 | 
			
		||||
#: ../js/gdm/loginDialog.js:1196
 | 
			
		||||
msgid "Login Window"
 | 
			
		||||
msgstr "Okno logowania"
 | 
			
		||||
 | 
			
		||||
@@ -639,7 +639,7 @@ msgstr "Podłączono dysk zewnętrzny"
 | 
			
		||||
msgid "External drive disconnected"
 | 
			
		||||
msgstr "Odłączono dysk zewnętrzny"
 | 
			
		||||
 | 
			
		||||
#: ../js/ui/components/autorunManager.js:354
 | 
			
		||||
#: ../js/ui/components/autorunManager.js:351
 | 
			
		||||
#, javascript-format
 | 
			
		||||
msgid "Open with %s"
 | 
			
		||||
msgstr "Otwórz za pomocą „%s”"
 | 
			
		||||
@@ -765,7 +765,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:759
 | 
			
		||||
#: ../js/ui/components/telepathyClient.js:760
 | 
			
		||||
#, javascript-format
 | 
			
		||||
msgid "%s is now known as %s"
 | 
			
		||||
msgstr "Użytkownik %s jest teraz znany jako %s"
 | 
			
		||||
@@ -990,7 +990,7 @@ msgstr "Włączone"
 | 
			
		||||
 | 
			
		||||
#. translators:
 | 
			
		||||
#. * The device has been disabled
 | 
			
		||||
#: ../js/ui/lookingGlass.js:719 ../src/gvc/gvc-mixer-control.c:1828
 | 
			
		||||
#: ../js/ui/lookingGlass.js:719 ../src/gvc/gvc-mixer-control.c:1866
 | 
			
		||||
msgid "Disabled"
 | 
			
		||||
msgstr "Wyłączone"
 | 
			
		||||
 | 
			
		||||
@@ -1034,22 +1034,22 @@ msgstr "Podgląd"
 | 
			
		||||
msgid "Type to search…"
 | 
			
		||||
msgstr "Wyszukiwanie…"
 | 
			
		||||
 | 
			
		||||
#: ../js/ui/panel.js:352
 | 
			
		||||
#: ../js/ui/panel.js:358
 | 
			
		||||
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:404
 | 
			
		||||
#: ../js/ui/panel.js:414
 | 
			
		||||
msgid "Activities"
 | 
			
		||||
msgstr "Podgląd"
 | 
			
		||||
 | 
			
		||||
#: ../js/ui/panel.js:650
 | 
			
		||||
#: ../js/ui/panel.js:695
 | 
			
		||||
msgctxt "System menu in the top bar"
 | 
			
		||||
msgid "System"
 | 
			
		||||
msgstr "Menu systemowe"
 | 
			
		||||
 | 
			
		||||
#: ../js/ui/panel.js:754
 | 
			
		||||
#: ../js/ui/panel.js:807
 | 
			
		||||
msgid "Top Bar"
 | 
			
		||||
msgstr "Górny pasek"
 | 
			
		||||
 | 
			
		||||
@@ -1064,7 +1064,7 @@ msgstr "toggle-switch-intl"
 | 
			
		||||
 | 
			
		||||
#: ../js/ui/runDialog.js:70
 | 
			
		||||
msgid "Enter a Command"
 | 
			
		||||
msgstr "Proszę wprowadzić polecenie"
 | 
			
		||||
msgstr "Proszę wprowadzić polecenie:"
 | 
			
		||||
 | 
			
		||||
#: ../js/ui/runDialog.js:110 ../js/ui/windowMenu.js:162
 | 
			
		||||
msgid "Close"
 | 
			
		||||
@@ -1629,7 +1629,7 @@ msgstr "Kalendarz programu Evolution"
 | 
			
		||||
 | 
			
		||||
#. translators:
 | 
			
		||||
#. * The number of sound outputs on a particular device
 | 
			
		||||
#: ../src/gvc/gvc-mixer-control.c:1835
 | 
			
		||||
#: ../src/gvc/gvc-mixer-control.c:1873
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid "%u Output"
 | 
			
		||||
msgid_plural "%u Outputs"
 | 
			
		||||
@@ -1639,7 +1639,7 @@ msgstr[2] "%u wyjść"
 | 
			
		||||
 | 
			
		||||
#. translators:
 | 
			
		||||
#. * The number of sound inputs on a particular device
 | 
			
		||||
#: ../src/gvc/gvc-mixer-control.c:1845
 | 
			
		||||
#: ../src/gvc/gvc-mixer-control.c:1883
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid "%u Input"
 | 
			
		||||
msgid_plural "%u Inputs"
 | 
			
		||||
@@ -1647,7 +1647,7 @@ msgstr[0] "%u wejście"
 | 
			
		||||
msgstr[1] "%u wejścia"
 | 
			
		||||
msgstr[2] "%u wejść"
 | 
			
		||||
 | 
			
		||||
#: ../src/gvc/gvc-mixer-control.c:2371
 | 
			
		||||
#: ../src/gvc/gvc-mixer-control.c:2738
 | 
			
		||||
msgid "System Sounds"
 | 
			
		||||
msgstr "Dźwięki systemowe"
 | 
			
		||||
 | 
			
		||||
@@ -1667,12 +1667,12 @@ msgstr "Używa podanego trybu, np. „gdm” dla ekranu logowania"
 | 
			
		||||
msgid "List possible modes"
 | 
			
		||||
msgstr "Wyświetla listę możliwych trybów"
 | 
			
		||||
 | 
			
		||||
#: ../src/shell-app.c:239
 | 
			
		||||
#: ../src/shell-app.c:246
 | 
			
		||||
msgctxt "program"
 | 
			
		||||
msgid "Unknown"
 | 
			
		||||
msgstr "Nieznany"
 | 
			
		||||
 | 
			
		||||
#: ../src/shell-app.c:480
 | 
			
		||||
#: ../src/shell-app.c:487
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid "Failed to launch “%s”"
 | 
			
		||||
msgstr "Uruchomienie „%s” się nie powiodło"
 | 
			
		||||
@@ -1688,3 +1688,16 @@ msgstr "Hasło nie może być puste"
 | 
			
		||||
#: ../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."
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										631
									
								
								po/zh_CN.po
									
									
									
									
									
								
							
							
						
						
									
										631
									
								
								po/zh_CN.po
									
									
									
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										217
									
								
								po/zh_TW.po
									
									
									
									
									
								
							
							
						
						
									
										217
									
								
								po/zh_TW.po
									
									
									
									
									
								
							@@ -1,17 +1,18 @@
 | 
			
		||||
# Chinese (Taiwan) translation for gnome-shell.
 | 
			
		||||
# Copyright (C) 2010 gnome-shell's COPYRIGHT HOLDER
 | 
			
		||||
# This file is distributed under the same license as the gnome-shell package.
 | 
			
		||||
# Chao-Hsiung Liao <j_h_liau@yahoo.com.tw>, 2010.
 | 
			
		||||
# Chao-Hsiung Liao <j_h_liau@yahoo.com.tw>, 2010, 2014.
 | 
			
		||||
# Wei-Lun Chao <chaoweilun@gmail.com>, 2010.
 | 
			
		||||
# Anthony Fok <foka@debian.org>, 2015.
 | 
			
		||||
#
 | 
			
		||||
msgid ""
 | 
			
		||||
msgstr ""
 | 
			
		||||
"Project-Id-Version: gnome-shell 3.3.90\n"
 | 
			
		||||
"Project-Id-Version: gnome-shell 3.18\n"
 | 
			
		||||
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
 | 
			
		||||
"shell&keywords=I18N+L10N&component=general\n"
 | 
			
		||||
"POT-Creation-Date: 2015-08-25 13:32+0800\n"
 | 
			
		||||
"PO-Revision-Date: 2015-08-25 13:37+0800\n"
 | 
			
		||||
"Last-Translator: Chao-Hsiung Liao <j_h_liau@yahoo.com.tw>\n"
 | 
			
		||||
"POT-Creation-Date: 2015-10-16 21:11+0000\n"
 | 
			
		||||
"PO-Revision-Date: 2015-10-17 09:30+0800\n"
 | 
			
		||||
"Last-Translator: Anthony Fok <foka@debian.org>\n"
 | 
			
		||||
"Language-Team: Chinese (Taiwan) <zh-l10n@lists.linux.org.tw>\n"
 | 
			
		||||
"Language: zh_TW\n"
 | 
			
		||||
"MIME-Version: 1.0\n"
 | 
			
		||||
@@ -297,7 +298,7 @@ msgid "Cancel"
 | 
			
		||||
msgstr "取消"
 | 
			
		||||
 | 
			
		||||
#: ../js/gdm/authPrompt.js:169 ../js/gdm/authPrompt.js:215
 | 
			
		||||
#: ../js/gdm/authPrompt.js:435
 | 
			
		||||
#: ../js/gdm/authPrompt.js:447
 | 
			
		||||
msgid "Next"
 | 
			
		||||
msgstr "下一個"
 | 
			
		||||
 | 
			
		||||
@@ -315,21 +316,29 @@ msgstr "登入"
 | 
			
		||||
msgid "Choose Session"
 | 
			
		||||
msgstr "選擇作業階段"
 | 
			
		||||
 | 
			
		||||
#. translators: this message is shown below the user list on the
 | 
			
		||||
#. login screen. It can be activated to reveal an entry for
 | 
			
		||||
#. manually entering the username.
 | 
			
		||||
#: ../js/gdm/loginDialog.js:431
 | 
			
		||||
msgid "Not listed?"
 | 
			
		||||
msgstr "沒有列出來?"
 | 
			
		||||
 | 
			
		||||
#: ../js/gdm/loginDialog.js:847
 | 
			
		||||
#. Translators: this message is shown below the username entry field
 | 
			
		||||
#. to clue the user in on how to login to the local network realm
 | 
			
		||||
#: ../js/gdm/loginDialog.js:850
 | 
			
		||||
#, javascript-format
 | 
			
		||||
msgid "(e.g., user or %s)"
 | 
			
		||||
msgstr "(例如: user 或 %s)"
 | 
			
		||||
 | 
			
		||||
#: ../js/gdm/loginDialog.js:852 ../js/ui/components/networkAgent.js:271
 | 
			
		||||
#. TTLS and PEAP are actually much more complicated, but this complication
 | 
			
		||||
#. is not visible here since we only care about phase2 authentication
 | 
			
		||||
#. (and don't even care of which one)
 | 
			
		||||
#: ../js/gdm/loginDialog.js:855 ../js/ui/components/networkAgent.js:271
 | 
			
		||||
#: ../js/ui/components/networkAgent.js:289
 | 
			
		||||
msgid "Username: "
 | 
			
		||||
msgstr "使用者名稱:"
 | 
			
		||||
 | 
			
		||||
#: ../js/gdm/loginDialog.js:1181
 | 
			
		||||
#: ../js/gdm/loginDialog.js:1184
 | 
			
		||||
msgid "Login Window"
 | 
			
		||||
msgstr "登入視窗"
 | 
			
		||||
 | 
			
		||||
@@ -337,6 +346,11 @@ msgstr "登入視窗"
 | 
			
		||||
msgid "Authentication error"
 | 
			
		||||
msgstr "核對錯誤"
 | 
			
		||||
 | 
			
		||||
#. We don't show fingerprint messages directly since it's
 | 
			
		||||
#. not the main auth service. Instead we use the messages
 | 
			
		||||
#. as a cue to display our own message.
 | 
			
		||||
#. Translators: this message is shown below the password entry field
 | 
			
		||||
#. to indicate the user can swipe their finger instead
 | 
			
		||||
#: ../js/gdm/util.js:473
 | 
			
		||||
msgid "(or swipe finger)"
 | 
			
		||||
msgstr "(或是滑過手指)"
 | 
			
		||||
@@ -345,6 +359,8 @@ msgstr "(或是滑過手指)"
 | 
			
		||||
msgid "Command not found"
 | 
			
		||||
msgstr "找不到指令"
 | 
			
		||||
 | 
			
		||||
#. Replace "Error invoking GLib.shell_parse_argv: " with
 | 
			
		||||
#. something nicer
 | 
			
		||||
#: ../js/misc/util.js:152
 | 
			
		||||
msgid "Could not parse command:"
 | 
			
		||||
msgstr "無法分析指令:"
 | 
			
		||||
@@ -354,70 +370,78 @@ msgstr "無法分析指令:"
 | 
			
		||||
msgid "Execution of “%s” failed:"
 | 
			
		||||
msgstr "執行「%s」失敗:"
 | 
			
		||||
 | 
			
		||||
#. Translators: Time in 24h format */
 | 
			
		||||
#. Translators: Time in 24h format
 | 
			
		||||
#: ../js/misc/util.js:191
 | 
			
		||||
msgid "%H∶%M"
 | 
			
		||||
msgstr "%H∶%M"
 | 
			
		||||
 | 
			
		||||
#. Translators: this is the word "Yesterday" followed by a
 | 
			
		||||
#. time string in 24h format. i.e. "Yesterday, 14:30" */
 | 
			
		||||
#. time string in 24h format. i.e. "Yesterday, 14:30"
 | 
			
		||||
#: ../js/misc/util.js:197
 | 
			
		||||
#, no-c-format
 | 
			
		||||
msgid "Yesterday, %H∶%M"
 | 
			
		||||
msgstr "昨天 %H:%M"
 | 
			
		||||
 | 
			
		||||
#. Translators: this is the week day name followed by a time
 | 
			
		||||
#. string in 24h format. i.e. "Monday, 14:30" */
 | 
			
		||||
#. string in 24h format. i.e. "Monday, 14:30"
 | 
			
		||||
#: ../js/misc/util.js:203
 | 
			
		||||
#, no-c-format
 | 
			
		||||
msgid "%A, %H∶%M"
 | 
			
		||||
msgstr "%A %H∶%M"
 | 
			
		||||
 | 
			
		||||
#. Translators: this is the month name and day number
 | 
			
		||||
#. followed by a time string in 24h format.
 | 
			
		||||
#. i.e. "May 25, 14:30" */
 | 
			
		||||
#. i.e. "May 25, 14:30"
 | 
			
		||||
#: ../js/misc/util.js:209
 | 
			
		||||
#, no-c-format
 | 
			
		||||
msgid "%B %d, %H∶%M"
 | 
			
		||||
msgstr "%m月%d日 %H∶%M"
 | 
			
		||||
 | 
			
		||||
#. Translators: this is the month name, day number, year
 | 
			
		||||
#. number followed by a time string in 24h format.
 | 
			
		||||
#. i.e. "May 25 2012, 14:30" */
 | 
			
		||||
#. i.e. "May 25 2012, 14:30"
 | 
			
		||||
#: ../js/misc/util.js:215
 | 
			
		||||
#, no-c-format
 | 
			
		||||
msgid "%B %d %Y, %H∶%M"
 | 
			
		||||
msgstr "%Y年%m月%d日 %H:%M"
 | 
			
		||||
 | 
			
		||||
#. Translators: Time in 12h format */
 | 
			
		||||
#. Translators: Time in 12h format
 | 
			
		||||
#: ../js/misc/util.js:220
 | 
			
		||||
msgid "%l∶%M %p"
 | 
			
		||||
msgstr "%p %l∶%M"
 | 
			
		||||
 | 
			
		||||
#. Translators: this is the word "Yesterday" followed by a
 | 
			
		||||
#. time string in 12h format. i.e. "Yesterday, 2:30 pm" */
 | 
			
		||||
#. time string in 12h format. i.e. "Yesterday, 2:30 pm"
 | 
			
		||||
#: ../js/misc/util.js:226
 | 
			
		||||
#, no-c-format
 | 
			
		||||
msgid "Yesterday, %l∶%M %p"
 | 
			
		||||
msgstr "昨天 %p %l∶%M"
 | 
			
		||||
 | 
			
		||||
#. Translators: this is the week day name followed by a time
 | 
			
		||||
#. string in 12h format. i.e. "Monday, 2:30 pm" */
 | 
			
		||||
#. string in 12h format. i.e. "Monday, 2:30 pm"
 | 
			
		||||
#: ../js/misc/util.js:232
 | 
			
		||||
#, no-c-format
 | 
			
		||||
msgid "%A, %l∶%M %p"
 | 
			
		||||
msgstr "%A%p %l∶%M"
 | 
			
		||||
 | 
			
		||||
#. Translators: this is the month name and day number
 | 
			
		||||
#. followed by a time string in 12h format.
 | 
			
		||||
#. i.e. "May 25, 2:30 pm" */
 | 
			
		||||
#. i.e. "May 25, 2:30 pm"
 | 
			
		||||
#: ../js/misc/util.js:238
 | 
			
		||||
#, no-c-format
 | 
			
		||||
msgid "%B %d, %l∶%M %p"
 | 
			
		||||
msgstr "%m月%d日%p %l∶%M"
 | 
			
		||||
 | 
			
		||||
#. Translators: this is the month name, day number, year
 | 
			
		||||
#. number followed by a time string in 12h format.
 | 
			
		||||
#. i.e. "May 25 2012, 2:30 pm"*/
 | 
			
		||||
#. i.e. "May 25 2012, 2:30 pm"
 | 
			
		||||
#: ../js/misc/util.js:244
 | 
			
		||||
#, no-c-format
 | 
			
		||||
msgid "%B %d %Y, %l∶%M %p"
 | 
			
		||||
msgstr "%Y年%m月%d日%p %l∶%M"
 | 
			
		||||
 | 
			
		||||
#. TRANSLATORS: this is the title of the wifi captive portal login
 | 
			
		||||
#. * window, until we know the title of the actual login page */
 | 
			
		||||
#. * window, until we know the title of the actual login page
 | 
			
		||||
#: ../js/portalHelper/main.js:85
 | 
			
		||||
msgid "Web Authentication Redirect"
 | 
			
		||||
msgstr "網頁核對重新導向"
 | 
			
		||||
@@ -468,12 +492,11 @@ msgstr "改變背景…"
 | 
			
		||||
msgid "Display Settings"
 | 
			
		||||
msgstr "顯示設定值"
 | 
			
		||||
 | 
			
		||||
#: ../js/ui/backgroundMenu.js:22 ../js/ui/panel.js:650
 | 
			
		||||
#: ../js/ui/status/system.js:366
 | 
			
		||||
#: ../js/ui/backgroundMenu.js:22 ../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"
 | 
			
		||||
@@ -483,43 +506,43 @@ msgstr "06"
 | 
			
		||||
#. *
 | 
			
		||||
#. * NOTE: These grid abbreviations are always shown together
 | 
			
		||||
#. * and in order, e.g. "S M T W T F S".
 | 
			
		||||
#. */
 | 
			
		||||
#.
 | 
			
		||||
#: ../js/ui/calendar.js:84
 | 
			
		||||
msgctxt "grid sunday"
 | 
			
		||||
msgid "S"
 | 
			
		||||
msgstr "日"
 | 
			
		||||
 | 
			
		||||
#. Translators: Calendar grid abbreviation for Monday */
 | 
			
		||||
#. Translators: Calendar grid abbreviation for Monday
 | 
			
		||||
#: ../js/ui/calendar.js:86
 | 
			
		||||
msgctxt "grid monday"
 | 
			
		||||
msgid "M"
 | 
			
		||||
msgstr "一"
 | 
			
		||||
 | 
			
		||||
#. Translators: Calendar grid abbreviation for Tuesday */
 | 
			
		||||
#. Translators: Calendar grid abbreviation for Tuesday
 | 
			
		||||
#: ../js/ui/calendar.js:88
 | 
			
		||||
msgctxt "grid tuesday"
 | 
			
		||||
msgid "T"
 | 
			
		||||
msgstr "二"
 | 
			
		||||
 | 
			
		||||
#. Translators: Calendar grid abbreviation for Wednesday */
 | 
			
		||||
#. Translators: Calendar grid abbreviation for Wednesday
 | 
			
		||||
#: ../js/ui/calendar.js:90
 | 
			
		||||
msgctxt "grid wednesday"
 | 
			
		||||
msgid "W"
 | 
			
		||||
msgstr "三"
 | 
			
		||||
 | 
			
		||||
#. Translators: Calendar grid abbreviation for Thursday */
 | 
			
		||||
#. Translators: Calendar grid abbreviation for Thursday
 | 
			
		||||
#: ../js/ui/calendar.js:92
 | 
			
		||||
msgctxt "grid thursday"
 | 
			
		||||
msgid "T"
 | 
			
		||||
msgstr "四"
 | 
			
		||||
 | 
			
		||||
#. Translators: Calendar grid abbreviation for Friday */
 | 
			
		||||
#. Translators: Calendar grid abbreviation for Friday
 | 
			
		||||
#: ../js/ui/calendar.js:94
 | 
			
		||||
msgctxt "grid friday"
 | 
			
		||||
msgid "F"
 | 
			
		||||
msgstr "五"
 | 
			
		||||
 | 
			
		||||
#. Translators: Calendar grid abbreviation for Saturday */
 | 
			
		||||
#. Translators: Calendar grid abbreviation for Saturday
 | 
			
		||||
#: ../js/ui/calendar.js:96
 | 
			
		||||
msgctxt "grid saturday"
 | 
			
		||||
msgid "S"
 | 
			
		||||
@@ -539,39 +562,39 @@ msgstr "%V 週"
 | 
			
		||||
 | 
			
		||||
#. Translators: Shown in calendar event list for all day events
 | 
			
		||||
#. * Keep it short, best if you can use less then 10 characters
 | 
			
		||||
#. */
 | 
			
		||||
#.
 | 
			
		||||
#: ../js/ui/calendar.js:1188
 | 
			
		||||
msgctxt "event list time"
 | 
			
		||||
msgid "All Day"
 | 
			
		||||
msgstr "整天"
 | 
			
		||||
 | 
			
		||||
#: ../js/ui/calendar.js:1291
 | 
			
		||||
#: ../js/ui/calendar.js:1295
 | 
			
		||||
msgid "Clear section"
 | 
			
		||||
msgstr "清除區段"
 | 
			
		||||
 | 
			
		||||
#: ../js/ui/calendar.js:1518
 | 
			
		||||
#: ../js/ui/calendar.js:1522
 | 
			
		||||
msgid "Events"
 | 
			
		||||
msgstr "行程"
 | 
			
		||||
 | 
			
		||||
#: ../js/ui/calendar.js:1527
 | 
			
		||||
#: ../js/ui/calendar.js:1531
 | 
			
		||||
msgctxt "calendar heading"
 | 
			
		||||
msgid "%A, %B %d"
 | 
			
		||||
msgstr "%m月%d日%A"
 | 
			
		||||
 | 
			
		||||
#: ../js/ui/calendar.js:1531
 | 
			
		||||
#: ../js/ui/calendar.js:1535
 | 
			
		||||
msgctxt "calendar heading"
 | 
			
		||||
msgid "%A, %B %d, %Y"
 | 
			
		||||
msgstr "%Y年%m月%d日%A"
 | 
			
		||||
 | 
			
		||||
#: ../js/ui/calendar.js:1616
 | 
			
		||||
#: ../js/ui/calendar.js:1620
 | 
			
		||||
msgid "Notifications"
 | 
			
		||||
msgstr "通知"
 | 
			
		||||
 | 
			
		||||
#: ../js/ui/calendar.js:1767
 | 
			
		||||
#: ../js/ui/calendar.js:1771
 | 
			
		||||
msgid "No Notifications"
 | 
			
		||||
msgstr "沒有通知"
 | 
			
		||||
 | 
			
		||||
#: ../js/ui/calendar.js:1770
 | 
			
		||||
#: ../js/ui/calendar.js:1774
 | 
			
		||||
msgid "No Events"
 | 
			
		||||
msgstr "沒有行程"
 | 
			
		||||
 | 
			
		||||
@@ -583,7 +606,7 @@ msgstr "外部裝置已連接"
 | 
			
		||||
msgid "External drive disconnected"
 | 
			
		||||
msgstr "外部裝置已拔除"
 | 
			
		||||
 | 
			
		||||
#: ../js/ui/components/autorunManager.js:354
 | 
			
		||||
#: ../js/ui/components/autorunManager.js:351
 | 
			
		||||
#, javascript-format
 | 
			
		||||
msgid "Open with %s"
 | 
			
		||||
msgstr "用 %s 開啟"
 | 
			
		||||
@@ -601,6 +624,7 @@ msgstr "再輸入一次:"
 | 
			
		||||
msgid "Connect"
 | 
			
		||||
msgstr "連線"
 | 
			
		||||
 | 
			
		||||
#. Cisco LEAP
 | 
			
		||||
#: ../js/ui/components/networkAgent.js:233
 | 
			
		||||
#: ../js/ui/components/networkAgent.js:245
 | 
			
		||||
#: ../js/ui/components/networkAgent.js:273
 | 
			
		||||
@@ -609,6 +633,7 @@ msgstr "連線"
 | 
			
		||||
msgid "Password: "
 | 
			
		||||
msgstr "密碼: "
 | 
			
		||||
 | 
			
		||||
#. static WEP
 | 
			
		||||
#: ../js/ui/components/networkAgent.js:238
 | 
			
		||||
msgid "Key: "
 | 
			
		||||
msgstr "金鑰:"
 | 
			
		||||
@@ -698,13 +723,13 @@ msgstr "核對"
 | 
			
		||||
#. Translators: "that didn't work" refers to the fact that the
 | 
			
		||||
#. * requested authentication was not gained; this can happen
 | 
			
		||||
#. * because of an authentication error (like invalid password),
 | 
			
		||||
#. * for instance. */
 | 
			
		||||
#. * for instance.
 | 
			
		||||
#: ../js/ui/components/polkitAgent.js:301 ../js/ui/shellMountOperation.js:383
 | 
			
		||||
msgid "Sorry, that didn't work. Please try again."
 | 
			
		||||
msgstr "抱歉,那樣沒有作用。請再試一次。"
 | 
			
		||||
 | 
			
		||||
#. Translators: this is the other person changing their old IM name to their new
 | 
			
		||||
#. IM name. */
 | 
			
		||||
#. IM name.
 | 
			
		||||
#: ../js/ui/components/telepathyClient.js:759
 | 
			
		||||
#, javascript-format
 | 
			
		||||
msgid "%s is now known as %s"
 | 
			
		||||
@@ -718,13 +743,15 @@ msgstr "視窗"
 | 
			
		||||
msgid "Show Applications"
 | 
			
		||||
msgstr "顯示應用程式"
 | 
			
		||||
 | 
			
		||||
#. Translators: this is the name of the dock/favorites area on
 | 
			
		||||
#. the left of the overview
 | 
			
		||||
#: ../js/ui/dash.js:449
 | 
			
		||||
msgid "Dash"
 | 
			
		||||
msgstr "Dash"
 | 
			
		||||
 | 
			
		||||
#. Translators: This is the date format to use when the calendar popup is
 | 
			
		||||
#. * shown - it is shown just below the time in the shell (e.g. "Tue 9:29 AM").
 | 
			
		||||
#. */
 | 
			
		||||
#.
 | 
			
		||||
#: ../js/ui/dateMenu.js:73
 | 
			
		||||
msgid "%B %e %Y"
 | 
			
		||||
msgstr "%Y年%m月%e日"
 | 
			
		||||
@@ -732,7 +759,7 @@ msgstr "%Y年%m月%e日"
 | 
			
		||||
#. Translators: This is the accessible name of the date button shown
 | 
			
		||||
#. * below the time in the shell; it should combine the weekday and the
 | 
			
		||||
#. * date, e.g. "Tuesday February 17 2015".
 | 
			
		||||
#. */
 | 
			
		||||
#.
 | 
			
		||||
#: ../js/ui/dateMenu.js:80
 | 
			
		||||
msgid "%A %B %e %Y"
 | 
			
		||||
msgstr "%Y年%m月%e日%A"
 | 
			
		||||
@@ -854,13 +881,13 @@ msgstr "部分應用程式忙碌中或有未儲存的工作。"
 | 
			
		||||
msgid "Other users are logged in."
 | 
			
		||||
msgstr "其他使用者已登入。"
 | 
			
		||||
 | 
			
		||||
#. Translators: Remote here refers to a remote session, like a ssh login */
 | 
			
		||||
#. Translators: Remote here refers to a remote session, like a ssh login
 | 
			
		||||
#: ../js/ui/endSessionDialog.js:640
 | 
			
		||||
#, javascript-format
 | 
			
		||||
msgid "%s (remote)"
 | 
			
		||||
msgstr "%s (遠端)"
 | 
			
		||||
 | 
			
		||||
#. Translators: Console here refers to a tty like a VT console */
 | 
			
		||||
#. Translators: Console here refers to a tty like a VT console
 | 
			
		||||
#: ../js/ui/endSessionDialog.js:643
 | 
			
		||||
#, javascript-format
 | 
			
		||||
msgid "%s (console)"
 | 
			
		||||
@@ -879,7 +906,7 @@ msgstr "是否從 extensions.gnome.org 下載並安裝「%s」?"
 | 
			
		||||
msgid "Keyboard"
 | 
			
		||||
msgstr "鍵盤"
 | 
			
		||||
 | 
			
		||||
#. translators: 'Hide' is a verb */
 | 
			
		||||
#. translators: 'Hide' is a verb
 | 
			
		||||
#: ../js/ui/legacyTray.js:66
 | 
			
		||||
msgid "Hide tray"
 | 
			
		||||
msgstr "隱藏系統匣"
 | 
			
		||||
@@ -892,7 +919,7 @@ msgstr "狀態圖示"
 | 
			
		||||
msgid "No extensions installed"
 | 
			
		||||
msgstr "沒有安裝擴充功能"
 | 
			
		||||
 | 
			
		||||
#. Translators: argument is an extension UUID. */
 | 
			
		||||
#. Translators: argument is an extension UUID.
 | 
			
		||||
#: ../js/ui/lookingGlass.js:697
 | 
			
		||||
#, javascript-format
 | 
			
		||||
msgid "%s has not emitted any errors."
 | 
			
		||||
@@ -912,7 +939,7 @@ msgstr "已啟用"
 | 
			
		||||
 | 
			
		||||
#. translators:
 | 
			
		||||
#. * The device has been disabled
 | 
			
		||||
#: ../js/ui/lookingGlass.js:719 ../src/gvc/gvc-mixer-control.c:1830
 | 
			
		||||
#: ../js/ui/lookingGlass.js:719 ../src/gvc/gvc-mixer-control.c:1828
 | 
			
		||||
msgid "Disabled"
 | 
			
		||||
msgstr "已停用"
 | 
			
		||||
 | 
			
		||||
@@ -951,25 +978,37 @@ msgstr "概覽"
 | 
			
		||||
#. Translators: this is the text displayed
 | 
			
		||||
#. in the search entry when no search is
 | 
			
		||||
#. active; it should not exceed ~30
 | 
			
		||||
#. characters. */
 | 
			
		||||
#. characters.
 | 
			
		||||
#: ../js/ui/overview.js:244
 | 
			
		||||
msgid "Type to search…"
 | 
			
		||||
msgstr "輸入以搜尋…"
 | 
			
		||||
 | 
			
		||||
#: ../js/ui/panel.js:352
 | 
			
		||||
#: ../js/ui/panel.js:358
 | 
			
		||||
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:404
 | 
			
		||||
#. in your language, you can use the word for "Overview".
 | 
			
		||||
#: ../js/ui/panel.js:414
 | 
			
		||||
msgid "Activities"
 | 
			
		||||
msgstr "概覽 "
 | 
			
		||||
 | 
			
		||||
#: ../js/ui/panel.js:754
 | 
			
		||||
#: ../js/ui/panel.js:693
 | 
			
		||||
#, fuzzy
 | 
			
		||||
#| msgid "System"
 | 
			
		||||
msgctxt "System menu in the top bar"
 | 
			
		||||
msgid "System"
 | 
			
		||||
msgstr "系統"
 | 
			
		||||
 | 
			
		||||
#: ../js/ui/panel.js:805
 | 
			
		||||
msgid "Top Bar"
 | 
			
		||||
msgstr "頂端列"
 | 
			
		||||
 | 
			
		||||
#. Translators: this MUST be either "toggle-switch-us"
 | 
			
		||||
#. (for toggle switches containing the English words
 | 
			
		||||
#. "ON" and "OFF") or "toggle-switch-intl" (for toggle
 | 
			
		||||
#. switches containing "◯" and "|"). Other values will
 | 
			
		||||
#. simply result in invisible toggle switches.
 | 
			
		||||
#: ../js/ui/popupMenu.js:289
 | 
			
		||||
msgid "toggle-switch-us"
 | 
			
		||||
msgstr "toggle-switch-us"
 | 
			
		||||
@@ -987,7 +1026,7 @@ msgid "Restarting…"
 | 
			
		||||
msgstr "重新啟動…"
 | 
			
		||||
 | 
			
		||||
#. Translators: This is a time format for a date in
 | 
			
		||||
#. long format */
 | 
			
		||||
#. long format
 | 
			
		||||
#: ../js/ui/screenShield.js:85
 | 
			
		||||
msgid "%A, %B %d"
 | 
			
		||||
msgstr "%m月%d日%A"
 | 
			
		||||
@@ -1012,6 +1051,13 @@ msgstr "鎖定"
 | 
			
		||||
msgid "GNOME needs to lock the screen"
 | 
			
		||||
msgstr "GNOME 需要鎖定螢幕"
 | 
			
		||||
 | 
			
		||||
#. We could not become modal, so we can't activate the
 | 
			
		||||
#. screenshield. The user is probably very upset at this
 | 
			
		||||
#. point, but any application using global grabs is broken
 | 
			
		||||
#. Just tell him to stop using this app
 | 
			
		||||
#.
 | 
			
		||||
#. XXX: another option is to kick the user into the gdm login
 | 
			
		||||
#. screen, where we're not affected by grabs
 | 
			
		||||
#: ../js/ui/screenShield.js:805 ../js/ui/screenShield.js:1271
 | 
			
		||||
msgid "Unable to lock"
 | 
			
		||||
msgstr "無法鎖定"
 | 
			
		||||
@@ -1107,7 +1153,7 @@ msgstr "關閉"
 | 
			
		||||
msgid "Bluetooth Settings"
 | 
			
		||||
msgstr "藍牙設定值"
 | 
			
		||||
 | 
			
		||||
#. Translators: this is the number of connected bluetooth devices */
 | 
			
		||||
#. Translators: this is the number of connected bluetooth devices
 | 
			
		||||
#: ../js/ui/status/bluetooth.js:105
 | 
			
		||||
#, javascript-format
 | 
			
		||||
msgid "%d Connected"
 | 
			
		||||
@@ -1154,13 +1200,13 @@ msgstr "啟用"
 | 
			
		||||
msgid "<unknown>"
 | 
			
		||||
msgstr "<不明>"
 | 
			
		||||
 | 
			
		||||
#. Translators: %s is a network identifier */
 | 
			
		||||
#. Translators: %s is a network identifier
 | 
			
		||||
#: ../js/ui/status/network.js:451 ../js/ui/status/network.js:1308
 | 
			
		||||
#, javascript-format
 | 
			
		||||
msgid "%s Off"
 | 
			
		||||
msgstr "%s 關閉"
 | 
			
		||||
 | 
			
		||||
#. Translators: %s is a network identifier */
 | 
			
		||||
#. Translators: %s is a network identifier
 | 
			
		||||
#: ../js/ui/status/network.js:454
 | 
			
		||||
#, javascript-format
 | 
			
		||||
msgid "%s Connected"
 | 
			
		||||
@@ -1168,45 +1214,45 @@ msgstr "%s 已連線"
 | 
			
		||||
 | 
			
		||||
#. Translators: this is for network devices that are physically present but are not
 | 
			
		||||
#. under NetworkManager's control (and thus cannot be used in the menu);
 | 
			
		||||
#. %s is a network identifier */
 | 
			
		||||
#. %s is a network identifier
 | 
			
		||||
#: ../js/ui/status/network.js:459
 | 
			
		||||
#, javascript-format
 | 
			
		||||
msgid "%s Unmanaged"
 | 
			
		||||
msgstr "%s 未受管理"
 | 
			
		||||
 | 
			
		||||
#. Translators: %s is a network identifier */
 | 
			
		||||
#. Translators: %s is a network identifier
 | 
			
		||||
#: ../js/ui/status/network.js:462
 | 
			
		||||
#, javascript-format
 | 
			
		||||
msgid "%s Disconnecting"
 | 
			
		||||
msgstr "%s 正在斷線"
 | 
			
		||||
 | 
			
		||||
#. Translators: %s is a network identifier */
 | 
			
		||||
#. Translators: %s is a network identifier
 | 
			
		||||
#: ../js/ui/status/network.js:469 ../js/ui/status/network.js:1300
 | 
			
		||||
#, javascript-format
 | 
			
		||||
msgid "%s Connecting"
 | 
			
		||||
msgstr "正連線到 %s"
 | 
			
		||||
 | 
			
		||||
#. Translators: this is for network connections that require some kind of key or password; %s is a network identifier */
 | 
			
		||||
#. Translators: this is for network connections that require some kind of key or password; %s is a network identifier
 | 
			
		||||
#: ../js/ui/status/network.js:472
 | 
			
		||||
#, javascript-format
 | 
			
		||||
msgid "%s Requires Authentication"
 | 
			
		||||
msgstr "%s 需要核對"
 | 
			
		||||
 | 
			
		||||
#. Translators: this is for devices that require some kind of firmware or kernel
 | 
			
		||||
#. module, which is missing; %s is a network identifier */
 | 
			
		||||
#. module, which is missing; %s is a network identifier
 | 
			
		||||
#: ../js/ui/status/network.js:480
 | 
			
		||||
#, javascript-format
 | 
			
		||||
msgid "Firmware Missing For %s"
 | 
			
		||||
msgstr "缺少 %s 韌體"
 | 
			
		||||
 | 
			
		||||
#. Translators: this is for a network device that cannot be activated (for example it
 | 
			
		||||
#. is disabled by rfkill, or it has no coverage; %s is a network identifier */
 | 
			
		||||
#. is disabled by rfkill, or it has no coverage; %s is a network identifier
 | 
			
		||||
#: ../js/ui/status/network.js:484
 | 
			
		||||
#, javascript-format
 | 
			
		||||
msgid "%s Unavailable"
 | 
			
		||||
msgstr "%s 無法使用"
 | 
			
		||||
 | 
			
		||||
#. Translators: %s is a network identifier */
 | 
			
		||||
#. Translators: %s is a network identifier
 | 
			
		||||
#: ../js/ui/status/network.js:487
 | 
			
		||||
#, javascript-format
 | 
			
		||||
msgid "%s Connection Failed"
 | 
			
		||||
@@ -1220,14 +1266,14 @@ msgstr "有線設定值"
 | 
			
		||||
msgid "Mobile Broadband Settings"
 | 
			
		||||
msgstr "行動寬頻設定值"
 | 
			
		||||
 | 
			
		||||
#. Translators: %s is a network identifier */
 | 
			
		||||
#. Translators: %s is a network identifier
 | 
			
		||||
#: ../js/ui/status/network.js:588 ../js/ui/status/network.js:1305
 | 
			
		||||
#, javascript-format
 | 
			
		||||
msgid "%s Hardware Disabled"
 | 
			
		||||
msgstr "%s 硬體已停用"
 | 
			
		||||
 | 
			
		||||
#. Translators: this is for a network device that cannot be activated
 | 
			
		||||
#. because it's disabled by rfkill (airplane mode); %s is a network identifier */
 | 
			
		||||
#. because it's disabled by rfkill (airplane mode); %s is a network identifier
 | 
			
		||||
#: ../js/ui/status/network.js:592
 | 
			
		||||
#, javascript-format
 | 
			
		||||
msgid "%s Disabled"
 | 
			
		||||
@@ -1289,13 +1335,13 @@ msgstr "Wi-Fi 設定值"
 | 
			
		||||
msgid "Turn On"
 | 
			
		||||
msgstr "開啟"
 | 
			
		||||
 | 
			
		||||
#. Translators: %s is a network identifier */
 | 
			
		||||
#. Translators: %s is a network identifier
 | 
			
		||||
#: ../js/ui/status/network.js:1296
 | 
			
		||||
#, javascript-format
 | 
			
		||||
msgid "%s Hotspot Active"
 | 
			
		||||
msgstr "%s 熱點有效"
 | 
			
		||||
 | 
			
		||||
#. Translators: %s is a network identifier */
 | 
			
		||||
#. Translators: %s is a network identifier
 | 
			
		||||
#: ../js/ui/status/network.js:1311
 | 
			
		||||
#, javascript-format
 | 
			
		||||
msgid "%s Not Connected"
 | 
			
		||||
@@ -1305,7 +1351,7 @@ msgstr "%s 未連線"
 | 
			
		||||
msgid "connecting..."
 | 
			
		||||
msgstr "連線中…"
 | 
			
		||||
 | 
			
		||||
#. Translators: this is for network connections that require some kind of key or password */
 | 
			
		||||
#. Translators: this is for network connections that require some kind of key or password
 | 
			
		||||
#: ../js/ui/status/network.js:1414
 | 
			
		||||
msgid "authentication required"
 | 
			
		||||
msgstr "要求核對"
 | 
			
		||||
@@ -1346,20 +1392,27 @@ msgstr "電源設定值"
 | 
			
		||||
msgid "Fully Charged"
 | 
			
		||||
msgstr "已完全充飽"
 | 
			
		||||
 | 
			
		||||
#. 0 is reported when UPower does not have enough data
 | 
			
		||||
#. to estimate battery life
 | 
			
		||||
#: ../js/ui/status/power.js:72 ../js/ui/status/power.js:78
 | 
			
		||||
msgid "Estimating…"
 | 
			
		||||
msgstr "評估中…"
 | 
			
		||||
 | 
			
		||||
#. Translators: this is <hours>:<minutes> Remaining (<percentage>)
 | 
			
		||||
#: ../js/ui/status/power.js:86
 | 
			
		||||
#, javascript-format
 | 
			
		||||
msgid "%d∶%02d Remaining (%d%%)"
 | 
			
		||||
msgstr "剩餘時間 %d∶%02d (%d%%)"
 | 
			
		||||
 | 
			
		||||
#. Translators: this is <hours>:<minutes> Until Full (<percentage>)
 | 
			
		||||
#: ../js/ui/status/power.js:91
 | 
			
		||||
#, javascript-format
 | 
			
		||||
msgid "%d∶%02d Until Full (%d%%)"
 | 
			
		||||
msgstr "直到充滿還需 %d∶%02d (%d%%)"
 | 
			
		||||
 | 
			
		||||
#. The menu only appears when airplane mode is on, so just
 | 
			
		||||
#. statically build it as if it was on, rather than dynamically
 | 
			
		||||
#. changing the menu contents.
 | 
			
		||||
#: ../js/ui/status/rfkill.js:88
 | 
			
		||||
msgid "Airplane Mode On"
 | 
			
		||||
msgstr "飛安模式已開啟"
 | 
			
		||||
@@ -1427,7 +1480,7 @@ msgstr "您想要保留這些顯示器設定值嗎?"
 | 
			
		||||
 | 
			
		||||
#. Translators: this and the following message should be limited in lenght,
 | 
			
		||||
#. to avoid ellipsizing the labels.
 | 
			
		||||
#. */
 | 
			
		||||
#.
 | 
			
		||||
#: ../js/ui/windowManager.js:82
 | 
			
		||||
msgid "Revert Settings"
 | 
			
		||||
msgstr "還原設定值"
 | 
			
		||||
@@ -1443,7 +1496,7 @@ msgid_plural "Settings changes will revert in %d seconds"
 | 
			
		||||
msgstr[0] "設定值的變更會在 %d 秒內還原"
 | 
			
		||||
 | 
			
		||||
#. Translators: This represents the size of a window. The first number is
 | 
			
		||||
#. * the width of the window and the second is the height. */
 | 
			
		||||
#. * the width of the window and the second is the height.
 | 
			
		||||
#: ../js/ui/windowManager.js:658
 | 
			
		||||
#, javascript-format
 | 
			
		||||
msgid "%d x %d"
 | 
			
		||||
@@ -1499,11 +1552,11 @@ msgstr "將工作區下移"
 | 
			
		||||
 | 
			
		||||
#: ../js/ui/windowMenu.js:136
 | 
			
		||||
msgid "Move to Monitor Up"
 | 
			
		||||
msgstr "將工作區上移"
 | 
			
		||||
msgstr "移至螢幕上端"
 | 
			
		||||
 | 
			
		||||
#: ../js/ui/windowMenu.js:142
 | 
			
		||||
msgid "Move to Monitor Down"
 | 
			
		||||
msgstr "將工作區下移"
 | 
			
		||||
msgstr "移至螢幕下端"
 | 
			
		||||
 | 
			
		||||
#: ../js/ui/windowMenu.js:148
 | 
			
		||||
msgid "Move to Monitor Left"
 | 
			
		||||
@@ -1519,7 +1572,7 @@ msgstr "Evolution 行事曆"
 | 
			
		||||
 | 
			
		||||
#. translators:
 | 
			
		||||
#. * The number of sound outputs on a particular device
 | 
			
		||||
#: ../src/gvc/gvc-mixer-control.c:1837
 | 
			
		||||
#: ../src/gvc/gvc-mixer-control.c:1835
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid "%u Output"
 | 
			
		||||
msgid_plural "%u Outputs"
 | 
			
		||||
@@ -1527,38 +1580,38 @@ msgstr[0] "%u 輸出"
 | 
			
		||||
 | 
			
		||||
#. translators:
 | 
			
		||||
#. * The number of sound inputs on a particular device
 | 
			
		||||
#: ../src/gvc/gvc-mixer-control.c:1847
 | 
			
		||||
#: ../src/gvc/gvc-mixer-control.c:1845
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid "%u Input"
 | 
			
		||||
msgid_plural "%u Inputs"
 | 
			
		||||
msgstr[0] "%u 輸入"
 | 
			
		||||
 | 
			
		||||
#: ../src/gvc/gvc-mixer-control.c:2373
 | 
			
		||||
#: ../src/gvc/gvc-mixer-control.c:2371
 | 
			
		||||
msgid "System Sounds"
 | 
			
		||||
msgstr "系統音效"
 | 
			
		||||
 | 
			
		||||
#: ../src/main.c:373
 | 
			
		||||
#: ../src/main.c:381
 | 
			
		||||
msgid "Print version"
 | 
			
		||||
msgstr "顯示版本"
 | 
			
		||||
 | 
			
		||||
#: ../src/main.c:379
 | 
			
		||||
#: ../src/main.c:387
 | 
			
		||||
msgid "Mode used by GDM for login screen"
 | 
			
		||||
msgstr "GDM 在登入畫面使用的模式"
 | 
			
		||||
 | 
			
		||||
#: ../src/main.c:385
 | 
			
		||||
#: ../src/main.c:393
 | 
			
		||||
msgid "Use a specific mode, e.g. \"gdm\" for login screen"
 | 
			
		||||
msgstr "使用指定的模式,例如「gdm」為登入畫面"
 | 
			
		||||
 | 
			
		||||
#: ../src/main.c:391
 | 
			
		||||
#: ../src/main.c:399
 | 
			
		||||
msgid "List possible modes"
 | 
			
		||||
msgstr "列出可能的模式"
 | 
			
		||||
 | 
			
		||||
#: ../src/shell-app.c:239
 | 
			
		||||
#: ../src/shell-app.c:246
 | 
			
		||||
msgctxt "program"
 | 
			
		||||
msgid "Unknown"
 | 
			
		||||
msgstr "不明"
 | 
			
		||||
 | 
			
		||||
#: ../src/shell-app.c:480
 | 
			
		||||
#: ../src/shell-app.c:487
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid "Failed to launch “%s”"
 | 
			
		||||
msgstr "無法啟動「%s」"
 | 
			
		||||
 
 | 
			
		||||
@@ -867,7 +867,12 @@ update_scale_factor (GtkSettings *settings,
 | 
			
		||||
    {
 | 
			
		||||
      g_object_set (context, "scale-factor", g_value_get_int (&value), NULL);
 | 
			
		||||
      if (meta_is_wayland_compositor ())
 | 
			
		||||
        g_object_set (clutter_settings_get_default (), "font-dpi", 96 * 1024 * g_value_get_int (&value), NULL);
 | 
			
		||||
        {
 | 
			
		||||
          int xft_dpi;
 | 
			
		||||
          g_object_get (settings, "gtk-xft-dpi", &xft_dpi, NULL);
 | 
			
		||||
 | 
			
		||||
          g_object_set (clutter_settings_get_default (), "font-dpi", xft_dpi, NULL);
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
  /* Make sure clutter and gdk scaling stays disabled */
 | 
			
		||||
 
 | 
			
		||||
@@ -315,8 +315,6 @@ get_secrets_keyring_cb (GObject            *source,
 | 
			
		||||
 | 
			
		||||
              secrets_found = TRUE;
 | 
			
		||||
 | 
			
		||||
              g_hash_table_unref (attributes);
 | 
			
		||||
              secret_value_unref (secret);
 | 
			
		||||
              break;
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
@@ -366,8 +364,6 @@ shell_network_agent_get_secrets (NMSecretAgent                 *agent,
 | 
			
		||||
{
 | 
			
		||||
  ShellNetworkAgent *self = SHELL_NETWORK_AGENT (agent);
 | 
			
		||||
  ShellAgentRequest *request;
 | 
			
		||||
  NMSettingConnection *setting_connection;
 | 
			
		||||
  const char *connection_type;
 | 
			
		||||
  GHashTable *attributes;
 | 
			
		||||
  char *request_id;
 | 
			
		||||
 | 
			
		||||
@@ -381,9 +377,6 @@ shell_network_agent_get_secrets (NMSecretAgent                 *agent,
 | 
			
		||||
      shell_agent_request_cancel (request);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
  setting_connection = nm_connection_get_setting_connection (connection);
 | 
			
		||||
  connection_type = nm_setting_connection_get_connection_type (setting_connection);
 | 
			
		||||
 | 
			
		||||
  request = g_slice_new (ShellAgentRequest);
 | 
			
		||||
  request->self = g_object_ref (self);
 | 
			
		||||
  request->cancellable = g_cancellable_new ();
 | 
			
		||||
@@ -393,7 +386,7 @@ shell_network_agent_get_secrets (NMSecretAgent                 *agent,
 | 
			
		||||
  request->flags = flags;
 | 
			
		||||
  request->callback = callback;
 | 
			
		||||
  request->callback_data = callback_data;
 | 
			
		||||
  request->is_vpn = !strcmp(connection_type, NM_SETTING_VPN_SETTING_NAME);
 | 
			
		||||
  request->is_vpn = !strcmp(setting_name, NM_SETTING_VPN_SETTING_NAME);
 | 
			
		||||
  request->entries = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, gvalue_destroy_notify);
 | 
			
		||||
 | 
			
		||||
  if (request->is_vpn)
 | 
			
		||||
 
 | 
			
		||||
@@ -211,7 +211,7 @@ calculate_gaussian_kernel (gdouble   sigma,
 | 
			
		||||
{
 | 
			
		||||
  gdouble *ret, sum;
 | 
			
		||||
  gdouble exp_divisor;
 | 
			
		||||
  guint half, i;
 | 
			
		||||
  int half, i;
 | 
			
		||||
 | 
			
		||||
  g_return_val_if_fail (sigma > 0, NULL);
 | 
			
		||||
 | 
			
		||||
@@ -223,14 +223,14 @@ calculate_gaussian_kernel (gdouble   sigma,
 | 
			
		||||
  exp_divisor = 2 * sigma * sigma;
 | 
			
		||||
 | 
			
		||||
  /* n_values of 1D Gauss function */
 | 
			
		||||
  for (i = 0; i < n_values; i++)
 | 
			
		||||
  for (i = 0; i < (int)n_values; i++)
 | 
			
		||||
    {
 | 
			
		||||
      ret[i] = exp (-(i - half) * (i - half) / exp_divisor);
 | 
			
		||||
      sum += ret[i];
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
  /* normalize */
 | 
			
		||||
  for (i = 0; i < n_values; i++)
 | 
			
		||||
  for (i = 0; i < (int)n_values; i++)
 | 
			
		||||
    ret[i] /= sum;
 | 
			
		||||
 | 
			
		||||
  return ret;
 | 
			
		||||
@@ -347,6 +347,7 @@ _st_create_shadow_pipeline (StShadow    *shadow_spec,
 | 
			
		||||
{
 | 
			
		||||
  ClutterBackend *backend = clutter_get_default_backend ();
 | 
			
		||||
  CoglContext *ctx = clutter_backend_get_cogl_context (backend);
 | 
			
		||||
  CoglError *error = NULL;
 | 
			
		||||
 | 
			
		||||
  static CoglPipeline *shadow_pipeline_template = NULL;
 | 
			
		||||
 | 
			
		||||
@@ -377,7 +378,13 @@ _st_create_shadow_pipeline (StShadow    *shadow_spec,
 | 
			
		||||
                                                         COGL_PIXEL_FORMAT_A_8,
 | 
			
		||||
                                                         rowstride_out,
 | 
			
		||||
                                                         pixels_out,
 | 
			
		||||
                                                         NULL));
 | 
			
		||||
                                                         &error));
 | 
			
		||||
 | 
			
		||||
  if (error)
 | 
			
		||||
    {
 | 
			
		||||
      g_warning ("Failed to allocate texture: %s", error->message);
 | 
			
		||||
      cogl_error_free (error);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
  g_free (pixels_out);
 | 
			
		||||
 | 
			
		||||
@@ -395,7 +402,10 @@ _st_create_shadow_pipeline (StShadow    *shadow_spec,
 | 
			
		||||
 | 
			
		||||
  pipeline = cogl_pipeline_copy (shadow_pipeline_template);
 | 
			
		||||
  cogl_pipeline_set_layer_texture (pipeline, 0, texture);
 | 
			
		||||
  cogl_object_unref (texture);
 | 
			
		||||
 | 
			
		||||
  if (texture)
 | 
			
		||||
    cogl_object_unref (texture);
 | 
			
		||||
 | 
			
		||||
  return pipeline;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@@ -442,6 +452,7 @@ _st_create_shadow_pipeline_from_actor (StShadow     *shadow_spec,
 | 
			
		||||
      if (!cogl_framebuffer_allocate (fb, &catch_error))
 | 
			
		||||
        {
 | 
			
		||||
          cogl_error_free (catch_error);
 | 
			
		||||
          cogl_object_unref (offscreen);
 | 
			
		||||
          cogl_object_unref (buffer);
 | 
			
		||||
          return NULL;
 | 
			
		||||
        }
 | 
			
		||||
@@ -512,7 +523,12 @@ _st_create_shadow_cairo_pattern (StShadow        *shadow_spec,
 | 
			
		||||
  g_return_val_if_fail (shadow_spec != NULL, NULL);
 | 
			
		||||
  g_return_val_if_fail (src_pattern != NULL, NULL);
 | 
			
		||||
 | 
			
		||||
  cairo_pattern_get_surface (src_pattern, &src_surface);
 | 
			
		||||
  if (cairo_pattern_get_surface (src_pattern, &src_surface) != CAIRO_STATUS_SUCCESS)
 | 
			
		||||
    /* The most likely reason we can't get the pattern is that sizing went hairwire
 | 
			
		||||
     * and the caller tried to create a surface too big for memory, leaving us with
 | 
			
		||||
     * a pattern in an error state; we return a transparent pattern for the shadow.
 | 
			
		||||
     */
 | 
			
		||||
    return cairo_pattern_create_rgba(1.0, 1.0, 1.0, 0.0);
 | 
			
		||||
 | 
			
		||||
  width_in  = cairo_image_surface_get_width  (src_surface);
 | 
			
		||||
  height_in = cairo_image_surface_get_height (src_surface);
 | 
			
		||||
 
 | 
			
		||||
@@ -469,14 +469,24 @@ pixbuf_to_cogl_texture (GdkPixbuf *pixbuf)
 | 
			
		||||
{
 | 
			
		||||
  ClutterBackend *backend = clutter_get_default_backend ();
 | 
			
		||||
  CoglContext *ctx = clutter_backend_get_cogl_context (backend);
 | 
			
		||||
  CoglError *error = NULL;
 | 
			
		||||
  CoglTexture2D *texture;
 | 
			
		||||
 | 
			
		||||
  return COGL_TEXTURE (cogl_texture_2d_new_from_data (ctx,
 | 
			
		||||
                                                      gdk_pixbuf_get_width (pixbuf),
 | 
			
		||||
                                                      gdk_pixbuf_get_height (pixbuf),
 | 
			
		||||
                                                      gdk_pixbuf_get_has_alpha (pixbuf) ? COGL_PIXEL_FORMAT_RGBA_8888 : COGL_PIXEL_FORMAT_RGB_888,
 | 
			
		||||
                                                      gdk_pixbuf_get_rowstride (pixbuf),
 | 
			
		||||
                                                      gdk_pixbuf_get_pixels (pixbuf),
 | 
			
		||||
                                                      NULL));
 | 
			
		||||
  texture = cogl_texture_2d_new_from_data (ctx,
 | 
			
		||||
                                           gdk_pixbuf_get_width (pixbuf),
 | 
			
		||||
                                           gdk_pixbuf_get_height (pixbuf),
 | 
			
		||||
                                           gdk_pixbuf_get_has_alpha (pixbuf) ? COGL_PIXEL_FORMAT_RGBA_8888 : COGL_PIXEL_FORMAT_RGB_888,
 | 
			
		||||
                                           gdk_pixbuf_get_rowstride (pixbuf),
 | 
			
		||||
                                           gdk_pixbuf_get_pixels (pixbuf),
 | 
			
		||||
                                           &error);
 | 
			
		||||
 | 
			
		||||
  if (error)
 | 
			
		||||
    {
 | 
			
		||||
      g_warning ("Failed to allocate texture: %s", error->message);
 | 
			
		||||
      cogl_error_free (error);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
  return texture ? COGL_TEXTURE (texture) : NULL;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static cairo_surface_t *
 | 
			
		||||
@@ -640,6 +650,8 @@ st_texture_cache_reset_texture (StTextureCachePropertyBind *bind,
 | 
			
		||||
      (cairo_image_surface_get_format (surface) == CAIRO_FORMAT_ARGB32 ||
 | 
			
		||||
       cairo_image_surface_get_format (surface) == CAIRO_FORMAT_RGB24))
 | 
			
		||||
    {
 | 
			
		||||
      CoglError *error = NULL;
 | 
			
		||||
 | 
			
		||||
      texdata = COGL_TEXTURE (cogl_texture_2d_new_from_data (ctx,
 | 
			
		||||
                                                             cairo_image_surface_get_width (surface),
 | 
			
		||||
                                                             cairo_image_surface_get_height (surface),
 | 
			
		||||
@@ -647,9 +659,18 @@ st_texture_cache_reset_texture (StTextureCachePropertyBind *bind,
 | 
			
		||||
                                                             COGL_PIXEL_FORMAT_BGRA_8888 : COGL_PIXEL_FORMAT_BGR_888,
 | 
			
		||||
                                                             cairo_image_surface_get_stride (surface),
 | 
			
		||||
                                                             cairo_image_surface_get_data (surface),
 | 
			
		||||
                                                             NULL));
 | 
			
		||||
      clutter_texture_set_cogl_texture (bind->texture, texdata);
 | 
			
		||||
      cogl_object_unref (texdata);
 | 
			
		||||
                                                             &error));
 | 
			
		||||
 | 
			
		||||
      if (texdata)
 | 
			
		||||
        {
 | 
			
		||||
          clutter_texture_set_cogl_texture (bind->texture, texdata);
 | 
			
		||||
          cogl_object_unref (texdata);
 | 
			
		||||
        }
 | 
			
		||||
      else if (error)
 | 
			
		||||
        {
 | 
			
		||||
          g_warning ("Failed to allocate texture: %s", error->message);
 | 
			
		||||
          cogl_error_free (error);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
      clutter_actor_set_opacity (CLUTTER_ACTOR (bind->texture), 255);
 | 
			
		||||
    }
 | 
			
		||||
 
 | 
			
		||||
@@ -71,6 +71,7 @@ create_corner_material (StCornerSpec *corner)
 | 
			
		||||
{
 | 
			
		||||
  ClutterBackend *backend = clutter_get_default_backend ();
 | 
			
		||||
  CoglContext *ctx = clutter_backend_get_cogl_context (backend);
 | 
			
		||||
  CoglError *error = NULL;
 | 
			
		||||
  CoglHandle texture;
 | 
			
		||||
  cairo_t *cr;
 | 
			
		||||
  cairo_surface_t *surface;
 | 
			
		||||
@@ -172,9 +173,15 @@ create_corner_material (StCornerSpec *corner)
 | 
			
		||||
                                                         CLUTTER_CAIRO_FORMAT_ARGB32,
 | 
			
		||||
                                                         rowstride,
 | 
			
		||||
                                                         data,
 | 
			
		||||
                                                         NULL));
 | 
			
		||||
                                                         &error));
 | 
			
		||||
 | 
			
		||||
  if (error)
 | 
			
		||||
    {
 | 
			
		||||
      g_warning ("Failed to allocate texture: %s", error->message);
 | 
			
		||||
      cogl_error_free (error);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
  g_free (data);
 | 
			
		||||
  g_assert (texture != COGL_INVALID_HANDLE);
 | 
			
		||||
 | 
			
		||||
  return texture;
 | 
			
		||||
}
 | 
			
		||||
@@ -347,7 +354,7 @@ st_theme_node_lookup_corner (StThemeNode    *node,
 | 
			
		||||
                             float           height,
 | 
			
		||||
                             StCorner        corner_id)
 | 
			
		||||
{
 | 
			
		||||
  CoglHandle texture, material;
 | 
			
		||||
  CoglHandle texture, material = COGL_INVALID_HANDLE;
 | 
			
		||||
  char *key;
 | 
			
		||||
  StTextureCache *cache;
 | 
			
		||||
  StCornerSpec corner;
 | 
			
		||||
@@ -396,8 +403,12 @@ st_theme_node_lookup_corner (StThemeNode    *node,
 | 
			
		||||
 | 
			
		||||
  key = corner_to_string (&corner);
 | 
			
		||||
  texture = st_texture_cache_load (cache, key, ST_TEXTURE_CACHE_POLICY_NONE, load_corner, &corner, NULL);
 | 
			
		||||
  material = _st_create_texture_pipeline (texture);
 | 
			
		||||
  cogl_handle_unref (texture);
 | 
			
		||||
 | 
			
		||||
  if (texture)
 | 
			
		||||
    {
 | 
			
		||||
      material = _st_create_texture_pipeline (texture);
 | 
			
		||||
      cogl_handle_unref (texture);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
  g_free (key);
 | 
			
		||||
 | 
			
		||||
@@ -741,7 +752,11 @@ paint_shadow_pattern_to_cairo_context (StShadow *shadow_spec,
 | 
			
		||||
      /* Then subtract out the bounds of the surface in the surface
 | 
			
		||||
       * pattern; we transform the context by the inverse of the
 | 
			
		||||
       * pattern matrix to get to surface coordinates */
 | 
			
		||||
      cairo_pattern_get_surface (pattern, &surface);
 | 
			
		||||
 | 
			
		||||
      if (cairo_pattern_get_surface (pattern, &surface) != CAIRO_STATUS_SUCCESS)
 | 
			
		||||
        /* Something went wrong previously */
 | 
			
		||||
        goto no_surface;
 | 
			
		||||
 | 
			
		||||
      width = cairo_image_surface_get_width  (surface);
 | 
			
		||||
      height = cairo_image_surface_get_height (surface);
 | 
			
		||||
 | 
			
		||||
@@ -752,6 +767,7 @@ paint_shadow_pattern_to_cairo_context (StShadow *shadow_spec,
 | 
			
		||||
      cairo_rectangle (cr, 0, height, width, - height);
 | 
			
		||||
      cairo_fill (cr);
 | 
			
		||||
 | 
			
		||||
    no_surface:
 | 
			
		||||
      cairo_restore (cr);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
@@ -953,6 +969,7 @@ st_theme_node_prerender_background (StThemeNode *node,
 | 
			
		||||
{
 | 
			
		||||
  ClutterBackend *backend = clutter_get_default_backend ();
 | 
			
		||||
  CoglContext *ctx = clutter_backend_get_cogl_context (backend);
 | 
			
		||||
  CoglError *error = NULL;
 | 
			
		||||
  StBorderImage *border_image;
 | 
			
		||||
  CoglHandle texture;
 | 
			
		||||
  guint radius[4];
 | 
			
		||||
@@ -1272,7 +1289,13 @@ st_theme_node_prerender_background (StThemeNode *node,
 | 
			
		||||
                                                         CLUTTER_CAIRO_FORMAT_ARGB32,
 | 
			
		||||
                                                         rowstride,
 | 
			
		||||
                                                         data,
 | 
			
		||||
                                                         NULL));
 | 
			
		||||
                                                         &error));
 | 
			
		||||
 | 
			
		||||
  if (error)
 | 
			
		||||
    {
 | 
			
		||||
      g_warning ("Failed to allocate texture: %s", error->message);
 | 
			
		||||
      cogl_error_free (error);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
  cairo_destroy (cr);
 | 
			
		||||
  cairo_surface_destroy (surface);
 | 
			
		||||
@@ -2145,7 +2168,7 @@ st_theme_node_prerender_shadow (StThemeNodePaintState *state)
 | 
			
		||||
  guint border_radius[4];
 | 
			
		||||
  int max_borders[4];
 | 
			
		||||
  int center_radius, corner_id;
 | 
			
		||||
  CoglHandle buffer, offscreen;
 | 
			
		||||
  CoglHandle buffer, offscreen = COGL_INVALID_HANDLE;
 | 
			
		||||
 | 
			
		||||
  /* Get infos from the node */
 | 
			
		||||
  if (state->alloc_width < node->box_shadow_min_width ||
 | 
			
		||||
@@ -2186,7 +2209,8 @@ st_theme_node_prerender_shadow (StThemeNodePaintState *state)
 | 
			
		||||
                                       state->box_shadow_height,
 | 
			
		||||
                                       COGL_TEXTURE_NO_SLICING,
 | 
			
		||||
                                       COGL_PIXEL_FORMAT_ANY);
 | 
			
		||||
  offscreen = cogl_offscreen_new_to_texture (buffer);
 | 
			
		||||
  if (buffer != COGL_INVALID_HANDLE)
 | 
			
		||||
    offscreen = cogl_offscreen_new_to_texture (buffer);
 | 
			
		||||
 | 
			
		||||
  if (offscreen != COGL_INVALID_HANDLE)
 | 
			
		||||
    {
 | 
			
		||||
@@ -2206,7 +2230,9 @@ st_theme_node_prerender_shadow (StThemeNodePaintState *state)
 | 
			
		||||
      state->box_shadow_material = _st_create_shadow_pipeline (st_theme_node_get_box_shadow (node),
 | 
			
		||||
                                                               buffer);
 | 
			
		||||
    }
 | 
			
		||||
  cogl_handle_unref (buffer);
 | 
			
		||||
 | 
			
		||||
  if (buffer != COGL_INVALID_HANDLE)
 | 
			
		||||
    cogl_handle_unref (buffer);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user