summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMateusz Majewski <m.majewski2@samsung.com>2024-02-05 08:41:58 +0100
committerMateusz Majewski <m.majewski2@samsung.com>2024-02-05 08:41:58 +0100
commit52d71e72a8000341fb25d6afc0aa04590b1b925b (patch)
tree105e1406bdcb1e30617ee6847cba6f01b5274d98
parentfd2ab4b80d94071c65de999f519b5b1e91421a02 (diff)
downloadglib-52d71e72a8000341fb25d6afc0aa04590b1b925b.tar.gz
glib-52d71e72a8000341fb25d6afc0aa04590b1b925b.tar.bz2
glib-52d71e72a8000341fb25d6afc0aa04590b1b925b.zip
Imported Upstream version 2.74.4
-rw-r--r--NEWS51
-rw-r--r--gio/gactiongroupexporter.c60
-rw-r--r--gio/gapplication.c2
-rw-r--r--gio/gapplication.h3
-rw-r--r--gio/gapplicationcommandline.c12
-rw-r--r--gio/gapplicationimpl-dbus.c26
-rw-r--r--gio/gdbusmenumodel.c33
-rw-r--r--gio/gfdonotificationbackend.c75
-rw-r--r--gio/gmenuexporter.c25
-rw-r--r--gio/gnotificationbackend.c14
-rw-r--r--gio/gtestdbus.c2
-rw-r--r--gio/tests/actions.c435
-rw-r--r--gio/tests/application-command-line.c92
-rw-r--r--gio/tests/fdo-notification-backend.c326
-rw-r--r--gio/tests/gapplication.c491
-rw-r--r--gio/tests/gmenumodel.c144
-rw-r--r--gio/tests/meson.build2
-rw-r--r--glib/gbitlock.c15
-rw-r--r--glib/gmain.c18
-rw-r--r--glib/gthread-posix.c120
-rw-r--r--glib/gthreadprivate.h49
-rw-r--r--glib/gvariant-core.c185
-rw-r--r--glib/gvariant-core.h3
-rw-r--r--glib/gvariant-serialiser.c376
-rw-r--r--glib/gvariant-serialiser.h21
-rw-r--r--glib/gvariant.c172
-rw-r--r--glib/tests/gvariant.c607
-rw-r--r--meson.build13
-rw-r--r--po/LINGUAS1
-rw-r--r--po/ab.po945
-rw-r--r--po/be.po6096
-rw-r--r--po/ie.po6463
-rw-r--r--po/ka.po3039
33 files changed, 14982 insertions, 4934 deletions
diff --git a/NEWS b/NEWS
index 8200935b6..5397eb6d5 100644
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,54 @@
+Overview of changes in GLib 2.74.4
+==================================
+
+* Fix missing input validation in `GDBusMenuModel` (work by Lars Uebernickel) (#861)
+
+* Various GVariant security fixes when handling untrusted data (work by
+ William Manley, Philip Withnall, Simon McVittie) (#2121, #2540, #2794, #2797,
+ #2839, #2840, #2841)
+
+* Bugs fixed:
+ - #861 insufficient input validation in GDBusMenuModel (Lars Uebernickel)
+ - #2121 GVariant deserialisation does not match spec for non-normal data
+ (William Manley, Philip Withnall)
+ - #2540 Parsing serialized GVariants can blow up run-time and memory (Philip
+ Withnall)
+ - #2794 GVariant offset table entry size is not checked in is_normal() (Philip
+ Withnall)
+ - #2797 g_variant_byteswap() can take a long time with some non-normal inputs
+ (Philip Withnall)
+ - #2835 gio/gapplication test fails with test_dbus_activate: assertion failed
+ (n_activations == 2): (1 == 2) (Philip Withnall)
+ - #2839 [bisected] GVariant test regression on big-endian architectures (Simon
+ McVittie)
+ - #2840 fuzz_variant_binary_byteswap: Heap-buffer-overflow in
+ g_variant_serialised_get_child (Philip Withnall)
+ - #2841 fuzz_variant_text: Timeout in fuzz_variant_text (Philip Withnall)
+ - #2852 alpine/musl: catching signals from a subprocess triggers
+ GLib:ERROR:../glib/gmain.c:5569:siginfo_t_to_wait_status: code should not be
+ reached (Philip Withnall)
+ - !3114 Backport !3113 “gaction: Validate actions activated over D-Bus” to
+ glib-2-74
+ - !3126 Backport !3125 “Various fixes to normal form handling in GVariant” to
+ glib-2-74
+ - !3134 Backport !3133 “gmenumodel: disallow exporting large menus on the bus”
+ to glib-2-74
+ - !3138 Backport !3136 “gvariant-serialiser: Convert endianness of offsets” to
+ glib-2-74
+ - !3153 Backport !3120 “glib/gthread-posix: Conditionally use `futex` and/or
+ `futex_time64` syscalls...” to glib-2-74
+ - !3161 Backport !3158 ”gmain: Define fallback values for siginfo_t constants
+ for musl” to glib-2-74
+ - !3164 Backport !3163 “gvariant: Check offset table doesn’t fall outside
+ variant bounds and speed up text parsing” to glib-2-74
+
+* Translation updates:
+ - Abkhazian (Nart Tlisha)
+ - Belarusian (Vasil Pupkin)
+ - Georgian (Ekaterine Papava)
+ - Interlingue (Olga Smirnova)
+
+
Overview of changes in GLib 2.74.3
==================================
diff --git a/gio/gactiongroupexporter.c b/gio/gactiongroupexporter.c
index 575a03ca2..3bc2f0418 100644
--- a/gio/gactiongroupexporter.c
+++ b/gio/gactiongroupexporter.c
@@ -433,11 +433,37 @@ org_gtk_Actions_method_call (GDBusConnection *connection,
GVariant *platform_data;
GVariantIter *iter;
const gchar *name;
+ const GVariantType *parameter_type = NULL;
g_variant_get (parameters, "(&sav@a{sv})", &name, &iter, &platform_data);
g_variant_iter_next (iter, "v", &parameter);
g_variant_iter_free (iter);
+ /* Check the action exists and the parameter type matches. */
+ if (!g_action_group_query_action (exporter->action_group,
+ name, NULL, &parameter_type,
+ NULL, NULL, NULL))
+ {
+ g_dbus_method_invocation_return_error (invocation, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS,
+ "Unknown action ‘%s’", name);
+ g_clear_pointer (&parameter, g_variant_unref);
+ g_variant_unref (platform_data);
+ return;
+ }
+
+ if (!((parameter_type == NULL && parameter == NULL) ||
+ (parameter_type != NULL && parameter != NULL && g_variant_is_of_type (parameter, parameter_type))))
+ {
+ g_dbus_method_invocation_return_error (invocation, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS,
+ "Invalid parameter for action ‘%s’: expected type %s but got type %s",
+ name,
+ (parameter_type != NULL) ? (const gchar *) parameter_type : "()",
+ (parameter != NULL) ? g_variant_get_type_string (parameter) : "()");
+ g_clear_pointer (&parameter, g_variant_unref);
+ g_variant_unref (platform_data);
+ return;
+ }
+
if (G_IS_REMOTE_ACTION_GROUP (exporter->action_group))
g_remote_action_group_activate_action_full (G_REMOTE_ACTION_GROUP (exporter->action_group),
name, parameter, platform_data);
@@ -455,9 +481,43 @@ org_gtk_Actions_method_call (GDBusConnection *connection,
GVariant *platform_data;
const gchar *name;
GVariant *state;
+ const GVariantType *state_type = NULL;
g_variant_get (parameters, "(&sv@a{sv})", &name, &state, &platform_data);
+ /* Check the action exists and the state type matches. */
+ if (!g_action_group_query_action (exporter->action_group,
+ name, NULL, NULL,
+ &state_type, NULL, NULL))
+ {
+ g_dbus_method_invocation_return_error (invocation, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS,
+ "Unknown action ‘%s’", name);
+ g_variant_unref (state);
+ g_variant_unref (platform_data);
+ return;
+ }
+
+ if (state_type == NULL)
+ {
+ g_dbus_method_invocation_return_error (invocation, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS,
+ "Cannot change state of action ‘%s’ as it is stateless", name);
+ g_variant_unref (state);
+ g_variant_unref (platform_data);
+ return;
+ }
+
+ if (!g_variant_is_of_type (state, state_type))
+ {
+ g_dbus_method_invocation_return_error (invocation, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS,
+ "Invalid state for action ‘%s’: expected type %s but got type %s",
+ name,
+ (const gchar *) state_type,
+ g_variant_get_type_string (state));
+ g_variant_unref (state);
+ g_variant_unref (platform_data);
+ return;
+ }
+
if (G_IS_REMOTE_ACTION_GROUP (exporter->action_group))
g_remote_action_group_change_action_state_full (G_REMOTE_ACTION_GROUP (exporter->action_group),
name, state, platform_data);
diff --git a/gio/gapplication.c b/gio/gapplication.c
index 1d602c763..3708e812c 100644
--- a/gio/gapplication.c
+++ b/gio/gapplication.c
@@ -673,6 +673,8 @@ add_packed_option (GApplication *application,
* inspected and modified. If %G_APPLICATION_HANDLES_COMMAND_LINE is
* set, then the resulting dictionary is sent to the primary instance,
* where g_application_command_line_get_options_dict() will return it.
+ * As it has been passed outside the process at this point, the types of all
+ * values in the options dict must be checked before being used.
* This "packing" is done according to the type of the argument --
* booleans for normal flags, strings for strings, bytestrings for
* filenames, etc. The packing only occurs if the flag is given (ie: we
diff --git a/gio/gapplication.h b/gio/gapplication.h
index 345405366..70074349a 100644
--- a/gio/gapplication.h
+++ b/gio/gapplication.h
@@ -95,8 +95,11 @@ struct _GApplicationClass
gchar ***arguments,
int *exit_status);
+ /* @platform_data comes from an external process and is untrusted. All value types
+ * must be validated before being used. */
void (* before_emit) (GApplication *application,
GVariant *platform_data);
+ /* Same as for @before_emit. */
void (* after_emit) (GApplication *application,
GVariant *platform_data);
void (* add_platform_data) (GApplication *application,
diff --git a/gio/gapplicationcommandline.c b/gio/gapplicationcommandline.c
index 9fe52da5d..ef6c2d2a3 100644
--- a/gio/gapplicationcommandline.c
+++ b/gio/gapplicationcommandline.c
@@ -260,20 +260,20 @@ grok_platform_data (GApplicationCommandLine *cmdline)
g_variant_iter_init (&iter, cmdline->priv->platform_data);
while (g_variant_iter_loop (&iter, "{&sv}", &key, &value))
- if (strcmp (key, "cwd") == 0)
+ if (strcmp (key, "cwd") == 0 && g_variant_is_of_type (value, G_VARIANT_TYPE_BYTESTRING))
{
if (!cmdline->priv->cwd)
cmdline->priv->cwd = g_variant_dup_bytestring (value, NULL);
}
- else if (strcmp (key, "environ") == 0)
+ else if (strcmp (key, "environ") == 0 && g_variant_is_of_type (value, G_VARIANT_TYPE_BYTESTRING_ARRAY))
{
if (!cmdline->priv->environ)
cmdline->priv->environ =
g_variant_dup_bytestring_array (value, NULL);
}
- else if (strcmp (key, "options") == 0)
+ else if (strcmp (key, "options") == 0 && g_variant_is_of_type (value, G_VARIANT_TYPE_VARDICT))
{
if (!cmdline->priv->options)
cmdline->priv->options = g_variant_ref (value);
@@ -507,6 +507,9 @@ g_application_command_line_get_arguments (GApplicationCommandLine *cmdline,
* If no options were sent then an empty dictionary is returned so that
* you don't need to check for %NULL.
*
+ * The data has been passed via an untrusted external process, so the types of
+ * all values must be checked before being used.
+ *
* Returns: (transfer none): a #GVariantDict with the options
*
* Since: 2.40
@@ -793,6 +796,9 @@ g_application_command_line_get_exit_status (GApplicationCommandLine *cmdline)
* information like the current working directory and the startup
* notification ID.
*
+ * It comes from an untrusted external process and hence the types of all
+ * values must be validated before being used.
+ *
* For local invocation, it will be %NULL.
*
* Returns: (nullable): the platform data, or %NULL
diff --git a/gio/gapplicationimpl-dbus.c b/gio/gapplicationimpl-dbus.c
index bcad19d2e..ac6644d88 100644
--- a/gio/gapplicationimpl-dbus.c
+++ b/gio/gapplicationimpl-dbus.c
@@ -286,6 +286,7 @@ g_application_impl_method_call (GDBusConnection *connection,
GVariant *platform_data;
GVariantIter *iter;
const gchar *name;
+ const GVariantType *parameter_type = NULL;
/* Only on the freedesktop interface */
@@ -293,6 +294,31 @@ g_application_impl_method_call (GDBusConnection *connection,
g_variant_iter_next (iter, "v", &parameter);
g_variant_iter_free (iter);
+ /* Check the action exists and the parameter type matches. */
+ if (!g_action_group_query_action (impl->exported_actions,
+ name, NULL, &parameter_type,
+ NULL, NULL, NULL))
+ {
+ g_dbus_method_invocation_return_error (invocation, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS,
+ "Unknown action ‘%s’", name);
+ g_clear_pointer (&parameter, g_variant_unref);
+ g_variant_unref (platform_data);
+ return;
+ }
+
+ if (!((parameter_type == NULL && parameter == NULL) ||
+ (parameter_type != NULL && parameter != NULL && g_variant_is_of_type (parameter, parameter_type))))
+ {
+ g_dbus_method_invocation_return_error (invocation, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS,
+ "Invalid parameter for action ‘%s’: expected type %s but got type %s",
+ name,
+ (parameter_type != NULL) ? (const gchar *) parameter_type : "()",
+ (parameter != NULL) ? g_variant_get_type_string (parameter) : "()");
+ g_clear_pointer (&parameter, g_variant_unref);
+ g_variant_unref (platform_data);
+ return;
+ }
+
class->before_emit (impl->app, platform_data);
g_action_group_activate_action (impl->exported_actions, name, parameter);
class->after_emit (impl->app, platform_data);
diff --git a/gio/gdbusmenumodel.c b/gio/gdbusmenumodel.c
index a6cc0fc03..87b4c09cb 100644
--- a/gio/gdbusmenumodel.c
+++ b/gio/gdbusmenumodel.c
@@ -25,6 +25,9 @@
#include "gmenumodel.h"
+/* Copied from gmenuexporter.c for the glib-2-74 backport */
+#define G_MENU_EXPORTER_MAX_SECTION_SIZE 1000
+
/* Prelude {{{1 */
/**
@@ -580,6 +583,8 @@ g_dbus_menu_group_deactivate (GDBusMenuGroup *group)
}
}
+/* @menu_id, @position, @removed and @added are all untrusted since they can
+ * come from an external process. */
static void
g_dbus_menu_group_changed (GDBusMenuGroup *group,
guint menu_id,
@@ -593,6 +598,20 @@ g_dbus_menu_group_changed (GDBusMenuGroup *group,
GSequence *items;
GVariant *item;
gint n_added;
+ gint n_items;
+
+ /* Caller has to check this. */
+ g_assert (g_variant_is_of_type (added, G_VARIANT_TYPE ("aa{sv}")));
+
+ n_added = g_variant_n_children (added);
+
+ if (position < 0 || position >= G_MENU_EXPORTER_MAX_SECTION_SIZE ||
+ removed < 0 || removed >= G_MENU_EXPORTER_MAX_SECTION_SIZE ||
+ n_added >= G_MENU_EXPORTER_MAX_SECTION_SIZE)
+ {
+ g_warning ("invalid arguments");
+ return;
+ }
/* We could have signals coming to us when we're not active (due to
* some other process having subscribed to this group) or when we're
@@ -611,9 +630,17 @@ g_dbus_menu_group_changed (GDBusMenuGroup *group,
g_hash_table_insert (group->menus, GINT_TO_POINTER (menu_id), items);
}
- point = g_sequence_get_iter_at_pos (items, position + removed);
+ /* Don’t need to worry about overflow due to the low value of
+ * %G_MENU_EXPORTER_MAX_SECTION_SIZE. */
+ n_items = g_sequence_get_length (items);
+ if (position + removed > n_items ||
+ n_items - removed + n_added > G_MENU_EXPORTER_MAX_SECTION_SIZE)
+ {
+ g_warning ("invalid arguments");
+ return;
+ }
- g_return_if_fail (point != NULL);
+ point = g_sequence_get_iter_at_pos (items, position + removed);
if (removed)
{
@@ -623,7 +650,7 @@ g_dbus_menu_group_changed (GDBusMenuGroup *group,
g_sequence_remove_range (start, point);
}
- n_added = g_variant_iter_init (&iter, added);
+ g_variant_iter_init (&iter, added);
while (g_variant_iter_loop (&iter, "@a{sv}", &item))
g_sequence_insert_before (point, g_dbus_menu_group_create_item (item));
diff --git a/gio/gfdonotificationbackend.c b/gio/gfdonotificationbackend.c
index e0bfea535..594ed9966 100644
--- a/gio/gfdonotificationbackend.c
+++ b/gio/gfdonotificationbackend.c
@@ -63,8 +63,8 @@ typedef struct
GFdoNotificationBackend *backend;
gchar *id;
guint32 notify_id;
- gchar *default_action;
- GVariant *default_action_target;
+ gchar *default_action; /* (nullable) (owned) */
+ GVariant *default_action_target; /* (nullable) (owned), not floating */
} FreedesktopNotification;
static void
@@ -131,22 +131,40 @@ g_fdo_notification_backend_find_notification_by_notify_id (GFdoNotificationBacke
return NULL;
}
-static void
+static gboolean
activate_action (GFdoNotificationBackend *backend,
const gchar *name,
GVariant *parameter)
{
GNotificationBackend *g_backend = G_NOTIFICATION_BACKEND (backend);
- if (name)
+ /* Callers should not provide a floating variant here */
+ g_assert (parameter == NULL || !g_variant_is_floating (parameter));
+
+ if (name != NULL &&
+ g_str_has_prefix (name, "app."))
{
- if (g_str_has_prefix (name, "app."))
- g_action_group_activate_action (G_ACTION_GROUP (g_backend->application), name + 4, parameter);
+ const GVariantType *parameter_type = NULL;
+ const gchar *action_name = name + strlen ("app.");
+
+ /* @name and @parameter come as untrusted input over D-Bus, so validate them first */
+ if (g_action_group_query_action (G_ACTION_GROUP (g_backend->application),
+ action_name, NULL, &parameter_type,
+ NULL, NULL, NULL) &&
+ ((parameter_type == NULL && parameter == NULL) ||
+ (parameter_type != NULL && parameter != NULL && g_variant_is_of_type (parameter, parameter_type))))
+ {
+ g_action_group_activate_action (G_ACTION_GROUP (g_backend->application), action_name, parameter);
+ return TRUE;
+ }
}
- else
+ else if (name == NULL)
{
g_application_activate (g_backend->application);
+ return TRUE;
}
+
+ return FALSE;
}
static void
@@ -162,6 +180,7 @@ notify_signal (GDBusConnection *connection,
guint32 id = 0;
const gchar *action = NULL;
FreedesktopNotification *n;
+ gboolean notification_closed = TRUE;
if (g_str_equal (signal_name, "NotificationClosed") &&
g_variant_is_of_type (parameters, G_VARIANT_TYPE ("(uu)")))
@@ -184,29 +203,39 @@ notify_signal (GDBusConnection *connection,
{
if (g_str_equal (action, "default"))
{
- activate_action (backend, n->default_action, n->default_action_target);
+ if (!activate_action (backend, n->default_action, n->default_action_target))
+ notification_closed = FALSE;
}
else
{
- gchar *name;
- GVariant *target;
-
- if (g_action_parse_detailed_name (action, &name, &target, NULL))
- {
- activate_action (backend, name, target);
- g_free (name);
- if (target)
- g_variant_unref (target);
- }
+ gchar *name = NULL;
+ GVariant *target = NULL;
+
+ if (!g_action_parse_detailed_name (action, &name, &target, NULL) ||
+ !activate_action (backend, name, target))
+ notification_closed = FALSE;
+
+ g_free (name);
+ g_clear_pointer (&target, g_variant_unref);
}
}
- /* Get the notification again in case the action redrew it */
- n = g_fdo_notification_backend_find_notification_by_notify_id (backend, id);
- if (n != NULL)
+ /* Remove the notification, as it’s either been explicitly closed
+ * (`NotificationClosed` signal) or has been closed as a result of activating
+ * an action successfully. GLib doesn’t currently support the `resident` hint
+ * on notifications which would allow them to stay around after having an
+ * action invoked on them (see
+ * https://specifications.freedesktop.org/notification-spec/notification-spec-latest.html#idm45877717456448)
+ *
+ * First, get the notification again in case the action redrew it */
+ if (notification_closed)
{
- backend->notifications = g_slist_remove (backend->notifications, n);
- freedesktop_notification_free (n);
+ n = g_fdo_notification_backend_find_notification_by_notify_id (backend, id);
+ if (n != NULL)
+ {
+ backend->notifications = g_slist_remove (backend->notifications, n);
+ freedesktop_notification_free (n);
+ }
}
}
diff --git a/gio/gmenuexporter.c b/gio/gmenuexporter.c
index 8d6dfe421..55efdbb54 100644
--- a/gio/gmenuexporter.c
+++ b/gio/gmenuexporter.c
@@ -28,6 +28,18 @@
#include "gdbusnamewatching.h"
#include "gdbuserror.h"
+/*
+ * G_MENU_EXPORTER_MAX_SECTION_SIZE:
+ *
+ * The maximum number of entries in a menu section supported by
+ * g_dbus_connection_export_menu_model().
+ *
+ * The exact value of the limit may change in future GLib versions.
+ *
+ * Since: 2.76
+ */
+#define G_MENU_EXPORTER_MAX_SECTION_SIZE 1000
+
/**
* SECTION:gmenuexporter
* @title: GMenuModel exporter
@@ -252,10 +264,17 @@ g_menu_exporter_menu_items_changed (GMenuModel *model,
GMenuExporterMenu *menu = user_data;
GSequenceIter *point;
gint i;
+ gint n_items;
g_assert (menu->model == model);
g_assert (menu->item_links != NULL);
- g_assert (position + removed <= g_sequence_get_length (menu->item_links));
+
+ n_items = g_sequence_get_length (menu->item_links);
+ g_assert (position >= 0 && position < G_MENU_EXPORTER_MAX_SECTION_SIZE);
+ g_assert (removed >= 0 && removed < G_MENU_EXPORTER_MAX_SECTION_SIZE);
+ g_assert (added < G_MENU_EXPORTER_MAX_SECTION_SIZE);
+ g_assert (position + removed <= n_items);
+ g_assert (n_items - removed + added < G_MENU_EXPORTER_MAX_SECTION_SIZE);
point = g_sequence_get_iter_at_pos (menu->item_links, position + removed);
g_sequence_remove_range (g_sequence_get_iter_at_pos (menu->item_links, position), point);
@@ -770,6 +789,10 @@ g_menu_exporter_method_call (GDBusConnection *connection,
* constraint is violated, the export will fail and 0 will be
* returned (with @error set accordingly).
*
+ * Exporting menus with sections containing more than
+ * 1000 items is not supported and results in
+ * undefined behavior.
+ *
* You can unexport the menu model using
* g_dbus_connection_unexport_menu_model() with the return value of
* this function.
diff --git a/gio/gnotificationbackend.c b/gio/gnotificationbackend.c
index e5f404705..acbd10820 100644
--- a/gio/gnotificationbackend.c
+++ b/gio/gnotificationbackend.c
@@ -29,8 +29,22 @@
G_DEFINE_TYPE (GNotificationBackend, g_notification_backend, G_TYPE_OBJECT)
static void
+g_notification_backend_dispose (GObject *obj)
+{
+ GNotificationBackend *backend = G_NOTIFICATION_BACKEND (obj);
+
+ backend->application = NULL; /* no reference held, but clear the pointer anyway to avoid it dangling */
+ g_clear_object (&backend->dbus_connection);
+
+ G_OBJECT_CLASS (g_notification_backend_parent_class)->dispose (obj);
+}
+
+static void
g_notification_backend_class_init (GNotificationBackendClass *class)
{
+ GObjectClass *object_class = G_OBJECT_CLASS (class);
+
+ object_class->dispose = g_notification_backend_dispose;
}
static void
diff --git a/gio/gtestdbus.c b/gio/gtestdbus.c
index cf7d1a4b8..6aedb3eae 100644
--- a/gio/gtestdbus.c
+++ b/gio/gtestdbus.c
@@ -94,7 +94,7 @@ _g_object_unref_and_wait_weak_notify (gpointer object)
g_idle_add (unref_on_idle, object);
/* Make sure we don't block forever */
- timeout_id = g_timeout_add (30 * 1000, on_weak_notify_timeout, &data);
+ timeout_id = g_timeout_add_seconds (30, on_weak_notify_timeout, &data);
g_main_loop_run (data.loop);
diff --git a/gio/tests/actions.c b/gio/tests/actions.c
index f27841b4b..0bd63634b 100644
--- a/gio/tests/actions.c
+++ b/gio/tests/actions.c
@@ -2,6 +2,7 @@
* Copyright © 2010, 2011, 2013, 2014 Codethink Limited
* Copyright © 2010, 2011, 2012, 2013, 2015 Red Hat, Inc.
* Copyright © 2012 Pavel Vasin
+ * Copyright © 2022 Endless OS Foundation, LLC
*
* SPDX-License-Identifier: LGPL-2.1-or-later
*
@@ -189,6 +190,22 @@ strv_set_equal (const gchar * const *strv, ...)
return res;
}
+static void
+ensure_state (GActionGroup *group,
+ const gchar *action_name,
+ const gchar *expected)
+{
+ GVariant *value;
+ gchar *printed;
+
+ value = g_action_group_get_action_state (group, action_name);
+ printed = g_variant_print (value, TRUE);
+ g_variant_unref (value);
+
+ g_assert_cmpstr (printed, ==, expected);
+ g_free (printed);
+}
+
G_GNUC_BEGIN_IGNORE_DEPRECATIONS
static void
@@ -644,11 +661,13 @@ compare_action_groups (GActionGroup *a, GActionGroup *b)
}
static gboolean
-stop_loop (gpointer data)
+timeout_cb (gpointer user_data)
{
- GMainLoop *loop = data;
+ gboolean *timed_out = user_data;
- g_main_loop_quit (loop);
+ g_assert_false (*timed_out);
+ *timed_out = TRUE;
+ g_main_context_wakeup (NULL);
return G_SOURCE_REMOVE;
}
@@ -664,96 +683,16 @@ static GActionEntry exported_entries[] = {
};
static void
-list_cb (GObject *source,
- GAsyncResult *res,
- gpointer user_data)
-{
- GDBusConnection *bus = G_DBUS_CONNECTION (source);
- GMainLoop *loop = user_data;
- GError *error = NULL;
- GVariant *v;
- gchar **actions;
-
- v = g_dbus_connection_call_finish (bus, res, &error);
- g_assert_nonnull (v);
- g_variant_get (v, "(^a&s)", &actions);
- g_assert_cmpint (g_strv_length (actions), ==, G_N_ELEMENTS (exported_entries));
- g_free (actions);
- g_variant_unref (v);
- g_main_loop_quit (loop);
-}
-
-static gboolean
-call_list (gpointer user_data)
-{
- GDBusConnection *bus;
-
- bus = g_bus_get_sync (G_BUS_TYPE_SESSION, NULL, NULL);
- g_dbus_connection_call (bus,
- g_dbus_connection_get_unique_name (bus),
- "/",
- "org.gtk.Actions",
- "List",
- NULL,
- NULL,
- 0,
- G_MAXINT,
- NULL,
- list_cb,
- user_data);
- g_object_unref (bus);
-
- return G_SOURCE_REMOVE;
-}
-
-static void
-describe_cb (GObject *source,
- GAsyncResult *res,
- gpointer user_data)
-{
- GDBusConnection *bus = G_DBUS_CONNECTION (source);
- GMainLoop *loop = user_data;
- GError *error = NULL;
- GVariant *v;
- gboolean enabled;
- gchar *param;
- GVariantIter *iter;
-
- v = g_dbus_connection_call_finish (bus, res, &error);
- g_assert_nonnull (v);
- /* FIXME: there's an extra level of tuplelization in here */
- g_variant_get (v, "((bgav))", &enabled, &param, &iter);
- g_assert_true (enabled);
- g_assert_cmpstr (param, ==, "");
- g_assert_cmpint (g_variant_iter_n_children (iter), ==, 0);
- g_free (param);
- g_variant_iter_free (iter);
- g_variant_unref (v);
-
- g_main_loop_quit (loop);
-}
-
-static gboolean
-call_describe (gpointer user_data)
+async_result_cb (GObject *source,
+ GAsyncResult *res,
+ gpointer user_data)
{
- GDBusConnection *bus;
+ GAsyncResult **result_out = user_data;
- bus = g_bus_get_sync (G_BUS_TYPE_SESSION, NULL, NULL);
- g_dbus_connection_call (bus,
- g_dbus_connection_get_unique_name (bus),
- "/",
- "org.gtk.Actions",
- "Describe",
- g_variant_new ("(s)", "copy"),
- NULL,
- 0,
- G_MAXINT,
- NULL,
- describe_cb,
- user_data);
- g_object_unref (bus);
+ g_assert_null (*result_out);
+ *result_out = g_object_ref (res);
- return G_SOURCE_REMOVE;
+ g_main_context_wakeup (NULL);
}
G_GNUC_BEGIN_IGNORE_DEPRECATIONS
@@ -800,15 +739,16 @@ test_dbus_export (void)
GSimpleActionGroup *group;
GDBusActionGroup *proxy;
GSimpleAction *action;
- GMainLoop *loop;
GError *error = NULL;
GVariant *v;
guint id;
gchar **actions;
guint n_actions_added = 0, n_actions_enabled_changed = 0, n_actions_removed = 0, n_actions_state_changed = 0;
gulong added_signal_id, enabled_changed_signal_id, removed_signal_id, state_changed_signal_id;
-
- loop = g_main_loop_new (NULL, FALSE);
+ gboolean enabled;
+ gchar *param;
+ GVariantIter *iter;
+ GAsyncResult *async_result = NULL;
session_bus_up ();
bus = g_bus_get_sync (G_BUS_TYPE_SESSION, NULL, NULL);
@@ -842,16 +782,244 @@ test_dbus_export (void)
g_strfreev (actions);
/* check that calling "List" works too */
- g_idle_add (call_list, loop);
- g_main_loop_run (loop);
+ g_dbus_connection_call (bus,
+ g_dbus_connection_get_unique_name (bus),
+ "/",
+ "org.gtk.Actions",
+ "List",
+ NULL,
+ NULL,
+ 0,
+ G_MAXINT,
+ NULL,
+ async_result_cb,
+ &async_result);
+
+ while (async_result == NULL)
+ g_main_context_iteration (NULL, TRUE);
+
+ v = g_dbus_connection_call_finish (bus, async_result, &error);
+ g_assert_no_error (error);
+ g_assert_nonnull (v);
+ g_variant_get (v, "(^a&s)", &actions);
+ g_assert_cmpuint (g_strv_length (actions), ==, G_N_ELEMENTS (exported_entries));
+ g_free (actions);
+ g_variant_unref (v);
+ g_clear_object (&async_result);
/* check that calling "Describe" works */
- g_idle_add (call_describe, loop);
- g_main_loop_run (loop);
+ g_dbus_connection_call (bus,
+ g_dbus_connection_get_unique_name (bus),
+ "/",
+ "org.gtk.Actions",
+ "Describe",
+ g_variant_new ("(s)", "copy"),
+ NULL,
+ 0,
+ G_MAXINT,
+ NULL,
+ async_result_cb,
+ &async_result);
+
+ while (async_result == NULL)
+ g_main_context_iteration (NULL, TRUE);
+
+ v = g_dbus_connection_call_finish (bus, async_result, &error);
+ g_assert_no_error (error);
+ g_assert_nonnull (v);
+ /* FIXME: there's an extra level of tuplelization in here */
+ g_variant_get (v, "((bgav))", &enabled, &param, &iter);
+ g_assert_true (enabled);
+ g_assert_cmpstr (param, ==, "");
+ g_assert_cmpint (g_variant_iter_n_children (iter), ==, 0);
+ g_free (param);
+ g_variant_iter_free (iter);
+ g_variant_unref (v);
+ g_clear_object (&async_result);
+
+ /* check that activating a parameterless action over D-Bus works */
+ g_assert_cmpint (activation_count ("undo"), ==, 0);
+
+ g_dbus_connection_call (bus,
+ g_dbus_connection_get_unique_name (bus),
+ "/",
+ "org.gtk.Actions",
+ "Activate",
+ g_variant_new ("(sava{sv})", "undo", NULL, NULL),
+ NULL,
+ 0,
+ G_MAXINT,
+ NULL,
+ async_result_cb,
+ &async_result);
+
+ while (async_result == NULL)
+ g_main_context_iteration (NULL, TRUE);
+
+ v = g_dbus_connection_call_finish (bus, async_result, &error);
+ g_assert_no_error (error);
+ g_assert_nonnull (v);
+ g_assert_true (g_variant_is_of_type (v, G_VARIANT_TYPE_UNIT));
+ g_variant_unref (v);
+ g_clear_object (&async_result);
+
+ g_assert_cmpint (activation_count ("undo"), ==, 1);
+
+ /* check that activating a parameterful action over D-Bus works */
+ g_assert_cmpint (activation_count ("lang"), ==, 0);
+ ensure_state (G_ACTION_GROUP (group), "lang", "'latin'");
+
+ g_dbus_connection_call (bus,
+ g_dbus_connection_get_unique_name (bus),
+ "/",
+ "org.gtk.Actions",
+ "Activate",
+ g_variant_new ("(s@ava{sv})", "lang", g_variant_new_parsed ("[<'spanish'>]"), NULL),
+ NULL,
+ 0,
+ G_MAXINT,
+ NULL,
+ async_result_cb,
+ &async_result);
+
+ while (async_result == NULL)
+ g_main_context_iteration (NULL, TRUE);
+
+ v = g_dbus_connection_call_finish (bus, async_result, &error);
+ g_assert_no_error (error);
+ g_assert_nonnull (v);
+ g_assert_true (g_variant_is_of_type (v, G_VARIANT_TYPE_UNIT));
+ g_variant_unref (v);
+ g_clear_object (&async_result);
+
+ g_assert_cmpint (activation_count ("lang"), ==, 1);
+ ensure_state (G_ACTION_GROUP (group), "lang", "'spanish'");
+
+ /* check that various error conditions are rejected */
+ {
+ struct
+ {
+ const gchar *action_name;
+ GVariant *parameter; /* (owned floating) (nullable) */
+ }
+ activate_error_conditions[] =
+ {
+ { "nope", NULL }, /* non-existent action */
+ { "lang", g_variant_new_parsed ("[<@u 4>]") }, /* wrong parameter type */
+ { "lang", NULL }, /* parameter missing */
+ { "undo", g_variant_new_parsed ("[<'silly'>]") }, /* extraneous parameter */
+ };
+
+ for (gsize i = 0; i < G_N_ELEMENTS (activate_error_conditions); i++)
+ {
+ GVariant *parameter = g_steal_pointer (&activate_error_conditions[i].parameter);
+ const gchar *type_string = (parameter != NULL) ? "(s@ava{sv})" : "(sava{sv})";
+
+ g_dbus_connection_call (bus,
+ g_dbus_connection_get_unique_name (bus),
+ "/",
+ "org.gtk.Actions",
+ "Activate",
+ g_variant_new (type_string,
+ activate_error_conditions[i].action_name,
+ g_steal_pointer (&parameter),
+ NULL),
+ NULL,
+ 0,
+ G_MAXINT,
+ NULL,
+ async_result_cb,
+ &async_result);
+
+ while (async_result == NULL)
+ g_main_context_iteration (NULL, TRUE);
+
+ v = g_dbus_connection_call_finish (bus, async_result, &error);
+ g_assert_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS);
+ g_assert_null (v);
+ g_clear_error (&error);
+ g_clear_object (&async_result);
+ }
+ }
+
+ /* check that setting an action’s state over D-Bus works */
+ g_assert_cmpint (activation_count ("lang"), ==, 1);
+ ensure_state (G_ACTION_GROUP (group), "lang", "'spanish'");
+
+ g_dbus_connection_call (bus,
+ g_dbus_connection_get_unique_name (bus),
+ "/",
+ "org.gtk.Actions",
+ "SetState",
+ g_variant_new ("(sva{sv})", "lang", g_variant_new_string ("portuguese"), NULL),
+ NULL,
+ 0,
+ G_MAXINT,
+ NULL,
+ async_result_cb,
+ &async_result);
+
+ while (async_result == NULL)
+ g_main_context_iteration (NULL, TRUE);
+
+ v = g_dbus_connection_call_finish (bus, async_result, &error);
+ g_assert_no_error (error);
+ g_assert_nonnull (v);
+ g_assert_true (g_variant_is_of_type (v, G_VARIANT_TYPE_UNIT));
+ g_variant_unref (v);
+ g_clear_object (&async_result);
+
+ g_assert_cmpint (activation_count ("lang"), ==, 1);
+ ensure_state (G_ACTION_GROUP (group), "lang", "'portuguese'");
+
+ /* check that various error conditions are rejected */
+ {
+ struct
+ {
+ const gchar *action_name;
+ GVariant *state; /* (owned floating) (not nullable) */
+ }
+ set_state_error_conditions[] =
+ {
+ { "nope", g_variant_new_string ("hello") }, /* non-existent action */
+ { "undo", g_variant_new_string ("not stateful") }, /* not a stateful action */
+ { "lang", g_variant_new_uint32 (3) }, /* wrong state type */
+ };
+
+ for (gsize i = 0; i < G_N_ELEMENTS (set_state_error_conditions); i++)
+ {
+ g_dbus_connection_call (bus,
+ g_dbus_connection_get_unique_name (bus),
+ "/",
+ "org.gtk.Actions",
+ "SetState",
+ g_variant_new ("(s@va{sv})",
+ set_state_error_conditions[i].action_name,
+ g_variant_new_variant (g_steal_pointer (&set_state_error_conditions[i].state)),
+ NULL),
+ NULL,
+ 0,
+ G_MAXINT,
+ NULL,
+ async_result_cb,
+ &async_result);
+
+ while (async_result == NULL)
+ g_main_context_iteration (NULL, TRUE);
+
+ v = g_dbus_connection_call_finish (bus, async_result, &error);
+ g_assert_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS);
+ g_assert_null (v);
+ g_clear_error (&error);
+ g_clear_object (&async_result);
+ }
+ }
/* test that the initial transfer works */
g_assert_true (G_IS_DBUS_ACTION_GROUP (proxy));
- g_assert_true (compare_action_groups (G_ACTION_GROUP (group), G_ACTION_GROUP (proxy)));
+ while (!compare_action_groups (G_ACTION_GROUP (group), G_ACTION_GROUP (proxy)))
+ g_main_context_iteration (NULL, TRUE);
+ n_actions_state_changed = 0;
/* test that various changes get propagated from group to proxy */
n_actions_added = 0;
@@ -931,7 +1099,6 @@ test_dbus_export (void)
g_signal_handler_disconnect (proxy, state_changed_signal_id);
g_object_unref (proxy);
g_object_unref (group);
- g_main_loop_unref (loop);
g_object_unref (bus);
session_bus_down ();
@@ -1016,9 +1183,7 @@ test_bug679509 (void)
{
GDBusConnection *bus;
GDBusActionGroup *proxy;
- GMainLoop *loop;
-
- loop = g_main_loop_new (NULL, FALSE);
+ gboolean timed_out = FALSE;
session_bus_up ();
bus = g_bus_get_sync (G_BUS_TYPE_SESSION, NULL, NULL);
@@ -1027,10 +1192,10 @@ test_bug679509 (void)
g_strfreev (g_action_group_list_actions (G_ACTION_GROUP (proxy)));
g_object_unref (proxy);
- g_timeout_add (100, stop_loop, loop);
- g_main_loop_run (loop);
+ g_timeout_add (100, timeout_cb, &timed_out);
+ while (!timed_out)
+ g_main_context_iteration (NULL, TRUE);
- g_main_loop_unref (loop);
g_object_unref (bus);
session_bus_down ();
@@ -1062,22 +1227,6 @@ verify_changed (const gchar *log_entry)
}
static void
-ensure_state (GSimpleActionGroup *group,
- const gchar *action_name,
- const gchar *expected)
-{
- GVariant *value;
- gchar *printed;
-
- value = g_action_group_get_action_state (G_ACTION_GROUP (group), action_name);
- printed = g_variant_print (value, TRUE);
- g_variant_unref (value);
-
- g_assert_cmpstr (printed, ==, expected);
- g_free (printed);
-}
-
-static void
test_property_actions (void)
{
GSimpleActionGroup *group;
@@ -1137,11 +1286,11 @@ test_property_actions (void)
g_object_unref (client);
g_object_unref (app);
- ensure_state (group, "app-id", "'org.gtk.test'");
- ensure_state (group, "keepalive", "uint32 0");
- ensure_state (group, "tls", "false");
- ensure_state (group, "disable-proxy", "false");
- ensure_state (group, "type", "'stream'");
+ ensure_state (G_ACTION_GROUP (group), "app-id", "'org.gtk.test'");
+ ensure_state (G_ACTION_GROUP (group), "keepalive", "uint32 0");
+ ensure_state (G_ACTION_GROUP (group), "tls", "false");
+ ensure_state (G_ACTION_GROUP (group), "disable-proxy", "false");
+ ensure_state (G_ACTION_GROUP (group), "type", "'stream'");
verify_changed (NULL);
@@ -1149,88 +1298,88 @@ test_property_actions (void)
g_action_group_change_action_state (G_ACTION_GROUP (group), "app-id", g_variant_new ("s", "org.gtk.test2"));
verify_changed ("app-id:'org.gtk.test2'");
g_assert_cmpstr (g_application_get_application_id (app), ==, "org.gtk.test2");
- ensure_state (group, "app-id", "'org.gtk.test2'");
+ ensure_state (G_ACTION_GROUP (group), "app-id", "'org.gtk.test2'");
g_action_group_activate_action (G_ACTION_GROUP (group), "app-id", g_variant_new ("s", "org.gtk.test3"));
verify_changed ("app-id:'org.gtk.test3'");
g_assert_cmpstr (g_application_get_application_id (app), ==, "org.gtk.test3");
- ensure_state (group, "app-id", "'org.gtk.test3'");
+ ensure_state (G_ACTION_GROUP (group), "app-id", "'org.gtk.test3'");
g_application_set_application_id (app, "org.gtk.test");
verify_changed ("app-id:'org.gtk.test'");
- ensure_state (group, "app-id", "'org.gtk.test'");
+ ensure_state (G_ACTION_GROUP (group), "app-id", "'org.gtk.test'");
/* uint tests */
g_action_group_change_action_state (G_ACTION_GROUP (group), "keepalive", g_variant_new ("u", 1234));
verify_changed ("keepalive:uint32 1234");
g_assert_cmpuint (g_application_get_inactivity_timeout (app), ==, 1234);
- ensure_state (group, "keepalive", "uint32 1234");
+ ensure_state (G_ACTION_GROUP (group), "keepalive", "uint32 1234");
g_action_group_activate_action (G_ACTION_GROUP (group), "keepalive", g_variant_new ("u", 5678));
verify_changed ("keepalive:uint32 5678");
g_assert_cmpuint (g_application_get_inactivity_timeout (app), ==, 5678);
- ensure_state (group, "keepalive", "uint32 5678");
+ ensure_state (G_ACTION_GROUP (group), "keepalive", "uint32 5678");
g_application_set_inactivity_timeout (app, 0);
verify_changed ("keepalive:uint32 0");
- ensure_state (group, "keepalive", "uint32 0");
+ ensure_state (G_ACTION_GROUP (group), "keepalive", "uint32 0");
/* bool tests */
g_action_group_change_action_state (G_ACTION_GROUP (group), "tls", g_variant_new ("b", TRUE));
verify_changed ("tls:true");
g_assert_true (g_socket_client_get_tls (client));
- ensure_state (group, "tls", "true");
+ ensure_state (G_ACTION_GROUP (group), "tls", "true");
g_action_group_change_action_state (G_ACTION_GROUP (group), "disable-proxy", g_variant_new ("b", TRUE));
verify_changed ("disable-proxy:true");
- ensure_state (group, "disable-proxy", "true");
+ ensure_state (G_ACTION_GROUP (group), "disable-proxy", "true");
g_assert_false (g_socket_client_get_enable_proxy (client));
/* test toggle true->false */
g_action_group_activate_action (G_ACTION_GROUP (group), "tls", NULL);
verify_changed ("tls:false");
g_assert_false (g_socket_client_get_tls (client));
- ensure_state (group, "tls", "false");
+ ensure_state (G_ACTION_GROUP (group), "tls", "false");
/* and now back false->true */
g_action_group_activate_action (G_ACTION_GROUP (group), "tls", NULL);
verify_changed ("tls:true");
g_assert_true (g_socket_client_get_tls (client));
- ensure_state (group, "tls", "true");
+ ensure_state (G_ACTION_GROUP (group), "tls", "true");
g_socket_client_set_tls (client, FALSE);
verify_changed ("tls:false");
- ensure_state (group, "tls", "false");
+ ensure_state (G_ACTION_GROUP (group), "tls", "false");
/* now do the same for the inverted action */
g_action_group_activate_action (G_ACTION_GROUP (group), "disable-proxy", NULL);
verify_changed ("disable-proxy:false");
g_assert_true (g_socket_client_get_enable_proxy (client));
- ensure_state (group, "disable-proxy", "false");
+ ensure_state (G_ACTION_GROUP (group), "disable-proxy", "false");
g_action_group_activate_action (G_ACTION_GROUP (group), "disable-proxy", NULL);
verify_changed ("disable-proxy:true");
g_assert_false (g_socket_client_get_enable_proxy (client));
- ensure_state (group, "disable-proxy", "true");
+ ensure_state (G_ACTION_GROUP (group), "disable-proxy", "true");
g_socket_client_set_enable_proxy (client, TRUE);
verify_changed ("disable-proxy:false");
- ensure_state (group, "disable-proxy", "false");
+ ensure_state (G_ACTION_GROUP (group), "disable-proxy", "false");
/* enum tests */
g_action_group_change_action_state (G_ACTION_GROUP (group), "type", g_variant_new ("s", "datagram"));
verify_changed ("type:'datagram'");
g_assert_cmpint (g_socket_client_get_socket_type (client), ==, G_SOCKET_TYPE_DATAGRAM);
- ensure_state (group, "type", "'datagram'");
+ ensure_state (G_ACTION_GROUP (group), "type", "'datagram'");
g_action_group_activate_action (G_ACTION_GROUP (group), "type", g_variant_new ("s", "stream"));
verify_changed ("type:'stream'");
g_assert_cmpint (g_socket_client_get_socket_type (client), ==, G_SOCKET_TYPE_STREAM);
- ensure_state (group, "type", "'stream'");
+ ensure_state (G_ACTION_GROUP (group), "type", "'stream'");
g_socket_client_set_socket_type (client, G_SOCKET_TYPE_SEQPACKET);
verify_changed ("type:'seqpacket'");
- ensure_state (group, "type", "'seqpacket'");
+ ensure_state (G_ACTION_GROUP (group), "type", "'seqpacket'");
/* Check some error cases... */
g_test_expect_message ("GLib-GIO", G_LOG_LEVEL_CRITICAL, "*non-existent*");
diff --git a/gio/tests/application-command-line.c b/gio/tests/application-command-line.c
new file mode 100644
index 000000000..185d49f58
--- /dev/null
+++ b/gio/tests/application-command-line.c
@@ -0,0 +1,92 @@
+/*
+ * Copyright © 2022 Endless OS Foundation, LLC
+ *
+ * SPDX-License-Identifier: LGPL-2.1-or-later
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General
+ * Public License along with this library; if not, see <http://www.gnu.org/licenses/>.
+ *
+ * Author: Philip Withnall <pwithnall@endlessos.org>
+ */
+
+#include <gio/gio.h>
+#include <locale.h>
+
+
+static void
+test_basic_properties (void)
+{
+ GApplicationCommandLine *cl = NULL;
+ const gchar * const arguments[] = { "arg1", "arg2", "arg3", NULL };
+ GVariantBuilder options_builder = G_VARIANT_BUILDER_INIT (G_VARIANT_TYPE_VARDICT);
+ GVariantBuilder platform_data_builder = G_VARIANT_BUILDER_INIT (G_VARIANT_TYPE_VARDICT);
+ gchar **argv = NULL;
+ int argc = 0;
+ GVariantDict *options_dict;
+ GVariant *platform_data;
+ GVariantDict *platform_data_dict = NULL;
+ gboolean is_remote;
+
+ /* Basic construction. */
+ g_variant_builder_add (&options_builder, "{sv}", "option1", g_variant_new_string ("value1"));
+ g_variant_builder_add (&options_builder, "{sv}", "option2", g_variant_new_string ("value2"));
+
+ g_variant_builder_add (&platform_data_builder, "{sv}", "data1", g_variant_new_string ("data-value1"));
+ g_variant_builder_add (&platform_data_builder, "{sv}", "data2", g_variant_new_string ("data-value2"));
+
+ cl = g_object_new (G_TYPE_APPLICATION_COMMAND_LINE,
+ "arguments", g_variant_new_bytestring_array (arguments, -1),
+ "options", g_variant_builder_end (&options_builder),
+ "platform-data", g_variant_builder_end (&platform_data_builder),
+ NULL);
+ g_assert_nonnull (cl);
+
+ /* Check the getters. */
+ argv = g_application_command_line_get_arguments (cl, &argc);
+ g_assert_cmpint (argc, ==, 3);
+ g_assert_cmpstrv (argv, arguments);
+ g_clear_pointer (&argv, g_strfreev);
+
+ options_dict = g_application_command_line_get_options_dict (cl);
+ g_assert_nonnull (options_dict);
+ g_assert_true (g_variant_dict_contains (options_dict, "option1"));
+ g_assert_true (g_variant_dict_contains (options_dict, "option2"));
+
+ g_assert_false (g_application_command_line_get_is_remote (cl));
+
+ platform_data = g_application_command_line_get_platform_data (cl);
+ g_assert_nonnull (platform_data);
+ platform_data_dict = g_variant_dict_new (platform_data);
+ g_assert_true (g_variant_dict_contains (platform_data_dict, "data1"));
+ g_assert_true (g_variant_dict_contains (platform_data_dict, "data2"));
+ g_variant_dict_unref (platform_data_dict);
+ g_variant_unref (platform_data);
+
+ /* And g_object_get(). */
+ g_object_get (cl, "is-remote", &is_remote, NULL);
+ g_assert_false (is_remote);
+
+ g_clear_object (&cl);
+}
+
+int
+main (int argc,
+ char *argv[])
+{
+ setlocale (LC_ALL, "");
+ g_test_init (&argc, &argv, NULL);
+
+ g_test_add_func ("/application-command-line/basic-properties", test_basic_properties);
+
+ return g_test_run ();
+}
diff --git a/gio/tests/fdo-notification-backend.c b/gio/tests/fdo-notification-backend.c
new file mode 100644
index 000000000..aed9aab67
--- /dev/null
+++ b/gio/tests/fdo-notification-backend.c
@@ -0,0 +1,326 @@
+/*
+ * Copyright © 2022 Endless OS Foundation, LLC
+ *
+ * SPDX-License-Identifier: LGPL-2.1-or-later
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General
+ * Public License along with this library; if not, see <http://www.gnu.org/licenses/>.
+ *
+ * Author: Philip Withnall <pwithnall@endlessos.org>
+ */
+
+#include <gio/gio.h>
+#include <locale.h>
+
+#include <gio/giomodule-priv.h>
+#include "gio/gnotificationbackend.h"
+
+
+static GNotificationBackend *
+construct_backend (GApplication **app_out)
+{
+ GApplication *app = NULL;
+ GType fdo_type = G_TYPE_INVALID;
+ GNotificationBackend *backend = NULL;
+ GError *local_error = NULL;
+
+ /* Construct the app first and withdraw a notification, to ensure that IO modules are loaded. */
+ app = g_application_new ("org.gtk.TestApplication", G_APPLICATION_DEFAULT_FLAGS);
+ g_application_register (app, NULL, &local_error);
+ g_assert_no_error (local_error);
+ g_application_withdraw_notification (app, "org.gtk.TestApplication.NonexistentNotification");
+
+ fdo_type = g_type_from_name ("GFdoNotificationBackend");
+ g_assert_cmpuint (fdo_type, !=, G_TYPE_INVALID);
+
+ /* Replicate the behaviour from g_notification_backend_new_default(), which is
+ * not exported publicly so can‘t be easily used in the test. */
+ backend = g_object_new (fdo_type, NULL);
+ backend->application = app;
+ backend->dbus_connection = g_application_get_dbus_connection (app);
+ if (backend->dbus_connection)
+ g_object_ref (backend->dbus_connection);
+
+ if (app_out != NULL)
+ *app_out = g_object_ref (app);
+
+ g_clear_object (&app);
+
+ return g_steal_pointer (&backend);
+}
+
+static void
+test_construction (void)
+{
+ GNotificationBackend *backend = NULL;
+ GApplication *app = NULL;
+ GTestDBus *bus = NULL;
+
+ g_test_message ("Test constructing a GFdoNotificationBackend");
+
+ /* Set up a test session bus and connection. */
+ bus = g_test_dbus_new (G_TEST_DBUS_NONE);
+ g_test_dbus_up (bus);
+
+ backend = construct_backend (&app);
+ g_assert_nonnull (backend);
+
+ g_application_quit (app);
+ g_clear_object (&app);
+ g_clear_object (&backend);
+
+ g_test_dbus_down (bus);
+ g_clear_object (&bus);
+}
+
+static void
+daemon_method_call_cb (GDBusConnection *connection,
+ const gchar *sender,
+ const gchar *object_path,
+ const gchar *interface_name,
+ const gchar *method_name,
+ GVariant *parameters,
+ GDBusMethodInvocation *invocation,
+ gpointer user_data)
+{
+ GDBusMethodInvocation **current_method_invocation_out = user_data;
+
+ g_assert_null (*current_method_invocation_out);
+ *current_method_invocation_out = g_steal_pointer (&invocation);
+
+ g_main_context_wakeup (NULL);
+}
+
+static void
+name_acquired_or_lost_cb (GDBusConnection *connection,
+ const gchar *name,
+ gpointer user_data)
+{
+ gboolean *name_acquired = user_data;
+
+ *name_acquired = !*name_acquired;
+
+ g_main_context_wakeup (NULL);
+}
+
+static void
+dbus_activate_action_cb (GSimpleAction *action,
+ GVariant *parameter,
+ gpointer user_data)
+{
+ guint *n_activations = user_data;
+
+ *n_activations = *n_activations + 1;
+ g_main_context_wakeup (NULL);
+}
+
+static void
+assert_send_notification (GNotificationBackend *backend,
+ GDBusMethodInvocation **current_method_invocation,
+ guint32 notify_id)
+{
+ GNotification *notification = NULL;
+
+ notification = g_notification_new ("Some Notification");
+ G_NOTIFICATION_BACKEND_GET_CLASS (backend)->send_notification (backend, "notification1", notification);
+ g_clear_object (&notification);
+
+ while (*current_method_invocation == NULL)
+ g_main_context_iteration (NULL, TRUE);
+
+ g_assert_cmpstr (g_dbus_method_invocation_get_interface_name (*current_method_invocation), ==, "org.freedesktop.Notifications");
+ g_assert_cmpstr (g_dbus_method_invocation_get_method_name (*current_method_invocation), ==, "Notify");
+ g_dbus_method_invocation_return_value (g_steal_pointer (current_method_invocation), g_variant_new ("(u)", notify_id));
+}
+
+static void
+assert_emit_action_invoked (GDBusConnection *daemon_connection,
+ GVariant *parameters)
+{
+ GError *local_error = NULL;
+
+ g_dbus_connection_emit_signal (daemon_connection,
+ NULL,
+ "/org/freedesktop/Notifications",
+ "org.freedesktop.Notifications",
+ "ActionInvoked",
+ parameters,
+ &local_error);
+ g_assert_no_error (local_error);
+}
+
+static void
+test_dbus_activate_action (void)
+{
+ /* Very trimmed down version of
+ * https://specifications.freedesktop.org/notification-spec/notification-spec-latest.html */
+ const GDBusArgInfo daemon_notify_in_app_name = { -1, "AppName", "s", NULL };
+ const GDBusArgInfo daemon_notify_in_replaces_id = { -1, "ReplacesId", "u", NULL };
+ const GDBusArgInfo daemon_notify_in_app_icon = { -1, "AppIcon", "s", NULL };
+ const GDBusArgInfo daemon_notify_in_summary = { -1, "Summary", "s", NULL };
+ const GDBusArgInfo daemon_notify_in_body = { -1, "Body", "s", NULL };
+ const GDBusArgInfo daemon_notify_in_actions = { -1, "Actions", "as", NULL };
+ const GDBusArgInfo daemon_notify_in_hints = { -1, "Hints", "a{sv}", NULL };
+ const GDBusArgInfo daemon_notify_in_expire_timeout = { -1, "ExpireTimeout", "i", NULL };
+ const GDBusArgInfo *daemon_notify_in_args[] =
+ {
+ &daemon_notify_in_app_name,
+ &daemon_notify_in_replaces_id,
+ &daemon_notify_in_app_icon,
+ &daemon_notify_in_summary,
+ &daemon_notify_in_body,
+ &daemon_notify_in_actions,
+ &daemon_notify_in_hints,
+ &daemon_notify_in_expire_timeout,
+ NULL
+ };
+ const GDBusArgInfo daemon_notify_out_id = { -1, "Id", "u", NULL };
+ const GDBusArgInfo *daemon_notify_out_args[] = { &daemon_notify_out_id, NULL };
+ const GDBusMethodInfo daemon_notify_info = { -1, "Notify", (GDBusArgInfo **) daemon_notify_in_args, (GDBusArgInfo **) daemon_notify_out_args, NULL };
+ const GDBusMethodInfo *daemon_methods[] = { &daemon_notify_info, NULL };
+ const GDBusInterfaceInfo daemon_interface_info = { -1, "org.freedesktop.Notifications", (GDBusMethodInfo **) daemon_methods, NULL, NULL, NULL };
+
+ GTestDBus *bus = NULL;
+ GDBusConnection *daemon_connection = NULL;
+ guint daemon_object_id = 0, daemon_name_id = 0;
+ const GDBusInterfaceVTable vtable = { daemon_method_call_cb, NULL, NULL, { NULL, } };
+ GDBusMethodInvocation *current_method_invocation = NULL;
+ GApplication *app = NULL;
+ GNotificationBackend *backend = NULL;
+ guint32 notify_id;
+ GError *local_error = NULL;
+ const GActionEntry entries[] =
+ {
+ { "undo", dbus_activate_action_cb, NULL, NULL, NULL, { 0 } },
+ { "lang", dbus_activate_action_cb, "s", "'latin'", NULL, { 0 } },
+ };
+ guint n_activations = 0;
+ gboolean name_acquired = FALSE;
+
+ g_test_summary ("Test how the backend handles valid and invalid ActionInvoked signals from the daemon");
+
+ /* Set up a test session bus and connection. */
+ bus = g_test_dbus_new (G_TEST_DBUS_NONE);
+ g_test_dbus_up (bus);
+
+ /* Create a mock org.freedesktop.Notifications daemon */
+ daemon_connection = g_dbus_connection_new_for_address_sync (g_test_dbus_get_bus_address (bus),
+ G_DBUS_CONNECTION_FLAGS_AUTHENTICATION_CLIENT |
+ G_DBUS_CONNECTION_FLAGS_MESSAGE_BUS_CONNECTION,
+ NULL, NULL, &local_error);
+ g_assert_no_error (local_error);
+
+ daemon_object_id = g_dbus_connection_register_object (daemon_connection,
+ "/org/freedesktop/Notifications",
+ (GDBusInterfaceInfo *) &daemon_interface_info,
+ &vtable,
+ &current_method_invocation, NULL, &local_error);
+ g_assert_no_error (local_error);
+
+ daemon_name_id = g_bus_own_name_on_connection (daemon_connection,
+ "org.freedesktop.Notifications",
+ G_BUS_NAME_OWNER_FLAGS_DO_NOT_QUEUE,
+ name_acquired_or_lost_cb,
+ name_acquired_or_lost_cb,
+ &name_acquired, NULL);
+
+ while (!name_acquired)
+ g_main_context_iteration (NULL, TRUE);
+
+ /* Construct our FDO backend under test */
+ backend = construct_backend (&app);
+ g_action_map_add_action_entries (G_ACTION_MAP (app), entries, G_N_ELEMENTS (entries), &n_activations);
+
+ /* Send a notification to ensure that the backend is listening for D-Bus action signals. */
+ notify_id = 1233;
+ assert_send_notification (backend, &current_method_invocation, ++notify_id);
+
+ /* Send a valid fake action signal. */
+ n_activations = 0;
+ assert_emit_action_invoked (daemon_connection, g_variant_new ("(us)", notify_id, "app.undo"));
+
+ while (n_activations == 0)
+ g_main_context_iteration (NULL, TRUE);
+
+ g_assert_cmpuint (n_activations, ==, 1);
+
+ /* Send a valid fake action signal with a target. We have to create a new
+ * notification first, as invoking an action on a notification removes it, and
+ * the GLib implementation of org.freedesktop.Notifications doesn’t currently
+ * support the `resident` hint to avoid that. */
+ assert_send_notification (backend, &current_method_invocation, ++notify_id);
+ n_activations = 0;
+ assert_emit_action_invoked (daemon_connection, g_variant_new ("(us)", notify_id, "app.lang::spanish"));
+
+ while (n_activations == 0)
+ g_main_context_iteration (NULL, TRUE);
+
+ g_assert_cmpuint (n_activations, ==, 1);
+
+ /* Send a series of invalid action signals, followed by one valid one which
+ * we should be able to detect. */
+ assert_send_notification (backend, &current_method_invocation, ++notify_id);
+ n_activations = 0;
+ assert_emit_action_invoked (daemon_connection, g_variant_new ("(us)", notify_id, "app.nonexistent"));
+ assert_emit_action_invoked (daemon_connection, g_variant_new ("(us)", notify_id, "app.lang(13)"));
+ assert_emit_action_invoked (daemon_connection, g_variant_new ("(us)", notify_id, "app.undo::should-have-no-parameter"));
+ assert_emit_action_invoked (daemon_connection, g_variant_new ("(us)", notify_id, "app.lang"));
+ assert_emit_action_invoked (daemon_connection, g_variant_new ("(us)", notify_id, "undo")); /* no `app.` prefix */
+ assert_emit_action_invoked (daemon_connection, g_variant_new ("(us)", notify_id, "app.lang(")); /* invalid parse format */
+ assert_emit_action_invoked (daemon_connection, g_variant_new ("(us)", notify_id, "app.undo"));
+
+ while (n_activations == 0)
+ g_main_context_iteration (NULL, TRUE);
+
+ g_assert_cmpuint (n_activations, ==, 1);
+
+ /* Shut down. */
+ g_assert_null (current_method_invocation);
+
+ g_application_quit (app);
+ g_clear_object (&app);
+ g_clear_object (&backend);
+
+ g_dbus_connection_unregister_object (daemon_connection, daemon_object_id);
+ g_bus_unown_name (daemon_name_id);
+
+ g_dbus_connection_flush_sync (daemon_connection, NULL, &local_error);
+ g_assert_no_error (local_error);
+ g_dbus_connection_close_sync (daemon_connection, NULL, &local_error);
+ g_assert_no_error (local_error);
+
+ g_clear_object (&daemon_connection);
+
+ g_test_dbus_down (bus);
+ g_clear_object (&bus);
+}
+
+int
+main (int argc,
+ char *argv[])
+{
+ setlocale (LC_ALL, "");
+
+ /* Force use of the FDO backend */
+ g_setenv ("GNOTIFICATION_BACKEND", "freedesktop", TRUE);
+
+ g_test_init (&argc, &argv, NULL);
+
+ /* Make sure we don’t send notifications to the actual D-Bus session. */
+ g_test_dbus_unset ();
+
+ g_test_add_func ("/fdo-notification-backend/construction", test_construction);
+ g_test_add_func ("/fdo-notification-backend/dbus/activate-action", test_dbus_activate_action);
+
+ return g_test_run ();
+}
diff --git a/gio/tests/gapplication.c b/gio/tests/gapplication.c
index bf0395cdb..4320352d1 100644
--- a/gio/tests/gapplication.c
+++ b/gio/tests/gapplication.c
@@ -1194,6 +1194,493 @@ test_replace (gconstpointer data)
}
}
+static void
+dbus_activate_cb (GApplication *app,
+ gpointer user_data)
+{
+ guint *n_activations = user_data;
+
+ *n_activations = *n_activations + 1;
+ g_main_context_wakeup (NULL);
+}
+
+static void dbus_startup_reply_cb (GObject *source_object,
+ GAsyncResult *result,
+ gpointer user_data);
+static gboolean dbus_startup_reply_idle_cb (gpointer user_data);
+
+static void
+dbus_startup_cb (GApplication *app,
+ gpointer user_data)
+{
+ GDBusConnection *connection = g_bus_get_sync (G_BUS_TYPE_SESSION, NULL, NULL);
+ GDBusMessage *message = G_DBUS_MESSAGE (user_data);
+
+ g_assert_nonnull (connection);
+
+ g_dbus_connection_send_message_with_reply (connection, message,
+ G_DBUS_SEND_MESSAGE_FLAGS_NONE, -1,
+ NULL, NULL,
+ dbus_startup_reply_cb, g_object_ref (app));
+
+ g_clear_object (&connection);
+}
+
+static void
+dbus_startup_reply_cb (GObject *source_object,
+ GAsyncResult *result,
+ gpointer user_data)
+{
+ GDBusConnection *connection = G_DBUS_CONNECTION (source_object);
+ GApplication *app = G_APPLICATION (user_data);
+ GDBusMessage *reply = NULL;
+ GError *local_error = NULL;
+
+ reply = g_dbus_connection_send_message_with_reply_finish (connection, result, &local_error);
+ g_assert_no_error (local_error);
+
+ /* Nothing to check on the reply for now. */
+ g_clear_object (&reply);
+
+ /* Release the app in an idle callback, so there’s time to process other
+ * pending sources first. */
+ g_idle_add_full (G_PRIORITY_LOW, dbus_startup_reply_idle_cb, g_steal_pointer (&app), g_object_unref);
+}
+
+static gboolean
+dbus_startup_reply_idle_cb (gpointer user_data)
+{
+ GApplication *app = G_APPLICATION (user_data);
+
+ g_application_release (app);
+
+ return G_SOURCE_REMOVE;
+}
+
+static void
+test_dbus_activate (void)
+{
+ GTestDBus *bus = NULL;
+ GVariantBuilder builder;
+ GDBusMessage *message = NULL;
+ GPtrArray *messages = NULL; /* (element-type GDBusMessage) (owned) */
+ gsize i;
+
+ g_test_summary ("Test that calling the Activate D-Bus method works");
+
+ /* Try various different messages */
+ messages = g_ptr_array_new_with_free_func (g_object_unref);
+
+ /* Via org.gtk.Application */
+ message = g_dbus_message_new_method_call ("org.gtk.TestApplication.Activate",
+ "/org/gtk/TestApplication/Activate",
+ "org.gtk.Application",
+ "Activate");
+ g_dbus_message_set_body (message, g_variant_new ("(a{sv})", NULL));
+ g_ptr_array_add (messages, g_steal_pointer (&message));
+
+ /* Via org.freedesktop.Application */
+ message = g_dbus_message_new_method_call ("org.gtk.TestApplication.Activate",
+ "/org/gtk/TestApplication/Activate",
+ "org.freedesktop.Application",
+ "Activate");
+ g_dbus_message_set_body (message, g_variant_new ("(a{sv})", NULL));
+ g_ptr_array_add (messages, g_steal_pointer (&message));
+
+ /* With some platform data */
+ g_variant_builder_init (&builder, G_VARIANT_TYPE ("a{sv}"));
+ g_variant_builder_add (&builder, "{sv}", "cwd", g_variant_new_bytestring ("/home/henry"));
+
+ message = g_dbus_message_new_method_call ("org.gtk.TestApplication.Activate",
+ "/org/gtk/TestApplication/Activate",
+ "org.gtk.Application",
+ "Activate");
+ g_dbus_message_set_body (message, g_variant_new ("(a{sv})", &builder));
+ g_ptr_array_add (messages, g_steal_pointer (&message));
+
+ /* Try each message */
+ bus = g_test_dbus_new (G_TEST_DBUS_NONE);
+ g_test_dbus_up (bus);
+
+ for (i = 0; i < messages->len; i++)
+ {
+ GApplication *app = NULL;
+ gulong activate_id, startup_id;
+ guint n_activations = 0;
+
+ g_test_message ("Message %" G_GSIZE_FORMAT, i);
+
+ app = g_application_new ("org.gtk.TestApplication.Activate", G_APPLICATION_DEFAULT_FLAGS);
+ activate_id = g_signal_connect (app, "activate", G_CALLBACK (dbus_activate_cb), &n_activations);
+ startup_id = g_signal_connect (app, "startup", G_CALLBACK (dbus_startup_cb), messages->pdata[i]);
+
+ g_application_hold (app);
+ g_application_run (app, 0, NULL);
+
+ /* It’ll be activated once as normal, and once due to the D-Bus call */
+ g_assert_cmpuint (n_activations, ==, 2);
+
+ g_signal_handler_disconnect (app, startup_id);
+ g_signal_handler_disconnect (app, activate_id);
+ g_clear_object (&app);
+ }
+
+ g_ptr_array_unref (messages);
+
+ g_test_dbus_down (bus);
+ g_clear_object (&bus);
+}
+
+static void
+dbus_activate_noop_cb (GApplication *app,
+ gpointer user_data)
+{
+ /* noop */
+}
+
+static void
+dbus_open_cb (GApplication *app,
+ gpointer files,
+ int n_files,
+ char *hint,
+ gpointer user_data)
+{
+ guint *n_opens = user_data;
+
+ *n_opens = *n_opens + 1;
+ g_main_context_wakeup (NULL);
+}
+
+static void
+test_dbus_open (void)
+{
+ GTestDBus *bus = NULL;
+ GVariantBuilder builder, builder2;
+ GDBusMessage *message = NULL;
+ GPtrArray *messages = NULL; /* (element-type GDBusMessage) (owned) */
+ gsize i;
+
+ g_test_summary ("Test that calling the Open D-Bus method works");
+
+ /* Try various different messages */
+ messages = g_ptr_array_new_with_free_func (g_object_unref);
+
+ /* Via org.gtk.Application */
+ g_variant_builder_init (&builder, G_VARIANT_TYPE ("as"));
+ g_variant_builder_add (&builder, "s", "file:///home/henry/test");
+
+ message = g_dbus_message_new_method_call ("org.gtk.TestApplication.Open",
+ "/org/gtk/TestApplication/Open",
+ "org.gtk.Application",
+ "Open");
+ g_dbus_message_set_body (message, g_variant_new ("(assa{sv})", &builder, "hint", NULL));
+ g_ptr_array_add (messages, g_steal_pointer (&message));
+
+ /* Via org.freedesktop.Application (which has no hint parameter) */
+ g_variant_builder_init (&builder, G_VARIANT_TYPE ("as"));
+ g_variant_builder_add (&builder, "s", "file:///home/henry/test");
+
+ message = g_dbus_message_new_method_call ("org.gtk.TestApplication.Open",
+ "/org/gtk/TestApplication/Open",
+ "org.freedesktop.Application",
+ "Open");
+ g_dbus_message_set_body (message, g_variant_new ("(asa{sv})", &builder, NULL));
+ g_ptr_array_add (messages, g_steal_pointer (&message));
+
+ /* With some platform data and more than one file */
+ g_variant_builder_init (&builder, G_VARIANT_TYPE ("as"));
+ g_variant_builder_add (&builder, "s", "file:///home/henry/test");
+ g_variant_builder_add (&builder, "s", "file:///home/henry/test2");
+
+ g_variant_builder_init (&builder2, G_VARIANT_TYPE ("a{sv}"));
+ g_variant_builder_add (&builder2, "{sv}", "cwd", g_variant_new_bytestring ("/home/henry"));
+
+ message = g_dbus_message_new_method_call ("org.gtk.TestApplication.Open",
+ "/org/gtk/TestApplication/Open",
+ "org.gtk.Application",
+ "Open");
+ g_dbus_message_set_body (message, g_variant_new ("(assa{sv})", &builder, "", &builder2));
+ g_ptr_array_add (messages, g_steal_pointer (&message));
+
+ /* No files */
+ message = g_dbus_message_new_method_call ("org.gtk.TestApplication.Open",
+ "/org/gtk/TestApplication/Open",
+ "org.gtk.Application",
+ "Open");
+ g_dbus_message_set_body (message, g_variant_new ("(assa{sv})", NULL, "", NULL));
+ g_ptr_array_add (messages, g_steal_pointer (&message));
+
+ /* Try each message */
+ bus = g_test_dbus_new (G_TEST_DBUS_NONE);
+ g_test_dbus_up (bus);
+
+ for (i = 0; i < messages->len; i++)
+ {
+ GApplication *app = NULL;
+ gulong activate_id, open_id, startup_id;
+ guint n_opens = 0;
+
+ g_test_message ("Message %" G_GSIZE_FORMAT, i);
+
+ app = g_application_new ("org.gtk.TestApplication.Open", G_APPLICATION_HANDLES_OPEN);
+ activate_id = g_signal_connect (app, "activate", G_CALLBACK (dbus_activate_noop_cb), NULL);
+ open_id = g_signal_connect (app, "open", G_CALLBACK (dbus_open_cb), &n_opens);
+ startup_id = g_signal_connect (app, "startup", G_CALLBACK (dbus_startup_cb), messages->pdata[i]);
+
+ g_application_hold (app);
+ g_application_run (app, 0, NULL);
+
+ g_assert_cmpuint (n_opens, ==, 1);
+
+ g_signal_handler_disconnect (app, startup_id);
+ g_signal_handler_disconnect (app, open_id);
+ g_signal_handler_disconnect (app, activate_id);
+ g_clear_object (&app);
+ }
+
+ g_ptr_array_unref (messages);
+
+ g_test_dbus_down (bus);
+ g_clear_object (&bus);
+}
+
+static void
+dbus_command_line_cb (GApplication *app,
+ GApplicationCommandLine *command_line,
+ gpointer user_data)
+{
+ guint *n_command_lines = user_data;
+
+ *n_command_lines = *n_command_lines + 1;
+ g_main_context_wakeup (NULL);
+}
+
+static void
+test_dbus_command_line (void)
+{
+ GTestDBus *bus = NULL;
+ GVariantBuilder builder, builder2;
+ GDBusMessage *message = NULL;
+ GPtrArray *messages = NULL; /* (element-type GDBusMessage) (owned) */
+ gsize i;
+
+ g_test_summary ("Test that calling the CommandLine D-Bus method works");
+
+ /* Try various different messages */
+ messages = g_ptr_array_new_with_free_func (g_object_unref);
+
+ /* Via org.gtk.Application */
+ g_variant_builder_init (&builder, G_VARIANT_TYPE ("aay"));
+ g_variant_builder_add (&builder, "^ay", "test-program");
+ g_variant_builder_add (&builder, "^ay", "--open");
+ g_variant_builder_add (&builder, "^ay", "/path/to/something");
+
+ message = g_dbus_message_new_method_call ("org.gtk.TestApplication.CommandLine",
+ "/org/gtk/TestApplication/CommandLine",
+ "org.gtk.Application",
+ "CommandLine");
+ g_dbus_message_set_body (message, g_variant_new ("(oaaya{sv})",
+ "/my/org/gtk/private/CommandLine",
+ &builder, NULL));
+ g_ptr_array_add (messages, g_steal_pointer (&message));
+
+ /* With platform data */
+ g_variant_builder_init (&builder, G_VARIANT_TYPE ("aay"));
+ g_variant_builder_add (&builder, "^ay", "test-program");
+ g_variant_builder_add (&builder, "^ay", "--open");
+ g_variant_builder_add (&builder, "^ay", "/path/to/something");
+
+ g_variant_builder_init (&builder2, G_VARIANT_TYPE ("a{sv}"));
+ g_variant_builder_add (&builder2, "{sv}", "cwd", g_variant_new_bytestring ("/home"));
+ g_variant_builder_add_parsed (&builder2, "{'environ', <@aay [ b'HOME=/home/bloop', b'PATH=/blah']>}");
+ g_variant_builder_add_parsed (&builder2, "{'options', <{'a': <@u 32>, 'b': <'bloop'>}>}");
+
+ message = g_dbus_message_new_method_call ("org.gtk.TestApplication.CommandLine",
+ "/org/gtk/TestApplication/CommandLine",
+ "org.gtk.Application",
+ "CommandLine");
+ g_dbus_message_set_body (message, g_variant_new ("(oaaya{sv})",
+ "/my/org/gtk/private/CommandLine",
+ &builder, &builder2));
+ g_ptr_array_add (messages, g_steal_pointer (&message));
+
+ /* With invalid typed platform data */
+ g_variant_builder_init (&builder, G_VARIANT_TYPE ("aay"));
+ g_variant_builder_add (&builder, "^ay", "test-program");
+ g_variant_builder_add (&builder, "^ay", "--open");
+ g_variant_builder_add (&builder, "^ay", "/path/to/something");
+
+ g_variant_builder_init (&builder2, G_VARIANT_TYPE ("a{sv}"));
+ g_variant_builder_add (&builder2, "{sv}", "cwd", g_variant_new_string ("/home should be a bytestring"));
+ g_variant_builder_add_parsed (&builder2, "{'environ', <['HOME=should be a bytestring', 'PATH=this also']>}");
+ g_variant_builder_add_parsed (&builder2, "{'options', <['should be a', 'dict']>}");
+
+ message = g_dbus_message_new_method_call ("org.gtk.TestApplication.CommandLine",
+ "/org/gtk/TestApplication/CommandLine",
+ "org.gtk.Application",
+ "CommandLine");
+ g_dbus_message_set_body (message, g_variant_new ("(oaaya{sv})",
+ "/my/org/gtk/private/CommandLine",
+ &builder, &builder2));
+ g_ptr_array_add (messages, g_steal_pointer (&message));
+
+ /* Try each message */
+ bus = g_test_dbus_new (G_TEST_DBUS_NONE);
+ g_test_dbus_up (bus);
+
+ for (i = 0; i < messages->len; i++)
+ {
+ GApplication *app = NULL;
+ gulong activate_id, command_line_id, startup_id;
+ guint n_command_lines = 0;
+
+ g_test_message ("Message %" G_GSIZE_FORMAT, i);
+
+ app = g_application_new ("org.gtk.TestApplication.CommandLine", G_APPLICATION_HANDLES_COMMAND_LINE);
+ activate_id = g_signal_connect (app, "activate", G_CALLBACK (dbus_activate_noop_cb), NULL);
+ command_line_id = g_signal_connect (app, "command-line", G_CALLBACK (dbus_command_line_cb), &n_command_lines);
+ startup_id = g_signal_connect (app, "startup", G_CALLBACK (dbus_startup_cb), messages->pdata[i]);
+
+ g_application_hold (app);
+ g_application_run (app, 0, NULL);
+
+ /* It’s called once for handling the local command line on startup, and again
+ * for the D-Bus call */
+ g_assert_cmpuint (n_command_lines, ==, 2);
+
+ g_signal_handler_disconnect (app, startup_id);
+ g_signal_handler_disconnect (app, command_line_id);
+ g_signal_handler_disconnect (app, activate_id);
+ g_clear_object (&app);
+ }
+
+ g_ptr_array_unref (messages);
+
+ g_test_dbus_down (bus);
+ g_clear_object (&bus);
+}
+
+static void
+dbus_activate_action_cb (GSimpleAction *action,
+ GVariant *parameter,
+ gpointer user_data)
+{
+ guint *n_activations = user_data;
+
+ *n_activations = *n_activations + 1;
+ g_main_context_wakeup (NULL);
+}
+
+static void
+test_dbus_activate_action (void)
+{
+ GTestDBus *bus = NULL;
+ GVariantBuilder builder;
+ struct
+ {
+ GDBusMessage *message; /* (not nullable) (owned) */
+ guint n_expected_activations;
+ } messages[6];
+ gsize i;
+
+ g_test_summary ("Test that calling the ActivateAction D-Bus method works");
+
+ /* Action without parameter */
+ messages[0].message = g_dbus_message_new_method_call ("org.gtk.TestApplication.ActivateAction",
+ "/org/gtk/TestApplication/ActivateAction",
+ "org.freedesktop.Application",
+ "ActivateAction");
+ g_dbus_message_set_body (messages[0].message, g_variant_new ("(sava{sv})", "undo", NULL, NULL));
+ messages[0].n_expected_activations = 1;
+
+ /* Action with parameter */
+ g_variant_builder_init (&builder, G_VARIANT_TYPE ("av"));
+ g_variant_builder_add (&builder, "v", g_variant_new_string ("spanish"));
+
+ messages[1].message = g_dbus_message_new_method_call ("org.gtk.TestApplication.ActivateAction",
+ "/org/gtk/TestApplication/ActivateAction",
+ "org.freedesktop.Application",
+ "ActivateAction");
+ g_dbus_message_set_body (messages[1].message, g_variant_new ("(sava{sv})", "lang", &builder, NULL));
+ messages[1].n_expected_activations = 1;
+
+ /* Action with unexpected parameter */
+ g_variant_builder_init (&builder, G_VARIANT_TYPE ("av"));
+ g_variant_builder_add (&builder, "v", g_variant_new_string ("should not be passed"));
+
+ messages[2].message = g_dbus_message_new_method_call ("org.gtk.TestApplication.ActivateAction",
+ "/org/gtk/TestApplication/ActivateAction",
+ "org.freedesktop.Application",
+ "ActivateAction");
+ g_dbus_message_set_body (messages[2].message, g_variant_new ("(sava{sv})", "undo", &builder, NULL));
+ messages[2].n_expected_activations = 0;
+
+ /* Action without required parameter */
+ messages[3].message = g_dbus_message_new_method_call ("org.gtk.TestApplication.ActivateAction",
+ "/org/gtk/TestApplication/ActivateAction",
+ "org.freedesktop.Application",
+ "ActivateAction");
+ g_dbus_message_set_body (messages[3].message, g_variant_new ("(sava{sv})", "lang", NULL, NULL));
+ messages[3].n_expected_activations = 0;
+
+ /* Action with wrong parameter type */
+ g_variant_builder_init (&builder, G_VARIANT_TYPE ("av"));
+ g_variant_builder_add (&builder, "v", g_variant_new_uint32 (42));
+
+ messages[4].message = g_dbus_message_new_method_call ("org.gtk.TestApplication.ActivateAction",
+ "/org/gtk/TestApplication/ActivateAction",
+ "org.freedesktop.Application",
+ "ActivateAction");
+ g_dbus_message_set_body (messages[4].message, g_variant_new ("(sava{sv})", "lang", &builder, NULL));
+ messages[4].n_expected_activations = 0;
+
+ /* Nonexistent action */
+ messages[5].message = g_dbus_message_new_method_call ("org.gtk.TestApplication.ActivateAction",
+ "/org/gtk/TestApplication/ActivateAction",
+ "org.freedesktop.Application",
+ "ActivateAction");
+ g_dbus_message_set_body (messages[5].message, g_variant_new ("(sava{sv})", "nonexistent", NULL, NULL));
+ messages[5].n_expected_activations = 0;
+
+ /* Try each message */
+ bus = g_test_dbus_new (G_TEST_DBUS_NONE);
+ g_test_dbus_up (bus);
+
+ for (i = 0; i < G_N_ELEMENTS (messages); i++)
+ {
+ GApplication *app = NULL;
+ gulong activate_id, startup_id;
+ const GActionEntry entries[] =
+ {
+ { "undo", dbus_activate_action_cb, NULL, NULL, NULL, { 0 } },
+ { "lang", dbus_activate_action_cb, "s", "'latin'", NULL, { 0 } },
+ };
+ guint n_activations = 0;
+
+ g_test_message ("Message %" G_GSIZE_FORMAT, i);
+
+ app = g_application_new ("org.gtk.TestApplication.ActivateAction", G_APPLICATION_DEFAULT_FLAGS);
+ activate_id = g_signal_connect (app, "activate", G_CALLBACK (dbus_activate_noop_cb), NULL);
+ startup_id = g_signal_connect (app, "startup", G_CALLBACK (dbus_startup_cb), messages[i].message);
+
+ /* Export some actions. */
+ g_action_map_add_action_entries (G_ACTION_MAP (app), entries, G_N_ELEMENTS (entries), &n_activations);
+
+ g_application_hold (app);
+ g_application_run (app, 0, NULL);
+
+ g_assert_cmpuint (n_activations, ==, messages[i].n_expected_activations);
+
+ g_signal_handler_disconnect (app, startup_id);
+ g_signal_handler_disconnect (app, activate_id);
+ g_clear_object (&app);
+ g_clear_object (&messages[i].message);
+ }
+
+ g_test_dbus_down (bus);
+ g_clear_object (&bus);
+}
+
int
main (int argc, char **argv)
{
@@ -1225,6 +1712,10 @@ main (int argc, char **argv)
g_test_add_func ("/gapplication/api", test_api);
g_test_add_data_func ("/gapplication/replace", GINT_TO_POINTER (TRUE), test_replace);
g_test_add_data_func ("/gapplication/no-replace", GINT_TO_POINTER (FALSE), test_replace);
+ g_test_add_func ("/gapplication/dbus/activate", test_dbus_activate);
+ g_test_add_func ("/gapplication/dbus/open", test_dbus_open);
+ g_test_add_func ("/gapplication/dbus/command-line", test_dbus_command_line);
+ g_test_add_func ("/gapplication/dbus/activate-action", test_dbus_activate_action);
return g_test_run ();
}
diff --git a/gio/tests/gmenumodel.c b/gio/tests/gmenumodel.c
index 618a29eae..9d3e5cbf2 100644
--- a/gio/tests/gmenumodel.c
+++ b/gio/tests/gmenumodel.c
@@ -1505,6 +1505,149 @@ test_menuitem (void)
g_object_unref (submenu);
}
+static GDBusInterfaceInfo *
+org_gtk_Menus_get_interface (void)
+{
+ static GDBusInterfaceInfo *interface_info;
+
+ if (interface_info == NULL)
+ {
+ GError *error = NULL;
+ GDBusNodeInfo *info;
+
+ info = g_dbus_node_info_new_for_xml ("<node>"
+ " <interface name='org.gtk.Menus'>"
+ " <method name='Start'>"
+ " <arg type='au' name='groups' direction='in'/>"
+ " <arg type='a(uuaa{sv})' name='content' direction='out'/>"
+ " </method>"
+ " <method name='End'>"
+ " <arg type='au' name='groups' direction='in'/>"
+ " </method>"
+ " <signal name='Changed'>"
+ " arg type='a(uuuuaa{sv})' name='changes'/>"
+ " </signal>"
+ " </interface>"
+ "</node>", &error);
+ if (info == NULL)
+ g_error ("%s\n", error->message);
+ interface_info = g_dbus_node_info_lookup_interface (info, "org.gtk.Menus");
+ g_assert (interface_info != NULL);
+ g_dbus_interface_info_ref (interface_info);
+ g_dbus_node_info_unref (info);
+ }
+
+ return interface_info;
+}
+
+static void
+g_menu_exporter_method_call (GDBusConnection *connection,
+ const gchar *sender,
+ const gchar *object_path,
+ const gchar *interface_name,
+ const gchar *method_name,
+ GVariant *parameters,
+ GDBusMethodInvocation *invocation,
+ gpointer user_data)
+{
+ const struct {
+ guint position;
+ guint removed;
+ } data[] = {
+ { -2, 4 },
+ { 0, 3 },
+ { 4, 1 }
+ };
+ gsize i;
+ GError *error = NULL;
+
+ g_dbus_method_invocation_return_value (invocation, g_variant_new_parsed ("@(a(uuaa{sv})) ([(0, 0, [{ 'label': <'test'> }])],)"));
+
+ /* invalid signatures */
+ g_dbus_connection_emit_signal (connection, sender, "/", "org.gtk.Menus", "Changed",
+ g_variant_new_parsed ("([(1, 2, 3)],)"), &error);
+ g_assert_no_error (error);
+
+ /* add an item at an invalid position */
+ g_test_expect_message (G_LOG_DOMAIN, G_LOG_LEVEL_WARNING, "*invalid*");
+ g_dbus_connection_emit_signal (connection, sender, "/", "org.gtk.Menus", "Changed",
+ g_variant_new_parsed ("@(a(uuuuaa{sv})) ([(%u, %u, %u, %u, [{ 'label': <'test'> }])],)", 0, 0, 2, 0),
+ &error);
+ g_assert_no_error (error);
+
+ for (i = 0; i < G_N_ELEMENTS (data); i++)
+ {
+ GVariant *params;
+
+ g_test_expect_message (G_LOG_DOMAIN, G_LOG_LEVEL_WARNING, "*invalid*");
+ params = g_variant_new_parsed ("@(a(uuuuaa{sv})) ([(%u, %u, %u, %u, [])],)", 0, 0, data[i].position, data[i].removed);
+ g_dbus_connection_emit_signal (connection, sender, "/", "org.gtk.Menus", "Changed", params, &error);
+ g_assert_no_error (error);
+ }
+}
+
+static void
+menu_changed (GMenuModel *menu,
+ gint position,
+ gint removed,
+ gint added,
+ gpointer user_data)
+{
+ unsigned int *counter = user_data;
+
+ *counter += 1;
+}
+
+static void
+test_input_validation (void)
+{
+ const GDBusInterfaceVTable vtable = {
+ g_menu_exporter_method_call, NULL, NULL, { NULL, }
+ };
+ GError *error = NULL;
+ GDBusConnection *bus;
+ GDBusMenuModel *proxy;
+ guint id;
+ const gchar *bus_name;
+ GMainLoop *loop;
+ unsigned int n_signal_emissions = 0;
+ gulong signal_id;
+
+ g_test_bug ("https://gitlab.gnome.org/GNOME/glib/-/issues/861");
+
+ bus = g_bus_get_sync (G_BUS_TYPE_SESSION, NULL, &error);
+ g_assert_no_error (error);
+
+ id = g_dbus_connection_register_object (bus, "/", org_gtk_Menus_get_interface (),
+ &vtable, NULL, NULL, &error);
+ g_assert_no_error (error);
+
+ bus_name = g_dbus_connection_get_unique_name (bus);
+ proxy = g_dbus_menu_model_get (bus, bus_name, "/");
+
+ signal_id = g_signal_connect (proxy, "items-changed", G_CALLBACK (menu_changed), &n_signal_emissions);
+
+ /* get over laziness */
+ g_menu_model_get_n_items (G_MENU_MODEL (proxy));
+
+ loop = g_main_loop_new (NULL, FALSE);
+ g_timeout_add (100, stop_loop, loop);
+ g_main_loop_run (loop);
+
+ /* "items-changed" should only be emitted for the initial contents of
+ * the menu. Subsequent calls are all invalid.
+ */
+ g_assert_cmpuint (n_signal_emissions, ==, 1);
+
+ g_test_assert_expected_messages ();
+
+ g_main_loop_unref (loop);
+ g_dbus_connection_unregister_object (bus, id);
+ g_signal_handler_disconnect (proxy, signal_id);
+ g_object_unref (proxy);
+ g_object_unref (bus);
+}
+
/* Epilogue {{{1 */
int
main (int argc, char **argv)
@@ -1528,6 +1671,7 @@ main (int argc, char **argv)
g_test_add_func ("/gmenu/mutable", test_mutable);
g_test_add_func ("/gmenu/convenience", test_convenience);
g_test_add_func ("/gmenu/menuitem", test_menuitem);
+ g_test_add_func ("/gmenu/input-validation", test_input_validation);
ret = g_test_run ();
diff --git a/gio/tests/meson.build b/gio/tests/meson.build
index e7fa812c4..41d4e3e6c 100644
--- a/gio/tests/meson.build
+++ b/gio/tests/meson.build
@@ -44,6 +44,7 @@ giotypefuncs_inc = custom_target(
# Test programs buildable on all platforms
gio_tests = {
+ 'application-command-line': {},
'appmonitor' : {
# FIXME: https://gitlab.gnome.org/GNOME/glib/-/issues/1392
'should_fail' : host_system == 'darwin',
@@ -350,6 +351,7 @@ if host_machine.system() != 'windows'
'extra_sources' : extra_sources,
'suite' : ['slow'],
},
+ 'fdo-notification-backend': {},
'gdbus-auth' : {'extra_sources' : extra_sources},
'gdbus-bz627724' : {'extra_sources' : extra_sources},
'gdbus-close-pending' : {'extra_sources' : extra_sources},
diff --git a/glib/gbitlock.c b/glib/gbitlock.c
index 81bfb339f..9c34de80c 100644
--- a/glib/gbitlock.c
+++ b/glib/gbitlock.c
@@ -35,6 +35,7 @@
#ifdef G_BIT_LOCK_FORCE_FUTEX_EMULATION
#undef HAVE_FUTEX
+#undef HAVE_FUTEX_TIME64
#endif
#ifndef HAVE_FUTEX
@@ -42,7 +43,7 @@ static GMutex g_futex_mutex;
static GSList *g_futex_address_list = NULL;
#endif
-#ifdef HAVE_FUTEX
+#if defined(HAVE_FUTEX) || defined(HAVE_FUTEX_TIME64)
/*
* We have headers for futex(2) on the build machine. This does not
* imply that every system that ever runs the resulting glib will have
@@ -51,14 +52,6 @@ static GSList *g_futex_address_list = NULL;
*
* If anyone actually gets bit by this, please file a bug. :)
*/
-#include <linux/futex.h>
-#include <sys/syscall.h>
-#include <unistd.h>
-
-#ifndef FUTEX_WAIT_PRIVATE
-#define FUTEX_WAIT_PRIVATE FUTEX_WAIT
-#define FUTEX_WAKE_PRIVATE FUTEX_WAKE
-#endif
/* < private >
* g_futex_wait:
@@ -81,7 +74,7 @@ static void
g_futex_wait (const gint *address,
gint value)
{
- syscall (__NR_futex, address, (gsize) FUTEX_WAIT_PRIVATE, (gsize) value, NULL);
+ g_futex_simple (address, (gsize) FUTEX_WAIT_PRIVATE, (gsize) value, NULL);
}
/* < private >
@@ -98,7 +91,7 @@ g_futex_wait (const gint *address,
static void
g_futex_wake (const gint *address)
{
- syscall (__NR_futex, address, (gsize) FUTEX_WAKE_PRIVATE, (gsize) 1, NULL);
+ g_futex_simple (address, (gsize) FUTEX_WAKE_PRIVATE, (gsize) 1, NULL);
}
#else
diff --git a/glib/gmain.c b/glib/gmain.c
index dba5f40e4..21e6b0ba0 100644
--- a/glib/gmain.c
+++ b/glib/gmain.c
@@ -79,6 +79,16 @@
#ifndef W_STOPCODE
#define W_STOPCODE(sig) ((sig) << 8 | 0x7f)
#endif
+#ifndef WCOREFLAG
+/* musl doesn’t define WCOREFLAG while glibc does. Unfortunately, there’s no way
+ * to detect we’re building against musl, so just define it and hope.
+ * See https://git.musl-libc.org/cgit/musl/tree/include/sys/wait.h#n51 */
+#define WCOREFLAG 0x80
+#endif
+#ifndef __W_CONTINUED
+/* Same as above, for musl */
+#define __W_CONTINUED 0xffff
+#endif
#endif /* HAVE_PIDFD */
#ifdef G_OS_WIN32
@@ -5563,17 +5573,9 @@ siginfo_t_to_wait_status (const siginfo_t *info)
case CLD_KILLED:
return W_EXITCODE (0, info->si_status);
case CLD_DUMPED:
-#ifdef WCOREFLAG
return W_EXITCODE (0, info->si_status | WCOREFLAG);
-#else
- g_assert_not_reached ();
-#endif
case CLD_CONTINUED:
-#ifdef __W_CONTINUED
return __W_CONTINUED;
-#else
- g_assert_not_reached ();
-#endif
case CLD_STOPPED:
case CLD_TRAPPED:
default:
diff --git a/glib/gthread-posix.c b/glib/gthread-posix.c
index d96fca5ca..84f62881d 100644
--- a/glib/gthread-posix.c
+++ b/glib/gthread-posix.c
@@ -74,7 +74,7 @@
#include <sys/syscall.h>
#endif
-#if defined(HAVE_FUTEX) && \
+#if (defined(HAVE_FUTEX) || defined(HAVE_FUTEX_TIME64)) && \
(defined(HAVE_STDATOMIC_H) || defined(__ATOMIC_SEQ_CST))
#define USE_NATIVE_MUTEX
#endif
@@ -1397,15 +1397,6 @@ g_system_thread_set_name (const gchar *name)
/* {{{1 GMutex and GCond futex implementation */
#if defined(USE_NATIVE_MUTEX)
-
-#include <linux/futex.h>
-#include <sys/syscall.h>
-
-#ifndef FUTEX_WAIT_PRIVATE
-#define FUTEX_WAIT_PRIVATE FUTEX_WAIT
-#define FUTEX_WAKE_PRIVATE FUTEX_WAKE
-#endif
-
/* We should expand the set of operations available in gatomic once we
* have better C11 support in GCC in common distributions (ie: 4.9).
*
@@ -1500,8 +1491,8 @@ g_mutex_lock_slowpath (GMutex *mutex)
*/
while (exchange_acquire (&mutex->i[0], G_MUTEX_STATE_CONTENDED) != G_MUTEX_STATE_EMPTY)
{
- syscall (__NR_futex, &mutex->i[0], (gsize) FUTEX_WAIT_PRIVATE,
- G_MUTEX_STATE_CONTENDED, NULL);
+ g_futex_simple (&mutex->i[0], (gsize) FUTEX_WAIT_PRIVATE,
+ G_MUTEX_STATE_CONTENDED, NULL);
}
}
@@ -1519,7 +1510,7 @@ g_mutex_unlock_slowpath (GMutex *mutex,
g_abort ();
}
- syscall (__NR_futex, &mutex->i[0], (gsize) FUTEX_WAKE_PRIVATE, (gsize) 1, NULL);
+ g_futex_simple (&mutex->i[0], (gsize) FUTEX_WAKE_PRIVATE, (gsize) 1, NULL);
}
void
@@ -1587,7 +1578,7 @@ g_cond_wait (GCond *cond,
guint sampled = (guint) g_atomic_int_get (&cond->i[0]);
g_mutex_unlock (mutex);
- syscall (__NR_futex, &cond->i[0], (gsize) FUTEX_WAIT_PRIVATE, (gsize) sampled, NULL);
+ g_futex_simple (&cond->i[0], (gsize) FUTEX_WAIT_PRIVATE, (gsize) sampled, NULL);
g_mutex_lock (mutex);
}
@@ -1596,7 +1587,7 @@ g_cond_signal (GCond *cond)
{
g_atomic_int_inc (&cond->i[0]);
- syscall (__NR_futex, &cond->i[0], (gsize) FUTEX_WAKE_PRIVATE, (gsize) 1, NULL);
+ g_futex_simple (&cond->i[0], (gsize) FUTEX_WAKE_PRIVATE, (gsize) 1, NULL);
}
void
@@ -1604,7 +1595,7 @@ g_cond_broadcast (GCond *cond)
{
g_atomic_int_inc (&cond->i[0]);
- syscall (__NR_futex, &cond->i[0], (gsize) FUTEX_WAKE_PRIVATE, (gsize) INT_MAX, NULL);
+ g_futex_simple (&cond->i[0], (gsize) FUTEX_WAKE_PRIVATE, (gsize) INT_MAX, NULL);
}
gboolean
@@ -1614,12 +1605,6 @@ g_cond_wait_until (GCond *cond,
{
struct timespec now;
struct timespec span;
-#ifdef __NR_futex_time64
- long span_arg[2];
- G_STATIC_ASSERT (sizeof (span_arg[0]) == 4);
-#else
- struct timespec span_arg;
-#endif
guint sampled;
int res;
@@ -1640,37 +1625,82 @@ g_cond_wait_until (GCond *cond,
if (span.tv_sec < 0)
return FALSE;
- /* On x32 (ILP32 ABI on x86_64) and potentially sparc64, the raw futex()
- * syscall takes a 32-bit timespan argument *regardless* of whether userspace
- * is using 32-bit or 64-bit `struct timespec`. This means that we can’t
- * unconditionally pass a `struct timespec` pointer into the syscall.
+ /* `struct timespec` as defined by the libc headers does not necessarily
+ * have any relation to the one used by the kernel for the `futex` syscall.
*
- * Assume that any such platform is new enough to define the
- * `__NR_futex_time64` workaround syscall (which accepts 64-bit timespecs,
- * introduced in kernel 5.1), and use that as a proxy for whether to pass in
- * `long[2]` or `struct timespec`.
+ * Specifically, the libc headers might use 64-bit `time_t` while the kernel
+ * headers use 32-bit `__kernel_old_time_t` on certain systems.
*
- * As per https://lwn.net/Articles/776427/, the `time64` syscalls only exist
- * on 32-bit platforms, so in this case `sizeof(long)` should always be
- * 32 bits.
+ * To get around this problem we
+ * a) check if `futex_time64` is available, which only exists on 32-bit
+ * platforms and always uses 64-bit `time_t`.
+ * b) otherwise (or if that returns `ENOSYS`), we call the normal `futex`
+ * syscall with the `struct timespec` used by the kernel, which uses
+ * `__kernel_long_t` for both its fields. We use that instead of
+ * `__kernel_old_time_t` because it is equivalent and available in the
+ * kernel headers for a longer time.
*
- * Don’t bother actually calling `__NR_futex_time64` as the `span` is relative
- * and hence very unlikely to overflow, even if using 32-bit longs.
+ * Also some 32-bit systems do not define `__NR_futex` at all and only
+ * define `__NR_futex_time64`.
*/
-#ifdef __NR_futex_time64
- span_arg[0] = span.tv_sec;
- span_arg[1] = span.tv_nsec;
-#else
- span_arg = span;
-#endif
sampled = cond->i[0];
g_mutex_unlock (mutex);
- res = syscall (__NR_futex, &cond->i[0], (gsize) FUTEX_WAIT_PRIVATE, (gsize) sampled, &span_arg);
- success = (res < 0 && errno == ETIMEDOUT) ? FALSE : TRUE;
- g_mutex_lock (mutex);
- return success;
+#ifdef __NR_futex_time64
+ {
+ struct
+ {
+ gint64 tv_sec;
+ gint64 tv_nsec;
+ } span_arg;
+
+ span_arg.tv_sec = span.tv_sec;
+ span_arg.tv_nsec = span.tv_nsec;
+
+ res = syscall (__NR_futex_time64, &cond->i[0], (gsize) FUTEX_WAIT_PRIVATE, (gsize) sampled, &span_arg);
+
+ /* If the syscall does not exist (`ENOSYS`), we retry again below with the
+ * normal `futex` syscall. This can happen if newer kernel headers are
+ * used than the kernel that is actually running.
+ */
+# ifdef __NR_futex
+ if (res >= 0 || errno != ENOSYS)
+# endif /* defined(__NR_futex) */
+ {
+ success = (res < 0 && errno == ETIMEDOUT) ? FALSE : TRUE;
+ g_mutex_lock (mutex);
+
+ return success;
+ }
+ }
+#endif
+
+#ifdef __NR_futex
+ {
+ struct
+ {
+ __kernel_long_t tv_sec;
+ __kernel_long_t tv_nsec;
+ } span_arg;
+
+ /* Make sure to only ever call this if the end time actually fits into the target type */
+ if (G_UNLIKELY (sizeof (__kernel_long_t) < 8 && span.tv_sec > G_MAXINT32))
+ g_error ("%s: Can’t wait for more than %us", G_STRFUNC, G_MAXINT32);
+
+ span_arg.tv_sec = span.tv_sec;
+ span_arg.tv_nsec = span.tv_nsec;
+
+ res = syscall (__NR_futex, &cond->i[0], (gsize) FUTEX_WAIT_PRIVATE, (gsize) sampled, &span_arg);
+ success = (res < 0 && errno == ETIMEDOUT) ? FALSE : TRUE;
+ g_mutex_lock (mutex);
+
+ return success;
+ }
+#endif /* defined(__NR_futex) */
+
+ /* We can't end up here because of the checks above */
+ g_assert_not_reached ();
}
#endif
diff --git a/glib/gthreadprivate.h b/glib/gthreadprivate.h
index 2ae705d4f..6eaf42275 100644
--- a/glib/gthreadprivate.h
+++ b/glib/gthreadprivate.h
@@ -40,6 +40,55 @@ struct _GRealThread
/* system thread implementation (gthread-posix.c, gthread-win32.c) */
+#if defined(HAVE_FUTEX) || defined(HAVE_FUTEX_TIME64)
+#include <linux/futex.h>
+#include <sys/syscall.h>
+#include <unistd.h>
+
+#ifndef FUTEX_WAIT_PRIVATE
+#define FUTEX_WAIT_PRIVATE FUTEX_WAIT
+#define FUTEX_WAKE_PRIVATE FUTEX_WAKE
+#endif
+
+/* Wrapper macro to call `futex_time64` and/or `futex` with simple
+ * parameters and without returning the return value.
+ *
+ * If the `futex_time64` syscall does not exist (`ENOSYS`), we retry again
+ * with the normal `futex` syscall. This can happen if newer kernel headers
+ * are used than the kernel that is actually running.
+ *
+ * This must not be called with a timeout parameter as that differs
+ * in size between the two syscall variants!
+ */
+#if defined(__NR_futex) && defined(__NR_futex_time64)
+#define g_futex_simple(uaddr, futex_op, ...) \
+ G_STMT_START \
+ { \
+ int res = syscall (__NR_futex_time64, uaddr, (gsize) futex_op, __VA_ARGS__); \
+ if (res < 0 && errno == ENOSYS) \
+ syscall (__NR_futex, uaddr, (gsize) futex_op, __VA_ARGS__); \
+ } \
+ G_STMT_END
+#elif defined(__NR_futex_time64)
+#define g_futex_simple(uaddr, futex_op, ...) \
+ G_STMT_START \
+ { \
+ syscall (__NR_futex_time64, uaddr, (gsize) futex_op, __VA_ARGS__); \
+ } \
+ G_STMT_END
+#elif defined(__NR_futex)
+#define g_futex_simple(uaddr, futex_op, ...) \
+ G_STMT_START \
+ { \
+ syscall (__NR_futex, uaddr, (gsize) futex_op, __VA_ARGS__); \
+ } \
+ G_STMT_END
+#else /* !defined(__NR_futex) && !defined(__NR_futex_time64) */
+#error "Neither __NR_futex nor __NR_futex_time64 are defined but were found by meson"
+#endif /* defined(__NR_futex) && defined(__NR_futex_time64) */
+
+#endif
+
/* Platform-specific scheduler settings for a thread */
typedef struct
{
diff --git a/glib/gvariant-core.c b/glib/gvariant-core.c
index ad0bab5b6..57bbf88cc 100644
--- a/glib/gvariant-core.c
+++ b/glib/gvariant-core.c
@@ -1,6 +1,7 @@
/*
* Copyright © 2007, 2008 Ryan Lortie
* Copyright © 2010 Codethink Limited
+ * Copyright © 2022 Endless OS Foundation, LLC
*
* SPDX-License-Identifier: LGPL-2.1-or-later
*
@@ -67,6 +68,8 @@ struct _GVariant
{
GBytes *bytes;
gconstpointer data;
+ gsize ordered_offsets_up_to;
+ gsize checked_offsets_up_to;
} serialised;
struct
@@ -164,6 +167,42 @@ struct _GVariant
* if .data pointed to the appropriate number of nul
* bytes.
*
+ * .ordered_offsets_up_to: If ordered_offsets_up_to == n this means that all
+ * the frame offsets up to and including the frame
+ * offset determining the end of element n are in
+ * order. This guarantees that the bytes of element
+ * n don't overlap with any previous element.
+ *
+ * For trusted data this is set to G_MAXSIZE and we
+ * don't check that the frame offsets are in order.
+ *
+ * Note: This doesn't imply the offsets are good in
+ * any way apart from their ordering. In particular
+ * offsets may be out of bounds for this value or
+ * may imply that the data overlaps the frame
+ * offsets themselves.
+ *
+ * This field is only relevant for arrays of non
+ * fixed width types and for tuples.
+ *
+ * .checked_offsets_up_to: Similarly to .ordered_offsets_up_to, this stores
+ * the index of the highest element, n, whose frame
+ * offsets (and all the preceding frame offsets)
+ * have been checked for validity.
+ *
+ * It is always the case that
+ * .checked_offsets_up_to ≥ .ordered_offsets_up_to.
+ *
+ * If .checked_offsets_up_to == .ordered_offsets_up_to,
+ * then a bad offset has not been found so far.
+ *
+ * If .checked_offsets_up_to > .ordered_offsets_up_to,
+ * then a bad offset has been found at
+ * (.ordered_offsets_up_to + 1).
+ *
+ * This field is only relevant for arrays of non
+ * fixed width types and for tuples.
+ *
* .tree: Only valid when the instance is in tree form.
*
* Note that accesses from other threads could result in
@@ -352,6 +391,29 @@ g_variant_ensure_size (GVariant *value)
}
/* < private >
+ * g_variant_to_serialised:
+ * @value: a #GVariant
+ *
+ * Gets a GVariantSerialised for a GVariant in state STATE_SERIALISED.
+ */
+inline static GVariantSerialised
+g_variant_to_serialised (GVariant *value)
+{
+ g_assert (value->state & STATE_SERIALISED);
+ {
+ GVariantSerialised serialised = {
+ value->type_info,
+ (gpointer) value->contents.serialised.data,
+ value->size,
+ value->depth,
+ value->contents.serialised.ordered_offsets_up_to,
+ value->contents.serialised.checked_offsets_up_to,
+ };
+ return serialised;
+ }
+}
+
+/* < private >
* g_variant_serialise:
* @value: a #GVariant
* @data: an appropriately-sized buffer
@@ -377,6 +439,8 @@ g_variant_serialise (GVariant *value,
serialised.size = value->size;
serialised.data = data;
serialised.depth = value->depth;
+ serialised.ordered_offsets_up_to = 0;
+ serialised.checked_offsets_up_to = 0;
children = (gpointer *) value->contents.tree.children;
n_children = value->contents.tree.n_children;
@@ -420,6 +484,17 @@ g_variant_fill_gvs (GVariantSerialised *serialised,
g_assert (serialised->size == value->size);
serialised->depth = value->depth;
+ if (value->state & STATE_SERIALISED)
+ {
+ serialised->ordered_offsets_up_to = value->contents.serialised.ordered_offsets_up_to;
+ serialised->checked_offsets_up_to = value->contents.serialised.checked_offsets_up_to;
+ }
+ else
+ {
+ serialised->ordered_offsets_up_to = 0;
+ serialised->checked_offsets_up_to = 0;
+ }
+
if (serialised->data)
/* g_variant_store() is a public API, so it
* it will reacquire the lock if it needs to.
@@ -462,6 +537,8 @@ g_variant_ensure_serialised (GVariant *value)
bytes = g_bytes_new_take (data, value->size);
value->contents.serialised.data = g_bytes_get_data (bytes, NULL);
value->contents.serialised.bytes = bytes;
+ value->contents.serialised.ordered_offsets_up_to = G_MAXSIZE;
+ value->contents.serialised.checked_offsets_up_to = G_MAXSIZE;
value->state |= STATE_SERIALISED;
}
}
@@ -542,6 +619,8 @@ g_variant_new_from_bytes (const GVariantType *type,
serialised.type_info = value->type_info;
serialised.data = (guchar *) g_bytes_get_data (bytes, &serialised.size);
serialised.depth = 0;
+ serialised.ordered_offsets_up_to = trusted ? G_MAXSIZE : 0;
+ serialised.checked_offsets_up_to = trusted ? G_MAXSIZE : 0;
if (!g_variant_serialised_check (serialised))
{
@@ -592,6 +671,9 @@ g_variant_new_from_bytes (const GVariantType *type,
value->contents.serialised.data = g_bytes_get_data (bytes, &value->size);
}
+ value->contents.serialised.ordered_offsets_up_to = trusted ? G_MAXSIZE : 0;
+ value->contents.serialised.checked_offsets_up_to = trusted ? G_MAXSIZE : 0;
+
g_clear_pointer (&owned_bytes, g_bytes_unref);
return value;
@@ -1009,16 +1091,8 @@ g_variant_n_children (GVariant *value)
g_variant_lock (value);
if (value->state & STATE_SERIALISED)
- {
- GVariantSerialised serialised = {
- value->type_info,
- (gpointer) value->contents.serialised.data,
- value->size,
- value->depth,
- };
-
- n_children = g_variant_serialised_n_children (serialised);
- }
+ n_children = g_variant_serialised_n_children (
+ g_variant_to_serialised (value));
else
n_children = value->contents.tree.n_children;
@@ -1085,12 +1159,7 @@ g_variant_get_child_value (GVariant *value,
}
{
- GVariantSerialised serialised = {
- value->type_info,
- (gpointer) value->contents.serialised.data,
- value->size,
- value->depth,
- };
+ GVariantSerialised serialised = g_variant_to_serialised (value);
GVariantSerialised s_child;
GVariant *child;
@@ -1099,6 +1168,10 @@ g_variant_get_child_value (GVariant *value,
*/
s_child = g_variant_serialised_get_child (serialised, index_);
+ /* Update the cached ordered_offsets_up_to, since @serialised will be thrown away when this function exits */
+ value->contents.serialised.ordered_offsets_up_to = MAX (value->contents.serialised.ordered_offsets_up_to, serialised.ordered_offsets_up_to);
+ value->contents.serialised.checked_offsets_up_to = MAX (value->contents.serialised.checked_offsets_up_to, serialised.checked_offsets_up_to);
+
/* Check whether this would cause nesting too deep. If so, return a fake
* child. The only situation we expect this to happen in is with a variant,
* as all other deeply-nested types have a static type, and hence should
@@ -1110,6 +1183,7 @@ g_variant_get_child_value (GVariant *value,
G_VARIANT_MAX_RECURSION_DEPTH - value->depth)
{
g_assert (g_variant_is_of_type (value, G_VARIANT_TYPE_VARIANT));
+ g_variant_type_info_unref (s_child.type_info);
return g_variant_new_tuple (NULL, 0);
}
@@ -1124,12 +1198,82 @@ g_variant_get_child_value (GVariant *value,
child->contents.serialised.bytes =
g_bytes_ref (value->contents.serialised.bytes);
child->contents.serialised.data = s_child.data;
+ child->contents.serialised.ordered_offsets_up_to = (value->state & STATE_TRUSTED) ? G_MAXSIZE : s_child.ordered_offsets_up_to;
+ child->contents.serialised.checked_offsets_up_to = (value->state & STATE_TRUSTED) ? G_MAXSIZE : s_child.checked_offsets_up_to;
return child;
}
}
/**
+ * g_variant_maybe_get_child_value:
+ * @value: a container #GVariant
+ * @index_: the index of the child to fetch
+ *
+ * Reads a child item out of a container #GVariant instance, if it is in normal
+ * form. If it is not in normal form, return %NULL.
+ *
+ * This function behaves the same as g_variant_get_child_value(), except that it
+ * returns %NULL if the child is not in normal form. g_variant_get_child_value()
+ * would instead return a new default value of the correct type.
+ *
+ * This is intended to be used internally to avoid unnecessary #GVariant
+ * allocations.
+ *
+ * The returned value is never floating. You should free it with
+ * g_variant_unref() when you're done with it.
+ *
+ * This function is O(1).
+ *
+ * Returns: (transfer full): the child at the specified index
+ *
+ * Since: 2.74
+ */
+GVariant *
+g_variant_maybe_get_child_value (GVariant *value,
+ gsize index_)
+{
+ g_return_val_if_fail (index_ < g_variant_n_children (value), NULL);
+ g_return_val_if_fail (value->depth < G_MAXSIZE, NULL);
+
+ if (~g_atomic_int_get (&value->state) & STATE_SERIALISED)
+ {
+ g_variant_lock (value);
+
+ if (~value->state & STATE_SERIALISED)
+ {
+ GVariant *child;
+
+ child = g_variant_ref (value->contents.tree.children[index_]);
+ g_variant_unlock (value);
+
+ return child;
+ }
+
+ g_variant_unlock (value);
+ }
+
+ {
+ GVariantSerialised serialised = g_variant_to_serialised (value);
+ GVariantSerialised s_child;
+
+ /* get the serializer to extract the serialized data for the child
+ * from the serialized data for the container
+ */
+ s_child = g_variant_serialised_get_child (serialised, index_);
+
+ if (!(value->state & STATE_TRUSTED) && s_child.data == NULL)
+ {
+ g_variant_type_info_unref (s_child.type_info);
+ return NULL;
+ }
+
+ g_variant_type_info_unref (s_child.type_info);
+ return g_variant_get_child_value (value, index_);
+ }
+}
+
+/**
* g_variant_store:
* @value: the #GVariant to store
* @data: (not nullable): the location to store the serialized data at
@@ -1203,14 +1347,7 @@ g_variant_is_normal_form (GVariant *value)
if (value->state & STATE_SERIALISED)
{
- GVariantSerialised serialised = {
- value->type_info,
- (gpointer) value->contents.serialised.data,
- value->size,
- value->depth
- };
-
- if (g_variant_serialised_is_normal (serialised))
+ if (g_variant_serialised_is_normal (g_variant_to_serialised (value)))
value->state |= STATE_TRUSTED;
}
else
diff --git a/glib/gvariant-core.h b/glib/gvariant-core.h
index a1c34739a..fb5f4bff4 100644
--- a/glib/gvariant-core.h
+++ b/glib/gvariant-core.h
@@ -38,4 +38,7 @@ GVariantTypeInfo * g_variant_get_type_info (GVarian
gsize g_variant_get_depth (GVariant *value);
+GVariant * g_variant_maybe_get_child_value (GVariant *value,
+ gsize index_);
+
#endif /* __G_VARIANT_CORE_H__ */
diff --git a/glib/gvariant-serialiser.c b/glib/gvariant-serialiser.c
index 3af68b79b..af863cc52 100644
--- a/glib/gvariant-serialiser.c
+++ b/glib/gvariant-serialiser.c
@@ -1,6 +1,7 @@
/*
* Copyright © 2007, 2008 Ryan Lortie
* Copyright © 2010 Codethink Limited
+ * Copyright © 2020 William Manley
*
* SPDX-License-Identifier: LGPL-2.1-or-later
*
@@ -121,6 +122,8 @@
*
* @depth has no restrictions; the depth of a top-level serialized #GVariant is
* zero, and it increases for each level of nested child.
+ *
+ * @checked_offsets_up_to is always ≥ @ordered_offsets_up_to
*/
/* < private >
@@ -148,6 +151,9 @@ g_variant_serialised_check (GVariantSerialised serialised)
!(serialised.size == 0 || serialised.data != NULL))
return FALSE;
+ if (serialised.ordered_offsets_up_to > serialised.checked_offsets_up_to)
+ return FALSE;
+
/* Depending on the native alignment requirements of the machine, the
* compiler will insert either 3 or 7 padding bytes after the char.
* This will result in the sizeof() the struct being 12 or 16.
@@ -266,6 +272,8 @@ gvs_fixed_sized_maybe_get_child (GVariantSerialised value,
value.type_info = g_variant_type_info_element (value.type_info);
g_variant_type_info_ref (value.type_info);
value.depth++;
+ value.ordered_offsets_up_to = 0;
+ value.checked_offsets_up_to = 0;
return value;
}
@@ -297,7 +305,7 @@ gvs_fixed_sized_maybe_serialise (GVariantSerialised value,
{
if (n_children)
{
- GVariantSerialised child = { NULL, value.data, value.size, value.depth + 1 };
+ GVariantSerialised child = { NULL, value.data, value.size, value.depth + 1, 0, 0 };
gvs_filler (&child, children[0]);
}
@@ -319,6 +327,8 @@ gvs_fixed_sized_maybe_is_normal (GVariantSerialised value)
/* proper element size: "Just". recurse to the child. */
value.type_info = g_variant_type_info_element (value.type_info);
value.depth++;
+ value.ordered_offsets_up_to = 0;
+ value.checked_offsets_up_to = 0;
return g_variant_serialised_is_normal (value);
}
@@ -360,6 +370,8 @@ gvs_variable_sized_maybe_get_child (GVariantSerialised value,
value.data = NULL;
value.depth++;
+ value.ordered_offsets_up_to = 0;
+ value.checked_offsets_up_to = 0;
return value;
}
@@ -390,7 +402,7 @@ gvs_variable_sized_maybe_serialise (GVariantSerialised value,
{
if (n_children)
{
- GVariantSerialised child = { NULL, value.data, value.size - 1, value.depth + 1 };
+ GVariantSerialised child = { NULL, value.data, value.size - 1, value.depth + 1, 0, 0 };
/* write the data for the child. */
gvs_filler (&child, children[0]);
@@ -410,6 +422,8 @@ gvs_variable_sized_maybe_is_normal (GVariantSerialised value)
value.type_info = g_variant_type_info_element (value.type_info);
value.size--;
value.depth++;
+ value.ordered_offsets_up_to = 0;
+ value.checked_offsets_up_to = 0;
return g_variant_serialised_is_normal (value);
}
@@ -635,39 +649,105 @@ gvs_calculate_total_size (gsize body_size,
return body_size + 8 * offsets;
}
+struct Offsets
+{
+ gsize data_size;
+
+ guchar *array;
+ gsize length;
+ guint offset_size;
+
+ gboolean is_normal;
+};
+
static gsize
-gvs_variable_sized_array_n_children (GVariantSerialised value)
+gvs_offsets_get_offset_n (struct Offsets *offsets,
+ gsize n)
{
+ return gvs_read_unaligned_le (
+ offsets->array + (offsets->offset_size * n), offsets->offset_size);
+}
+
+static struct Offsets
+gvs_variable_sized_array_get_frame_offsets (GVariantSerialised value)
+{
+ struct Offsets out = { 0, };
gsize offsets_array_size;
- gsize offset_size;
gsize last_end;
if (value.size == 0)
- return 0;
-
- offset_size = gvs_get_offset_size (value.size);
+ {
+ out.is_normal = TRUE;
+ return out;
+ }
- last_end = gvs_read_unaligned_le (value.data + value.size -
- offset_size, offset_size);
+ out.offset_size = gvs_get_offset_size (value.size);
+ last_end = gvs_read_unaligned_le (value.data + value.size - out.offset_size,
+ out.offset_size);
if (last_end > value.size)
- return 0;
+ return out; /* offsets not normal */
offsets_array_size = value.size - last_end;
- if (offsets_array_size % offset_size)
- return 0;
+ if (offsets_array_size % out.offset_size)
+ return out; /* offsets not normal */
+
+ out.data_size = last_end;
+ out.array = value.data + last_end;
+ out.length = offsets_array_size / out.offset_size;
+
+ if (out.length > 0 && gvs_calculate_total_size (last_end, out.length) != value.size)
+ return out; /* offset size not minimal */
+
+ out.is_normal = TRUE;
- return offsets_array_size / offset_size;
+ return out;
}
+static gsize
+gvs_variable_sized_array_n_children (GVariantSerialised value)
+{
+ return gvs_variable_sized_array_get_frame_offsets (value).length;
+}
+
+/* Find the index of the first out-of-order element in @data, assuming that
+ * @data is an array of elements of given @type, starting at index @start and
+ * containing a further @len-@start elements. */
+#define DEFINE_FIND_UNORDERED(type, le_to_native) \
+ static gsize \
+ find_unordered_##type (const guint8 *data, gsize start, gsize len) \
+ { \
+ gsize off; \
+ type current_le, previous_le, current, previous; \
+ \
+ memcpy (&previous_le, data + start * sizeof (current), sizeof (current)); \
+ previous = le_to_native (previous_le); \
+ for (off = (start + 1) * sizeof (current); off < len * sizeof (current); off += sizeof (current)) \
+ { \
+ memcpy (&current_le, data + off, sizeof (current)); \
+ current = le_to_native (current_le); \
+ if (current < previous) \
+ break; \
+ previous = current; \
+ } \
+ return off / sizeof (current) - 1; \
+ }
+
+#define NO_CONVERSION(x) (x)
+DEFINE_FIND_UNORDERED (guint8, NO_CONVERSION);
+DEFINE_FIND_UNORDERED (guint16, GUINT16_FROM_LE);
+DEFINE_FIND_UNORDERED (guint32, GUINT32_FROM_LE);
+DEFINE_FIND_UNORDERED (guint64, GUINT64_FROM_LE);
+
static GVariantSerialised
gvs_variable_sized_array_get_child (GVariantSerialised value,
gsize index_)
{
GVariantSerialised child = { 0, };
- gsize offset_size;
- gsize last_end;
+
+ struct Offsets offsets = gvs_variable_sized_array_get_frame_offsets (value);
+
gsize start;
gsize end;
@@ -675,18 +755,61 @@ gvs_variable_sized_array_get_child (GVariantSerialised value,
g_variant_type_info_ref (child.type_info);
child.depth = value.depth + 1;
- offset_size = gvs_get_offset_size (value.size);
+ /* If the requested @index_ is beyond the set of indices whose framing offsets
+ * have been checked, check the remaining offsets to see whether they’re
+ * normal (in order, no overlapping array elements).
+ *
+ * Don’t bother checking if the highest known-good offset is lower than the
+ * highest checked offset, as that means there’s an invalid element at that
+ * index, so there’s no need to check further. */
+ if (index_ > value.checked_offsets_up_to &&
+ value.ordered_offsets_up_to == value.checked_offsets_up_to)
+ {
+ switch (offsets.offset_size)
+ {
+ case 1:
+ {
+ value.ordered_offsets_up_to = find_unordered_guint8 (
+ offsets.array, value.checked_offsets_up_to, index_ + 1);
+ break;
+ }
+ case 2:
+ {
+ value.ordered_offsets_up_to = find_unordered_guint16 (
+ offsets.array, value.checked_offsets_up_to, index_ + 1);
+ break;
+ }
+ case 4:
+ {
+ value.ordered_offsets_up_to = find_unordered_guint32 (
+ offsets.array, value.checked_offsets_up_to, index_ + 1);
+ break;
+ }
+ case 8:
+ {
+ value.ordered_offsets_up_to = find_unordered_guint64 (
+ offsets.array, value.checked_offsets_up_to, index_ + 1);
+ break;
+ }
+ default:
+ /* gvs_get_offset_size() only returns maximum 8 */
+ g_assert_not_reached ();
+ }
- last_end = gvs_read_unaligned_le (value.data + value.size -
- offset_size, offset_size);
+ value.checked_offsets_up_to = index_;
+ }
+
+ if (index_ > value.ordered_offsets_up_to)
+ {
+ /* Offsets are invalid somewhere, so return an empty child. */
+ return child;
+ }
if (index_ > 0)
{
guint alignment;
- start = gvs_read_unaligned_le (value.data + last_end +
- (offset_size * (index_ - 1)),
- offset_size);
+ start = gvs_offsets_get_offset_n (&offsets, index_ - 1);
g_variant_type_info_query (child.type_info, &alignment, NULL);
start += (-start) & alignment;
@@ -694,11 +817,9 @@ gvs_variable_sized_array_get_child (GVariantSerialised value,
else
start = 0;
- end = gvs_read_unaligned_le (value.data + last_end +
- (offset_size * index_),
- offset_size);
+ end = gvs_offsets_get_offset_n (&offsets, index_);
- if (start < end && end <= value.size && end <= last_end)
+ if (start < end && end <= value.size && end <= offsets.data_size)
{
child.data = value.data + start;
child.size = end - start;
@@ -770,34 +891,16 @@ static gboolean
gvs_variable_sized_array_is_normal (GVariantSerialised value)
{
GVariantSerialised child = { 0, };
- gsize offsets_array_size;
- guchar *offsets_array;
- guint offset_size;
guint alignment;
- gsize last_end;
- gsize length;
gsize offset;
gsize i;
- if (value.size == 0)
- return TRUE;
-
- offset_size = gvs_get_offset_size (value.size);
- last_end = gvs_read_unaligned_le (value.data + value.size -
- offset_size, offset_size);
+ struct Offsets offsets = gvs_variable_sized_array_get_frame_offsets (value);
- if (last_end > value.size)
+ if (!offsets.is_normal)
return FALSE;
- offsets_array_size = value.size - last_end;
-
- if (offsets_array_size % offset_size)
- return FALSE;
-
- offsets_array = value.data + value.size - offsets_array_size;
- length = offsets_array_size / offset_size;
-
- if (length == 0)
+ if (value.size != 0 && offsets.length == 0)
return FALSE;
child.type_info = g_variant_type_info_element (value.type_info);
@@ -805,14 +908,14 @@ gvs_variable_sized_array_is_normal (GVariantSerialised value)
child.depth = value.depth + 1;
offset = 0;
- for (i = 0; i < length; i++)
+ for (i = 0; i < offsets.length; i++)
{
gsize this_end;
- this_end = gvs_read_unaligned_le (offsets_array + offset_size * i,
- offset_size);
+ this_end = gvs_read_unaligned_le (offsets.array + offsets.offset_size * i,
+ offsets.offset_size);
- if (this_end < offset || this_end > last_end)
+ if (this_end < offset || this_end > offsets.data_size)
return FALSE;
while (offset & alignment)
@@ -834,7 +937,11 @@ gvs_variable_sized_array_is_normal (GVariantSerialised value)
offset = this_end;
}
- g_assert (offset == last_end);
+ g_assert (offset == offsets.data_size);
+
+ /* All offsets have now been checked. */
+ value.ordered_offsets_up_to = G_MAXSIZE;
+ value.checked_offsets_up_to = G_MAXSIZE;
return TRUE;
}
@@ -861,6 +968,61 @@ gvs_variable_sized_array_is_normal (GVariantSerialised value)
* for the tuple. See the notes in gvarianttypeinfo.h.
*/
+/* Note: This doesn’t guarantee that @out_member_end >= @out_member_start; that
+ * condition may not hold true for invalid serialised variants. The caller is
+ * responsible for checking the returned values and handling invalid ones
+ * appropriately. */
+static void
+gvs_tuple_get_member_bounds (GVariantSerialised value,
+ gsize index_,
+ gsize offset_size,
+ gsize *out_member_start,
+ gsize *out_member_end)
+{
+ const GVariantMemberInfo *member_info;
+ gsize member_start, member_end;
+
+ member_info = g_variant_type_info_member_info (value.type_info, index_);
+
+ if (member_info->i + 1 &&
+ offset_size * (member_info->i + 1) <= value.size)
+ member_start = gvs_read_unaligned_le (value.data + value.size -
+ offset_size * (member_info->i + 1),
+ offset_size);
+ else
+ member_start = 0;
+
+ member_start += member_info->a;
+ member_start &= member_info->b;
+ member_start |= member_info->c;
+
+ if (member_info->ending_type == G_VARIANT_MEMBER_ENDING_LAST &&
+ offset_size * (member_info->i + 1) <= value.size)
+ member_end = value.size - offset_size * (member_info->i + 1);
+
+ else if (member_info->ending_type == G_VARIANT_MEMBER_ENDING_FIXED)
+ {
+ gsize fixed_size;
+
+ g_variant_type_info_query (member_info->type_info, NULL, &fixed_size);
+ member_end = member_start + fixed_size;
+ }
+
+ else if (member_info->ending_type == G_VARIANT_MEMBER_ENDING_OFFSET &&
+ offset_size * (member_info->i + 2) <= value.size)
+ member_end = gvs_read_unaligned_le (value.data + value.size -
+ offset_size * (member_info->i + 2),
+ offset_size);
+
+ else /* invalid */
+ member_end = G_MAXSIZE;
+
+ if (out_member_start != NULL)
+ *out_member_start = member_start;
+ if (out_member_end != NULL)
+ *out_member_end = member_end;
+}
+
static gsize
gvs_tuple_n_children (GVariantSerialised value)
{
@@ -881,14 +1043,18 @@ gvs_tuple_get_child (GVariantSerialised value,
child.depth = value.depth + 1;
offset_size = gvs_get_offset_size (value.size);
+ /* Ensure the size is set for fixed-sized children, or
+ * g_variant_serialised_check() will fail, even if we return
+ * (child.data == NULL) to indicate an error. */
+ if (member_info->ending_type == G_VARIANT_MEMBER_ENDING_FIXED)
+ g_variant_type_info_query (child.type_info, NULL, &child.size);
+
/* tuples are the only (potentially) fixed-sized containers, so the
* only ones that have to deal with the possibility of having %NULL
* data with a non-zero %size if errors occurred elsewhere.
*/
if G_UNLIKELY (value.data == NULL && value.size != 0)
{
- g_variant_type_info_query (child.type_info, NULL, &child.size);
-
/* this can only happen in fixed-sized tuples,
* so the child must also be fixed sized.
*/
@@ -898,63 +1064,58 @@ gvs_tuple_get_child (GVariantSerialised value,
return child;
}
- if (member_info->ending_type == G_VARIANT_MEMBER_ENDING_OFFSET)
- {
- if (offset_size * (member_info->i + 2) > value.size)
- return child;
- }
- else
+ /* If the requested @index_ is beyond the set of indices whose framing offsets
+ * have been checked, check the remaining offsets to see whether they’re
+ * normal (in order, no overlapping tuple elements).
+ *
+ * Unlike the checks in gvs_variable_sized_array_get_child(), we have to check
+ * all the tuple *elements* here, not just all the framing offsets, since
+ * tuples contain a mix of elements which use framing offsets and ones which
+ * don’t. None of them are allowed to overlap. */
+ if (index_ > value.checked_offsets_up_to &&
+ value.ordered_offsets_up_to == value.checked_offsets_up_to)
{
- if (offset_size * (member_info->i + 1) > value.size)
- {
- /* if the child is fixed size, return its size.
- * if child is not fixed-sized, return size = 0.
- */
- g_variant_type_info_query (child.type_info, NULL, &child.size);
+ gsize i, prev_i_end = 0;
- return child;
- }
- }
+ if (value.checked_offsets_up_to > 0)
+ gvs_tuple_get_member_bounds (value, value.checked_offsets_up_to - 1, offset_size, NULL, &prev_i_end);
- if (member_info->i + 1)
- start = gvs_read_unaligned_le (value.data + value.size -
- offset_size * (member_info->i + 1),
- offset_size);
- else
- start = 0;
+ for (i = value.checked_offsets_up_to; i <= index_; i++)
+ {
+ gsize i_start, i_end;
- start += member_info->a;
- start &= member_info->b;
- start |= member_info->c;
+ gvs_tuple_get_member_bounds (value, i, offset_size, &i_start, &i_end);
- if (member_info->ending_type == G_VARIANT_MEMBER_ENDING_LAST)
- end = value.size - offset_size * (member_info->i + 1);
+ if (i_start > i_end || i_start < prev_i_end || i_end > value.size)
+ break;
- else if (member_info->ending_type == G_VARIANT_MEMBER_ENDING_FIXED)
- {
- gsize fixed_size;
+ prev_i_end = i_end;
+ }
- g_variant_type_info_query (child.type_info, NULL, &fixed_size);
- end = start + fixed_size;
- child.size = fixed_size;
+ value.ordered_offsets_up_to = i - 1;
+ value.checked_offsets_up_to = index_;
}
- else /* G_VARIANT_MEMBER_ENDING_OFFSET */
- end = gvs_read_unaligned_le (value.data + value.size -
- offset_size * (member_info->i + 2),
- offset_size);
+ if (index_ > value.ordered_offsets_up_to)
+ {
+ /* Offsets are invalid somewhere, so return an empty child. */
+ return child;
+ }
- /* The child should not extend into the offset table. */
- if (index_ != g_variant_type_info_n_members (value.type_info) - 1)
+ if (member_info->ending_type == G_VARIANT_MEMBER_ENDING_OFFSET)
{
- GVariantSerialised last_child;
- last_child = gvs_tuple_get_child (value,
- g_variant_type_info_n_members (value.type_info) - 1);
- last_end = last_child.data + last_child.size - value.data;
- g_variant_type_info_unref (last_child.type_info);
+ if (offset_size * (member_info->i + 2) > value.size)
+ return child;
}
else
- last_end = end;
+ {
+ if (offset_size * (member_info->i + 1) > value.size)
+ return child;
+ }
+
+ /* The child should not extend into the offset table. */
+ gvs_tuple_get_member_bounds (value, index_, offset_size, &start, &end);
+ gvs_tuple_get_member_bounds (value, g_variant_type_info_n_members (value.type_info) - 1, offset_size, NULL, &last_end);
if (start < end && end <= value.size && end <= last_end)
{
@@ -1055,6 +1216,7 @@ gvs_tuple_is_normal (GVariantSerialised value)
gsize length;
gsize offset;
gsize i;
+ gsize offset_table_size;
/* as per the comment in gvs_tuple_get_child() */
if G_UNLIKELY (value.data == NULL && value.size != 0)
@@ -1068,7 +1230,7 @@ gvs_tuple_is_normal (GVariantSerialised value)
for (i = 0; i < length; i++)
{
const GVariantMemberInfo *member_info;
- GVariantSerialised child;
+ GVariantSerialised child = { 0, };
gsize fixed_size;
guint alignment;
gsize end;
@@ -1128,6 +1290,10 @@ gvs_tuple_is_normal (GVariantSerialised value)
offset = end;
}
+ /* All element bounds have been checked above. */
+ value.ordered_offsets_up_to = G_MAXSIZE;
+ value.checked_offsets_up_to = G_MAXSIZE;
+
{
gsize fixed_size;
guint alignment;
@@ -1155,7 +1321,19 @@ gvs_tuple_is_normal (GVariantSerialised value)
}
}
- return offset_ptr == offset;
+ /* @offset_ptr has been counting backwards from the end of the variant, to
+ * find the beginning of the offset table. @offset has been counting forwards
+ * from the beginning of the variant to find the end of the data. They should
+ * have met in the middle. */
+ if (offset_ptr != offset)
+ return FALSE;
+
+ offset_table_size = value.size - offset_ptr;
+ if (value.size > 0 &&
+ gvs_calculate_total_size (offset, offset_table_size / offset_size) != value.size)
+ return FALSE; /* offset size not minimal */
+
+ return TRUE;
}
/* Variants {{{2
diff --git a/glib/gvariant-serialiser.h b/glib/gvariant-serialiser.h
index 6ced7e3d6..eb74fe780 100644
--- a/glib/gvariant-serialiser.h
+++ b/glib/gvariant-serialiser.h
@@ -31,6 +31,27 @@ typedef struct
guchar *data;
gsize size;
gsize depth; /* same semantics as GVariant.depth */
+
+ /* If ordered_offsets_up_to == n this means that all the frame offsets up to and
+ * including the frame offset determining the end of element n are in order.
+ * This guarantees that the bytes of element n don't overlap with any previous
+ * element.
+ *
+ * This is both read and set by g_variant_serialised_get_child() for arrays of
+ * non-fixed-width types, and for tuples.
+ *
+ * Even when dealing with tuples, @ordered_offsets_up_to is an element index,
+ * rather than an index into the frame offsets. */
+ gsize ordered_offsets_up_to;
+
+ /* Similar to @ordered_offsets_up_to. This gives the index of the child element
+ * whose frame offset is the highest in the offset table which has been
+ * checked so far.
+ *
+ * This is always ≥ @ordered_offsets_up_to. It is always an element index.
+ *
+ * See documentation in gvariant-core.c for `struct GVariant` for details. */
+ gsize checked_offsets_up_to;
} GVariantSerialised;
/* deserialization */
diff --git a/glib/gvariant.c b/glib/gvariant.c
index 93eb6cb6b..95904bd38 100644
--- a/glib/gvariant.c
+++ b/glib/gvariant.c
@@ -5852,32 +5852,96 @@ g_variant_iter_loop (GVariantIter *iter,
/* Serialized data {{{1 */
static GVariant *
-g_variant_deep_copy (GVariant *value)
+g_variant_deep_copy (GVariant *value,
+ gboolean byteswap)
{
switch (g_variant_classify (value))
{
case G_VARIANT_CLASS_MAYBE:
- case G_VARIANT_CLASS_ARRAY:
case G_VARIANT_CLASS_TUPLE:
case G_VARIANT_CLASS_DICT_ENTRY:
case G_VARIANT_CLASS_VARIANT:
{
GVariantBuilder builder;
- GVariantIter iter;
- GVariant *child;
+ gsize i, n_children;
g_variant_builder_init (&builder, g_variant_get_type (value));
- g_variant_iter_init (&iter, value);
- while ((child = g_variant_iter_next_value (&iter)))
+ for (i = 0, n_children = g_variant_n_children (value); i < n_children; i++)
{
- g_variant_builder_add_value (&builder, g_variant_deep_copy (child));
+ GVariant *child = g_variant_get_child_value (value, i);
+ g_variant_builder_add_value (&builder, g_variant_deep_copy (child, byteswap));
g_variant_unref (child);
}
return g_variant_builder_end (&builder);
}
+ case G_VARIANT_CLASS_ARRAY:
+ {
+ GVariantBuilder builder;
+ gsize i, n_children;
+ GVariant *first_invalid_child_deep_copy = NULL;
+
+ /* Arrays are in theory treated the same as maybes, tuples, dict entries
+ * and variants, and could be another case in the above block of code.
+ *
+ * However, they have the property that when dealing with non-normal
+ * data (which is the only time g_variant_deep_copy() is currently
+ * called) in a variable-sized array, the code above can easily end up
+ * creating many default child values in order to return an array which
+ * is of the right length and type, but without containing non-normal
+ * data. This can happen if the offset table for the array is malformed.
+ *
+ * In this case, the code above would end up allocating the same default
+ * value for each one of the child indexes beyond the first malformed
+ * entry in the offset table. This can end up being a lot of identical
+ * allocations of default values, particularly if the non-normal array
+ * is crafted maliciously.
+ *
+ * Avoid that problem by returning a new reference to the same default
+ * value for every child after the first invalid one. This results in
+ * returning an equivalent array, in normal form and trusted — but with
+ * significantly fewer memory allocations.
+ *
+ * See https://gitlab.gnome.org/GNOME/glib/-/issues/2540 */
+
+ g_variant_builder_init (&builder, g_variant_get_type (value));
+
+ for (i = 0, n_children = g_variant_n_children (value); i < n_children; i++)
+ {
+ /* Try maybe_get_child_value() first; if it returns NULL, this child
+ * is non-normal. get_child_value() would have constructed and
+ * returned a default value in that case. */
+ GVariant *child = g_variant_maybe_get_child_value (value, i);
+
+ if (child != NULL)
+ {
+ /* Non-normal children may not always be contiguous, as they may
+ * be non-normal for reasons other than invalid offset table
+ * entries. As they are all the same type, they will all have
+ * the same default value though, so keep that around. */
+ g_variant_builder_add_value (&builder, g_variant_deep_copy (child, byteswap));
+ }
+ else if (child == NULL && first_invalid_child_deep_copy != NULL)
+ {
+ g_variant_builder_add_value (&builder, first_invalid_child_deep_copy);
+ }
+ else if (child == NULL)
+ {
+ child = g_variant_get_child_value (value, i);
+ first_invalid_child_deep_copy = g_variant_ref_sink (g_variant_deep_copy (child, byteswap));
+ g_variant_builder_add_value (&builder, first_invalid_child_deep_copy);
+ }
+
+ g_clear_pointer (&child, g_variant_unref);
+ }
+
+ g_clear_pointer (&first_invalid_child_deep_copy, g_variant_unref);
+
+ return g_variant_builder_end (&builder);
+ }
+
case G_VARIANT_CLASS_BOOLEAN:
return g_variant_new_boolean (g_variant_get_boolean (value));
@@ -5885,28 +5949,63 @@ g_variant_deep_copy (GVariant *value)
return g_variant_new_byte (g_variant_get_byte (value));
case G_VARIANT_CLASS_INT16:
- return g_variant_new_int16 (g_variant_get_int16 (value));
+ if (byteswap)
+ return g_variant_new_int16 (GUINT16_SWAP_LE_BE (g_variant_get_int16 (value)));
+ else
+ return g_variant_new_int16 (g_variant_get_int16 (value));
case G_VARIANT_CLASS_UINT16:
- return g_variant_new_uint16 (g_variant_get_uint16 (value));
+ if (byteswap)
+ return g_variant_new_uint16 (GUINT16_SWAP_LE_BE (g_variant_get_uint16 (value)));
+ else
+ return g_variant_new_uint16 (g_variant_get_uint16 (value));
case G_VARIANT_CLASS_INT32:
- return g_variant_new_int32 (g_variant_get_int32 (value));
+ if (byteswap)
+ return g_variant_new_int32 (GUINT32_SWAP_LE_BE (g_variant_get_int32 (value)));
+ else
+ return g_variant_new_int32 (g_variant_get_int32 (value));
case G_VARIANT_CLASS_UINT32:
- return g_variant_new_uint32 (g_variant_get_uint32 (value));
+ if (byteswap)
+ return g_variant_new_uint32 (GUINT32_SWAP_LE_BE (g_variant_get_uint32 (value)));
+ else
+ return g_variant_new_uint32 (g_variant_get_uint32 (value));
case G_VARIANT_CLASS_INT64:
- return g_variant_new_int64 (g_variant_get_int64 (value));
+ if (byteswap)
+ return g_variant_new_int64 (GUINT64_SWAP_LE_BE (g_variant_get_int64 (value)));
+ else
+ return g_variant_new_int64 (g_variant_get_int64 (value));
case G_VARIANT_CLASS_UINT64:
- return g_variant_new_uint64 (g_variant_get_uint64 (value));
+ if (byteswap)
+ return g_variant_new_uint64 (GUINT64_SWAP_LE_BE (g_variant_get_uint64 (value)));
+ else
+ return g_variant_new_uint64 (g_variant_get_uint64 (value));
case G_VARIANT_CLASS_HANDLE:
- return g_variant_new_handle (g_variant_get_handle (value));
+ if (byteswap)
+ return g_variant_new_handle (GUINT32_SWAP_LE_BE (g_variant_get_handle (value)));
+ else
+ return g_variant_new_handle (g_variant_get_handle (value));
case G_VARIANT_CLASS_DOUBLE:
- return g_variant_new_double (g_variant_get_double (value));
+ if (byteswap)
+ {
+ /* We have to convert the double to a uint64 here using a union,
+ * because a cast will round it numerically. */
+ union
+ {
+ guint64 u64;
+ gdouble dbl;
+ } u1, u2;
+ u1.dbl = g_variant_get_double (value);
+ u2.u64 = GUINT64_SWAP_LE_BE (u1.u64);
+ return g_variant_new_double (u2.dbl);
+ }
+ else
+ return g_variant_new_double (g_variant_get_double (value));
case G_VARIANT_CLASS_STRING:
return g_variant_new_string (g_variant_get_string (value, NULL));
@@ -5936,7 +6035,9 @@ g_variant_deep_copy (GVariant *value)
* marked as trusted and a new reference to it is returned.
*
* If @value is found not to be in normal form then a new trusted
- * #GVariant is created with the same value as @value.
+ * #GVariant is created with the same value as @value. The non-normal parts of
+ * @value will be replaced with default values which are guaranteed to be in
+ * normal form.
*
* It makes sense to call this function if you've received #GVariant
* data from untrusted sources and you want to ensure your serialized
@@ -5961,7 +6062,7 @@ g_variant_get_normal_form (GVariant *value)
if (g_variant_is_normal_form (value))
return g_variant_ref (value);
- trusted = g_variant_deep_copy (value);
+ trusted = g_variant_deep_copy (value, FALSE);
g_assert (g_variant_is_trusted (trusted));
return g_variant_ref_sink (trusted);
@@ -5981,6 +6082,11 @@ g_variant_get_normal_form (GVariant *value)
* contain multi-byte numeric data. That include strings, booleans,
* bytes and containers containing only these things (recursively).
*
+ * While this function can safely handle untrusted, non-normal data, it is
+ * recommended to check whether the input is in normal form beforehand, using
+ * g_variant_is_normal_form(), and to reject non-normal inputs if your
+ * application can be strict about what inputs it rejects.
+ *
* The returned value is always in normal form and is marked as trusted.
*
* Returns: (transfer full): the byteswapped form of @value
@@ -5998,32 +6104,38 @@ g_variant_byteswap (GVariant *value)
g_variant_type_info_query (type_info, &alignment, NULL);
- if (alignment)
- /* (potentially) contains multi-byte numeric data */
+ if (alignment && g_variant_is_normal_form (value))
{
- GVariantSerialised serialised;
- GVariant *trusted;
+ /* (potentially) contains multi-byte numeric data, but is also already in
+ * normal form so we can use a faster byteswapping codepath on the
+ * serialised data */
+ GVariantSerialised serialised = { 0, };
GBytes *bytes;
- trusted = g_variant_get_normal_form (value);
- serialised.type_info = g_variant_get_type_info (trusted);
- serialised.size = g_variant_get_size (trusted);
+ serialised.type_info = g_variant_get_type_info (value);
+ serialised.size = g_variant_get_size (value);
serialised.data = g_malloc (serialised.size);
- serialised.depth = g_variant_get_depth (trusted);
- g_variant_store (trusted, serialised.data);
- g_variant_unref (trusted);
+ serialised.depth = g_variant_get_depth (value);
+ serialised.ordered_offsets_up_to = G_MAXSIZE; /* operating on the normal form */
+ serialised.checked_offsets_up_to = G_MAXSIZE;
+ g_variant_store (value, serialised.data);
g_variant_serialised_byteswap (serialised);
bytes = g_bytes_new_take (serialised.data, serialised.size);
- new = g_variant_new_from_bytes (g_variant_get_type (value), bytes, TRUE);
+ new = g_variant_ref_sink (g_variant_new_from_bytes (g_variant_get_type (value), bytes, TRUE));
g_bytes_unref (bytes);
}
+ else if (alignment)
+ /* (potentially) contains multi-byte numeric data */
+ new = g_variant_ref_sink (g_variant_deep_copy (value, TRUE));
else
/* contains no multi-byte data */
- new = value;
+ new = g_variant_get_normal_form (value);
+
+ g_assert (g_variant_is_trusted (new));
- return g_variant_ref_sink (new);
+ return g_steal_pointer (&new);
}
/**
diff --git a/glib/tests/gvariant.c b/glib/tests/gvariant.c
index 29110e4e2..e4a2518aa 100644
--- a/glib/tests/gvariant.c
+++ b/glib/tests/gvariant.c
@@ -1,5 +1,7 @@
/*
* Copyright © 2010 Codethink Limited
+ * Copyright © 2020 William Manley
+ * Copyright © 2022 Endless OS Foundation, LLC
*
* SPDX-License-Identifier: LGPL-2.1-or-later
*
@@ -1229,6 +1231,7 @@ random_instance_assert (RandomInstance *instance,
GRand *rand;
gsize i;
+ g_assert_true (size == 0 || buffer != NULL);
g_assert_cmpint ((gsize) buffer & ALIGN_BITS & instance->alignment, ==, 0);
g_assert_cmpint (size, ==, instance->size);
@@ -1281,6 +1284,8 @@ random_instance_filler (GVariantSerialised *serialised,
serialised->size = instance->size;
serialised->depth = 0;
+ serialised->ordered_offsets_up_to = 0;
+ serialised->checked_offsets_up_to = 0;
g_assert_true (serialised->type_info == instance->type_info);
g_assert_cmpuint (serialised->size, ==, instance->size);
@@ -1440,21 +1445,26 @@ test_maybe (void)
for (flavour = 0; flavour < 8; flavour += alignment)
{
- GVariantSerialised serialised;
+ GVariantSerialised serialised = { 0, };
GVariantSerialised child;
serialised.type_info = type_info;
serialised.data = flavoured_malloc (needed_size, flavour);
serialised.size = needed_size;
serialised.depth = 0;
+ serialised.ordered_offsets_up_to = 0;
+ serialised.checked_offsets_up_to = 0;
g_variant_serialiser_serialise (serialised,
random_instance_filler,
(gpointer *) &instance, 1);
+
child = g_variant_serialised_get_child (serialised, 0);
g_assert_true (child.type_info == instance->type_info);
- random_instance_assert (instance, child.data, child.size);
+ if (child.data != NULL) /* could be NULL if element is non-normal */
+ random_instance_assert (instance, child.data, child.size);
g_variant_type_info_unref (child.type_info);
+
flavoured_free (serialised.data, flavour);
}
}
@@ -1564,12 +1574,14 @@ test_array (void)
for (flavour = 0; flavour < 8; flavour += alignment)
{
- GVariantSerialised serialised;
+ GVariantSerialised serialised = { 0, };
serialised.type_info = array_info;
serialised.data = flavoured_malloc (needed_size, flavour);
serialised.size = needed_size;
serialised.depth = 0;
+ serialised.ordered_offsets_up_to = 0;
+ serialised.checked_offsets_up_to = 0;
g_variant_serialiser_serialise (serialised, random_instance_filler,
(gpointer *) instances, n_children);
@@ -1585,7 +1597,8 @@ test_array (void)
child = g_variant_serialised_get_child (serialised, i);
g_assert_true (child.type_info == instances[i]->type_info);
- random_instance_assert (instances[i], child.data, child.size);
+ if (child.data != NULL) /* could be NULL if element is non-normal */
+ random_instance_assert (instances[i], child.data, child.size);
g_variant_type_info_unref (child.type_info);
}
@@ -1728,12 +1741,14 @@ test_tuple (void)
for (flavour = 0; flavour < 8; flavour += alignment)
{
- GVariantSerialised serialised;
+ GVariantSerialised serialised = { 0, };
serialised.type_info = type_info;
serialised.data = flavoured_malloc (needed_size, flavour);
serialised.size = needed_size;
serialised.depth = 0;
+ serialised.ordered_offsets_up_to = 0;
+ serialised.checked_offsets_up_to = 0;
g_variant_serialiser_serialise (serialised, random_instance_filler,
(gpointer *) instances, n_children);
@@ -1749,7 +1764,8 @@ test_tuple (void)
child = g_variant_serialised_get_child (serialised, i);
g_assert_true (child.type_info == instances[i]->type_info);
- random_instance_assert (instances[i], child.data, child.size);
+ if (child.data != NULL) /* could be NULL if element is non-normal */
+ random_instance_assert (instances[i], child.data, child.size);
g_variant_type_info_unref (child.type_info);
}
@@ -1823,13 +1839,15 @@ test_variant (void)
for (flavour = 0; flavour < 8; flavour += alignment)
{
- GVariantSerialised serialised;
+ GVariantSerialised serialised = { 0, };
GVariantSerialised child;
serialised.type_info = type_info;
serialised.data = flavoured_malloc (needed_size, flavour);
serialised.size = needed_size;
serialised.depth = 0;
+ serialised.ordered_offsets_up_to = 0;
+ serialised.checked_offsets_up_to = 0;
g_variant_serialiser_serialise (serialised, random_instance_filler,
(gpointer *) &instance, 1);
@@ -2270,24 +2288,67 @@ serialise_tree (TreeInstance *tree,
static void
test_byteswap (void)
{
- GVariantSerialised one, two;
+ GVariantSerialised one = { 0, }, two = { 0, }, three = { 0, };
TreeInstance *tree;
-
+ GVariant *one_variant = NULL;
+ GVariant *two_variant = NULL;
+ GVariant *two_byteswapped = NULL;
+ GVariant *three_variant = NULL;
+ GVariant *three_byteswapped = NULL;
+ guint8 *three_data_copy = NULL;
+ gsize three_size_copy = 0;
+
+ /* Write a tree out twice, once normally and once byteswapped. */
tree = tree_instance_new (NULL, 3);
serialise_tree (tree, &one);
+ one_variant = g_variant_new_from_data (G_VARIANT_TYPE (g_variant_type_info_get_type_string (one.type_info)),
+ one.data, one.size, FALSE, NULL, NULL);
+
i_am_writing_byteswapped = TRUE;
serialise_tree (tree, &two);
+ serialise_tree (tree, &three);
i_am_writing_byteswapped = FALSE;
- g_variant_serialised_byteswap (two);
-
- g_assert_cmpmem (one.data, one.size, two.data, two.size);
- g_assert_cmpuint (one.depth, ==, two.depth);
-
+ /* Swap the first byteswapped one back using the function we want to test. */
+ two_variant = g_variant_new_from_data (G_VARIANT_TYPE (g_variant_type_info_get_type_string (two.type_info)),
+ two.data, two.size, FALSE, NULL, NULL);
+ two_byteswapped = g_variant_byteswap (two_variant);
+
+ /* Make the second byteswapped one non-normal (hopefully), and then byteswap
+ * it back using the function we want to test in its non-normal mode.
+ * This might not work because it’s not necessarily possible to make an
+ * arbitrary random variant non-normal. Adding a single zero byte to the end
+ * often makes something non-normal but still readable. */
+ three_size_copy = three.size + 1;
+ three_data_copy = g_malloc (three_size_copy);
+ memcpy (three_data_copy, three.data, three.size);
+ three_data_copy[three.size] = '\0';
+
+ three_variant = g_variant_new_from_data (G_VARIANT_TYPE (g_variant_type_info_get_type_string (three.type_info)),
+ three_data_copy, three_size_copy, FALSE, NULL, NULL);
+ three_byteswapped = g_variant_byteswap (three_variant);
+
+ /* Check they’re the same. We can always compare @one_variant and
+ * @two_byteswapped. We can only compare @two_byteswapped and
+ * @three_byteswapped if @two_variant and @three_variant are equal: in that
+ * case, the corruption to @three_variant was enough to make it non-normal but
+ * not enough to change its value. */
+ g_assert_cmpvariant (one_variant, two_byteswapped);
+
+ if (g_variant_equal (two_variant, three_variant))
+ g_assert_cmpvariant (two_byteswapped, three_byteswapped);
+
+ g_variant_unref (three_byteswapped);
+ g_variant_unref (three_variant);
+ g_variant_unref (two_byteswapped);
+ g_variant_unref (two_variant);
+ g_variant_unref (one_variant);
tree_instance_free (tree);
g_free (one.data);
g_free (two.data);
+ g_free (three.data);
+ g_free (three_data_copy);
}
static void
@@ -2344,7 +2405,7 @@ test_serialiser_children (void)
static void
test_fuzz (gdouble *fuzziness)
{
- GVariantSerialised serialised;
+ GVariantSerialised serialised = { 0, };
TreeInstance *tree;
/* make an instance */
@@ -3809,6 +3870,29 @@ test_gv_byteswap (void)
}
static void
+test_gv_byteswap_non_normal_non_aligned (void)
+{
+ const guint8 data[] = { 0x02 };
+ GVariant *v = NULL;
+ GVariant *v_byteswapped = NULL;
+
+ g_test_summary ("Test that calling g_variant_byteswap() on a variant which "
+ "is in non-normal form and doesn’t need byteswapping returns "
+ "the same variant in normal form.");
+
+ v = g_variant_new_from_data (G_VARIANT_TYPE_BOOLEAN, data, sizeof (data), FALSE, NULL, NULL);
+ g_assert_false (g_variant_is_normal_form (v));
+
+ v_byteswapped = g_variant_byteswap (v);
+ g_assert_true (g_variant_is_normal_form (v_byteswapped));
+
+ g_assert_cmpvariant (v, v_byteswapped);
+
+ g_variant_unref (v);
+ g_variant_unref (v_byteswapped);
+}
+
+static void
test_parser (void)
{
TreeInstance *tree;
@@ -5107,6 +5191,38 @@ test_recursion_limits_array_in_variant (void)
g_variant_unref (wrapper_variant);
}
+/* Test that a nested array with invalid values in its offset table (which point
+ * from the inner to the outer array) is normalised successfully without
+ * looping infinitely. */
+static void
+test_normal_checking_array_offsets_overlapped (void)
+{
+ const guint8 data[] = {
+ 0x01, 0x00,
+ };
+ gsize size = sizeof (data);
+ GVariant *variant = NULL;
+ GVariant *normal_variant = NULL;
+ GVariant *expected_variant = NULL;
+
+ variant = g_variant_new_from_data (G_VARIANT_TYPE ("aay"), data, size,
+ FALSE, NULL, NULL);
+ g_assert_nonnull (variant);
+
+ normal_variant = g_variant_get_normal_form (variant);
+ g_assert_nonnull (normal_variant);
+
+ expected_variant = g_variant_new_parsed ("[@ay [], []]");
+ g_assert_cmpvariant (normal_variant, expected_variant);
+
+ g_assert_cmpmem (g_variant_get_data (normal_variant), g_variant_get_size (normal_variant),
+ g_variant_get_data (expected_variant), g_variant_get_size (expected_variant));
+
+ g_variant_unref (expected_variant);
+ g_variant_unref (normal_variant);
+ g_variant_unref (variant);
+}
+
/* Test that an array with invalidly large values in its offset table is
* normalised successfully without looping infinitely. */
static void
@@ -5131,6 +5247,127 @@ test_normal_checking_array_offsets (void)
g_variant_unref (variant);
}
+/* This is a regression test that we can't have non-normal values that take up
+ * significantly more space than the normal equivalent, by specifying the
+ * offset table entries so that array elements overlap.
+ *
+ * See https://gitlab.gnome.org/GNOME/glib/-/issues/2121#note_832242 */
+static void
+test_normal_checking_array_offsets2 (void)
+{
+ const guint8 data[] = {
+ 'h', 'i', '\0',
+ 0x03, 0x00, 0x03,
+ 0x06, 0x00, 0x06,
+ 0x09, 0x00, 0x09,
+ 0x0c, 0x00, 0x0c,
+ 0x0f, 0x00, 0x0f,
+ 0x12, 0x00, 0x12,
+ 0x15, 0x00, 0x15,
+ };
+ gsize size = sizeof (data);
+ const GVariantType *aaaaaaas = G_VARIANT_TYPE ("aaaaaaas");
+ GVariant *variant = NULL;
+ GVariant *normal_variant = NULL;
+ GVariant *expected = NULL;
+
+ variant = g_variant_new_from_data (aaaaaaas, data, size, FALSE, NULL, NULL);
+ g_assert_nonnull (variant);
+
+ normal_variant = g_variant_get_normal_form (variant);
+ g_assert_nonnull (normal_variant);
+ g_assert_cmpuint (g_variant_get_size (normal_variant), <=, size * 2);
+
+ expected = g_variant_new_parsed (
+ "[[[[[[['hi', '', ''], [], []], [], []], [], []], [], []], [], []], [], []]");
+ g_assert_cmpvariant (expected, variant);
+ g_assert_cmpvariant (expected, normal_variant);
+
+ g_variant_unref (expected);
+ g_variant_unref (normal_variant);
+ g_variant_unref (variant);
+}
+
+/* Test that an otherwise-valid serialised GVariant is considered non-normal if
+ * its offset table entries are too wide.
+ *
+ * See §2.3.6 (Framing Offsets) of the GVariant specification. */
+static void
+test_normal_checking_array_offsets_minimal_sized (void)
+{
+ GVariantBuilder builder;
+ gsize i;
+ GVariant *aay_constructed = NULL;
+ const guint8 *data = NULL;
+ guint8 *data_owned = NULL;
+ GVariant *aay_deserialised = NULL;
+ GVariant *aay_normalised = NULL;
+
+ /* Construct an array of type aay, consisting of 128 elements which are each
+ * an empty array, i.e. `[[] * 128]`. This is chosen because the inner
+ * elements are variable sized (making the outer array variable sized, so it
+ * must have an offset table), but they are also zero-sized when serialised.
+ * So the serialised representation of @aay_constructed consists entirely of
+ * its offset table, which is entirely zeroes.
+ *
+ * The array is chosen to be 128 elements long because that means offset
+ * table entries which are 1 byte long. If the elements in the array were
+ * non-zero-sized (to the extent that the overall array is ≥256 bytes long),
+ * the offset table entries would end up being 2 bytes long. */
+ g_variant_builder_init (&builder, G_VARIANT_TYPE ("aay"));
+
+ for (i = 0; i < 128; i++)
+ g_variant_builder_add_value (&builder, g_variant_new_array (G_VARIANT_TYPE_BYTE, NULL, 0));
+
+ aay_constructed = g_variant_builder_end (&builder);
+
+ /* Verify that the constructed array is in normal form, and its serialised
+ * form is `b'\0' * 128`. */
+ g_assert_true (g_variant_is_normal_form (aay_constructed));
+ g_assert_cmpuint (g_variant_n_children (aay_constructed), ==, 128);
+ g_assert_cmpuint (g_variant_get_size (aay_constructed), ==, 128);
+
+ data = g_variant_get_data (aay_constructed);
+ for (i = 0; i < g_variant_get_size (aay_constructed); i++)
+ g_assert_cmpuint (data[i], ==, 0);
+
+ /* Construct a serialised `aay` GVariant which is `b'\0' * 256`. This has to
+ * be a non-normal form of `[[] * 128]`, with 2-byte-long offset table
+ * entries, because each offset table entry has to be able to reference all of
+ * the byte boundaries in the container. All the entries in the offset table
+ * are zero, so all the elements of the array are zero-sized. */
+ data = data_owned = g_malloc0 (256);
+ aay_deserialised = g_variant_new_from_data (G_VARIANT_TYPE ("aay"),
+ data,
+ 256,
+ FALSE,
+ g_free,
+ g_steal_pointer (&data_owned));
+
+ g_assert_false (g_variant_is_normal_form (aay_deserialised));
+ g_assert_cmpuint (g_variant_n_children (aay_deserialised), ==, 128);
+ g_assert_cmpuint (g_variant_get_size (aay_deserialised), ==, 256);
+
+ data = g_variant_get_data (aay_deserialised);
+ for (i = 0; i < g_variant_get_size (aay_deserialised); i++)
+ g_assert_cmpuint (data[i], ==, 0);
+
+ /* Get its normal form. That should change the serialised size. */
+ aay_normalised = g_variant_get_normal_form (aay_deserialised);
+
+ g_assert_true (g_variant_is_normal_form (aay_normalised));
+ g_assert_cmpuint (g_variant_n_children (aay_normalised), ==, 128);
+ g_assert_cmpuint (g_variant_get_size (aay_normalised), ==, 128);
+
+ data = g_variant_get_data (aay_normalised);
+ for (i = 0; i < g_variant_get_size (aay_normalised); i++)
+ g_assert_cmpuint (data[i], ==, 0);
+
+ g_variant_unref (aay_normalised);
+ g_variant_unref (aay_deserialised);
+ g_variant_unref (aay_constructed);
+}
+
/* Test that a tuple with invalidly large values in its offset table is
* normalised successfully without looping infinitely. */
static void
@@ -5155,6 +5392,329 @@ test_normal_checking_tuple_offsets (void)
g_variant_unref (variant);
}
+/* This is a regression test that we can't have non-normal values that take up
+ * significantly more space than the normal equivalent, by specifying the
+ * offset table entries so that tuple elements overlap.
+ *
+ * See https://gitlab.gnome.org/GNOME/glib/-/issues/2121#note_838503 and
+ * https://gitlab.gnome.org/GNOME/glib/-/issues/2121#note_838513 */
+static void
+test_normal_checking_tuple_offsets2 (void)
+{
+ const GVariantType *data_type = G_VARIANT_TYPE ("(yyaiyyaiyy)");
+ const guint8 data[] = {
+ 0x12, 0x34, 0x56, 0x78, 0x01,
+ /*
+ ^───────────────────┘
+
+ ^^^^^^^^^^ 1st yy
+ ^^^^^^^^^^ 2nd yy
+ ^^^^^^^^^^ 3rd yy
+ ^^^^ Framing offsets
+ */
+
+ /* If this variant was encoded normally, it would be something like this:
+ * 0x12, 0x34, pad, pad, [array bytes], 0x56, 0x78, pad, pad, [array bytes], 0x9A, 0xBC, 0xXX
+ * ^─────────────────────────────────────────────────────┘
+ *
+ * ^^^^^^^^^^ 1st yy
+ * ^^^^^^^^^^ 2nd yy
+ * ^^^^^^^^^^ 3rd yy
+ * ^^^^ Framing offsets
+ */
+ };
+ gsize size = sizeof (data);
+ GVariant *variant = NULL;
+ GVariant *normal_variant = NULL;
+ GVariant *expected = NULL;
+
+ variant = g_variant_new_from_data (data_type, data, size, FALSE, NULL, NULL);
+ g_assert_nonnull (variant);
+
+ normal_variant = g_variant_get_normal_form (variant);
+ g_assert_nonnull (normal_variant);
+ g_assert_cmpuint (g_variant_get_size (normal_variant), <=, size * 3);
+
+ expected = g_variant_new_parsed (
+ "@(yyaiyyaiyy) (0x12, 0x34, [], 0x00, 0x00, [], 0x00, 0x00)");
+ g_assert_cmpvariant (expected, variant);
+ g_assert_cmpvariant (expected, normal_variant);
+
+ g_variant_unref (expected);
+ g_variant_unref (normal_variant);
+ g_variant_unref (variant);
+}
+
+/* This is a regression test that overlapping entries in the offset table are
+ * decoded consistently, even though they’re non-normal.
+ *
+ * See https://gitlab.gnome.org/GNOME/glib/-/issues/2121#note_910935 */
+static void
+test_normal_checking_tuple_offsets3 (void)
+{
+ /* The expected decoding of this non-normal byte stream is complex. See
+ * section 2.7.3 (Handling Non-Normal Serialised Data) of the GVariant
+ * specification.
+ *
+ * The rule “Child Values Overlapping Framing Offsets” from the specification
+ * says that the first `ay` must be decoded as `[0x01]` even though it
+ * overlaps the first byte of the offset table. However, since commit
+ * 7eedcd76f7d5b8c98fa60013e1fe6e960bf19df3, GLib explicitly doesn’t allow
+ * this as it’s exploitable. So the first `ay` must be given a default value.
+ *
+ * The second and third `ay`s must be given default values because of rule
+ * “End Boundary Precedes Start Boundary”.
+ *
+ * The `i` must be given a default value because of rule “Start or End
+ * Boundary of a Child Falls Outside the Container”.
+ */
+ const GVariantType *data_type = G_VARIANT_TYPE ("(ayayiay)");
+ const guint8 data[] = {
+ 0x01, 0x00, 0x02,
+ /*
+ ^──┘
+
+ ^^^^^^^^^^ 1st ay, bytes 0-2 (but given a default value anyway, see above)
+ 2nd ay, bytes 2-0
+ i, bytes 0-4
+ 3rd ay, bytes 4-1
+ ^^^^^^^^^^ Framing offsets
+ */
+ };
+ gsize size = sizeof (data);
+ GVariant *variant = NULL;
+ GVariant *normal_variant = NULL;
+ GVariant *expected = NULL;
+
+ variant = g_variant_new_from_data (data_type, data, size, FALSE, NULL, NULL);
+ g_assert_nonnull (variant);
+
+ g_assert_false (g_variant_is_normal_form (variant));
+
+ normal_variant = g_variant_get_normal_form (variant);
+ g_assert_nonnull (normal_variant);
+ g_assert_cmpuint (g_variant_get_size (normal_variant), <=, size * 3);
+
+ expected = g_variant_new_parsed ("@(ayayiay) ([], [], 0, [])");
+ g_assert_cmpvariant (expected, variant);
+ g_assert_cmpvariant (expected, normal_variant);
+
+ g_variant_unref (expected);
+ g_variant_unref (normal_variant);
+ g_variant_unref (variant);
+}
+
+/* This is a regression test that overlapping entries in the offset table are
+ * decoded consistently, even though they’re non-normal.
+ *
+ * See https://gitlab.gnome.org/GNOME/glib/-/issues/2121#note_910935 */
+static void
+test_normal_checking_tuple_offsets4 (void)
+{
+ /* The expected decoding of this non-normal byte stream is complex. See
+ * section 2.7.3 (Handling Non-Normal Serialised Data) of the GVariant
+ * specification.
+ *
+ * The rule “Child Values Overlapping Framing Offsets” from the specification
+ * says that the first `ay` must be decoded as `[0x01]` even though it
+ * overlaps the first byte of the offset table. However, since commit
+ * 7eedcd76f7d5b8c98fa60013e1fe6e960bf19df3, GLib explicitly doesn’t allow
+ * this as it’s exploitable. So the first `ay` must be given a default value.
+ *
+ * The second `ay` must be given a default value because of rule “End Boundary
+ * Precedes Start Boundary”.
+ *
+ * The third `ay` must be given a default value because its framing offsets
+ * overlap that of the first `ay`.
+ */
+ const GVariantType *data_type = G_VARIANT_TYPE ("(ayayay)");
+ const guint8 data[] = {
+ 0x01, 0x00, 0x02,
+ /*
+ ^──┘
+
+ ^^^^^^^^^^ 1st ay, bytes 0-2 (but given a default value anyway, see above)
+ 2nd ay, bytes 2-0
+ 3rd ay, bytes 0-1
+ ^^^^^^^^^^ Framing offsets
+ */
+ };
+ gsize size = sizeof (data);
+ GVariant *variant = NULL;
+ GVariant *normal_variant = NULL;
+ GVariant *expected = NULL;
+
+ variant = g_variant_new_from_data (data_type, data, size, FALSE, NULL, NULL);
+ g_assert_nonnull (variant);
+
+ g_assert_false (g_variant_is_normal_form (variant));
+
+ normal_variant = g_variant_get_normal_form (variant);
+ g_assert_nonnull (normal_variant);
+ g_assert_cmpuint (g_variant_get_size (normal_variant), <=, size * 3);
+
+ expected = g_variant_new_parsed ("@(ayayay) ([], [], [])");
+ g_assert_cmpvariant (expected, variant);
+ g_assert_cmpvariant (expected, normal_variant);
+
+ g_variant_unref (expected);
+ g_variant_unref (normal_variant);
+ g_variant_unref (variant);
+}
+
+/* This is a regression test that dereferencing the first element in the offset
+ * table doesn’t dereference memory before the start of the GVariant. The first
+ * element in the offset table gives the offset of the final member in the
+ * tuple (the offset table is stored in reverse), and the position of this final
+ * member is needed to check that none of the tuple members overlap with the
+ * offset table
+ *
+ * See https://gitlab.gnome.org/GNOME/glib/-/issues/2840 */
+static void
+test_normal_checking_tuple_offsets5 (void)
+{
+ /* A tuple of type (sss) in normal form would have an offset table with two
+ * entries:
+ * - The first entry (lowest index in the table) gives the offset of the
+ * third `s` in the tuple, as the offset table is reversed compared to the
+ * tuple members.
+ * - The second entry (highest index in the table) gives the offset of the
+ * second `s` in the tuple.
+ * - The offset of the first `s` in the tuple is always 0.
+ *
+ * See §2.5.4 (Structures) of the GVariant specification for details, noting
+ * that the table is only layed out this way because all three members of the
+ * tuple have non-fixed sizes.
+ *
+ * It’s not clear whether the 0xaa data of this variant is part of the strings
+ * in the tuple, or part of the offset table. It doesn’t really matter. This
+ * is a regression test to check that the code to validate the offset table
+ * doesn’t unconditionally try to access the first entry in the offset table
+ * by subtracting the table size from the end of the GVariant data.
+ *
+ * In this non-normal case, that would result in an address off the start of
+ * the GVariant data, and an out-of-bounds read, because the GVariant is one
+ * byte long, but the offset table is calculated as two bytes long (with 1B
+ * sized entries) from the tuple’s type.
+ */
+ const GVariantType *data_type = G_VARIANT_TYPE ("(sss)");
+ const guint8 data[] = { 0xaa };
+ gsize size = sizeof (data);
+ GVariant *variant = NULL;
+ GVariant *normal_variant = NULL;
+ GVariant *expected = NULL;
+
+ g_test_bug ("https://gitlab.gnome.org/GNOME/glib/-/issues/2840");
+
+ variant = g_variant_new_from_data (data_type, data, size, FALSE, NULL, NULL);
+ g_assert_nonnull (variant);
+
+ g_assert_false (g_variant_is_normal_form (variant));
+
+ normal_variant = g_variant_get_normal_form (variant);
+ g_assert_nonnull (normal_variant);
+
+ expected = g_variant_new_parsed ("('', '', '')");
+ g_assert_cmpvariant (expected, variant);
+ g_assert_cmpvariant (expected, normal_variant);
+
+ g_variant_unref (expected);
+ g_variant_unref (normal_variant);
+ g_variant_unref (variant);
+}
+
+/* Test that an otherwise-valid serialised GVariant is considered non-normal if
+ * its offset table entries are too wide.
+ *
+ * See §2.3.6 (Framing Offsets) of the GVariant specification. */
+static void
+test_normal_checking_tuple_offsets_minimal_sized (void)
+{
+ GString *type_string = NULL;
+ GVariantBuilder builder;
+ gsize i;
+ GVariant *ray_constructed = NULL;
+ const guint8 *data = NULL;
+ guint8 *data_owned = NULL;
+ GVariant *ray_deserialised = NULL;
+ GVariant *ray_normalised = NULL;
+
+ /* Construct a tuple of type (ay…ay), consisting of 129 members which are each
+ * an empty array, i.e. `([] * 129)`. This is chosen because the inner
+ * members are variable sized, so the outer tuple must have an offset table,
+ * but they are also zero-sized when serialised. So the serialised
+ * representation of @ray_constructed consists entirely of its offset table,
+ * which is entirely zeroes.
+ *
+ * The tuple is chosen to be 129 members long because that means it has 128
+ * offset table entries which are 1 byte long each. If the members in the
+ * tuple were non-zero-sized (to the extent that the overall tuple is ≥256
+ * bytes long), the offset table entries would end up being 2 bytes long.
+ *
+ * 129 members are used unlike 128 array elements in
+ * test_normal_checking_array_offsets_minimal_sized(), because the last member
+ * in a tuple never needs an offset table entry. */
+ type_string = g_string_new ("");
+ g_string_append_c (type_string, '(');
+ for (i = 0; i < 129; i++)
+ g_string_append (type_string, "ay");
+ g_string_append_c (type_string, ')');
+
+ g_variant_builder_init (&builder, G_VARIANT_TYPE (type_string->str));
+
+ for (i = 0; i < 129; i++)
+ g_variant_builder_add_value (&builder, g_variant_new_array (G_VARIANT_TYPE_BYTE, NULL, 0));
+
+ ray_constructed = g_variant_builder_end (&builder);
+
+ /* Verify that the constructed tuple is in normal form, and its serialised
+ * form is `b'\0' * 128`. */
+ g_assert_true (g_variant_is_normal_form (ray_constructed));
+ g_assert_cmpuint (g_variant_n_children (ray_constructed), ==, 129);
+ g_assert_cmpuint (g_variant_get_size (ray_constructed), ==, 128);
+
+ data = g_variant_get_data (ray_constructed);
+ for (i = 0; i < g_variant_get_size (ray_constructed); i++)
+ g_assert_cmpuint (data[i], ==, 0);
+
+ /* Construct a serialised `(ay…ay)` GVariant which is `b'\0' * 256`. This has
+ * to be a non-normal form of `([] * 129)`, with 2-byte-long offset table
+ * entries, because each offset table entry has to be able to reference all of
+ * the byte boundaries in the container. All the entries in the offset table
+ * are zero, so all the members of the tuple are zero-sized. */
+ data = data_owned = g_malloc0 (256);
+ ray_deserialised = g_variant_new_from_data (G_VARIANT_TYPE (type_string->str),
+ data,
+ 256,
+ FALSE,
+ g_free,
+ g_steal_pointer (&data_owned));
+
+ g_assert_false (g_variant_is_normal_form (ray_deserialised));
+ g_assert_cmpuint (g_variant_n_children (ray_deserialised), ==, 129);
+ g_assert_cmpuint (g_variant_get_size (ray_deserialised), ==, 256);
+
+ data = g_variant_get_data (ray_deserialised);
+ for (i = 0; i < g_variant_get_size (ray_deserialised); i++)
+ g_assert_cmpuint (data[i], ==, 0);
+
+ /* Get its normal form. That should change the serialised size. */
+ ray_normalised = g_variant_get_normal_form (ray_deserialised);
+
+ g_assert_true (g_variant_is_normal_form (ray_normalised));
+ g_assert_cmpuint (g_variant_n_children (ray_normalised), ==, 129);
+ g_assert_cmpuint (g_variant_get_size (ray_normalised), ==, 128);
+
+ data = g_variant_get_data (ray_normalised);
+ for (i = 0; i < g_variant_get_size (ray_normalised); i++)
+ g_assert_cmpuint (data[i], ==, 0);
+
+ g_variant_unref (ray_normalised);
+ g_variant_unref (ray_deserialised);
+ g_variant_unref (ray_constructed);
+ g_string_free (type_string, TRUE);
+}
+
/* Test that an empty object path is normalised successfully to the base object
* path, ‘/’. */
static void
@@ -5266,6 +5826,7 @@ main (int argc, char **argv)
g_test_add_func ("/gvariant/builder-memory", test_builder_memory);
g_test_add_func ("/gvariant/hashing", test_hashing);
g_test_add_func ("/gvariant/byteswap", test_gv_byteswap);
+ g_test_add_func ("/gvariant/byteswap/non-normal-non-aligned", test_gv_byteswap_non_normal_non_aligned);
g_test_add_func ("/gvariant/parser", test_parses);
g_test_add_func ("/gvariant/parser/integer-bounds", test_parser_integer_bounds);
g_test_add_func ("/gvariant/parser/recursion", test_parser_recursion);
@@ -5297,10 +5858,26 @@ main (int argc, char **argv)
g_test_add_func ("/gvariant/normal-checking/tuples",
test_normal_checking_tuples);
+ g_test_add_func ("/gvariant/normal-checking/array-offsets/overlapped",
+ test_normal_checking_array_offsets_overlapped);
g_test_add_func ("/gvariant/normal-checking/array-offsets",
test_normal_checking_array_offsets);
+ g_test_add_func ("/gvariant/normal-checking/array-offsets2",
+ test_normal_checking_array_offsets2);
+ g_test_add_func ("/gvariant/normal-checking/array-offsets/minimal-sized",
+ test_normal_checking_array_offsets_minimal_sized);
g_test_add_func ("/gvariant/normal-checking/tuple-offsets",
test_normal_checking_tuple_offsets);
+ g_test_add_func ("/gvariant/normal-checking/tuple-offsets2",
+ test_normal_checking_tuple_offsets2);
+ g_test_add_func ("/gvariant/normal-checking/tuple-offsets3",
+ test_normal_checking_tuple_offsets3);
+ g_test_add_func ("/gvariant/normal-checking/tuple-offsets4",
+ test_normal_checking_tuple_offsets4);
+ g_test_add_func ("/gvariant/normal-checking/tuple-offsets5",
+ test_normal_checking_tuple_offsets5);
+ g_test_add_func ("/gvariant/normal-checking/tuple-offsets/minimal-sized",
+ test_normal_checking_tuple_offsets_minimal_sized);
g_test_add_func ("/gvariant/normal-checking/empty-object-path",
test_normal_checking_empty_object_path);
diff --git a/meson.build b/meson.build
index 6ea88414e..be468c3f3 100644
--- a/meson.build
+++ b/meson.build
@@ -1,5 +1,5 @@
project('glib', 'c',
- version : '2.74.3',
+ version : '2.74.4',
# NOTE: See the policy in docs/meson-version.md before changing the Meson dependency
meson_version : '>= 0.60.0',
default_options : [
@@ -885,7 +885,7 @@ if host_system == 'qnx'
endif
# Check for futex(2)
-if cc.links('''#include <linux/futex.h>
+if cc.compiles('''#include <linux/futex.h>
#include <sys/syscall.h>
#include <unistd.h>
int main (int argc, char ** argv) {
@@ -894,6 +894,15 @@ if cc.links('''#include <linux/futex.h>
}''', name : 'futex(2) system call')
glib_conf.set('HAVE_FUTEX', 1)
endif
+if cc.compiles('''#include <linux/futex.h>
+ #include <sys/syscall.h>
+ #include <unistd.h>
+ int main (int argc, char ** argv) {
+ syscall (__NR_futex_time64, NULL, FUTEX_WAKE, FUTEX_WAIT);
+ return 0;
+ }''', name : 'futex(2) system call')
+ glib_conf.set('HAVE_FUTEX_TIME64', 1)
+endif
# Check for eventfd(2)
if cc.links('''#include <sys/eventfd.h>
diff --git a/po/LINGUAS b/po/LINGUAS
index f6dbd5bfc..c74c06d41 100644
--- a/po/LINGUAS
+++ b/po/LINGUAS
@@ -43,6 +43,7 @@ hr
hu
hy
id
+ie
is
it
ja
diff --git a/po/ab.po b/po/ab.po
index 9c3c17bb5..8317b68aa 100644
--- a/po/ab.po
+++ b/po/ab.po
@@ -1,7 +1,7 @@
msgid ""
msgstr ""
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/glib/issues\n"
-"POT-Creation-Date: 2022-10-16 12:25+0000\n"
+"POT-Creation-Date: 2022-11-24 12:35+0000\n"
"Last-Translator: Нанба Наала <naala-nanba@rambler.ru>\n"
"Language-Team: Abkhazian <daniel.abzakh@gmail.com>\n"
"Language: ab\n"
@@ -113,7 +113,7 @@ msgstr ""
#: gio/gapplication-tool.c:74 gio/gapplication-tool.c:137 gio/gdbus-tool.c:108
#: gio/gio-tool.c:226
msgid "COMMAND"
-msgstr ""
+msgstr "АДҴА"
#: gio/gapplication-tool.c:74
msgid "The command to print detailed help for"
@@ -1217,7 +1217,7 @@ msgstr ""
msgid "Not authorized to change debug settings"
msgstr ""
-#: gio/gdesktopappinfo.c:2182 gio/gdesktopappinfo.c:5119
+#: gio/gdesktopappinfo.c:2182 gio/gdesktopappinfo.c:5120
msgid "Unnamed"
msgstr "Хьӡыда"
@@ -1229,26 +1229,26 @@ msgstr ""
msgid "Unable to find terminal required for application"
msgstr ""
-#: gio/gdesktopappinfo.c:3637
+#: gio/gdesktopappinfo.c:3638
#, c-format
msgid "Can’t create user application configuration folder %s: %s"
msgstr ""
-#: gio/gdesktopappinfo.c:3641
+#: gio/gdesktopappinfo.c:3642
#, c-format
msgid "Can’t create user MIME configuration folder %s: %s"
msgstr ""
-#: gio/gdesktopappinfo.c:3883 gio/gdesktopappinfo.c:3907
+#: gio/gdesktopappinfo.c:3884 gio/gdesktopappinfo.c:3908
msgid "Application information lacks an identifier"
msgstr ""
-#: gio/gdesktopappinfo.c:4143
+#: gio/gdesktopappinfo.c:4144
#, c-format
msgid "Can’t create user desktop file %s"
msgstr ""
-#: gio/gdesktopappinfo.c:4279
+#: gio/gdesktopappinfo.c:4280
#, c-format
msgid "Custom definition for %s"
msgstr ""
@@ -1366,7 +1366,7 @@ msgstr ""
msgid "Invalid symlink value given"
msgstr ""
-#: gio/gfile.c:4163 glib/gfileutils.c:2335
+#: gio/gfile.c:4163 glib/gfileutils.c:2354
msgid "Symbolic links not supported"
msgstr ""
@@ -3041,60 +3041,60 @@ msgstr ""
msgid "Error setting symlink: file is not a symlink"
msgstr ""
-#: gio/glocalfileinfo.c:2486
+#: gio/glocalfileinfo.c:2506
#, c-format
msgid "Extra nanoseconds %d for UNIX timestamp %lld are negative"
msgstr ""
-#: gio/glocalfileinfo.c:2495
+#: gio/glocalfileinfo.c:2515
#, c-format
msgid "Extra nanoseconds %d for UNIX timestamp %lld reach 1 second"
msgstr ""
-#: gio/glocalfileinfo.c:2505
+#: gio/glocalfileinfo.c:2525
#, c-format
msgid "UNIX timestamp %lld does not fit into 64 bits"
msgstr "Аамҭалатәи адырга UNIX %lld 64 бит иакӡом"
-#: gio/glocalfileinfo.c:2516
+#: gio/glocalfileinfo.c:2536
#, fuzzy, c-format
msgid "UNIX timestamp %lld is outside of the range supported by Windows"
msgstr "Аамҭалатәи адырга UNIX %ll d иаҵанакцом Windows зыцхыраауа аҵакыра"
-#: gio/glocalfileinfo.c:2619
+#: gio/glocalfileinfo.c:2668
#, c-format
msgid "File name “%s” cannot be converted to UTF-16"
msgstr ""
-#: gio/glocalfileinfo.c:2638
+#: gio/glocalfileinfo.c:2687
#, c-format
msgid "File “%s” cannot be opened: Windows Error %lu"
msgstr ""
-#: gio/glocalfileinfo.c:2651
+#: gio/glocalfileinfo.c:2700
#, c-format
msgid "Error setting modification or access time for file “%s”: %lu"
msgstr ""
-#: gio/glocalfileinfo.c:2825
+#: gio/glocalfileinfo.c:2856
#, c-format
msgid "Error setting modification or access time: %s"
msgstr ""
-#: gio/glocalfileinfo.c:2848
+#: gio/glocalfileinfo.c:2879
msgid "SELinux context must be non-NULL"
msgstr ""
-#: gio/glocalfileinfo.c:2855
+#: gio/glocalfileinfo.c:2886
msgid "SELinux is not enabled on this system"
msgstr ""
-#: gio/glocalfileinfo.c:2865
+#: gio/glocalfileinfo.c:2896
#, c-format
msgid "Error setting SELinux context: %s"
msgstr ""
-#: gio/glocalfileinfo.c:2962
+#: gio/glocalfileinfo.c:2993
#, c-format
msgid "Setting attribute %s not supported"
msgstr ""
@@ -4809,7 +4809,7 @@ msgstr ""
msgid "Template “%s” doesn’t contain XXXXXX"
msgstr ""
-#: glib/gfileutils.c:2291 glib/gfileutils.c:2320
+#: glib/gfileutils.c:2310 glib/gfileutils.c:2339
#, c-format
msgid "Failed to read the symbolic link “%s”: %s"
msgstr ""
@@ -5512,92 +5512,92 @@ msgstr ""
msgid "Text was empty (or contained only whitespace)"
msgstr ""
-#: glib/gspawn.c:314
+#: glib/gspawn.c:310
#, c-format
msgid "Failed to read data from child process (%s)"
msgstr ""
-#: glib/gspawn.c:466
+#: glib/gspawn.c:462
#, c-format
msgid "Unexpected error in reading data from a child process (%s)"
msgstr ""
-#: glib/gspawn.c:551
+#: glib/gspawn.c:547
#, c-format
msgid "Unexpected error in waitpid() (%s)"
msgstr ""
-#: glib/gspawn.c:1170 glib/gspawn-win32.c:1488
+#: glib/gspawn.c:1166 glib/gspawn-win32.c:1488
#, c-format
msgid "Child process exited with code %ld"
msgstr ""
-#: glib/gspawn.c:1178
+#: glib/gspawn.c:1174
#, c-format
msgid "Child process killed by signal %ld"
msgstr ""
-#: glib/gspawn.c:1185
+#: glib/gspawn.c:1181
#, c-format
msgid "Child process stopped by signal %ld"
msgstr ""
-#: glib/gspawn.c:1192
+#: glib/gspawn.c:1188
#, c-format
msgid "Child process exited abnormally"
msgstr ""
-#: glib/gspawn.c:1885 glib/gspawn-win32.c:393 glib/gspawn-win32.c:401
+#: glib/gspawn.c:1867 glib/gspawn-win32.c:393 glib/gspawn-win32.c:401
#, c-format
msgid "Failed to read from child pipe (%s)"
msgstr "Иаҿыгоу аканал (%s) аҟынтә аиагара залымшахеит"
-#: glib/gspawn.c:2248
+#: glib/gspawn.c:2230
#, c-format
msgid "Failed to spawn child process “%s” (%s)"
msgstr ""
-#: glib/gspawn.c:2365
+#: glib/gspawn.c:2347
#, c-format
msgid "Failed to fork (%s)"
msgstr ""
-#: glib/gspawn.c:2525 glib/gspawn-win32.c:424
+#: glib/gspawn.c:2507 glib/gspawn-win32.c:424
#, c-format
msgid "Failed to change to directory “%s” (%s)"
msgstr ""
-#: glib/gspawn.c:2535
+#: glib/gspawn.c:2517
#, c-format
msgid "Failed to execute child process “%s” (%s)"
msgstr ""
-#: glib/gspawn.c:2545
+#: glib/gspawn.c:2527
#, c-format
msgid "Failed to open file to remap file descriptor (%s)"
msgstr ""
-#: glib/gspawn.c:2553
+#: glib/gspawn.c:2535
#, c-format
msgid "Failed to duplicate file descriptor for child process (%s)"
msgstr ""
-#: glib/gspawn.c:2562
+#: glib/gspawn.c:2544
#, c-format
msgid "Failed to fork child process (%s)"
msgstr ""
-#: glib/gspawn.c:2570
+#: glib/gspawn.c:2552
#, c-format
msgid "Failed to close file descriptor for child process (%s)"
msgstr ""
-#: glib/gspawn.c:2578
+#: glib/gspawn.c:2560
#, c-format
msgid "Unknown error executing child process “%s”"
msgstr ""
-#: glib/gspawn.c:2602
+#: glib/gspawn.c:2584
#, c-format
msgid "Failed to read enough data from child pid pipe (%s)"
msgstr ""
@@ -5961,868 +5961,3 @@ msgstr ""
#, c-format
msgid "%.1f EB"
msgstr ""
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-#, fuzzy
diff --git a/po/be.po b/po/be.po
index 2031ab5f9..5fc993e2f 100644
--- a/po/be.po
+++ b/po/be.po
@@ -3,287 +3,533 @@
msgid ""
msgstr ""
"Project-Id-Version: glib.master\n"
-"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?"
-"product=glib&keywords=I18N+L10N&component=general\n"
-"POT-Creation-Date: 2013-09-11 19:37+0000\n"
-"PO-Revision-Date: 2012-09-14 13:26+0300\n"
-"Last-Translator: Ihar Hrachyshka <ihar.hrachyshka@gmail.com>\n"
+"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/glib/issues\n"
+"POT-Creation-Date: 2022-12-12 00:16+0000\n"
+"PO-Revision-Date: 2022-12-16 01:48+0300\n"
+"Last-Translator: Yuras Shumovich <shumovichy@gmail.com>\n"
"Language-Team: Belarusian <i18n-bel-gnome@googlegroups.com>\n"
"Language: be\n"
"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=utf-8\n"
+"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
-"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
-"X-Generator: Virtaal 0.7.0\n"
+"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
+"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
+"X-Generator: Poedit 3.2.2\n"
"X-Project-Style: gnome\n"
-#: ../gio/gbufferedinputstream.c:424 ../gio/gbufferedinputstream.c:503
-#: ../gio/ginputstream.c:174 ../gio/ginputstream.c:366
-#: ../gio/ginputstream.c:604 ../gio/ginputstream.c:822
-#: ../gio/goutputstream.c:192 ../gio/goutputstream.c:721
-#: ../gio/gpollableinputstream.c:207 ../gio/gpollableoutputstream.c:208
+#: gio/gappinfo.c:335
+msgid "Setting default applications not supported yet"
+msgstr ""
+
+#: gio/gappinfo.c:368
+msgid "Setting application as last used for type not supported yet"
+msgstr ""
+
+#: gio/gappinfo.c:810
+#, c-format
+msgid "Failed to find default application for content type ‘%s’"
+msgstr ""
+
+#: gio/gappinfo.c:870
+#, c-format
+msgid "Failed to find default application for URI Scheme ‘%s’"
+msgstr ""
+
+#: gio/gapplication.c:502
+msgid "GApplication options"
+msgstr "Параметры GApplication"
+
+#: gio/gapplication.c:502
+msgid "Show GApplication options"
+msgstr "Паказаць параметры GApplication"
+
+#: gio/gapplication.c:547
+msgid "Enter GApplication service mode (use from D-Bus service files)"
+msgstr ""
+"Запусціць GApplication у рэжыме сэрвісу (выкарыстоўваць файлы сэрвісу D-Bus)"
+
+#: gio/gapplication.c:559
+msgid "Override the application’s ID"
+msgstr "Перавызначыць ідэнтыфікатар праграмы"
+
+#: gio/gapplication.c:571
+msgid "Replace the running instance"
+msgstr "Замяніць запушчаны экзэмпляр"
+
+#: gio/gapplication-tool.c:47 gio/gapplication-tool.c:48 gio/gio-tool.c:229
+#: gio/gresource-tool.c:496 gio/gsettings-tool.c:586
+msgid "Print help"
+msgstr "Вывесці даведку"
+
+#: gio/gapplication-tool.c:49 gio/gresource-tool.c:497 gio/gresource-tool.c:565
+msgid "[COMMAND]"
+msgstr "[КАМАНДА]"
+
+#: gio/gapplication-tool.c:51 gio/gio-tool.c:230
+msgid "Print version"
+msgstr "Вывесці нумар версіі"
+
+#: gio/gapplication-tool.c:52 gio/gsettings-tool.c:592
+msgid "Print version information and exit"
+msgstr "Вывесці звесткі пра версію і выйсці"
+
+#: gio/gapplication-tool.c:55
+msgid "List applications"
+msgstr "Паказаць спіс праграм"
+
+#: gio/gapplication-tool.c:56
+msgid "List the installed D-Bus activatable applications (by .desktop files)"
+msgstr ""
+"Паказаць спіс усталяваных праграм, прыдатных для актывацыі праз D-Bus (праз "
+"файлы .desktop)"
+
+#: gio/gapplication-tool.c:59
+msgid "Launch an application"
+msgstr "Запусціць праграму"
+
+#: gio/gapplication-tool.c:60
+msgid "Launch the application (with optional files to open)"
+msgstr "Запусціць праграму (з адкрыццём неабавязковых файлаў)"
+
+#: gio/gapplication-tool.c:61
+msgid "APPID [FILE…]"
+msgstr "IDПРАГРАМЫ [ФАЙЛ…]"
+
+#: gio/gapplication-tool.c:63
+msgid "Activate an action"
+msgstr "Актываваць дзеянне"
+
+#: gio/gapplication-tool.c:64
+msgid "Invoke an action on the application"
+msgstr "Выклікаць дзеянне праграмы"
+
+#: gio/gapplication-tool.c:65
+msgid "APPID ACTION [PARAMETER]"
+msgstr "IDПРАГРАМЫ ДЗЕЯННЕ [ПАРАМЕТР]"
+
+#: gio/gapplication-tool.c:67
+msgid "List available actions"
+msgstr "Паказаць спіс даступных дзеянняў"
+
+#: gio/gapplication-tool.c:68
+msgid "List static actions for an application (from .desktop file)"
+msgstr "Паказаць спіс дзеянняў для праграмы (з файла .desktop)"
+
+#: gio/gapplication-tool.c:69 gio/gapplication-tool.c:75
+msgid "APPID"
+msgstr "IDПРАГРАМЫ"
+
+#: gio/gapplication-tool.c:74 gio/gapplication-tool.c:137 gio/gdbus-tool.c:108
+#: gio/gio-tool.c:226
+msgid "COMMAND"
+msgstr "КАМАНДА"
+
+#: gio/gapplication-tool.c:74
+msgid "The command to print detailed help for"
+msgstr "Каманда для якой трэба вывесці падрабязную даведку"
+
+#: gio/gapplication-tool.c:75
+msgid "Application identifier in D-Bus format (eg: org.example.viewer)"
+msgstr "Ідэнтыфікатар праграмы ў фармаце D-Bus (напр. org.example.viewer)"
+
+#: gio/gapplication-tool.c:76 gio/glib-compile-resources.c:822
+#: gio/glib-compile-resources.c:828 gio/glib-compile-resources.c:857
+#: gio/gresource-tool.c:503 gio/gresource-tool.c:569
+msgid "FILE"
+msgstr "ФАЙЛ"
+
+#: gio/gapplication-tool.c:76
+msgid "Optional relative or absolute filenames, or URIs to open"
+msgstr ""
+"Неабавязковая адносная або абсалютная назва файла ці URI, што трэба адкрыць"
+
+#: gio/gapplication-tool.c:77
+msgid "ACTION"
+msgstr "ДЗЕЯННЕ"
+
+#: gio/gapplication-tool.c:77
+msgid "The action name to invoke"
+msgstr "Назва дзеяння, якое трэба выклікаць"
+
+#: gio/gapplication-tool.c:78
+msgid "PARAMETER"
+msgstr "ПАРАМЕТР"
+
+#: gio/gapplication-tool.c:78
+msgid "Optional parameter to the action invocation, in GVariant format"
+msgstr "Неабавязковы параметр, які выклікае дзеянне (у фармаце GVariant)"
+
+#: gio/gapplication-tool.c:100 gio/gresource-tool.c:534
+#: gio/gsettings-tool.c:678
+#, c-format
+msgid ""
+"Unknown command %s\n"
+"\n"
+msgstr ""
+"Невядомая каманда %s\n"
+"\n"
+
+#: gio/gapplication-tool.c:105
+msgid "Usage:\n"
+msgstr "Выкарыстанне:\n"
+
+#: gio/gapplication-tool.c:118 gio/gresource-tool.c:559
+#: gio/gsettings-tool.c:713
+msgid "Arguments:\n"
+msgstr "Аргументы:\n"
+
+#: gio/gapplication-tool.c:137 gio/gio-tool.c:226
+msgid "[ARGS…]"
+msgstr "[АРГУМЕНТЫ…]"
+
+#: gio/gapplication-tool.c:138
+#, c-format
+msgid "Commands:\n"
+msgstr "Каманды:\n"
+
+#. Translators: do not translate 'help', but please translate 'COMMAND'.
+#: gio/gapplication-tool.c:150
+#, c-format
+msgid ""
+"Use “%s help COMMAND” to get detailed help.\n"
+"\n"
+msgstr ""
+"Выкарыстоўвайце «%s help КАМАНДА», каб атрымаць падрабязную даведку.\n"
+"\n"
+
+#: gio/gapplication-tool.c:169
+#, c-format
+msgid ""
+"%s command requires an application id to directly follow\n"
+"\n"
+msgstr ""
+"%s каманда патрабуе id праграмы\n"
+"\n"
+
+#: gio/gapplication-tool.c:175
+#, c-format
+msgid "invalid application id: “%s”\n"
+msgstr "няправільны ідэнтыфікатар праграмы: «%s»\n"
+
+#. Translators: %s is replaced with a command name like 'list-actions'
+#: gio/gapplication-tool.c:186
+#, c-format
+msgid ""
+"“%s” takes no arguments\n"
+"\n"
+msgstr ""
+"«%s» не прымае аргументаў\n"
+"\n"
+
+#: gio/gapplication-tool.c:270
+#, c-format
+msgid "unable to connect to D-Bus: %s\n"
+msgstr "немагчыма падлучыццца да D-Bus: %s\n"
+
+#: gio/gapplication-tool.c:290
+#, c-format
+msgid "error sending %s message to application: %s\n"
+msgstr "памылка адпраўкі паведамлення %s праграме: %s\n"
+
+#: gio/gapplication-tool.c:321
+msgid "action name must be given after application id\n"
+msgstr "назва дзеяння павінна падавацца пасля ідэнтыфікатара праграмы\n"
+
+#: gio/gapplication-tool.c:329
+#, c-format
+msgid ""
+"invalid action name: “%s”\n"
+"action names must consist of only alphanumerics, “-” and “.”\n"
+msgstr ""
+"няправільная назва дзеяння: “%s”\n"
+"назва дзеяння павінна ўтрымліваць толькі літары, лічбы, сімвалы «-» і «.»\n"
+
+#: gio/gapplication-tool.c:348
+#, c-format
+msgid "error parsing action parameter: %s\n"
+msgstr "памылка разбору параметра дзеяння: %s\n"
+
+#: gio/gapplication-tool.c:360
+msgid "actions accept a maximum of one parameter\n"
+msgstr "дзеянні прымаюць не больш за адзін параметр\n"
+
+#: gio/gapplication-tool.c:415
+msgid "list-actions command takes only the application id"
+msgstr "каманда list-actions прымае толькі ідэнтыфікатар праграмы"
+
+#: gio/gapplication-tool.c:425
+#, c-format
+msgid "unable to find desktop file for application %s\n"
+msgstr "немагчыма знайсці desktop-файл для праграмы %s\n"
+
+#: gio/gapplication-tool.c:470
+#, c-format
+msgid ""
+"unrecognised command: %s\n"
+"\n"
+msgstr ""
+"незразумелая каманда: %s\n"
+"\n"
+
+#: gio/gbufferedinputstream.c:422 gio/gbufferedinputstream.c:500
+#: gio/ginputstream.c:181 gio/ginputstream.c:381 gio/ginputstream.c:650
+#: gio/ginputstream.c:1052 gio/goutputstream.c:225 gio/goutputstream.c:1051
+#: gio/gpollableinputstream.c:207 gio/gpollableoutputstream.c:279
#, c-format
msgid "Too large count value passed to %s"
-msgstr "Надта вялікае значэнне перададзена ў %s"
+msgstr "У %s перададзена занадта вялікае колькаснае значэнне"
-#: ../gio/gbufferedinputstream.c:896 ../gio/gbufferedoutputstream.c:577
-#: ../gio/gdataoutputstream.c:564
+#: gio/gbufferedinputstream.c:893 gio/gbufferedoutputstream.c:577
+#: gio/gdataoutputstream.c:564
msgid "Seek not supported on base stream"
msgstr "Базавы струмень не падтрымлівае пракрутку"
-#: ../gio/gbufferedinputstream.c:942
+#: gio/gbufferedinputstream.c:940
msgid "Cannot truncate GBufferedInputStream"
msgstr "Немагчыма абрэзаць GBufferedInputStream"
-#: ../gio/gbufferedinputstream.c:987 ../gio/ginputstream.c:1012
-#: ../gio/giostream.c:280 ../gio/goutputstream.c:1323
+#: gio/gbufferedinputstream.c:985 gio/ginputstream.c:1241 gio/giostream.c:302
+#: gio/goutputstream.c:2200
msgid "Stream is already closed"
msgstr "Струмень ужо закрыты"
-#: ../gio/gbufferedoutputstream.c:614 ../gio/gdataoutputstream.c:594
+#: gio/gbufferedoutputstream.c:614 gio/gdataoutputstream.c:594
msgid "Truncate not supported on base stream"
msgstr "Базавы струмень не падтрымлівае абразання"
-#: ../gio/gcancellable.c:314 ../gio/gdbusconnection.c:1897
-#: ../gio/gdbusconnection.c:1989 ../gio/gdbusprivate.c:1421
-#: ../gio/glocalfile.c:2178 ../gio/gsimpleasyncresult.c:843
-#: ../gio/gsimpleasyncresult.c:869
+#: gio/gcancellable.c:319 gio/gdbusconnection.c:1859 gio/gdbusprivate.c:1420
+#: gio/gsimpleasyncresult.c:873 gio/gsimpleasyncresult.c:899
#, c-format
msgid "Operation was cancelled"
-msgstr "Дзеянне скасавана"
+msgstr "Аперацыя скасавана"
-#: ../gio/gcharsetconverter.c:262
+#: gio/gcharsetconverter.c:262
msgid "Invalid object, not initialized"
-msgstr "Хібны, неініцыяваны аб'ект"
+msgstr "Няправільны аб'ект, не ініцыялізавана"
-#: ../gio/gcharsetconverter.c:283 ../gio/gcharsetconverter.c:311
+#: gio/gcharsetconverter.c:283 gio/gcharsetconverter.c:311
msgid "Incomplete multibyte sequence in input"
msgstr "Абрэзаная многабайтавая паслядоўнасць на ўваходзе"
-#: ../gio/gcharsetconverter.c:317 ../gio/gcharsetconverter.c:326
+#: gio/gcharsetconverter.c:317 gio/gcharsetconverter.c:326
msgid "Not enough space in destination"
-msgstr "У месцы прызначэння не стае вольнай прасторы"
+msgstr "У месцы прызначэння недастаткова вольнай прасторы"
-#: ../gio/gcharsetconverter.c:344 ../gio/gdatainputstream.c:849
-#: ../gio/gdatainputstream.c:1259 ../glib/gconvert.c:467
-#: ../glib/gconvert.c:859 ../glib/giochannel.c:1586 ../glib/giochannel.c:1628
-#: ../glib/giochannel.c:2472 ../glib/gutf8.c:833 ../glib/gutf8.c:1284
+#: gio/gcharsetconverter.c:344 gio/gdatainputstream.c:850
+#: gio/gdatainputstream.c:1268 glib/gconvert.c:451 glib/gconvert.c:883
+#: glib/giochannel.c:1576 glib/giochannel.c:1618 glib/giochannel.c:2473
+#: glib/gutf8.c:892 glib/gutf8.c:1346
msgid "Invalid byte sequence in conversion input"
-msgstr "Хібная паслядоўнасць байтаў ва ўводзе на пераўтварэнне"
+msgstr "Няправільная паслядоўнасць байтаў ва ўводзе на пераўтварэнне"
-#: ../gio/gcharsetconverter.c:349 ../glib/gconvert.c:475
-#: ../glib/gconvert.c:784 ../glib/giochannel.c:1593 ../glib/giochannel.c:2484
+#: gio/gcharsetconverter.c:349 glib/gconvert.c:459 glib/gconvert.c:797
+#: glib/giochannel.c:1583 glib/giochannel.c:2485
#, c-format
msgid "Error during conversion: %s"
msgstr "Падчас пераўтварэння ўзнікла памылка: %s"
-#: ../gio/gcharsetconverter.c:446 ../gio/gsocket.c:993
+#: gio/gcharsetconverter.c:447 gio/gsocket.c:1151
msgid "Cancellable initialization not supported"
-msgstr "Ініцыяцыя з магчымасцю скасавання не падтрымліваецца"
+msgstr "Ініцыялізацыя з магчымасцю скасавання не падтрымліваецца"
-#: ../gio/gcharsetconverter.c:457 ../glib/gconvert.c:347
-#: ../glib/giochannel.c:1414
+#: gio/gcharsetconverter.c:458 glib/gconvert.c:324 glib/giochannel.c:1404
#, c-format
-msgid "Conversion from character set '%s' to '%s' is not supported"
-msgstr "Пераўтварэнне даных са знаказбору \"%s\" у \"%s\" не падтрымліваецца"
+msgid "Conversion from character set “%s” to “%s” is not supported"
+msgstr "Пераўтварэнне з набору сімвалаў «%s» у «%s» не падтрымліваецца"
-#: ../gio/gcharsetconverter.c:461 ../glib/gconvert.c:351
+#: gio/gcharsetconverter.c:462 glib/gconvert.c:328
#, c-format
-msgid "Could not open converter from '%s' to '%s'"
-msgstr "Не ўдалося адкрыць пераўтваральнік з \"%s\" у \"%s\""
+msgid "Could not open converter from “%s” to “%s”"
+msgstr "Не ўдалося адкрыць канвертар з «%s» у «%s»"
-#: ../gio/gcontenttype.c:335
+#: gio/gcontenttype.c:472
#, c-format
msgid "%s type"
msgstr "Тып %s"
-#: ../gio/gcontenttype-win32.c:162
+#: gio/gcontenttype-win32.c:198
msgid "Unknown type"
msgstr "Невядомы тып"
-#: ../gio/gcontenttype-win32.c:163
+#: gio/gcontenttype-win32.c:200
#, c-format
msgid "%s filetype"
msgstr "Тып файлаў %s"
-#: ../gio/gcredentials.c:264 ../gio/gcredentials.c:528
+#: gio/gcredentials.c:337
+msgid "GCredentials contains invalid data"
+msgstr "GCredentials змяшчае няправільныя даныя"
+
+#: gio/gcredentials.c:397 gio/gcredentials.c:688
msgid "GCredentials is not implemented on this OS"
-msgstr "Механізм GCredentials адсутнічае для гэтай аперацыйнай сістэмы"
+msgstr "GCredentials не рэалізаваны для гэтай аперацыйнай сістэмы"
-#: ../gio/gcredentials.c:438
+#: gio/gcredentials.c:552 gio/gcredentials.c:570
msgid "There is no GCredentials support for your platform"
-msgstr "Ваша праграмная платформа не падтрымлівае механізму GCredentials"
+msgstr "На вашай платформе GCredentials не падтрымліваецца"
-#: ../gio/gcredentials.c:480
+#: gio/gcredentials.c:628
msgid "GCredentials does not contain a process ID on this OS"
msgstr ""
"GCredentials не змяшчаюць ідэнтыфікатара працэсу для гэтай аперацыйнай "
"сістэмы"
-#: ../gio/gdatainputstream.c:306
+#: gio/gcredentials.c:682
+msgid "Credentials spoofing is not possible on this OS"
+msgstr "Падмена ўліковых даных немагчыма на гэтай аперацыйнай сістэме"
+
+#: gio/gdatainputstream.c:306
msgid "Unexpected early end-of-stream"
msgstr "Нечаканы заўчасны канец струменя"
-#: ../gio/gdbusaddress.c:150 ../gio/gdbusaddress.c:238
-#: ../gio/gdbusaddress.c:319
+#: gio/gdbusaddress.c:164 gio/gdbusaddress.c:238 gio/gdbusaddress.c:327
#, c-format
-msgid "Unsupported key '%s' in address entry '%s'"
-msgstr "Невядомы ключ \"%s\" у адрасе \"%s\""
+msgid "Unsupported key “%s” in address entry “%s”"
+msgstr ""
-#: ../gio/gdbusaddress.c:177
+#: gio/gdbusaddress.c:177
+#, c-format
+msgid "Meaningless key/value pair combination in address entry “%s”"
+msgstr ""
+
+#: gio/gdbusaddress.c:186
#, c-format
msgid ""
-"Address '%s' is invalid (need exactly one of path, tmpdir or abstract keys)"
+"Address “%s” is invalid (need exactly one of path, dir, tmpdir, or abstract "
+"keys)"
msgstr ""
-"Адрас \"%s\" мае хібу (трэба вызначыць толькі адзін з ключоў: сцежку, часовы "
-"каталог або абстрактны сокет)"
-#: ../gio/gdbusaddress.c:190
+#: gio/gdbusaddress.c:253 gio/gdbusaddress.c:264 gio/gdbusaddress.c:279
+#: gio/gdbusaddress.c:342 gio/gdbusaddress.c:353
#, c-format
-msgid "Meaningless key/value pair combination in address entry '%s'"
-msgstr "Бессэнсоўная пара ключ-значэнне ў адрасе \"%s\""
+msgid "Error in address “%s” — the “%s” attribute is malformed"
+msgstr "Памылка ў адрасе «%s» — атрыбут «%s» мае няправільны фармат"
-#: ../gio/gdbusaddress.c:253 ../gio/gdbusaddress.c:334
+#: gio/gdbusaddress.c:423 gio/gdbusaddress.c:682
#, c-format
-msgid "Error in address '%s' - the port attribute is malformed"
-msgstr "Памылка ў адрасе \"%s\": хібны атрыбут порта"
+msgid "Unknown or unsupported transport “%s” for address “%s”"
+msgstr ""
-#: ../gio/gdbusaddress.c:264 ../gio/gdbusaddress.c:345
+#: gio/gdbusaddress.c:467
#, c-format
-msgid "Error in address '%s' - the family attribute is malformed"
-msgstr "Памылка ў адрасе \"%s\": хібны атрыбут пратакола"
+msgid "Address element “%s” does not contain a colon (:)"
+msgstr ""
-#: ../gio/gdbusaddress.c:454
+#: gio/gdbusaddress.c:476
#, c-format
-msgid "Address element '%s' does not contain a colon (:)"
-msgstr "Элемент адрасу \"%s\" не змяшчае двукроп'я (:)"
+msgid "Transport name in address element “%s” must not be empty"
+msgstr ""
-#: ../gio/gdbusaddress.c:475
+#: gio/gdbusaddress.c:497
#, c-format
msgid ""
-"Key/Value pair %d, '%s', in address element '%s' does not contain an equal "
+"Key/Value pair %d, “%s”, in address element “%s” does not contain an equal "
"sign"
msgstr ""
-"Пара ключ-значэнне %d, \"%s\" (у элеменце адрасу \"%s\") не змяшчае знака "
-"роўнасці"
-#: ../gio/gdbusaddress.c:489
+#: gio/gdbusaddress.c:508
#, c-format
msgid ""
-"Error unescaping key or value in Key/Value pair %d, '%s', in address element "
-"'%s'"
+"Key/Value pair %d, “%s”, in address element “%s” must not have an empty key"
msgstr ""
-"Памылка скасавання экранавання для ключа або яго значэння ў пары %d, \"%s\", "
-"для элемента адрасу \"%s\""
-#: ../gio/gdbusaddress.c:567
+#: gio/gdbusaddress.c:522
#, c-format
msgid ""
-"Error in address '%s' - the unix transport requires exactly one of the keys "
-"'path' or 'abstract' to be set"
+"Error unescaping key or value in Key/Value pair %d, “%s”, in address element "
+"“%s”"
msgstr ""
-"Памылка ў адрасе \"%s\": unix-транспарт вымагае дакладна толькі аднаго з "
-"ключоў \"path\" (сцежка) або \"abstract\" (абстрактны адрас)"
-#: ../gio/gdbusaddress.c:603
+#: gio/gdbusaddress.c:590
#, c-format
-msgid "Error in address '%s' - the host attribute is missing or malformed"
-msgstr "Памылка ў адрасе \"%s\": атрыбут азначэння машыны адсутнічае або хібны"
+msgid ""
+"Error in address “%s” — the unix transport requires exactly one of the keys "
+"“path” or “abstract” to be set"
+msgstr ""
+"Памылка ў адрасе «%s» — транспарт unix патрабуе задаць толькі адзін з "
+"ключоў, «path» або «abstract»"
-#: ../gio/gdbusaddress.c:617
+#: gio/gdbusaddress.c:625
#, c-format
-msgid "Error in address '%s' - the port attribute is missing or malformed"
-msgstr "Памылка ў адрасе \"%s\": атрыбут азначэння порта адсутнічае або хібны"
+msgid "Error in address “%s” — the host attribute is missing or malformed"
+msgstr ""
+"Памылка ў адрасе «%s» — атрыбут хоста адсутнічае або мае няправільны фармат"
-#: ../gio/gdbusaddress.c:631
+#: gio/gdbusaddress.c:639
#, c-format
-msgid "Error in address '%s' - the noncefile attribute is missing or malformed"
+msgid "Error in address “%s” — the port attribute is missing or malformed"
msgstr ""
-"Памылка ў адрасе \"%s\": атрыбут азначэння файла таямніцы (\"noncefile\") "
-"адсутнічае або хібны"
-
-#: ../gio/gdbusaddress.c:652
-msgid "Error auto-launching: "
-msgstr "Памылка аўтазапуску: "
+"Памылка ў адрасе «%s» — атрыбут порта адсутнічае або мае няправільны фармат"
-#: ../gio/gdbusaddress.c:660
+#: gio/gdbusaddress.c:653
#, c-format
-msgid "Unknown or unsupported transport '%s' for address '%s'"
+msgid "Error in address “%s” — the noncefile attribute is missing or malformed"
msgstr ""
-"Невядомы транспарт або транспарт, які не абслугоўваецца, (\"%s\") для адрасу "
-"\"%s\""
+"Памылка ў адрасе «%s» — атрыбут noncefile адсутнічае або мае няправільны "
+"фармат"
-#: ../gio/gdbusaddress.c:696
+#: gio/gdbusaddress.c:674
+msgid "Error auto-launching: "
+msgstr "Памылка аўтазапуску: "
+
+#: gio/gdbusaddress.c:727
#, c-format
-msgid "Error opening nonce file '%s': %s"
-msgstr "Памылка адкрыцця файла таямніцы (\"nonce\") \"%s\": %s"
+msgid "Error opening nonce file “%s”: %s"
+msgstr "Памылка адкрыцця nonce-файла «%s»: %s"
-#: ../gio/gdbusaddress.c:714
+#: gio/gdbusaddress.c:746
#, c-format
-msgid "Error reading from nonce file '%s': %s"
-msgstr "Памылка чытання з файла таямніцы (\"nonce\") \"%s\": %s"
+msgid "Error reading from nonce file “%s”: %s"
+msgstr "Памылка чытання з nonce-файла «%s»: %s"
-#: ../gio/gdbusaddress.c:723
+#: gio/gdbusaddress.c:755
#, c-format
-msgid "Error reading from nonce file '%s', expected 16 bytes, got %d"
-msgstr ""
-"Памылка чытання з файла таямніцы (\"nonce\") \"%s\": чакалі 16 байтаў, а "
-"атрымалі %d"
+msgid "Error reading from nonce file “%s”, expected 16 bytes, got %d"
+msgstr "Памылка чытання з nonce-файла «%s», чакалася 16 байт, атрымана %d"
-#: ../gio/gdbusaddress.c:741
+#: gio/gdbusaddress.c:773
#, c-format
-msgid "Error writing contents of nonce file '%s' to stream:"
-msgstr ""
-"Памылка перасылкі змесціва файла таямніцы (\"nonce\") \"%s\" у струмень:"
+msgid "Error writing contents of nonce file “%s” to stream:"
+msgstr "Памылка падчас запісу зместу nonce-файла «%s» у струмень:"
-#: ../gio/gdbusaddress.c:960
+#: gio/gdbusaddress.c:988
msgid "The given address is empty"
-msgstr "Гэты адрас пусты"
+msgstr "Указаны адрас пусты"
-#: ../gio/gdbusaddress.c:1030
+#: gio/gdbusaddress.c:1101
#, c-format
-msgid "Cannot spawn a message bus when setuid"
-msgstr "Немагчыма стварыць шыну апавяшчэння у рэжыме setuid"
+msgid "Cannot spawn a message bus when AT_SECURE is set"
+msgstr ""
-#: ../gio/gdbusaddress.c:1037
+#: gio/gdbusaddress.c:1108
msgid "Cannot spawn a message bus without a machine-id: "
msgstr "Немагчыма стварыць шыну апавяшчэння без ідэнтыфікатара машыны: "
-#: ../gio/gdbusaddress.c:1079
-#, c-format
-msgid "Error spawning command line '%s': "
-msgstr "Памылка запуску праграмы \"%s\": "
-
-#: ../gio/gdbusaddress.c:1296
+#: gio/gdbusaddress.c:1115
#, c-format
-msgid "(Type any character to close this window)\n"
-msgstr "(Увядзіце любы знак, каб закрыць гэта акно)\n"
+msgid "Cannot autolaunch D-Bus without X11 $DISPLAY"
+msgstr ""
-#: ../gio/gdbusaddress.c:1429
+#: gio/gdbusaddress.c:1157
#, c-format
-msgid "Session dbus not running, and autolaunch failed"
+msgid "Error spawning command line “%s”: "
msgstr ""
-"DBUS-магістраль сеанса не запушчана, але таксама не ўдалося аўтаматычна "
-"запусціць новую"
-#: ../gio/gdbusaddress.c:1450
+#: gio/gdbusaddress.c:1226
#, c-format
msgid "Cannot determine session bus address (not implemented for this OS)"
msgstr ""
"Немагчыма вызначыць адрас сеансавай магістралі (такая здольнасць не "
"рэалізаваная для вашай аперацыйнай сістэмы)"
-#: ../gio/gdbusaddress.c:1549 ../gio/gdbusconnection.c:6908
+#: gio/gdbusaddress.c:1375 gio/gdbusconnection.c:7321
#, c-format
msgid ""
"Cannot determine bus address from DBUS_STARTER_BUS_TYPE environment variable "
-"- unknown value '%s'"
+"— unknown value “%s”"
msgstr ""
-"Не ўдалося вызначыць адрас магістралі апавяшчэнняў са зменнай асяроддзя "
-"DBUS_STARTER_BUS_TYPE. Зменная мае невядомае значэнне \"%s\""
-#: ../gio/gdbusaddress.c:1558 ../gio/gdbusconnection.c:6917
+#: gio/gdbusaddress.c:1384 gio/gdbusconnection.c:7330
msgid ""
"Cannot determine bus address because the DBUS_STARTER_BUS_TYPE environment "
"variable is not set"
@@ -291,20 +537,20 @@ msgstr ""
"Не ўдалося вызначыць адрас магістралі апавяшчэнняў, бо зменная асяроддзя "
"DBUS_STARTER_BUS_TYPE не настаўлена"
-#: ../gio/gdbusaddress.c:1568
+#: gio/gdbusaddress.c:1394
#, c-format
msgid "Unknown bus type %d"
msgstr "Невядомы тып магістралі %d"
-#: ../gio/gdbusauth.c:295
+#: gio/gdbusauth.c:294
msgid "Unexpected lack of content trying to read a line"
msgstr "Нечакана не хапіла змесціва для прачытання радка"
-#: ../gio/gdbusauth.c:339
+#: gio/gdbusauth.c:338
msgid "Unexpected lack of content trying to (safely) read a line"
msgstr "Нечакана не хапіла змесціва для бяспечнага прачытання радка"
-#: ../gio/gdbusauth.c:510
+#: gio/gdbusauth.c:482
#, c-format
msgid ""
"Exhausted all available authentication mechanisms (tried: %s) (available: %s)"
@@ -312,197 +558,215 @@ msgstr ""
"Усе наяўныя механізмы праверкі тоеснасці вычарпаны (былі спробы: %s) "
"(наяўна: %s)"
-#: ../gio/gdbusauth.c:1172
+#: gio/gdbusauth.c:1178
+msgid "User IDs must be the same for peer and server"
+msgstr ""
+
+#: gio/gdbusauth.c:1190
msgid "Cancelled via GDBusAuthObserver::authorize-authenticated-peer"
msgstr "Скасавана праз GDBusAuthObserver::authorize-authenticated-peer"
-#: ../gio/gdbusauthmechanismsha1.c:262
+#: gio/gdbusauthmechanismsha1.c:303
#, c-format
-msgid "Error when getting information for directory '%s': %s"
-msgstr "Памылка пры зборы звестак аб каталогу \"%s\": %s"
+msgid "Error when getting information for directory “%s”: %s"
+msgstr ""
-#: ../gio/gdbusauthmechanismsha1.c:274
+#: gio/gdbusauthmechanismsha1.c:318
#, c-format
msgid ""
-"Permissions on directory '%s' are malformed. Expected mode 0700, got 0%o"
+"Permissions on directory “%s” are malformed. Expected mode 0700, got 0%o"
msgstr ""
-"Дазволы на каталог \"%s\" хібныя. Чакалі рэжым дазволаў 0700, а маем 0%o"
-#: ../gio/gdbusauthmechanismsha1.c:295
+#: gio/gdbusauthmechanismsha1.c:351 gio/gdbusauthmechanismsha1.c:362
#, c-format
-msgid "Error creating directory '%s': %s"
-msgstr "Памылка стварэння каталога \"%s\": %s"
+msgid "Error creating directory “%s”: %s"
+msgstr ""
-#: ../gio/gdbusauthmechanismsha1.c:378
+#: gio/gdbusauthmechanismsha1.c:364 gio/gfile.c:1095 gio/gfile.c:1333
+#: gio/gfile.c:1471 gio/gfile.c:1709 gio/gfile.c:1764 gio/gfile.c:1822
+#: gio/gfile.c:1906 gio/gfile.c:1963 gio/gfile.c:2027 gio/gfile.c:2082
+#: gio/gfile.c:3787 gio/gfile.c:3927 gio/gfile.c:4339 gio/gfile.c:4809
+#: gio/gfile.c:5220 gio/gfile.c:5305 gio/gfile.c:5395 gio/gfile.c:5492
+#: gio/gfile.c:5579 gio/gfile.c:5680 gio/gfile.c:8809 gio/gfile.c:8899
+#: gio/gfile.c:8983 gio/win32/gwinhttpfile.c:453
+msgid "Operation not supported"
+msgstr "Аперацыя не падтрымліваецца"
+
+#: gio/gdbusauthmechanismsha1.c:407
#, c-format
-msgid "Error opening keyring '%s' for reading: "
-msgstr "Памылка адкрыцця вязкі ключоў \"%s\" для чытання: "
+msgid "Error opening keyring “%s” for reading: "
+msgstr ""
-#: ../gio/gdbusauthmechanismsha1.c:402 ../gio/gdbusauthmechanismsha1.c:715
+#: gio/gdbusauthmechanismsha1.c:430 gio/gdbusauthmechanismsha1.c:771
#, c-format
-msgid "Line %d of the keyring at '%s' with content '%s' is malformed"
-msgstr "Радок %1$d (змест радка: \"%3$s\") з вязкі ключоў на \"%2$s\" хібны"
+msgid "Line %d of the keyring at “%s” with content “%s” is malformed"
+msgstr ""
-#: ../gio/gdbusauthmechanismsha1.c:416 ../gio/gdbusauthmechanismsha1.c:729
+#: gio/gdbusauthmechanismsha1.c:444 gio/gdbusauthmechanismsha1.c:785
#, c-format
msgid ""
-"First token of line %d of the keyring at '%s' with content '%s' is malformed"
+"First token of line %d of the keyring at “%s” with content “%s” is malformed"
msgstr ""
-"Першы складнік радка %1$d (змест радка: \"%3$s\") з вязкі ключоў \"%2$s\" "
-"хібны"
-#: ../gio/gdbusauthmechanismsha1.c:431 ../gio/gdbusauthmechanismsha1.c:743
+#: gio/gdbusauthmechanismsha1.c:458 gio/gdbusauthmechanismsha1.c:799
#, c-format
msgid ""
-"Second token of line %d of the keyring at '%s' with content '%s' is malformed"
+"Second token of line %d of the keyring at “%s” with content “%s” is malformed"
msgstr ""
-"Другі складнік радка %1$d (змест радка: \"%3$s\") з вязкі ключоў \"%2$s\" "
-"хібны"
-#: ../gio/gdbusauthmechanismsha1.c:455
+#: gio/gdbusauthmechanismsha1.c:482
#, c-format
-msgid "Didn't find cookie with id %d in the keyring at '%s'"
-msgstr "Квіток з ідэнтыфікатарам %d не знойдзены ў вязцы ключоў \"%s\""
+msgid "Didn’t find cookie with id %d in the keyring at “%s”"
+msgstr ""
-#: ../gio/gdbusauthmechanismsha1.c:533
+#: gio/gdbusauthmechanismsha1.c:539
#, c-format
-msgid "Error deleting stale lock file '%s': %s"
-msgstr "Памылка выдалення састарэлага блок-файла \"%s\": %s"
+msgid "Error creating lock file “%s”: %s"
+msgstr ""
-#: ../gio/gdbusauthmechanismsha1.c:565
+#: gio/gdbusauthmechanismsha1.c:612
#, c-format
-msgid "Error creating lock file '%s': %s"
-msgstr "Памылка стварэння блок-файла \"%s\": %s"
+msgid "Error deleting stale lock file “%s”: %s"
+msgstr ""
-#: ../gio/gdbusauthmechanismsha1.c:595
+#: gio/gdbusauthmechanismsha1.c:651
#, c-format
-msgid "Error closing (unlinked) lock file '%s': %s"
-msgstr "Памылка закрыцця (выдаленага) блок-файла \"%s\": %s"
+msgid "Error closing (unlinked) lock file “%s”: %s"
+msgstr ""
-#: ../gio/gdbusauthmechanismsha1.c:605
+#: gio/gdbusauthmechanismsha1.c:662
#, c-format
-msgid "Error unlinking lock file '%s': %s"
-msgstr "Памылка выдалення блок-файла \"%s\": %s"
+msgid "Error unlinking lock file “%s”: %s"
+msgstr ""
-#: ../gio/gdbusauthmechanismsha1.c:682
+#: gio/gdbusauthmechanismsha1.c:738
#, c-format
-msgid "Error opening keyring '%s' for writing: "
-msgstr "Памылка адкрыцця вязкі ключоў \"%s\" для запісу: "
+msgid "Error opening keyring “%s” for writing: "
+msgstr ""
-#: ../gio/gdbusauthmechanismsha1.c:879
+#: gio/gdbusauthmechanismsha1.c:932
#, c-format
-msgid "(Additionally, releasing the lock for '%s' also failed: %s) "
+msgid "(Additionally, releasing the lock for “%s” also failed: %s) "
msgstr ""
-"(Да таго ж, вызваленне блок-файла для \"%s\" таксама пацярпела няўдачу: %s) "
-#: ../gio/gdbusconnection.c:609 ../gio/gdbusconnection.c:2452
+#: gio/gdbusconnection.c:590 gio/gdbusconnection.c:2404
msgid "The connection is closed"
msgstr "Злучэнне закрыта"
-#: ../gio/gdbusconnection.c:1942
+#: gio/gdbusconnection.c:1889
msgid "Timeout was reached"
msgstr "Тэрмін чакання скончыўся"
-#: ../gio/gdbusconnection.c:2574
+#: gio/gdbusconnection.c:2527
msgid ""
"Unsupported flags encountered when constructing a client-side connection"
msgstr "Падчас стварэння злучэння з боку кліента напатканыя невядомыя сцяжкі"
-#: ../gio/gdbusconnection.c:4146 ../gio/gdbusconnection.c:4489
+#: gio/gdbusconnection.c:4256 gio/gdbusconnection.c:4610
#, c-format
msgid ""
-"No such interface 'org.freedesktop.DBus.Properties' on object at path %s"
+"No such interface “org.freedesktop.DBus.Properties” on object at path %s"
msgstr ""
-"Аб'ект са сцежкі \"%s\" не мае інтэрфейсу \"org.freedesktop.DBus.Properties\""
-#: ../gio/gdbusconnection.c:4288
+#: gio/gdbusconnection.c:4401
#, c-format
-msgid "No such property '%s'"
-msgstr "Няма такой уласцівасці (\"%s\")"
+msgid "No such property “%s”"
+msgstr "Уласцівасць «%s» адсутнічае"
-#: ../gio/gdbusconnection.c:4300
+#: gio/gdbusconnection.c:4413
#, c-format
-msgid "Property '%s' is not readable"
-msgstr "Няма дазволу на прачытанне ўласцівасці \"%s\""
+msgid "Property “%s” is not readable"
+msgstr "Уласцівасць «%s» недаступна для чытання"
-#: ../gio/gdbusconnection.c:4311
+#: gio/gdbusconnection.c:4424
#, c-format
-msgid "Property '%s' is not writable"
-msgstr "Няма дазволу на запіс уласцівасці \"%s\""
+msgid "Property “%s” is not writable"
+msgstr "Уласцівасць «%s» недаступна для запісу"
-#: ../gio/gdbusconnection.c:4331
+#: gio/gdbusconnection.c:4444
#, c-format
-msgid "Error setting property '%s': Expected type '%s' but got '%s'"
+msgid "Error setting property “%s”: Expected type “%s” but got “%s”"
msgstr ""
-"Памылка настаўлення ўласцівасці \"%s\": чакалі тып \"%s\", а маем \"%s\""
-#: ../gio/gdbusconnection.c:4432 ../gio/gdbusconnection.c:6351
+#: gio/gdbusconnection.c:4549 gio/gdbusconnection.c:4764
+#: gio/gdbusconnection.c:6747
#, c-format
-msgid "No such interface '%s'"
-msgstr "Няма такога інтэрфейсу (\"%s\")"
-
-#: ../gio/gdbusconnection.c:4639
-msgid "No such interface"
-msgstr "Няма такога інтэрфейсу"
+msgid "No such interface “%s”"
+msgstr "Інтэрфейс «%s» адсутнічае"
-#: ../gio/gdbusconnection.c:4857 ../gio/gdbusconnection.c:6857
+#: gio/gdbusconnection.c:4986 gio/gdbusconnection.c:7261
#, c-format
-msgid "No such interface '%s' on object at path %s"
-msgstr "Аб'ект са сцежкі \"%2$s\" не мае такога інтэрфейсу (\"%1$s\")"
+msgid "No such interface “%s” on object at path %s"
+msgstr ""
-#: ../gio/gdbusconnection.c:4954
+#: gio/gdbusconnection.c:5087
#, c-format
-msgid "No such method '%s'"
-msgstr "Няма такога метаду (\"%s\")"
+msgid "No such method “%s”"
+msgstr "Метад «%s» адсутнічае"
-#: ../gio/gdbusconnection.c:4985
+#: gio/gdbusconnection.c:5118
#, c-format
-msgid "Type of message, '%s', does not match expected type '%s'"
-msgstr "Тып паведамлення \"%s\" не адпавядае чаканаму тыпу \"%s\""
+msgid "Type of message, “%s”, does not match expected type “%s”"
+msgstr ""
-#: ../gio/gdbusconnection.c:5183
+#: gio/gdbusconnection.c:5321
#, c-format
msgid "An object is already exported for the interface %s at %s"
msgstr "Аб'ект ужо экспартаваны для інтэрфейсу \"%s\" на \"%s\""
-#: ../gio/gdbusconnection.c:5381
+#: gio/gdbusconnection.c:5548
#, c-format
-msgid "Method '%s' returned type '%s', but expected '%s'"
-msgstr "Метад \"%s\" вярнуў значэнне тыпу \"%s\", хоць чакалі \"%s\""
+msgid "Unable to retrieve property %s.%s"
+msgstr ""
+
+#: gio/gdbusconnection.c:5604
+#, c-format
+msgid "Unable to set property %s.%s"
+msgstr ""
-#: ../gio/gdbusconnection.c:6462
+#: gio/gdbusconnection.c:5783
#, c-format
-msgid "Method '%s' on interface '%s' with signature '%s' does not exist"
-msgstr "Метад \"%s\" на інтэрфейсе \"%s\" з подпісам \"%s\" не існуе"
+msgid "Method “%s” returned type “%s”, but expected “%s”"
+msgstr ""
-#: ../gio/gdbusconnection.c:6581
+#: gio/gdbusconnection.c:6859
+#, c-format
+msgid "Method “%s” on interface “%s” with signature “%s” does not exist"
+msgstr ""
+
+#: gio/gdbusconnection.c:6980
#, c-format
msgid "A subtree is already exported for %s"
msgstr "Паддрэва для \"%s\" ужо экспартавана"
-#: ../gio/gdbusmessage.c:1271
+#: gio/gdbusconnection.c:7269
+#, c-format
+msgid "Object does not exist at path “%s”"
+msgstr "Аб'ект па шляху «%s» не існуе"
+
+#: gio/gdbusmessage.c:1303
msgid "type is INVALID"
-msgstr "тып хібны (INVALID)"
+msgstr "няправільны тып (INVALID)"
-#: ../gio/gdbusmessage.c:1282
+#: gio/gdbusmessage.c:1314
msgid "METHOD_CALL message: PATH or MEMBER header field is missing"
msgstr "Паведамленне METHOD_CALL: не стае загалоўнай графы PATH або MEMBER"
-#: ../gio/gdbusmessage.c:1293
+#: gio/gdbusmessage.c:1325
msgid "METHOD_RETURN message: REPLY_SERIAL header field is missing"
msgstr "Паведамленне METHOD_RETURN: не стае загалоўнай графы REPLY_SERIAL"
-#: ../gio/gdbusmessage.c:1305
+#: gio/gdbusmessage.c:1337
msgid "ERROR message: REPLY_SERIAL or ERROR_NAME header field is missing"
msgstr ""
"Паведамленне ERROR: не стае загалоўнай графы REPLY_SERIAL або ERROR_NAME"
-#: ../gio/gdbusmessage.c:1318
+#: gio/gdbusmessage.c:1350
msgid "SIGNAL message: PATH, INTERFACE or MEMBER header field is missing"
msgstr ""
"Паведамленне SIGNAL: не стае загалоўнай графы PATH, INTERFACE або MEMBER"
-#: ../gio/gdbusmessage.c:1326
+#: gio/gdbusmessage.c:1358
msgid ""
"SIGNAL message: The PATH header field is using the reserved value /org/"
"freedesktop/DBus/Local"
@@ -510,7 +774,7 @@ msgstr ""
"Паведамленне SIGNAL: загалоўная графа PATH выкарыстоўвае зарэзерваванае "
"значэнне /org/freedesktop/DBus/Local"
-#: ../gio/gdbusmessage.c:1334
+#: gio/gdbusmessage.c:1366
msgid ""
"SIGNAL message: The INTERFACE header field is using the reserved value org."
"freedesktop.DBus.Local"
@@ -518,7 +782,7 @@ msgstr ""
"Паведамленне SIGNAL: загалоўная графа INTERFACE выкарыстоўвае зарэзерваванае "
"значэнне org.freedesktop.DBus.Local"
-#: ../gio/gdbusmessage.c:1383
+#: gio/gdbusmessage.c:1414 gio/gdbusmessage.c:1474
#, c-format
msgid "Wanted to read %lu byte but only got %lu"
msgid_plural "Wanted to read %lu bytes but only got %lu"
@@ -526,87 +790,100 @@ msgstr[0] "Хацелі прачытаць %lu байт, а атрымалі т
msgstr[1] "Хацелі прачытаць %lu байты, а атрымалі толькі %lu"
msgstr[2] "Хацелі прачытаць %lu байтаў, а атрымалі толькі %lu"
-#: ../gio/gdbusmessage.c:1398
+#: gio/gdbusmessage.c:1428
#, c-format
-msgid "Expected NUL byte after the string '%s' but found byte %d"
-msgstr "Замест чаканага NULL-байта пасля ланцужка \"%s\" напаткалі байт %d"
+msgid "Expected NUL byte after the string “%s” but found byte %d"
+msgstr ""
-#: ../gio/gdbusmessage.c:1417
+#: gio/gdbusmessage.c:1447
#, c-format
msgid ""
"Expected valid UTF-8 string but found invalid bytes at byte offset %d "
-"(length of string is %d). The valid UTF-8 string up until that point was '%s'"
+"(length of string is %d). The valid UTF-8 string up until that point was “%s”"
msgstr ""
-"Чакалі правільны UTF-8 ланцужок, але напаткалі хібныя байты на зруху %d "
-"(даўжыня ланцужка: %d). Да гэтага моманту прачытаны наступны бясхібны UTF-8 "
-"ланцужок: \"%s\""
-#: ../gio/gdbusmessage.c:1619
+#: gio/gdbusmessage.c:1511 gio/gdbusmessage.c:1787 gio/gdbusmessage.c:1998
+msgid "Value nested too deeply"
+msgstr "Значэнне ўкладзена занадта глыбока"
+
+#: gio/gdbusmessage.c:1679
#, c-format
-msgid "Parsed value '%s' is not a valid D-Bus object path"
-msgstr "Значэнне \"%s\" не з'яўляецца сцежкай аб'екта D-Bus"
+msgid "Parsed value “%s” is not a valid D-Bus object path"
+msgstr "Разабранае значэнне «%s» не з'яўляецца правільным шляхам аб'екта D-Bus"
-#: ../gio/gdbusmessage.c:1643
+#: gio/gdbusmessage.c:1703
#, c-format
-msgid "Parsed value '%s' is not a valid D-Bus signature"
-msgstr "Значэнне \"%s\" не з'яўляецца подпісам D-Bus"
+msgid "Parsed value “%s” is not a valid D-Bus signature"
+msgstr "Разабранае значэнне «%s» не з'яўляецца правільным подпісам D-Bus"
-#: ../gio/gdbusmessage.c:1698
+#: gio/gdbusmessage.c:1754
#, c-format
msgid ""
"Encountered array of length %u byte. Maximum length is 2<<26 bytes (64 MiB)."
msgid_plural ""
"Encountered array of length %u bytes. Maximum length is 2<<26 bytes (64 MiB)."
msgstr[0] ""
-"Напаткалі масіў даўжынёй у %u байт. Найбольшая даўжыня роўная 2<<26 байтам "
+"Напаткалі масіў даўжынёй у %u байт. Максімальная даўжыня роўная 2<<26 байтам "
"(64 Мбайт)."
msgstr[1] ""
-"Напаткалі масіў даўжынёй у %u байты. Найбольшая даўжыня роўная 2<<26 байтам "
-"(64 Мбайт)."
+"Напаткалі масіў даўжынёй у %u байты. Максімальная даўжыня роўная 2<<26 "
+"байтам (64 Мбайт)."
msgstr[2] ""
-"Напаткалі масіў даўжынёй у %u байтаў. Найбольшая даўжыня роўная 2<<26 байтам "
-"(64 Мбайт)."
+"Напаткалі масіў даўжынёй у %u байтаў. Максімальная даўжыня роўная 2<<26 "
+"байтам (64 Мбайт)."
+
+#: gio/gdbusmessage.c:1774
+#, c-format
+msgid ""
+"Encountered array of type “a%c”, expected to have a length a multiple of %u "
+"bytes, but found to be %u bytes in length"
+msgstr ""
-#: ../gio/gdbusmessage.c:1851
+#: gio/gdbusmessage.c:1928 gio/gdbusmessage.c:2647
+msgid "Empty structures (tuples) are not allowed in D-Bus"
+msgstr ""
+
+#: gio/gdbusmessage.c:1982
#, c-format
-msgid "Parsed value '%s' for variant is not a valid D-Bus signature"
-msgstr "Значэнне \"%s\" варыянта не з'яўляецца подпісам D-Bus"
+msgid "Parsed value “%s” for variant is not a valid D-Bus signature"
+msgstr ""
+"Разабранае значэнне «%s» для варыянта не з'яўляецца правільным подпісам D-Bus"
-#: ../gio/gdbusmessage.c:1875
+#: gio/gdbusmessage.c:2023
#, c-format
msgid ""
-"Error deserializing GVariant with type string '%s' from the D-Bus wire format"
+"Error deserializing GVariant with type string “%s” from the D-Bus wire format"
msgstr ""
-"Памылка дэсерыялізацыі аб'екта GVariant (тып: \"%s\") з сеткавага фармату D-"
-"Bus"
-#: ../gio/gdbusmessage.c:2062
+#: gio/gdbusmessage.c:2208
#, c-format
msgid ""
-"Invalid endianness value. Expected 0x6c ('l') or 0x42 ('B') but found value "
+"Invalid endianness value. Expected 0x6c (“l”) or 0x42 (“B”) but found value "
"0x%02x"
msgstr ""
-"Хібнае азначэнне байтавага ладу. Замест чаканых 0x6c ('l') або 0x42 ('B') "
-"атрымалі 0x%02x"
-#: ../gio/gdbusmessage.c:2075
+#: gio/gdbusmessage.c:2227
#, c-format
msgid "Invalid major protocol version. Expected 1 but found %d"
msgstr ""
-"Хібная major-версія пратакола. Замест чаканай версіі \"1\" атрымалі \"%d\""
+"Няправільная major-версія пратакола. Замест чаканай версіі \"1\" атрымалі "
+"\"%d\""
-#: ../gio/gdbusmessage.c:2131
+#: gio/gdbusmessage.c:2285 gio/gdbusmessage.c:2883
+msgid "Signature header found but is not of type signature"
+msgstr ""
+
+#: gio/gdbusmessage.c:2297
#, c-format
-msgid "Signature header with signature '%s' found but message body is empty"
+msgid "Signature header with signature “%s” found but message body is empty"
msgstr ""
-"Знойдзены загаловак подпісу і сам подпіс \"%s\", але цела паведамлення пустое"
-#: ../gio/gdbusmessage.c:2145
+#: gio/gdbusmessage.c:2312
#, c-format
-msgid "Parsed value '%s' is not a valid D-Bus signature (for body)"
-msgstr "Значэнне \"%s\" не з'яўляецца подпісам D-Bus (для цела паведамлення)"
+msgid "Parsed value “%s” is not a valid D-Bus signature (for body)"
+msgstr ""
-#: ../gio/gdbusmessage.c:2175
+#: gio/gdbusmessage.c:2344
#, c-format
msgid "No signature header in message but the message body is %u byte"
msgid_plural "No signature header in message but the message body is %u bytes"
@@ -617,113 +894,116 @@ msgstr[1] ""
msgstr[2] ""
"Паведамленне не мае загалоўка з подпісам, але яго цела мае даўжыню %u байтаў"
-#: ../gio/gdbusmessage.c:2185
+#: gio/gdbusmessage.c:2354
msgid "Cannot deserialize message: "
msgstr "Не ўдалося дэсерыялізаваць паведамленне: "
-#: ../gio/gdbusmessage.c:2506
+#: gio/gdbusmessage.c:2700
#, c-format
msgid ""
-"Error serializing GVariant with type string '%s' to the D-Bus wire format"
+"Error serializing GVariant with type string “%s” to the D-Bus wire format"
msgstr ""
-"Памылка серыялізацыі аб'екта GVariant (тып: \"%s\") у сеткавы фармат D-Bus"
-#: ../gio/gdbusmessage.c:2643
+#: gio/gdbusmessage.c:2837
#, c-format
msgid ""
-"Message has %d file descriptors but the header field indicates %d file "
-"descriptors"
+"Number of file descriptors in message (%d) differs from header field (%d)"
msgstr ""
-"Паведамленне мае %d файлавых дэскрыптараў, але загаловак абвяшчае аб %d "
-"дэскрыптарах"
-#: ../gio/gdbusmessage.c:2651
+#: gio/gdbusmessage.c:2845
msgid "Cannot serialize message: "
msgstr "Не ўдалося серыялізаваць паведамленне: "
-#: ../gio/gdbusmessage.c:2695
+#: gio/gdbusmessage.c:2898
#, c-format
-msgid "Message body has signature '%s' but there is no signature header"
-msgstr "Цела паведамлення мае подпіс \"%s\", але не стае подпісу загалоўка"
+msgid "Message body has signature “%s” but there is no signature header"
+msgstr ""
-#: ../gio/gdbusmessage.c:2705
+#: gio/gdbusmessage.c:2908
#, c-format
msgid ""
-"Message body has type signature '%s' but signature in the header field is "
-"'%s'"
-msgstr "Цела паведамлення мае подпіс \"%s\", але подпіс загалоўка іншы: \"%s\""
+"Message body has type signature “%s” but signature in the header field is "
+"“%s”"
+msgstr ""
-#: ../gio/gdbusmessage.c:2721
+#: gio/gdbusmessage.c:2924
#, c-format
-msgid "Message body is empty but signature in the header field is '(%s)'"
-msgstr "Цела паведамлення пустое, але подпіс загалоўка: \"%s\""
+msgid "Message body is empty but signature in the header field is “(%s)”"
+msgstr ""
-#: ../gio/gdbusmessage.c:3271
+#: gio/gdbusmessage.c:3479
#, c-format
-msgid "Error return with body of type '%s'"
-msgstr "Памылка вярнулася з целам тыпу \"%s\""
+msgid "Error return with body of type “%s”"
+msgstr ""
-#: ../gio/gdbusmessage.c:3279
+#: gio/gdbusmessage.c:3487
msgid "Error return with empty body"
msgstr "Памылка вярнулася з пустым целам"
-#: ../gio/gdbusprivate.c:2069
+#: gio/gdbusprivate.c:2187
+#, c-format
+msgid "(Type any character to close this window)\n"
+msgstr "(Увядзіце любы знак, каб закрыць гэта акно)\n"
+
+#: gio/gdbusprivate.c:2373
+#, c-format
+msgid "Session dbus not running, and autolaunch failed"
+msgstr ""
+"DBUS-магістраль сеанса не запушчана, але таксама не ўдалося аўтаматычна "
+"запусціць новую"
+
+#: gio/gdbusprivate.c:2396
#, c-format
msgid "Unable to get Hardware profile: %s"
msgstr "Не ўдалося атрымаць профіль апаратуры: %s"
-#: ../gio/gdbusprivate.c:2114
-msgid "Unable to load /var/lib/dbus/machine-id or /etc/machine-id: "
-msgstr "Не ўдалося прачытаць /var/lib/dbus/machine-id або /etc/machine-id: "
+#. Translators: Both placeholders are file paths
+#: gio/gdbusprivate.c:2447
+#, c-format
+msgid "Unable to load %s or %s: "
+msgstr ""
-#: ../gio/gdbusproxy.c:1638
+#: gio/gdbusproxy.c:1575
#, c-format
msgid "Error calling StartServiceByName for %s: "
msgstr "Памылка запуску StartServiceByName для %s: "
-#: ../gio/gdbusproxy.c:1661
+#: gio/gdbusproxy.c:1598
#, c-format
msgid "Unexpected reply %d from StartServiceByName(\"%s\") method"
msgstr "Нечаканы адказ %d ад метаду StartServiceByName(\"%s\")"
-#: ../gio/gdbusproxy.c:2761 ../gio/gdbusproxy.c:2898
+#: gio/gdbusproxy.c:2709 gio/gdbusproxy.c:2844
+#, c-format
msgid ""
-"Cannot invoke method; proxy is for a well-known name without an owner and "
-"proxy was constructed with the G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START flag"
+"Cannot invoke method; proxy is for the well-known name %s without an owner, "
+"and proxy was constructed with the G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START flag"
msgstr ""
-"Немагчыма выклікаць метад. Проксі прызначаны для шырока вядомай назвы без "
-"уласніка, і ён быў створаны з настаўленым сцяжком "
-"G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START."
-#: ../gio/gdbusserver.c:709
-msgid "Abstract name space not supported"
-msgstr "Абстрактная прастора назваў не падтрымліваецца"
+#: gio/gdbusserver.c:765
+msgid "Abstract namespace not supported"
+msgstr ""
-#: ../gio/gdbusserver.c:796
+#: gio/gdbusserver.c:857
msgid "Cannot specify nonce file when creating a server"
msgstr "Немагчыма вызначыць файл таямніцы (\"nonce\") пры стварэнні сервера"
-#: ../gio/gdbusserver.c:874
+#: gio/gdbusserver.c:939
#, c-format
-msgid "Error writing nonce file at '%s': %s"
-msgstr "Памылка запісу ў файл таямніцы (\"nonce\") \"%s\": %s"
+msgid "Error writing nonce file at “%s”: %s"
+msgstr ""
-#: ../gio/gdbusserver.c:1043
+#: gio/gdbusserver.c:1114
#, c-format
-msgid "The string '%s' is not a valid D-Bus GUID"
-msgstr "Ланцужок \"%s\" не з'яўляецца сапраўдным D-Bus GUID"
+msgid "The string “%s” is not a valid D-Bus GUID"
+msgstr "Радок «%s» не з'яўляецца правільным D-Bus GUID"
-#: ../gio/gdbusserver.c:1083
+#: gio/gdbusserver.c:1152
#, c-format
-msgid "Cannot listen on unsupported transport '%s'"
+msgid "Cannot listen on unsupported transport “%s”"
msgstr ""
-"Немагчыма пачаць слухаць порт для транспарту \"%s\", які не падтрымліваецца"
-#: ../gio/gdbus-tool.c:92
-msgid "COMMAND"
-msgstr "ЗАГАД"
-
-#: ../gio/gdbus-tool.c:97
+#: gio/gdbus-tool.c:113
#, c-format
msgid ""
"Commands:\n"
@@ -732,514 +1012,598 @@ msgid ""
" monitor Monitor a remote object\n"
" call Invoke a method on a remote object\n"
" emit Emit a signal\n"
+" wait Wait for a bus name to appear\n"
"\n"
-"Use \"%s COMMAND --help\" to get help on each command.\n"
+"Use “%s COMMAND --help” to get help on each command.\n"
msgstr ""
-"Загады:\n"
-" help Паказаць гэтую даведку\n"
-" introspect Вывучэнне аддаленага аб'екта\n"
-" monitor Адсочванне аддаленага аб'екта\n"
-" call Выклік метаду аддаленага аб'екта\n"
+"Каманды:\n"
+" help Паказаць гэту даведку\n"
+" introspect Introspect a remote object\n"
+" monitor Назіраць за аддаленым аб'ектам\n"
+" call Выклікаць метад для аддаленага аб'екта\n"
" emit Падаць сігнал\n"
+" wait Чакаць з'яўлення імя шыны\n"
"\n"
-"Каб атрымаць даведку для пэўнага загаду, выканайце \"%s ЗАГАД --help\".\n"
+"Выкарыстоўвайце «%s КАМАНДА --help», каб атрымаць даведку для кожнай "
+"каманды.\n"
-#: ../gio/gdbus-tool.c:166 ../gio/gdbus-tool.c:222 ../gio/gdbus-tool.c:294
-#: ../gio/gdbus-tool.c:318 ../gio/gdbus-tool.c:701 ../gio/gdbus-tool.c:1022
-#: ../gio/gdbus-tool.c:1456
+#: gio/gdbus-tool.c:204 gio/gdbus-tool.c:276 gio/gdbus-tool.c:348
+#: gio/gdbus-tool.c:372 gio/gdbus-tool.c:862 gio/gdbus-tool.c:1247
+#: gio/gdbus-tool.c:1734
#, c-format
msgid "Error: %s\n"
msgstr "Памылка: %s\n"
-#: ../gio/gdbus-tool.c:177 ../gio/gdbus-tool.c:235 ../gio/gdbus-tool.c:1472
+#: gio/gdbus-tool.c:215 gio/gdbus-tool.c:289 gio/gdbus-tool.c:1750
#, c-format
msgid "Error parsing introspection XML: %s\n"
msgstr ""
"Памылка разбору XML-файла з атрыманымі данымі: %s\n"
"\n"
-#: ../gio/gdbus-tool.c:352
+#: gio/gdbus-tool.c:253
+#, c-format
+msgid "Error: %s is not a valid name\n"
+msgstr "Памылка: %s не з'яўляецца правільнай назвай\n"
+
+#: gio/gdbus-tool.c:258 gio/gdbus-tool.c:748 gio/gdbus-tool.c:1066
+#: gio/gdbus-tool.c:1900 gio/gdbus-tool.c:2140
+#, c-format
+msgid "Error: %s is not a valid object path\n"
+msgstr "Памылка: %s не з'яўляецца правільным шляхам аб'екта\n"
+
+#: gio/gdbus-tool.c:406
msgid "Connect to the system bus"
-msgstr "Далучыцца да сістэмнай магістралі"
+msgstr "Падлучыцца да сістэмнай шыны"
-#: ../gio/gdbus-tool.c:353
+#: gio/gdbus-tool.c:407
msgid "Connect to the session bus"
-msgstr "Далучыцца да сеансавай магістралі"
+msgstr "Падлучыцца да шыны сеанса"
-#: ../gio/gdbus-tool.c:354
+#: gio/gdbus-tool.c:408
msgid "Connect to given D-Bus address"
-msgstr "Далучыцца да пэўнага D-Bus адрасу"
+msgstr "Падлучыцца да ўказанага D-Bus адрасу"
-#: ../gio/gdbus-tool.c:364
+#: gio/gdbus-tool.c:418
msgid "Connection Endpoint Options:"
-msgstr "Опцыі канцавога вузла злучэння:"
+msgstr "Параметры канцавога вузла злучэння:"
-#: ../gio/gdbus-tool.c:365
+#: gio/gdbus-tool.c:419
msgid "Options specifying the connection endpoint"
-msgstr "Опцыі, якія вызначаюць канцавы вузел злучэння"
+msgstr "Параметры , якія вызначаюць канцавы вузел злучэння"
-#: ../gio/gdbus-tool.c:387
+#: gio/gdbus-tool.c:442
#, c-format
msgid "No connection endpoint specified"
msgstr "Канцавы вузел злучэння не вызначаны"
-#: ../gio/gdbus-tool.c:397
+#: gio/gdbus-tool.c:452
#, c-format
msgid "Multiple connection endpoints specified"
msgstr "Вызначана некалькі канцавых вузлоў злучэння"
-#: ../gio/gdbus-tool.c:467
+#: gio/gdbus-tool.c:525
#, c-format
msgid ""
-"Warning: According to introspection data, interface '%s' does not exist\n"
-msgstr "Увага: сабраныя даныя сведчаць, што інтэрфейс \"%s\" не існуе\n"
+"Warning: According to introspection data, interface “%s” does not exist\n"
+msgstr ""
-#: ../gio/gdbus-tool.c:476
+#: gio/gdbus-tool.c:534
#, c-format
msgid ""
-"Warning: According to introspection data, method '%s' does not exist on "
-"interface '%s'\n"
+"Warning: According to introspection data, method “%s” does not exist on "
+"interface “%s”\n"
msgstr ""
-"Увага: сабраныя даныя сведчаць, што на інтэрфейсе \"%2$s\" няма метаду \"%1$s"
-"\"\n"
-#: ../gio/gdbus-tool.c:538
+#: gio/gdbus-tool.c:596
msgid "Optional destination for signal (unique name)"
msgstr "Неабавязковае месца прызначэння сігналу (унікальная назва)"
-#: ../gio/gdbus-tool.c:539
+#: gio/gdbus-tool.c:597
msgid "Object path to emit signal on"
-msgstr "Сцежка аб'екта для падачы сігналу"
+msgstr "Шлях аб'екта для падачы сігналу"
-#: ../gio/gdbus-tool.c:540
+#: gio/gdbus-tool.c:598
msgid "Signal and interface name"
msgstr "Сігнал і назва інтэрфейсу"
-#: ../gio/gdbus-tool.c:572
+#: gio/gdbus-tool.c:631
msgid "Emit a signal."
msgstr "Падаць сігнал."
-#: ../gio/gdbus-tool.c:606 ../gio/gdbus-tool.c:832 ../gio/gdbus-tool.c:1562
-#: ../gio/gdbus-tool.c:1794
+#: gio/gdbus-tool.c:686 gio/gdbus-tool.c:1003 gio/gdbus-tool.c:1837
+#: gio/gdbus-tool.c:2069 gio/gdbus-tool.c:2289
#, c-format
msgid "Error connecting: %s\n"
-msgstr "Памылка злучэння: %s\n"
+msgstr "Памылка падлучэння: %s\n"
-#: ../gio/gdbus-tool.c:618
+#: gio/gdbus-tool.c:706
#, c-format
-msgid "Error: object path not specified.\n"
-msgstr "Памылка: сцежка аб'екта не вызначана.\n"
+msgid "Error: %s is not a valid unique bus name.\n"
+msgstr "Памылка: %s не з'яўляецца правільнай назвай шыны.\n"
-#: ../gio/gdbus-tool.c:623 ../gio/gdbus-tool.c:893 ../gio/gdbus-tool.c:1620
-#: ../gio/gdbus-tool.c:1853
-#, c-format
-msgid "Error: %s is not a valid object path\n"
-msgstr "Памылка: %s не з'яўляецца сцежкай аб'екта\n"
+#: gio/gdbus-tool.c:725 gio/gdbus-tool.c:1046 gio/gdbus-tool.c:1880
+msgid "Error: Object path is not specified\n"
+msgstr "Памылка: шлях аб'екта не вызначаны\n"
-#: ../gio/gdbus-tool.c:629
-#, c-format
-msgid "Error: signal not specified.\n"
-msgstr "Памылка: сігнал не вызначаны.\n"
+#: gio/gdbus-tool.c:768
+msgid "Error: Signal name is not specified\n"
+msgstr "Памылка: назва сігналу не вызначана\n"
-#: ../gio/gdbus-tool.c:636
+#: gio/gdbus-tool.c:782
#, c-format
-msgid "Error: signal must be the fully-qualified name.\n"
-msgstr ""
-"Памылка: сігнал мусіць мець форму поўнасцю вызначанай даменнай назвы "
-"(FQDN).\n"
+msgid "Error: Signal name “%s” is invalid\n"
+msgstr "Памылка: «%s» няправільная назва сігналу\n"
-#: ../gio/gdbus-tool.c:644
+#: gio/gdbus-tool.c:794
#, c-format
msgid "Error: %s is not a valid interface name\n"
-msgstr "Памылка: %s не з'яўляецца прыдатнай назвай інтэрфейсу\n"
+msgstr "Памылка: %s не з'яўляецца правільнай назвай інтэрфейсу\n"
-#: ../gio/gdbus-tool.c:650
+#: gio/gdbus-tool.c:800
#, c-format
msgid "Error: %s is not a valid member name\n"
-msgstr "Памылка: %s не з'яўляецца прыдатнай назвай члена\n"
-
-#: ../gio/gdbus-tool.c:656
-#, c-format
-msgid "Error: %s is not a valid unique bus name.\n"
-msgstr "Памылка: %s не з'яўляецца прыдатнай унікальнай назвай магістралі.\n"
+msgstr "Памылка: %s не з'яўляецца правільнай назвай члена\n"
-#: ../gio/gdbus-tool.c:679 ../gio/gdbus-tool.c:992
+#. Use the original non-"parse-me-harder" error
+#: gio/gdbus-tool.c:837 gio/gdbus-tool.c:1178
#, c-format
msgid "Error parsing parameter %d: %s\n"
msgstr "Памылка разбору параметра %d: %s\n"
-#: ../gio/gdbus-tool.c:708
+#: gio/gdbus-tool.c:869
#, c-format
msgid "Error flushing connection: %s\n"
msgstr "Памылка давяршэння злучэння: %s\n"
-#: ../gio/gdbus-tool.c:735
+#: gio/gdbus-tool.c:897
msgid "Destination name to invoke method on"
msgstr "Мэтавая назва, для якой трэба выклікаць метад"
-#: ../gio/gdbus-tool.c:736
+#: gio/gdbus-tool.c:898
msgid "Object path to invoke method on"
-msgstr "Сцежка аб'екта, для якой трэба выклікаць метад"
+msgstr "Шлях аб'екта, для якога трэба выклікаць метад"
-#: ../gio/gdbus-tool.c:737
+#: gio/gdbus-tool.c:899
msgid "Method and interface name"
msgstr "Метад і назва інтэрфейсу"
-#: ../gio/gdbus-tool.c:738
+#: gio/gdbus-tool.c:900
msgid "Timeout in seconds"
-msgstr "Тэрмін чакання, секундаў"
+msgstr "Час чакання, секунд"
-#: ../gio/gdbus-tool.c:777
+#: gio/gdbus-tool.c:901
+msgid "Allow interactive authorization"
+msgstr ""
+
+#: gio/gdbus-tool.c:948
msgid "Invoke a method on a remote object."
msgstr "Выклікаць метад для аддаленага аб'екта."
-#: ../gio/gdbus-tool.c:852 ../gio/gdbus-tool.c:1581 ../gio/gdbus-tool.c:1813
-#, c-format
+#: gio/gdbus-tool.c:1020 gio/gdbus-tool.c:1854 gio/gdbus-tool.c:2094
msgid "Error: Destination is not specified\n"
-msgstr "Памылка: мэта не вызначана\n"
+msgstr "Памылка: месца прызначэння не вызначана\n"
-#: ../gio/gdbus-tool.c:873 ../gio/gdbus-tool.c:1600
+#: gio/gdbus-tool.c:1031 gio/gdbus-tool.c:1871 gio/gdbus-tool.c:2105
#, c-format
-msgid "Error: Object path is not specified\n"
-msgstr "Памылка: сцежка аб'екта не вызначана\n"
+msgid "Error: %s is not a valid bus name\n"
+msgstr "Памылка: %s не з'яўляецца правільнай назвай шыны\n"
-#: ../gio/gdbus-tool.c:908
-#, c-format
+#: gio/gdbus-tool.c:1081
msgid "Error: Method name is not specified\n"
msgstr "Памылка: назва метаду не вызначана\n"
-#: ../gio/gdbus-tool.c:919
+#: gio/gdbus-tool.c:1092
+#, c-format
+msgid "Error: Method name “%s” is invalid\n"
+msgstr "Памылка: «%s» няправільная назва метаду\n"
+
+#: gio/gdbus-tool.c:1170
#, c-format
-msgid "Error: Method name '%s' is invalid\n"
-msgstr "Памылка: хібная назва метаду \"%s\"\n"
+msgid "Error parsing parameter %d of type “%s”: %s\n"
+msgstr ""
-#: ../gio/gdbus-tool.c:984
+#: gio/gdbus-tool.c:1196
#, c-format
-msgid "Error parsing parameter %d of type '%s': %s\n"
-msgstr "Памылка разбору параметра %d тыпу \"%s\": %s\n"
+msgid "Error adding handle %d: %s\n"
+msgstr ""
-#: ../gio/gdbus-tool.c:1419
+#: gio/gdbus-tool.c:1696
msgid "Destination name to introspect"
msgstr "Мэтавая назва для вывучэння"
-#: ../gio/gdbus-tool.c:1420
+#: gio/gdbus-tool.c:1697
msgid "Object path to introspect"
-msgstr "Сцежка аб'екта для вывучэння"
+msgstr "Шлях аб'екта для вывучэння"
-#: ../gio/gdbus-tool.c:1421
+#: gio/gdbus-tool.c:1698
msgid "Print XML"
msgstr "Вывесці XML"
-#: ../gio/gdbus-tool.c:1422
+#: gio/gdbus-tool.c:1699
msgid "Introspect children"
-msgstr "Даследаваць дзяцей"
+msgstr "Даследаваць нашчадка"
-#: ../gio/gdbus-tool.c:1423
+#: gio/gdbus-tool.c:1700
msgid "Only print properties"
msgstr "Толькі вывесці ўласцівасці"
-#: ../gio/gdbus-tool.c:1514
+#: gio/gdbus-tool.c:1789
msgid "Introspect a remote object."
msgstr "Даследаваць аддалены аб'ект."
-#: ../gio/gdbus-tool.c:1712
+#: gio/gdbus-tool.c:1995
msgid "Destination name to monitor"
-msgstr "Мэтавая назва для адсочвання"
+msgstr "Мэтавая назва для назірання"
-#: ../gio/gdbus-tool.c:1713
+#: gio/gdbus-tool.c:1996
msgid "Object path to monitor"
-msgstr "Сцежка аб'екта для адсочвання"
+msgstr "Шлях аб'екта для назірання"
-#: ../gio/gdbus-tool.c:1746
+#: gio/gdbus-tool.c:2021
msgid "Monitor a remote object."
-msgstr "Адсочваць аддалены аб'ект."
+msgstr "Назіраць за аддаленым аб'ектам."
+
+#: gio/gdbus-tool.c:2079
+msgid "Error: can’t monitor a non-message-bus connection\n"
+msgstr ""
+
+#: gio/gdbus-tool.c:2203
+msgid "Service to activate before waiting for the other one (well-known name)"
+msgstr ""
+
+#: gio/gdbus-tool.c:2206
+msgid ""
+"Timeout to wait for before exiting with an error (seconds); 0 for no timeout "
+"(default)"
+msgstr ""
+
+#: gio/gdbus-tool.c:2254
+msgid "[OPTION…] BUS-NAME"
+msgstr "[ПАРАМЕТР…] ІМЯ-ШЫНЫ"
+
+#: gio/gdbus-tool.c:2255
+msgid "Wait for a bus name to appear."
+msgstr "Чакаць з'яўлення імя шыны."
+
+#: gio/gdbus-tool.c:2331
+msgid "Error: A service to activate for must be specified.\n"
+msgstr ""
+
+#: gio/gdbus-tool.c:2336
+msgid "Error: A service to wait for must be specified.\n"
+msgstr ""
+
+#: gio/gdbus-tool.c:2341
+msgid "Error: Too many arguments.\n"
+msgstr "Памылка: занадта шмат аргументаў.\n"
+
+#: gio/gdbus-tool.c:2349 gio/gdbus-tool.c:2356
+#, c-format
+msgid "Error: %s is not a valid well-known bus name.\n"
+msgstr "Памылка: %s не з'яўляецца правільнай добра вядомай назвай шыны.\n"
-#: ../gio/gdesktopappinfo.c:660 ../gio/gdesktopappinfo.c:3793
-#: ../gio/gwin32appinfo.c:221
+#: gio/gdebugcontrollerdbus.c:360
+#, c-format
+msgid "Not authorized to change debug settings"
+msgstr ""
+
+#: gio/gdesktopappinfo.c:2182 gio/gdesktopappinfo.c:5120
msgid "Unnamed"
msgstr "Без назвы"
-#: ../gio/gdesktopappinfo.c:1074
-msgid "Desktop file didn't specify Exec field"
-msgstr "Артыкульны файл не мае графы Exec"
+#: gio/gdesktopappinfo.c:2592
+msgid "Desktop file didn’t specify Exec field"
+msgstr ""
-#: ../gio/gdesktopappinfo.c:1359
+#: gio/gdesktopappinfo.c:2891
msgid "Unable to find terminal required for application"
msgstr "Не ўдалося знайсці тэрмінал, патрэбны для праграмы"
-#: ../gio/gdesktopappinfo.c:1772
+#: gio/gdesktopappinfo.c:3638
#, c-format
-msgid "Can't create user application configuration folder %s: %s"
+msgid "Can’t create user application configuration folder %s: %s"
msgstr ""
-"Не ўдалося стварыць папку %s для канфігурацыі праграм карыстальніка: %s"
-#: ../gio/gdesktopappinfo.c:1776
+#: gio/gdesktopappinfo.c:3642
#, c-format
-msgid "Can't create user MIME configuration folder %s: %s"
-msgstr "Не ўдалося стварыць папку %s для MIME-канфігурацыі карыстальніка: %s"
+msgid "Can’t create user MIME configuration folder %s: %s"
+msgstr ""
-#: ../gio/gdesktopappinfo.c:2016 ../gio/gdesktopappinfo.c:2040
+#: gio/gdesktopappinfo.c:3884 gio/gdesktopappinfo.c:3908
msgid "Application information lacks an identifier"
msgstr "Інфармацыі аб праграме не стае ідэнтыфікатара"
-#: ../gio/gdesktopappinfo.c:2272
+#: gio/gdesktopappinfo.c:4144
#, c-format
-msgid "Can't create user desktop file %s"
-msgstr "Не ўдалося стварыць артыкульны файл %s"
+msgid "Can’t create user desktop file %s"
+msgstr ""
-#: ../gio/gdesktopappinfo.c:2396
+#: gio/gdesktopappinfo.c:4280
#, c-format
msgid "Custom definition for %s"
msgstr "Уласнае азначэнне для %s"
-#: ../gio/gdrive.c:394
-msgid "drive doesn't implement eject"
-msgstr "прывод не падтрымлівае аперацыі eject"
+#: gio/gdrive.c:419
+msgid "drive doesn’t implement eject"
+msgstr "дыскавод не можа ажыццявіць выманне"
#. Translators: This is an error
#. * message for drive objects that
#. * don't implement any of eject or eject_with_operation.
-#: ../gio/gdrive.c:472
-msgid "drive doesn't implement eject or eject_with_operation"
-msgstr "прывод не падтрымлівае аперацыі eject або eject_with_operation"
+#: gio/gdrive.c:497
+msgid "drive doesn’t implement eject or eject_with_operation"
+msgstr "дыскавод не можа ажыццявіць выманне або выманне_з_аперацыяй"
-#: ../gio/gdrive.c:548
-msgid "drive doesn't implement polling for media"
-msgstr "прывод не падтрымлівае функцыі апытвання наконт наяўнасці носьбіта"
+#: gio/gdrive.c:573
+msgid "drive doesn’t implement polling for media"
+msgstr "дыскавод не можа вызначыць наяўнасць носьбіта"
-#: ../gio/gdrive.c:753
-msgid "drive doesn't implement start"
-msgstr "прывод не падтрымлівае аперацыі start"
+#: gio/gdrive.c:780
+msgid "drive doesn’t implement start"
+msgstr "дыскавод не можа ажыццявіць запуск"
-#: ../gio/gdrive.c:855
-msgid "drive doesn't implement stop"
-msgstr "прывод не падтрымлівае аперацыі stop"
+#: gio/gdrive.c:882
+msgid "drive doesn’t implement stop"
+msgstr "дыскавод не можа ажыццявіць спыненне"
-#: ../gio/gdummytlsbackend.c:168 ../gio/gdummytlsbackend.c:288
-#: ../gio/gdummytlsbackend.c:378
+#: gio/gdtlsconnection.c:1188 gio/gtlsconnection.c:957
+msgid "TLS backend does not implement TLS binding retrieval"
+msgstr ""
+
+#: gio/gdummytlsbackend.c:197 gio/gdummytlsbackend.c:323
+#: gio/gdummytlsbackend.c:515
msgid "TLS support is not available"
-msgstr "Адсутнічае падтрымка TLS"
+msgstr "Падтрымка TLS недаступна"
+
+#: gio/gdummytlsbackend.c:425
+msgid "DTLS support is not available"
+msgstr "Падтрымка DTLS недаступна"
-#: ../gio/gemblem.c:324
+#: gio/gemblem.c:325
#, c-format
-msgid "Can't handle version %d of GEmblem encoding"
-msgstr "Не ўдалося апрацаваць версію %d кадавання GEmblem"
+msgid "Can’t handle version %d of GEmblem encoding"
+msgstr ""
-#: ../gio/gemblem.c:334
+#: gio/gemblem.c:335
#, c-format
msgid "Malformed number of tokens (%d) in GEmblem encoding"
msgstr "Хібная колькасць складнікаў (%d) у кадаванні GEmblem"
-#: ../gio/gemblemedicon.c:364
+#: gio/gemblemedicon.c:364
#, c-format
-msgid "Can't handle version %d of GEmblemedIcon encoding"
-msgstr "Не ўдалося апрацаваць версію %d кадавання GEmblemedIcon"
+msgid "Can’t handle version %d of GEmblemedIcon encoding"
+msgstr ""
-#: ../gio/gemblemedicon.c:374
+#: gio/gemblemedicon.c:374
#, c-format
msgid "Malformed number of tokens (%d) in GEmblemedIcon encoding"
msgstr "Хібная колькасць складнікаў (%d) у кадаванні GEmblemedIcon"
-#: ../gio/gemblemedicon.c:397
+#: gio/gemblemedicon.c:397
msgid "Expected a GEmblem for GEmblemedIcon"
msgstr "Чакалі GEmblem для GEmblemedIcon"
-#: ../gio/gfile.c:965 ../gio/gfile.c:1204 ../gio/gfile.c:1343
-#: ../gio/gfile.c:1583 ../gio/gfile.c:1638 ../gio/gfile.c:1696
-#: ../gio/gfile.c:1780 ../gio/gfile.c:1837 ../gio/gfile.c:1901
-#: ../gio/gfile.c:1956 ../gio/gfile.c:3586 ../gio/gfile.c:3641
-#: ../gio/gfile.c:3849 ../gio/gfile.c:3891 ../gio/gfile.c:4357
-#: ../gio/gfile.c:4769 ../gio/gfile.c:4854 ../gio/gfile.c:4944
-#: ../gio/gfile.c:5041 ../gio/gfile.c:5128 ../gio/gfile.c:5229
-#: ../gio/gfile.c:7682 ../gio/gfile.c:7772 ../gio/gfile.c:7856
-#: ../gio/win32/gwinhttpfile.c:439
-msgid "Operation not supported"
-msgstr "Дзеянне не падтрымліваецца"
-
#. Translators: This is an error message when
#. * trying to find the enclosing (user visible)
#. * mount of a file, but none exists.
#.
-#. Translators: This is an error message when trying to
-#. * find the enclosing (user visible) mount of a file, but
-#. * none exists.
-#. Translators: This is an error message when trying to find
-#. * the enclosing (user visible) mount of a file, but none
-#. * exists.
-#: ../gio/gfile.c:1467 ../gio/glocalfile.c:1102 ../gio/glocalfile.c:1113
-#: ../gio/glocalfile.c:1126
+#: gio/gfile.c:1594
msgid "Containing mount does not exist"
msgstr "Прымацаваны дыск, які змяшчае файл, не існуе"
-#: ../gio/gfile.c:2522 ../gio/glocalfile.c:2334
-msgid "Can't copy over directory"
-msgstr "Нельга скапіраваць на месца каталога"
+#: gio/gfile.c:2641 gio/glocalfile.c:2500
+msgid "Can’t copy over directory"
+msgstr ""
-#: ../gio/gfile.c:2582
-msgid "Can't copy directory over directory"
-msgstr "Нельга скапіраваць каталог на месца іншага каталога"
+#: gio/gfile.c:2701
+msgid "Can’t copy directory over directory"
+msgstr ""
-#: ../gio/gfile.c:2590 ../gio/glocalfile.c:2343
+#: gio/gfile.c:2709
msgid "Target file exists"
msgstr "Мэтавы файл існуе"
-#: ../gio/gfile.c:2609
-msgid "Can't recursively copy directory"
-msgstr "Не ўдалося рэкурсіўна скапіраваць каталог"
+#: gio/gfile.c:2728
+msgid "Can’t recursively copy directory"
+msgstr ""
-#: ../gio/gfile.c:2891
+#: gio/gfile.c:3029
msgid "Splice not supported"
msgstr "Функцыя splice не падтрымліваецца"
-#: ../gio/gfile.c:2895
+#: gio/gfile.c:3033
#, c-format
msgid "Error splicing file: %s"
msgstr "Памылка ўжывання функцыі splice для файла: %s"
-#: ../gio/gfile.c:3026
+#: gio/gfile.c:3185
msgid "Copy (reflink/clone) between mounts is not supported"
msgstr ""
"Капіраванне (reflink/clone) з аднаго прымацаванага дыска на іншы не "
"падтрымліваецца"
-#: ../gio/gfile.c:3030
+#: gio/gfile.c:3189
msgid "Copy (reflink/clone) is not supported or invalid"
msgstr "Капіраванне (reflink/clone) не падтрымліваецца або памылковае"
-#: ../gio/gfile.c:3035
-msgid "Copy (reflink/clone) is not supported or didn't work"
-msgstr "Капіраванне (reflink/clone) не падтрымліваецца або схібіла"
+#: gio/gfile.c:3194
+msgid "Copy (reflink/clone) is not supported or didn’t work"
+msgstr ""
-#: ../gio/gfile.c:3098
-msgid "Can't copy special file"
-msgstr "Не ўдалося скапіраваць асаблівы файл"
+#: gio/gfile.c:3259
+msgid "Can’t copy special file"
+msgstr ""
-#: ../gio/gfile.c:3839
+#: gio/gfile.c:4153
msgid "Invalid symlink value given"
-msgstr "Хібнае значэнне для сімвальнай спасылкі"
+msgstr "Няправільнае значэнне для сімвальнай спасылкі"
-#: ../gio/gfile.c:4001
+#: gio/gfile.c:4163 glib/gfileutils.c:2354
+msgid "Symbolic links not supported"
+msgstr "Сімвальныя спасылкі не падтрымліваюцца"
+
+#: gio/gfile.c:4450
msgid "Trash not supported"
msgstr "Функцыі сметніцы не падтрымліваюцца"
-#: ../gio/gfile.c:4114
+#: gio/gfile.c:4562
#, c-format
-msgid "File names cannot contain '%c'"
-msgstr "Назвы файлаў не павінны змяшчаць \"%c\""
+msgid "File names cannot contain “%c”"
+msgstr "Назвы файлаў не могуць утрымліваць «%c»"
-#: ../gio/gfile.c:6531 ../gio/gvolume.c:365
-msgid "volume doesn't implement mount"
-msgstr "дыскавы том не падтрымлівае мацавання да файлавай сістэмы"
+#: gio/gfile.c:6993 gio/gfile.c:7119
+#, c-format
+msgid "Failed to create a temporary directory for template “%s”: %s"
+msgstr ""
-#: ../gio/gfile.c:6640
+#: gio/gfile.c:7408 gio/gvolume.c:366
+msgid "volume doesn’t implement mount"
+msgstr ""
+
+#: gio/gfile.c:7522 gio/gfile.c:7599
msgid "No application is registered as handling this file"
msgstr "Няма праграм, зарэгістраваных для працы з гэтым файлам"
-#: ../gio/gfileenumerator.c:213
+#: gio/gfileenumerator.c:214
msgid "Enumerator is closed"
msgstr "Аб'ект пераліку закрыты"
-#: ../gio/gfileenumerator.c:220 ../gio/gfileenumerator.c:279
-#: ../gio/gfileenumerator.c:379 ../gio/gfileenumerator.c:479
+#: gio/gfileenumerator.c:221 gio/gfileenumerator.c:280
+#: gio/gfileenumerator.c:379 gio/gfileenumerator.c:478
msgid "File enumerator has outstanding operation"
msgstr "Аб'ект пераліку файлаў мае няскончаную аперацыю"
-#: ../gio/gfileenumerator.c:370 ../gio/gfileenumerator.c:470
+#: gio/gfileenumerator.c:370 gio/gfileenumerator.c:469
msgid "File enumerator is already closed"
msgstr "Аб'ект пераліку файлаў ужо закрыты"
-#: ../gio/gfileicon.c:237
+#: gio/gfileicon.c:252
#, c-format
-msgid "Can't handle version %d of GFileIcon encoding"
-msgstr "Не ўдалося апрацаваць версію %d кадавання GFileIcon"
+msgid "Can’t handle version %d of GFileIcon encoding"
+msgstr ""
-#: ../gio/gfileicon.c:247
+#: gio/gfileicon.c:262
msgid "Malformed input data for GFileIcon"
msgstr "Хібныя ўводныя даныя для GFileIcon"
-#: ../gio/gfileinputstream.c:151 ../gio/gfileinputstream.c:397
-#: ../gio/gfileiostream.c:169 ../gio/gfileoutputstream.c:166
-#: ../gio/gfileoutputstream.c:500
-msgid "Stream doesn't support query_info"
-msgstr "Струмень не падтрымлівае функцыі query_info"
+#: gio/gfileinputstream.c:151 gio/gfileinputstream.c:396
+#: gio/gfileiostream.c:169 gio/gfileoutputstream.c:166
+#: gio/gfileoutputstream.c:499
+msgid "Stream doesn’t support query_info"
+msgstr ""
-#: ../gio/gfileinputstream.c:328 ../gio/gfileiostream.c:382
-#: ../gio/gfileoutputstream.c:374
+#: gio/gfileinputstream.c:327 gio/gfileiostream.c:381
+#: gio/gfileoutputstream.c:373
msgid "Seek not supported on stream"
msgstr "Струмень не падтрымлівае пракручвання"
-#: ../gio/gfileinputstream.c:372
+#: gio/gfileinputstream.c:371
msgid "Truncate not allowed on input stream"
msgstr "Для ўваходнага струменя забаронена абразанне"
-#: ../gio/gfileiostream.c:458 ../gio/gfileoutputstream.c:450
+#: gio/gfileiostream.c:457 gio/gfileoutputstream.c:449
msgid "Truncate not supported on stream"
msgstr "Струмень не падтрымлівае абразання"
-#: ../gio/gicon.c:297
+#: gio/ghttpproxy.c:93 gio/gresolver.c:460 gio/gresolver.c:613
+#: glib/gconvert.c:1829
+msgid "Invalid hostname"
+msgstr "Няправільная назва машыны"
+
+#: gio/ghttpproxy.c:145
+msgid "Bad HTTP proxy reply"
+msgstr ""
+
+#: gio/ghttpproxy.c:161
+msgid "HTTP proxy connection not allowed"
+msgstr ""
+
+#: gio/ghttpproxy.c:166
+msgid "HTTP proxy authentication failed"
+msgstr ""
+
+#: gio/ghttpproxy.c:169
+msgid "HTTP proxy authentication required"
+msgstr ""
+
+#: gio/ghttpproxy.c:173
+#, c-format
+msgid "HTTP proxy connection failed: %i"
+msgstr ""
+
+#: gio/ghttpproxy.c:268
+msgid "HTTP proxy response too big"
+msgstr ""
+
+#: gio/ghttpproxy.c:285
+msgid "HTTP proxy server closed connection unexpectedly."
+msgstr ""
+
+#: gio/gicon.c:300
#, c-format
msgid "Wrong number of tokens (%d)"
msgstr "Хібная колькасць складнікаў (%d)"
-#: ../gio/gicon.c:317
+#: gio/gicon.c:320
#, c-format
msgid "No type for class name %s"
msgstr "Назва класа %s не мае тыпу"
-#: ../gio/gicon.c:327
+#: gio/gicon.c:330
#, c-format
msgid "Type %s does not implement the GIcon interface"
msgstr "Тып %s не мае інтэрфейсу GIcon"
-#: ../gio/gicon.c:338
+#: gio/gicon.c:341
#, c-format
msgid "Type %s is not classed"
msgstr "Тып %s не мае класаў"
-#: ../gio/gicon.c:352
+#: gio/gicon.c:355
#, c-format
msgid "Malformed version number: %s"
msgstr "Хібны нумар версіі: %s"
-#: ../gio/gicon.c:366
+#: gio/gicon.c:369
#, c-format
msgid "Type %s does not implement from_tokens() on the GIcon interface"
msgstr "Тып %s не мае функцыі from_tokens() для інтэрфейсу GIcon"
-#: ../gio/gicon.c:468
-msgid "Can't handle the supplied version of the icon encoding"
-msgstr "Не ўдалося апрацаваць гэтую версію кадавання значкоў"
+#: gio/gicon.c:471
+msgid "Can’t handle the supplied version of the icon encoding"
+msgstr ""
-#: ../gio/ginetaddressmask.c:183
+#: gio/ginetaddressmask.c:184
msgid "No address specified"
msgstr "Адрас не вызначаны"
-#: ../gio/ginetaddressmask.c:191
+#: gio/ginetaddressmask.c:192
#, c-format
msgid "Length %u is too long for address"
-msgstr "Даўжыня %u надта вялікая для адрасу"
+msgstr "Даўжыня %u занадта вялікая для адрасу"
-#: ../gio/ginetaddressmask.c:224
+#: gio/ginetaddressmask.c:225
msgid "Address has bits set beyond prefix length"
msgstr "Гэты адрас мае выстаўленыя біты, якія не ўваходзяць у сеткавы прэфікс"
-#: ../gio/ginetaddressmask.c:301
+#: gio/ginetaddressmask.c:302
#, c-format
-msgid "Could not parse '%s' as IP address mask"
-msgstr "Не ўдалося разабраць \"%s\" як сеткавую маску IP-адрасу"
+msgid "Could not parse “%s” as IP address mask"
+msgstr ""
-#: ../gio/ginetsocketaddress.c:197 ../gio/ginetsocketaddress.c:214
-#: ../gio/gunixsocketaddress.c:211
+#: gio/ginetsocketaddress.c:205 gio/ginetsocketaddress.c:222
+#: gio/gnativesocketaddress.c:111 gio/gunixsocketaddress.c:230
msgid "Not enough space for socket address"
msgstr "Не стае вольнай прасторы для адрасу сокета"
-#: ../gio/ginetsocketaddress.c:229
+#: gio/ginetsocketaddress.c:237
msgid "Unsupported socket address"
msgstr "Адрас сокета, які не падтрымліваецца"
-#: ../gio/ginputstream.c:183
-msgid "Input stream doesn't implement read"
-msgstr "Уваходны струмень не мае функцыі чытання"
+#: gio/ginputstream.c:190
+msgid "Input stream doesn’t implement read"
+msgstr ""
#. Translators: This is an error you get if there is already an
#. * operation running against this stream when you try to start
@@ -1247,377 +1611,1284 @@ msgstr "Уваходны струмень не мае функцыі чытан
#. Translators: This is an error you get if there is
#. * already an operation running against this stream when
#. * you try to start one
-#: ../gio/ginputstream.c:1022 ../gio/giostream.c:290
-#: ../gio/goutputstream.c:1333
+#: gio/ginputstream.c:1251 gio/giostream.c:312 gio/goutputstream.c:2210
msgid "Stream has outstanding operation"
msgstr "Струмень мае няскончаную аперацыю"
-#: ../gio/glib-compile-resources.c:145 ../gio/glib-compile-schemas.c:1459
+#: gio/gio-tool.c:162
+msgid "Copy with file"
+msgstr ""
+
+#: gio/gio-tool.c:166
+msgid "Keep with file when moved"
+msgstr ""
+
+#: gio/gio-tool.c:207
+msgid "“version” takes no arguments"
+msgstr "«version» не прымае аргументаў"
+
+#: gio/gio-tool.c:209 gio/gio-tool.c:225 glib/goption.c:871
+msgid "Usage:"
+msgstr "Выкарыстанне:"
+
+#: gio/gio-tool.c:212
+msgid "Print version information and exit."
+msgstr "Вывесці звесткі пра версію і выйсці."
+
+#: gio/gio-tool.c:228
+msgid "Commands:"
+msgstr "Каманды:"
+
+#: gio/gio-tool.c:231
+msgid "Concatenate files to standard output"
+msgstr ""
+
+#: gio/gio-tool.c:232
+msgid "Copy one or more files"
+msgstr "Капіраваць адзін або некалькі файлаў"
+
+#: gio/gio-tool.c:233
+msgid "Show information about locations"
+msgstr ""
+
+#: gio/gio-tool.c:234
+msgid "Launch an application from a desktop file"
+msgstr ""
+
+#: gio/gio-tool.c:235
+msgid "List the contents of locations"
+msgstr ""
+
+#: gio/gio-tool.c:236
+msgid "Get or set the handler for a mimetype"
+msgstr ""
+
+#: gio/gio-tool.c:237
+msgid "Create directories"
+msgstr ""
+
+#: gio/gio-tool.c:238
+msgid "Monitor files and directories for changes"
+msgstr ""
+
+#: gio/gio-tool.c:239
+msgid "Mount or unmount the locations"
+msgstr ""
+
+#: gio/gio-tool.c:240
+msgid "Move one or more files"
+msgstr "Перамясціць адзін ці некалькі файлаў"
+
+#: gio/gio-tool.c:241
+msgid "Open files with the default application"
+msgstr ""
+
+#: gio/gio-tool.c:242
+msgid "Rename a file"
+msgstr "Перайменаваць файл"
+
+#: gio/gio-tool.c:243
+msgid "Delete one or more files"
+msgstr "Выдаліць адзін ці некалькі файлаў"
+
+#: gio/gio-tool.c:244
+msgid "Read from standard input and save"
+msgstr ""
+
+#: gio/gio-tool.c:245
+msgid "Set a file attribute"
+msgstr "Задаць атрыбут файла"
+
+#: gio/gio-tool.c:246
+msgid "Move files or directories to the trash"
+msgstr ""
+
+#: gio/gio-tool.c:247
+msgid "Lists the contents of locations in a tree"
+msgstr ""
+
+#: gio/gio-tool.c:249
#, c-format
-msgid "Element <%s> not allowed inside <%s>"
-msgstr "Элемент <%s> унутры <%s> забаронены"
+msgid "Use %s to get detailed help.\n"
+msgstr "Выкарыстоўвайце «%s», каб атрымаць падрабязную даведку.\n"
+
+#: gio/gio-tool-cat.c:89
+msgid "Error writing to stdout"
+msgstr ""
+
+#. Translators: commandline placeholder
+#: gio/gio-tool-cat.c:135 gio/gio-tool-info.c:379 gio/gio-tool-list.c:173
+#: gio/gio-tool-mkdir.c:50 gio/gio-tool-monitor.c:39 gio/gio-tool-monitor.c:41
+#: gio/gio-tool-monitor.c:43 gio/gio-tool-monitor.c:45
+#: gio/gio-tool-monitor.c:206 gio/gio-tool-mount.c:1210 gio/gio-tool-open.c:72
+#: gio/gio-tool-remove.c:50 gio/gio-tool-rename.c:47 gio/gio-tool-set.c:95
+#: gio/gio-tool-trash.c:222 gio/gio-tool-tree.c:241
+msgid "LOCATION"
+msgstr "РАЗМЯШЧЭННЕ"
+
+#: gio/gio-tool-cat.c:140
+msgid "Concatenate files and print to standard output."
+msgstr ""
+
+#: gio/gio-tool-cat.c:142
+msgid ""
+"gio cat works just like the traditional cat utility, but using GIO\n"
+"locations instead of local files: for example, you can use something\n"
+"like smb://server/resource/file.txt as location."
+msgstr ""
+
+#: gio/gio-tool-cat.c:164 gio/gio-tool-info.c:410 gio/gio-tool-mkdir.c:78
+#: gio/gio-tool-monitor.c:231 gio/gio-tool-mount.c:1261 gio/gio-tool-open.c:98
+#: gio/gio-tool-remove.c:74 gio/gio-tool-trash.c:303
+msgid "No locations given"
+msgstr "Не ўказана размяшчэнне"
+
+#: gio/gio-tool-copy.c:45 gio/gio-tool-move.c:40
+msgid "No target directory"
+msgstr "Няма мэтавага каталога"
+
+#: gio/gio-tool-copy.c:46 gio/gio-tool-move.c:41
+msgid "Show progress"
+msgstr "Паказаць ход выканання"
+
+#: gio/gio-tool-copy.c:47 gio/gio-tool-move.c:42
+msgid "Prompt before overwrite"
+msgstr ""
+
+#: gio/gio-tool-copy.c:48
+msgid "Preserve all attributes"
+msgstr ""
+
+#: gio/gio-tool-copy.c:49 gio/gio-tool-move.c:43 gio/gio-tool-save.c:51
+msgid "Backup existing destination files"
+msgstr ""
-#: ../gio/glib-compile-resources.c:149
+#: gio/gio-tool-copy.c:50
+msgid "Never follow symbolic links"
+msgstr ""
+
+#: gio/gio-tool-copy.c:51
+msgid "Use default permissions for the destination"
+msgstr ""
+
+#: gio/gio-tool-copy.c:76 gio/gio-tool-move.c:69
#, c-format
-msgid "Element <%s> not allowed at toplevel"
-msgstr "Элемент <%s> забаронены для найвышэйшага ўзроўню"
+msgid "Transferred %s out of %s (%s/s)"
+msgstr ""
+
+#. Translators: commandline placeholder
+#: gio/gio-tool-copy.c:102 gio/gio-tool-move.c:96
+msgid "SOURCE"
+msgstr "КРЫНІЦА"
+
+#. Translators: commandline placeholder
+#: gio/gio-tool-copy.c:102 gio/gio-tool-move.c:96 gio/gio-tool-save.c:162
+msgid "DESTINATION"
+msgstr "МЕСЦА_ПРЫЗНАЧЭННЯ"
+
+#: gio/gio-tool-copy.c:107
+msgid "Copy one or more files from SOURCE to DESTINATION."
+msgstr "Капіраваць адзін або некалькі файлаў з КРЫНІЦА ў МЕСЦА_ПРЫЗНАЧЭННЯ"
+
+#: gio/gio-tool-copy.c:109
+msgid ""
+"gio copy is similar to the traditional cp utility, but using GIO\n"
+"locations instead of local files: for example, you can use something\n"
+"like smb://server/resource/file.txt as location."
+msgstr ""
-#: ../gio/glib-compile-resources.c:239
+#: gio/gio-tool-copy.c:151
#, c-format
-msgid "File %s appears multiple times in the resource"
-msgstr "Файл %s з'яўляецца ў рэсурсе некалькі разоў"
+msgid "Destination %s is not a directory"
+msgstr ""
-#: ../gio/glib-compile-resources.c:252
+#: gio/gio-tool-copy.c:198 gio/gio-tool-move.c:188
#, c-format
-msgid "Failed to locate '%s' in any source directory"
-msgstr "Не ўдалося адшукаць \"%s\" ва ўсіх выточных каталогах"
+msgid "%s: overwrite “%s”? "
+msgstr "%s: перазапісаць «%s»? "
+
+#: gio/gio-tool-info.c:39
+msgid "List writable attributes"
+msgstr ""
+
+#: gio/gio-tool-info.c:40
+msgid "Get file system info"
+msgstr ""
+
+#: gio/gio-tool-info.c:41 gio/gio-tool-list.c:37
+msgid "The attributes to get"
+msgstr ""
-#: ../gio/glib-compile-resources.c:263
+#: gio/gio-tool-info.c:41 gio/gio-tool-list.c:37
+msgid "ATTRIBUTES"
+msgstr "АТРЫБУТЫ"
+
+#: gio/gio-tool-info.c:42 gio/gio-tool-list.c:40 gio/gio-tool-set.c:37
+msgid "Don’t follow symbolic links"
+msgstr "Не пераходзіць па сімвальных спасылках"
+
+#: gio/gio-tool-info.c:105
+msgid "attributes:\n"
+msgstr "атрыбуты:\n"
+
+#: gio/gio-tool-info.c:165 gio/gio-tool-info.c:174
#, c-format
-msgid "Failed to locate '%s' in current directory"
-msgstr "Не ўдалося адшукаць \"%s\" у бягучым каталогу"
+msgid "display name: %s\n"
+msgstr "бачнае імя: %s\n"
-#: ../gio/glib-compile-resources.c:291
+#: gio/gio-tool-info.c:182
#, c-format
-msgid "Unknown processing option \"%s\""
-msgstr "Невядомая опцыя апрацавання \"%s\""
+msgid "name: %s\n"
+msgstr "імя: %s\n"
-#: ../gio/glib-compile-resources.c:310 ../gio/glib-compile-resources.c:370
+#: gio/gio-tool-info.c:189
#, c-format
-msgid "Failed to create temp file: %s"
-msgstr "Не ўдалося стварыць часовы файл: %s"
+msgid "type: %s\n"
+msgstr "тып : %s\n"
-#: ../gio/glib-compile-resources.c:340
+#: gio/gio-tool-info.c:195
+msgid "size: "
+msgstr "памер: "
+
+#: gio/gio-tool-info.c:200
+msgid "hidden\n"
+msgstr "схаваны\n"
+
+#: gio/gio-tool-info.c:203
#, c-format
+msgid "uri: %s\n"
+msgstr "uri: %s\n"
+
+#: gio/gio-tool-info.c:210
+#, c-format
+msgid "local path: %s\n"
+msgstr "лакальны шлях: %s\n"
+
+#: gio/gio-tool-info.c:244
+#, c-format
+msgid "unix mount: %s%s %s %s %s\n"
+msgstr ""
+
+#: gio/gio-tool-info.c:325
+msgid "Settable attributes:\n"
+msgstr ""
+
+#: gio/gio-tool-info.c:349
+msgid "Writable attribute namespaces:\n"
+msgstr ""
+
+#: gio/gio-tool-info.c:384
+msgid "Show information about locations."
+msgstr "Паказаць звесткі пра размяшчэнні."
+
+#: gio/gio-tool-info.c:386
+msgid ""
+"gio info is similar to the traditional ls utility, but using GIO\n"
+"locations instead of local files: for example, you can use something\n"
+"like smb://server/resource/file.txt as location. File attributes can\n"
+"be specified with their GIO name, e.g. standard::icon, or just by\n"
+"namespace, e.g. unix, or by “*”, which matches all attributes"
+msgstr ""
+
+#. Translators: commandline placeholder
+#: gio/gio-tool-launch.c:56
+msgid "DESKTOP-FILE [FILE-ARG …]"
+msgstr ""
+
+#: gio/gio-tool-launch.c:59
msgid ""
-"Error processing input file with xmllint:\n"
-"%s"
+"Launch an application from a desktop file, passing optional filename "
+"arguments to it."
msgstr ""
-"Памылка апрацавання ўваходнага файла з дапамогай xmllint:\n"
-"%s"
-#: ../gio/glib-compile-resources.c:396
+#: gio/gio-tool-launch.c:79
+msgid "No desktop file given"
+msgstr ""
+
+#: gio/gio-tool-launch.c:87
+msgid "The launch command is not currently supported on this platform"
+msgstr ""
+
+#: gio/gio-tool-launch.c:100
+#, c-format
+msgid "Unable to load ‘%s‘: %s"
+msgstr "Немагчыма загрузіць ‘%s‘: %s"
+
+#: gio/gio-tool-launch.c:109
#, c-format
+msgid "Unable to load application information for ‘%s‘"
+msgstr "Немагчыма загрузіць звесткі праграмы для ‘%s‘"
+
+#: gio/gio-tool-launch.c:121
+#, c-format
+msgid "Unable to launch application ‘%s’: %s"
+msgstr "Немагчыма запусціць праграму ‘%s’: %s"
+
+#: gio/gio-tool-list.c:38 gio/gio-tool-tree.c:34
+msgid "Show hidden files"
+msgstr "Паказваць схаваныя файлы"
+
+#: gio/gio-tool-list.c:39
+msgid "Use a long listing format"
+msgstr ""
+
+#: gio/gio-tool-list.c:41
+msgid "Print display names"
+msgstr "Вывесці бачныя імёны"
+
+#: gio/gio-tool-list.c:42
+msgid "Print full URIs"
+msgstr "Вывесці поўныя URI"
+
+#: gio/gio-tool-list.c:178
+msgid "List the contents of the locations."
+msgstr ""
+
+#: gio/gio-tool-list.c:180
msgid ""
-"Error processing input file with to-pixdata:\n"
-"%s"
+"gio list is similar to the traditional ls utility, but using GIO\n"
+"locations instead of local files: for example, you can use something\n"
+"like smb://server/resource/file.txt as location. File attributes can\n"
+"be specified with their GIO name, e.g. standard::icon"
+msgstr ""
+
+#. Translators: commandline placeholder
+#: gio/gio-tool-mime.c:73
+msgid "MIMETYPE"
+msgstr ""
+
+#: gio/gio-tool-mime.c:73
+msgid "HANDLER"
+msgstr ""
+
+#: gio/gio-tool-mime.c:78
+msgid "Get or set the handler for a mimetype."
msgstr ""
-"Памылка апрацавання ўваходнага файла з дапамогай to-pixdata:\n"
-"%s"
-#: ../gio/glib-compile-resources.c:410
+#: gio/gio-tool-mime.c:80
+msgid ""
+"If no handler is given, lists registered and recommended applications\n"
+"for the mimetype. If a handler is given, it is set as the default\n"
+"handler for the mimetype."
+msgstr ""
+
+#: gio/gio-tool-mime.c:102
+msgid "Must specify a single mimetype, and maybe a handler"
+msgstr ""
+
+#: gio/gio-tool-mime.c:118
+#, c-format
+msgid "No default applications for “%s”\n"
+msgstr ""
+
+#: gio/gio-tool-mime.c:124
+#, c-format
+msgid "Default application for “%s”: %s\n"
+msgstr ""
+
+#: gio/gio-tool-mime.c:129
+msgid "Registered applications:\n"
+msgstr "Зарэгістраваныя праграмы:\n"
+
+#: gio/gio-tool-mime.c:131
+msgid "No registered applications\n"
+msgstr "Няма зарэгістраваных праграм\n"
+
+#: gio/gio-tool-mime.c:142
+msgid "Recommended applications:\n"
+msgstr "Рэкамендаваныя праграмы:\n"
+
+#: gio/gio-tool-mime.c:144
+msgid "No recommended applications\n"
+msgstr "Няма рэкамендаваных праграм\n"
+
+#: gio/gio-tool-mime.c:164
+#, c-format
+msgid "Failed to load info for handler “%s”"
+msgstr ""
+
+#: gio/gio-tool-mime.c:170
+#, c-format
+msgid "Failed to set “%s” as the default handler for “%s”: %s\n"
+msgstr ""
+
+#: gio/gio-tool-mkdir.c:33
+msgid "Create parent directories"
+msgstr "Стварыць бацькоўскія каталогі"
+
+#: gio/gio-tool-mkdir.c:54
+msgid "Create directories."
+msgstr "Стварыць каталогі."
+
+#: gio/gio-tool-mkdir.c:56
+msgid ""
+"gio mkdir is similar to the traditional mkdir utility, but using GIO\n"
+"locations instead of local files: for example, you can use something\n"
+"like smb://server/resource/mydir as location."
+msgstr ""
+
+#: gio/gio-tool-monitor.c:39
+msgid "Monitor a directory (default: depends on type)"
+msgstr ""
+
+#: gio/gio-tool-monitor.c:41
+msgid "Monitor a file (default: depends on type)"
+msgstr ""
+
+#: gio/gio-tool-monitor.c:43
+msgid "Monitor a file directly (notices changes made via hardlinks)"
+msgstr ""
+
+#: gio/gio-tool-monitor.c:45
+msgid "Monitors a file directly, but doesn’t report changes"
+msgstr ""
+
+#: gio/gio-tool-monitor.c:47
+msgid "Report moves and renames as simple deleted/created events"
+msgstr ""
+
+#: gio/gio-tool-monitor.c:49
+msgid "Watch for mount events"
+msgstr ""
+
+#: gio/gio-tool-monitor.c:211
+msgid "Monitor files or directories for changes."
+msgstr ""
+
+#: gio/gio-tool-mount.c:65
+msgid "Mount as mountable"
+msgstr ""
+
+#: gio/gio-tool-mount.c:66
+msgid "Mount volume with device file, or other identifier"
+msgstr ""
+
+#: gio/gio-tool-mount.c:66
+msgid "ID"
+msgstr "ID"
+
+#: gio/gio-tool-mount.c:67
+msgid "Unmount"
+msgstr "Адмацаваць"
+
+#: gio/gio-tool-mount.c:68
+msgid "Eject"
+msgstr "Выняць"
+
+#: gio/gio-tool-mount.c:69
+msgid "Stop drive with device file"
+msgstr ""
+
+#: gio/gio-tool-mount.c:69
+msgid "DEVICE"
+msgstr "ПРЫЛАДА"
+
+#: gio/gio-tool-mount.c:70
+msgid "Unmount all mounts with the given scheme"
+msgstr ""
+
+#: gio/gio-tool-mount.c:70
+msgid "SCHEME"
+msgstr "СХЕМА"
+
+#: gio/gio-tool-mount.c:71
+msgid "Ignore outstanding file operations when unmounting or ejecting"
+msgstr ""
+
+#: gio/gio-tool-mount.c:72
+msgid "Use an anonymous user when authenticating"
+msgstr ""
+
+#. Translator: List here is a verb as in 'List all mounts'
+#: gio/gio-tool-mount.c:74
+msgid "List"
+msgstr "Спіс"
+
+#: gio/gio-tool-mount.c:75
+msgid "Monitor events"
+msgstr "Назіранне за падзеямі"
+
+#: gio/gio-tool-mount.c:76
+msgid "Show extra information"
+msgstr "Паказаць дадатковую інфармацыю"
+
+#: gio/gio-tool-mount.c:77
+msgid "The numeric PIM when unlocking a VeraCrypt volume"
+msgstr ""
+
+#: gio/gio-tool-mount.c:77
+msgid "PIM"
+msgstr ""
+
+#: gio/gio-tool-mount.c:78
+msgid "Mount a TCRYPT hidden volume"
+msgstr ""
+
+#: gio/gio-tool-mount.c:79
+msgid "Mount a TCRYPT system volume"
+msgstr ""
+
+#: gio/gio-tool-mount.c:276 gio/gio-tool-mount.c:308
+msgid "Anonymous access denied"
+msgstr ""
+
+#: gio/gio-tool-mount.c:533
+msgid "No drive for device file"
+msgstr ""
+
+#: gio/gio-tool-mount.c:1025
+msgid "No volume for given ID"
+msgstr ""
+
+#: gio/gio-tool-mount.c:1214
+msgid "Mount or unmount the locations."
+msgstr ""
+
+#: gio/gio-tool-move.c:44
+msgid "Don’t use copy and delete fallback"
+msgstr ""
+
+#: gio/gio-tool-move.c:101
+msgid "Move one or more files from SOURCE to DEST."
+msgstr ""
+
+#: gio/gio-tool-move.c:103
+msgid ""
+"gio move is similar to the traditional mv utility, but using GIO\n"
+"locations instead of local files: for example, you can use something\n"
+"like smb://server/resource/file.txt as location"
+msgstr ""
+
+#: gio/gio-tool-move.c:145
+#, c-format
+msgid "Target %s is not a directory"
+msgstr ""
+
+#: gio/gio-tool-open.c:77
+msgid ""
+"Open files with the default application that\n"
+"is registered to handle files of this type."
+msgstr ""
+
+#: gio/gio-tool-remove.c:33 gio/gio-tool-trash.c:35
+msgid "Ignore nonexistent files, never prompt"
+msgstr ""
+
+#: gio/gio-tool-remove.c:54
+msgid "Delete the given files."
+msgstr ""
+
+#: gio/gio-tool-rename.c:47
+msgid "NAME"
+msgstr "НАЗВА"
+
+#: gio/gio-tool-rename.c:52
+msgid "Rename a file."
+msgstr "Перайменаваць файл."
+
+#: gio/gio-tool-rename.c:72
+msgid "Missing argument"
+msgstr "Адсутнічае аргумент"
+
+#: gio/gio-tool-rename.c:78 gio/gio-tool-save.c:192 gio/gio-tool-set.c:150
+msgid "Too many arguments"
+msgstr "Занадта шмат аргументаў"
+
+#: gio/gio-tool-rename.c:97
+#, c-format
+msgid "Rename successful. New uri: %s\n"
+msgstr ""
+
+#: gio/gio-tool-save.c:52
+msgid "Only create if not existing"
+msgstr ""
+
+#: gio/gio-tool-save.c:53
+msgid "Append to end of file"
+msgstr ""
+
+#: gio/gio-tool-save.c:54
+msgid "When creating, restrict access to the current user"
+msgstr ""
+
+#: gio/gio-tool-save.c:55
+msgid "When replacing, replace as if the destination did not exist"
+msgstr ""
+
+#. Translators: The "etag" is a token allowing to verify whether a file has been modified
+#: gio/gio-tool-save.c:57
+msgid "Print new etag at end"
+msgstr ""
+
+#. Translators: The "etag" is a token allowing to verify whether a file has been modified
+#: gio/gio-tool-save.c:59
+msgid "The etag of the file being overwritten"
+msgstr ""
+
+#: gio/gio-tool-save.c:59
+msgid "ETAG"
+msgstr ""
+
+#: gio/gio-tool-save.c:115
+msgid "Error reading from standard input"
+msgstr ""
+
+#. Translators: The "etag" is a token allowing to verify whether a file has been modified
+#: gio/gio-tool-save.c:141
+msgid "Etag not available\n"
+msgstr ""
+
+#: gio/gio-tool-save.c:165
+msgid "Read from standard input and save to DEST."
+msgstr ""
+
+#: gio/gio-tool-save.c:185
+msgid "No destination given"
+msgstr ""
+
+#: gio/gio-tool-set.c:36
+msgid "Type of the attribute"
+msgstr ""
+
+#: gio/gio-tool-set.c:36
+msgid "TYPE"
+msgstr "ТЫП"
+
+#: gio/gio-tool-set.c:38
+msgid "Unset given attribute"
+msgstr ""
+
+#: gio/gio-tool-set.c:95
+msgid "ATTRIBUTE"
+msgstr "АТРЫБУТ"
+
+#: gio/gio-tool-set.c:95
+msgid "VALUE"
+msgstr "ЗНАЧЭННЕ"
+
+#: gio/gio-tool-set.c:99
+msgid "Set a file attribute of LOCATION."
+msgstr ""
+
+#: gio/gio-tool-set.c:119
+msgid "Location not specified"
+msgstr "Размяшчэнне не вызначана"
+
+#: gio/gio-tool-set.c:126
+msgid "Attribute not specified"
+msgstr "Атрыбут не вызначаны"
+
+#: gio/gio-tool-set.c:143
+msgid "Value not specified"
+msgstr "Значэнне не вызначана"
+
+#: gio/gio-tool-set.c:193
+#, c-format
+msgid "Invalid attribute type “%s”"
+msgstr "Няправільны тып атрыбута «%s»"
+
+#: gio/gio-tool-trash.c:36
+msgid "Empty the trash"
+msgstr "Ачысціць сметніцу"
+
+#: gio/gio-tool-trash.c:37
+msgid "List files in the trash with their original locations"
+msgstr ""
+
+#: gio/gio-tool-trash.c:38
+msgid ""
+"Restore a file from trash to its original location (possibly recreating the "
+"directory)"
+msgstr ""
+
+#: gio/gio-tool-trash.c:108
+msgid "Unable to find original path"
+msgstr "Немагчыма знайсці зыходны шлях"
+
+#: gio/gio-tool-trash.c:125
+msgid "Unable to recreate original location: "
+msgstr "Немагчыма аднавіць зыходнае размяшчэнне: "
+
+#: gio/gio-tool-trash.c:138
+msgid "Unable to move file to its original location: "
+msgstr "Немагчыма перамясціць файл у зыходнае размяшчэнне: "
+
+#: gio/gio-tool-trash.c:227
+msgid "Move/Restore files or directories to the trash."
+msgstr ""
+
+#: gio/gio-tool-trash.c:229
+msgid ""
+"Note: for --restore switch, if the original location of the trashed file \n"
+"already exists, it will not be overwritten unless --force is set."
+msgstr ""
+
+#: gio/gio-tool-trash.c:260
+msgid "Location given doesn't start with trash:///"
+msgstr ""
+
+#: gio/gio-tool-tree.c:35
+msgid "Follow symbolic links, mounts and shortcuts"
+msgstr ""
+
+#: gio/gio-tool-tree.c:246
+msgid "List contents of directories in a tree-like format."
+msgstr ""
+
+#: gio/glib-compile-resources.c:142 gio/glib-compile-schemas.c:1516
+#, c-format
+msgid "Element <%s> not allowed inside <%s>"
+msgstr "Элемент <%s> унутры <%s> забаронены"
+
+#: gio/glib-compile-resources.c:146
+#, c-format
+msgid "Element <%s> not allowed at toplevel"
+msgstr "Элемент <%s> забаронены для найвышэйшага ўзроўню"
+
+#: gio/glib-compile-resources.c:236
+#, c-format
+msgid "File %s appears multiple times in the resource"
+msgstr "Файл %s з'яўляецца ў рэсурсе некалькі разоў"
+
+#: gio/glib-compile-resources.c:247
+#, c-format
+msgid "Failed to locate “%s” in any source directory"
+msgstr ""
+
+#: gio/glib-compile-resources.c:258
+#, c-format
+msgid "Failed to locate “%s” in current directory"
+msgstr ""
+
+#: gio/glib-compile-resources.c:292
+#, c-format
+msgid "Unknown processing option “%s”"
+msgstr ""
+
+#. Translators: the first %s is a gresource XML attribute,
+#. * the second %s is an environment variable, and the third
+#. * %s is a command line tool
+#.
+#: gio/glib-compile-resources.c:312 gio/glib-compile-resources.c:369
+#: gio/glib-compile-resources.c:426
+#, c-format
+msgid "%s preprocessing requested, but %s is not set, and %s is not in PATH"
+msgstr ""
+
+#: gio/glib-compile-resources.c:459
#, c-format
msgid "Error reading file %s: %s"
msgstr "Не ўдалося прачытаць файл %s: %s"
-#: ../gio/glib-compile-resources.c:430
+#: gio/glib-compile-resources.c:479
#, c-format
msgid "Error compressing file %s"
msgstr "Памылка сціскання файла: %s"
-#: ../gio/glib-compile-resources.c:494 ../gio/glib-compile-schemas.c:1571
+#: gio/glib-compile-resources.c:543
#, c-format
msgid "text may not appear inside <%s>"
msgstr "тэкст не павінен быць унутры <%s>"
-#: ../gio/glib-compile-resources.c:619
-msgid "name of the output file"
-msgstr "назва файла вываду"
+#: gio/glib-compile-resources.c:821 gio/glib-compile-schemas.c:2174
+msgid "Show program version and exit"
+msgstr "Паказаць версію праграмы і выйсці"
-#: ../gio/glib-compile-resources.c:619 ../gio/glib-compile-resources.c:650
-#: ../gio/gresource-tool.c:482 ../gio/gresource-tool.c:548
-msgid "FILE"
-msgstr "ФАЙЛ"
+#: gio/glib-compile-resources.c:822
+msgid "Name of the output file"
+msgstr "Назва выхаднога файла"
-#: ../gio/glib-compile-resources.c:620
+#: gio/glib-compile-resources.c:823
msgid ""
-"The directories where files are to be read from (default to current "
+"The directories to load files referenced in FILE from (default: current "
"directory)"
-msgstr "Каталог, файлы з якога трэба прачытаць (прадвызначана: бягучы каталог)"
+msgstr ""
-#: ../gio/glib-compile-resources.c:620 ../gio/glib-compile-schemas.c:1999
-#: ../gio/glib-compile-schemas.c:2028
+#: gio/glib-compile-resources.c:823 gio/glib-compile-schemas.c:2175
+#: gio/glib-compile-schemas.c:2204
msgid "DIRECTORY"
msgstr "КАТАЛОГ"
-#: ../gio/glib-compile-resources.c:621
+#: gio/glib-compile-resources.c:824
msgid ""
"Generate output in the format selected for by the target filename extension"
msgstr "Згенераваць вывад у фармаце, абраным для пашырэння мэтавага файла"
-#: ../gio/glib-compile-resources.c:622
+#: gio/glib-compile-resources.c:825
msgid "Generate source header"
msgstr "Згенераваць загаловак крыніцы"
-#: ../gio/glib-compile-resources.c:623
-msgid "Generate sourcecode used to link in the resource file into your code"
-msgstr "Згенераваць выточны код для спасылкі на файл рэсурса ў вашым кодзе"
+#: gio/glib-compile-resources.c:826
+msgid "Generate source code used to link in the resource file into your code"
+msgstr ""
-#: ../gio/glib-compile-resources.c:624
+#: gio/glib-compile-resources.c:827
msgid "Generate dependency list"
-msgstr "Згенераваць спіс залежнасцяў"
+msgstr "Згенераваць спіс залежнасцей"
+
+#: gio/glib-compile-resources.c:828
+msgid "Name of the dependency file to generate"
+msgstr ""
+
+#: gio/glib-compile-resources.c:829
+msgid "Include phony targets in the generated dependency file"
+msgstr ""
+
+#: gio/glib-compile-resources.c:830
+msgid "Don’t automatically create and register resource"
+msgstr ""
-#: ../gio/glib-compile-resources.c:625
-msgid "Don't automatically create and register resource"
-msgstr "Не ствараць і не рэгістраваць рэсурсы аўтаматычна"
+#: gio/glib-compile-resources.c:831
+msgid "Don’t export functions; declare them G_GNUC_INTERNAL"
+msgstr ""
-#: ../gio/glib-compile-resources.c:626
-msgid "Don't export functions; declare them G_GNUC_INTERNAL"
-msgstr "Не экспартаваць функцыі; аб'явіць іх як G_GNUC_INTERNAL"
+#: gio/glib-compile-resources.c:832
+msgid ""
+"Don’t embed resource data in the C file; assume it's linked externally "
+"instead"
+msgstr ""
-#: ../gio/glib-compile-resources.c:627
+#: gio/glib-compile-resources.c:833
msgid "C identifier name used for the generated source code"
msgstr ""
-"Назва ідэнтыфікатара \"С\", якая будзе ўжывацца ў згенераваным выточным кодзе"
+"Назва ідэнтыфікатара \"С\", якая будзе ўжывацца ў згенераваным зыходным кодзе"
+
+#: gio/glib-compile-resources.c:834
+msgid "The target C compiler (default: the CC environment variable)"
+msgstr ""
-#: ../gio/glib-compile-resources.c:653
+#: gio/glib-compile-resources.c:860
msgid ""
"Compile a resource specification into a resource file.\n"
"Resource specification files have the extension .gresource.xml,\n"
"and the resource file have the extension called .gresource."
msgstr ""
-"Скампіляваць спецыфікацыю рэсурса ў файл рэсурса.\n"
-"Файлы спецыфікацыі рэсурса мусяць мець пашырэнне .gresource.xml,\n"
-"а файл рэсурса мае пашырэнне .gresource."
+"Скампіляваць спецыфікацыю рэсурсу ў файл рэсурсу.\n"
+"Файлы спецыфікацыі рэсурсу павінны мець пашырэнне .gresource.xml,\n"
+"а файл рэсурсу мае пашырэнне .gresource."
-#: ../gio/glib-compile-resources.c:669
-#, c-format
+#: gio/glib-compile-resources.c:882
msgid "You should give exactly one file name\n"
msgstr "Трэба падаць дакладна адну назву файла\n"
-#: ../gio/glib-compile-schemas.c:778
-msgid "empty names are not permitted"
-msgstr "пустыя назвы забаронены"
+#: gio/glib-compile-schemas.c:94
+#, c-format
+msgid "nick must be a minimum of 2 characters"
+msgstr ""
+
+#: gio/glib-compile-schemas.c:105
+#, c-format
+msgid "Invalid numeric value"
+msgstr ""
+
+#: gio/glib-compile-schemas.c:113
+#, c-format
+msgid "<value nick='%s'/> already specified"
+msgstr "<value nick='%s'/> ужо вызначана"
+
+#: gio/glib-compile-schemas.c:121
+#, c-format
+msgid "value='%s' already specified"
+msgstr "value='%s' ужо вызначана"
+
+#: gio/glib-compile-schemas.c:135
+#, c-format
+msgid "flags values must have at most 1 bit set"
+msgstr ""
+
+#: gio/glib-compile-schemas.c:160
+#, c-format
+msgid "<%s> must contain at least one <value>"
+msgstr ""
+
+#: gio/glib-compile-schemas.c:316
+#, c-format
+msgid "<%s> is not contained in the specified range"
+msgstr ""
+
+#: gio/glib-compile-schemas.c:328
+#, c-format
+msgid "<%s> is not a valid member of the specified enumerated type"
+msgstr ""
+
+#: gio/glib-compile-schemas.c:334
+#, c-format
+msgid "<%s> contains string not in the specified flags type"
+msgstr ""
+
+#: gio/glib-compile-schemas.c:340
+#, c-format
+msgid "<%s> contains a string not in <choices>"
+msgstr ""
+
+#: gio/glib-compile-schemas.c:374
+msgid "<range/> already specified for this key"
+msgstr ""
+
+#: gio/glib-compile-schemas.c:392
+#, c-format
+msgid "<range> not allowed for keys of type “%s”"
+msgstr ""
+
+#: gio/glib-compile-schemas.c:409
+#, c-format
+msgid "<range> specified minimum is greater than maximum"
+msgstr ""
+
+#: gio/glib-compile-schemas.c:434
+#, c-format
+msgid "unsupported l10n category: %s"
+msgstr ""
+
+#: gio/glib-compile-schemas.c:442
+msgid "l10n requested, but no gettext domain given"
+msgstr ""
+
+#: gio/glib-compile-schemas.c:454
+msgid "translation context given for value without l10n enabled"
+msgstr ""
+
+#: gio/glib-compile-schemas.c:476
+#, c-format
+msgid "Failed to parse <default> value of type “%s”: "
+msgstr ""
+
+#: gio/glib-compile-schemas.c:493
+msgid ""
+"<choices> cannot be specified for keys tagged as having an enumerated type"
+msgstr ""
+
+#: gio/glib-compile-schemas.c:502
+msgid "<choices> already specified for this key"
+msgstr ""
+
+#: gio/glib-compile-schemas.c:514
+#, c-format
+msgid "<choices> not allowed for keys of type “%s”"
+msgstr ""
+
+#: gio/glib-compile-schemas.c:530
+#, c-format
+msgid "<choice value='%s'/> already given"
+msgstr ""
+
+#: gio/glib-compile-schemas.c:545
+#, c-format
+msgid "<choices> must contain at least one <choice>"
+msgstr ""
+
+#: gio/glib-compile-schemas.c:559
+msgid "<aliases> already specified for this key"
+msgstr ""
+
+#: gio/glib-compile-schemas.c:563
+msgid ""
+"<aliases> can only be specified for keys with enumerated or flags types or "
+"after <choices>"
+msgstr ""
+
+#: gio/glib-compile-schemas.c:582
+#, c-format
+msgid ""
+"<alias value='%s'/> given when “%s” is already a member of the enumerated "
+"type"
+msgstr ""
+
+#: gio/glib-compile-schemas.c:588
+#, c-format
+msgid "<alias value='%s'/> given when <choice value='%s'/> was already given"
+msgstr ""
+
+#: gio/glib-compile-schemas.c:596
+#, c-format
+msgid "<alias value='%s'/> already specified"
+msgstr ""
+
+#: gio/glib-compile-schemas.c:606
+#, c-format
+msgid "alias target “%s” is not in enumerated type"
+msgstr ""
+
+#: gio/glib-compile-schemas.c:607
+#, c-format
+msgid "alias target “%s” is not in <choices>"
+msgstr ""
-#: ../gio/glib-compile-schemas.c:788
+#: gio/glib-compile-schemas.c:622
#, c-format
-msgid "invalid name '%s': names must begin with a lowercase letter"
-msgstr "хібная назва \"%s\": назвы мусяць пачынацца з літары ніжняга рэгістра"
+msgid "<aliases> must contain at least one <alias>"
+msgstr ""
-#: ../gio/glib-compile-schemas.c:800
+#: gio/glib-compile-schemas.c:799
+msgid "Empty names are not permitted"
+msgstr ""
+
+#: gio/glib-compile-schemas.c:809
+#, c-format
+msgid "Invalid name “%s”: names must begin with a lowercase letter"
+msgstr ""
+
+#: gio/glib-compile-schemas.c:821
#, c-format
msgid ""
-"invalid name '%s': invalid character '%c'; only lowercase letters, numbers "
-"and hyphen ('-') are permitted."
+"Invalid name “%s”: invalid character “%c”; only lowercase letters, numbers "
+"and hyphen (“-”) are permitted"
msgstr ""
-"хібная назва \"%s\": хібны знак \"%c\"; дазволены толькі літары ніжняга "
-"рэгістра, лічбы і злучок."
-#: ../gio/glib-compile-schemas.c:809
+#: gio/glib-compile-schemas.c:830
#, c-format
-msgid "invalid name '%s': two successive hyphens ('--') are not permitted."
-msgstr "хібная назва \"%s\": два паслядоўныя злучкі забаронены."
+msgid "Invalid name “%s”: two successive hyphens (“--”) are not permitted"
+msgstr ""
-#: ../gio/glib-compile-schemas.c:818
+#: gio/glib-compile-schemas.c:839
#, c-format
-msgid "invalid name '%s': the last character may not be a hyphen ('-')."
-msgstr "хібная назва \"%s\": апошні знак не можа быць злучком."
+msgid "Invalid name “%s”: the last character may not be a hyphen (“-”)"
+msgstr ""
-#: ../gio/glib-compile-schemas.c:826
+#: gio/glib-compile-schemas.c:847
#, c-format
-msgid "invalid name '%s': maximum length is 1024"
-msgstr "хібная назва \"%s\": максімальная даўжыня = 1024"
+msgid "Invalid name “%s”: maximum length is 1024"
+msgstr ""
-#: ../gio/glib-compile-schemas.c:895
+#: gio/glib-compile-schemas.c:919
#, c-format
msgid "<child name='%s'> already specified"
msgstr "<child name='%s'> ужо вызначана"
-#: ../gio/glib-compile-schemas.c:921
-msgid "cannot add keys to a 'list-of' schema"
-msgstr "не ўдалося дадаць ключы да схемы \"list-of\""
+#: gio/glib-compile-schemas.c:945
+msgid "Cannot add keys to a “list-of” schema"
+msgstr ""
-#: ../gio/glib-compile-schemas.c:932
+#: gio/glib-compile-schemas.c:956
#, c-format
msgid "<key name='%s'> already specified"
msgstr "<key name='%s'> ужо вызначана"
-#: ../gio/glib-compile-schemas.c:950
+#: gio/glib-compile-schemas.c:974
#, c-format
msgid ""
"<key name='%s'> shadows <key name='%s'> in <schema id='%s'>; use <override> "
"to modify value"
msgstr ""
"<key name='%s'> засланяе <key name='%s'> з <schema id='%s'>; каб змяніць "
-"значэнне, ужыйце <override>"
+"значэнне, выкарыстайце <override>"
-#: ../gio/glib-compile-schemas.c:961
+#: gio/glib-compile-schemas.c:985
#, c-format
msgid ""
-"exactly one of 'type', 'enum' or 'flags' must be specified as an attribute "
+"Exactly one of “type”, “enum” or “flags” must be specified as an attribute "
"to <key>"
msgstr ""
-"дакладна адзін з атрыбутаў \"type\" (тып), \"enum\" (пералік) або \"flags"
-"\" (сцяжкі) мусіць быць вызначаны для <key>"
-#: ../gio/glib-compile-schemas.c:980
+#: gio/glib-compile-schemas.c:1004
#, c-format
msgid "<%s id='%s'> not (yet) defined."
-msgstr "<%s id='%s'> (пакуль) не зызначана."
+msgstr "<%s id='%s'> (пакуль) не вызначана."
-#: ../gio/glib-compile-schemas.c:995
+#: gio/glib-compile-schemas.c:1019
#, c-format
-msgid "invalid GVariant type string '%s'"
-msgstr "Хібны ланцужок тыпу GVariant: \"%s\""
+msgid "Invalid GVariant type string “%s”"
+msgstr "Няправільны радок тыпа GVariant «%s»"
-#: ../gio/glib-compile-schemas.c:1025
-msgid "<override> given but schema isn't extending anything"
-msgstr "ужыта <override>, але схема нічога не засланяе"
+#: gio/glib-compile-schemas.c:1049
+msgid "<override> given but schema isn’t extending anything"
+msgstr ""
-#: ../gio/glib-compile-schemas.c:1038
+#: gio/glib-compile-schemas.c:1062
#, c-format
-msgid "no <key name='%s'> to override"
-msgstr "няма <key name='%s'> для засланення"
+msgid "No <key name='%s'> to override"
+msgstr ""
-#: ../gio/glib-compile-schemas.c:1046
+#: gio/glib-compile-schemas.c:1070
#, c-format
msgid "<override name='%s'> already specified"
msgstr "<override name='%s'> ужо вызначана"
-#: ../gio/glib-compile-schemas.c:1117
+#: gio/glib-compile-schemas.c:1143
#, c-format
msgid "<schema id='%s'> already specified"
msgstr "<schema id='%s'> ужо вызначана"
-#: ../gio/glib-compile-schemas.c:1129
+#: gio/glib-compile-schemas.c:1155
#, c-format
-msgid "<schema id='%s'> extends not yet existing schema '%s'"
-msgstr "<schema id='%s'> засланяе яшчэ адсутную схему \"%s\""
+msgid "<schema id='%s'> extends not yet existing schema “%s”"
+msgstr ""
-#: ../gio/glib-compile-schemas.c:1145
+#: gio/glib-compile-schemas.c:1171
#, c-format
-msgid "<schema id='%s'> is list of not yet existing schema '%s'"
-msgstr "<schema id='%s'> з'яўляецца спісам для яшчэ адсутнай схемы \"%s\""
+msgid "<schema id='%s'> is list of not yet existing schema “%s”"
+msgstr ""
-#: ../gio/glib-compile-schemas.c:1153
+#: gio/glib-compile-schemas.c:1179
#, c-format
-msgid "Can not be a list of a schema with a path"
-msgstr "Не можа быць спісам схемы са сцежкай"
+msgid "Cannot be a list of a schema with a path"
+msgstr ""
-#: ../gio/glib-compile-schemas.c:1163
+#: gio/glib-compile-schemas.c:1189
#, c-format
-msgid "Can not extend a schema with a path"
-msgstr "Не можа засланяць схему са сцежкай"
+msgid "Cannot extend a schema with a path"
+msgstr ""
-#: ../gio/glib-compile-schemas.c:1173
+#: gio/glib-compile-schemas.c:1199
#, c-format
msgid ""
"<schema id='%s'> is a list, extending <schema id='%s'> which is not a list"
msgstr ""
-"<schema id='%s'> з'яўляецца спісам, які засланяе ня-спіс <schema id='%s'>"
+"<schema id='%s'> з'яўляецца спісам, які засланяе не-спіс <schema id='%s'>"
-#: ../gio/glib-compile-schemas.c:1183
+#: gio/glib-compile-schemas.c:1209
#, c-format
msgid ""
-"<schema id='%s' list-of='%s'> extends <schema id='%s' list-of='%s'> but '%s' "
-"does not extend '%s'"
+"<schema id='%s' list-of='%s'> extends <schema id='%s' list-of='%s'> but “%s” "
+"does not extend “%s”"
msgstr ""
-"<schema id='%s' list-of='%s'> засланяе <schema id='%s' list-of='%s'>, але "
-"\"%s\" не засланяе \"%s\""
-#: ../gio/glib-compile-schemas.c:1200
+#: gio/glib-compile-schemas.c:1226
#, c-format
-msgid "a path, if given, must begin and end with a slash"
-msgstr "сцежка мусіць пачынацца і канчацца знакам скосу"
+msgid "A path, if given, must begin and end with a slash"
+msgstr ""
-#: ../gio/glib-compile-schemas.c:1207
+#: gio/glib-compile-schemas.c:1233
#, c-format
-msgid "the path of a list must end with ':/'"
-msgstr "сцежка спіса мусіць канчацца \":/\""
+msgid "The path of a list must end with “:/”"
+msgstr ""
-#: ../gio/glib-compile-schemas.c:1239
+#: gio/glib-compile-schemas.c:1242
+#, c-format
+msgid ""
+"Warning: Schema “%s” has path “%s”. Paths starting with “/apps/”, “/"
+"desktop/” or “/system/” are deprecated."
+msgstr ""
+
+#: gio/glib-compile-schemas.c:1272
#, c-format
msgid "<%s id='%s'> already specified"
msgstr "<%s id='%s'> ужо вызначана"
-#: ../gio/glib-compile-schemas.c:1463
+#: gio/glib-compile-schemas.c:1422 gio/glib-compile-schemas.c:1438
+#, c-format
+msgid "Only one <%s> element allowed inside <%s>"
+msgstr ""
+
+#: gio/glib-compile-schemas.c:1520
#, c-format
msgid "Element <%s> not allowed at the top level"
msgstr "Элемент <%s> забаронены для найвышэйшага ўзроўню"
+#: gio/glib-compile-schemas.c:1538
+msgid "Element <default> is required in <key>"
+msgstr ""
+
+#: gio/glib-compile-schemas.c:1628
+#, c-format
+msgid "Text may not appear inside <%s>"
+msgstr ""
+
+#: gio/glib-compile-schemas.c:1696
+#, c-format
+msgid "Warning: undefined reference to <schema id='%s'/>"
+msgstr ""
+
#. Translators: Do not translate "--strict".
-#: ../gio/glib-compile-schemas.c:1757 ../gio/glib-compile-schemas.c:1828
-#: ../gio/glib-compile-schemas.c:1904
+#: gio/glib-compile-schemas.c:1835 gio/glib-compile-schemas.c:1914
+msgid "--strict was specified; exiting."
+msgstr ""
+
+#: gio/glib-compile-schemas.c:1847
+msgid "This entire file has been ignored."
+msgstr ""
+
+#: gio/glib-compile-schemas.c:1910
+msgid "Ignoring this file."
+msgstr ""
+
+#: gio/glib-compile-schemas.c:1965
#, c-format
-msgid "--strict was specified; exiting.\n"
-msgstr "выбрана опцыя --strict; выходзім.\n"
+msgid ""
+"No such key “%s” in schema “%s” as specified in override file “%s”; ignoring "
+"override for this key."
+msgstr ""
-#: ../gio/glib-compile-schemas.c:1765
+#: gio/glib-compile-schemas.c:1973
#, c-format
-msgid "This entire file has been ignored.\n"
-msgstr "Увесь гэты файл быў праігнараваны.\n"
+msgid ""
+"No such key “%s” in schema “%s” as specified in override file “%s” and --"
+"strict was specified; exiting."
+msgstr ""
-#: ../gio/glib-compile-schemas.c:1824
+#: gio/glib-compile-schemas.c:1995
#, c-format
-msgid "Ignoring this file.\n"
-msgstr "Ігнараванне гэтага файла.\n"
+msgid ""
+"Cannot provide per-desktop overrides for localized key “%s” in schema "
+"“%s” (override file “%s”); ignoring override for this key."
+msgstr ""
-#: ../gio/glib-compile-schemas.c:1864
+#: gio/glib-compile-schemas.c:2004
#, c-format
-msgid "No such key '%s' in schema '%s' as specified in override file '%s'"
+msgid ""
+"Cannot provide per-desktop overrides for localized key “%s” in schema "
+"“%s” (override file “%s”) and --strict was specified; exiting."
msgstr ""
-"У схеме \"%2$s\" няма ключа \"%1$s\", вызначанага ў файле заслоны \"%3$s\""
-#: ../gio/glib-compile-schemas.c:1870 ../gio/glib-compile-schemas.c:1928
-#: ../gio/glib-compile-schemas.c:1956
+#: gio/glib-compile-schemas.c:2028
#, c-format
-msgid "; ignoring override for this key.\n"
-msgstr "; заслона гэтага ключа праігнараваная.\n"
+msgid ""
+"Error parsing key “%s” in schema “%s” as specified in override file “%s”: "
+"%s. Ignoring override for this key."
+msgstr ""
-#: ../gio/glib-compile-schemas.c:1874 ../gio/glib-compile-schemas.c:1932
-#: ../gio/glib-compile-schemas.c:1960
+#: gio/glib-compile-schemas.c:2040
#, c-format
-msgid " and --strict was specified; exiting.\n"
-msgstr " , а таксама вызначана опцыя --strict; выходзім.\n"
+msgid ""
+"Error parsing key “%s” in schema “%s” as specified in override file “%s”: "
+"%s. --strict was specified; exiting."
+msgstr ""
-#: ../gio/glib-compile-schemas.c:1890
+#: gio/glib-compile-schemas.c:2067
#, c-format
msgid ""
-"error parsing key '%s' in schema '%s' as specified in override file '%s': %s."
+"Override for key “%s” in schema “%s” in override file “%s” is outside the "
+"range given in the schema; ignoring override for this key."
msgstr ""
-"памылка разбору ключа \"%s\" схемы \"%s\", вызначанага ў файле заслоны \"%s"
-"\": %s."
-#: ../gio/glib-compile-schemas.c:1900
+#: gio/glib-compile-schemas.c:2077
#, c-format
-msgid "Ignoring override for this key.\n"
-msgstr "Заслона для гэтага ключа праігнараваная.\n"
+msgid ""
+"Override for key “%s” in schema “%s” in override file “%s” is outside the "
+"range given in the schema and --strict was specified; exiting."
+msgstr ""
-#: ../gio/glib-compile-schemas.c:1918
+#: gio/glib-compile-schemas.c:2103
#, c-format
msgid ""
-"override for key '%s' in schema '%s' in override file '%s' is outside the "
-"range given in the schema"
+"Override for key “%s” in schema “%s” in override file “%s” is not in the "
+"list of valid choices; ignoring override for this key."
msgstr ""
-"заслона для ключа \"%s\" схемы \"%s\" у файле заслоны \"%s\" не ў дыяпазоне, "
-"вызначаным схемай"
-#: ../gio/glib-compile-schemas.c:1946
+#: gio/glib-compile-schemas.c:2113
#, c-format
msgid ""
-"override for key '%s' in schema '%s' in override file '%s' is not in the "
-"list of valid choices"
+"Override for key “%s” in schema “%s” in override file “%s” is not in the "
+"list of valid choices and --strict was specified; exiting."
msgstr ""
-"заслона для ключа \"%s\" схемы \"%s\" у файле заслоны \"%s\" не ў спісе "
-"магчымага выбару"
-#: ../gio/glib-compile-schemas.c:1999
-msgid "where to store the gschemas.compiled file"
-msgstr "дзе захоўваць файл gschemas.compiled"
+#: gio/glib-compile-schemas.c:2175
+msgid "Where to store the gschemas.compiled file"
+msgstr ""
-#: ../gio/glib-compile-schemas.c:2000
+#: gio/glib-compile-schemas.c:2176
msgid "Abort on any errors in schemas"
msgstr "Перапыніць працу пры знаходжанні памылак у схемах"
-#: ../gio/glib-compile-schemas.c:2001
+#: gio/glib-compile-schemas.c:2177
msgid "Do not write the gschema.compiled file"
msgstr "Не запісваць файл gschema.compiled"
-#: ../gio/glib-compile-schemas.c:2002
+#: gio/glib-compile-schemas.c:2178
msgid "Do not enforce key name restrictions"
msgstr "Не пільнавацца абмежаванняў на назвы ключоў"
-#: ../gio/glib-compile-schemas.c:2031
+#: gio/glib-compile-schemas.c:2207
msgid ""
"Compile all GSettings schema files into a schema cache.\n"
"Schema files are required to have the extension .gschema.xml,\n"
@@ -1627,491 +2898,561 @@ msgstr ""
"Файлы схем мусяць мець пашырэнне .gschema.xml,\n"
"а файл кэшу называецца gschemas.compiled."
-#: ../gio/glib-compile-schemas.c:2047
-#, c-format
-msgid "You should give exactly one directory name\n"
-msgstr "Трэба падаць дакладна адну назву каталога\n"
+#: gio/glib-compile-schemas.c:2228
+msgid "You should give exactly one directory name"
+msgstr ""
-#: ../gio/glib-compile-schemas.c:2086
-#, c-format
-msgid "No schema files found: "
-msgstr "Файлы схем не знойдзены: "
+#: gio/glib-compile-schemas.c:2271
+msgid "No schema files found: doing nothing."
+msgstr ""
-#: ../gio/glib-compile-schemas.c:2089
-#, c-format
-msgid "doing nothing.\n"
-msgstr "нічога не ўчынена.\n"
+#: gio/glib-compile-schemas.c:2273
+msgid "No schema files found: removed existing output file."
+msgstr ""
-#: ../gio/glib-compile-schemas.c:2092
+#: gio/glocalfile.c:563 gio/win32/gwinhttpfile.c:436
#, c-format
-msgid "removed existing output file.\n"
-msgstr "наяўны выхадны файл выдалены.\n"
-
-#: ../gio/glocaldirectorymonitor.c:252
-msgid "Unable to find default local directory monitor type"
-msgstr "Не ўдалося адшукаць прадвызначаны тып назіральніка за каталогам"
+msgid "Invalid filename %s"
+msgstr "Няправільная назва файла %s"
-#: ../gio/glocalfile.c:603 ../gio/win32/gwinhttpfile.c:422
+#: gio/glocalfile.c:996
#, c-format
-msgid "Invalid filename %s"
-msgstr "Хібная назва файла %s"
+msgid "Error getting filesystem info for %s: %s"
+msgstr ""
-#: ../gio/glocalfile.c:980
+#. Translators: This is an error message when trying to find
+#. * the enclosing (user visible) mount of a file, but none
+#. * exists.
+#.
+#: gio/glocalfile.c:1137
#, c-format
-msgid "Error getting filesystem info: %s"
-msgstr "Памылка атрымання звестак аб файлавай сістэме: %s"
+msgid "Containing mount for file %s not found"
+msgstr ""
-#: ../gio/glocalfile.c:1148
-msgid "Can't rename root directory"
-msgstr "Немагчыма пераназваць каранёвы каталог"
+#: gio/glocalfile.c:1160
+msgid "Can’t rename root directory"
+msgstr ""
-#: ../gio/glocalfile.c:1168 ../gio/glocalfile.c:1194
+#: gio/glocalfile.c:1178 gio/glocalfile.c:1201
#, c-format
-msgid "Error renaming file: %s"
-msgstr "Памылка пераназвання файла: %s"
+msgid "Error renaming file %s: %s"
+msgstr ""
-#: ../gio/glocalfile.c:1177
-msgid "Can't rename file, filename already exists"
-msgstr "Не ўдалося пераназваць файл, бо файл з такой назвай ужо існуе"
+#: gio/glocalfile.c:1185
+msgid "Can’t rename file, filename already exists"
+msgstr ""
-#: ../gio/glocalfile.c:1190 ../gio/glocalfile.c:2207 ../gio/glocalfile.c:2236
-#: ../gio/glocalfile.c:2396 ../gio/glocalfileoutputstream.c:553
+#: gio/glocalfile.c:1198 gio/glocalfile.c:2394 gio/glocalfile.c:2422
+#: gio/glocalfile.c:2561 gio/glocalfileoutputstream.c:658
msgid "Invalid filename"
-msgstr "Хібная назва файла"
+msgstr "Няправільная назва файла"
-#: ../gio/glocalfile.c:1357 ../gio/glocalfile.c:1381
-msgid "Can't open directory"
-msgstr "Не ўдалося адкрыць каталог"
+#: gio/glocalfile.c:1366 gio/glocalfile.c:1377
+#, c-format
+msgid "Error opening file %s: %s"
+msgstr ""
-#: ../gio/glocalfile.c:1365
+#: gio/glocalfile.c:1502
#, c-format
-msgid "Error opening file: %s"
-msgstr "Памылка адкрыцця файла: %s"
+msgid "Error removing file %s: %s"
+msgstr ""
-#: ../gio/glocalfile.c:1506
+#: gio/glocalfile.c:1996 gio/glocalfile.c:2007 gio/glocalfile.c:2034
#, c-format
-msgid "Error removing file: %s"
-msgstr "Памылка выдалення файла: %s"
+msgid "Error trashing file %s: %s"
+msgstr ""
-#: ../gio/glocalfile.c:1886
+#: gio/glocalfile.c:2054
#, c-format
-msgid "Error trashing file: %s"
-msgstr "Памылка пераносу файла ў сметніцу: %s"
+msgid "Unable to create trash directory %s: %s"
+msgstr ""
-#: ../gio/glocalfile.c:1909
+#: gio/glocalfile.c:2075
#, c-format
-msgid "Unable to create trash dir %s: %s"
-msgstr "Не ўдалося стварыць каталог для смецця \"%s\": %s"
+msgid "Unable to find toplevel directory to trash %s"
+msgstr ""
-#: ../gio/glocalfile.c:1930
-msgid "Unable to find toplevel directory for trash"
-msgstr "Не ўдалося адшукаць каталог верхняга ўзроўню для сметніцы"
+#: gio/glocalfile.c:2083
+#, c-format
+msgid "Trashing on system internal mounts is not supported"
+msgstr ""
-#: ../gio/glocalfile.c:2009 ../gio/glocalfile.c:2029
-msgid "Unable to find or create trash directory"
-msgstr "Не ўдалося адшукаць ці стварыць каталог для смецця"
+#: gio/glocalfile.c:2169 gio/glocalfile.c:2197
+#, c-format
+msgid "Unable to find or create trash directory %s to trash %s"
+msgstr ""
-#: ../gio/glocalfile.c:2063
+#: gio/glocalfile.c:2243
#, c-format
-msgid "Unable to create trashing info file: %s"
-msgstr "Не ўдалося стварыць файл са звесткамі аб смецці: %s"
+msgid "Unable to create trashing info file for %s: %s"
+msgstr ""
-#: ../gio/glocalfile.c:2092 ../gio/glocalfile.c:2097 ../gio/glocalfile.c:2177
-#: ../gio/glocalfile.c:2184
+#: gio/glocalfile.c:2305
#, c-format
-msgid "Unable to trash file: %s"
-msgstr "Не ўдалося перанесці файл у сметніцу: %s"
+msgid "Unable to trash file %s across filesystem boundaries"
+msgstr ""
-#: ../gio/glocalfile.c:2185 ../glib/gregex.c:280
-msgid "internal error"
-msgstr "унутраная памылка"
+#: gio/glocalfile.c:2309 gio/glocalfile.c:2365
+#, c-format
+msgid "Unable to trash file %s: %s"
+msgstr ""
-#: ../gio/glocalfile.c:2211
+#: gio/glocalfile.c:2371
#, c-format
-msgid "Error creating directory: %s"
-msgstr "Памылка стварэння каталога: %s"
+msgid "Unable to trash file %s"
+msgstr ""
-#: ../gio/glocalfile.c:2240
+#: gio/glocalfile.c:2397
+#, c-format
+msgid "Error creating directory %s: %s"
+msgstr ""
+
+#: gio/glocalfile.c:2426
#, c-format
msgid "Filesystem does not support symbolic links"
msgstr "Файлавая сістэма не падтрымлівае сімвальных спасылак"
-#: ../gio/glocalfile.c:2244
+#: gio/glocalfile.c:2429
#, c-format
-msgid "Error making symbolic link: %s"
-msgstr "Памылка стварэння сімвальнай спасылкі: %s"
+msgid "Error making symbolic link %s: %s"
+msgstr ""
-#: ../gio/glocalfile.c:2306 ../gio/glocalfile.c:2400
+#: gio/glocalfile.c:2472 gio/glocalfile.c:2507 gio/glocalfile.c:2564
#, c-format
-msgid "Error moving file: %s"
-msgstr "Памылка перамяшчэння файла: %s"
+msgid "Error moving file %s: %s"
+msgstr "Памылка перамяшчэння файла %s: %s"
-#: ../gio/glocalfile.c:2329
-msgid "Can't move directory over directory"
-msgstr "Немагчыма перамясціць каталог на месца іншага каталога"
+#: gio/glocalfile.c:2495
+msgid "Can’t move directory over directory"
+msgstr ""
-#: ../gio/glocalfile.c:2356 ../gio/glocalfileoutputstream.c:929
-#: ../gio/glocalfileoutputstream.c:943 ../gio/glocalfileoutputstream.c:958
-#: ../gio/glocalfileoutputstream.c:974 ../gio/glocalfileoutputstream.c:988
+#: gio/glocalfile.c:2521 gio/glocalfileoutputstream.c:1110
+#: gio/glocalfileoutputstream.c:1124 gio/glocalfileoutputstream.c:1139
+#: gio/glocalfileoutputstream.c:1156 gio/glocalfileoutputstream.c:1170
msgid "Backup file creation failed"
msgstr "Не ўдалося стварыць запасную копію файла"
-#: ../gio/glocalfile.c:2375
+#: gio/glocalfile.c:2540
#, c-format
msgid "Error removing target file: %s"
msgstr "Памылка выдалення мэтавага файла: %s"
-#: ../gio/glocalfile.c:2389
+#: gio/glocalfile.c:2554
msgid "Move between mounts not supported"
msgstr "Перамяшчэнне з аднаго прымацаванага дыска на іншы не падтрымліваецца"
-#: ../gio/glocalfile.c:2572
+#: gio/glocalfile.c:2728
#, c-format
msgid "Could not determine the disk usage of %s: %s"
msgstr "Не ўдалося вызначыць узровень выкарыстання дыска для %s: %s"
-#: ../gio/glocalfileinfo.c:722
+#: gio/glocalfileinfo.c:775
msgid "Attribute value must be non-NULL"
msgstr "Атрыбут не можа мець NULL-значэнне"
-#: ../gio/glocalfileinfo.c:729
-msgid "Invalid attribute type (string expected)"
-msgstr "Хібны тып атрыбута (чакаўся ланцужок знакаў)"
+#: gio/glocalfileinfo.c:782
+msgid "Invalid attribute type (string or invalid expected)"
+msgstr "Няправільны тып атрыбута (чакаўся радок або недапушчальны)"
-#: ../gio/glocalfileinfo.c:736
+#: gio/glocalfileinfo.c:789
msgid "Invalid extended attribute name"
-msgstr "Хібная назва пашыранага атрыбута"
+msgstr "Няправільная назва пашыранага атрыбута"
-#: ../gio/glocalfileinfo.c:776
+#: gio/glocalfileinfo.c:840
#, c-format
-msgid "Error setting extended attribute '%s': %s"
-msgstr "Памылка настаўлення пашыранага атрыбута \"%s\": %s"
+msgid "Error setting extended attribute “%s”: %s"
+msgstr ""
-#: ../gio/glocalfileinfo.c:1544
+#: gio/glocalfileinfo.c:1732 gio/win32/gwinhttpfile.c:191
msgid " (invalid encoding)"
-msgstr " (хібнае кадаванне)"
+msgstr " (няправільнае кадаванне)"
-#: ../gio/glocalfileinfo.c:1736 ../gio/glocalfileoutputstream.c:807
+#: gio/glocalfileinfo.c:1891 gio/glocalfileoutputstream.c:945
+#: gio/glocalfileoutputstream.c:997
#, c-format
-msgid "Error when getting information for file '%s': %s"
-msgstr "Памылка пры зборы звестак аб файле \"%s\": %s"
+msgid "Error when getting information for file “%s”: %s"
+msgstr "Памылка пры зборы звестак пра файл “%s”: %s"
-#: ../gio/glocalfileinfo.c:1982
+#: gio/glocalfileinfo.c:2157
#, c-format
msgid "Error when getting information for file descriptor: %s"
msgstr "Памылка пры зборы звестак аб дэскрыптары файла: %s"
-#: ../gio/glocalfileinfo.c:2027
+#: gio/glocalfileinfo.c:2202
msgid "Invalid attribute type (uint32 expected)"
-msgstr "Хібны тып атрыбута (чакаўся uint32)"
+msgstr "Няправільны тып атрыбута (чакаўся uint32)"
-#: ../gio/glocalfileinfo.c:2045
+#: gio/glocalfileinfo.c:2220
msgid "Invalid attribute type (uint64 expected)"
-msgstr "Хібны тып атрыбута (чакаўся uint64)"
+msgstr "Няправільны тып атрыбута (чакаўся uint64)"
-#: ../gio/glocalfileinfo.c:2064 ../gio/glocalfileinfo.c:2083
+#: gio/glocalfileinfo.c:2239 gio/glocalfileinfo.c:2258
msgid "Invalid attribute type (byte string expected)"
-msgstr "Хібны тып атрыбута (чакаўся ланцужок байтаў)"
+msgstr "Няправільны тып атрыбута (чакаўся радок байтаў)"
-#: ../gio/glocalfileinfo.c:2118
+#: gio/glocalfileinfo.c:2305
msgid "Cannot set permissions on symlinks"
msgstr "Немагчыма настаўляць дазволы для сімвальных спасылак"
-#: ../gio/glocalfileinfo.c:2134
+#: gio/glocalfileinfo.c:2321
#, c-format
msgid "Error setting permissions: %s"
msgstr "Памылка настаўлення дазволаў: %s"
-#: ../gio/glocalfileinfo.c:2185
+#: gio/glocalfileinfo.c:2372
#, c-format
msgid "Error setting owner: %s"
msgstr "Памылка прызначэння ўласніка: %s"
-#: ../gio/glocalfileinfo.c:2208
+#: gio/glocalfileinfo.c:2395
msgid "symlink must be non-NULL"
msgstr "сімвальная спасылка не можа мець NULL-значэнне"
-#: ../gio/glocalfileinfo.c:2218 ../gio/glocalfileinfo.c:2237
-#: ../gio/glocalfileinfo.c:2248
+#: gio/glocalfileinfo.c:2405 gio/glocalfileinfo.c:2424
+#: gio/glocalfileinfo.c:2435
#, c-format
msgid "Error setting symlink: %s"
msgstr "Памылка настаўлення сімвальнай спасылкі: %s"
-#: ../gio/glocalfileinfo.c:2227
+#: gio/glocalfileinfo.c:2414
msgid "Error setting symlink: file is not a symlink"
msgstr "Памылка настаўлення: файл не з'яўляецца сімвальнай спасылкай"
-#: ../gio/glocalfileinfo.c:2353
+#: gio/glocalfileinfo.c:2506
+#, c-format
+msgid "Extra nanoseconds %d for UNIX timestamp %lld are negative"
+msgstr ""
+
+#: gio/glocalfileinfo.c:2515
+#, c-format
+msgid "Extra nanoseconds %d for UNIX timestamp %lld reach 1 second"
+msgstr ""
+
+#: gio/glocalfileinfo.c:2525
+#, c-format
+msgid "UNIX timestamp %lld does not fit into 64 bits"
+msgstr ""
+
+#: gio/glocalfileinfo.c:2536
+#, c-format
+msgid "UNIX timestamp %lld is outside of the range supported by Windows"
+msgstr ""
+"Часавы адбітак UNIX %lld па-за межамі дыяпазону, які падтрымліваецца Windows"
+
+#: gio/glocalfileinfo.c:2668
+#, c-format
+msgid "File name “%s” cannot be converted to UTF-16"
+msgstr ""
+
+#: gio/glocalfileinfo.c:2687
+#, c-format
+msgid "File “%s” cannot be opened: Windows Error %lu"
+msgstr ""
+
+#: gio/glocalfileinfo.c:2700
+#, c-format
+msgid "Error setting modification or access time for file “%s”: %lu"
+msgstr ""
+
+#: gio/glocalfileinfo.c:2856
#, c-format
msgid "Error setting modification or access time: %s"
msgstr "Памылка настаўлення часавых метак змянення і доступу: %s"
-#: ../gio/glocalfileinfo.c:2376
+#: gio/glocalfileinfo.c:2879
msgid "SELinux context must be non-NULL"
msgstr "SELinux-кантэкст не можа мець NULL-значэнне"
-#: ../gio/glocalfileinfo.c:2391
+#: gio/glocalfileinfo.c:2886
+msgid "SELinux is not enabled on this system"
+msgstr "SELinux не ўключаны для гэтай сістэмы"
+
+#: gio/glocalfileinfo.c:2896
#, c-format
msgid "Error setting SELinux context: %s"
msgstr "Памылка настаўлення SELinux-кантэксту: %s"
-#: ../gio/glocalfileinfo.c:2398
-msgid "SELinux is not enabled on this system"
-msgstr "SELinux не ўключаны для гэтай сістэмы"
-
-#: ../gio/glocalfileinfo.c:2490
+#: gio/glocalfileinfo.c:2993
#, c-format
msgid "Setting attribute %s not supported"
msgstr "Настаўленне атрыбута %s не падтрымліваецца"
-#: ../gio/glocalfileinputstream.c:172 ../gio/glocalfileoutputstream.c:698
+#: gio/glocalfileinputstream.c:165 gio/glocalfileoutputstream.c:803
#, c-format
msgid "Error reading from file: %s"
msgstr "Памылка чытання з файла: %s"
-#: ../gio/glocalfileinputstream.c:203 ../gio/glocalfileinputstream.c:215
-#: ../gio/glocalfileinputstream.c:322 ../gio/glocalfileoutputstream.c:460
-#: ../gio/glocalfileoutputstream.c:1006
-#, c-format
-msgid "Error seeking in file: %s"
-msgstr "Памылка пракручвання змесціва файла: %s"
-
-#: ../gio/glocalfileinputstream.c:244 ../gio/glocalfileoutputstream.c:250
-#: ../gio/glocalfileoutputstream.c:344
+#: gio/glocalfileinputstream.c:196 gio/glocalfileoutputstream.c:355
+#: gio/glocalfileoutputstream.c:449
#, c-format
msgid "Error closing file: %s"
msgstr "Памылка закрыцця файла: %s"
-#: ../gio/glocalfilemonitor.c:176
+#: gio/glocalfileinputstream.c:274 gio/glocalfileoutputstream.c:565
+#: gio/glocalfileoutputstream.c:1188
+#, c-format
+msgid "Error seeking in file: %s"
+msgstr "Памылка пракручвання змесціва файла: %s"
+
+#: gio/glocalfilemonitor.c:882
msgid "Unable to find default local file monitor type"
msgstr ""
"Не ўдалося вызначыць прадвызначаны тып назіральніка за мясцовымі файламі"
-#: ../gio/glocalfileoutputstream.c:198 ../gio/glocalfileoutputstream.c:230
-#: ../gio/glocalfileoutputstream.c:719
+#: gio/glocalfileoutputstream.c:222 gio/glocalfileoutputstream.c:300
+#: gio/glocalfileoutputstream.c:336 gio/glocalfileoutputstream.c:824
#, c-format
msgid "Error writing to file: %s"
msgstr "Памылка запісу ў файл: %s"
-#: ../gio/glocalfileoutputstream.c:277
+#: gio/glocalfileoutputstream.c:382
#, c-format
msgid "Error removing old backup link: %s"
-msgstr "Памылка выдалення старой запасной спасылкі: %s"
+msgstr "Памылка выдалення старой рэзервовай спасылкі: %s"
-#: ../gio/glocalfileoutputstream.c:291 ../gio/glocalfileoutputstream.c:304
+#: gio/glocalfileoutputstream.c:396 gio/glocalfileoutputstream.c:409
#, c-format
msgid "Error creating backup copy: %s"
-msgstr "Памылка стварэння запасной копіі: %s"
+msgstr "Памылка стварэння рэзервовай копіі: %s"
-#: ../gio/glocalfileoutputstream.c:322
+#: gio/glocalfileoutputstream.c:427
#, c-format
msgid "Error renaming temporary file: %s"
-msgstr "Памылка пераназвання часовага файла: %s"
+msgstr "Памылка перайменавання часовага файла: %s"
-#: ../gio/glocalfileoutputstream.c:506 ../gio/glocalfileoutputstream.c:1057
+#: gio/glocalfileoutputstream.c:611 gio/glocalfileoutputstream.c:1242
#, c-format
msgid "Error truncating file: %s"
msgstr "Памылка абразання файла: %s"
-#: ../gio/glocalfileoutputstream.c:559 ../gio/glocalfileoutputstream.c:789
-#: ../gio/glocalfileoutputstream.c:1038
+#: gio/glocalfileoutputstream.c:664 gio/glocalfileoutputstream.c:909
+#: gio/glocalfileoutputstream.c:1223 gio/gsubprocess.c:231
#, c-format
-msgid "Error opening file '%s': %s"
-msgstr "Памылка адкрыцця файла \"%s\": %s"
+msgid "Error opening file “%s”: %s"
+msgstr "Памылка адкрыцця файла “%s”: %s"
-#: ../gio/glocalfileoutputstream.c:820
+#: gio/glocalfileoutputstream.c:959
msgid "Target file is a directory"
msgstr "Мэтавы файл з'яўляецца каталогам"
-#: ../gio/glocalfileoutputstream.c:825
+#: gio/glocalfileoutputstream.c:973
msgid "Target file is not a regular file"
msgstr "Мэтавы файл не з'яўляецца звычайным файлам"
-#: ../gio/glocalfileoutputstream.c:837
+#: gio/glocalfileoutputstream.c:1015
msgid "The file was externally modified"
msgstr "Файл быў зменены звонку"
-#: ../gio/glocalfileoutputstream.c:1022
+#: gio/glocalfileoutputstream.c:1205
#, c-format
msgid "Error removing old file: %s"
msgstr "Памылка выдалення старога файла: %s"
-#: ../gio/gmemoryinputstream.c:473 ../gio/gmemoryoutputstream.c:736
+#: gio/gmemoryinputstream.c:476 gio/gmemoryoutputstream.c:764
msgid "Invalid GSeekType supplied"
-msgstr "Хібны тып GSeekType"
+msgstr "Няправільны тып GSeekType"
-#: ../gio/gmemoryinputstream.c:483
+#: gio/gmemoryinputstream.c:486
msgid "Invalid seek request"
-msgstr "Хібны запыт пракруткі"
+msgstr "Няправільны запыт пракруткі"
-#: ../gio/gmemoryinputstream.c:507
+#: gio/gmemoryinputstream.c:510
msgid "Cannot truncate GMemoryInputStream"
msgstr "Немагчыма абрэзаць струмень GMemoryInputStream"
-#: ../gio/gmemoryoutputstream.c:541
+#: gio/gmemoryoutputstream.c:570
msgid "Memory output stream not resizable"
msgstr "Немагчыма змяняць памер струменя вываду змесціва памяці"
-#: ../gio/gmemoryoutputstream.c:557
+#: gio/gmemoryoutputstream.c:586
msgid "Failed to resize memory output stream"
msgstr "Не ўдалося змяніць памер струменя вываду змесціва памяці"
-#: ../gio/gmemoryoutputstream.c:645
+#: gio/gmemoryoutputstream.c:665
msgid ""
"Amount of memory required to process the write is larger than available "
"address space"
msgstr "Памяць, патрэбная для запісу, большая за даступную адрасную прастору"
-#: ../gio/gmemoryoutputstream.c:746
+#: gio/gmemoryoutputstream.c:774
msgid "Requested seek before the beginning of the stream"
-msgstr "Атрыманы загад на пракрутку струменя далей за яго пачатак"
+msgstr "Атрыманы запыт на пракрутку струменя далей за яго пачатак"
-#: ../gio/gmemoryoutputstream.c:755
+#: gio/gmemoryoutputstream.c:789
msgid "Requested seek beyond the end of the stream"
-msgstr "Атрыманы загад на пракрутку далей за яго канец"
+msgstr "Атрыманы запыт на пракрутку далей за яго канец"
#. Translators: This is an error
#. * message for mount objects that
#. * don't implement unmount.
-#: ../gio/gmount.c:395
-msgid "mount doesn't implement \"unmount\""
-msgstr "прымацаваны дыск не падтрымлівае функцыі \"unmount\""
+#: gio/gmount.c:401
+msgid "mount doesn’t implement “unmount”"
+msgstr ""
#. Translators: This is an error
#. * message for mount objects that
#. * don't implement eject.
-#: ../gio/gmount.c:471
-msgid "mount doesn't implement \"eject\""
-msgstr "прымацаваны дыск не падтрымлівае функцыі \"eject\""
+#: gio/gmount.c:477
+msgid "mount doesn’t implement “eject”"
+msgstr ""
#. Translators: This is an error
#. * message for mount objects that
#. * don't implement any of unmount or unmount_with_operation.
-#: ../gio/gmount.c:549
-msgid "mount doesn't implement \"unmount\" or \"unmount_with_operation\""
+#: gio/gmount.c:555
+msgid "mount doesn’t implement “unmount” or “unmount_with_operation”"
msgstr ""
-"прымацаваны дыск не падтрымлівае функцый \"unmount\" і "
-"\"unmount_with_operation\""
#. Translators: This is an error
#. * message for mount objects that
#. * don't implement any of eject or eject_with_operation.
-#: ../gio/gmount.c:634
-msgid "mount doesn't implement \"eject\" or \"eject_with_operation\""
+#: gio/gmount.c:640
+msgid "mount doesn’t implement “eject” or “eject_with_operation”"
msgstr ""
-"прымацаваны дыск не падтрымлівае функцый \"eject\" і \"eject_with_operation\""
#. Translators: This is an error
#. * message for mount objects that
#. * don't implement remount.
-#: ../gio/gmount.c:722
-msgid "mount doesn't implement \"remount\""
-msgstr "прымацаваны дыск не падтрымлівае функцыі \"remount\""
+#: gio/gmount.c:728
+msgid "mount doesn’t implement “remount”"
+msgstr ""
#. Translators: This is an error
#. * message for mount objects that
#. * don't implement content type guessing.
-#: ../gio/gmount.c:803
-msgid "mount doesn't implement content type guessing"
-msgstr "прымацаваны дыск не падтрымлівае функцыі вызначэння тыпу змесціва"
+#: gio/gmount.c:810
+msgid "mount doesn’t implement content type guessing"
+msgstr ""
#. Translators: This is an error
#. * message for mount objects that
#. * don't implement content type guessing.
-#: ../gio/gmount.c:889
-msgid "mount doesn't implement synchronous content type guessing"
+#: gio/gmount.c:897
+msgid "mount doesn’t implement synchronous content type guessing"
msgstr ""
-"прымацаваны дыск не падтрымлівае функцыі сіхроннага вызначэння тыпу змесціва"
-#: ../gio/gnetworkaddress.c:353
+#: gio/gnetworkaddress.c:417
#, c-format
-msgid "Hostname '%s' contains '[' but not ']'"
-msgstr "Назва машыны \"%s\" змяшчае знак \"[\" без \"]\""
+msgid "Hostname “%s” contains “[” but not “]”"
+msgstr ""
-#: ../gio/gnetworkmonitorbase.c:191 ../gio/gnetworkmonitorbase.c:294
+#: gio/gnetworkmonitorbase.c:221 gio/gnetworkmonitorbase.c:325
msgid "Network unreachable"
msgstr "Сетка недасягальная"
-#: ../gio/gnetworkmonitorbase.c:229 ../gio/gnetworkmonitorbase.c:259
+#: gio/gnetworkmonitorbase.c:259 gio/gnetworkmonitorbase.c:289
msgid "Host unreachable"
msgstr "Машына недасягальная"
-#: ../gio/gnetworkmonitornetlink.c:97 ../gio/gnetworkmonitornetlink.c:109
-#: ../gio/gnetworkmonitornetlink.c:128
+#: gio/gnetworkmonitornetlink.c:101 gio/gnetworkmonitornetlink.c:113
+#: gio/gnetworkmonitornetlink.c:132
#, c-format
msgid "Could not create network monitor: %s"
msgstr "Не ўдалося стварыць сеткавага назіральніка: %s"
-#: ../gio/gnetworkmonitornetlink.c:118
+#: gio/gnetworkmonitornetlink.c:122
msgid "Could not create network monitor: "
msgstr "Не ўдалося стварыць сеткавага назіральніка: "
-#: ../gio/gnetworkmonitornetlink.c:176
+#: gio/gnetworkmonitornetlink.c:185
msgid "Could not get network status: "
msgstr "Не ўдалося вызначыць сеткавы стан: "
-#: ../gio/goutputstream.c:201 ../gio/goutputstream.c:453
-msgid "Output stream doesn't implement write"
-msgstr "Выхадны струмень не падтрымлівае функцыі запісу"
+#: gio/gnetworkmonitornm.c:313
+#, c-format
+msgid "NetworkManager not running"
+msgstr "NetworkManager не запушчаны"
-#: ../gio/goutputstream.c:414 ../gio/goutputstream.c:939
+#: gio/gnetworkmonitornm.c:324
+#, c-format
+msgid "NetworkManager version too old"
+msgstr "Версія NetworkManager занадта старая"
+
+#: gio/goutputstream.c:234 gio/goutputstream.c:777
+msgid "Output stream doesn’t implement write"
+msgstr ""
+
+#: gio/goutputstream.c:474 gio/goutputstream.c:1535
+#, c-format
+msgid "Sum of vectors passed to %s too large"
+msgstr ""
+
+#: gio/goutputstream.c:738 gio/goutputstream.c:1763
msgid "Source stream is already closed"
-msgstr "Выточны струмень ужо закрыты"
+msgstr "Зыходны струмень ужо закрыты"
+
+#: gio/gproxyaddressenumerator.c:324 gio/gproxyaddressenumerator.c:342
+msgid "Unspecified proxy lookup failure"
+msgstr ""
-#: ../gio/gresource.c:291 ../gio/gresource.c:539 ../gio/gresource.c:556
-#: ../gio/gresource.c:677 ../gio/gresource.c:746 ../gio/gresource.c:807
-#: ../gio/gresource.c:887 ../gio/gresourcefile.c:454
-#: ../gio/gresourcefile.c:555 ../gio/gresourcefile.c:657
+#. Translators: the first placeholder is a domain name, the
+#. * second is an error message
+#: gio/gresolver.c:403 gio/gthreadedresolver.c:152 gio/gthreadedresolver.c:170
+#: gio/gthreadedresolver.c:782 gio/gthreadedresolver.c:806
+#: gio/gthreadedresolver.c:831 gio/gthreadedresolver.c:846
#, c-format
-msgid "The resource at '%s' does not exist"
-msgstr "Рэсурс на \"%s\" не існуе"
+msgid "Error resolving “%s”: %s"
+msgstr ""
+
+#. Translators: The placeholder is for a function name.
+#: gio/gresolver.c:472 gio/gresolver.c:632
+#, c-format
+msgid "%s not implemented"
+msgstr "%s не рэалізавана"
+
+#: gio/gresolver.c:1001 gio/gresolver.c:1053
+msgid "Invalid domain"
+msgstr "Няправільны дамен"
-#: ../gio/gresource.c:456
+#: gio/gresource.c:683 gio/gresource.c:945 gio/gresource.c:985
+#: gio/gresource.c:1109 gio/gresource.c:1181 gio/gresource.c:1255
+#: gio/gresource.c:1336 gio/gresourcefile.c:478 gio/gresourcefile.c:601
+#: gio/gresourcefile.c:752
#, c-format
-msgid "The resource at '%s' failed to decompress"
-msgstr "Памылка распакавання рэсурса на \"%s\""
+msgid "The resource at “%s” does not exist"
+msgstr ""
-#: ../gio/gresourcefile.c:653
+#: gio/gresource.c:850
#, c-format
-msgid "The resource at '%s' is not a directory"
-msgstr "Рэсурс на \"%s\" не з'яўляецца каталогам"
+msgid "The resource at “%s” failed to decompress"
+msgstr ""
-#: ../gio/gresourcefile.c:861
-msgid "Input stream doesn't implement seek"
-msgstr "Уваходны струмень не мае функцыі пошуку"
+#: gio/gresourcefile.c:658
+msgid "Resource files cannot be renamed"
+msgstr ""
-#: ../gio/gresource-tool.c:475 ../gio/gsettings-tool.c:542
-msgid "Print help"
-msgstr "Вывесці даведку"
+#: gio/gresourcefile.c:748
+#, c-format
+msgid "The resource at “%s” is not a directory"
+msgstr ""
-#: ../gio/gresource-tool.c:476 ../gio/gresource-tool.c:544
-msgid "[COMMAND]"
-msgstr "[ЗАГАД]"
+#: gio/gresourcefile.c:956
+msgid "Input stream doesn’t implement seek"
+msgstr ""
-#: ../gio/gresource-tool.c:481
+#: gio/gresource-tool.c:502
msgid "List sections containing resources in an elf FILE"
msgstr "Пералічыць секцыі, якія змяшчаюць рэсурсы ў elf-файле ФАЙЛ"
-#: ../gio/gresource-tool.c:487
+#: gio/gresource-tool.c:508
msgid ""
"List resources\n"
"If SECTION is given, only list resources in this section\n"
"If PATH is given, only list matching resources"
msgstr ""
"Пералічыць рэсурсы\n"
-"Калі дадзена СЕКЦЫЯ, пералічвае толькі рэсурсы з гэтай секцыі\n"
-"Калі дадзена СЦЕЖКА, пералічвае толькі адпаведныя рэсурсы"
+"Калі ўказана СЕКЦЫЯ, пералічвае толькі рэсурсы з гэтай секцыі\n"
+"Калі ўказана ШЛЯХ, пералічвае толькі адпаведныя рэсурсы"
-#: ../gio/gresource-tool.c:490 ../gio/gresource-tool.c:500
+#: gio/gresource-tool.c:511 gio/gresource-tool.c:521
msgid "FILE [PATH]"
-msgstr "ФАЙЛ [СЦЕЖКА]"
+msgstr "ФАЙЛ [ШЛЯХ]"
-#: ../gio/gresource-tool.c:491 ../gio/gresource-tool.c:501
-#: ../gio/gresource-tool.c:508
+#: gio/gresource-tool.c:512 gio/gresource-tool.c:522 gio/gresource-tool.c:529
msgid "SECTION"
msgstr "СЕКЦЫЯ"
-#: ../gio/gresource-tool.c:496
+#: gio/gresource-tool.c:517
msgid ""
"List resources with details\n"
"If SECTION is given, only list resources in this section\n"
@@ -2123,27 +3464,18 @@ msgstr ""
"Калі дадзена СЦЕЖКА, пералічвае толькі адпаведныя рэсурсы\n"
"Падрабязнасці ўключаюць секцыю, памер і сцісканне"
-#: ../gio/gresource-tool.c:506
+#: gio/gresource-tool.c:527
msgid "Extract a resource file to stdout"
-msgstr "Выняць файл рэсурса ў стандартны выхад"
+msgstr "Выняць файл рэсурсу ў стандартны выхад"
-#: ../gio/gresource-tool.c:507
+#: gio/gresource-tool.c:528
msgid "FILE PATH"
-msgstr "СЦЕЖКА ФАЙЛ"
+msgstr "ФАЙЛ ШЛЯХ"
-#: ../gio/gresource-tool.c:513 ../gio/gsettings-tool.c:628
-#, c-format
-msgid ""
-"Unknown command %s\n"
-"\n"
-msgstr ""
-"Невядомы загад %s\n"
-"\n"
-
-#: ../gio/gresource-tool.c:521
+#: gio/gresource-tool.c:542
msgid ""
"Usage:\n"
-" gresource [--section SECTION] COMMAND [ARGS...]\n"
+" gresource [--section SECTION] COMMAND [ARGS…]\n"
"\n"
"Commands:\n"
" help Show this information\n"
@@ -2152,23 +3484,24 @@ msgid ""
" details List resources with details\n"
" extract Extract a resource\n"
"\n"
-"Use 'gresource help COMMAND' to get detailed help.\n"
+"Use “gresource help COMMAND” to get detailed help.\n"
"\n"
msgstr ""
-"Правілы выкарыстання:\n"
-" gresource [--section SECTION] COMMAND [ARGS...]\n"
+"Выкарыстанне:\n"
+" gresource [--section СЕКЦЫЯ] КАМАНДА [АРГУМЕНТЫ…]\n"
"\n"
-"Загады:\n"
-" help Паказаць гэту інфармацыю\n"
-" sections Пералічыць секцыі рэсурсаў\n"
-" list Пералічыць рэсурсы\n"
-" details Пералічыць рэсурсы з падрабязнасцямі\n"
+"Каманды:\n"
+" help Паказаць гэту даведку\n"
+" sections Паказаць секцыі рэсурсу sections\n"
+" list Паказаць рэсурсы\n"
+" details Паказаць рэсурсы з падрабязнасцямі\n"
" extract Выняць рэсурс\n"
"\n"
-"Выкарыстоўвайце \"gresource help ЗАГАД\", каб атрымаць падрабязную даведку.\n"
+"Выкарыстоўвайце «gresource help КАМАНДА», каб атрымаць больш падрабязную "
+"даведку.\n"
"\n"
-#: ../gio/gresource-tool.c:535
+#: gio/gresource-tool.c:556
#, c-format
msgid ""
"Usage:\n"
@@ -2177,128 +3510,108 @@ msgid ""
"%s\n"
"\n"
msgstr ""
-"Правілы выкарыстання:\n"
+"Выкарыстанне:\n"
" gresource %s%s%s %s\n"
"\n"
"%s\n"
"\n"
-#: ../gio/gresource-tool.c:538 ../gio/gsettings-tool.c:661
-msgid "Arguments:\n"
-msgstr "Аргументы:\n"
-
-#: ../gio/gresource-tool.c:542
+#: gio/gresource-tool.c:563
msgid " SECTION An (optional) elf section name\n"
-msgstr " СЕКЦЫЯ (Неабавязковая) назва elf-секцыі\n"
+msgstr " СЕКЦЫЯ (неабавязкова) назва elf-секцыі\n"
-#: ../gio/gresource-tool.c:546 ../gio/gsettings-tool.c:668
+#: gio/gresource-tool.c:567 gio/gsettings-tool.c:720
msgid " COMMAND The (optional) command to explain\n"
-msgstr " ЗАГАД (Неабавязковы) загад, які трэба патлумачыць\n"
+msgstr " КАМАНДА (неабавязкова) каманда, якую трэба патлумачыць\n"
-#: ../gio/gresource-tool.c:552
+#: gio/gresource-tool.c:573
msgid " FILE An elf file (a binary or a shared library)\n"
-msgstr " ФАЙЛ Elf-файл (двайковая ці супольная бібліятэка)\n"
+msgstr " ФАЙЛ Elf-файл (двайковая або сумесная бібліятэка)\n"
-#: ../gio/gresource-tool.c:555
+#: gio/gresource-tool.c:576
msgid ""
" FILE An elf file (a binary or a shared library)\n"
" or a compiled resource file\n"
msgstr ""
-" ФАЙЛ Elf-файл (двайковая ці супольная бібліятэка)\n"
-" ці скампіляваны файл рэсурса\n"
+" ФАЙЛ Elf-файл (двайковая або сумесная бібліятэка)\n"
+" ці скампіляваны файл рэсурсу\n"
-#: ../gio/gresource-tool.c:559
+#: gio/gresource-tool.c:580
msgid "[PATH]"
-msgstr "[СЦЕЖКА]"
+msgstr "[ШЛЯХ]"
-#: ../gio/gresource-tool.c:561
+#: gio/gresource-tool.c:582
msgid " PATH An (optional) resource path (may be partial)\n"
-msgstr " СЦЕЖКА (Неабавязковая) сцежка рэсурса (можа быць няпоўнай)\n"
+msgstr " ШЛЯХ (неабавязкова) шлях рэсурсу (можа быць няпоўным)\n"
-#: ../gio/gresource-tool.c:562
+#: gio/gresource-tool.c:583
msgid "PATH"
-msgstr "СЦЕЖКА"
+msgstr "ШЛЯХ"
-#: ../gio/gresource-tool.c:564
+#: gio/gresource-tool.c:585
msgid " PATH A resource path\n"
-msgstr " СЦЕЖКА Сцежка рэсурса\n"
+msgstr " ШЛЯХ Шлях рэсурсу\n"
-#: ../gio/gsettings-tool.c:57 ../gio/gsettings-tool.c:78
+#: gio/gsettings-tool.c:51 gio/gsettings-tool.c:72 gio/gsettings-tool.c:925
#, c-format
-msgid "No such schema '%s'\n"
-msgstr "Схема \"%s\" не існуе\n"
+msgid "No such schema “%s”\n"
+msgstr "Схема «%s» адсутнічае\n"
-#: ../gio/gsettings-tool.c:63
+#: gio/gsettings-tool.c:57
#, c-format
-msgid "Schema '%s' is not relocatable (path must not be specified)\n"
-msgstr "Схема \"%s\" непераносная (трэба вызначыць сцежку)\n"
+msgid "Schema “%s” is not relocatable (path must not be specified)\n"
+msgstr "Схема “%s” не са зменным шляхам (шлях вызначаць не трэба)\n"
-#: ../gio/gsettings-tool.c:84
+#: gio/gsettings-tool.c:78
#, c-format
-msgid "Schema '%s' is relocatable (path must be specified)\n"
-msgstr "Схема \"%s\" пераносная (трэба вызначыць сцежку)\n"
+msgid "Schema “%s” is relocatable (path must be specified)\n"
+msgstr "Схема “%s” са зменным шляхам (шлях трэба вызначыць)\n"
-#: ../gio/gsettings-tool.c:98
-#, c-format
+#: gio/gsettings-tool.c:92
msgid "Empty path given.\n"
-msgstr "Сцежка пустая.\n"
+msgstr "Шлях пусты.\n"
-#: ../gio/gsettings-tool.c:104
-#, c-format
+#: gio/gsettings-tool.c:98
msgid "Path must begin with a slash (/)\n"
-msgstr "Сцежка мусіць пачынацца са скосу (\"/\")\n"
+msgstr "Шлях павінен пачынацца з касой рысы (/)\n"
-#: ../gio/gsettings-tool.c:110
-#, c-format
+#: gio/gsettings-tool.c:104
msgid "Path must end with a slash (/)\n"
-msgstr "Сцежка мусіць канчацца скосам (\"/\")\n"
+msgstr "Шлях павінен канчацца касой рысай (/)\n"
-#: ../gio/gsettings-tool.c:116
-#, c-format
+#: gio/gsettings-tool.c:110
msgid "Path must not contain two adjacent slashes (//)\n"
-msgstr "Сцежка не можа змяшчаць два паслядоўныя скосы (\"//\")\n"
+msgstr "Шлях не павінен змяшчаць дзве касыя рысы побач (//)\n"
-#: ../gio/gsettings-tool.c:137
-#, c-format
-msgid "No such key '%s'\n"
-msgstr "Ключ \"%s\" не існуе\n"
-
-#: ../gio/gsettings-tool.c:511
-#, c-format
+#: gio/gsettings-tool.c:555
msgid "The provided value is outside of the valid range\n"
-msgstr "Значэнне не ў дазволеным дыяпазоне\n"
+msgstr "Указанае значэнне па-за межамі дазволенага дыяпазону\n"
-#: ../gio/gsettings-tool.c:518
-#, c-format
+#: gio/gsettings-tool.c:562
msgid "The key is not writable\n"
msgstr "Няма дазволу на запіс ключа\n"
-#: ../gio/gsettings-tool.c:548
-msgid "Print version information and exit"
-msgstr "Вывесці звесткі аб версіі праграмы і выйсці"
-
-#: ../gio/gsettings-tool.c:554
+#: gio/gsettings-tool.c:598
msgid "List the installed (non-relocatable) schemas"
msgstr "Пералічыць усталяваныя (непераносныя) схемы"
-#: ../gio/gsettings-tool.c:560
+#: gio/gsettings-tool.c:604
msgid "List the installed relocatable schemas"
msgstr "Пералічыць усталяваныя пераносныя схемы"
-#: ../gio/gsettings-tool.c:566
+#: gio/gsettings-tool.c:610
msgid "List the keys in SCHEMA"
-msgstr "Пералічыць ключы СХЕМЫ"
+msgstr "Паказаць ключы ў СХЕМЕ"
-#: ../gio/gsettings-tool.c:567 ../gio/gsettings-tool.c:573
-#: ../gio/gsettings-tool.c:610
+#: gio/gsettings-tool.c:611 gio/gsettings-tool.c:617 gio/gsettings-tool.c:660
msgid "SCHEMA[:PATH]"
-msgstr "СХЕМА[:СЦЕЖКА]"
+msgstr "СХЕМА[:ШЛЯХ]"
-#: ../gio/gsettings-tool.c:572
+#: gio/gsettings-tool.c:616
msgid "List the children of SCHEMA"
-msgstr "Пералічыць нашчадкаў СХЕМЫ"
+msgstr "Паказаць нашчадкаў СХЕМЫ"
-#: ../gio/gsettings-tool.c:578
+#: gio/gsettings-tool.c:622
msgid ""
"List keys and values, recursively\n"
"If no SCHEMA is given, list all keys\n"
@@ -2306,44 +3619,48 @@ msgstr ""
"Рэкурсіўна пералічыць ключы і іх значэнні\n"
"Калі СХЕМА не вызначана, пералічыць усе ключы\n"
-#: ../gio/gsettings-tool.c:580
+#: gio/gsettings-tool.c:624
msgid "[SCHEMA[:PATH]]"
-msgstr "[СХЕМА[:СЦЕЖКА]]"
+msgstr "[СХЕМА[:ШЛЯХ]]"
-#: ../gio/gsettings-tool.c:585
+#: gio/gsettings-tool.c:629
msgid "Get the value of KEY"
msgstr "Атрымаць значэнне КЛЮЧА"
-#: ../gio/gsettings-tool.c:586 ../gio/gsettings-tool.c:592
-#: ../gio/gsettings-tool.c:604 ../gio/gsettings-tool.c:616
+#: gio/gsettings-tool.c:630 gio/gsettings-tool.c:636 gio/gsettings-tool.c:642
+#: gio/gsettings-tool.c:654 gio/gsettings-tool.c:666
msgid "SCHEMA[:PATH] KEY"
-msgstr "СХЕМА[:СЦЕЖКА] КЛЮЧ"
+msgstr "СХЕМА[:ШЛЯХ] КЛЮЧ"
-#: ../gio/gsettings-tool.c:591
+#: gio/gsettings-tool.c:635
msgid "Query the range of valid values for KEY"
msgstr "Запытаць аб дыяпазоне магчымых значэнняў КЛЮЧА"
-#: ../gio/gsettings-tool.c:597
+#: gio/gsettings-tool.c:641
+msgid "Query the description for KEY"
+msgstr ""
+
+#: gio/gsettings-tool.c:647
msgid "Set the value of KEY to VALUE"
msgstr "Прызначыць ЗНАЧЭННЕ КЛЮЧУ"
-#: ../gio/gsettings-tool.c:598
+#: gio/gsettings-tool.c:648
msgid "SCHEMA[:PATH] KEY VALUE"
-msgstr "СХЕМА[:СЦЕЖКА] КЛЮЧ ЗНАЧЭННЕ"
+msgstr "СХЕМА[:ШЛЯХ] КЛЮЧ ЗНАЧЭННЕ"
-#: ../gio/gsettings-tool.c:603
+#: gio/gsettings-tool.c:653
msgid "Reset KEY to its default value"
msgstr "Вярнуць прадвызначанае значэнне КЛЮЧА"
-#: ../gio/gsettings-tool.c:609
+#: gio/gsettings-tool.c:659
msgid "Reset all keys in SCHEMA to their defaults"
msgstr "Вярнуць прадвызначаныя значэнні ўсіх ключоў СХЕМЫ"
-#: ../gio/gsettings-tool.c:615
+#: gio/gsettings-tool.c:665
msgid "Check if KEY is writable"
-msgstr "Праверыць магчымасць змянення значэння КЛЮЧА"
+msgstr "Праверыць, ці ёсць дазвол на запіс ключа"
-#: ../gio/gsettings-tool.c:621
+#: gio/gsettings-tool.c:671
msgid ""
"Monitor KEY for changes.\n"
"If no KEY is specified, monitor all keys in SCHEMA.\n"
@@ -2353,14 +3670,15 @@ msgstr ""
"Калі КЛЮЧ не вызначаны, назіраць за ўсімі ключамі СХЕМЫ.\n"
"Каб спыніць назіранне, націсніце ^C.\n"
-#: ../gio/gsettings-tool.c:624
+#: gio/gsettings-tool.c:674
msgid "SCHEMA[:PATH] [KEY]"
-msgstr "СХЕМА[:СЦЕЖКА] [КЛЮЧ]"
+msgstr "СХЕМА[:ШЛЯХ] [КЛЮЧ]"
-#: ../gio/gsettings-tool.c:636
+#: gio/gsettings-tool.c:686
msgid ""
"Usage:\n"
-" gsettings [--schemadir SCHEMADIR] COMMAND [ARGS...]\n"
+" gsettings --version\n"
+" gsettings [--schemadir SCHEMADIR] COMMAND [ARGS…]\n"
"\n"
"Commands:\n"
" help Show this information\n"
@@ -2370,6 +3688,7 @@ msgid ""
" list-children List children of a schema\n"
" list-recursively List keys and values, recursively\n"
" range Queries the range of a key\n"
+" describe Queries the description of a key\n"
" get Get the value of a key\n"
" set Set the value of a key\n"
" reset Reset the value of a key\n"
@@ -2377,33 +3696,34 @@ msgid ""
" writable Check if a key is writable\n"
" monitor Watch for changes\n"
"\n"
-"Use 'gsettings help COMMAND' to get detailed help.\n"
+"Use “gsettings help COMMAND” to get detailed help.\n"
"\n"
msgstr ""
-"Правілы карыстання:\n"
-" gsettings [--schemadir КАТАЛОГ_СХЕМ] ЗАГАД [АРГУМЕНТЫ...]\n"
+"Выкарыстанне:\n"
+" gsettings --version\n"
+" gsettings [--schemadir КАТАЛОГ_СХЕМ] КАМАНДА [АРГУМЕНТЫ…]\n"
"\n"
-"Загады:\n"
-" help Паказаць гэтую даведку\n"
-" list-schemas Пералічыць усталяваныя схемы\n"
-" list-relocatable-schemas Пералічыць пераносныя схемы\n"
-" list-keys Пералічыць ключы схемы\n"
-" list-children Пералічыць нашчадкаў схемы\n"
-" list-recursively Рэкурсіўна пералічыць ключы і іх значэнні\n"
-" range Запытаць аб дыяпазоне магчымых значэнняў ключа\n"
-" get Атрымаць значэнне ключа\n"
-" set Прызначыць значэнне ключу\n"
-" reset Вярнуць прадвызначанае значэнне ключа\n"
-" reset-recursively Вярнуць прадвызначаныя значэнні ўсіх ключоў "
-"схемы\n"
-" writable Праверыць магчымасць змянення значэння ключа\n"
-" monitor Назіраць за зменамі\n"
+"Каманды:\n"
+" help Паказаць гэту даведку\n"
+" list-schemas Паказаць усталяваныя схемы\n"
+" list-relocatable-schemas Паказаць схемы са зменным шляхам\n"
+" list-keys Паказаць ключы ў схеме\n"
+" list-children Паказаць нашчадкаў схемы\n"
+" list-recursively Паказаць ключы і значэнні рэкурсіўна\n"
+" range Запытаць дыяпазон ключа\n"
+" describe Запытаць апісанне ключа\n"
+" get Get the value of a key\n"
+" set Задаць значэнне ключа\n"
+" reset Скінуць значэнне ключа на прадвызначанае\n"
+" reset-recursively Скінуць усе значэнні ўказанай схемы\n"
+" writable Праверыць, ці ёсць дазвол на запіс ключа\n"
+" monitor Сачыць за зменамі\n"
"\n"
-"Каб атрымаць падрабязнейшую даведку, выканайце загад \"gsettings help ЗАГАД"
-"\".\n"
+"Выкарыстоўвайце «gsettings help КАМАНДА», каб атрымаць больш падрабязную "
+"даведку.\n"
"\n"
-#: ../gio/gsettings-tool.c:658
+#: gio/gsettings-tool.c:710
#, c-format
msgid ""
"Usage:\n"
@@ -2412,243 +3732,294 @@ msgid ""
"%s\n"
"\n"
msgstr ""
-"Правілы карыстання:\n"
-"gsettings [--schemadir КАТАЛОГ_СХЕМ] %s %s\n"
+"Выкарыстанне:\n"
+" gsettings [--schemadir КАТАЛОГ_СХЕМ] %s %s\n"
"\n"
"%s\n"
"\n"
-#: ../gio/gsettings-tool.c:664
+#: gio/gsettings-tool.c:716
msgid " SCHEMADIR A directory to search for additional schemas\n"
msgstr " КАТАЛОГ_СХЕМ Каталог для пошуку дадатковых схем\n"
-#: ../gio/gsettings-tool.c:672
+#: gio/gsettings-tool.c:724
msgid ""
" SCHEMA The name of the schema\n"
" PATH The path, for relocatable schemas\n"
msgstr ""
-" СХЕМА Назва схемы\n"
-" СЦЕЖКА Сцежка (для пераносных схем)\n"
+" СХЕМА Назва схемы\n"
+" ШЛЯХ Шлях (для схем са зменным шляхам)\n"
-#: ../gio/gsettings-tool.c:677
+#: gio/gsettings-tool.c:729
msgid " KEY The (optional) key within the schema\n"
-msgstr " КЛЮЧ (неабавязковы) ключ у схеме\n"
+msgstr " КЛЮЧ (неабавязкова) ключ у схеме\n"
-#: ../gio/gsettings-tool.c:681
+#: gio/gsettings-tool.c:733
msgid " KEY The key within the schema\n"
-msgstr " КЛЮЧ Ключ у схеме\n"
+msgstr " КЛЮЧ Ключ у схеме\n"
-#: ../gio/gsettings-tool.c:685
+#: gio/gsettings-tool.c:737
msgid " VALUE The value to set\n"
-msgstr " ЗНАЧЭННЕ Патрэбнае значэнне ключа\n"
+msgstr " ЗНАЧЭННЕ Значэнне, якое трэба задаць\n"
-#: ../gio/gsettings-tool.c:744
+#: gio/gsettings-tool.c:792
#, c-format
msgid "Could not load schemas from %s: %s\n"
msgstr "Не ўдалося загрузіць схемы з %s: %s\n"
-#: ../gio/gsettings-tool.c:806
-#, c-format
+#: gio/gsettings-tool.c:804
+msgid "No schemas installed\n"
+msgstr "Няма ўсталяваных схем\n"
+
+#: gio/gsettings-tool.c:883
msgid "Empty schema name given\n"
-msgstr "Пустая назва схемы\n"
+msgstr "Указана пустая назва схемы\n"
-#: ../gio/gsocket.c:313
+#: gio/gsettings-tool.c:938
+#, c-format
+msgid "No such key “%s”\n"
+msgstr "Ключ «%s» адсутнічае\n"
+
+#: gio/gsocket.c:419
msgid "Invalid socket, not initialized"
-msgstr "Хібны сокет не ініцыяваны"
+msgstr "Няправільны сокет, не ініцыялізавана"
-#: ../gio/gsocket.c:320
+#: gio/gsocket.c:426
#, c-format
msgid "Invalid socket, initialization failed due to: %s"
-msgstr "Хібны сокет не ініцыяваны з наступнай прычыны: %s"
+msgstr "Няправільны сокет, не ўдалося не ініцыялізаваць, бо: %s"
-#: ../gio/gsocket.c:328
+#: gio/gsocket.c:434
msgid "Socket is already closed"
msgstr "Сокет ужо закрыты"
-#: ../gio/gsocket.c:336 ../gio/gsocket.c:3623 ../gio/gsocket.c:3678
+#: gio/gsocket.c:449 gio/gsocket.c:3201 gio/gsocket.c:4434 gio/gsocket.c:4492
msgid "Socket I/O timed out"
msgstr "Скончыўся тэрмін чакання ўводу-вываду на сокеце"
-#: ../gio/gsocket.c:483
+#: gio/gsocket.c:586
#, c-format
msgid "creating GSocket from fd: %s"
msgstr "стварэнне GSocket-аб'екта з fd: %s"
-#: ../gio/gsocket.c:511 ../gio/gsocket.c:565 ../gio/gsocket.c:572
+#: gio/gsocket.c:615 gio/gsocket.c:679 gio/gsocket.c:686
#, c-format
msgid "Unable to create socket: %s"
msgstr "Не ўдалося стварыць сокет: %s"
-#: ../gio/gsocket.c:565
+#: gio/gsocket.c:679
msgid "Unknown family was specified"
msgstr "Невядомае сямейства пратакола"
-#: ../gio/gsocket.c:572
+#: gio/gsocket.c:686
msgid "Unknown protocol was specified"
msgstr "Невядомы пратакол"
-#: ../gio/gsocket.c:1730
+#: gio/gsocket.c:1177
+#, c-format
+msgid "Cannot use datagram operations on a non-datagram socket."
+msgstr ""
+
+#: gio/gsocket.c:1194
+#, c-format
+msgid "Cannot use datagram operations on a socket with a timeout set."
+msgstr ""
+
+#: gio/gsocket.c:2001
#, c-format
msgid "could not get local address: %s"
-msgstr "не ўдалося вызначыць свой адрас: %s"
+msgstr "не ўдалося атрымаць лакальны адрас: %s"
-#: ../gio/gsocket.c:1773
+#: gio/gsocket.c:2047
#, c-format
msgid "could not get remote address: %s"
-msgstr "не ўдалося вызначыць адрас аддаленай машыны: %s"
+msgstr "не ўдалося атрымаць аддалены адрас: %s"
-#: ../gio/gsocket.c:1834
+#: gio/gsocket.c:2113
#, c-format
msgid "could not listen: %s"
msgstr "не ўдалося пачаць слухаць: %s"
-#: ../gio/gsocket.c:1933
+#: gio/gsocket.c:2217
#, c-format
-msgid "Error binding to address: %s"
-msgstr "Памылка прывязання да адрасу: %s"
+msgid "Error binding to address %s: %s"
+msgstr ""
-#: ../gio/gsocket.c:2045 ../gio/gsocket.c:2082
+#: gio/gsocket.c:2392 gio/gsocket.c:2429 gio/gsocket.c:2539 gio/gsocket.c:2564
+#: gio/gsocket.c:2631 gio/gsocket.c:2689 gio/gsocket.c:2707
#, c-format
msgid "Error joining multicast group: %s"
msgstr "Не ўдалося далучыцца да групы multicast: %s"
-#: ../gio/gsocket.c:2046 ../gio/gsocket.c:2083
+#: gio/gsocket.c:2393 gio/gsocket.c:2430 gio/gsocket.c:2540 gio/gsocket.c:2565
+#: gio/gsocket.c:2632 gio/gsocket.c:2690 gio/gsocket.c:2708
#, c-format
msgid "Error leaving multicast group: %s"
msgstr "Не ўдалося выйсці з групы multicast: %s"
-#: ../gio/gsocket.c:2047
+#: gio/gsocket.c:2394
msgid "No support for source-specific multicast"
msgstr "Спецыфічная крыніца multicast не падтрымліваецца"
-#: ../gio/gsocket.c:2266
+#: gio/gsocket.c:2541
+msgid "Unsupported socket family"
+msgstr ""
+
+#: gio/gsocket.c:2566
+msgid "source-specific not an IPv4 address"
+msgstr ""
+
+#: gio/gsocket.c:2590
+#, c-format
+msgid "Interface name too long"
+msgstr ""
+
+#: gio/gsocket.c:2603 gio/gsocket.c:2657
+#, c-format
+msgid "Interface not found: %s"
+msgstr "Інтэрфейс не знойдзены: %s"
+
+#: gio/gsocket.c:2633
+msgid "No support for IPv4 source-specific multicast"
+msgstr ""
+
+#: gio/gsocket.c:2691
+msgid "No support for IPv6 source-specific multicast"
+msgstr ""
+
+#: gio/gsocket.c:2900
#, c-format
msgid "Error accepting connection: %s"
msgstr "Памылка ўхвалення злучэння: %s"
-#: ../gio/gsocket.c:2387
+#: gio/gsocket.c:3026
msgid "Connection in progress"
msgstr "Адбываецца злучэнне"
-#: ../gio/gsocket.c:2434
+#: gio/gsocket.c:3077
msgid "Unable to get pending error: "
msgstr "Не ўдалося ўзяць чарговую памылку: "
-#: ../gio/gsocket.c:2620
+#: gio/gsocket.c:3266
#, c-format
msgid "Error receiving data: %s"
msgstr "Памылка атрымання даных: %s"
-#: ../gio/gsocket.c:2798
+#: gio/gsocket.c:3463
#, c-format
msgid "Error sending data: %s"
msgstr "Памылка паслання даных: %s"
-#: ../gio/gsocket.c:2912
+#: gio/gsocket.c:3650
#, c-format
msgid "Unable to shutdown socket: %s"
msgstr "Не ўдалося спыніць працу сокета: %s"
-#: ../gio/gsocket.c:2991
+#: gio/gsocket.c:3731
#, c-format
msgid "Error closing socket: %s"
msgstr "Памылка закрыцця сокета: %s"
-#: ../gio/gsocket.c:3616
+#: gio/gsocket.c:4427
#, c-format
msgid "Waiting for socket condition: %s"
msgstr "Чакаем умовы на сокеце: %s"
-#: ../gio/gsocket.c:3894 ../gio/gsocket.c:3975
+#: gio/gsocket.c:4817 gio/gsocket.c:4833 gio/gsocket.c:4846
+#, c-format
+msgid "Unable to send message: %s"
+msgstr "Немагчыма адправіць паведамленне: %s"
+
+#: gio/gsocket.c:4818 gio/gsocket.c:4834 gio/gsocket.c:4847
+msgid "Message vectors too large"
+msgstr ""
+
+#: gio/gsocket.c:4863 gio/gsocket.c:4865 gio/gsocket.c:5012 gio/gsocket.c:5097
+#: gio/gsocket.c:5275 gio/gsocket.c:5315 gio/gsocket.c:5317
#, c-format
msgid "Error sending message: %s"
msgstr "Памылка пасылання паведамлення: %s"
-#: ../gio/gsocket.c:3919
+#: gio/gsocket.c:5039
msgid "GSocketControlMessage not supported on Windows"
msgstr "GSocketControlMessage не падтрымліваецца ў сістэме Windows"
-#: ../gio/gsocket.c:4253 ../gio/gsocket.c:4388
+#: gio/gsocket.c:5512 gio/gsocket.c:5588 gio/gsocket.c:5814
#, c-format
msgid "Error receiving message: %s"
msgstr "Памылка атрымання паведамлення: %s"
-#: ../gio/gsocket.c:4470
+#: gio/gsocket.c:6099 gio/gsocket.c:6110 gio/gsocket.c:6173
#, c-format
msgid "Unable to read socket credentials: %s"
msgstr "Не ўдалося прачытаць мандатныя даныя да сокета: %s"
-#: ../gio/gsocket.c:4489
+#: gio/gsocket.c:6182
msgid "g_socket_get_credentials not implemented for this OS"
msgstr "g_socket_get_credentials адсутнічае для гэтай аперацыйнай сістэмы"
-#: ../gio/gsocketclient.c:177
+#: gio/gsocketclient.c:193
#, c-format
msgid "Could not connect to proxy server %s: "
msgstr "Не ўдалося злучыцца з проксі-серверам %s: "
-#: ../gio/gsocketclient.c:191
+#: gio/gsocketclient.c:207
#, c-format
msgid "Could not connect to %s: "
msgstr "Не ўдалося злучыцца з %s: "
-#: ../gio/gsocketclient.c:193
+#: gio/gsocketclient.c:209
msgid "Could not connect: "
msgstr "Не ўдалося злучыцца: "
-#: ../gio/gsocketclient.c:1067 ../gio/gsocketclient.c:1631
-msgid "Unknown error on connect"
-msgstr "Падчас злучэння ўзнікла невядомая памылка "
-
-#: ../gio/gsocketclient.c:1120 ../gio/gsocketclient.c:1569
+#: gio/gsocketclient.c:1204 gio/gsocketclient.c:1807
msgid "Proxying over a non-TCP connection is not supported."
msgstr "Проксі-перасылка падтрымліваецца толькі для TCP-злучэнняў."
-#: ../gio/gsocketclient.c:1146 ../gio/gsocketclient.c:1590
+#: gio/gsocketclient.c:1236 gio/gsocketclient.c:1836
#, c-format
-msgid "Proxy protocol '%s' is not supported."
-msgstr "Пратакол \"%s\" не падтрымліваецца для проксі-злучэнняў."
+msgid "Proxy protocol “%s” is not supported."
+msgstr ""
-#: ../gio/gsocketlistener.c:187
+#: gio/gsocketlistener.c:232
msgid "Listener is already closed"
msgstr "Слухач ужо закрыў сокет"
-#: ../gio/gsocketlistener.c:228
+#: gio/gsocketlistener.c:278
msgid "Added socket is closed"
msgstr "Дададзены сокет закрыты"
-#: ../gio/gsocks4aproxy.c:120
+#: gio/gsocks4aproxy.c:120
#, c-format
-msgid "SOCKSv4 does not support IPv6 address '%s'"
-msgstr "Пратакол SOCKSv4 не падтрымлівае IPv6-адрасу \"%s\""
+msgid "SOCKSv4 does not support IPv6 address “%s”"
+msgstr ""
-#: ../gio/gsocks4aproxy.c:138
+#: gio/gsocks4aproxy.c:138
msgid "Username is too long for SOCKSv4 protocol"
-msgstr "Імя карыстальніка надта доўгае для пратакола SOCKSv4"
+msgstr "Імя карыстальніка занадта доўгае для пратакола SOCKSv4"
-#: ../gio/gsocks4aproxy.c:155
+#: gio/gsocks4aproxy.c:155
#, c-format
-msgid "Hostname '%s' is too long for SOCKSv4 protocol"
-msgstr "Назва машыны \"%s\" надта доўгая для пратакола SOCKSv4"
+msgid "Hostname “%s” is too long for SOCKSv4 protocol"
+msgstr ""
-#: ../gio/gsocks4aproxy.c:181
+#: gio/gsocks4aproxy.c:181
msgid "The server is not a SOCKSv4 proxy server."
msgstr "Гэты проксі-сервер не з'яўляецца SOCKSv4-серверам."
-#: ../gio/gsocks4aproxy.c:188
+#: gio/gsocks4aproxy.c:188
msgid "Connection through SOCKSv4 server was rejected"
msgstr "Злучэнне праз SOCKSv4-сервер было адпрэчана"
-#: ../gio/gsocks5proxy.c:155 ../gio/gsocks5proxy.c:326
-#: ../gio/gsocks5proxy.c:336
+#: gio/gsocks5proxy.c:155 gio/gsocks5proxy.c:340 gio/gsocks5proxy.c:350
msgid "The server is not a SOCKSv5 proxy server."
msgstr "Гэты проксі-сервер не з'яўляецца SOCKSv5-серверам."
-#: ../gio/gsocks5proxy.c:169
+#: gio/gsocks5proxy.c:169 gio/gsocks5proxy.c:186
msgid "The SOCKSv5 proxy requires authentication."
msgstr "Гэты SOCKSv5-сервер вымагае праверкі тоеснасці."
-#: ../gio/gsocks5proxy.c:179
+#: gio/gsocks5proxy.c:193
msgid ""
"The SOCKSv5 proxy requires an authentication method that is not supported by "
"GLib."
@@ -2656,127 +4027,167 @@ msgstr ""
"Гэты SOCKSv5 проксі-сервер патрабуе такога спосабу ідэнтыфікацыі, які не "
"падтрымліваецца бібліятэкай GLib."
-#: ../gio/gsocks5proxy.c:208
+#: gio/gsocks5proxy.c:222
msgid "Username or password is too long for SOCKSv5 protocol."
-msgstr "Імя карыстальніка ці пароль надта доўгія для пратакола SOCKSv5."
+msgstr "Імя карыстальніка або пароль занадта доўгія для пратакола SOCKSv5."
-#: ../gio/gsocks5proxy.c:238
+#: gio/gsocks5proxy.c:252
msgid "SOCKSv5 authentication failed due to wrong username or password."
msgstr ""
"Праверка тоеснасці пратакола SOCKSv5 скончылася няўдачай праз хібныя імя "
"карыстальніка ці пароль."
-#: ../gio/gsocks5proxy.c:288
+#: gio/gsocks5proxy.c:302
#, c-format
-msgid "Hostname '%s' is too long for SOCKSv5 protocol"
-msgstr "Назва машыны \"%s\" надта доўгая для пратакола SOCKSv5"
+msgid "Hostname “%s” is too long for SOCKSv5 protocol"
+msgstr ""
-#: ../gio/gsocks5proxy.c:350
+#: gio/gsocks5proxy.c:364
msgid "The SOCKSv5 proxy server uses unknown address type."
msgstr "SOCKSv5 проксі-сервер мае невядомы тып адрасу."
-#: ../gio/gsocks5proxy.c:357
+#: gio/gsocks5proxy.c:371
msgid "Internal SOCKSv5 proxy server error."
msgstr "Унутраная памылка SOCKSv5 проксі-сервера."
-#: ../gio/gsocks5proxy.c:363
+#: gio/gsocks5proxy.c:377
msgid "SOCKSv5 connection not allowed by ruleset."
msgstr "SOCKSv5-злучэнне забаронена правіламі."
-#: ../gio/gsocks5proxy.c:370
+#: gio/gsocks5proxy.c:384
msgid "Host unreachable through SOCKSv5 server."
msgstr "Машына недасягальная праз гэты SOCKSv5-сервер."
-#: ../gio/gsocks5proxy.c:376
+#: gio/gsocks5proxy.c:390
msgid "Network unreachable through SOCKSv5 proxy."
msgstr "Сетка недасягальная праз гэты SOCKSv5-сервер."
-#: ../gio/gsocks5proxy.c:382
+#: gio/gsocks5proxy.c:396
msgid "Connection refused through SOCKSv5 proxy."
msgstr "Прапанова злучэння праз SOCKSv5-сервер адпрэчана."
-#: ../gio/gsocks5proxy.c:388
-msgid "SOCKSv5 proxy does not support 'connect' command."
-msgstr "SOCKSv5 проксі-сервер не падтрымлівае загаду \"connect\"."
+#: gio/gsocks5proxy.c:402
+msgid "SOCKSv5 proxy does not support “connect” command."
+msgstr ""
-#: ../gio/gsocks5proxy.c:394
+#: gio/gsocks5proxy.c:408
msgid "SOCKSv5 proxy does not support provided address type."
msgstr "SOCKSv5 проксі-сервер не падтрымлівае гэтага тыпу адрасоў."
-#: ../gio/gsocks5proxy.c:400
+#: gio/gsocks5proxy.c:414
msgid "Unknown SOCKSv5 proxy error."
msgstr "Невядомая памылка проксі-сервера SOCKSv5."
-#: ../gio/gthemedicon.c:521
+#: gio/gtestdbus.c:614 glib/gspawn-win32.c:354
+#, c-format
+msgid "Failed to create pipe for communicating with child process (%s)"
+msgstr "Не ўдалося стварыць канал сувязі з працэсам-нашчадкам (%s)"
+
+#: gio/gtestdbus.c:621
#, c-format
-msgid "Can't handle version %d of GThemedIcon encoding"
-msgstr "Не ўдалося апрацаваць версію %d кадавання GThemedIcon"
+msgid "Pipes are not supported in this platform"
+msgstr ""
+
+#: gio/gthemedicon.c:597
+#, c-format
+msgid "Can’t handle version %d of GThemedIcon encoding"
+msgstr ""
+
+#: gio/gthreadedresolver.c:154
+msgid "No valid addresses were found"
+msgstr ""
-#: ../gio/gthreadedresolver.c:110
+#: gio/gthreadedresolver.c:339
#, c-format
-msgid "Error resolving '%s': %s"
-msgstr "Памылка вызначэння адрасу \"%s\": %s"
+msgid "Error reverse-resolving “%s”: %s"
+msgstr ""
-#: ../gio/gthreadedresolver.c:195
+#. Translators: the placeholder is a DNS record type, such as ‘MX’ or ‘SRV’
+#: gio/gthreadedresolver.c:552 gio/gthreadedresolver.c:574
+#: gio/gthreadedresolver.c:612 gio/gthreadedresolver.c:659
+#: gio/gthreadedresolver.c:688 gio/gthreadedresolver.c:700
#, c-format
-msgid "Error reverse-resolving '%s': %s"
-msgstr "Памылка адваротнага вызначэння адрасу \"%s\": %s"
+msgid "Error parsing DNS %s record: malformed DNS packet"
+msgstr ""
-#: ../gio/gthreadedresolver.c:533 ../gio/gthreadedresolver.c:614
-#: ../gio/gthreadedresolver.c:715 ../gio/gthreadedresolver.c:766
+#: gio/gthreadedresolver.c:758 gio/gthreadedresolver.c:895
+#: gio/gthreadedresolver.c:993 gio/gthreadedresolver.c:1043
#, c-format
-msgid "No DNS record of the requested type for '%s'"
-msgstr "Для \"%s\" адсутнічае DNS-запіс патрэбнага тыпу"
+msgid "No DNS record of the requested type for “%s”"
+msgstr ""
-#: ../gio/gthreadedresolver.c:538 ../gio/gthreadedresolver.c:720
+#: gio/gthreadedresolver.c:763 gio/gthreadedresolver.c:998
#, c-format
-msgid "Temporarily unable to resolve '%s'"
-msgstr "Часова немагчыма вызначыць адрас \"%s\""
+msgid "Temporarily unable to resolve “%s”"
+msgstr ""
-#: ../gio/gthreadedresolver.c:543 ../gio/gthreadedresolver.c:725
+#: gio/gthreadedresolver.c:768 gio/gthreadedresolver.c:1003
+#: gio/gthreadedresolver.c:1113
#, c-format
-msgid "Error resolving '%s'"
-msgstr "Памылка вызначэння адрасу \"%s\""
+msgid "Error resolving “%s”"
+msgstr ""
-#: ../gio/gtlscertificate.c:248
-msgid "Cannot decrypt PEM-encoded private key"
-msgstr "Не ўдалося расшыфраваць закрыты ключ, закадаваны як PEM"
+#: gio/gthreadedresolver.c:782 gio/gthreadedresolver.c:806
+#: gio/gthreadedresolver.c:831 gio/gthreadedresolver.c:846
+msgid "Malformed DNS packet"
+msgstr ""
-#: ../gio/gtlscertificate.c:253
+#: gio/gthreadedresolver.c:888
+#, c-format
+msgid "Failed to parse DNS response for “%s”: "
+msgstr ""
+
+#: gio/gtlscertificate.c:480
msgid "No PEM-encoded private key found"
msgstr "Закрыты ключ, закадаваны як PEM, не знойдзены"
-#: ../gio/gtlscertificate.c:263
+#: gio/gtlscertificate.c:490
+msgid "Cannot decrypt PEM-encoded private key"
+msgstr "Не ўдалося расшыфраваць закрыты ключ, закадаваны як PEM"
+
+#: gio/gtlscertificate.c:501
msgid "Could not parse PEM-encoded private key"
msgstr "Не ўдалося разабраць закрыты ключ, закадаваны як PEM"
-#: ../gio/gtlscertificate.c:288
+#: gio/gtlscertificate.c:528
msgid "No PEM-encoded certificate found"
msgstr "Сертыфікат, закадаваны як PEM, не знойдзены"
-#: ../gio/gtlscertificate.c:297
+#: gio/gtlscertificate.c:537
msgid "Could not parse PEM-encoded certificate"
msgstr "Не ўдалося разабраць сертыфікат, закадаваны як PEM"
-#: ../gio/gtlspassword.c:113
+#: gio/gtlscertificate.c:800
+msgid "The current TLS backend does not support PKCS #12"
+msgstr ""
+
+#: gio/gtlscertificate.c:1017
+msgid "This GTlsBackend does not support creating PKCS #11 certificates"
+msgstr ""
+
+#: gio/gtlspassword.c:113
msgid ""
"This is the last chance to enter the password correctly before your access "
"is locked out."
msgstr "Гэта апошні шанец увесці правільны пароль да блакіравання доступу."
-#: ../gio/gtlspassword.c:115
+#. Translators: This is not the 'This is the last chance' string. It is
+#. * displayed when more than one attempt is allowed.
+#: gio/gtlspassword.c:117
msgid ""
-"Several password entered have been incorrect, and your access will be locked "
-"out after further failures."
+"Several passwords entered have been incorrect, and your access will be "
+"locked out after further failures."
msgstr ""
-"Вы некалькі разоў уводзілі хібныя паролі, і калі вы працягнеце ўводзіць "
-"хібныя паролі, дык будзеце заблакіраваны."
-#: ../gio/gtlspassword.c:117
+#: gio/gtlspassword.c:119
msgid "The password entered is incorrect."
msgstr "Уведзены пароль няправільны."
-#: ../gio/gunixconnection.c:159 ../gio/gunixconnection.c:554
+#: gio/gunixconnection.c:127
+msgid "Sending FD is not supported"
+msgstr ""
+
+#: gio/gunixconnection.c:180 gio/gunixconnection.c:598
#, c-format
msgid "Expecting 1 control message, got %d"
msgid_plural "Expecting 1 control message, got %d"
@@ -2784,11 +4195,11 @@ msgstr[0] "Чакалі аднаго кіроўнага паведамлення
msgstr[1] "Чакалі аднаго кіроўнага паведамлення, а маем %d"
msgstr[2] "Чакалі аднаго кіроўнага паведамлення, а маем %d"
-#: ../gio/gunixconnection.c:175 ../gio/gunixconnection.c:566
+#: gio/gunixconnection.c:196 gio/gunixconnection.c:610
msgid "Unexpected type of ancillary data"
msgstr "Нечаканы тып дадатковых даных"
-#: ../gio/gunixconnection.c:193
+#: gio/gunixconnection.c:214
#, c-format
msgid "Expecting one fd, but got %d\n"
msgid_plural "Expecting one fd, but got %d\n"
@@ -2796,1233 +4207,1339 @@ msgstr[0] "Чакалі аднаго fd, а маем %d\n"
msgstr[1] "Чакалі аднаго fd, а маем %d\n"
msgstr[2] "Чакалі аднаго fd, а маем %d\n"
-#: ../gio/gunixconnection.c:212
+#: gio/gunixconnection.c:233
msgid "Received invalid fd"
-msgstr "Атрымалі хібны fd"
+msgstr "Атрымалі няправільны fd"
-#: ../gio/gunixconnection.c:348
+#: gio/gunixconnection.c:240
+msgid "Receiving FD is not supported"
+msgstr ""
+
+#: gio/gunixconnection.c:382
msgid "Error sending credentials: "
msgstr "Памылка паслання пасведчанняў: "
-#: ../gio/gunixconnection.c:496
+#: gio/gunixconnection.c:539
#, c-format
msgid "Error checking if SO_PASSCRED is enabled for socket: %s"
msgstr "Не ўдалося праверыць, ці ўключаная опцыя SO_PASSCRED для сокета: %s"
-#: ../gio/gunixconnection.c:511
+#: gio/gunixconnection.c:555
#, c-format
msgid "Error enabling SO_PASSCRED: %s"
msgstr "Не ўдалося ўключыць опцыю SO_PASSCRED: %s"
-#: ../gio/gunixconnection.c:540
+#: gio/gunixconnection.c:584
msgid ""
"Expecting to read a single byte for receiving credentials but read zero bytes"
msgstr ""
"Чакалі аднаго байта, які б пацвердзіў атрыманне пасведчанняў, але нічога не "
"атрымалі"
-#: ../gio/gunixconnection.c:580
+#: gio/gunixconnection.c:624
#, c-format
msgid "Not expecting control message, but got %d"
msgstr "Не чакалі кіроўнага паведамлення, але маем %d"
-#: ../gio/gunixconnection.c:604
+#: gio/gunixconnection.c:649
#, c-format
msgid "Error while disabling SO_PASSCRED: %s"
msgstr "Не ўдалося выключыць опцыю SO_PASSCRED: %s"
-#: ../gio/gunixinputstream.c:372 ../gio/gunixinputstream.c:393
+#: gio/gunixinputstream.c:359 gio/gunixinputstream.c:380
#, c-format
msgid "Error reading from file descriptor: %s"
msgstr "Памылка чытання з дэскрыптара файла: %s"
-#: ../gio/gunixinputstream.c:426 ../gio/gunixoutputstream.c:412
+#: gio/gunixinputstream.c:413 gio/gunixoutputstream.c:522
+#: gio/gwin32inputstream.c:219 gio/gwin32outputstream.c:206
#, c-format
msgid "Error closing file descriptor: %s"
msgstr "Памылка закрыцця дэскрыптара файла: %s"
-#: ../gio/gunixmounts.c:1985 ../gio/gunixmounts.c:2038
+#: gio/gunixmounts.c:2815 gio/gunixmounts.c:2868
msgid "Filesystem root"
msgstr "Корань файлавай сістэмы"
-#: ../gio/gunixoutputstream.c:358 ../gio/gunixoutputstream.c:379
+#: gio/gunixoutputstream.c:359 gio/gunixoutputstream.c:379
+#: gio/gunixoutputstream.c:466 gio/gunixoutputstream.c:486
+#: gio/gunixoutputstream.c:632
#, c-format
msgid "Error writing to file descriptor: %s"
msgstr "Памылка запісу ў дэскрыптар файла: %s"
-#: ../gio/gunixsocketaddress.c:234
+#: gio/gunixsocketaddress.c:253
msgid "Abstract UNIX domain socket addresses not supported on this system"
msgstr "Абстрактныя адрасы UNIX-сокетаў не падтрымліваюцца ў гэтай сістэме"
-#: ../gio/gvolume.c:439
-msgid "volume doesn't implement eject"
-msgstr "дыскавы том не мае функцыі \"eject\""
+#: gio/gvolume.c:440
+msgid "volume doesn’t implement eject"
+msgstr ""
#. Translators: This is an error
#. * message for volume objects that
#. * don't implement any of eject or eject_with_operation.
-#: ../gio/gvolume.c:516
-msgid "volume doesn't implement eject or eject_with_operation"
-msgstr "дыскавы том не мае функцый \"eject\" ці \"eject_with_operation\""
-
-#: ../gio/gwin32appinfo.c:276
-msgid "Can't find application"
-msgstr "Не ўдалося адшукаць праграму"
-
-#: ../gio/gwin32appinfo.c:308
-#, c-format
-msgid "Error launching application: %s"
-msgstr "Не ўдалося запусціць праграму: %s"
-
-#: ../gio/gwin32appinfo.c:344
-msgid "URIs not supported"
-msgstr "URI-адрасы не абслугоўваюцца"
-
-#: ../gio/gwin32appinfo.c:366
-msgid "association changes not supported on win32"
+#: gio/gvolume.c:517
+msgid "volume doesn’t implement eject or eject_with_operation"
msgstr ""
-"змяненне сувязі праграм і тыпаў файлаў не падтрымліваецца ў win32-асяроддзі"
-#: ../gio/gwin32appinfo.c:378
-msgid "Association creation not supported on win32"
-msgstr ""
-"Стварэнне сувязей праграм і тыпаў файлаў не падтрымліваецца ў win32-асяроддзі"
-
-#: ../gio/gwin32inputstream.c:343
+#: gio/gwin32inputstream.c:187
#, c-format
msgid "Error reading from handle: %s"
msgstr "Не ўдалося прачытаць з файлавага аб'екта: %s"
-#: ../gio/gwin32inputstream.c:375 ../gio/gwin32outputstream.c:362
+#: gio/gwin32inputstream.c:234 gio/gwin32outputstream.c:221
#, c-format
msgid "Error closing handle: %s"
msgstr "Не ўдалося закрыць файлавы аб'ект: %s"
-#: ../gio/gwin32outputstream.c:330
+#: gio/gwin32outputstream.c:174
#, c-format
msgid "Error writing to handle: %s"
msgstr "Не ўдалося запісаць у файлавы аб'ект: %s"
-#: ../gio/gzlibcompressor.c:396 ../gio/gzlibdecompressor.c:349
+#: gio/gzlibcompressor.c:396 gio/gzlibdecompressor.c:349
msgid "Not enough memory"
msgstr "Не стае памяці"
-#: ../gio/gzlibcompressor.c:403 ../gio/gzlibdecompressor.c:356
+#: gio/gzlibcompressor.c:403 gio/gzlibdecompressor.c:356
#, c-format
msgid "Internal error: %s"
msgstr "Унутраная памылка: %s"
-#: ../gio/gzlibcompressor.c:416 ../gio/gzlibdecompressor.c:370
+#: gio/gzlibcompressor.c:416 gio/gzlibdecompressor.c:370
msgid "Need more input"
msgstr "Трэба болей уводных даных"
-#: ../gio/gzlibdecompressor.c:342
+#: gio/gzlibdecompressor.c:342
msgid "Invalid compressed data"
-msgstr "Хібныя сціснутыя даныя"
+msgstr "Няправільныя сціснутыя даныя"
-#: ../gio/tests/gdbus-daemon.c:18
+#: gio/tests/gdbus-daemon.c:18
msgid "Address to listen on"
msgstr "Адрас для праслухоўвання"
-#: ../gio/tests/gdbus-daemon.c:19
+#: gio/tests/gdbus-daemon.c:19
msgid "Ignored, for compat with GTestDbus"
msgstr "Ігнаруецца, захаваны для сумяшчальнасці з GTestDbus"
-#: ../gio/tests/gdbus-daemon.c:20
+#: gio/tests/gdbus-daemon.c:20
msgid "Print address"
msgstr "Вывесці адрас"
-#: ../gio/tests/gdbus-daemon.c:21
+#: gio/tests/gdbus-daemon.c:21
msgid "Print address in shell mode"
msgstr "Вывесці адрас у рэжыме абалонкі"
-#: ../gio/tests/gdbus-daemon.c:28
+#: gio/tests/gdbus-daemon.c:28
msgid "Run a dbus service"
msgstr "Запусціць dbus-службу"
-#: ../gio/tests/gdbus-daemon.c:42
-#, c-format
+#: gio/tests/gdbus-daemon.c:42
msgid "Wrong args\n"
-msgstr "Хібныя аргументы\n"
+msgstr "Няправільныя аргументы\n"
-#: ../glib/gbookmarkfile.c:760
+#: glib/gbookmarkfile.c:779
#, c-format
-msgid "Unexpected attribute '%s' for element '%s'"
-msgstr "Нечаканы атрыбут \"%s\" для складніка \"%s\""
+msgid "Unexpected attribute “%s” for element “%s”"
+msgstr ""
-#: ../glib/gbookmarkfile.c:771 ../glib/gbookmarkfile.c:842
-#: ../glib/gbookmarkfile.c:852 ../glib/gbookmarkfile.c:959
+#: glib/gbookmarkfile.c:790 glib/gbookmarkfile.c:870 glib/gbookmarkfile.c:880
+#: glib/gbookmarkfile.c:993
#, c-format
-msgid "Attribute '%s' of element '%s' not found"
-msgstr "Атрыбут \"%s\" элемента \"%s\" не знойдзены"
+msgid "Attribute “%s” of element “%s” not found"
+msgstr ""
-#: ../glib/gbookmarkfile.c:1129 ../glib/gbookmarkfile.c:1194
-#: ../glib/gbookmarkfile.c:1258 ../glib/gbookmarkfile.c:1268
+#: glib/gbookmarkfile.c:1202 glib/gbookmarkfile.c:1267
+#: glib/gbookmarkfile.c:1331 glib/gbookmarkfile.c:1341
#, c-format
-msgid "Unexpected tag '%s', tag '%s' expected"
-msgstr "Нечаканы тэг \"%s\" замест чаканага \"%s\""
+msgid "Unexpected tag “%s”, tag “%s” expected"
+msgstr ""
-#: ../glib/gbookmarkfile.c:1154 ../glib/gbookmarkfile.c:1168
-#: ../glib/gbookmarkfile.c:1236 ../glib/gbookmarkfile.c:1288
+#: glib/gbookmarkfile.c:1227 glib/gbookmarkfile.c:1241
+#: glib/gbookmarkfile.c:1309 glib/gbookmarkfile.c:1355
#, c-format
-msgid "Unexpected tag '%s' inside '%s'"
-msgstr "Нечаканы тэг \"%s\" унутры \"%s\""
+msgid "Unexpected tag “%s” inside “%s”"
+msgstr ""
-#: ../glib/gbookmarkfile.c:1798
+#: glib/gbookmarkfile.c:1635
+#, c-format
+msgid "Invalid date/time ‘%s’ in bookmark file"
+msgstr ""
+
+#: glib/gbookmarkfile.c:1838
msgid "No valid bookmark file found in data dirs"
msgstr "У каталогах з данымі не знойдзена файлаў з закладкамі"
-#: ../glib/gbookmarkfile.c:1999
+#: glib/gbookmarkfile.c:2039
#, c-format
-msgid "A bookmark for URI '%s' already exists"
-msgstr "Закладка для адрасу \"%s\" ужо існуе"
+msgid "A bookmark for URI “%s” already exists"
+msgstr ""
-#: ../glib/gbookmarkfile.c:2045 ../glib/gbookmarkfile.c:2203
-#: ../glib/gbookmarkfile.c:2288 ../glib/gbookmarkfile.c:2368
-#: ../glib/gbookmarkfile.c:2453 ../glib/gbookmarkfile.c:2536
-#: ../glib/gbookmarkfile.c:2614 ../glib/gbookmarkfile.c:2693
-#: ../glib/gbookmarkfile.c:2735 ../glib/gbookmarkfile.c:2832
-#: ../glib/gbookmarkfile.c:2952 ../glib/gbookmarkfile.c:3142
-#: ../glib/gbookmarkfile.c:3218 ../glib/gbookmarkfile.c:3386
-#: ../glib/gbookmarkfile.c:3475 ../glib/gbookmarkfile.c:3565
-#: ../glib/gbookmarkfile.c:3693
-#, c-format
-msgid "No bookmark found for URI '%s'"
-msgstr "Для адрасу \"%s\" не знойдзена закладкі"
+#: glib/gbookmarkfile.c:2088 glib/gbookmarkfile.c:2246
+#: glib/gbookmarkfile.c:2331 glib/gbookmarkfile.c:2411
+#: glib/gbookmarkfile.c:2496 glib/gbookmarkfile.c:2630
+#: glib/gbookmarkfile.c:2763 glib/gbookmarkfile.c:2898
+#: glib/gbookmarkfile.c:2940 glib/gbookmarkfile.c:3037
+#: glib/gbookmarkfile.c:3158 glib/gbookmarkfile.c:3352
+#: glib/gbookmarkfile.c:3493 glib/gbookmarkfile.c:3712
+#: glib/gbookmarkfile.c:3801 glib/gbookmarkfile.c:3890
+#: glib/gbookmarkfile.c:4009
+#, c-format
+msgid "No bookmark found for URI “%s”"
+msgstr ""
-#: ../glib/gbookmarkfile.c:2377
+#: glib/gbookmarkfile.c:2420
#, c-format
-msgid "No MIME type defined in the bookmark for URI '%s'"
-msgstr "MIME-тып не вызначаны для закладкі на адрас \"%s\""
+msgid "No MIME type defined in the bookmark for URI “%s”"
+msgstr ""
-#: ../glib/gbookmarkfile.c:2462
+#: glib/gbookmarkfile.c:2505
#, c-format
-msgid "No private flag has been defined in bookmark for URI '%s'"
-msgstr "Закладка на адрас \"%s\" не мае сцяжка прыватнасці"
+msgid "No private flag has been defined in bookmark for URI “%s”"
+msgstr ""
-#: ../glib/gbookmarkfile.c:2841
+#: glib/gbookmarkfile.c:3046
#, c-format
-msgid "No groups set in bookmark for URI '%s'"
-msgstr "Для закладкі на адрас \"%s\" не вызначана груп"
+msgid "No groups set in bookmark for URI “%s”"
+msgstr ""
-#: ../glib/gbookmarkfile.c:3239 ../glib/gbookmarkfile.c:3396
+#: glib/gbookmarkfile.c:3514 glib/gbookmarkfile.c:3722
#, c-format
-msgid "No application with name '%s' registered a bookmark for '%s'"
-msgstr "Няма праграм з назвай \"%s\", якія б зарэгістравалі закладу на \"%s\""
+msgid "No application with name “%s” registered a bookmark for “%s”"
+msgstr ""
-#: ../glib/gbookmarkfile.c:3419
+#: glib/gbookmarkfile.c:3745
#, c-format
-msgid "Failed to expand exec line '%s' with URI '%s'"
-msgstr "Не ўдалося разгарнуць загад \"%s\" з дапамогай адрасу \"%s\""
+msgid "Failed to expand exec line “%s” with URI “%s”"
+msgstr ""
+
+#: glib/gconvert.c:470
+msgid "Unrepresentable character in conversion input"
+msgstr ""
-#: ../glib/gconvert.c:506 ../glib/gutf8.c:829 ../glib/gutf8.c:1039
-#: ../glib/gutf8.c:1176 ../glib/gutf8.c:1280
+#: glib/gconvert.c:497 glib/gutf8.c:888 glib/gutf8.c:1101 glib/gutf8.c:1238
+#: glib/gutf8.c:1342
msgid "Partial character sequence at end of input"
msgstr "Абрэзаная паслядоўнасць знакаў напрыканцы ўводу"
-#: ../glib/gconvert.c:756
+#: glib/gconvert.c:768
#, c-format
-msgid "Cannot convert fallback '%s' to codeset '%s'"
-msgstr "Не ўдалося пераўтварыць даныя з падменнага знаказбору \"%s\" у \"%s\""
+msgid "Cannot convert fallback “%s” to codeset “%s”"
+msgstr ""
-#: ../glib/gconvert.c:1574
-#, c-format
-msgid "The URI '%s' is not an absolute URI using the \"file\" scheme"
-msgstr "\"%s\" не з'яўляецца абсалютным адрасам файла"
+#: glib/gconvert.c:940
+msgid "Embedded NUL byte in conversion input"
+msgstr ""
-#: ../glib/gconvert.c:1584
-#, c-format
-msgid "The local file URI '%s' may not include a '#'"
-msgstr "Адрас мясцовага файла \"%s\" не можа змяшчаць знак \"#\""
+#: glib/gconvert.c:961
+msgid "Embedded NUL byte in conversion output"
+msgstr ""
-#: ../glib/gconvert.c:1601
+#: glib/gconvert.c:1692
#, c-format
-msgid "The URI '%s' is invalid"
-msgstr "Адрас \"%s\" няправільны"
+msgid "The URI “%s” is not an absolute URI using the “file” scheme"
+msgstr ""
-#: ../glib/gconvert.c:1613
+#: glib/gconvert.c:1702
#, c-format
-msgid "The hostname of the URI '%s' is invalid"
-msgstr "Назва машыны ў адрасе \"%s\" няправільная"
+msgid "The local file URI “%s” may not include a “#”"
+msgstr ""
-#: ../glib/gconvert.c:1629
+#: glib/gconvert.c:1719
#, c-format
-msgid "The URI '%s' contains invalidly escaped characters"
-msgstr "Адрас \"%s\" змяшчае памылкова экранаваныя знакі"
+msgid "The URI “%s” is invalid"
+msgstr ""
-#: ../glib/gconvert.c:1724
+#: glib/gconvert.c:1731
#, c-format
-msgid "The pathname '%s' is not an absolute path"
-msgstr "\"%s\" не з'яўляецца абсалютнай сцежкай"
-
-#: ../glib/gconvert.c:1734
-msgid "Invalid hostname"
-msgstr "Хібная назва машыны"
+msgid "The hostname of the URI “%s” is invalid"
+msgstr ""
-#. Translators: 'before midday' indicator
-#: ../glib/gdatetime.c:205
-msgctxt "GDateTime"
-msgid "AM"
-msgstr "да поўдня"
+#: glib/gconvert.c:1747
+#, c-format
+msgid "The URI “%s” contains invalidly escaped characters"
+msgstr ""
-#. Translators: 'after midday' indicator
-#: ../glib/gdatetime.c:207
-msgctxt "GDateTime"
-msgid "PM"
-msgstr "пасля поўдня"
+#: glib/gconvert.c:1819
+#, c-format
+msgid "The pathname “%s” is not an absolute path"
+msgstr ""
#. Translators: this is the preferred format for expressing the date and the time
-#: ../glib/gdatetime.c:210
+#: glib/gdatetime.c:228
msgctxt "GDateTime"
msgid "%a %b %e %H:%M:%S %Y"
-msgstr "%a %d %b %Y %T"
+msgstr "%A %-d %b %Y %H:%M:%S"
#. Translators: this is the preferred format for expressing the date
-#: ../glib/gdatetime.c:213
+#: glib/gdatetime.c:231
msgctxt "GDateTime"
msgid "%m/%d/%y"
-msgstr "%2$d.%1$m.%3$y"
+msgstr "%d.%m.%Y"
#. Translators: this is the preferred format for expressing the time
-#: ../glib/gdatetime.c:216
+#: glib/gdatetime.c:234
msgctxt "GDateTime"
msgid "%H:%M:%S"
msgstr "%H:%M:%S"
#. Translators: this is the preferred format for expressing 12 hour time
-#: ../glib/gdatetime.c:219
+#: glib/gdatetime.c:237
msgctxt "GDateTime"
msgid "%I:%M:%S %p"
-msgstr "%H:%M:%S"
-
-#: ../glib/gdatetime.c:232
+msgstr "%I:%M:%S %p"
+
+#. Translators: Some languages (Baltic, Slavic, Greek, and some more)
+#. * need different grammatical forms of month names depending on whether
+#. * they are standalone or in a complete date context, with the day
+#. * number. Some other languages may prefer starting with uppercase when
+#. * they are standalone and with lowercase when they are in a complete
+#. * date context. Here are full month names in a form appropriate when
+#. * they are used standalone. If your system is Linux with the glibc
+#. * version 2.27 (released Feb 1, 2018) or newer or if it is from the BSD
+#. * family (which includes OS X) then you can refer to the date command
+#. * line utility and see what the command `date +%OB' produces. Also in
+#. * the latest Linux the command `locale alt_mon' in your native locale
+#. * produces a complete list of month names almost ready to copy and
+#. * paste here. Note that in most of the languages (western European,
+#. * non-European) there is no difference between the standalone and
+#. * complete date form.
+#.
+#: glib/gdatetime.c:276
msgctxt "full month name"
msgid "January"
msgstr "студзень"
-#: ../glib/gdatetime.c:234
+#: glib/gdatetime.c:278
msgctxt "full month name"
msgid "February"
msgstr "люты"
-#: ../glib/gdatetime.c:236
+#: glib/gdatetime.c:280
msgctxt "full month name"
msgid "March"
msgstr "сакавік"
-#: ../glib/gdatetime.c:238
+#: glib/gdatetime.c:282
msgctxt "full month name"
msgid "April"
msgstr "красавік"
-#: ../glib/gdatetime.c:240
+#: glib/gdatetime.c:284
msgctxt "full month name"
msgid "May"
msgstr "май"
-#: ../glib/gdatetime.c:242
+#: glib/gdatetime.c:286
msgctxt "full month name"
msgid "June"
msgstr "чэрвень"
-#: ../glib/gdatetime.c:244
+#: glib/gdatetime.c:288
msgctxt "full month name"
msgid "July"
msgstr "ліпень"
-#: ../glib/gdatetime.c:246
+#: glib/gdatetime.c:290
msgctxt "full month name"
msgid "August"
msgstr "жнівень"
-#: ../glib/gdatetime.c:248
+#: glib/gdatetime.c:292
msgctxt "full month name"
msgid "September"
msgstr "верасень"
-#: ../glib/gdatetime.c:250
+#: glib/gdatetime.c:294
msgctxt "full month name"
msgid "October"
msgstr "кастрычнік"
-#: ../glib/gdatetime.c:252
+#: glib/gdatetime.c:296
msgctxt "full month name"
msgid "November"
msgstr "лістапад"
-#: ../glib/gdatetime.c:254
+#: glib/gdatetime.c:298
msgctxt "full month name"
msgid "December"
msgstr "снежань"
-#: ../glib/gdatetime.c:269
+#. Translators: Some languages need different grammatical forms of
+#. * month names depending on whether they are standalone or in a complete
+#. * date context, with the day number. Some may prefer starting with
+#. * uppercase when they are standalone and with lowercase when they are
+#. * in a full date context. However, as these names are abbreviated
+#. * the grammatical difference is visible probably only in Belarusian
+#. * and Russian. In other languages there is no difference between
+#. * the standalone and complete date form when they are abbreviated.
+#. * If your system is Linux with the glibc version 2.27 (released
+#. * Feb 1, 2018) or newer then you can refer to the date command line
+#. * utility and see what the command `date +%Ob' produces. Also in
+#. * the latest Linux the command `locale ab_alt_mon' in your native
+#. * locale produces a complete list of month names almost ready to copy
+#. * and paste here. Note that this feature is not yet supported by any
+#. * other platform. Here are abbreviated month names in a form
+#. * appropriate when they are used standalone.
+#.
+#: glib/gdatetime.c:330
msgctxt "abbreviated month name"
msgid "Jan"
msgstr "сту"
-#: ../glib/gdatetime.c:271
+#: glib/gdatetime.c:332
msgctxt "abbreviated month name"
msgid "Feb"
msgstr "лют"
-#: ../glib/gdatetime.c:273
+#: glib/gdatetime.c:334
msgctxt "abbreviated month name"
msgid "Mar"
msgstr "сак"
-#: ../glib/gdatetime.c:275
+#: glib/gdatetime.c:336
msgctxt "abbreviated month name"
msgid "Apr"
msgstr "кра"
-#: ../glib/gdatetime.c:277
+#: glib/gdatetime.c:338
msgctxt "abbreviated month name"
msgid "May"
msgstr "май"
-#: ../glib/gdatetime.c:279
+#: glib/gdatetime.c:340
msgctxt "abbreviated month name"
msgid "Jun"
msgstr "чэр"
-#: ../glib/gdatetime.c:281
+#: glib/gdatetime.c:342
msgctxt "abbreviated month name"
msgid "Jul"
msgstr "ліп"
-#: ../glib/gdatetime.c:283
+#: glib/gdatetime.c:344
msgctxt "abbreviated month name"
msgid "Aug"
msgstr "жні"
-#: ../glib/gdatetime.c:285
+#: glib/gdatetime.c:346
msgctxt "abbreviated month name"
msgid "Sep"
msgstr "вер"
-#: ../glib/gdatetime.c:287
+#: glib/gdatetime.c:348
msgctxt "abbreviated month name"
msgid "Oct"
msgstr "кас"
-#: ../glib/gdatetime.c:289
+#: glib/gdatetime.c:350
msgctxt "abbreviated month name"
msgid "Nov"
msgstr "ліс"
-#: ../glib/gdatetime.c:291
+#: glib/gdatetime.c:352
msgctxt "abbreviated month name"
msgid "Dec"
msgstr "сне"
-#: ../glib/gdatetime.c:306
+#: glib/gdatetime.c:367
msgctxt "full weekday name"
msgid "Monday"
msgstr "панядзелак"
-#: ../glib/gdatetime.c:308
+#: glib/gdatetime.c:369
msgctxt "full weekday name"
msgid "Tuesday"
msgstr "аўторак"
-#: ../glib/gdatetime.c:310
+#: glib/gdatetime.c:371
msgctxt "full weekday name"
msgid "Wednesday"
msgstr "серада"
-#: ../glib/gdatetime.c:312
+#: glib/gdatetime.c:373
msgctxt "full weekday name"
msgid "Thursday"
msgstr "чацвер"
-#: ../glib/gdatetime.c:314
+#: glib/gdatetime.c:375
msgctxt "full weekday name"
msgid "Friday"
msgstr "пятніца"
-#: ../glib/gdatetime.c:316
+#: glib/gdatetime.c:377
msgctxt "full weekday name"
msgid "Saturday"
msgstr "субота"
-#: ../glib/gdatetime.c:318
+#: glib/gdatetime.c:379
msgctxt "full weekday name"
msgid "Sunday"
msgstr "нядзеля"
-#: ../glib/gdatetime.c:333
+#: glib/gdatetime.c:394
msgctxt "abbreviated weekday name"
msgid "Mon"
-msgstr "пан"
+msgstr "пн"
-#: ../glib/gdatetime.c:335
+#: glib/gdatetime.c:396
msgctxt "abbreviated weekday name"
msgid "Tue"
-msgstr "аўт"
+msgstr "аў"
-#: ../glib/gdatetime.c:337
+#: glib/gdatetime.c:398
msgctxt "abbreviated weekday name"
msgid "Wed"
-msgstr "сер"
+msgstr "ср"
-#: ../glib/gdatetime.c:339
+#: glib/gdatetime.c:400
msgctxt "abbreviated weekday name"
msgid "Thu"
-msgstr "чац"
+msgstr "чц"
-#: ../glib/gdatetime.c:341
+#: glib/gdatetime.c:402
msgctxt "abbreviated weekday name"
msgid "Fri"
-msgstr "пят"
+msgstr "пт"
-#: ../glib/gdatetime.c:343
+#: glib/gdatetime.c:404
msgctxt "abbreviated weekday name"
msgid "Sat"
-msgstr "суб"
+msgstr "сб"
-#: ../glib/gdatetime.c:345
+#: glib/gdatetime.c:406
msgctxt "abbreviated weekday name"
msgid "Sun"
-msgstr "нядз"
+msgstr "нд"
+
+#. Translators: Some languages need different grammatical forms of
+#. * month names depending on whether they are standalone or in a full
+#. * date context, with the day number. Some may prefer starting with
+#. * uppercase when they are standalone and with lowercase when they are
+#. * in a full date context. Here are full month names in a form
+#. * appropriate when they are used in a full date context, with the
+#. * day number. If your system is Linux with the glibc version 2.27
+#. * (released Feb 1, 2018) or newer or if it is from the BSD family
+#. * (which includes OS X) then you can refer to the date command line
+#. * utility and see what the command `date +%B' produces. Also in
+#. * the latest Linux the command `locale mon' in your native locale
+#. * produces a complete list of month names almost ready to copy and
+#. * paste here. In older Linux systems due to a bug the result is
+#. * incorrect in some languages. Note that in most of the languages
+#. * (western European, non-European) there is no difference between the
+#. * standalone and complete date form.
+#.
+#: glib/gdatetime.c:470
+msgctxt "full month name with day"
+msgid "January"
+msgstr "студзеня"
-#: ../glib/gdir.c:120 ../glib/gdir.c:143
-#, c-format
-msgid "Error opening directory '%s': %s"
-msgstr "Не ўдалося адкрыць каталог \"%s\": %s"
+#: glib/gdatetime.c:472
+msgctxt "full month name with day"
+msgid "February"
+msgstr "лютага"
+
+#: glib/gdatetime.c:474
+msgctxt "full month name with day"
+msgid "March"
+msgstr "сакавіка"
+
+#: glib/gdatetime.c:476
+msgctxt "full month name with day"
+msgid "April"
+msgstr "красавіка"
+
+#: glib/gdatetime.c:478
+msgctxt "full month name with day"
+msgid "May"
+msgstr "мая"
+
+#: glib/gdatetime.c:480
+msgctxt "full month name with day"
+msgid "June"
+msgstr "чэрвеня"
+
+#: glib/gdatetime.c:482
+msgctxt "full month name with day"
+msgid "July"
+msgstr "ліпеня"
-#: ../glib/gfileutils.c:671 ../glib/gfileutils.c:759
+#: glib/gdatetime.c:484
+msgctxt "full month name with day"
+msgid "August"
+msgstr "жніўня"
+
+#: glib/gdatetime.c:486
+msgctxt "full month name with day"
+msgid "September"
+msgstr "верасня"
+
+#: glib/gdatetime.c:488
+msgctxt "full month name with day"
+msgid "October"
+msgstr "кастрычніка"
+
+#: glib/gdatetime.c:490
+msgctxt "full month name with day"
+msgid "November"
+msgstr "лістапада"
+
+#: glib/gdatetime.c:492
+msgctxt "full month name with day"
+msgid "December"
+msgstr "снежня"
+
+#. Translators: Some languages need different grammatical forms of
+#. * month names depending on whether they are standalone or in a full
+#. * date context, with the day number. Some may prefer starting with
+#. * uppercase when they are standalone and with lowercase when they are
+#. * in a full date context. Here are abbreviated month names in a form
+#. * appropriate when they are used in a full date context, with the
+#. * day number. However, as these names are abbreviated the grammatical
+#. * difference is visible probably only in Belarusian and Russian.
+#. * In other languages there is no difference between the standalone
+#. * and complete date form when they are abbreviated. If your system
+#. * is Linux with the glibc version 2.27 (released Feb 1, 2018) or newer
+#. * then you can refer to the date command line utility and see what the
+#. * command `date +%b' produces. Also in the latest Linux the command
+#. * `locale abmon' in your native locale produces a complete list of
+#. * month names almost ready to copy and paste here. In other systems
+#. * due to a bug the result is incorrect in some languages.
+#.
+#: glib/gdatetime.c:557
+msgctxt "abbreviated month name with day"
+msgid "Jan"
+msgstr "сту"
+
+#: glib/gdatetime.c:559
+msgctxt "abbreviated month name with day"
+msgid "Feb"
+msgstr "лют"
+
+#: glib/gdatetime.c:561
+msgctxt "abbreviated month name with day"
+msgid "Mar"
+msgstr "сак"
+
+#: glib/gdatetime.c:563
+msgctxt "abbreviated month name with day"
+msgid "Apr"
+msgstr "кра"
+
+#: glib/gdatetime.c:565
+msgctxt "abbreviated month name with day"
+msgid "May"
+msgstr "мая"
+
+#: glib/gdatetime.c:567
+msgctxt "abbreviated month name with day"
+msgid "Jun"
+msgstr "чэр"
+
+#: glib/gdatetime.c:569
+msgctxt "abbreviated month name with day"
+msgid "Jul"
+msgstr "ліп"
+
+#: glib/gdatetime.c:571
+msgctxt "abbreviated month name with day"
+msgid "Aug"
+msgstr "жні"
+
+#: glib/gdatetime.c:573
+msgctxt "abbreviated month name with day"
+msgid "Sep"
+msgstr "вер"
+
+#: glib/gdatetime.c:575
+msgctxt "abbreviated month name with day"
+msgid "Oct"
+msgstr "кас"
+
+#: glib/gdatetime.c:577
+msgctxt "abbreviated month name with day"
+msgid "Nov"
+msgstr "ліс"
+
+#: glib/gdatetime.c:579
+msgctxt "abbreviated month name with day"
+msgid "Dec"
+msgstr "сне"
+
+#. Translators: 'before midday' indicator
+#: glib/gdatetime.c:596
+msgctxt "GDateTime"
+msgid "AM"
+msgstr "AM"
+
+#. Translators: 'after midday' indicator
+#: glib/gdatetime.c:599
+msgctxt "GDateTime"
+msgid "PM"
+msgstr "PM"
+
+#: glib/gdir.c:158
#, c-format
-msgid "Could not allocate %lu byte to read file \"%s\""
-msgid_plural "Could not allocate %lu bytes to read file \"%s\""
-msgstr[0] "Не ўдалося выдзеліць %lu байт, каб прачытаць файл \"%s\""
-msgstr[1] "Не ўдалося выдзеліць %lu байты, каб прачытаць файл \"%s\""
-msgstr[2] "Не ўдалося выдзеліць %lu байтаў, каб прачытаць файл \"%s\""
+msgid "Error opening directory “%s”: %s"
+msgstr ""
-#: ../glib/gfileutils.c:686
+#: glib/gfileutils.c:735 glib/gfileutils.c:827
#, c-format
-msgid "Error reading file '%s': %s"
-msgstr "Не ўдалося прачытаць файл \"%s\": %s"
+msgid "Could not allocate %lu byte to read file “%s”"
+msgid_plural "Could not allocate %lu bytes to read file “%s”"
+msgstr[0] "Не ўдалося вылучыць %lu байт, каб прачытаць файл «%s»"
+msgstr[1] "Не ўдалося вылучыць %lu байты, каб прачытаць файл «%s»"
+msgstr[2] "Не ўдалося вылучыць %lu байт, каб прачытаць файл «%s»"
-#: ../glib/gfileutils.c:700
+#: glib/gfileutils.c:752
#, c-format
-msgid "File \"%s\" is too large"
-msgstr "Файл \"%s\" надта вялікі"
+msgid "Error reading file “%s”: %s"
+msgstr "Памылка чытання файла «%s»: %s"
-#: ../glib/gfileutils.c:783
+#: glib/gfileutils.c:788
#, c-format
-msgid "Failed to read from file '%s': %s"
-msgstr "Не ўдалося прачытаць з файла \"%s\": %s"
+msgid "File “%s” is too large"
+msgstr "Файл «%s» занадта вялікі"
-#: ../glib/gfileutils.c:834 ../glib/gfileutils.c:921
+#: glib/gfileutils.c:852
#, c-format
-msgid "Failed to open file '%s': %s"
-msgstr "Не ўдалося адкрыць файл \"%s\": %s"
+msgid "Failed to read from file “%s”: %s"
+msgstr "Не ўдалося прачытаць даныя з файла «%s»: %s"
-#: ../glib/gfileutils.c:851
+#: glib/gfileutils.c:902 glib/gfileutils.c:977 glib/gfileutils.c:1449
#, c-format
-msgid "Failed to get attributes of file '%s': fstat() failed: %s"
-msgstr "Не ўдалося атрымаць спіс атрыбутаў файла \"%s\": памылка fstat(): %s"
+msgid "Failed to open file “%s”: %s"
+msgstr "Не ўдалося адкрыць файл «%s»: %s"
-#: ../glib/gfileutils.c:885
+#: glib/gfileutils.c:915
#, c-format
-msgid "Failed to open file '%s': fdopen() failed: %s"
-msgstr "Не ўдалося адкрыць файл \"%s\": памылка fdopen(): %s"
+msgid "Failed to get attributes of file “%s”: fstat() failed: %s"
+msgstr "Не ўдалося атрымаць атрыбуты файла «%s»: fstat() збой: %s"
-#: ../glib/gfileutils.c:993
+#: glib/gfileutils.c:946
#, c-format
-msgid "Failed to rename file '%s' to '%s': g_rename() failed: %s"
-msgstr ""
-"Не ўдалося змяніць назву файла з \"%s\" на \"%s\": памылка g_rename(): %s"
+msgid "Failed to open file “%s”: fdopen() failed: %s"
+msgstr "Не ўдалося адкрыць файл «%s»: fdopen() збой: %s"
-#: ../glib/gfileutils.c:1047 ../glib/gfileutils.c:1554
+#: glib/gfileutils.c:1047
#, c-format
-msgid "Failed to create file '%s': %s"
-msgstr "Не ўдалося стварыць файл \"%s\": %s"
+msgid "Failed to rename file “%s” to “%s”: g_rename() failed: %s"
+msgstr "Не ўдалося перайменаваць файл «%s» у «%s»: g_rename() збой: %s"
-#: ../glib/gfileutils.c:1071
+#: glib/gfileutils.c:1156
#, c-format
-msgid "Failed to write file '%s': write() failed: %s"
-msgstr "Не ўдалося запісаць файл \"%s\": памылка write(): %s"
+msgid "Failed to write file “%s”: write() failed: %s"
+msgstr "Не ўдалося запісаць файл «%s»: write() збой: %s"
-#: ../glib/gfileutils.c:1111
+#: glib/gfileutils.c:1177
#, c-format
-msgid "Failed to write file '%s': fsync() failed: %s"
-msgstr "Не ўдалося запісаць файл \"%s\": памылка fsync(): %s"
+msgid "Failed to write file “%s”: fsync() failed: %s"
+msgstr "Не ўдалося запісаць файл «%s»: fsync() збой: %s"
-#: ../glib/gfileutils.c:1243
+#: glib/gfileutils.c:1338 glib/gfileutils.c:1753
#, c-format
-msgid "Existing file '%s' could not be removed: g_unlink() failed: %s"
-msgstr "Не ўдалося сцерці наяўны файл \"%s\": памылка g_unlink(): %s"
+msgid "Failed to create file “%s”: %s"
+msgstr "Не стварыць файл «%s»: %s"
-#: ../glib/gfileutils.c:1517
+#: glib/gfileutils.c:1383
#, c-format
-msgid "Template '%s' invalid, should not contain a '%s'"
-msgstr "Шаблон \"%s\" хібны, бо змяшчае \"%s\""
+msgid "Existing file “%s” could not be removed: g_unlink() failed: %s"
+msgstr ""
-#: ../glib/gfileutils.c:1530
+#: glib/gfileutils.c:1718
#, c-format
-msgid "Template '%s' doesn't contain XXXXXX"
-msgstr "Шаблон \"%s\" не змяшчае XXXXXX"
+msgid "Template “%s” invalid, should not contain a “%s”"
+msgstr ""
-#: ../glib/gfileutils.c:2058
+#: glib/gfileutils.c:1731
#, c-format
-msgid "Failed to read the symbolic link '%s': %s"
-msgstr "Не ўдалося прачытаць сімвальную спасылку \"%s\": %s"
+msgid "Template “%s” doesn’t contain XXXXXX"
+msgstr "Шаблон «%s» не змяшчае XXXXXX"
-#: ../glib/gfileutils.c:2079
-msgid "Symbolic links not supported"
-msgstr "Сімвальныя спасылкі не падтрымліваюцца"
+#: glib/gfileutils.c:2310 glib/gfileutils.c:2339
+#, c-format
+msgid "Failed to read the symbolic link “%s”: %s"
+msgstr ""
-#: ../glib/giochannel.c:1418
+#: glib/giochannel.c:1408
#, c-format
-msgid "Could not open converter from '%s' to '%s': %s"
-msgstr "Не ўдалося адкрыць пераўтваральнік са знаказбору \"%s\" у \"%s\": %s"
+msgid "Could not open converter from “%s” to “%s”: %s"
+msgstr ""
-#: ../glib/giochannel.c:1763
-msgid "Can't do a raw read in g_io_channel_read_line_string"
+#: glib/giochannel.c:1761
+msgid "Can’t do a raw read in g_io_channel_read_line_string"
msgstr ""
-"Не ўдалося прачытаць сырыя даныя ў функцыі g_io_channel_read_line_string"
-#: ../glib/giochannel.c:1810 ../glib/giochannel.c:2068
-#: ../glib/giochannel.c:2155
+#: glib/giochannel.c:1808 glib/giochannel.c:2066 glib/giochannel.c:2153
msgid "Leftover unconverted data in read buffer"
msgstr "У буферы даных для пераўтварэння засталіся неапрацаваныя даныя"
-#: ../glib/giochannel.c:1891 ../glib/giochannel.c:1968
+#: glib/giochannel.c:1889 glib/giochannel.c:1966
msgid "Channel terminates in a partial character"
msgstr "Канал закончыўся абрэзаным знакам"
-#: ../glib/giochannel.c:1954
-msgid "Can't do a raw read in g_io_channel_read_to_end"
-msgstr "Не ўдалося прачытаць сырыя даныя ў функцыі g_io_channel_read_to_end"
+#: glib/giochannel.c:1952
+msgid "Can’t do a raw read in g_io_channel_read_to_end"
+msgstr ""
-#: ../glib/gkeyfile.c:722
+#: glib/gkeyfile.c:796
msgid "Valid key file could not be found in search dirs"
-msgstr "У каталогах пошуку не знойдзена ключавых файлаў"
+msgstr "У каталогах пошуку не знойдзена правільных файлаў ключоў"
-#: ../glib/gkeyfile.c:758
+#: glib/gkeyfile.c:833
msgid "Not a regular file"
-msgstr "Гэта не звычайны файл"
+msgstr "Файл не з'яўляецца звычайным"
-#: ../glib/gkeyfile.c:1158
+#: glib/gkeyfile.c:1291
#, c-format
msgid ""
-"Key file contains line '%s' which is not a key-value pair, group, or comment"
+"Key file contains line “%s” which is not a key-value pair, group, or comment"
msgstr ""
-"Ключавы файл змяшчае радок \"%s\", які не з'яўляецца ані парай ключ-"
-"значэнне, ані групай, ані каментарыем"
-#: ../glib/gkeyfile.c:1215
+#: glib/gkeyfile.c:1348
#, c-format
msgid "Invalid group name: %s"
-msgstr "Хібная назва групы: %s"
+msgstr "Няправільная назва групы: %s"
-#: ../glib/gkeyfile.c:1237
+#: glib/gkeyfile.c:1372
msgid "Key file does not start with a group"
-msgstr "Ключавы файл не пачынаецца з групы"
+msgstr "Файл ключа не пачынаецца з групы"
-#: ../glib/gkeyfile.c:1263
+#: glib/gkeyfile.c:1396
#, c-format
-msgid "Invalid key name: %s"
-msgstr "Хібная назва ключа: %s"
+msgid "Invalid key name: %.*s"
+msgstr "Няправільная назва ключа: %.*s"
-#: ../glib/gkeyfile.c:1290
+#: glib/gkeyfile.c:1424
#, c-format
-msgid "Key file contains unsupported encoding '%s'"
-msgstr ""
-"Ключавы файл змяшчае даныя, закадаваныя як \"%s\". Гэты спосаб кадавання не "
-"падтрымліваецца."
+msgid "Key file contains unsupported encoding “%s”"
+msgstr "Файл ключа змяшчае кадаванне «%s», якое не падтрымліваецца"
-#: ../glib/gkeyfile.c:1533 ../glib/gkeyfile.c:1695 ../glib/gkeyfile.c:3073
-#: ../glib/gkeyfile.c:3139 ../glib/gkeyfile.c:3265 ../glib/gkeyfile.c:3398
-#: ../glib/gkeyfile.c:3540 ../glib/gkeyfile.c:3770 ../glib/gkeyfile.c:3837
+#: glib/gkeyfile.c:1679 glib/gkeyfile.c:1852 glib/gkeyfile.c:3299
+#: glib/gkeyfile.c:3363 glib/gkeyfile.c:3493 glib/gkeyfile.c:3625
+#: glib/gkeyfile.c:3771 glib/gkeyfile.c:4006 glib/gkeyfile.c:4073
#, c-format
-msgid "Key file does not have group '%s'"
-msgstr "Ключавы файл не мае групы \"%s\""
+msgid "Key file does not have group “%s”"
+msgstr "Файл ключа не змяшчае групы «%s»"
-#: ../glib/gkeyfile.c:1707
+#: glib/gkeyfile.c:1807
#, c-format
-msgid "Key file does not have key '%s'"
-msgstr "Ключавы файл не мае ключа \"%s\""
+msgid "Key file does not have key “%s” in group “%s”"
+msgstr "Файл ключа не змяшчае ключа «%s» у групе «%s»"
-#: ../glib/gkeyfile.c:1814 ../glib/gkeyfile.c:1930
+#: glib/gkeyfile.c:1969 glib/gkeyfile.c:2085
#, c-format
-msgid "Key file contains key '%s' with value '%s' which is not UTF-8"
-msgstr ""
-"Ключавы файл змяшчае ключ \"%s\" са значэннем \"%s\", закадаваным не як UTF-8"
+msgid "Key file contains key “%s” with value “%s” which is not UTF-8"
+msgstr "Файл ключа змяшчае ключ «%s» са значэннем «%s», якое не ў UTF-8"
-#: ../glib/gkeyfile.c:1834 ../glib/gkeyfile.c:1950 ../glib/gkeyfile.c:2319
+#: glib/gkeyfile.c:1989 glib/gkeyfile.c:2105 glib/gkeyfile.c:2544
#, c-format
msgid ""
-"Key file contains key '%s' which has a value that cannot be interpreted."
-msgstr ""
-"Ключавы файл змяшчае ключ \"%s\" са значэннем, якое немагчыма зразумець."
+"Key file contains key “%s” which has a value that cannot be interpreted."
+msgstr "Файл ключа змяшчае ключ «%s», значэнне якога немагчыма інтэрпрэтаваць."
-#: ../glib/gkeyfile.c:2536 ../glib/gkeyfile.c:2902
+#: glib/gkeyfile.c:2759 glib/gkeyfile.c:3128
#, c-format
msgid ""
-"Key file contains key '%s' in group '%s' which has a value that cannot be "
+"Key file contains key “%s” in group “%s” which has a value that cannot be "
"interpreted."
msgstr ""
-"Ключавы файл змяшчае ключ \"%s\" у групе \"%s\" са значэннем, якое немагчыма "
-"зразумець."
+"Файл ключа змяшчае ключ «%s» у групе «%s» са значэннем, якое немагчыма "
+"інтэрпрэтаваць."
-#: ../glib/gkeyfile.c:2614 ../glib/gkeyfile.c:2690
+#: glib/gkeyfile.c:2837 glib/gkeyfile.c:2914
#, c-format
-msgid "Key '%s' in group '%s' has value '%s' where %s was expected"
-msgstr "Ключ \"%s\" у групе \"%s\" мае значэнне \"%s\", хоць чакалася %s"
+msgid "Key “%s” in group “%s” has value “%s” where %s was expected"
+msgstr "Ключ «%s» у групе «%s» мае значэнне «%s», калі чакалася %s"
-#: ../glib/gkeyfile.c:3088 ../glib/gkeyfile.c:3280 ../glib/gkeyfile.c:3848
-#, c-format
-msgid "Key file does not have key '%s' in group '%s'"
-msgstr "Ключавы файл не мае ключа \"%s\" у групе \"%s\""
-
-#: ../glib/gkeyfile.c:4080
+#: glib/gkeyfile.c:4326
msgid "Key file contains escape character at end of line"
-msgstr "Ключавы файл змяшчае знак экранавання напрыканцы радка"
+msgstr "Файл ключа змяшчае знак экранавання ў канцы радка"
-#: ../glib/gkeyfile.c:4102
+#: glib/gkeyfile.c:4348
#, c-format
-msgid "Key file contains invalid escape sequence '%s'"
-msgstr "Ключавы файл змяшчае хібную кіроўную паслядоўнасць \"%s\""
+msgid "Key file contains invalid escape sequence “%s”"
+msgstr "Файл ключа змяшчае няправільную паслядоўнасць экранавання «%s»"
-#: ../glib/gkeyfile.c:4244
+#: glib/gkeyfile.c:4493
#, c-format
-msgid "Value '%s' cannot be interpreted as a number."
-msgstr "Не ўдалося ўспрыняць значэнне \"%s\" як лік."
+msgid "Value “%s” cannot be interpreted as a number."
+msgstr "Немагчыма інтэрпрэтаваць значэнне «%s» як лік."
-#: ../glib/gkeyfile.c:4258
+#: glib/gkeyfile.c:4507
#, c-format
-msgid "Integer value '%s' out of range"
-msgstr "Цэлае значэнне \"%s\" не ў дыяпазоне"
+msgid "Integer value “%s” out of range"
+msgstr "Цэлалікавае значэнне «%s» па-за межамі дыяпазону"
-#: ../glib/gkeyfile.c:4291
+#: glib/gkeyfile.c:4540
#, c-format
-msgid "Value '%s' cannot be interpreted as a float number."
-msgstr "Не ўдалося ўспрыняць значэнне \"%s\" як дробавы лік."
+msgid "Value “%s” cannot be interpreted as a float number."
+msgstr "Немагчыма інтэрпрэтаваць значэнне «%s» як лік з нефіксаванай коскай."
-#: ../glib/gkeyfile.c:4315
+#: glib/gkeyfile.c:4579
#, c-format
-msgid "Value '%s' cannot be interpreted as a boolean."
-msgstr "Не ўдалося ўспрыняць значэнне \"%s\" як булева."
+msgid "Value “%s” cannot be interpreted as a boolean."
+msgstr "Немагчыма інтэрпрэтаваць значэнне «%s» як булева."
-#: ../glib/gmappedfile.c:130
+#: glib/gmappedfile.c:131
#, c-format
-msgid "Failed to get attributes of file '%s%s%s%s': fstat() failed: %s"
-msgstr ""
-"Не ўдалося атрымаць спіс атрыбутаў файла \"%s%s%s%s\": памылка fstat(): %s"
+msgid "Failed to get attributes of file “%s%s%s%s”: fstat() failed: %s"
+msgstr "Не ўдалося атрымаць атрыбуты файла «%s%s%s%s»: fstat() збой: %s"
-#: ../glib/gmappedfile.c:196
+#: glib/gmappedfile.c:197
#, c-format
msgid "Failed to map %s%s%s%s: mmap() failed: %s"
-msgstr "Не ўдалося алюстраваць файл %s%s%s%s у памяці: памылка mmap(): %s"
+msgstr "Не ўдалося супаставіць %s%s%s%s: збой mmap(): %s"
-#: ../glib/gmappedfile.c:262
+#: glib/gmappedfile.c:264
#, c-format
-msgid "Failed to open file '%s': open() failed: %s"
-msgstr "Не ўдалося адкрыць файл \"%s\": памылка open(): %s"
+msgid "Failed to open file “%s”: open() failed: %s"
+msgstr "Не ўдалося адкрыць файл «%s»: open() збой: %s"
-#: ../glib/gmarkup.c:397 ../glib/gmarkup.c:439
+#: glib/gmarkup.c:400 glib/gmarkup.c:442
#, c-format
msgid "Error on line %d char %d: "
-msgstr "Памылка ў радку %d, знак %d: "
+msgstr "Памылка ў радку %d, сімвал %d: "
-#: ../glib/gmarkup.c:461 ../glib/gmarkup.c:544
+#: glib/gmarkup.c:464 glib/gmarkup.c:547
#, c-format
-msgid "Invalid UTF-8 encoded text in name - not valid '%s'"
-msgstr "Няправільны UTF-8 тэкст у назве - хібны \"%s\""
+msgid "Invalid UTF-8 encoded text in name — not valid “%s”"
+msgstr "У назве недапушчальны кадаваны ў UTF-8 тэкст — «%s» няправільна"
-#: ../glib/gmarkup.c:472
+#: glib/gmarkup.c:475
#, c-format
-msgid "'%s' is not a valid name"
-msgstr "\"%s\" не з'яўляецца правільнай назвай"
+msgid "“%s” is not a valid name"
+msgstr "Назва «%s» недапушчальная"
-#: ../glib/gmarkup.c:488
+#: glib/gmarkup.c:491
#, c-format
-msgid "'%s' is not a valid name: '%c'"
-msgstr "\"%s\" не з'яўляецца правільнай назвай: \"%c\""
+msgid "“%s” is not a valid name: “%c”"
+msgstr "Назва «%s» недапушчальная: «%c»"
-#: ../glib/gmarkup.c:598
+#: glib/gmarkup.c:615
#, c-format
msgid "Error on line %d: %s"
msgstr "Памылка ў радку %d: %s"
-#: ../glib/gmarkup.c:682
+#: glib/gmarkup.c:692
#, c-format
msgid ""
-"Failed to parse '%-.*s', which should have been a digit inside a character "
-"reference (&#234; for example) - perhaps the digit is too large"
+"Failed to parse “%-.*s”, which should have been a digit inside a character "
+"reference (&#234; for example) — perhaps the digit is too large"
msgstr ""
-"Не ўдалося разабраць \"%-.*s\", якое мусіла быць лікам у адсылцы да знака "
-"(напрыклад, \"&#234;\"). Мабыць, лік надта вялікі."
+"Не ўдалося разабраць “%-.*s”, які павінен быць лікам у кодзе сімвала (напр. "
+"&#234), магчыма лік занадта вялікі"
-#: ../glib/gmarkup.c:694
+#: glib/gmarkup.c:704
msgid ""
"Character reference did not end with a semicolon; most likely you used an "
-"ampersand character without intending to start an entity - escape ampersand "
+"ampersand character without intending to start an entity — escape ampersand "
"as &amp;"
msgstr ""
-"Адсылка да знака не скончана кропкай з коскай. Відаць, вы ўжылі знак \"&\", "
-"не плануючы ствараць новы знакавы элемент. Каб пазбегнуць такіх паводзін, "
-"пішыце знак \"&\" як \"&amp;\"."
+"Код сімвала не заканчваецца кропкай з коскай. Падобна, што вы выкарысталі "
+"сімвал амперсанду (&) не для вызначэння пачатку кода — экрануйце амперсанд "
+"як &amp;"
-#: ../glib/gmarkup.c:720
+#: glib/gmarkup.c:730
#, c-format
-msgid "Character reference '%-.*s' does not encode a permitted character"
-msgstr "Адсылка да знака \"%-.*s\" не азначае дазволенага знака"
+msgid "Character reference “%-.*s” does not encode a permitted character"
+msgstr "Код сімвала “%-.*s” не спасылаецца на сімвал з дазволенага дыяпазону"
-#: ../glib/gmarkup.c:758
+#: glib/gmarkup.c:768
msgid ""
-"Empty entity '&;' seen; valid entities are: &amp; &quot; &lt; &gt; &apos;"
+"Empty entity “&;” seen; valid entities are: &amp; &quot; &lt; &gt; &apos;"
msgstr ""
-"Напатканы пусты знакавы элемент \"&;\". Дазволеныя элементы: \"&amp;\", "
-"\"&quot;\", \"&lt;\", \"&gt;\" і \"&apos;\"."
+"Выяўлены пусты аб'ект «&;». Правільныя аб'екты: &amp; &quot; &lt; &gt; &apos;"
-#: ../glib/gmarkup.c:766
+#: glib/gmarkup.c:776
#, c-format
-msgid "Entity name '%-.*s' is not known"
-msgstr "Назва знакавага элемента \"%-.*s\" невядомая."
+msgid "Entity name “%-.*s” is not known"
+msgstr "Назва аб'екта “%-.*s” невядомая"
-#: ../glib/gmarkup.c:771
+#: glib/gmarkup.c:781
msgid ""
"Entity did not end with a semicolon; most likely you used an ampersand "
-"character without intending to start an entity - escape ampersand as &amp;"
+"character without intending to start an entity — escape ampersand as &amp;"
msgstr ""
-"Знакавы элемент не скончаны кропкай з коскай. Відаць, вы ўжылі знак \"&\", "
-"не плануючы ствараць новы знакавы элемент. Каб пазбегнуць такіх паводзін, "
-"пішыце знак \"&\" як \"&amp;\"."
+"Аб'ект не заканчваецца кропкай з коскай. Падобна, што вы выкарысталі сімвал "
+"амперсанду (&) не для вызначэння пачатку кода — экрануйце амперсанд як &amp;"
-#: ../glib/gmarkup.c:1119
+#: glib/gmarkup.c:1195
msgid "Document must begin with an element (e.g. <book>)"
-msgstr "Дакумент мусіць пачынацца з элемента (напрыклад, з <book>)."
+msgstr "Дакумент павінен пачынацца з элемента (напр. <book>)"
-#: ../glib/gmarkup.c:1159
+#: glib/gmarkup.c:1235
#, c-format
msgid ""
-"'%s' is not a valid character following a '<' character; it may not begin an "
+"“%s” is not a valid character following a “<” character; it may not begin an "
"element name"
msgstr ""
-"Знак \"%s\" забаронены пасля знака \"<\". Назва элемента не можа пачынацца з "
-"гэтага знака."
-#: ../glib/gmarkup.c:1227
+#: glib/gmarkup.c:1278
#, c-format
msgid ""
-"Odd character '%s', expected a '>' character to end the empty-element tag "
-"'%s'"
+"Odd character “%s”, expected a “>” character to end the empty-element tag "
+"“%s”"
msgstr ""
-"Напатканы нечаканы \"%s\" замест чаканага знака \">\", які б закрыў тэг \"%s"
-"\" пустога элемента."
-#: ../glib/gmarkup.c:1311
+#: glib/gmarkup.c:1348
+#, c-format
+msgid "Too many attributes in element “%s”"
+msgstr "Занадта шмат атрыбутаў у элеменце «%s»"
+
+#: glib/gmarkup.c:1368
#, c-format
msgid ""
-"Odd character '%s', expected a '=' after attribute name '%s' of element '%s'"
+"Odd character “%s”, expected a “=” after attribute name “%s” of element “%s”"
msgstr ""
-"Напатканы нечаканы \"%s\" замест чаканага знака \"=\" пасля назвы атрыбута "
-"\"%s\" элемента \"%s\"."
-#: ../glib/gmarkup.c:1352
+#: glib/gmarkup.c:1410
#, c-format
msgid ""
-"Odd character '%s', expected a '>' or '/' character to end the start tag of "
-"element '%s', or optionally an attribute; perhaps you used an invalid "
+"Odd character “%s”, expected a “>” or “/” character to end the start tag of "
+"element “%s”, or optionally an attribute; perhaps you used an invalid "
"character in an attribute name"
msgstr ""
-"Напатканы нечаканы \"%s\" замест аднаго з чаканых знакаў \">\" або \"/\", "
-"які б закрыў пачатковы тэг элемента \"%s\", або замест магчымага атрыбута. "
-"Магчыма, вы ўжылі хібны знак у назве атрыбута."
-#: ../glib/gmarkup.c:1396
+#: glib/gmarkup.c:1455
#, c-format
msgid ""
-"Odd character '%s', expected an open quote mark after the equals sign when "
-"giving value for attribute '%s' of element '%s'"
+"Odd character “%s”, expected an open quote mark after the equals sign when "
+"giving value for attribute “%s” of element “%s”"
msgstr ""
-"Напатканы нечаканы \"%s\" замест чаканага знака двукоссяў пасля знака "
-"роўнасці падчас азначэння атрыбута \"%s\" элемента \"%s\"."
-#: ../glib/gmarkup.c:1529
+#: glib/gmarkup.c:1589
#, c-format
msgid ""
-"'%s' is not a valid character following the characters '</'; '%s' may not "
+"“%s” is not a valid character following the characters “</”; “%s” may not "
"begin an element name"
msgstr ""
-"Знак \"%s\" не дазволены для змяшчэння пасля \"</\". Назва элемента не можа "
-"пачынацца знакам \"%s\"."
-#: ../glib/gmarkup.c:1565
+#: glib/gmarkup.c:1627
#, c-format
msgid ""
-"'%s' is not a valid character following the close element name '%s'; the "
-"allowed character is '>'"
+"“%s” is not a valid character following the close element name “%s”; the "
+"allowed character is “>”"
msgstr ""
-"Знак \"%s\" не дазволены для змяшчэння пасля канцавой назвы элемента \"%s\". "
-"У гэтым месцы дазволены толькі знак \">\"."
-#: ../glib/gmarkup.c:1576
+#: glib/gmarkup.c:1639
#, c-format
-msgid "Element '%s' was closed, no element is currently open"
-msgstr "Элемент \"%s\" закрыты, і ўжо больш няма адкрытых элементаў."
+msgid "Element “%s” was closed, no element is currently open"
+msgstr ""
-#: ../glib/gmarkup.c:1585
+#: glib/gmarkup.c:1648
#, c-format
-msgid "Element '%s' was closed, but the currently open element is '%s'"
-msgstr "Элемент \"%s\" закрыты, але цяпер адкрытым застаецца элемент \"%s\"."
+msgid "Element “%s” was closed, but the currently open element is “%s”"
+msgstr ""
-#: ../glib/gmarkup.c:1753
+#: glib/gmarkup.c:1801
msgid "Document was empty or contained only whitespace"
-msgstr "Дакумент быў пустым або змяшчаў толькі прабельныя знакі."
+msgstr "Дакумент быў пустым або змяшчаў толькі прабельныя знакі"
-#: ../glib/gmarkup.c:1767
-msgid "Document ended unexpectedly just after an open angle bracket '<'"
-msgstr "Дакумент нечакана скончыўся адразу пасля пачатковага знака \"<\"."
+#: glib/gmarkup.c:1815
+msgid "Document ended unexpectedly just after an open angle bracket “<”"
+msgstr ""
-#: ../glib/gmarkup.c:1775 ../glib/gmarkup.c:1820
+#: glib/gmarkup.c:1823 glib/gmarkup.c:1868
#, c-format
msgid ""
-"Document ended unexpectedly with elements still open - '%s' was the last "
+"Document ended unexpectedly with elements still open — “%s” was the last "
"element opened"
msgstr ""
-"Дакумент нечакана скончыўся, хаця яшчэ засталіся адкрытыя элементы. Апошнім "
-"адкрытым элементам з'яўляецца \"%s\"."
-#: ../glib/gmarkup.c:1783
+#: glib/gmarkup.c:1831
#, c-format
msgid ""
"Document ended unexpectedly, expected to see a close angle bracket ending "
"the tag <%s/>"
msgstr ""
"Дакумент нечакана скончыўся, хаця далей мусіў быць канцавы знак \">\", які б "
-"закрыў тэг <%s/>."
+"закрыў тэг <%s/>"
-#: ../glib/gmarkup.c:1789
+#: glib/gmarkup.c:1837
msgid "Document ended unexpectedly inside an element name"
-msgstr "Дакумент нечакана скончыўся пасярод назвы элемента."
+msgstr "Дакумент нечакана скончыўся пасярод назвы элемента"
-#: ../glib/gmarkup.c:1795
+#: glib/gmarkup.c:1843
msgid "Document ended unexpectedly inside an attribute name"
-msgstr "Дакумент нечакана скончыўся пасярод назвы атрыбута."
+msgstr "Дакумент нечакана скончыўся пасярод назвы атрыбута"
-#: ../glib/gmarkup.c:1800
+#: glib/gmarkup.c:1848
msgid "Document ended unexpectedly inside an element-opening tag."
msgstr "Дакумент нечакана скончыўся пасярод тэга, які адкрывае элемент."
-#: ../glib/gmarkup.c:1806
+#: glib/gmarkup.c:1854
msgid ""
"Document ended unexpectedly after the equals sign following an attribute "
"name; no attribute value"
msgstr ""
"Дакумент нечакана скончыўся пасля знака роўнасці, змешчанага пасля назвы "
-"атрыбута. Значэнне атрыбута не вызначана."
+"атрыбута. Значэнне атрыбута не вызначана"
-#: ../glib/gmarkup.c:1813
+#: glib/gmarkup.c:1861
msgid "Document ended unexpectedly while inside an attribute value"
-msgstr "Дакумент нечакана скончыўся пасярод значэння атрыбута."
+msgstr "Дакумент нечакана скончыўся пасярод значэння атрыбута"
-#: ../glib/gmarkup.c:1829
+#: glib/gmarkup.c:1878
#, c-format
-msgid "Document ended unexpectedly inside the close tag for element '%s'"
-msgstr "Дакумент нечакана скончыўся пасярод тэга, які закрывае элемент \"%s\"."
+msgid "Document ended unexpectedly inside the close tag for element “%s”"
+msgstr ""
-#: ../glib/gmarkup.c:1835
+#: glib/gmarkup.c:1882
+msgid ""
+"Document ended unexpectedly inside the close tag for an unopened element"
+msgstr ""
+
+#: glib/gmarkup.c:1888
msgid "Document ended unexpectedly inside a comment or processing instruction"
msgstr ""
"Дакумент нечакана скончыўся пасярод каментарыя або інструкцыі для "
-"апрацоўвання."
-
-#: ../glib/goption.c:754
-msgid "Usage:"
-msgstr "Правілы выкарыстання:"
+"апрацоўвання"
-#: ../glib/goption.c:754
-msgid "[OPTION...]"
-msgstr "[ОПЦЫЯ...]"
+#: glib/goption.c:875
+msgid "[OPTION…]"
+msgstr "[ПАРАМЕТР…]"
-#: ../glib/goption.c:870
+#: glib/goption.c:991
msgid "Help Options:"
-msgstr "Опцыі дапамогі:"
+msgstr "Параметры даведкі:"
-#: ../glib/goption.c:871
+#: glib/goption.c:992
msgid "Show help options"
-msgstr "Паказаць опцыі дапамогі"
+msgstr "Паказаць параметры даведкі"
-#: ../glib/goption.c:877
+#: glib/goption.c:998
msgid "Show all help options"
-msgstr "Паказаць усе опцыі дапамогі"
+msgstr "Паказаць усе параметры даведкі"
-#: ../glib/goption.c:939
+#: glib/goption.c:1061
msgid "Application Options:"
-msgstr "Опцыі праграмы:"
+msgstr "Параметры праграмы:"
-#: ../glib/goption.c:1003 ../glib/goption.c:1073
+#: glib/goption.c:1063
+msgid "Options:"
+msgstr "Параметры:"
+
+#: glib/goption.c:1127 glib/goption.c:1197
#, c-format
-msgid "Cannot parse integer value '%s' for %s"
-msgstr "Не ўдалося разабраць цэлае значэнне \"%s\" для %s"
+msgid "Cannot parse integer value “%s” for %s"
+msgstr ""
-#: ../glib/goption.c:1013 ../glib/goption.c:1081
+#: glib/goption.c:1137 glib/goption.c:1205
#, c-format
-msgid "Integer value '%s' for %s out of range"
-msgstr "Цэлае значэнне \"%s\" для %s не ў дыяпазоне"
+msgid "Integer value “%s” for %s out of range"
+msgstr "Цэлалікавае значэнне «%s» для «%s» па-за межамі дыяпазону"
-#: ../glib/goption.c:1038
+#: glib/goption.c:1162
#, c-format
-msgid "Cannot parse double value '%s' for %s"
+msgid "Cannot parse double value “%s” for %s"
msgstr ""
-"Не ўдалося разабраць дробавае значэнне падвойнай дакладнасці \"%s\" для %s"
-#: ../glib/goption.c:1046
+#: glib/goption.c:1170
#, c-format
-msgid "Double value '%s' for %s out of range"
-msgstr "Дробавае значэнне падвойнай дакладнасці \"%s\" для %s не ў дыяпазоне"
+msgid "Double value “%s” for %s out of range"
+msgstr ""
+"Значэнне double (лік з падвоенай дакладнасцю) «%s» для «%s» па-за межамі "
+"дыяпазону"
-#: ../glib/goption.c:1309 ../glib/goption.c:1388
+#: glib/goption.c:1462 glib/goption.c:1541
#, c-format
msgid "Error parsing option %s"
-msgstr "Не ўдалося разабраць опцыю %s"
+msgstr "Не ўдалося разабраць параметр %s"
-#: ../glib/goption.c:1419 ../glib/goption.c:1532
+#: glib/goption.c:1563 glib/goption.c:1676
#, c-format
msgid "Missing argument for %s"
msgstr "Адсутнічае аргумент да %s"
-#: ../glib/goption.c:1985
+#: glib/goption.c:2186
#, c-format
msgid "Unknown option %s"
-msgstr "Невядомая опцыя %s"
+msgstr "Невядомы параметр %s"
-#: ../glib/gregex.c:257
+#: glib/gregex.c:479
msgid "corrupted object"
msgstr "пашкоджаны аб'ект"
-#: ../glib/gregex.c:259
-msgid "internal error or corrupted object"
-msgstr "унутраная памылка або пашкоджаны аб'ект"
-
-#: ../glib/gregex.c:261
+#: glib/gregex.c:481
msgid "out of memory"
-msgstr "памяць вычарпана"
+msgstr "недастаткова памяці"
-#: ../glib/gregex.c:266
+#: glib/gregex.c:487
msgid "backtracking limit reached"
msgstr "дасягнута абмежаванне на колькасць галін пошуку"
-#: ../glib/gregex.c:278 ../glib/gregex.c:286
+#: glib/gregex.c:498
+msgid "internal error"
+msgstr "унутраная памылка"
+
+#: glib/gregex.c:500
msgid "the pattern contains items not supported for partial matching"
msgstr ""
"шаблон змяшчае складнікі, якія не падтрымліваюцца для пошуку няпоўных "
"адпаведнікаў"
-#: ../glib/gregex.c:288
+#: glib/gregex.c:502
msgid "back references as conditions are not supported for partial matching"
msgstr ""
-"зваротныя адсылкі як умовы не падтрымліваюцца для пошуку няпоўных "
+"зваротныя спасылкі як умовы не падтрымліваюцца для пошуку няпоўных "
"адпаведнікаў"
-#: ../glib/gregex.c:297
+#: glib/gregex.c:508
msgid "recursion limit reached"
msgstr "дасягнута абмежаванне на глыбіню рэкурсіі"
-#: ../glib/gregex.c:299
-msgid "invalid combination of newline flags"
-msgstr "памылковае спалучэнне сцяжкоў новага радка"
-
-#: ../glib/gregex.c:301
+#: glib/gregex.c:510
msgid "bad offset"
msgstr "хібны зрух"
-#: ../glib/gregex.c:303
-msgid "short utf8"
-msgstr "кароткі utf8"
-
-#: ../glib/gregex.c:305
+#: glib/gregex.c:512
msgid "recursion loop"
msgstr "рэкурсіўны цыкл"
-#: ../glib/gregex.c:309
+#. should not happen in GRegex since we check modes before each match
+#: glib/gregex.c:515
+msgid "matching mode is requested that was not compiled for JIT"
+msgstr ""
+
+#: glib/gregex.c:536 glib/gregex.c:1838
msgid "unknown error"
msgstr "невядомая памылка"
-#: ../glib/gregex.c:329
+#: glib/gregex.c:557
msgid "\\ at end of pattern"
-msgstr "знак \"\\\" напрыканцы шаблона"
+msgstr "\\ у канцы шаблону"
-#: ../glib/gregex.c:332
+#: glib/gregex.c:561
msgid "\\c at end of pattern"
-msgstr "знак \"\\c\" напрыканцы шаблона"
+msgstr "\\c у канцы шаблону"
-#: ../glib/gregex.c:335
+#: glib/gregex.c:566
msgid "unrecognized character following \\"
-msgstr "невядомы знак пасля \"\\\""
+msgstr "нераспазнаны сімвал пасля \\"
-#: ../glib/gregex.c:338
+#: glib/gregex.c:570
msgid "numbers out of order in {} quantifier"
-msgstr "неўпарадкаваныя лікі ў квантары {}"
+msgstr "неўпарадкаваныя лікі ў квантыфікатары {}"
-#: ../glib/gregex.c:341
+#: glib/gregex.c:574
msgid "number too big in {} quantifier"
-msgstr "надта вялікі лік у квантары {}"
+msgstr "занадта вялікі лік у квантыфікатары {}"
-#: ../glib/gregex.c:344
+#: glib/gregex.c:578
msgid "missing terminating ] for character class"
msgstr "адсутнічае канцавы знак \"]\" класа знакаў"
-#: ../glib/gregex.c:347
+#: glib/gregex.c:582
msgid "invalid escape sequence in character class"
-msgstr "хібная кіроўная паслядоўнасць у класе знакаў"
+msgstr "няправільная кіроўная паслядоўнасць у класе знакаў"
-#: ../glib/gregex.c:350
+#: glib/gregex.c:586
msgid "range out of order in character class"
-msgstr "дыяпазон у класе знакаў па-за дапушчальнымі межамі"
+msgstr "дыяпазон у класе сімвалаў па-за дапушчальнымі межамі"
-#: ../glib/gregex.c:353
+#: glib/gregex.c:591
msgid "nothing to repeat"
msgstr "няма што паўтараць"
-#: ../glib/gregex.c:357
-msgid "unexpected repeat"
-msgstr "нечаканы паўтор"
-
-#: ../glib/gregex.c:360
+#: glib/gregex.c:595
msgid "unrecognized character after (? or (?-"
-msgstr "невядомы знак пасля \"(?\" ці \"(?-\""
+msgstr "нераспазнаны сімвал пасля (? або (?-"
-#: ../glib/gregex.c:363
+#: glib/gregex.c:599
msgid "POSIX named classes are supported only within a class"
msgstr "POSIX-класы з назвамі падтрымліваюцца толькі ўнутры іншага класа"
-#: ../glib/gregex.c:366
+#: glib/gregex.c:603
+msgid "POSIX collating elements are not supported"
+msgstr "элементы парадкавання POSIX не падтрымліваюцца"
+
+#: glib/gregex.c:609
msgid "missing terminating )"
-msgstr "адсутны канцавы знак \")\""
+msgstr "адсутнічае канцавы знак )"
-#: ../glib/gregex.c:369
+#: glib/gregex.c:613
msgid "reference to non-existent subpattern"
-msgstr "адсылка да адсутнага падшаблона"
+msgstr "спасылка на неіснуючы падшаблон"
-#: ../glib/gregex.c:372
+#: glib/gregex.c:617
msgid "missing ) after comment"
-msgstr "пасля каментарыя адсутнічае знак \")\""
+msgstr "пасля каментарыя адсутнічае знак )"
-#: ../glib/gregex.c:375
+#: glib/gregex.c:621
msgid "regular expression is too large"
-msgstr "надта доўгі рэгулярны выраз"
-
-#: ../glib/gregex.c:378
-msgid "failed to get memory"
-msgstr "не ўдалося займець памяць"
-
-#: ../glib/gregex.c:382
-msgid ") without opening ("
-msgstr "знак \")\" не мае адпаведнага пачатковага знака \"(\""
+msgstr "занадта вялікі рэгулярны выраз"
-#: ../glib/gregex.c:386
-msgid "code overflow"
-msgstr "перапаўненне коду"
-
-#: ../glib/gregex.c:390
-msgid "unrecognized character after (?<"
-msgstr "невядомы знак пасля \"(?<\""
+#: glib/gregex.c:625
+msgid "malformed number or name after (?("
+msgstr "пасля \"(?(\" змешчаны няправільны лік або назва"
-#: ../glib/gregex.c:393
+#: glib/gregex.c:629
msgid "lookbehind assertion is not fixed length"
msgstr "праверка з азіраннем назад не мае сталай даўжыні"
-#: ../glib/gregex.c:396
-msgid "malformed number or name after (?("
-msgstr "пасля \"(?(\" змешчаны хібны лік ці назва"
-
-#: ../glib/gregex.c:399
+#: glib/gregex.c:633
msgid "conditional group contains more than two branches"
msgstr "умоўная група змяшчае больш за дзве галіны"
-#: ../glib/gregex.c:402
+#: glib/gregex.c:637
msgid "assertion expected after (?("
msgstr "пасля \"(?(\" чакалі праверкі"
-#. translators: '(?R' and '(?[+-]digits' are both meant as (groups of)
-#. * sequences here, '(?-54' would be an example for the second group.
-#.
-#: ../glib/gregex.c:409
-msgid "(?R or (?[+-]digits must be followed by )"
-msgstr "пасля \"(?R\" і \"(?[+-]лічбы\" мусіць ісці знак \")\""
+#: glib/gregex.c:641
+msgid "a numbered reference must not be zero"
+msgstr "пранумараваная спасылка не павінна быць нулявой"
-#: ../glib/gregex.c:412
+#: glib/gregex.c:645
msgid "unknown POSIX class name"
-msgstr "назва невядомага POSIX-класа"
+msgstr "назва невядомага класа POSIX"
-#: ../glib/gregex.c:415
-msgid "POSIX collating elements are not supported"
-msgstr "элементы парадкавання POSIX не падтрымліваюцца"
-
-#: ../glib/gregex.c:418
+#: glib/gregex.c:650
msgid "character value in \\x{...} sequence is too large"
-msgstr "надта вялікае значэнне знака ў паслядоўнасці \"\\x{...}\""
+msgstr "у паслядоўнасці \\x{...} занадта вялікае значэнне сімвала"
-#: ../glib/gregex.c:421
-msgid "invalid condition (?(0)"
-msgstr "хібная ўмова \"(?(0)\""
-
-#: ../glib/gregex.c:424
+#: glib/gregex.c:654
msgid "\\C not allowed in lookbehind assertion"
-msgstr "\"\\C\" забаронена для праверкі з азіраннем назад"
-
-#: ../glib/gregex.c:431
-msgid "escapes \\L, \\l, \\N{name}, \\U, and \\u are not supported"
-msgstr "паслядоўнасці \\L, \\l, \\N{назва}, \\U і \\u не падтрымліваюцца"
+msgstr "\\C забаронена для праверкі з азіраннем назад"
-#: ../glib/gregex.c:434
-msgid "recursive call could loop indefinitely"
-msgstr "рэкурсія магла ніколі не скончыцца"
-
-#: ../glib/gregex.c:438
-msgid "unrecognized character after (?P"
-msgstr "невядомы знак пасля \"(?P\""
-
-#: ../glib/gregex.c:441
+#: glib/gregex.c:658
msgid "missing terminator in subpattern name"
-msgstr "у назве падшаблона адсутнічае канцавы элемент"
+msgstr "у назве падшаблону адсутнічае канцавы элемент"
-#: ../glib/gregex.c:444
+#: glib/gregex.c:662
msgid "two named subpatterns have the same name"
msgstr "два падшаблоны маюць аднолькавую назву"
-#: ../glib/gregex.c:447
+#: glib/gregex.c:666
msgid "malformed \\P or \\p sequence"
-msgstr "хібная паслядоўнасць \"\\P\" ці \"\\p\""
+msgstr "хібная паслядоўнасць \"\\P\" або \"\\p\""
-#: ../glib/gregex.c:450
+#: glib/gregex.c:670
msgid "unknown property name after \\P or \\p"
-msgstr "назва невядомай уласцівасці пасля \"\\P\" ці \"\\p\""
+msgstr "назва невядомай уласцівасці пасля \"\\P\" або \"\\p\""
-#: ../glib/gregex.c:453
+#: glib/gregex.c:674
msgid "subpattern name is too long (maximum 32 characters)"
-msgstr "надта доўгая назва падшаблона (дазволена не больш за 32 знакі)"
+msgstr "занадта доўгая назва падшаблону (дазволена не больш за 32 знакі)"
-#: ../glib/gregex.c:456
+#: glib/gregex.c:678
msgid "too many named subpatterns (maximum 10,000)"
-msgstr "надта шмат падшаблонаў з назвамі (дазволена не больш за 10 тыс.)"
+msgstr "занадта шмат падшаблонаў з назвамі (дазволена не больш за 10 тыс.)"
-#: ../glib/gregex.c:459
+#: glib/gregex.c:682
msgid "octal value is greater than \\377"
msgstr "васьмярковае значэнне большае за \\377"
-#: ../glib/gregex.c:463
-msgid "overran compiling workspace"
-msgstr "пераўпоўнена працоўная прастора для кампіляцыі"
-
-#: ../glib/gregex.c:467
-msgid "previously-checked referenced subpattern not found"
-msgstr "раней правераны падшаблон з адсылкай не знойдзены"
-
-#: ../glib/gregex.c:470
+#: glib/gregex.c:686
msgid "DEFINE group contains more than one branch"
msgstr "Група DEFINE змяшчае больш за адну галіну"
-#: ../glib/gregex.c:473
+#: glib/gregex.c:690
msgid "inconsistent NEWLINE options"
-msgstr "Няўзгоднены выбар NEWLINE"
+msgstr "няўзгоднены выбар NEWLINE"
-#: ../glib/gregex.c:476
+#: glib/gregex.c:694
msgid ""
"\\g is not followed by a braced, angle-bracketed, or quoted name or number, "
"or by a plain number"
@@ -4030,281 +5547,276 @@ msgstr ""
"пасля \"\\g\" адсутнічае назва ці лік у дужках (круглых або вуглавых) ці ў "
"двукоссі, або проста лік"
-#: ../glib/gregex.c:480
-msgid "a numbered reference must not be zero"
-msgstr "пранумараваная адсылка мусіць быць ненулявой"
-
-#: ../glib/gregex.c:483
+#: glib/gregex.c:699
msgid "an argument is not allowed for (*ACCEPT), (*FAIL), or (*COMMIT)"
-msgstr "для (*ACCEPT), (*FAIL) ці (*COMMIT) не дазволеныя аргументы"
+msgstr "для (*ACCEPT), (*FAIL) або (*COMMIT) не дазволеныя аргументы"
-#: ../glib/gregex.c:486
+#: glib/gregex.c:703
msgid "(*VERB) not recognized"
msgstr "(*VERB) не апазнаны"
-#: ../glib/gregex.c:489
+#: glib/gregex.c:707
msgid "number is too big"
-msgstr "надта вялікі лік"
+msgstr "занадта вялікі лік"
-#: ../glib/gregex.c:492
+#: glib/gregex.c:711
msgid "missing subpattern name after (?&"
-msgstr "пасля \"(?&\" адсутнічае назва падшаблона"
-
-#: ../glib/gregex.c:495
-msgid "digit expected after (?+"
-msgstr "пасля \"(?+\" чакалі лічбу"
+msgstr "пасля \"(?&\" адсутнічае назва падшаблону"
-#: ../glib/gregex.c:498
-msgid "] is an invalid data character in JavaScript compatibility mode"
-msgstr ""
-"\"]\" з'яўляецца хібным знакам даных у рэжыме сумяшчальнасці з JavaScript"
-
-#: ../glib/gregex.c:501
+#: glib/gregex.c:715
msgid "different names for subpatterns of the same number are not allowed"
msgstr "розныя назвы для падшаблонаў з аднолькавым нумарам забароненыя"
-#: ../glib/gregex.c:504
+#: glib/gregex.c:719
msgid "(*MARK) must have an argument"
msgstr "(*MARK) мусіць прымаць аргумент"
-#: ../glib/gregex.c:507
+#: glib/gregex.c:723
msgid "\\c must be followed by an ASCII character"
-msgstr "пасля \"\\c\" мусіць быць ASCII-знак"
+msgstr "пасля \"\\c\" павінен ісці сімвал ASCII"
-#: ../glib/gregex.c:510
+#: glib/gregex.c:727
msgid "\\k is not followed by a braced, angle-bracketed, or quoted name"
msgstr ""
"пасля \"\\k\" адсутнічае назва ў дужках (круглых ці вуглавых) або ў двукоссі"
-#: ../glib/gregex.c:513
+#: glib/gregex.c:731
msgid "\\N is not supported in a class"
msgstr "\"\\N\" не падтрымліваецца ў класе"
-#: ../glib/gregex.c:516
-msgid "too many forward references"
-msgstr "надта шмат адсылак наперад"
-
-#: ../glib/gregex.c:519
+#: glib/gregex.c:735
msgid "name is too long in (*MARK), (*PRUNE), (*SKIP), or (*THEN)"
-msgstr "надта доўгая назва ў (*MARK), (*PRUNE), (*SKIP) ці (*THEN)"
+msgstr "занадта доўгая назва ў (*MARK), (*PRUNE), (*SKIP) або (*THEN)"
+
+#: glib/gregex.c:739 glib/gregex.c:875
+msgid "code overflow"
+msgstr "перапаўненне коду"
-#: ../glib/gregex.c:522
-msgid "character value in \\u.... sequence is too large"
-msgstr "надта вялікае значэнне знака ў паслядоўнасці \"\\u....\""
+#: glib/gregex.c:743
+msgid "unrecognized character after (?P"
+msgstr "нераспазнаны сімвал пасля (?P"
+
+#: glib/gregex.c:747
+msgid "overran compiling workspace"
+msgstr "перапоўнена працоўная прастора для кампіляцыі"
+
+#: glib/gregex.c:751
+msgid "previously-checked referenced subpattern not found"
+msgstr "раней правераны падшаблон па спасылцы не знойдзены"
-#: ../glib/gregex.c:745 ../glib/gregex.c:1914
+#: glib/gregex.c:874 glib/gregex.c:1121 glib/gregex.c:2444
#, c-format
msgid "Error while matching regular expression %s: %s"
msgstr "Памылка падчас пошуку адпаведнікаў да рэгулярнага выразу %s: %s"
-#: ../glib/gregex.c:1311
+#: glib/gregex.c:1721
msgid "PCRE library is compiled without UTF8 support"
-msgstr ""
-"Праграмная бібліятэка PCRE скампіляваная без падтрымкі кадавання UTF-8."
-
-#: ../glib/gregex.c:1315
-msgid "PCRE library is compiled without UTF8 properties support"
-msgstr ""
-"Праграмная бібліятэка PCRE скампіляваная без падтрымкі ўласцівасцяў UTF-8."
+msgstr "Бібліятэка PCRE скампіляваная без падтрымкі UTF-8"
-#: ../glib/gregex.c:1323
+#: glib/gregex.c:1729
msgid "PCRE library is compiled with incompatible options"
-msgstr "Праграмная бібліятэка PCRE скампіляваная з несумяшчальнымі опцыямі"
-
-#: ../glib/gregex.c:1382
-#, c-format
-msgid "Error while compiling regular expression %s at char %d: %s"
-msgstr "Памылка падчас кампілявання рэгулярнага выразу \"%s\" на знаку %d: %s"
+msgstr "Бібліятэка PCRE скампіляваная з несумяшчальнымі параметрамі"
-#: ../glib/gregex.c:1424
+#: glib/gregex.c:1847
#, c-format
-msgid "Error while optimizing regular expression %s: %s"
-msgstr "Памылка падчас аптымізавання рэгулярнага выразу \"%s\": %s"
+msgid "Error while compiling regular expression ‘%s’ at char %s: %s"
+msgstr ""
-#: ../glib/gregex.c:2346
-msgid "hexadecimal digit or '}' expected"
-msgstr "чакалі шаснаццатковую лічбу або знак \"}\""
+#: glib/gregex.c:2887
+msgid "hexadecimal digit or “}” expected"
+msgstr "чакалася шаснаццатковая лічба або “}”"
-#: ../glib/gregex.c:2362
+#: glib/gregex.c:2903
msgid "hexadecimal digit expected"
-msgstr "чакалі шаснаццатковую лічбу"
+msgstr "чакалася шаснаццатковая лічба"
-#: ../glib/gregex.c:2402
-msgid "missing '<' in symbolic reference"
-msgstr "адсутнічае знак \"<\" у сімвальнай адсылцы"
+#: glib/gregex.c:2943
+msgid "missing “<” in symbolic reference"
+msgstr "у сімвальнай спасылцы адсутнічае “<”"
-#: ../glib/gregex.c:2411
+#: glib/gregex.c:2952
msgid "unfinished symbolic reference"
-msgstr "няскончаная сімвальная адсылка"
+msgstr "незавершаная сімвальная спасылка"
-#: ../glib/gregex.c:2418
+#: glib/gregex.c:2959
msgid "zero-length symbolic reference"
-msgstr "сімвальная адсылка нулявой даўжыні"
+msgstr "сімвальная спасылка нулявой даўжыні"
-#: ../glib/gregex.c:2429
+#: glib/gregex.c:2970
msgid "digit expected"
-msgstr "чакалі лічбу"
+msgstr "чакалася лічба"
-#: ../glib/gregex.c:2447
+#: glib/gregex.c:2988
msgid "illegal symbolic reference"
-msgstr "забароненая сімвальная адсылка"
+msgstr "недапушчальная сімвальная спасылка"
-#: ../glib/gregex.c:2509
-msgid "stray final '\\'"
-msgstr "няправільна змешчаны канцавы знак \"\\\""
+#: glib/gregex.c:3051
+msgid "stray final “\\”"
+msgstr "пабочны сімвал «\\» у канцы"
-#: ../glib/gregex.c:2513
+#: glib/gregex.c:3055
msgid "unknown escape sequence"
msgstr "невядомая кіроўная паслядоўнасць"
-#: ../glib/gregex.c:2523
+#: glib/gregex.c:3065
#, c-format
-msgid "Error while parsing replacement text \"%s\" at char %lu: %s"
-msgstr "Памылка падчас разбору тэксту замены \"%s\" у знаку %lu: %s"
+msgid "Error while parsing replacement text “%s” at char %lu: %s"
+msgstr ""
-#: ../glib/gshell.c:88
-msgid "Quoted text doesn't begin with a quotation mark"
-msgstr "Цытаваны тэкст не пачынаецца з двукосся"
+#: glib/gshell.c:98
+msgid "Quoted text doesn’t begin with a quotation mark"
+msgstr ""
-#: ../glib/gshell.c:178
+#: glib/gshell.c:188
msgid "Unmatched quotation mark in command line or other shell-quoted text"
-msgstr "Самотнае двукоссе ў загадным радку ці ў іншым цытаваным тэксце"
+msgstr "Самотнае двукоссе ў загадным радку або ў іншым цытаваным тэксце"
-#: ../glib/gshell.c:574
+#: glib/gshell.c:594
#, c-format
-msgid "Text ended just after a '\\' character. (The text was '%s')"
-msgstr "Тэкст (\"%s\") абрэзаны адразу пасля знака \"\\\"."
+msgid "Text ended just after a “\\” character. (The text was “%s”)"
+msgstr ""
-#: ../glib/gshell.c:581
+#: glib/gshell.c:601
#, c-format
-msgid "Text ended before matching quote was found for %c. (The text was '%s')"
-msgstr "Тэкст (\"%2$s\") абрэзаны да парнага двукосся для %1$c."
+msgid "Text ended before matching quote was found for %c. (The text was “%s”)"
+msgstr ""
-#: ../glib/gshell.c:593
+#: glib/gshell.c:613
msgid "Text was empty (or contained only whitespace)"
msgstr "Тэкст пусты (або змяшчаў толькі прабельныя знакі)."
-#: ../glib/gspawn.c:202
+#: glib/gspawn.c:310
#, c-format
msgid "Failed to read data from child process (%s)"
msgstr "Не ўдалося прачытаць даныя працэсу-нашчадка (%s)"
-#: ../glib/gspawn.c:345
+#: glib/gspawn.c:462
#, c-format
-msgid "Unexpected error in select() reading data from a child process (%s)"
-msgstr ""
-"Нечаканая памылка ў функцыі select() падчас чытання даных працэсу-нашчадка "
-"(%s)"
+msgid "Unexpected error in reading data from a child process (%s)"
+msgstr "Нечаканая памылка падчас чытання даных працэсу-нашчадка (%s)"
-#: ../glib/gspawn.c:430
+#: glib/gspawn.c:547
#, c-format
msgid "Unexpected error in waitpid() (%s)"
msgstr "Нечаканая памылка ў waitpid() (%s)"
-#: ../glib/gspawn.c:849 ../glib/gspawn-win32.c:1233
+#: glib/gspawn.c:1166 glib/gspawn-win32.c:1488
#, c-format
msgid "Child process exited with code %ld"
-msgstr "Працэс-нашчадак выйшаў, вярнуўшы код %ld"
+msgstr "Працэс-нашчадак скончыў працу з кодам %ld"
-#: ../glib/gspawn.c:857
+#: glib/gspawn.c:1174
#, c-format
msgid "Child process killed by signal %ld"
msgstr "Працэс-нашчадак забіты сігналам %ld"
-#: ../glib/gspawn.c:864
+#: glib/gspawn.c:1181
#, c-format
msgid "Child process stopped by signal %ld"
msgstr "Працэс-нашчадак спынены сігналам %ld"
-#: ../glib/gspawn.c:871
+#: glib/gspawn.c:1188
#, c-format
msgid "Child process exited abnormally"
msgstr "Працэс-нашчадак скончыў працу надзвычайным чынам"
-#: ../glib/gspawn.c:1276 ../glib/gspawn-win32.c:339 ../glib/gspawn-win32.c:347
+#: glib/gspawn.c:1867 glib/gspawn-win32.c:393 glib/gspawn-win32.c:401
#, c-format
msgid "Failed to read from child pipe (%s)"
-msgstr "Не ўдалося прачыць з канала сувязі з нашчадкам (%s)"
+msgstr "Не ўдалося прачытаць даныя з канала нашчадка (%s)"
+
+#: glib/gspawn.c:2230
+#, c-format
+msgid "Failed to spawn child process “%s” (%s)"
+msgstr "Не ўдалося запусціць працэс-нашчадак «%s» (%s)"
-#: ../glib/gspawn.c:1344
+#: glib/gspawn.c:2347
#, c-format
msgid "Failed to fork (%s)"
-msgstr "Не ўдалося разгалінаваць працэс (%s)"
+msgstr "Не ўдалося адгалінаваць працэс (%s)"
-#: ../glib/gspawn.c:1493 ../glib/gspawn-win32.c:370
+#: glib/gspawn.c:2507 glib/gspawn-win32.c:424
#, c-format
-msgid "Failed to change to directory '%s' (%s)"
-msgstr "Не ўдалося перайсці ў каталог \"%s\" (%s)"
+msgid "Failed to change to directory “%s” (%s)"
+msgstr "Не ўдалося змяніць каталог «%s» (%s)"
-#: ../glib/gspawn.c:1503
+#: glib/gspawn.c:2517
#, c-format
-msgid "Failed to execute child process \"%s\" (%s)"
-msgstr "Не ўдалося запусціць працэс-нашчадак \"%s\" (%s)"
+msgid "Failed to execute child process “%s” (%s)"
+msgstr "Не ўдалося выканаць працэс-нашчадак «%s» (%s)"
-#: ../glib/gspawn.c:1513
+#: glib/gspawn.c:2527
#, c-format
-msgid "Failed to redirect output or input of child process (%s)"
-msgstr "Не ўдалося перанакіраваць вывад ці ўвод працэсу-нашчадка (%s)"
+msgid "Failed to open file to remap file descriptor (%s)"
+msgstr ""
-#: ../glib/gspawn.c:1522
+#: glib/gspawn.c:2535
+#, c-format
+msgid "Failed to duplicate file descriptor for child process (%s)"
+msgstr ""
+
+#: glib/gspawn.c:2544
#, c-format
msgid "Failed to fork child process (%s)"
msgstr "Не ўдалося адгалінаваць працэс-нашчадак (%s)"
-#: ../glib/gspawn.c:1530
+#: glib/gspawn.c:2552
+#, c-format
+msgid "Failed to close file descriptor for child process (%s)"
+msgstr ""
+
+#: glib/gspawn.c:2560
#, c-format
-msgid "Unknown error executing child process \"%s\""
-msgstr "Невядомая памылка запуску працэсу-нашчадка \"%s\""
+msgid "Unknown error executing child process “%s”"
+msgstr "Невядомая памылка падчас выканання працэсу-нашчадка «%s»"
-#: ../glib/gspawn.c:1554
+#: glib/gspawn.c:2584
#, c-format
msgid "Failed to read enough data from child pid pipe (%s)"
msgstr ""
"Не ўдалося прачытаць дастатковую колькасць даных з канала сувязі з нашчадкам "
"(%s)"
-#: ../glib/gspawn.c:1627 ../glib/gspawn-win32.c:300
-#, c-format
-msgid "Failed to create pipe for communicating with child process (%s)"
-msgstr "Не ўсталяваць стварыць канал сувязі з працэсам-нашчадкам (%s)"
-
-#: ../glib/gspawn-win32.c:283
+#: glib/gspawn-win32.c:337
msgid "Failed to read data from child process"
msgstr "Не ўдалося прачытаць даныя ад працэсу-нашчадка"
-#: ../glib/gspawn-win32.c:376 ../glib/gspawn-win32.c:495
+#: glib/gspawn-win32.c:430 glib/gspawn-win32.c:435 glib/gspawn-win32.c:561
#, c-format
msgid "Failed to execute child process (%s)"
-msgstr "Не ўдалося запусціць працэс-нашчадак (%s)"
+msgstr "Не ўдалося выканаць працэс-нашчадак (%s)"
+
+#: glib/gspawn-win32.c:440
+#, c-format
+msgid "Failed to dup() in child process (%s)"
+msgstr ""
-#: ../glib/gspawn-win32.c:445
+#: glib/gspawn-win32.c:511
#, c-format
msgid "Invalid program name: %s"
-msgstr "Хібная назва праграмы: %s"
+msgstr "Няправільная назва праграмы: %s"
-#: ../glib/gspawn-win32.c:455 ../glib/gspawn-win32.c:722
-#: ../glib/gspawn-win32.c:1297
+#: glib/gspawn-win32.c:521 glib/gspawn-win32.c:853
#, c-format
msgid "Invalid string in argument vector at %d: %s"
-msgstr "хібны ланцужок у масіве аргументаў у пазіцыі %d: %s"
+msgstr "Няправільны радок у масіве аргументаў на пазіцыі %d: %s"
-#: ../glib/gspawn-win32.c:466 ../glib/gspawn-win32.c:737
-#: ../glib/gspawn-win32.c:1330
+#: glib/gspawn-win32.c:532 glib/gspawn-win32.c:869
#, c-format
msgid "Invalid string in environment: %s"
-msgstr "хібны ланцужок у асяроддзі: %s"
+msgstr "Няправільны радок у асяроддзі: %s"
-#: ../glib/gspawn-win32.c:718 ../glib/gspawn-win32.c:1278
+#: glib/gspawn-win32.c:849
#, c-format
msgid "Invalid working directory: %s"
-msgstr "хібны рабочы каталог: %s"
+msgstr "Няправільны рабочы каталог: %s"
-#: ../glib/gspawn-win32.c:783
+#: glib/gspawn-win32.c:914
#, c-format
msgid "Failed to execute helper program (%s)"
-msgstr "Не ўдалося запусціць дапаможную праграму (%s)"
+msgstr "Не ўдалося выканаць дапаможную праграму (%s)"
-#: ../glib/gspawn-win32.c:997
+#: glib/gspawn-win32.c:1143
msgid ""
"Unexpected error in g_io_channel_win32_poll() reading data from a child "
"process"
@@ -4312,198 +5824,524 @@ msgstr ""
"Нечаканая памылка ў функцыі g_io_channel_win32_poll() падчас чытання даных "
"працэсу-нашчадка"
-#: ../glib/gutf8.c:907
-msgid "Character out of range for UTF-8"
-msgstr "Знак не ў дыяпазоне UTF-8"
+#: glib/gstrfuncs.c:3372 glib/gstrfuncs.c:3474
+msgid "Empty string is not a number"
+msgstr "Пусты радок не з'яўляецца лікам"
-#: ../glib/gutf8.c:1007 ../glib/gutf8.c:1016 ../glib/gutf8.c:1146
-#: ../glib/gutf8.c:1155 ../glib/gutf8.c:1294 ../glib/gutf8.c:1390
-msgid "Invalid sequence in conversion input"
-msgstr "Хібная паслядоўнасць на ўваходзе пераўтварэння"
-
-#: ../glib/gutf8.c:1305 ../glib/gutf8.c:1401
-msgid "Character out of range for UTF-16"
-msgstr "Знак не ў дыяпазоне UTF-16"
-
-#: ../glib/gutils.c:2179 ../glib/gutils.c:2206 ../glib/gutils.c:2310
+#: glib/gstrfuncs.c:3396
#, c-format
-msgid "%u byte"
-msgid_plural "%u bytes"
-msgstr[0] "%u байт"
-msgstr[1] "%u байты"
-msgstr[2] "%u байтаў"
+msgid "“%s” is not a signed number"
+msgstr "«%s» не з'яўляецца лікам са знакам"
-#: ../glib/gutils.c:2185
+#: glib/gstrfuncs.c:3406 glib/gstrfuncs.c:3510
#, c-format
-msgid "%.1f KiB"
-msgstr "%.1f Кбайт"
+msgid "Number “%s” is out of bounds [%s, %s]"
+msgstr "Лік «%s» па-за межамі дыяпазону [%s, %s]"
-#: ../glib/gutils.c:2187
+#: glib/gstrfuncs.c:3500
#, c-format
-msgid "%.1f MiB"
-msgstr "%.1f Мбайт"
+msgid "“%s” is not an unsigned number"
+msgstr "«%s» не з'яўляецца лікам без знака"
-#: ../glib/gutils.c:2190
-#, c-format
-msgid "%.1f GiB"
-msgstr "%.1f Гбайт"
+#: glib/guri.c:317
+#, no-c-format
+msgid "Invalid %-encoding in URI"
+msgstr "Няправільнае %-кадаванне ў URI"
-#: ../glib/gutils.c:2193
-#, c-format
-msgid "%.1f TiB"
-msgstr "%.1f Тбайт"
+#: glib/guri.c:334
+msgid "Illegal character in URI"
+msgstr "Недапушчальны сімвал у URI"
-#: ../glib/gutils.c:2196
-#, c-format
-msgid "%.1f PiB"
-msgstr "%.1f Пбайт"
+#: glib/guri.c:368
+msgid "Non-UTF-8 characters in URI"
+msgstr "Не UTF-8 сімвалы ў URI"
-#: ../glib/gutils.c:2199
+#: glib/guri.c:548
#, c-format
-msgid "%.1f EiB"
-msgstr "%.1f Эбайт"
+msgid "Invalid IPv6 address ‘%.*s’ in URI"
+msgstr "Няправільны адрас IPv6 ‘%.*s’ у URI"
-#: ../glib/gutils.c:2212
+#: glib/guri.c:603
#, c-format
-msgid "%.1f kB"
-msgstr "%.1f кб"
+msgid "Illegal encoded IP address ‘%.*s’ in URI"
+msgstr "Недапушчальнае кадаванне IP-адраса ‘%.*s’ у URI"
-#: ../glib/gutils.c:2215 ../glib/gutils.c:2328
+#: glib/guri.c:615
#, c-format
-msgid "%.1f MB"
-msgstr "%.1f Мб"
+msgid "Illegal internationalized hostname ‘%.*s’ in URI"
+msgstr "Недапушчальнае інтэрнацыяналізаванае імя хоста ‘%.*s’ у URI"
-#: ../glib/gutils.c:2218 ../glib/gutils.c:2333
+#: glib/guri.c:647 glib/guri.c:659
#, c-format
-msgid "%.1f GB"
-msgstr "%.1f Гб"
+msgid "Could not parse port ‘%.*s’ in URI"
+msgstr "Не ўдалося разабраць порт ‘%.*s’ у URI"
-#: ../glib/gutils.c:2220 ../glib/gutils.c:2338
+#: glib/guri.c:666
#, c-format
-msgid "%.1f TB"
-msgstr "%.1f Тб"
+msgid "Port ‘%.*s’ in URI is out of range"
+msgstr "Порт ‘%.*s’ у URI па-за межамі дыяпазону"
-#: ../glib/gutils.c:2223 ../glib/gutils.c:2343
+#: glib/guri.c:1226 glib/guri.c:1290
#, c-format
-msgid "%.1f PB"
-msgstr "%.1f Пб"
+msgid "URI ‘%s’ is not an absolute URI"
+msgstr "URI ‘%s’ не з'яўляецца абсалютным URI"
-#: ../glib/gutils.c:2226 ../glib/gutils.c:2348
+#: glib/guri.c:1232
#, c-format
-msgid "%.1f EB"
-msgstr "%.1f Эб"
+msgid "URI ‘%s’ has no host component"
+msgstr "URI ‘%s’ не змяшчае складнікаў хоста"
+
+#: glib/guri.c:1462
+msgid "URI is not absolute, and no base URI was provided"
+msgstr "URI не з'яўляецца абсалютным, асноўны URI адсутнічае"
+
+#: glib/guri.c:2248
+msgid "Missing ‘=’ and parameter value"
+msgstr "Адсутнічае «=» і значэнне параметра"
+
+#: glib/gutf8.c:834
+msgid "Failed to allocate memory"
+msgstr "Не ўдалося вылучыць памяць"
+
+#: glib/gutf8.c:967
+msgid "Character out of range for UTF-8"
+msgstr "Сімвал не ў дыяпазоне UTF-8"
+
+#: glib/gutf8.c:1069 glib/gutf8.c:1078 glib/gutf8.c:1208 glib/gutf8.c:1217
+#: glib/gutf8.c:1356 glib/gutf8.c:1453
+msgid "Invalid sequence in conversion input"
+msgstr "Няправільная паслядоўнасць на ўваходзе пераўтварэння"
+
+#: glib/gutf8.c:1367 glib/gutf8.c:1464
+msgid "Character out of range for UTF-16"
+msgstr "Сімвал не ў дыяпазоне UTF-16"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 kB"
+#: glib/gutils.c:2857
+msgid "kB"
+msgstr "КБ"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 MB"
+#: glib/gutils.c:2859
+msgid "MB"
+msgstr "МБ"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 GB"
+#: glib/gutils.c:2861
+msgid "GB"
+msgstr "ГБ"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 TB"
+#: glib/gutils.c:2863
+msgid "TB"
+msgstr "ТБ"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 PB"
+#: glib/gutils.c:2865
+msgid "PB"
+msgstr "ПБ"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 EB"
+#: glib/gutils.c:2867
+msgid "EB"
+msgstr "ЭБ"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 KiB"
+#: glib/gutils.c:2871
+msgid "KiB"
+msgstr "КіБ"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 MiB"
+#: glib/gutils.c:2873
+msgid "MiB"
+msgstr "МіБ"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 GiB"
+#: glib/gutils.c:2875
+msgid "GiB"
+msgstr "ГіБ"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 TiB"
+#: glib/gutils.c:2877
+msgid "TiB"
+msgstr "ТіБ"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 PiB"
+#: glib/gutils.c:2879
+msgid "PiB"
+msgstr "ПіБ"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 EiB"
+#: glib/gutils.c:2881
+msgid "EiB"
+msgstr "ЭіБ"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 kb"
+#: glib/gutils.c:2885
+msgid "kb"
+msgstr "кбіт"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 Mb"
+#: glib/gutils.c:2887
+msgid "Mb"
+msgstr "МБіт"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 Gb"
+#: glib/gutils.c:2889
+msgid "Gb"
+msgstr "ГБіт"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 Tb"
+#: glib/gutils.c:2891
+msgid "Tb"
+msgstr "ТБіт"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 Pb"
+#: glib/gutils.c:2893
+msgid "Pb"
+msgstr "ПБіт"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 Eb"
+#: glib/gutils.c:2895
+msgid "Eb"
+msgstr "ЭБіт"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 Kib"
+#: glib/gutils.c:2899
+msgid "Kib"
+msgstr "КіБіт"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 Mib"
+#: glib/gutils.c:2901
+msgid "Mib"
+msgstr "МіБіт"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 Gib"
+#: glib/gutils.c:2903
+msgid "Gib"
+msgstr "ГіБіт"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 Tib"
+#: glib/gutils.c:2905
+msgid "Tib"
+msgstr "ТіБіт"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 Pib"
+#: glib/gutils.c:2907
+msgid "Pib"
+msgstr "Пібіт"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 Eib"
+#: glib/gutils.c:2909
+msgid "Eib"
+msgstr "ЭіБіт"
+
+#: glib/gutils.c:2947
+msgid "byte"
+msgid_plural "bytes"
+msgstr[0] "байт"
+msgstr[1] "байты"
+msgstr[2] "байт"
+
+#: glib/gutils.c:2951
+msgid "bit"
+msgid_plural "bits"
+msgstr[0] "біт"
+msgstr[1] "біты"
+msgstr[2] "біт"
+
+#. Translators: The "%u" is replaced with the size value, like "13"; it could
+#. * be part of "13 bytes", but only the number is requested this time.
+#: glib/gutils.c:2959
+#, c-format
+msgctxt "format-size"
+msgid "%u"
+msgstr "%u"
+
+#. Translators: The first "%u" is replaced with the value, the "%s" with a unit of the value.
+#. * The order can be changed with "%$2s %$1u". An example: "13 bytes"
+#: glib/gutils.c:2964
+#, c-format
+msgctxt "format-size"
+msgid "%u %s"
+msgstr "%u %s"
+
+#. Translators: The "%.1f" is replaced with the size value, like "13.0"; it could
+#. * be part of "13.0 MB", but only the number is requested this time.
+#: glib/gutils.c:3000
+#, c-format
+msgctxt "format-size"
+msgid "%.1f"
+msgstr "%.1f"
+
+#. Translators: The first "%.1f" is replaced with the value, the "%s" with a unit of the value.
+#. * The order can be changed with "%$2s %$1.1f". Keep the no-break space between the value and
+#. * the unit symbol. An example: "13.0 MB"
+#: glib/gutils.c:3006
+#, c-format
+msgctxt "format-size"
+msgid "%.1f %s"
+msgstr "%.1f %s"
#. Translators: the %s in "%s bytes" will always be replaced by a number.
-#: ../glib/gutils.c:2263
+#: glib/gutils.c:3046
#, c-format
msgid "%s byte"
msgid_plural "%s bytes"
msgstr[0] "%s байт"
msgstr[1] "%s байты"
-msgstr[2] "%s байтаў"
+msgstr[2] "%s байт"
+
+#. Translators: the %s in "%s bits" will always be replaced by a number.
+#: glib/gutils.c:3051
+#, c-format
+msgid "%s bit"
+msgid_plural "%s bits"
+msgstr[0] "%s біт"
+msgstr[1] "%s біты"
+msgstr[2] "%s біт"
+
+#: glib/gutils.c:3092
+#, c-format
+msgid "%u byte"
+msgid_plural "%u bytes"
+msgstr[0] "%u байт"
+msgstr[1] "%u байты"
+msgstr[2] "%u байт"
#. Translators: this is from the deprecated function g_format_size_for_display() which uses 'KB' to
#. * mean 1024 bytes. I am aware that 'KB' is not correct, but it has been preserved for reasons of
#. * compatibility. Users will not see this string unless a program is using this deprecated function.
#. * Please translate as literally as possible.
#.
-#: ../glib/gutils.c:2323
+#: glib/gutils.c:3105
#, c-format
msgid "%.1f KB"
-msgstr "%.1f кб"
+msgstr "%.1f КБ"
-msgctxt "full month name with day"
-msgid "January"
-msgstr "студзеня"
+#: glib/gutils.c:3110
+#, c-format
+msgid "%.1f MB"
+msgstr "%.1f МБ"
-msgctxt "full month name with day"
-msgid "February"
-msgstr "лютага"
+#: glib/gutils.c:3115
+#, c-format
+msgid "%.1f GB"
+msgstr "%.1f ГБ"
-msgctxt "full month name with day"
-msgid "March"
-msgstr "сакавіка"
+#: glib/gutils.c:3120
+#, c-format
+msgid "%.1f TB"
+msgstr "%.1f ТБ"
-msgctxt "full month name with day"
-msgid "April"
-msgstr "красавіка"
+#: glib/gutils.c:3125
+#, c-format
+msgid "%.1f PB"
+msgstr "%.1f ПБ"
-msgctxt "full month name with day"
-msgid "May"
-msgstr "мая"
+#: glib/gutils.c:3130
+#, c-format
+msgid "%.1f EB"
+msgstr "%.1f ЭБ"
-msgctxt "full month name with day"
-msgid "June"
-msgstr "чэрвеня"
+#, c-format
+#~ msgid "Cannot spawn a message bus when setuid"
+#~ msgstr "Немагчыма стварыць шыну апавяшчэння ў рэжыме setuid"
-msgctxt "full month name with day"
-msgid "July"
-msgstr "ліпеня"
+#~ msgid "Invalid attribute type (string expected)"
+#~ msgstr "Няправільны тып атрыбута (чакаўся радок)"
-msgctxt "full month name with day"
-msgid "August"
-msgstr "жніўня"
+#, c-format
+#~ msgid "Invalid key name: %s"
+#~ msgstr "Няправільная назва ключа: %s"
-msgctxt "full month name with day"
-msgid "September"
-msgstr "верасня"
+#~ msgid "internal error or corrupted object"
+#~ msgstr "унутраная памылка або пашкоджаны аб'ект"
-msgctxt "full month name with day"
-msgid "October"
-msgstr "кастрычніка"
+#~ msgid "invalid combination of newline flags"
+#~ msgstr "няправільнае спалучэнне сцяжкоў новага радка"
-msgctxt "full month name with day"
-msgid "November"
-msgstr "лістапада"
+#~ msgid "short utf8"
+#~ msgstr "кароткі utf8"
-msgctxt "full month name with day"
-msgid "December"
-msgstr "снежня"
+#~ msgid "unexpected repeat"
+#~ msgstr "нечаканае паўтарэнне"
-msgctxt "abbreviated month name with day"
-msgid "Jan"
-msgstr "сту"
+#~ msgid "failed to get memory"
+#~ msgstr "не ўдалося займець памяць"
-msgctxt "abbreviated month name with day"
-msgid "Feb"
-msgstr "лют"
+#~ msgid ") without opening ("
+#~ msgstr "знак \")\" не мае адпаведнага пачатковага знака \"(\""
-msgctxt "abbreviated month name with day"
-msgid "Mar"
-msgstr "сак"
+#~ msgid "unrecognized character after (?<"
+#~ msgstr "нераспазнаны сімвал пасля (?<"
-msgctxt "abbreviated month name with day"
-msgid "Apr"
-msgstr "кра"
+#~ msgid "(?R or (?[+-]digits must be followed by )"
+#~ msgstr "пасля (?R або (?[+-]лічбы павінна ісці дужка «)»"
-msgctxt "abbreviated month name with day"
-msgid "May"
-msgstr "мая"
+#~ msgid "invalid condition (?(0)"
+#~ msgstr "няправільная ўмова (?(0)"
-msgctxt "abbreviated month name with day"
-msgid "Jun"
-msgstr "чэр"
+#~ msgid "escapes \\L, \\l, \\N{name}, \\U, and \\u are not supported"
+#~ msgstr "паслядоўнасці \\L, \\l, \\N{назва}, \\U і \\u не падтрымліваюцца"
-msgctxt "abbreviated month name with day"
-msgid "Jul"
-msgstr "ліп"
+#~ msgid "recursive call could loop indefinitely"
+#~ msgstr "рэкурсія магла ніколі не скончыцца"
-msgctxt "abbreviated month name with day"
-msgid "Aug"
-msgstr "жні"
+#~ msgid "digit expected after (?+"
+#~ msgstr "пасля \"(?+\" чакалася лічба"
-msgctxt "abbreviated month name with day"
-msgid "Sep"
-msgstr "вер"
+#~ msgid "] is an invalid data character in JavaScript compatibility mode"
+#~ msgstr ""
+#~ "\"]\" з'яўляецца хібным знакам даных у рэжыме сумяшчальнасці з JavaScript"
-msgctxt "abbreviated month name with day"
-msgid "Oct"
-msgstr "кас"
+#~ msgid "too many forward references"
+#~ msgstr "занадта шмат прамых адсылак"
-msgctxt "abbreviated month name with day"
-msgid "Nov"
-msgstr "ліс"
+#~ msgid "character value in \\u.... sequence is too large"
+#~ msgstr "у паслядоўнасці \\u.... занадта вялікае значэнне сімвала"
-msgctxt "abbreviated month name with day"
-msgid "Dec"
-msgstr "сне"
+#~ msgid "PCRE library is compiled without UTF8 properties support"
+#~ msgstr "Бібліятэка PCRE скампіляваная без падтрымкі ўласцівасцей UTF-8"
+
+#, c-format
+#~ msgid "Error while optimizing regular expression %s: %s"
+#~ msgstr "Памылка падчас аптымізацыі рэгулярнага выразу \"%s\": %s"
+
+#, c-format
+#~ msgid "Error while compiling regular expression %s at char %d: %s"
+#~ msgstr ""
+#~ "Памылка падчас кампілявання рэгулярнага выразу \"%s\" на знаку %d: %s"
+
+#, c-format
+#~ msgid "Failed to redirect output or input of child process (%s)"
+#~ msgstr "Не ўдалося перанакіраваць вывад або ўвод працэсу-нашчадка (%s)"
+
+#, c-format
+#~| msgid "%.1f kB"
+#~ msgid "%.1f kB"
+#~ msgstr "%.1f КБ"
+
+#, c-format
+#~| msgid "%.1f MB"
+#~ msgid "%.1f MB"
+#~ msgstr "%.1f МБ"
+
+#, c-format
+#~| msgid "%.1f GB"
+#~ msgid "%.1f GB"
+#~ msgstr "%.1f ГБ"
+
+#, c-format
+#~| msgid "%.1f TB"
+#~ msgid "%.1f TB"
+#~ msgstr "%.1f ТБ"
+
+#, c-format
+#~| msgid "%.1f PB"
+#~ msgid "%.1f PB"
+#~ msgstr "%.1f ПБ"
+
+#, c-format
+#~| msgid "%.1f EB"
+#~ msgid "%.1f EB"
+#~ msgstr "%.1f ЭБ"
+
+#, c-format
+#~| msgid "%.1f KiB"
+#~ msgid "%.1f KiB"
+#~ msgstr "%.1f КіБ"
+
+#, c-format
+#~| msgid "%.1f MiB"
+#~ msgid "%.1f MiB"
+#~ msgstr "%.1f МіБ"
+
+#, c-format
+#~| msgid "%.1f GiB"
+#~ msgid "%.1f GiB"
+#~ msgstr "%.1f ГіБ"
+
+#, c-format
+#~| msgid "%.1f TiB"
+#~ msgid "%.1f TiB"
+#~ msgstr "%.1f ТіБ"
+
+#, c-format
+#~| msgid "%.1f PiB"
+#~ msgid "%.1f PiB"
+#~ msgstr "%.1f ПіБ"
+
+#, c-format
+#~| msgid "%.1f EiB"
+#~ msgid "%.1f EiB"
+#~ msgstr "%.1f ЭіБ"
+
+#, c-format
+#~| msgid "%.1f kB"
+#~ msgid "%.1f kb"
+#~ msgstr "%.1f Кбіт"
+
+#, c-format
+#~| msgid "%.1f MB"
+#~ msgid "%.1f Mb"
+#~ msgstr "%.1f Мбіт"
+
+#, c-format
+#~| msgid "%.1f GB"
+#~ msgid "%.1f Gb"
+#~ msgstr "%.1f Гбіт"
+
+#, c-format
+#~| msgid "%.1f TB"
+#~ msgid "%.1f Tb"
+#~ msgstr "%.1f Тбіт"
+
+#, c-format
+#~| msgid "%.1f PB"
+#~ msgid "%.1f Pb"
+#~ msgstr "%.1f Пбіт"
+
+#, c-format
+#~| msgid "%.1f EB"
+#~ msgid "%.1f Eb"
+#~ msgstr "%.1f Эбіт"
+
+#, c-format
+#~| msgid "%.1f KiB"
+#~ msgid "%.1f Kib"
+#~ msgstr "%.1f КіБіт"
+
+#, c-format
+#~| msgid "%.1f MiB"
+#~ msgid "%.1f Mib"
+#~ msgstr "%.1f МіБіт"
+
+#, c-format
+#~| msgid "%.1f GiB"
+#~ msgid "%.1f Gib"
+#~ msgstr "%.1f ГіБіт"
+
+#, c-format
+#~| msgid "%.1f TiB"
+#~ msgid "%.1f Tib"
+#~ msgstr "%.1f ТіБіт"
+
+#, c-format
+#~| msgid "%.1f PiB"
+#~ msgid "%.1f Pib"
+#~ msgstr "%.1f Пібіт"
+
+#, c-format
+#~| msgid "%.1f EiB"
+#~ msgid "%.1f Eib"
+#~ msgstr "%.1f ЭіБіт"
+
+#, c-format
+#~| msgid "%u byte"
+#~| msgid_plural "%u bytes"
+#~ msgid "%u bit"
+#~ msgid_plural "%u bits"
+#~ msgstr[0] "%u біт"
+#~ msgstr[1] "%u біты"
+#~ msgstr[2] "%u біт"
diff --git a/po/ie.po b/po/ie.po
new file mode 100644
index 000000000..f7b504635
--- /dev/null
+++ b/po/ie.po
@@ -0,0 +1,6463 @@
+# Interlingue glib translation.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: glib master\n"
+"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/glib/issues\n"
+"POT-Creation-Date: 2022-12-12 07:11+0700\n"
+"PO-Revision-Date: 2022-12-12 07:14+0700\n"
+"Last-Translator: OIS <mistresssilvara@hotmail.com>\n"
+"Language-Team: Deutsch <gnome-de@gnome.org>\n"
+"Language: ie\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Launchpad-Export-Date: 2016-10-10 00:07+0000\n"
+"X-Generator: Poedit 1.8.12\n"
+
+#: gio/gappinfo.c:335
+#, fuzzy
+msgid "Setting default applications not supported yet"
+msgstr "Localisationes «%s» ne es suportat."
+
+#: gio/gappinfo.c:368
+#, fuzzy
+msgid "Setting application as last used for type not supported yet"
+msgstr "Localisationes «%s» ne es suportat."
+
+#: gio/gappinfo.c:810
+#, fuzzy, c-format
+msgid "Failed to find default application for content type ‘%s’"
+msgstr ""
+"caja: es íncorectmen assignat quam un application predefinit por \"%s\" fil-"
+"tip.\n"
+
+#: gio/gappinfo.c:870
+#, fuzzy, c-format
+msgid "Failed to find default application for URI Scheme ‘%s’"
+msgstr "Selecter applicationes predefinit"
+
+#: gio/gapplication.c:502
+msgid "GApplication options"
+msgstr "Parametres de GApplication"
+
+#: gio/gapplication.c:502
+#, fuzzy
+msgid "Show GApplication options"
+msgstr "Parametres de GApplication"
+
+#: gio/gapplication.c:547
+msgid "Enter GApplication service mode (use from D-Bus service files)"
+msgstr ""
+
+#: gio/gapplication.c:559
+#, fuzzy
+msgid "Override the application’s ID"
+msgstr "ID de application"
+
+#: gio/gapplication.c:571
+#, fuzzy
+msgid "Replace the running instance"
+msgstr "Finir un executent instantie de Thunar"
+
+#: gio/gapplication-tool.c:47 gio/gapplication-tool.c:48 gio/gio-tool.c:229
+#: gio/gresource-tool.c:496 gio/gsettings-tool.c:586
+#, fuzzy
+msgid "Print help"
+msgstr " -h, --help Monstra ti-ci textu e surtir\n"
+
+#: gio/gapplication-tool.c:49 gio/gresource-tool.c:497 gio/gresource-tool.c:565
+#, fuzzy
+msgid "[COMMAND]"
+msgstr "Comande[]"
+
+#: gio/gapplication-tool.c:51 gio/gio-tool.c:230
+#, fuzzy
+msgid "Print version"
+msgstr "Printar li version"
+
+#: gio/gapplication-tool.c:52 gio/gsettings-tool.c:592
+#, fuzzy
+msgid "Print version information and exit"
+msgstr "Monstra li information del version, poy salir"
+
+#: gio/gapplication-tool.c:55
+#, fuzzy
+msgid "List applications"
+msgstr ""
+"Un liste de applicationes providet in li dialog «Aperter un file» queles non "
+"es associat con li fil-tip."
+
+#: gio/gapplication-tool.c:56
+msgid "List the installed D-Bus activatable applications (by .desktop files)"
+msgstr ""
+
+#: gio/gapplication-tool.c:59
+#, fuzzy
+msgid "Launch an application"
+msgstr "Ne successat lansar li application predefinit por «%s»"
+
+#: gio/gapplication-tool.c:60
+#, fuzzy
+msgid "Launch the application (with optional files to open)"
+msgstr "Aperter li selectet files per un application"
+
+#: gio/gapplication-tool.c:61
+#, fuzzy
+msgid "APPID [FILE…]"
+msgstr "APPID"
+
+#: gio/gapplication-tool.c:63
+#, fuzzy
+msgid "Activate an action"
+msgstr "_Activar"
+
+#: gio/gapplication-tool.c:64
+#, fuzzy
+msgid "Invoke an action on the application"
+msgstr "Li fenestre principal del activ application"
+
+#: gio/gapplication-tool.c:65
+#, fuzzy
+msgid "APPID ACTION [PARAMETER]"
+msgstr "APPID"
+
+#: gio/gapplication-tool.c:67
+#, fuzzy
+msgid "List available actions"
+msgstr "Disponibil actiones"
+
+#: gio/gapplication-tool.c:68
+msgid "List static actions for an application (from .desktop file)"
+msgstr ""
+
+#: gio/gapplication-tool.c:69 gio/gapplication-tool.c:75
+msgid "APPID"
+msgstr "APPID"
+
+#: gio/gapplication-tool.c:74 gio/gapplication-tool.c:137 gio/gdbus-tool.c:108
+#: gio/gio-tool.c:226
+msgid "COMMAND"
+msgstr "COMANDE"
+
+#: gio/gapplication-tool.c:74
+#, fuzzy
+msgid "The command to print detailed help for"
+msgstr " -h, --help Monstra ti-ci textu e surtir\n"
+
+#: gio/gapplication-tool.c:75
+msgid "Application identifier in D-Bus format (eg: org.example.viewer)"
+msgstr ""
+
+#: gio/gapplication-tool.c:76 gio/glib-compile-resources.c:822
+#: gio/glib-compile-resources.c:828 gio/glib-compile-resources.c:857
+#: gio/gresource-tool.c:503 gio/gresource-tool.c:569
+msgid "FILE"
+msgstr "FILE"
+
+#: gio/gapplication-tool.c:76
+msgid "Optional relative or absolute filenames, or URIs to open"
+msgstr ""
+
+#: gio/gapplication-tool.c:77
+#, fuzzy
+msgid "ACTION"
+msgstr "Action"
+
+#: gio/gapplication-tool.c:77
+#, fuzzy
+msgid "The action name to invoke"
+msgstr "Nómine de action"
+
+#: gio/gapplication-tool.c:78
+#, fuzzy
+msgid "PARAMETER"
+msgstr "Parametre"
+
+#: gio/gapplication-tool.c:78
+msgid "Optional parameter to the action invocation, in GVariant format"
+msgstr ""
+
+#: gio/gapplication-tool.c:100 gio/gresource-tool.c:534
+#: gio/gsettings-tool.c:678
+#, fuzzy, c-format
+msgid ""
+"Unknown command %s\n"
+"\n"
+msgstr "Ínconosset comande: '%s'\n"
+
+#: gio/gapplication-tool.c:105
+msgid "Usage:\n"
+msgstr "Usage:\n"
+
+#: gio/gapplication-tool.c:118 gio/gresource-tool.c:559
+#: gio/gsettings-tool.c:713
+#, fuzzy
+msgid "Arguments:\n"
+msgstr "Argumentes:"
+
+#: gio/gapplication-tool.c:137 gio/gio-tool.c:226
+msgid "[ARGS…]"
+msgstr ""
+
+#: gio/gapplication-tool.c:138
+#, c-format
+msgid "Commands:\n"
+msgstr "Comandes:\n"
+
+#. Translators: do not translate 'help', but please translate 'COMMAND'.
+#: gio/gapplication-tool.c:150
+#, c-format
+msgid ""
+"Use “%s help COMMAND” to get detailed help.\n"
+"\n"
+msgstr ""
+
+#: gio/gapplication-tool.c:169
+#, c-format
+msgid ""
+"%s command requires an application id to directly follow\n"
+"\n"
+msgstr ""
+
+#: gio/gapplication-tool.c:175
+#, fuzzy, c-format
+msgid "invalid application id: “%s”\n"
+msgstr "Ínvalid ID."
+
+#. Translators: %s is replaced with a command name like 'list-actions'
+#: gio/gapplication-tool.c:186
+#, fuzzy, c-format
+msgid ""
+"“%s” takes no arguments\n"
+"\n"
+msgstr "Ne successat analisar li argumentes: %s\n"
+
+#: gio/gapplication-tool.c:270
+#, fuzzy, c-format
+msgid "unable to connect to D-Bus: %s\n"
+msgstr "Ne successat conexer al bus de session D-Bus."
+
+#: gio/gapplication-tool.c:290
+#, fuzzy, c-format
+msgid "error sending %s message to application: %s\n"
+msgstr "Inviante li missage med comande: %s\n"
+
+#: gio/gapplication-tool.c:321
+msgid "action name must be given after application id\n"
+msgstr ""
+
+#: gio/gapplication-tool.c:329
+#, c-format
+msgid ""
+"invalid action name: “%s”\n"
+"action names must consist of only alphanumerics, “-” and “.”\n"
+msgstr ""
+
+#: gio/gapplication-tool.c:348
+#, c-format
+msgid "error parsing action parameter: %s\n"
+msgstr ""
+
+#: gio/gapplication-tool.c:360
+msgid "actions accept a maximum of one parameter\n"
+msgstr ""
+
+#: gio/gapplication-tool.c:415
+msgid "list-actions command takes only the application id"
+msgstr ""
+
+#: gio/gapplication-tool.c:425
+#, c-format
+msgid "unable to find desktop file for application %s\n"
+msgstr ""
+
+#: gio/gapplication-tool.c:470
+#, fuzzy, c-format
+msgid ""
+"unrecognised command: %s\n"
+"\n"
+msgstr "Ne successat lansar li comande '%s'"
+
+#: gio/gbufferedinputstream.c:422 gio/gbufferedinputstream.c:500
+#: gio/ginputstream.c:181 gio/ginputstream.c:381 gio/ginputstream.c:650
+#: gio/ginputstream.c:1052 gio/goutputstream.c:225 gio/goutputstream.c:1051
+#: gio/gpollableinputstream.c:207 gio/gpollableoutputstream.c:279
+#, c-format
+msgid "Too large count value passed to %s"
+msgstr ""
+
+#: gio/gbufferedinputstream.c:893 gio/gbufferedoutputstream.c:577
+#: gio/gdataoutputstream.c:564
+msgid "Seek not supported on base stream"
+msgstr ""
+
+#: gio/gbufferedinputstream.c:940
+#, fuzzy
+msgid "Cannot truncate GBufferedInputStream"
+msgstr "Nómines de files ne posse contener “/”."
+
+#: gio/gbufferedinputstream.c:985 gio/ginputstream.c:1241 gio/giostream.c:302
+#: gio/goutputstream.c:2200
+#, fuzzy
+msgid "Stream is already closed"
+msgstr "Cludet"
+
+#: gio/gbufferedoutputstream.c:614 gio/gdataoutputstream.c:594
+msgid "Truncate not supported on base stream"
+msgstr ""
+
+#: gio/gcancellable.c:319 gio/gdbusconnection.c:1859 gio/gdbusprivate.c:1420
+#: gio/gsimpleasyncresult.c:873 gio/gsimpleasyncresult.c:899
+#, fuzzy, c-format
+msgid "Operation was cancelled"
+msgstr "Operation anullat."
+
+#: gio/gcharsetconverter.c:262
+#, fuzzy
+msgid "Invalid object, not initialized"
+msgstr "Li sistema de securitá NSS ne posset esser inicialisat"
+
+#: gio/gcharsetconverter.c:283 gio/gcharsetconverter.c:311
+#, fuzzy
+msgid "Incomplete multibyte sequence in input"
+msgstr "Ínvalid sequentie de octetes in li intrada de conversion"
+
+#: gio/gcharsetconverter.c:317 gio/gcharsetconverter.c:326
+#, fuzzy
+msgid "Not enough space in destination"
+msgstr ""
+"Ne hay suficent spacie in li destination. Ples provar deleter quelc files "
+"por liberar spacie."
+
+#: gio/gcharsetconverter.c:344 gio/gdatainputstream.c:850
+#: gio/gdatainputstream.c:1268 glib/gconvert.c:451 glib/gconvert.c:883
+#: glib/giochannel.c:1576 glib/giochannel.c:1618 glib/giochannel.c:2473
+#: glib/gutf8.c:892 glib/gutf8.c:1346
+#, fuzzy
+msgid "Invalid byte sequence in conversion input"
+msgstr "Ínvalid sequentie de octetes in li intrada de conversion"
+
+#: gio/gcharsetconverter.c:349 glib/gconvert.c:459 glib/gconvert.c:797
+#: glib/giochannel.c:1583 glib/giochannel.c:2485
+#, fuzzy, c-format
+msgid "Error during conversion: %s"
+msgstr "Ne successat converter caracteres por «%s»"
+
+#: gio/gcharsetconverter.c:447 gio/gsocket.c:1151
+#, fuzzy
+msgid "Cancellable initialization not supported"
+msgstr "Inicialisation"
+
+#: gio/gcharsetconverter.c:458 glib/gconvert.c:324 glib/giochannel.c:1404
+#, fuzzy, c-format
+msgid "Conversion from character set “%s” to “%s” is not supported"
+msgstr "Ne successat converter caracteres por «%s»"
+
+#: gio/gcharsetconverter.c:462 glib/gconvert.c:328
+#, fuzzy, c-format
+msgid "Could not open converter from “%s” to “%s”"
+msgstr "Ne successat aperter %s: %s"
+
+#: gio/gcontenttype.c:472
+#, c-format
+msgid "%s type"
+msgstr "tip %s"
+
+#: gio/gcontenttype-win32.c:198
+msgid "Unknown type"
+msgstr "Ínconosset tip"
+
+#: gio/gcontenttype-win32.c:200
+#, fuzzy, c-format
+msgid "%s filetype"
+msgstr "Fil-tip: %s"
+
+#: gio/gcredentials.c:337
+#, fuzzy
+msgid "GCredentials contains invalid data"
+msgstr "Li file torrent «%s» contene ínvalid data."
+
+#: gio/gcredentials.c:397 gio/gcredentials.c:688
+#, fuzzy
+msgid "GCredentials is not implemented on this OS"
+msgstr "OS:"
+
+#: gio/gcredentials.c:552 gio/gcredentials.c:570
+msgid "There is no GCredentials support for your platform"
+msgstr ""
+
+#: gio/gcredentials.c:628
+msgid "GCredentials does not contain a process ID on this OS"
+msgstr ""
+
+#: gio/gcredentials.c:682
+msgid "Credentials spoofing is not possible on this OS"
+msgstr ""
+
+#: gio/gdatainputstream.c:306
+#, fuzzy
+msgid "Unexpected early end-of-stream"
+msgstr ""
+"Ínexpectat fin de file\n"
+"%s"
+
+#: gio/gdbusaddress.c:164 gio/gdbusaddress.c:238 gio/gdbusaddress.c:327
+#, c-format
+msgid "Unsupported key “%s” in address entry “%s”"
+msgstr ""
+
+#: gio/gdbusaddress.c:177
+#, c-format
+msgid "Meaningless key/value pair combination in address entry “%s”"
+msgstr ""
+
+#: gio/gdbusaddress.c:186
+#, c-format
+msgid ""
+"Address “%s” is invalid (need exactly one of path, dir, tmpdir, or abstract "
+"keys)"
+msgstr ""
+
+#: gio/gdbusaddress.c:253 gio/gdbusaddress.c:264 gio/gdbusaddress.c:279
+#: gio/gdbusaddress.c:342 gio/gdbusaddress.c:353
+#, c-format
+msgid "Error in address “%s” — the “%s” attribute is malformed"
+msgstr ""
+
+#: gio/gdbusaddress.c:423 gio/gdbusaddress.c:682
+#, c-format
+msgid "Unknown or unsupported transport “%s” for address “%s”"
+msgstr ""
+
+#: gio/gdbusaddress.c:467
+#, c-format
+msgid "Address element “%s” does not contain a colon (:)"
+msgstr ""
+
+#: gio/gdbusaddress.c:476
+#, c-format
+msgid "Transport name in address element “%s” must not be empty"
+msgstr ""
+
+#: gio/gdbusaddress.c:497
+#, c-format
+msgid ""
+"Key/Value pair %d, “%s”, in address element “%s” does not contain an equal "
+"sign"
+msgstr ""
+
+#: gio/gdbusaddress.c:508
+#, c-format
+msgid ""
+"Key/Value pair %d, “%s”, in address element “%s” must not have an empty key"
+msgstr ""
+
+#: gio/gdbusaddress.c:522
+#, c-format
+msgid ""
+"Error unescaping key or value in Key/Value pair %d, “%s”, in address element "
+"“%s”"
+msgstr ""
+
+#: gio/gdbusaddress.c:590
+#, c-format
+msgid ""
+"Error in address “%s” — the unix transport requires exactly one of the keys "
+"“path” or “abstract” to be set"
+msgstr ""
+
+#: gio/gdbusaddress.c:625
+#, c-format
+msgid "Error in address “%s” — the host attribute is missing or malformed"
+msgstr ""
+
+#: gio/gdbusaddress.c:639
+#, c-format
+msgid "Error in address “%s” — the port attribute is missing or malformed"
+msgstr ""
+
+#: gio/gdbusaddress.c:653
+#, c-format
+msgid "Error in address “%s” — the noncefile attribute is missing or malformed"
+msgstr ""
+
+#: gio/gdbusaddress.c:674
+#, fuzzy
+msgid "Error auto-launching: "
+msgstr "Errore lansante Evolution"
+
+#: gio/gdbusaddress.c:727
+#, fuzzy, c-format
+msgid "Error opening nonce file “%s”: %s"
+msgstr "Un errore evenit apertente li file «%s»"
+
+#: gio/gdbusaddress.c:746
+#, fuzzy, c-format
+msgid "Error reading from nonce file “%s”: %s"
+msgstr ""
+"Un errore printante li file:\n"
+"%s"
+
+#: gio/gdbusaddress.c:755
+#, c-format
+msgid "Error reading from nonce file “%s”, expected 16 bytes, got %d"
+msgstr ""
+
+#: gio/gdbusaddress.c:773
+#, fuzzy, c-format
+msgid "Error writing contents of nonce file “%s” to stream:"
+msgstr ""
+"Un errore printante li file:\n"
+"%s"
+
+#: gio/gdbusaddress.c:988
+#, fuzzy
+msgid "The given address is empty"
+msgstr "Prenómine"
+
+#: gio/gdbusaddress.c:1101
+#, c-format
+msgid "Cannot spawn a message bus when AT_SECURE is set"
+msgstr ""
+
+#: gio/gdbusaddress.c:1108
+msgid "Cannot spawn a message bus without a machine-id: "
+msgstr ""
+
+#: gio/gdbusaddress.c:1115
+#, c-format
+msgid "Cannot autolaunch D-Bus without X11 $DISPLAY"
+msgstr ""
+
+#: gio/gdbusaddress.c:1157
+#, fuzzy, c-format
+msgid "Error spawning command line “%s”: "
+msgstr ""
+"Un errore evenit lansante caja:\n"
+"%s"
+
+#: gio/gdbusaddress.c:1226
+#, c-format
+msgid "Cannot determine session bus address (not implemented for this OS)"
+msgstr ""
+
+#: gio/gdbusaddress.c:1375 gio/gdbusconnection.c:7321
+#, c-format
+msgid ""
+"Cannot determine bus address from DBUS_STARTER_BUS_TYPE environment variable "
+"— unknown value “%s”"
+msgstr ""
+
+#: gio/gdbusaddress.c:1384 gio/gdbusconnection.c:7330
+msgid ""
+"Cannot determine bus address because the DBUS_STARTER_BUS_TYPE environment "
+"variable is not set"
+msgstr ""
+
+#: gio/gdbusaddress.c:1394
+#, fuzzy, c-format
+msgid "Unknown bus type %d"
+msgstr "D-Bus"
+
+#: gio/gdbusauth.c:294
+msgid "Unexpected lack of content trying to read a line"
+msgstr ""
+
+#: gio/gdbusauth.c:338
+msgid "Unexpected lack of content trying to (safely) read a line"
+msgstr ""
+
+#: gio/gdbusauth.c:482
+#, c-format
+msgid ""
+"Exhausted all available authentication mechanisms (tried: %s) (available: %s)"
+msgstr ""
+
+#: gio/gdbusauth.c:1178
+msgid "User IDs must be the same for peer and server"
+msgstr ""
+
+#: gio/gdbusauth.c:1190
+msgid "Cancelled via GDBusAuthObserver::authorize-authenticated-peer"
+msgstr ""
+
+#: gio/gdbusauthmechanismsha1.c:303
+#, fuzzy, c-format
+msgid "Error when getting information for directory “%s”: %s"
+msgstr "Errore evenit obtenente li information pri partite: %s"
+
+#: gio/gdbusauthmechanismsha1.c:318
+#, c-format
+msgid ""
+"Permissions on directory “%s” are malformed. Expected mode 0700, got 0%o"
+msgstr ""
+
+#: gio/gdbusauthmechanismsha1.c:351 gio/gdbusauthmechanismsha1.c:362
+#, fuzzy, c-format
+msgid "Error creating directory “%s”: %s"
+msgstr "Un error evenit creante li directoria '%s': %s"
+
+#: gio/gdbusauthmechanismsha1.c:364 gio/gfile.c:1095 gio/gfile.c:1333
+#: gio/gfile.c:1471 gio/gfile.c:1709 gio/gfile.c:1764 gio/gfile.c:1822
+#: gio/gfile.c:1906 gio/gfile.c:1963 gio/gfile.c:2027 gio/gfile.c:2082
+#: gio/gfile.c:3787 gio/gfile.c:3927 gio/gfile.c:4339 gio/gfile.c:4809
+#: gio/gfile.c:5220 gio/gfile.c:5305 gio/gfile.c:5395 gio/gfile.c:5492
+#: gio/gfile.c:5579 gio/gfile.c:5680 gio/gfile.c:8809 gio/gfile.c:8899
+#: gio/gfile.c:8983 gio/win32/gwinhttpfile.c:453
+#, fuzzy
+msgid "Operation not supported"
+msgstr "Operation ne es suportat"
+
+#: gio/gdbusauthmechanismsha1.c:407
+#, fuzzy, c-format
+msgid "Error opening keyring “%s” for reading: "
+msgstr "Un errore evenit apertente «%s»"
+
+#: gio/gdbusauthmechanismsha1.c:430 gio/gdbusauthmechanismsha1.c:771
+#, c-format
+msgid "Line %d of the keyring at “%s” with content “%s” is malformed"
+msgstr ""
+
+#: gio/gdbusauthmechanismsha1.c:444 gio/gdbusauthmechanismsha1.c:785
+#, c-format
+msgid ""
+"First token of line %d of the keyring at “%s” with content “%s” is malformed"
+msgstr ""
+
+#: gio/gdbusauthmechanismsha1.c:458 gio/gdbusauthmechanismsha1.c:799
+#, c-format
+msgid ""
+"Second token of line %d of the keyring at “%s” with content “%s” is malformed"
+msgstr ""
+
+#: gio/gdbusauthmechanismsha1.c:482
+#, c-format
+msgid "Didn’t find cookie with id %d in the keyring at “%s”"
+msgstr ""
+
+#: gio/gdbusauthmechanismsha1.c:539
+#, fuzzy, c-format
+msgid "Error creating lock file “%s”: %s"
+msgstr "Un error evenit creante li directoria '%s': %s"
+
+#: gio/gdbusauthmechanismsha1.c:612
+#, fuzzy, c-format
+msgid "Error deleting stale lock file “%s”: %s"
+msgstr "Error evenit creante li directoria '%s': %s"
+
+#: gio/gdbusauthmechanismsha1.c:651
+#, fuzzy, c-format
+msgid "Error closing (unlinked) lock file “%s”: %s"
+msgstr ""
+"Un errore printante li file:\n"
+"%s"
+
+#: gio/gdbusauthmechanismsha1.c:662
+#, fuzzy, c-format
+msgid "Error unlinking lock file “%s”: %s"
+msgstr "Li file PO contene un errore: %s"
+
+#: gio/gdbusauthmechanismsha1.c:738
+#, fuzzy, c-format
+msgid "Error opening keyring “%s” for writing: "
+msgstr "Un errore evenit scriente li file PO: %s"
+
+#: gio/gdbusauthmechanismsha1.c:932
+#, c-format
+msgid "(Additionally, releasing the lock for “%s” also failed: %s) "
+msgstr ""
+
+#: gio/gdbusconnection.c:590 gio/gdbusconnection.c:2404
+#, fuzzy
+msgid "The connection is closed"
+msgstr "Conexion a un servitor ha cludet ínexpectatmen"
+
+#: gio/gdbusconnection.c:1889
+#, fuzzy
+msgid "Timeout was reached"
+msgstr "Timeout"
+
+#: gio/gdbusconnection.c:2527
+msgid ""
+"Unsupported flags encountered when constructing a client-side connection"
+msgstr ""
+
+#: gio/gdbusconnection.c:4256 gio/gdbusconnection.c:4610
+#, fuzzy, c-format
+msgid ""
+"No such interface “org.freedesktop.DBus.Properties” on object at path %s"
+msgstr ""
+"RUTE DE SERCHA:\n"
+"%s\n"
+
+#: gio/gdbusconnection.c:4401
+#, fuzzy, c-format
+msgid "No such property “%s”"
+msgstr "Ínconosset proprietá %s"
+
+#: gio/gdbusconnection.c:4413
+#, fuzzy, c-format
+msgid "Property “%s” is not readable"
+msgstr "Proprietá %s::%s ne es trovat\n"
+
+#: gio/gdbusconnection.c:4424
+#, fuzzy, c-format
+msgid "Property “%s” is not writable"
+msgstr "%s: Gruppe hat Schreibzugriff auf %s."
+
+#: gio/gdbusconnection.c:4444
+#, c-format
+msgid "Error setting property “%s”: Expected type “%s” but got “%s”"
+msgstr ""
+
+#: gio/gdbusconnection.c:4549 gio/gdbusconnection.c:4764
+#: gio/gdbusconnection.c:6747
+#, fuzzy, c-format
+msgid "No such interface “%s”"
+msgstr "Ne successat cargar un file de GUI: %s"
+
+#: gio/gdbusconnection.c:4986 gio/gdbusconnection.c:7261
+#, fuzzy, c-format
+msgid "No such interface “%s” on object at path %s"
+msgstr "Object: %p (%s)"
+
+#: gio/gdbusconnection.c:5087
+#, fuzzy, c-format
+msgid "No such method “%s”"
+msgstr "Metode(s) de compression:"
+
+#: gio/gdbusconnection.c:5118
+#, c-format
+msgid "Type of message, “%s”, does not match expected type “%s”"
+msgstr ""
+
+#: gio/gdbusconnection.c:5321
+#, c-format
+msgid "An object is already exported for the interface %s at %s"
+msgstr ""
+
+#: gio/gdbusconnection.c:5548
+#, fuzzy, c-format
+msgid "Unable to retrieve property %s.%s"
+msgstr "Ínconosset proprietá %s"
+
+#: gio/gdbusconnection.c:5604
+#, fuzzy, c-format
+msgid "Unable to set property %s.%s"
+msgstr "Proprietá %s::%s ne es trovat\n"
+
+#: gio/gdbusconnection.c:5783
+#, c-format
+msgid "Method “%s” returned type “%s”, but expected “%s”"
+msgstr ""
+
+#: gio/gdbusconnection.c:6859
+#, c-format
+msgid "Method “%s” on interface “%s” with signature “%s” does not exist"
+msgstr ""
+
+#: gio/gdbusconnection.c:6980
+#, fuzzy, c-format
+msgid "A subtree is already exported for %s"
+msgstr "Li contenete ha esset exportat in %s"
+
+#: gio/gdbusconnection.c:7269
+#, fuzzy, c-format
+msgid "Object does not exist at path “%s”"
+msgstr "%s ne existe."
+
+#: gio/gdbusmessage.c:1303
+#, fuzzy
+msgid "type is INVALID"
+msgstr "Ínvalid MIME-tip."
+
+#: gio/gdbusmessage.c:1314
+msgid "METHOD_CALL message: PATH or MEMBER header field is missing"
+msgstr ""
+
+#: gio/gdbusmessage.c:1325
+msgid "METHOD_RETURN message: REPLY_SERIAL header field is missing"
+msgstr ""
+
+#: gio/gdbusmessage.c:1337
+msgid "ERROR message: REPLY_SERIAL or ERROR_NAME header field is missing"
+msgstr ""
+
+#: gio/gdbusmessage.c:1350
+msgid "SIGNAL message: PATH, INTERFACE or MEMBER header field is missing"
+msgstr ""
+
+#: gio/gdbusmessage.c:1358
+msgid ""
+"SIGNAL message: The PATH header field is using the reserved value /org/"
+"freedesktop/DBus/Local"
+msgstr ""
+
+#: gio/gdbusmessage.c:1366
+msgid ""
+"SIGNAL message: The INTERFACE header field is using the reserved value org."
+"freedesktop.DBus.Local"
+msgstr ""
+
+#: gio/gdbusmessage.c:1414 gio/gdbusmessage.c:1474
+#, c-format
+msgid "Wanted to read %lu byte but only got %lu"
+msgid_plural "Wanted to read %lu bytes but only got %lu"
+msgstr[0] ""
+msgstr[1] ""
+
+#: gio/gdbusmessage.c:1428
+#, c-format
+msgid "Expected NUL byte after the string “%s” but found byte %d"
+msgstr ""
+
+#: gio/gdbusmessage.c:1447
+#, c-format
+msgid ""
+"Expected valid UTF-8 string but found invalid bytes at byte offset %d "
+"(length of string is %d). The valid UTF-8 string up until that point was “%s”"
+msgstr ""
+
+#: gio/gdbusmessage.c:1511 gio/gdbusmessage.c:1787 gio/gdbusmessage.c:1998
+msgid "Value nested too deeply"
+msgstr ""
+
+#: gio/gdbusmessage.c:1679
+#, c-format
+msgid "Parsed value “%s” is not a valid D-Bus object path"
+msgstr ""
+
+#: gio/gdbusmessage.c:1703
+#, fuzzy, c-format
+msgid "Parsed value “%s” is not a valid D-Bus signature"
+msgstr "Li nómine “%s” es ínvalid. Ples usar un altri nómine."
+
+#: gio/gdbusmessage.c:1754
+#, c-format
+msgid ""
+"Encountered array of length %u byte. Maximum length is 2<<26 bytes (64 MiB)."
+msgid_plural ""
+"Encountered array of length %u bytes. Maximum length is 2<<26 bytes (64 MiB)."
+msgstr[0] ""
+msgstr[1] ""
+
+#: gio/gdbusmessage.c:1774
+#, c-format
+msgid ""
+"Encountered array of type “a%c”, expected to have a length a multiple of %u "
+"bytes, but found to be %u bytes in length"
+msgstr ""
+
+#: gio/gdbusmessage.c:1928 gio/gdbusmessage.c:2647
+msgid "Empty structures (tuples) are not allowed in D-Bus"
+msgstr ""
+
+#: gio/gdbusmessage.c:1982
+#, c-format
+msgid "Parsed value “%s” for variant is not a valid D-Bus signature"
+msgstr ""
+
+#: gio/gdbusmessage.c:2023
+#, c-format
+msgid ""
+"Error deserializing GVariant with type string “%s” from the D-Bus wire format"
+msgstr ""
+
+#: gio/gdbusmessage.c:2208
+#, c-format
+msgid ""
+"Invalid endianness value. Expected 0x6c (“l”) or 0x42 (“B”) but found value "
+"0x%02x"
+msgstr ""
+
+#: gio/gdbusmessage.c:2227
+#, c-format
+msgid "Invalid major protocol version. Expected 1 but found %d"
+msgstr ""
+
+#: gio/gdbusmessage.c:2285 gio/gdbusmessage.c:2883
+msgid "Signature header found but is not of type signature"
+msgstr ""
+
+#: gio/gdbusmessage.c:2297
+#, c-format
+msgid "Signature header with signature “%s” found but message body is empty"
+msgstr ""
+
+#: gio/gdbusmessage.c:2312
+#, c-format
+msgid "Parsed value “%s” is not a valid D-Bus signature (for body)"
+msgstr ""
+
+#: gio/gdbusmessage.c:2344
+#, c-format
+msgid "No signature header in message but the message body is %u byte"
+msgid_plural "No signature header in message but the message body is %u bytes"
+msgstr[0] ""
+msgstr[1] ""
+
+#: gio/gdbusmessage.c:2354
+#, fuzzy
+msgid "Cannot deserialize message: "
+msgstr "Ne posse continuar"
+
+#: gio/gdbusmessage.c:2700
+#, c-format
+msgid ""
+"Error serializing GVariant with type string “%s” to the D-Bus wire format"
+msgstr ""
+
+#: gio/gdbusmessage.c:2837
+#, c-format
+msgid ""
+"Number of file descriptors in message (%d) differs from header field (%d)"
+msgstr ""
+
+#: gio/gdbusmessage.c:2845
+#, fuzzy
+msgid "Cannot serialize message: "
+msgstr "Ne posse continuar"
+
+#: gio/gdbusmessage.c:2898
+#, c-format
+msgid "Message body has signature “%s” but there is no signature header"
+msgstr ""
+
+#: gio/gdbusmessage.c:2908
+#, c-format
+msgid ""
+"Message body has type signature “%s” but signature in the header field is "
+"“%s”"
+msgstr ""
+
+#: gio/gdbusmessage.c:2924
+#, c-format
+msgid "Message body is empty but signature in the header field is “(%s)”"
+msgstr ""
+
+#: gio/gdbusmessage.c:3479
+#, c-format
+msgid "Error return with body of type “%s”"
+msgstr ""
+
+#: gio/gdbusmessage.c:3487
+msgid "Error return with empty body"
+msgstr ""
+
+#: gio/gdbusprivate.c:2187
+#, c-format
+msgid "(Type any character to close this window)\n"
+msgstr ""
+
+#: gio/gdbusprivate.c:2373
+#, c-format
+msgid "Session dbus not running, and autolaunch failed"
+msgstr ""
+
+#: gio/gdbusprivate.c:2396
+#, c-format
+msgid "Unable to get Hardware profile: %s"
+msgstr ""
+
+#. Translators: Both placeholders are file paths
+#: gio/gdbusprivate.c:2447
+#, fuzzy, c-format
+msgid "Unable to load %s or %s: "
+msgstr ""
+"Ne successat cargar %(filename)s:\n"
+"\n"
+"%(errormsg)s"
+
+#: gio/gdbusproxy.c:1575
+#, fuzzy, c-format
+msgid "Error calling StartServiceByName for %s: "
+msgstr "errore - iconv: %s -> %s\n"
+
+#: gio/gdbusproxy.c:1598
+#, c-format
+msgid "Unexpected reply %d from StartServiceByName(\"%s\") method"
+msgstr ""
+
+#: gio/gdbusproxy.c:2709 gio/gdbusproxy.c:2844
+#, c-format
+msgid ""
+"Cannot invoke method; proxy is for the well-known name %s without an owner, "
+"and proxy was constructed with the G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START flag"
+msgstr ""
+
+#: gio/gdbusserver.c:765
+#, fuzzy
+msgid "Abstract namespace not supported"
+msgstr "Nómin-spacie:"
+
+#: gio/gdbusserver.c:857
+msgid "Cannot specify nonce file when creating a server"
+msgstr ""
+
+#: gio/gdbusserver.c:939
+#, fuzzy, c-format
+msgid "Error writing nonce file at “%s”: %s"
+msgstr "Un errore evenit scriente li file PO: %s"
+
+#: gio/gdbusserver.c:1114
+#, c-format
+msgid "The string “%s” is not a valid D-Bus GUID"
+msgstr ""
+
+#: gio/gdbusserver.c:1152
+#, c-format
+msgid "Cannot listen on unsupported transport “%s”"
+msgstr ""
+
+#: gio/gdbus-tool.c:113
+#, c-format
+msgid ""
+"Commands:\n"
+" help Shows this information\n"
+" introspect Introspect a remote object\n"
+" monitor Monitor a remote object\n"
+" call Invoke a method on a remote object\n"
+" emit Emit a signal\n"
+" wait Wait for a bus name to appear\n"
+"\n"
+"Use “%s COMMAND --help” to get help on each command.\n"
+msgstr ""
+
+#: gio/gdbus-tool.c:204 gio/gdbus-tool.c:276 gio/gdbus-tool.c:348
+#: gio/gdbus-tool.c:372 gio/gdbus-tool.c:862 gio/gdbus-tool.c:1247
+#: gio/gdbus-tool.c:1734
+#, fuzzy, c-format
+msgid "Error: %s\n"
+msgstr "Errore: %s"
+
+#: gio/gdbus-tool.c:215 gio/gdbus-tool.c:289 gio/gdbus-tool.c:1750
+#, fuzzy, c-format
+msgid "Error parsing introspection XML: %s\n"
+msgstr "Errore de analise de XML"
+
+#: gio/gdbus-tool.c:253
+#, fuzzy, c-format
+msgid "Error: %s is not a valid name\n"
+msgstr "Valid nómine"
+
+#: gio/gdbus-tool.c:258 gio/gdbus-tool.c:748 gio/gdbus-tool.c:1066
+#: gio/gdbus-tool.c:1900 gio/gdbus-tool.c:2140
+#, c-format
+msgid "Error: %s is not a valid object path\n"
+msgstr ""
+
+#: gio/gdbus-tool.c:406
+#, fuzzy
+msgid "Connect to the system bus"
+msgstr "Interfacie D-Bus de MPRIS"
+
+#: gio/gdbus-tool.c:407
+#, fuzzy
+msgid "Connect to the session bus"
+msgstr "Interfacie D-Bus de MPRIS"
+
+#: gio/gdbus-tool.c:408
+#, fuzzy
+msgid "Connect to given D-Bus address"
+msgstr "Ne successat conexer al bus de session D-Bus."
+
+#: gio/gdbus-tool.c:418
+#, fuzzy
+msgid "Connection Endpoint Options:"
+msgstr "_Optiones..."
+
+#: gio/gdbus-tool.c:419
+msgid "Options specifying the connection endpoint"
+msgstr ""
+
+#: gio/gdbus-tool.c:442
+#, fuzzy, c-format
+msgid "No connection endpoint specified"
+msgstr "Conexion"
+
+#: gio/gdbus-tool.c:452
+#, c-format
+msgid "Multiple connection endpoints specified"
+msgstr ""
+
+#: gio/gdbus-tool.c:525
+#, c-format
+msgid ""
+"Warning: According to introspection data, interface “%s” does not exist\n"
+msgstr ""
+
+#: gio/gdbus-tool.c:534
+#, c-format
+msgid ""
+"Warning: According to introspection data, method “%s” does not exist on "
+"interface “%s”\n"
+msgstr ""
+
+#: gio/gdbus-tool.c:596
+msgid "Optional destination for signal (unique name)"
+msgstr ""
+
+#: gio/gdbus-tool.c:597
+#, fuzzy
+msgid "Object path to emit signal on"
+msgstr "Rute de object"
+
+#: gio/gdbus-tool.c:598
+#, fuzzy
+msgid "Signal and interface name"
+msgstr "Interfacie"
+
+#: gio/gdbus-tool.c:631
+#, fuzzy
+msgid "Emit a signal."
+msgstr "Null signale"
+
+#: gio/gdbus-tool.c:686 gio/gdbus-tool.c:1003 gio/gdbus-tool.c:1837
+#: gio/gdbus-tool.c:2069 gio/gdbus-tool.c:2289
+#, fuzzy, c-format
+msgid "Error connecting: %s\n"
+msgstr "Un errore evenit conexente al servitor."
+
+#: gio/gdbus-tool.c:706
+#, c-format
+msgid "Error: %s is not a valid unique bus name.\n"
+msgstr ""
+
+#: gio/gdbus-tool.c:725 gio/gdbus-tool.c:1046 gio/gdbus-tool.c:1880
+#, fuzzy
+msgid "Error: Object path is not specified\n"
+msgstr "Rute de object"
+
+#: gio/gdbus-tool.c:768
+#, fuzzy
+msgid "Error: Signal name is not specified\n"
+msgstr "Null nómine providet."
+
+#: gio/gdbus-tool.c:782
+#, fuzzy, c-format
+msgid "Error: Signal name “%s” is invalid\n"
+msgstr "Ínvalid nómine de labor-spacie: «%s»"
+
+#: gio/gdbus-tool.c:794
+#, fuzzy, c-format
+msgid "Error: %s is not a valid interface name\n"
+msgstr "Li nómine «%s» es ínvalid. Ples usar un altri nómine."
+
+#: gio/gdbus-tool.c:800
+#, fuzzy, c-format
+msgid "Error: %s is not a valid member name\n"
+msgstr "Li nómine «%s» es ínvalid. Ples usar un altri nómine."
+
+#. Use the original non-"parse-me-harder" error
+#: gio/gdbus-tool.c:837 gio/gdbus-tool.c:1178
+#, fuzzy, c-format
+msgid "Error parsing parameter %d: %s\n"
+msgstr "File %s - Errore in linea %d caracter %d: "
+
+#: gio/gdbus-tool.c:869
+#, fuzzy, c-format
+msgid "Error flushing connection: %s\n"
+msgstr "OAuth2: errore de conexion\n"
+
+#: gio/gdbus-tool.c:897
+#, fuzzy
+msgid "Destination name to invoke method on"
+msgstr "Selecte un nov nómine por li _destination"
+
+#: gio/gdbus-tool.c:898
+#, fuzzy
+msgid "Object path to invoke method on"
+msgstr "Rute de object"
+
+#: gio/gdbus-tool.c:899
+#, fuzzy
+msgid "Method and interface name"
+msgstr "Metode:"
+
+#: gio/gdbus-tool.c:900
+#, fuzzy
+msgid "Timeout in seconds"
+msgstr "secondes"
+
+#: gio/gdbus-tool.c:901
+#, fuzzy
+msgid "Allow interactive authorization"
+msgstr "Autorisation"
+
+#: gio/gdbus-tool.c:948
+msgid "Invoke a method on a remote object."
+msgstr ""
+
+#: gio/gdbus-tool.c:1020 gio/gdbus-tool.c:1854 gio/gdbus-tool.c:2094
+#, fuzzy
+msgid "Error: Destination is not specified\n"
+msgstr "Un fólder de destination deve esser providet"
+
+#: gio/gdbus-tool.c:1031 gio/gdbus-tool.c:1871 gio/gdbus-tool.c:2105
+#, fuzzy, c-format
+msgid "Error: %s is not a valid bus name\n"
+msgstr "Obtenet li nómine \"%s\" sur li bus de missages de session\n"
+
+#: gio/gdbus-tool.c:1081
+#, fuzzy
+msgid "Error: Method name is not specified\n"
+msgstr "Null nómine providet."
+
+#: gio/gdbus-tool.c:1092
+#, fuzzy, c-format
+msgid "Error: Method name “%s” is invalid\n"
+msgstr "Ínvalid nómine de labor-spacie: «%s»"
+
+#: gio/gdbus-tool.c:1170
+#, fuzzy, c-format
+msgid "Error parsing parameter %d of type “%s”: %s\n"
+msgstr "'net usershare' retornat un errore %d: %s"
+
+#: gio/gdbus-tool.c:1196
+#, fuzzy, c-format
+msgid "Error adding handle %d: %s\n"
+msgstr "Quelc errores evenit adjuntente files"
+
+#: gio/gdbus-tool.c:1696
+#, fuzzy
+msgid "Destination name to introspect"
+msgstr "Selecte un nov nómine por li _destination"
+
+#: gio/gdbus-tool.c:1697
+#, fuzzy
+msgid "Object path to introspect"
+msgstr "Rute de object"
+
+#: gio/gdbus-tool.c:1698
+#, fuzzy
+msgid "Print XML"
+msgstr "&XML"
+
+#: gio/gdbus-tool.c:1699
+#, fuzzy
+msgid "Introspect children"
+msgstr "Infantes"
+
+#: gio/gdbus-tool.c:1700
+#, fuzzy
+msgid "Only print properties"
+msgstr "Printar s_olmen:"
+
+#: gio/gdbus-tool.c:1789
+#, fuzzy
+msgid "Introspect a remote object."
+msgstr "lontan"
+
+#: gio/gdbus-tool.c:1995
+#, fuzzy
+msgid "Destination name to monitor"
+msgstr "Selecte un nov nómine por li _destination"
+
+#: gio/gdbus-tool.c:1996
+#, fuzzy
+msgid "Object path to monitor"
+msgstr "Rute de object"
+
+#: gio/gdbus-tool.c:2021
+#, fuzzy
+msgid "Monitor a remote object."
+msgstr "Monitor"
+
+#: gio/gdbus-tool.c:2079
+msgid "Error: can’t monitor a non-message-bus connection\n"
+msgstr ""
+
+#: gio/gdbus-tool.c:2203
+msgid "Service to activate before waiting for the other one (well-known name)"
+msgstr ""
+
+#: gio/gdbus-tool.c:2206
+msgid ""
+"Timeout to wait for before exiting with an error (seconds); 0 for no timeout "
+"(default)"
+msgstr ""
+
+#: gio/gdbus-tool.c:2254
+#, fuzzy
+msgid "[OPTION…] BUS-NAME"
+msgstr "D-Bus"
+
+#: gio/gdbus-tool.c:2255
+#, fuzzy
+msgid "Wait for a bus name to appear."
+msgstr "Obtenet li nómine \"%s\" sur li bus de missages de session\n"
+
+#: gio/gdbus-tool.c:2331
+#, fuzzy
+msgid "Error: A service to activate for must be specified.\n"
+msgstr "Intensitá de signale"
+
+#: gio/gdbus-tool.c:2336
+#, fuzzy
+msgid "Error: A service to wait for must be specified.\n"
+msgstr "Intensitá de signale"
+
+#: gio/gdbus-tool.c:2341
+#, fuzzy
+msgid "Error: Too many arguments.\n"
+msgstr "Tro mult argumentes."
+
+#: gio/gdbus-tool.c:2349 gio/gdbus-tool.c:2356
+#, fuzzy, c-format
+msgid "Error: %s is not a valid well-known bus name.\n"
+msgstr "Li nómine “%s” es ínvalid. Ples usar un altri nómine."
+
+#: gio/gdebugcontrollerdbus.c:360
+#, fuzzy, c-format
+msgid "Not authorized to change debug settings"
+msgstr "Cambiar vor parametres de lingue e region"
+
+#: gio/gdesktopappinfo.c:2182 gio/gdesktopappinfo.c:5120
+msgid "Unnamed"
+msgstr "Sin nómine"
+
+#: gio/gdesktopappinfo.c:2592
+msgid "Desktop file didn’t specify Exec field"
+msgstr ""
+
+#: gio/gdesktopappinfo.c:2891
+#, fuzzy
+msgid "Unable to find terminal required for application"
+msgstr ""
+"Ne successat trovar un apt application por aperter li punctu de montage"
+
+#: gio/gdesktopappinfo.c:3638
+#, c-format
+msgid "Can’t create user application configuration folder %s: %s"
+msgstr ""
+
+#: gio/gdesktopappinfo.c:3642
+#, c-format
+msgid "Can’t create user MIME configuration folder %s: %s"
+msgstr ""
+
+#: gio/gdesktopappinfo.c:3884 gio/gdesktopappinfo.c:3908
+#, fuzzy
+msgid "Application information lacks an identifier"
+msgstr "Information pri li application"
+
+#: gio/gdesktopappinfo.c:4144
+#, fuzzy, c-format
+msgid "Can’t create user desktop file %s"
+msgstr "Ne posset crear un file temporari por salvar: %s"
+
+#: gio/gdesktopappinfo.c:4280
+#, fuzzy, c-format
+msgid "Custom definition for %s"
+msgstr ""
+"Definition por '%s'\n"
+" Ex '%s':\n"
+"\n"
+"%s\n"
+"\n"
+
+#: gio/gdrive.c:419
+#, fuzzy
+msgid "drive doesn’t implement eject"
+msgstr "Ejecter li selectet volume"
+
+#. Translators: This is an error
+#. * message for drive objects that
+#. * don't implement any of eject or eject_with_operation.
+#: gio/gdrive.c:497
+#, fuzzy
+msgid "drive doesn’t implement eject or eject_with_operation"
+msgstr "_Stoppar li unité multidisco"
+
+#: gio/gdrive.c:573
+#, fuzzy
+msgid "drive doesn’t implement polling for media"
+msgstr "_Stoppar li unité multidisco"
+
+#: gio/gdrive.c:780
+#, fuzzy
+msgid "drive doesn’t implement start"
+msgstr "Startar li selectet unité"
+
+#: gio/gdrive.c:882
+#, fuzzy
+msgid "drive doesn’t implement stop"
+msgstr "_Stoppar li unité multidisco"
+
+#: gio/gdtlsconnection.c:1188 gio/gtlsconnection.c:957
+msgid "TLS backend does not implement TLS binding retrieval"
+msgstr ""
+
+#: gio/gdummytlsbackend.c:197 gio/gdummytlsbackend.c:323
+#: gio/gdummytlsbackend.c:515
+#, fuzzy
+msgid "TLS support is not available"
+msgstr "Ne compilat con li supporte de SSL/TLS"
+
+#: gio/gdummytlsbackend.c:425
+#, fuzzy
+msgid "DTLS support is not available"
+msgstr "Supporte"
+
+#: gio/gemblem.c:325
+#, c-format
+msgid "Can’t handle version %d of GEmblem encoding"
+msgstr ""
+
+#: gio/gemblem.c:335
+#, c-format
+msgid "Malformed number of tokens (%d) in GEmblem encoding"
+msgstr ""
+
+#: gio/gemblemedicon.c:364
+#, c-format
+msgid "Can’t handle version %d of GEmblemedIcon encoding"
+msgstr ""
+
+#: gio/gemblemedicon.c:374
+#, c-format
+msgid "Malformed number of tokens (%d) in GEmblemedIcon encoding"
+msgstr ""
+
+#: gio/gemblemedicon.c:397
+#, fuzzy
+msgid "Expected a GEmblem for GEmblemedIcon"
+msgstr "Expectat "
+
+#. Translators: This is an error message when
+#. * trying to find the enclosing (user visible)
+#. * mount of a file, but none exists.
+#.
+#: gio/gfile.c:1594
+#, fuzzy
+msgid "Containing mount does not exist"
+msgstr "Li localisation «%s» ne existe."
+
+#: gio/gfile.c:2641 gio/glocalfile.c:2500
+msgid "Can’t copy over directory"
+msgstr ""
+
+#: gio/gfile.c:2701
+msgid "Can’t copy directory over directory"
+msgstr ""
+
+#: gio/gfile.c:2709
+#, fuzzy
+msgid "Target file exists"
+msgstr "Si li file existe:"
+
+#: gio/gfile.c:2728
+msgid "Can’t recursively copy directory"
+msgstr ""
+
+#: gio/gfile.c:3029
+#, fuzzy
+msgid "Splice not supported"
+msgstr "Ínsuportat"
+
+#: gio/gfile.c:3033
+#, fuzzy, c-format
+msgid "Error splicing file: %s"
+msgstr ""
+"Un errore printante li file:\n"
+"%s"
+
+#: gio/gfile.c:3185
+msgid "Copy (reflink/clone) between mounts is not supported"
+msgstr ""
+
+#: gio/gfile.c:3189
+msgid "Copy (reflink/clone) is not supported or invalid"
+msgstr ""
+
+#: gio/gfile.c:3194
+msgid "Copy (reflink/clone) is not supported or didn’t work"
+msgstr ""
+
+#: gio/gfile.c:3259
+msgid "Can’t copy special file"
+msgstr ""
+
+#: gio/gfile.c:4153
+#, fuzzy
+msgid "Invalid symlink value given"
+msgstr "Ínvalid valore(s)."
+
+#: gio/gfile.c:4163 glib/gfileutils.c:2354
+#, fuzzy
+msgid "Symbolic links not supported"
+msgstr "Simbolic ligamentes es supportat solmen por files local"
+
+#: gio/gfile.c:4450
+#, fuzzy
+msgid "Trash not supported"
+msgstr "In li Paper-corb"
+
+#: gio/gfile.c:4562
+#, fuzzy, c-format
+msgid "File names cannot contain “%c”"
+msgstr "Nómines de files ne posse contener “/”."
+
+#: gio/gfile.c:6993 gio/gfile.c:7119
+#, fuzzy, c-format
+msgid "Failed to create a temporary directory for template “%s”: %s"
+msgstr "Ne successat crear un directoria temporari: %s"
+
+#: gio/gfile.c:7408 gio/gvolume.c:366
+#, fuzzy
+msgid "volume doesn’t implement mount"
+msgstr "_Monter li volume"
+
+#: gio/gfile.c:7522 gio/gfile.c:7599
+#, fuzzy
+msgid "No application is registered as handling this file"
+msgstr "Sin registrat tip de file"
+
+#: gio/gfileenumerator.c:214
+#, fuzzy
+msgid "Enumerator is closed"
+msgstr "Numerator"
+
+#: gio/gfileenumerator.c:221 gio/gfileenumerator.c:280
+#: gio/gfileenumerator.c:379 gio/gfileenumerator.c:478
+msgid "File enumerator has outstanding operation"
+msgstr ""
+
+#: gio/gfileenumerator.c:370 gio/gfileenumerator.c:469
+#, fuzzy
+msgid "File enumerator is already closed"
+msgstr "Li file con ti-ci nómine ja existe"
+
+#: gio/gfileicon.c:252
+#, c-format
+msgid "Can’t handle version %d of GFileIcon encoding"
+msgstr ""
+
+#: gio/gfileicon.c:262
+#, fuzzy
+msgid "Malformed input data for GFileIcon"
+msgstr "Li data serialisat es corruptet"
+
+#: gio/gfileinputstream.c:151 gio/gfileinputstream.c:396
+#: gio/gfileiostream.c:169 gio/gfileoutputstream.c:166
+#: gio/gfileoutputstream.c:499
+msgid "Stream doesn’t support query_info"
+msgstr ""
+
+#: gio/gfileinputstream.c:327 gio/gfileiostream.c:381
+#: gio/gfileoutputstream.c:373
+#, fuzzy
+msgid "Seek not supported on stream"
+msgstr "Fluvie..."
+
+#: gio/gfileinputstream.c:371
+msgid "Truncate not allowed on input stream"
+msgstr ""
+
+#: gio/gfileiostream.c:457 gio/gfileoutputstream.c:449
+#, fuzzy
+msgid "Truncate not supported on stream"
+msgstr "%@ fluvie a %@:%@"
+
+#: gio/ghttpproxy.c:93 gio/gresolver.c:460 gio/gresolver.c:613
+#: glib/gconvert.c:1829
+#, fuzzy
+msgid "Invalid hostname"
+msgstr "Nómine de host:"
+
+#: gio/ghttpproxy.c:145
+#, fuzzy
+msgid "Bad HTTP proxy reply"
+msgstr "Detallies de proxy HTTP"
+
+#: gio/ghttpproxy.c:161
+#, fuzzy
+msgid "HTTP proxy connection not allowed"
+msgstr "Detallies de proxy HTTP"
+
+#: gio/ghttpproxy.c:166
+#, fuzzy
+msgid "HTTP proxy authentication failed"
+msgstr "Autentication del proxy ne successat."
+
+#: gio/ghttpproxy.c:169
+#, fuzzy
+msgid "HTTP proxy authentication required"
+msgstr "Autentication HTTP"
+
+#: gio/ghttpproxy.c:173
+#, c-format
+msgid "HTTP proxy connection failed: %i"
+msgstr ""
+
+#: gio/ghttpproxy.c:268
+#, fuzzy
+msgid "HTTP proxy response too big"
+msgstr "Detallies de proxy HTTP"
+
+#: gio/ghttpproxy.c:285
+#, fuzzy
+msgid "HTTP proxy server closed connection unexpectedly."
+msgstr "Conexion a un servitor ha cludet ínexpectatmen"
+
+#: gio/gicon.c:300
+#, fuzzy, c-format
+msgid "Wrong number of tokens (%d)"
+msgstr "Ctrl+%(number_key)d"
+
+#: gio/gicon.c:320
+#, fuzzy, c-format
+msgid "No type for class name %s"
+msgstr "%s: Anzeigeklasse konnte nicht gelesen werden"
+
+#: gio/gicon.c:330
+#, c-format
+msgid "Type %s does not implement the GIcon interface"
+msgstr ""
+
+#: gio/gicon.c:341
+#, fuzzy, c-format
+msgid "Type %s is not classed"
+msgstr "Tip: %s (%s)"
+
+#: gio/gicon.c:355
+#, fuzzy, c-format
+msgid "Malformed version number: %s"
+msgstr " -v, --version\tmonstra li numeró del version\n"
+
+#: gio/gicon.c:369
+#, c-format
+msgid "Type %s does not implement from_tokens() on the GIcon interface"
+msgstr ""
+
+#: gio/gicon.c:471
+msgid "Can’t handle the supplied version of the icon encoding"
+msgstr ""
+
+#: gio/ginetaddressmask.c:184
+#, fuzzy
+msgid "No address specified"
+msgstr "Ínspecificat"
+
+#: gio/ginetaddressmask.c:192
+#, c-format
+msgid "Length %u is too long for address"
+msgstr ""
+
+#: gio/ginetaddressmask.c:225
+msgid "Address has bits set beyond prefix length"
+msgstr ""
+
+#: gio/ginetaddressmask.c:302
+#, c-format
+msgid "Could not parse “%s” as IP address mask"
+msgstr ""
+
+#: gio/ginetsocketaddress.c:205 gio/ginetsocketaddress.c:222
+#: gio/gnativesocketaddress.c:111 gio/gunixsocketaddress.c:230
+#, fuzzy
+msgid "Not enough space for socket address"
+msgstr "Li spacie de disco es ínsufficent por scrir %1."
+
+#: gio/ginetsocketaddress.c:237
+#, fuzzy
+msgid "Unsupported socket address"
+msgstr "ínsuportat"
+
+#: gio/ginputstream.c:190
+#, fuzzy
+msgid "Input stream doesn’t implement read"
+msgstr "Startar li selectet unité"
+
+#. Translators: This is an error you get if there is already an
+#. * operation running against this stream when you try to start
+#. * one
+#. Translators: This is an error you get if there is
+#. * already an operation running against this stream when
+#. * you try to start one
+#: gio/ginputstream.c:1251 gio/giostream.c:312 gio/goutputstream.c:2210
+msgid "Stream has outstanding operation"
+msgstr ""
+
+#: gio/gio-tool.c:162
+#, fuzzy
+msgid "Copy with file"
+msgstr "It es ínpossibil copiar un file a se self."
+
+#: gio/gio-tool.c:166
+#, fuzzy
+msgid "Keep with file when moved"
+msgstr "Li file «%B» ne posse esser movet in li Paper-corb."
+
+#: gio/gio-tool.c:207
+#, fuzzy
+msgid "“version” takes no arguments"
+msgstr "[ARGUMENTES...]"
+
+#: gio/gio-tool.c:209 gio/gio-tool.c:225 glib/goption.c:871
+msgid "Usage:"
+msgstr "Usage:"
+
+#: gio/gio-tool.c:212
+#, fuzzy
+msgid "Print version information and exit."
+msgstr "Monstra li information del version, poy salir"
+
+#: gio/gio-tool.c:228
+msgid "Commands:"
+msgstr "Comandes:"
+
+#: gio/gio-tool.c:231
+msgid "Concatenate files to standard output"
+msgstr ""
+
+#: gio/gio-tool.c:232
+#, fuzzy
+msgid "Copy one or more files"
+msgstr "Selecte un o multiplic files:"
+
+#: gio/gio-tool.c:233
+#, fuzzy
+msgid "Show information about locations"
+msgstr "Monstrar information pri li archive"
+
+#: gio/gio-tool.c:234
+#, fuzzy
+msgid "Launch an application from a desktop file"
+msgstr "Tip de file desktop a crear (Application o Link)"
+
+#: gio/gio-tool.c:235
+#, fuzzy
+msgid "List the contents of locations"
+msgstr "Listar li _contenete"
+
+#: gio/gio-tool.c:236
+msgid "Get or set the handler for a mimetype"
+msgstr ""
+
+#: gio/gio-tool.c:237
+#, fuzzy
+msgid "Create directories"
+msgstr "Directorias:"
+
+#: gio/gio-tool.c:238
+#, fuzzy
+msgid "Monitor files and directories for changes"
+msgstr "Files e fólderes"
+
+#: gio/gio-tool.c:239
+#, fuzzy
+msgid "Mount or unmount the locations"
+msgstr "(De)monter"
+
+#: gio/gio-tool.c:240
+#, fuzzy
+msgid "Move one or more files"
+msgstr "Selecte un o multiplic files:"
+
+#: gio/gio-tool.c:241
+#, fuzzy
+msgid "Open files with the default application"
+msgstr "Aperter li selectet files per un application"
+
+#: gio/gio-tool.c:242
+#, fuzzy
+msgid "Rename a file"
+msgstr "Mover o renominar un file, fólder o sim. ligament"
+
+#: gio/gio-tool.c:243
+#, fuzzy
+msgid "Delete one or more files"
+msgstr "Selecte un o multiplic files:"
+
+#: gio/gio-tool.c:244
+msgid "Read from standard input and save"
+msgstr ""
+
+#: gio/gio-tool.c:245
+#, fuzzy
+msgid "Set a file attribute"
+msgstr "Un atribute de file"
+
+#: gio/gio-tool.c:246
+#, fuzzy
+msgid "Move files or directories to the trash"
+msgstr "Mover li selectet files in li Paper-corb"
+
+#: gio/gio-tool.c:247
+msgid "Lists the contents of locations in a tree"
+msgstr ""
+
+#: gio/gio-tool.c:249
+#, c-format
+msgid "Use %s to get detailed help.\n"
+msgstr ""
+
+#: gio/gio-tool-cat.c:89
+#, fuzzy
+msgid "Error writing to stdout"
+msgstr "Un errore evenit scriente li file PO: %s"
+
+#. Translators: commandline placeholder
+#: gio/gio-tool-cat.c:135 gio/gio-tool-info.c:379 gio/gio-tool-list.c:173
+#: gio/gio-tool-mkdir.c:50 gio/gio-tool-monitor.c:39 gio/gio-tool-monitor.c:41
+#: gio/gio-tool-monitor.c:43 gio/gio-tool-monitor.c:45
+#: gio/gio-tool-monitor.c:206 gio/gio-tool-mount.c:1210 gio/gio-tool-open.c:72
+#: gio/gio-tool-remove.c:50 gio/gio-tool-rename.c:47 gio/gio-tool-set.c:95
+#: gio/gio-tool-trash.c:222 gio/gio-tool-tree.c:241
+msgid "LOCATION"
+msgstr "LOCALISATION"
+
+#: gio/gio-tool-cat.c:140
+msgid "Concatenate files and print to standard output."
+msgstr ""
+
+#: gio/gio-tool-cat.c:142
+msgid ""
+"gio cat works just like the traditional cat utility, but using GIO\n"
+"locations instead of local files: for example, you can use something\n"
+"like smb://server/resource/file.txt as location."
+msgstr ""
+
+#: gio/gio-tool-cat.c:164 gio/gio-tool-info.c:410 gio/gio-tool-mkdir.c:78
+#: gio/gio-tool-monitor.c:231 gio/gio-tool-mount.c:1261 gio/gio-tool-open.c:98
+#: gio/gio-tool-remove.c:74 gio/gio-tool-trash.c:303
+#, fuzzy
+msgid "No locations given"
+msgstr "Li localisationes providet contene null images."
+
+#: gio/gio-tool-copy.c:45 gio/gio-tool-move.c:40
+#, fuzzy
+msgid "No target directory"
+msgstr "Li fólder de destination «%s» ne existe"
+
+#: gio/gio-tool-copy.c:46 gio/gio-tool-move.c:41
+#, fuzzy
+msgid "Show progress"
+msgstr "Monstrar position, témpore e duration in li OSD"
+
+#: gio/gio-tool-copy.c:47 gio/gio-tool-move.c:42
+#, fuzzy
+msgid "Prompt before overwrite"
+msgstr "_Superscrir"
+
+#: gio/gio-tool-copy.c:48
+#, fuzzy
+msgid "Preserve all attributes"
+msgstr "Preservar sim. ligamentes"
+
+#: gio/gio-tool-copy.c:49 gio/gio-tool-move.c:43 gio/gio-tool-save.c:51
+#, fuzzy
+msgid "Backup existing destination files"
+msgstr "Copiation del extraete files in li destination"
+
+#: gio/gio-tool-copy.c:50
+#, fuzzy
+msgid "Never follow symbolic links"
+msgstr "_Sequer ligamentes simbolic"
+
+#: gio/gio-tool-copy.c:51
+#, fuzzy
+msgid "Use default permissions for the destination"
+msgstr "Predefinit"
+
+#: gio/gio-tool-copy.c:76 gio/gio-tool-move.c:69
+#, fuzzy, c-format
+msgid "Transferred %s out of %s (%s/s)"
+msgstr "%s: %s: %s %lld octetes transfertet"
+
+#. Translators: commandline placeholder
+#: gio/gio-tool-copy.c:102 gio/gio-tool-move.c:96
+#, fuzzy
+msgid "SOURCE"
+msgstr "Orígine"
+
+#. Translators: commandline placeholder
+#: gio/gio-tool-copy.c:102 gio/gio-tool-move.c:96 gio/gio-tool-save.c:162
+#, fuzzy
+msgid "DESTINATION"
+msgstr "Destination"
+
+#: gio/gio-tool-copy.c:107
+msgid "Copy one or more files from SOURCE to DESTINATION."
+msgstr ""
+
+#: gio/gio-tool-copy.c:109
+msgid ""
+"gio copy is similar to the traditional cp utility, but using GIO\n"
+"locations instead of local files: for example, you can use something\n"
+"like smb://server/resource/file.txt as location."
+msgstr ""
+
+#: gio/gio-tool-copy.c:151
+#, fuzzy, c-format
+msgid "Destination %s is not a directory"
+msgstr "Un fólder de destination deve esser providet"
+
+#: gio/gio-tool-copy.c:198 gio/gio-tool-move.c:188
+#, fuzzy, c-format
+msgid "%s: overwrite “%s”? "
+msgstr "Li file ja existe, esque superscrir %s?"
+
+#: gio/gio-tool-info.c:39
+#, fuzzy
+msgid "List writable attributes"
+msgstr "ATRIBUTES"
+
+#: gio/gio-tool-info.c:40
+#, fuzzy
+msgid "Get file system info"
+msgstr "Sistema de files"
+
+#: gio/gio-tool-info.c:41 gio/gio-tool-list.c:37
+#, fuzzy
+msgid "The attributes to get"
+msgstr "ATRIBUTES"
+
+#: gio/gio-tool-info.c:41 gio/gio-tool-list.c:37
+msgid "ATTRIBUTES"
+msgstr "ATRIBUTES"
+
+#: gio/gio-tool-info.c:42 gio/gio-tool-list.c:40 gio/gio-tool-set.c:37
+#, fuzzy
+msgid "Don’t follow symbolic links"
+msgstr "_Sequer ligaments simbolic"
+
+#: gio/gio-tool-info.c:105
+#, fuzzy
+msgid "attributes:\n"
+msgstr "ATRIBUTES"
+
+#: gio/gio-tool-info.c:165 gio/gio-tool-info.c:174
+#, fuzzy, c-format
+msgid "display name: %s\n"
+msgstr "Visibil nómine"
+
+#: gio/gio-tool-info.c:182
+#, c-format
+msgid "name: %s\n"
+msgstr "nómine: %s\n"
+
+#: gio/gio-tool-info.c:189
+#, c-format
+msgid "type: %s\n"
+msgstr "tip: %s\n"
+
+#: gio/gio-tool-info.c:195
+#, fuzzy
+msgid "size: "
+msgstr "_Dimension:"
+
+#: gio/gio-tool-info.c:200
+msgid "hidden\n"
+msgstr "celat\n"
+
+#: gio/gio-tool-info.c:203
+#, fuzzy, c-format
+msgid "uri: %s\n"
+msgstr "uri: %s\n"
+
+#: gio/gio-tool-info.c:210
+#, fuzzy, c-format
+msgid "local path: %s\n"
+msgstr "«%s» ne es un local rute"
+
+#: gio/gio-tool-info.c:244
+#, fuzzy, c-format
+msgid "unix mount: %s%s %s %s %s\n"
+msgstr "<b>Unité Unix: %s</b>"
+
+#: gio/gio-tool-info.c:325
+#, fuzzy
+msgid "Settable attributes:\n"
+msgstr "ATRIBUTES"
+
+#: gio/gio-tool-info.c:349
+#, fuzzy
+msgid "Writable attribute namespaces:\n"
+msgstr "Scribil?"
+
+#: gio/gio-tool-info.c:384
+#, fuzzy
+msgid "Show information about locations."
+msgstr "Monstrar information pri li archive"
+
+#: gio/gio-tool-info.c:386
+msgid ""
+"gio info is similar to the traditional ls utility, but using GIO\n"
+"locations instead of local files: for example, you can use something\n"
+"like smb://server/resource/file.txt as location. File attributes can\n"
+"be specified with their GIO name, e.g. standard::icon, or just by\n"
+"namespace, e.g. unix, or by “*”, which matches all attributes"
+msgstr ""
+
+#. Translators: commandline placeholder
+#: gio/gio-tool-launch.c:56
+#, fuzzy
+msgid "DESKTOP-FILE [FILE-ARG …]"
+msgstr "Li file ne esset un file .desktop valid"
+
+#: gio/gio-tool-launch.c:59
+msgid ""
+"Launch an application from a desktop file, passing optional filename "
+"arguments to it."
+msgstr ""
+
+#: gio/gio-tool-launch.c:79
+#, fuzzy
+msgid "No desktop file given"
+msgstr "Null descrition"
+
+#: gio/gio-tool-launch.c:87
+#, fuzzy
+msgid "The launch command is not currently supported on this platform"
+msgstr "Li sequent TIPes es suportat por li comande --launch:"
+
+#: gio/gio-tool-launch.c:100
+#, fuzzy, c-format
+msgid "Unable to load ‘%s‘: %s"
+msgstr ""
+"Ne successat cargar %(filename)s:\n"
+"\n"
+"%(errormsg)s"
+
+#: gio/gio-tool-launch.c:109
+#, fuzzy, c-format
+msgid "Unable to load application information for ‘%s‘"
+msgstr ""
+"Ne successat cargar %(filename)s:\n"
+"\n"
+"%(errormsg)s"
+
+#: gio/gio-tool-launch.c:121
+#, fuzzy, c-format
+msgid "Unable to launch application ‘%s’: %s"
+msgstr "Ne successat lansar «%s»:"
+
+#: gio/gio-tool-list.c:38 gio/gio-tool-tree.c:34
+#, fuzzy
+msgid "Show hidden files"
+msgstr "Revelar celat files"
+
+#: gio/gio-tool-list.c:39
+#, fuzzy
+msgid "Use a long listing format"
+msgstr "Formate de liste"
+
+#: gio/gio-tool-list.c:41
+#, fuzzy
+msgid "Print display names"
+msgstr "Monstra nómines de labor-spacies"
+
+#: gio/gio-tool-list.c:42
+#, fuzzy
+msgid "Print full URIs"
+msgstr "Complet"
+
+#: gio/gio-tool-list.c:178
+#, fuzzy
+msgid "List the contents of the locations."
+msgstr "Listar li _contenete"
+
+#: gio/gio-tool-list.c:180
+msgid ""
+"gio list is similar to the traditional ls utility, but using GIO\n"
+"locations instead of local files: for example, you can use something\n"
+"like smb://server/resource/file.txt as location. File attributes can\n"
+"be specified with their GIO name, e.g. standard::icon"
+msgstr ""
+
+#. Translators: commandline placeholder
+#: gio/gio-tool-mime.c:73
+#, fuzzy
+msgid "MIMETYPE"
+msgstr "MIME-TIP"
+
+#: gio/gio-tool-mime.c:73
+#, fuzzy
+msgid "HANDLER"
+msgstr "RDP - RDP File Handler"
+
+#: gio/gio-tool-mime.c:78
+msgid "Get or set the handler for a mimetype."
+msgstr ""
+
+#: gio/gio-tool-mime.c:80
+msgid ""
+"If no handler is given, lists registered and recommended applications\n"
+"for the mimetype. If a handler is given, it is set as the default\n"
+"handler for the mimetype."
+msgstr ""
+
+#: gio/gio-tool-mime.c:102
+msgid "Must specify a single mimetype, and maybe a handler"
+msgstr ""
+
+#: gio/gio-tool-mime.c:118
+#, fuzzy, c-format
+msgid "No default applications for “%s”\n"
+msgstr "_Aperter per application predefinit"
+
+#: gio/gio-tool-mime.c:124
+#, fuzzy, c-format
+msgid "Default application for “%s”: %s\n"
+msgstr "Null application predefinit trovat por «%s»"
+
+#: gio/gio-tool-mime.c:129
+#, fuzzy
+msgid "Registered applications:\n"
+msgstr "U_sator registrat"
+
+#: gio/gio-tool-mime.c:131
+#, fuzzy
+msgid "No registered applications\n"
+msgstr "U_sator registrat"
+
+#: gio/gio-tool-mime.c:142
+#, fuzzy
+msgid "Recommended applications:\n"
+msgstr "Recomandat applicationes:\n"
+
+#: gio/gio-tool-mime.c:144
+#, fuzzy
+msgid "No recommended applications\n"
+msgstr "Null recomandat applicationes\n"
+
+#: gio/gio-tool-mime.c:164
+#, fuzzy, c-format
+msgid "Failed to load info for handler “%s”"
+msgstr "Ne posset cargar li document «%s»"
+
+#: gio/gio-tool-mime.c:170
+#, fuzzy, c-format
+msgid "Failed to set “%s” as the default handler for “%s”: %s\n"
+msgstr "Ne successat assignar un application predefinit por «%s»"
+
+#: gio/gio-tool-mkdir.c:33
+#, fuzzy
+msgid "Create parent directories"
+msgstr "Parent"
+
+#: gio/gio-tool-mkdir.c:54
+#, fuzzy
+msgid "Create directories."
+msgstr "Directorias:"
+
+#: gio/gio-tool-mkdir.c:56
+msgid ""
+"gio mkdir is similar to the traditional mkdir utility, but using GIO\n"
+"locations instead of local files: for example, you can use something\n"
+"like smb://server/resource/mydir as location."
+msgstr ""
+
+#: gio/gio-tool-monitor.c:39
+msgid "Monitor a directory (default: depends on type)"
+msgstr ""
+
+#: gio/gio-tool-monitor.c:41
+msgid "Monitor a file (default: depends on type)"
+msgstr ""
+
+#: gio/gio-tool-monitor.c:43
+msgid "Monitor a file directly (notices changes made via hardlinks)"
+msgstr ""
+
+#: gio/gio-tool-monitor.c:45
+msgid "Monitors a file directly, but doesn’t report changes"
+msgstr ""
+
+#: gio/gio-tool-monitor.c:47
+msgid "Report moves and renames as simple deleted/created events"
+msgstr ""
+
+#: gio/gio-tool-monitor.c:49
+#, fuzzy
+msgid "Watch for mount events"
+msgstr "_Montar"
+
+#: gio/gio-tool-monitor.c:211
+#, fuzzy
+msgid "Monitor files or directories for changes."
+msgstr "Files e fólderes"
+
+#: gio/gio-tool-mount.c:65
+#, fuzzy
+msgid "Mount as mountable"
+msgstr "«%s»: montibile"
+
+#: gio/gio-tool-mount.c:66
+#, fuzzy
+msgid "Mount volume with device file, or other identifier"
+msgstr "_Monter li volume"
+
+#: gio/gio-tool-mount.c:66
+#, fuzzy
+msgid "ID"
+msgstr "ID"
+
+#: gio/gio-tool-mount.c:67
+#, fuzzy
+msgid "Unmount"
+msgstr "Desmontar"
+
+#: gio/gio-tool-mount.c:68
+#, fuzzy
+msgid "Eject"
+msgstr "Ejecter"
+
+#: gio/gio-tool-mount.c:69
+#, fuzzy
+msgid "Stop drive with device file"
+msgstr "Stoppar li selectet unité"
+
+#: gio/gio-tool-mount.c:69
+#, fuzzy
+msgid "DEVICE"
+msgstr "APARATE"
+
+#: gio/gio-tool-mount.c:70
+msgid "Unmount all mounts with the given scheme"
+msgstr ""
+
+#: gio/gio-tool-mount.c:70
+msgid "SCHEME"
+msgstr "SCHEMA"
+
+#: gio/gio-tool-mount.c:71
+msgid "Ignore outstanding file operations when unmounting or ejecting"
+msgstr ""
+
+#: gio/gio-tool-mount.c:72
+msgid "Use an anonymous user when authenticating"
+msgstr ""
+
+#. Translator: List here is a verb as in 'List all mounts'
+#: gio/gio-tool-mount.c:74
+msgid "List"
+msgstr "Listar"
+
+#: gio/gio-tool-mount.c:75
+#, fuzzy
+msgid "Monitor events"
+msgstr ""
+"EVENIMENTES\n"
+"------"
+
+#: gio/gio-tool-mount.c:76
+#, fuzzy
+msgid "Show extra information"
+msgstr "Monstra li information"
+
+#: gio/gio-tool-mount.c:77
+msgid "The numeric PIM when unlocking a VeraCrypt volume"
+msgstr ""
+
+#: gio/gio-tool-mount.c:77
+#| msgctxt "GDateTime"
+#| msgid "PM"
+msgid "PIM"
+msgstr "PIM"
+
+#: gio/gio-tool-mount.c:78
+#, fuzzy
+msgid "Mount a TCRYPT hidden volume"
+msgstr "_Monter volume"
+
+#: gio/gio-tool-mount.c:79
+#, fuzzy
+msgid "Mount a TCRYPT system volume"
+msgstr "_Monter li volume"
+
+#: gio/gio-tool-mount.c:276 gio/gio-tool-mount.c:308
+#, fuzzy
+msgid "Anonymous access denied"
+msgstr "Accesse refusat."
+
+#: gio/gio-tool-mount.c:533
+#, fuzzy
+msgid "No drive for device file"
+msgstr "Unité"
+
+#: gio/gio-tool-mount.c:1025
+#, fuzzy
+msgid "No volume for given ID"
+msgstr "ID"
+
+#: gio/gio-tool-mount.c:1214
+#, fuzzy
+msgid "Mount or unmount the locations."
+msgstr "(De)monter"
+
+#: gio/gio-tool-move.c:44
+msgid "Don’t use copy and delete fallback"
+msgstr ""
+
+#: gio/gio-tool-move.c:101
+msgid "Move one or more files from SOURCE to DEST."
+msgstr ""
+
+#: gio/gio-tool-move.c:103
+msgid ""
+"gio move is similar to the traditional mv utility, but using GIO\n"
+"locations instead of local files: for example, you can use something\n"
+"like smb://server/resource/file.txt as location"
+msgstr ""
+
+#: gio/gio-tool-move.c:145
+#, fuzzy, c-format
+msgid "Target %s is not a directory"
+msgstr "Li fólder de destination «%s» ne existe"
+
+#: gio/gio-tool-open.c:77
+msgid ""
+"Open files with the default application that\n"
+"is registered to handle files of this type."
+msgstr ""
+
+#: gio/gio-tool-remove.c:33 gio/gio-tool-trash.c:35
+msgid "Ignore nonexistent files, never prompt"
+msgstr ""
+
+#: gio/gio-tool-remove.c:54
+#, fuzzy
+msgid "Delete the given files."
+msgstr "_Deleter files..."
+
+#: gio/gio-tool-rename.c:47
+msgid "NAME"
+msgstr "NÓMINE"
+
+#: gio/gio-tool-rename.c:52
+msgid "Rename a file."
+msgstr "Renominar un file."
+
+#: gio/gio-tool-rename.c:72
+#, fuzzy
+msgid "Missing argument"
+msgstr "Mancant argument de function"
+
+#: gio/gio-tool-rename.c:78 gio/gio-tool-save.c:192 gio/gio-tool-set.c:150
+#, fuzzy
+msgid "Too many arguments"
+msgstr "Tro mult argumentes."
+
+#: gio/gio-tool-rename.c:97
+#, c-format
+msgid "Rename successful. New uri: %s\n"
+msgstr ""
+
+#: gio/gio-tool-save.c:52
+#, fuzzy
+msgid "Only create if not existing"
+msgstr "Solmen crear un _ISO"
+
+#: gio/gio-tool-save.c:53
+#, fuzzy
+msgid "Append to end of file"
+msgstr "Apender al file"
+
+#: gio/gio-tool-save.c:54
+msgid "When creating, restrict access to the current user"
+msgstr ""
+
+#: gio/gio-tool-save.c:55
+msgid "When replacing, replace as if the destination did not exist"
+msgstr ""
+
+#. Translators: The "etag" is a token allowing to verify whether a file has been modified
+#: gio/gio-tool-save.c:57
+msgid "Print new etag at end"
+msgstr ""
+
+#. Translators: The "etag" is a token allowing to verify whether a file has been modified
+#: gio/gio-tool-save.c:59
+#, fuzzy
+msgid "The etag of the file being overwritten"
+msgstr "Li file %s es solmen-letion, on ne posse superscrir it"
+
+#: gio/gio-tool-save.c:59
+msgid "ETAG"
+msgstr ""
+
+#: gio/gio-tool-save.c:115
+#, fuzzy
+msgid "Error reading from standard input"
+msgstr ""
+"Un errore printante li file:\n"
+"%s"
+
+#. Translators: The "etag" is a token allowing to verify whether a file has been modified
+#: gio/gio-tool-save.c:141
+#, fuzzy
+msgid "Etag not available\n"
+msgstr "(Índisponibil)"
+
+#: gio/gio-tool-save.c:165
+msgid "Read from standard input and save to DEST."
+msgstr ""
+
+#: gio/gio-tool-save.c:185
+#, fuzzy
+msgid "No destination given"
+msgstr "_Destination:"
+
+#: gio/gio-tool-set.c:36
+#, fuzzy
+msgid "Type of the attribute"
+msgstr "Atribute:"
+
+#: gio/gio-tool-set.c:36
+msgid "TYPE"
+msgstr "TIP"
+
+#: gio/gio-tool-set.c:38
+#, fuzzy
+msgid "Unset given attribute"
+msgstr "Mar_cat liste"
+
+#: gio/gio-tool-set.c:95
+msgid "ATTRIBUTE"
+msgstr "ATRIBUTE"
+
+#: gio/gio-tool-set.c:95
+msgid "VALUE"
+msgstr "VALORE"
+
+#: gio/gio-tool-set.c:99
+#, fuzzy
+msgid "Set a file attribute of LOCATION."
+msgstr "Cambiar _localisation..."
+
+#: gio/gio-tool-set.c:119
+#, fuzzy
+msgid "Location not specified"
+msgstr "Ear al localisation del marca-págine"
+
+#: gio/gio-tool-set.c:126
+#, fuzzy
+msgid "Attribute not specified"
+msgstr "Ínspecificat"
+
+#: gio/gio-tool-set.c:143
+#, fuzzy
+msgid "Value not specified"
+msgstr "VALORE"
+
+#: gio/gio-tool-set.c:193
+#, fuzzy, c-format
+msgid "Invalid attribute type “%s”"
+msgstr "Attribute «%s» de un element <%s> es ínvalid in ti-ci contextu."
+
+#: gio/gio-tool-trash.c:36
+msgid "Empty the trash"
+msgstr "Vacuar li Paper-corb"
+
+#: gio/gio-tool-trash.c:37
+#, fuzzy
+msgid "List files in the trash with their original locations"
+msgstr "Liste de localisationes"
+
+#: gio/gio-tool-trash.c:38
+msgid ""
+"Restore a file from trash to its original location (possibly recreating the "
+"directory)"
+msgstr ""
+
+#: gio/gio-tool-trash.c:108
+#, fuzzy
+msgid "Unable to find original path"
+msgstr "Original rute;Date de deletion"
+
+#: gio/gio-tool-trash.c:125
+#, fuzzy
+msgid "Unable to recreate original location: "
+msgstr "Localisation original"
+
+#: gio/gio-tool-trash.c:138
+#, fuzzy
+msgid "Unable to move file to its original location: "
+msgstr "Restituer un file in li Paper-corb a su original localisation"
+
+#: gio/gio-tool-trash.c:227
+#, fuzzy
+msgid "Move/Restore files or directories to the trash."
+msgstr "Esque vu vole mover li files in li Paper-corb?"
+
+#: gio/gio-tool-trash.c:229
+msgid ""
+"Note: for --restore switch, if the original location of the trashed file \n"
+"already exists, it will not be overwritten unless --force is set."
+msgstr ""
+
+#: gio/gio-tool-trash.c:260
+msgid "Location given doesn't start with trash:///"
+msgstr ""
+
+#: gio/gio-tool-tree.c:35
+#, fuzzy
+msgid "Follow symbolic links, mounts and shortcuts"
+msgstr "_Sequer ligamentes simbolic"
+
+#: gio/gio-tool-tree.c:246
+msgid "List contents of directories in a tree-like format."
+msgstr ""
+
+#: gio/glib-compile-resources.c:142 gio/glib-compile-schemas.c:1516
+#, fuzzy, c-format
+msgid "Element <%s> not allowed inside <%s>"
+msgstr "Element <%s> ne es permisset al interiore de <%s>"
+
+#: gio/glib-compile-resources.c:146
+#, fuzzy, c-format
+msgid "Element <%s> not allowed at toplevel"
+msgstr "Element <%s> ne es permisset sur li nivell superiori"
+
+#: gio/glib-compile-resources.c:236
+#, c-format
+msgid "File %s appears multiple times in the resource"
+msgstr ""
+
+#: gio/glib-compile-resources.c:247
+#, c-format
+msgid "Failed to locate “%s” in any source directory"
+msgstr ""
+
+#: gio/glib-compile-resources.c:258
+#, fuzzy, c-format
+msgid "Failed to locate “%s” in current directory"
+msgstr "Ne successat crear un fólder «%s»: %s"
+
+#: gio/glib-compile-resources.c:292
+#, fuzzy, c-format
+msgid "Unknown processing option “%s”"
+msgstr "Ínconosset option de fenestre: %s"
+
+#. Translators: the first %s is a gresource XML attribute,
+#. * the second %s is an environment variable, and the third
+#. * %s is a command line tool
+#.
+#: gio/glib-compile-resources.c:312 gio/glib-compile-resources.c:369
+#: gio/glib-compile-resources.c:426
+#, c-format
+msgid "%s preprocessing requested, but %s is not set, and %s is not in PATH"
+msgstr ""
+
+#: gio/glib-compile-resources.c:459
+#, fuzzy, c-format
+msgid "Error reading file %s: %s"
+msgstr "Un errore evenit leente «%s»: %s"
+
+#: gio/glib-compile-resources.c:479
+#, fuzzy, c-format
+msgid "Error compressing file %s"
+msgstr ""
+"Un errore printante li file:\n"
+"%s"
+
+#: gio/glib-compile-resources.c:543
+#, fuzzy, c-format
+msgid "text may not appear inside <%s>"
+msgstr "Null textu es permisset in interiore de element <%s>"
+
+#: gio/glib-compile-resources.c:821 gio/glib-compile-schemas.c:2174
+#, fuzzy
+msgid "Show program version and exit"
+msgstr "monstrar li numeró del version e surtir"
+
+#: gio/glib-compile-resources.c:822
+#, fuzzy
+msgid "Name of the output file"
+msgstr "FONDE-FILE PRODUCTION-FILE"
+
+#: gio/glib-compile-resources.c:823
+msgid ""
+"The directories to load files referenced in FILE from (default: current "
+"directory)"
+msgstr ""
+
+#: gio/glib-compile-resources.c:823 gio/glib-compile-schemas.c:2175
+#: gio/glib-compile-schemas.c:2204
+msgid "DIRECTORY"
+msgstr "DIRECTORIA"
+
+#: gio/glib-compile-resources.c:824
+msgid ""
+"Generate output in the format selected for by the target filename extension"
+msgstr ""
+
+#: gio/glib-compile-resources.c:825
+#, fuzzy
+msgid "Generate source header"
+msgstr "_Generar!"
+
+#: gio/glib-compile-resources.c:826
+msgid "Generate source code used to link in the resource file into your code"
+msgstr ""
+
+#: gio/glib-compile-resources.c:827
+#, fuzzy
+msgid "Generate dependency list"
+msgstr "_Generar"
+
+#: gio/glib-compile-resources.c:828
+#, fuzzy
+msgid "Name of the dependency file to generate"
+msgstr "li file {name}"
+
+#: gio/glib-compile-resources.c:829
+msgid "Include phony targets in the generated dependency file"
+msgstr ""
+
+#: gio/glib-compile-resources.c:830
+msgid "Don’t automatically create and register resource"
+msgstr ""
+
+#: gio/glib-compile-resources.c:831
+msgid "Don’t export functions; declare them G_GNUC_INTERNAL"
+msgstr ""
+
+#: gio/glib-compile-resources.c:832
+msgid ""
+"Don’t embed resource data in the C file; assume it's linked externally "
+"instead"
+msgstr ""
+
+#: gio/glib-compile-resources.c:833
+msgid "C identifier name used for the generated source code"
+msgstr ""
+
+#: gio/glib-compile-resources.c:834
+msgid "The target C compiler (default: the CC environment variable)"
+msgstr ""
+
+#: gio/glib-compile-resources.c:860
+msgid ""
+"Compile a resource specification into a resource file.\n"
+"Resource specification files have the extension .gresource.xml,\n"
+"and the resource file have the extension called .gresource."
+msgstr ""
+
+#: gio/glib-compile-resources.c:882
+msgid "You should give exactly one file name\n"
+msgstr ""
+
+#: gio/glib-compile-schemas.c:94
+#, fuzzy, c-format
+msgid "nick must be a minimum of 2 characters"
+msgstr "Un code de lingue deve contener alminu 2 caracteres."
+
+#: gio/glib-compile-schemas.c:105
+#, fuzzy, c-format
+msgid "Invalid numeric value"
+msgstr "Ínvalid valore(s)."
+
+#: gio/glib-compile-schemas.c:113
+#, fuzzy, c-format
+msgid "<value nick='%s'/> already specified"
+msgstr ""
+"Un file nominat \"%s\" ja existe.\n"
+"\n"
+"%s"
+
+#: gio/glib-compile-schemas.c:121
+#, fuzzy, c-format
+msgid "value='%s' already specified"
+msgstr "<%s> incontrat du vezes in ti-ci tema"
+
+#: gio/glib-compile-schemas.c:135
+#, c-format
+msgid "flags values must have at most 1 bit set"
+msgstr ""
+
+#: gio/glib-compile-schemas.c:160
+#, c-format
+msgid "<%s> must contain at least one <value>"
+msgstr ""
+
+#: gio/glib-compile-schemas.c:316
+#, fuzzy, c-format
+msgid "<%s> is not contained in the specified range"
+msgstr "Non posset scannar alcun fólderes in «%s»"
+
+#: gio/glib-compile-schemas.c:328
+#, c-format
+msgid "<%s> is not a valid member of the specified enumerated type"
+msgstr ""
+
+#: gio/glib-compile-schemas.c:334
+#, c-format
+msgid "<%s> contains string not in the specified flags type"
+msgstr ""
+
+#: gio/glib-compile-schemas.c:340
+#, fuzzy, c-format
+msgid "<%s> contains a string not in <choices>"
+msgstr "Ínvalid catene de geometrie \"%s\"\n"
+
+#: gio/glib-compile-schemas.c:374
+#, fuzzy
+msgid "<range/> already specified for this key"
+msgstr "Un plu old fólder con li sam nómine ja existe in «%s»."
+
+#: gio/glib-compile-schemas.c:392
+#, c-format
+msgid "<range> not allowed for keys of type “%s”"
+msgstr ""
+
+#: gio/glib-compile-schemas.c:409
+#, c-format
+msgid "<range> specified minimum is greater than maximum"
+msgstr ""
+
+#: gio/glib-compile-schemas.c:434
+#, fuzzy, c-format
+msgid "unsupported l10n category: %s"
+msgstr "Ínsupportat codification «%s»"
+
+#: gio/glib-compile-schemas.c:442
+msgid "l10n requested, but no gettext domain given"
+msgstr ""
+
+#: gio/glib-compile-schemas.c:454
+msgid "translation context given for value without l10n enabled"
+msgstr ""
+
+#: gio/glib-compile-schemas.c:476
+#, fuzzy, c-format
+msgid "Failed to parse <default> value of type “%s”: "
+msgstr ""
+"caja: es íncorectmen assignat quam un application predefinit por \"%s\" fil-"
+"tip.\n"
+
+#: gio/glib-compile-schemas.c:493
+msgid ""
+"<choices> cannot be specified for keys tagged as having an enumerated type"
+msgstr ""
+
+#: gio/glib-compile-schemas.c:502
+#, fuzzy
+msgid "<choices> already specified for this key"
+msgstr "Un altri file con li sam nómine ja existe in «%s»."
+
+#: gio/glib-compile-schemas.c:514
+#, c-format
+msgid "<choices> not allowed for keys of type “%s”"
+msgstr ""
+
+#: gio/glib-compile-schemas.c:530
+#, fuzzy, c-format
+msgid "<choice value='%s'/> already given"
+msgstr "Un altri file con li sam nómine ja existe in «%s»."
+
+#: gio/glib-compile-schemas.c:545
+#, c-format
+msgid "<choices> must contain at least one <choice>"
+msgstr ""
+
+#: gio/glib-compile-schemas.c:559
+#, fuzzy
+msgid "<aliases> already specified for this key"
+msgstr "Un altri file con li sam nómine ja existe in «%s»."
+
+#: gio/glib-compile-schemas.c:563
+msgid ""
+"<aliases> can only be specified for keys with enumerated or flags types or "
+"after <choices>"
+msgstr ""
+
+#: gio/glib-compile-schemas.c:582
+#, c-format
+msgid ""
+"<alias value='%s'/> given when “%s” is already a member of the enumerated "
+"type"
+msgstr ""
+
+#: gio/glib-compile-schemas.c:588
+#, c-format
+msgid "<alias value='%s'/> given when <choice value='%s'/> was already given"
+msgstr ""
+
+#: gio/glib-compile-schemas.c:596
+#, fuzzy, c-format
+msgid "<alias value='%s'/> already specified"
+msgstr ""
+"Un file nominat \"%s\" ja existe.\n"
+"\n"
+"%s"
+
+#: gio/glib-compile-schemas.c:606
+#, c-format
+msgid "alias target “%s” is not in enumerated type"
+msgstr ""
+
+#: gio/glib-compile-schemas.c:607
+#, fuzzy, c-format
+msgid "alias target “%s” is not in <choices>"
+msgstr "Li fólder de destination «%s» ne existe"
+
+#: gio/glib-compile-schemas.c:622
+#, c-format
+msgid "<aliases> must contain at least one <alias>"
+msgstr ""
+
+#: gio/glib-compile-schemas.c:799
+#, fuzzy
+msgid "Empty names are not permitted"
+msgstr "Suspension ne es permisset"
+
+#: gio/glib-compile-schemas.c:809
+#, c-format
+msgid "Invalid name “%s”: names must begin with a lowercase letter"
+msgstr ""
+
+#: gio/glib-compile-schemas.c:821
+#, c-format
+msgid ""
+"Invalid name “%s”: invalid character “%c”; only lowercase letters, numbers "
+"and hyphen (“-”) are permitted"
+msgstr ""
+
+#: gio/glib-compile-schemas.c:830
+#, c-format
+msgid "Invalid name “%s”: two successive hyphens (“--”) are not permitted"
+msgstr ""
+
+#: gio/glib-compile-schemas.c:839
+#, c-format
+msgid "Invalid name “%s”: the last character may not be a hyphen (“-”)"
+msgstr ""
+
+#: gio/glib-compile-schemas.c:847
+#, c-format
+msgid "Invalid name “%s”: maximum length is 1024"
+msgstr ""
+
+#: gio/glib-compile-schemas.c:919
+#, fuzzy, c-format
+msgid "<child name='%s'> already specified"
+msgstr "Un plugin con li nómine «%s» ja es installat."
+
+#: gio/glib-compile-schemas.c:945
+msgid "Cannot add keys to a “list-of” schema"
+msgstr ""
+
+#: gio/glib-compile-schemas.c:956
+#, fuzzy, c-format
+msgid "<key name='%s'> already specified"
+msgstr "Li nómine «%s» es ja usat."
+
+#: gio/glib-compile-schemas.c:974
+#, c-format
+msgid ""
+"<key name='%s'> shadows <key name='%s'> in <schema id='%s'>; use <override> "
+"to modify value"
+msgstr ""
+
+#: gio/glib-compile-schemas.c:985
+#, c-format
+msgid ""
+"Exactly one of “type”, “enum” or “flags” must be specified as an attribute "
+"to <key>"
+msgstr ""
+
+#: gio/glib-compile-schemas.c:1004
+#, fuzzy, c-format
+msgid "<%s id='%s'> not (yet) defined."
+msgstr "Function «%s» ne es definit"
+
+#: gio/glib-compile-schemas.c:1019
+#, fuzzy, c-format
+msgid "Invalid GVariant type string “%s”"
+msgstr "Ínvalid catene de geometrie \"%s\"\n"
+
+#: gio/glib-compile-schemas.c:1049
+msgid "<override> given but schema isn’t extending anything"
+msgstr ""
+
+#: gio/glib-compile-schemas.c:1062
+#, fuzzy, c-format
+msgid "No <key name='%s'> to override"
+msgstr "nómine: %s\n"
+
+#: gio/glib-compile-schemas.c:1070
+#, fuzzy, c-format
+msgid "<override name='%s'> already specified"
+msgstr "Un plugin con li nómine «%s» ja es installat."
+
+#: gio/glib-compile-schemas.c:1143
+#, c-format
+msgid "<schema id='%s'> already specified"
+msgstr ""
+
+#: gio/glib-compile-schemas.c:1155
+#, c-format
+msgid "<schema id='%s'> extends not yet existing schema “%s”"
+msgstr ""
+
+#: gio/glib-compile-schemas.c:1171
+#, c-format
+msgid "<schema id='%s'> is list of not yet existing schema “%s”"
+msgstr ""
+
+#: gio/glib-compile-schemas.c:1179
+#, c-format
+msgid "Cannot be a list of a schema with a path"
+msgstr ""
+
+#: gio/glib-compile-schemas.c:1189
+#, c-format
+msgid "Cannot extend a schema with a path"
+msgstr ""
+
+#: gio/glib-compile-schemas.c:1199
+#, c-format
+msgid ""
+"<schema id='%s'> is a list, extending <schema id='%s'> which is not a list"
+msgstr ""
+
+#: gio/glib-compile-schemas.c:1209
+#, c-format
+msgid ""
+"<schema id='%s' list-of='%s'> extends <schema id='%s' list-of='%s'> but “%s” "
+"does not extend “%s”"
+msgstr ""
+
+#: gio/glib-compile-schemas.c:1226
+#, c-format
+msgid "A path, if given, must begin and end with a slash"
+msgstr ""
+
+#: gio/glib-compile-schemas.c:1233
+#, fuzzy, c-format
+msgid "The path of a list must end with “:/”"
+msgstr "Repetir li reproduction del liste"
+
+#: gio/glib-compile-schemas.c:1242
+#, c-format
+msgid ""
+"Warning: Schema “%s” has path “%s”. Paths starting with “/apps/”, “/"
+"desktop/” or “/system/” are deprecated."
+msgstr ""
+
+#: gio/glib-compile-schemas.c:1272
+#, fuzzy, c-format
+msgid "<%s id='%s'> already specified"
+msgstr "<%s> incontrat du vezes in ti-ci tema"
+
+#: gio/glib-compile-schemas.c:1422 gio/glib-compile-schemas.c:1438
+#, fuzzy, c-format
+msgid "Only one <%s> element allowed inside <%s>"
+msgstr "Null textu es permisset in interiore de element <%s>"
+
+#: gio/glib-compile-schemas.c:1520
+#, fuzzy, c-format
+msgid "Element <%s> not allowed at the top level"
+msgstr "Element <%s> ne es permisset in interiore de element <%s>"
+
+#: gio/glib-compile-schemas.c:1538
+#, fuzzy
+msgid "Element <default> is required in <key>"
+msgstr "Assignar quam vor predefinit clave"
+
+#: gio/glib-compile-schemas.c:1628
+#, fuzzy, c-format
+msgid "Text may not appear inside <%s>"
+msgstr "Null textu es permisset in interiore de element <%s>"
+
+#: gio/glib-compile-schemas.c:1696
+#, c-format
+msgid "Warning: undefined reference to <schema id='%s'/>"
+msgstr ""
+
+#. Translators: Do not translate "--strict".
+#: gio/glib-compile-schemas.c:1835 gio/glib-compile-schemas.c:1914
+#, fuzzy
+msgid "--strict was specified; exiting."
+msgstr "Ínspecificat"
+
+#: gio/glib-compile-schemas.c:1847
+#, fuzzy
+msgid "This entire file has been ignored."
+msgstr "Li file sta cargat!"
+
+#: gio/glib-compile-schemas.c:1910
+#, fuzzy
+msgid "Ignoring this file."
+msgstr "_File:"
+
+#: gio/glib-compile-schemas.c:1965
+#, c-format
+msgid ""
+"No such key “%s” in schema “%s” as specified in override file “%s”; ignoring "
+"override for this key."
+msgstr ""
+
+#: gio/glib-compile-schemas.c:1973
+#, c-format
+msgid ""
+"No such key “%s” in schema “%s” as specified in override file “%s” and --"
+"strict was specified; exiting."
+msgstr ""
+
+#: gio/glib-compile-schemas.c:1995
+#, c-format
+msgid ""
+"Cannot provide per-desktop overrides for localized key “%s” in schema "
+"“%s” (override file “%s”); ignoring override for this key."
+msgstr ""
+
+#: gio/glib-compile-schemas.c:2004
+#, c-format
+msgid ""
+"Cannot provide per-desktop overrides for localized key “%s” in schema "
+"“%s” (override file “%s”) and --strict was specified; exiting."
+msgstr ""
+
+#: gio/glib-compile-schemas.c:2028
+#, c-format
+msgid ""
+"Error parsing key “%s” in schema “%s” as specified in override file “%s”: "
+"%s. Ignoring override for this key."
+msgstr ""
+
+#: gio/glib-compile-schemas.c:2040
+#, c-format
+msgid ""
+"Error parsing key “%s” in schema “%s” as specified in override file “%s”: "
+"%s. --strict was specified; exiting."
+msgstr ""
+
+#: gio/glib-compile-schemas.c:2067
+#, c-format
+msgid ""
+"Override for key “%s” in schema “%s” in override file “%s” is outside the "
+"range given in the schema; ignoring override for this key."
+msgstr ""
+
+#: gio/glib-compile-schemas.c:2077
+#, c-format
+msgid ""
+"Override for key “%s” in schema “%s” in override file “%s” is outside the "
+"range given in the schema and --strict was specified; exiting."
+msgstr ""
+
+#: gio/glib-compile-schemas.c:2103
+#, c-format
+msgid ""
+"Override for key “%s” in schema “%s” in override file “%s” is not in the "
+"list of valid choices; ignoring override for this key."
+msgstr ""
+
+#: gio/glib-compile-schemas.c:2113
+#, c-format
+msgid ""
+"Override for key “%s” in schema “%s” in override file “%s” is not in the "
+"list of valid choices and --strict was specified; exiting."
+msgstr ""
+
+#: gio/glib-compile-schemas.c:2175
+#, fuzzy
+msgid "Where to store the gschemas.compiled file"
+msgstr "Gardar li marca de octet-órdine (BOM) in li file"
+
+#: gio/glib-compile-schemas.c:2176
+msgid "Abort on any errors in schemas"
+msgstr ""
+
+#: gio/glib-compile-schemas.c:2177
+#, fuzzy
+msgid "Do not write the gschema.compiled file"
+msgstr "Ne successat scrir li file de configuration de KDM"
+
+#: gio/glib-compile-schemas.c:2178
+msgid "Do not enforce key name restrictions"
+msgstr ""
+
+#: gio/glib-compile-schemas.c:2207
+msgid ""
+"Compile all GSettings schema files into a schema cache.\n"
+"Schema files are required to have the extension .gschema.xml,\n"
+"and the cache file is called gschemas.compiled."
+msgstr ""
+
+#: gio/glib-compile-schemas.c:2228
+msgid "You should give exactly one directory name"
+msgstr ""
+
+#: gio/glib-compile-schemas.c:2271
+#, fuzzy
+msgid "No schema files found: doing nothing."
+msgstr "Null files trovat"
+
+#: gio/glib-compile-schemas.c:2273
+#, fuzzy
+msgid "No schema files found: removed existing output file."
+msgstr "Producter un file de header C"
+
+#: gio/glocalfile.c:563 gio/win32/gwinhttpfile.c:436
+#, fuzzy, c-format
+msgid "Invalid filename %s"
+msgstr "Ínvalid nómine de file %s"
+
+#: gio/glocalfile.c:996
+#, fuzzy, c-format
+msgid "Error getting filesystem info for %s: %s"
+msgstr "Errore obtenente li clave de ciffration: %s"
+
+#. Translators: This is an error message when trying to find
+#. * the enclosing (user visible) mount of a file, but none
+#. * exists.
+#.
+#: gio/glocalfile.c:1137
+#, fuzzy, c-format
+msgid "Containing mount for file %s not found"
+msgstr "Li file %s es corupt, ínleibil, o mancant."
+
+#: gio/glocalfile.c:1160
+#, fuzzy
+msgid "Can’t rename root directory"
+msgstr "Directorias"
+
+#: gio/glocalfile.c:1178 gio/glocalfile.c:1201
+#, fuzzy, c-format
+msgid "Error renaming file %s: %s"
+msgstr "Un errore evenit renominante un file."
+
+#: gio/glocalfile.c:1185
+msgid "Can’t rename file, filename already exists"
+msgstr ""
+
+#: gio/glocalfile.c:1198 gio/glocalfile.c:2394 gio/glocalfile.c:2422
+#: gio/glocalfile.c:2561 gio/glocalfileoutputstream.c:658
+#, fuzzy
+msgid "Invalid filename"
+msgstr "Ínvalid fil-nómine"
+
+#: gio/glocalfile.c:1366 gio/glocalfile.c:1377
+#, fuzzy, c-format
+msgid "Error opening file %s: %s"
+msgstr "Ne successat aperter un file %s."
+
+#: gio/glocalfile.c:1502
+#, fuzzy, c-format
+msgid "Error removing file %s: %s"
+msgstr "Un errore evenit removente un file: %s"
+
+#: gio/glocalfile.c:1996 gio/glocalfile.c:2007 gio/glocalfile.c:2034
+#, fuzzy, c-format
+msgid "Error trashing file %s: %s"
+msgstr "Li file PO contene un errore: %s"
+
+#: gio/glocalfile.c:2054
+#, fuzzy, c-format
+msgid "Unable to create trash directory %s: %s"
+msgstr "Ne successat crear un directoria %s"
+
+#: gio/glocalfile.c:2075
+#, c-format
+msgid "Unable to find toplevel directory to trash %s"
+msgstr ""
+
+#: gio/glocalfile.c:2083
+#, c-format
+msgid "Trashing on system internal mounts is not supported"
+msgstr ""
+
+#: gio/glocalfile.c:2169 gio/glocalfile.c:2197
+#, c-format
+msgid "Unable to find or create trash directory %s to trash %s"
+msgstr ""
+
+#: gio/glocalfile.c:2243
+#, fuzzy, c-format
+msgid "Unable to create trashing info file for %s: %s"
+msgstr ""
+"Ne successat crear un directoria basal «%s». Gardation de file «%s» va esser "
+"anullat."
+
+#: gio/glocalfile.c:2305
+#, c-format
+msgid "Unable to trash file %s across filesystem boundaries"
+msgstr ""
+
+#: gio/glocalfile.c:2309 gio/glocalfile.c:2365
+#, fuzzy, c-format
+msgid "Unable to trash file %s: %s"
+msgstr "Li file «%s» ne posse esset movet in li Paper-corb."
+
+#: gio/glocalfile.c:2371
+#, fuzzy, c-format
+msgid "Unable to trash file %s"
+msgstr "Li file «%s» ne posse esset movet in li Paper-corb."
+
+#: gio/glocalfile.c:2397
+#, fuzzy, c-format
+msgid "Error creating directory %s: %s"
+msgstr "Un error evenit creante li directoria '%s': %s"
+
+#: gio/glocalfile.c:2426
+#, fuzzy, c-format
+msgid "Filesystem does not support symbolic links"
+msgstr "Li destination ne supporte simbolic ligamentes."
+
+#: gio/glocalfile.c:2429
+#, fuzzy, c-format
+msgid "Error making symbolic link %s: %s"
+msgstr "Ne successat crear un simbolic ligament por «%s»."
+
+#: gio/glocalfile.c:2472 gio/glocalfile.c:2507 gio/glocalfile.c:2564
+#, fuzzy, c-format
+msgid "Error moving file %s: %s"
+msgstr "Un error evenit copiante li file al %F."
+
+#: gio/glocalfile.c:2495
+msgid "Can’t move directory over directory"
+msgstr ""
+
+#: gio/glocalfile.c:2521 gio/glocalfileoutputstream.c:1110
+#: gio/glocalfileoutputstream.c:1124 gio/glocalfileoutputstream.c:1139
+#: gio/glocalfileoutputstream.c:1156 gio/glocalfileoutputstream.c:1170
+#, fuzzy
+msgid "Backup file creation failed"
+msgstr "Ne successat crear un file temporari."
+
+#: gio/glocalfile.c:2540
+#, fuzzy, c-format
+msgid "Error removing target file: %s"
+msgstr "Un errore evenit removente un file: %s"
+
+#: gio/glocalfile.c:2554
+#, fuzzy
+msgid "Move between mounts not supported"
+msgstr "Mover inter fenestres ínmediatmen"
+
+#: gio/glocalfile.c:2728
+#, fuzzy, c-format
+msgid "Could not determine the disk usage of %s: %s"
+msgstr "Ne successat determinar li original localisation de «%s» "
+
+#: gio/glocalfileinfo.c:775
+msgid "Attribute value must be non-NULL"
+msgstr ""
+
+#: gio/glocalfileinfo.c:782
+#, fuzzy
+msgid "Invalid attribute type (string or invalid expected)"
+msgstr "Attribute \"%s\" de un element <%s> es ínvalid in ti contextu."
+
+#: gio/glocalfileinfo.c:789
+#, fuzzy
+msgid "Invalid extended attribute name"
+msgstr "Nov nómine de atribute:"
+
+#: gio/glocalfileinfo.c:840
+#, fuzzy, c-format
+msgid "Error setting extended attribute “%s”: %s"
+msgstr "Errore: %s\n"
+
+#: gio/glocalfileinfo.c:1732 gio/win32/gwinhttpfile.c:191
+#, fuzzy
+msgid " (invalid encoding)"
+msgstr " (codification ínvalid)"
+
+#: gio/glocalfileinfo.c:1891 gio/glocalfileoutputstream.c:945
+#: gio/glocalfileoutputstream.c:997
+#, fuzzy, c-format
+msgid "Error when getting information for file “%s”: %s"
+msgstr "Errore evenit obtenente li information pri partite: %s"
+
+#: gio/glocalfileinfo.c:2157
+#, c-format
+msgid "Error when getting information for file descriptor: %s"
+msgstr ""
+
+#: gio/glocalfileinfo.c:2202
+msgid "Invalid attribute type (uint32 expected)"
+msgstr ""
+
+#: gio/glocalfileinfo.c:2220
+msgid "Invalid attribute type (uint64 expected)"
+msgstr ""
+
+#: gio/glocalfileinfo.c:2239 gio/glocalfileinfo.c:2258
+msgid "Invalid attribute type (byte string expected)"
+msgstr ""
+
+#: gio/glocalfileinfo.c:2305
+#, fuzzy
+msgid "Cannot set permissions on symlinks"
+msgstr "Ark ne posse aperter simbolic ligamentes."
+
+#: gio/glocalfileinfo.c:2321
+#, fuzzy, c-format
+msgid "Error setting permissions: %s"
+msgstr "Assignante permissiones"
+
+#: gio/glocalfileinfo.c:2372
+#, fuzzy, c-format
+msgid "Error setting owner: %s"
+msgstr "Possessor: %s/%s"
+
+#: gio/glocalfileinfo.c:2395
+#, fuzzy
+msgid "symlink must be non-NULL"
+msgstr "Li titul deve esser present.\n"
+
+#: gio/glocalfileinfo.c:2405 gio/glocalfileinfo.c:2424
+#: gio/glocalfileinfo.c:2435
+#, fuzzy, c-format
+msgid "Error setting symlink: %s"
+msgstr "Un errore evenit creante li simbolic ligament in %F."
+
+#: gio/glocalfileinfo.c:2414
+#, fuzzy
+msgid "Error setting symlink: file is not a symlink"
+msgstr "Un errore evenit creante li simbolic ligament in %F."
+
+#: gio/glocalfileinfo.c:2506
+#, c-format
+msgid "Extra nanoseconds %d for UNIX timestamp %lld are negative"
+msgstr ""
+
+#: gio/glocalfileinfo.c:2515
+#, c-format
+msgid "Extra nanoseconds %d for UNIX timestamp %lld reach 1 second"
+msgstr ""
+
+#: gio/glocalfileinfo.c:2525
+#, c-format
+msgid "UNIX timestamp %lld does not fit into 64 bits"
+msgstr ""
+
+#: gio/glocalfileinfo.c:2536
+#, c-format
+msgid "UNIX timestamp %lld is outside of the range supported by Windows"
+msgstr ""
+
+#: gio/glocalfileinfo.c:2668
+#, c-format
+msgid "File name “%s” cannot be converted to UTF-16"
+msgstr ""
+
+#: gio/glocalfileinfo.c:2687
+#, c-format
+msgid "File “%s” cannot be opened: Windows Error %lu"
+msgstr ""
+
+#: gio/glocalfileinfo.c:2700
+#, c-format
+msgid "Error setting modification or access time for file “%s”: %lu"
+msgstr ""
+
+#: gio/glocalfileinfo.c:2856
+#, c-format
+msgid "Error setting modification or access time: %s"
+msgstr ""
+
+#: gio/glocalfileinfo.c:2879
+msgid "SELinux context must be non-NULL"
+msgstr ""
+
+#: gio/glocalfileinfo.c:2886
+#, fuzzy
+msgid "SELinux is not enabled on this system"
+msgstr "Permisset"
+
+#: gio/glocalfileinfo.c:2896
+#, fuzzy, c-format
+msgid "Error setting SELinux context: %s"
+msgstr "• Li contextu SELinux es predefinit: %s\n"
+
+#: gio/glocalfileinfo.c:2993
+#, fuzzy, c-format
+msgid "Setting attribute %s not supported"
+msgstr "Mancant atribute «%s» de elemente <%s>"
+
+#: gio/glocalfileinputstream.c:165 gio/glocalfileoutputstream.c:803
+#, fuzzy, c-format
+msgid "Error reading from file: %s"
+msgstr "Un errore evenit leente «%s»: %s"
+
+#: gio/glocalfileinputstream.c:196 gio/glocalfileoutputstream.c:355
+#: gio/glocalfileoutputstream.c:449
+#, fuzzy, c-format
+msgid "Error closing file: %s"
+msgstr "Ne successat aperter un file %s."
+
+#: gio/glocalfileinputstream.c:274 gio/glocalfileoutputstream.c:565
+#: gio/glocalfileoutputstream.c:1188
+#, fuzzy, c-format
+msgid "Error seeking in file: %s"
+msgstr "Sercha: %s"
+
+#: gio/glocalfilemonitor.c:882
+msgid "Unable to find default local file monitor type"
+msgstr ""
+
+#: gio/glocalfileoutputstream.c:222 gio/glocalfileoutputstream.c:300
+#: gio/glocalfileoutputstream.c:336 gio/glocalfileoutputstream.c:824
+#, fuzzy, c-format
+msgid "Error writing to file: %s"
+msgstr "Un errore evenit scriente li file PO: %s"
+
+#: gio/glocalfileoutputstream.c:382
+#, c-format
+msgid "Error removing old backup link: %s"
+msgstr ""
+
+#: gio/glocalfileoutputstream.c:396 gio/glocalfileoutputstream.c:409
+#, fuzzy, c-format
+msgid "Error creating backup copy: %s"
+msgstr "Un error evenit creante li directoria '%s': %s"
+
+#: gio/glocalfileoutputstream.c:427
+#, fuzzy, c-format
+msgid "Error renaming temporary file: %s"
+msgstr "Un errore evenit renominante un file."
+
+#: gio/glocalfileoutputstream.c:611 gio/glocalfileoutputstream.c:1242
+#, fuzzy, c-format
+msgid "Error truncating file: %s"
+msgstr ""
+"Un errore printante li file:\n"
+"%s"
+
+#: gio/glocalfileoutputstream.c:664 gio/glocalfileoutputstream.c:909
+#: gio/glocalfileoutputstream.c:1223 gio/gsubprocess.c:231
+#, fuzzy, c-format
+msgid "Error opening file “%s”: %s"
+msgstr "Ne successat aperter un file %s."
+
+#: gio/glocalfileoutputstream.c:959
+#, fuzzy
+msgid "Target file is a directory"
+msgstr "Li fólder de destination «%s» ne existe"
+
+#: gio/glocalfileoutputstream.c:973
+#, fuzzy
+msgid "Target file is not a regular file"
+msgstr "Li file ne es un regulari file o ne es un file textual."
+
+#: gio/glocalfileoutputstream.c:1015
+#, fuzzy
+msgid "The file was externally modified"
+msgstr "Modificat externalmen"
+
+#: gio/glocalfileoutputstream.c:1205
+#, fuzzy, c-format
+msgid "Error removing old file: %s"
+msgstr "Un errore evenit removente un file: %s"
+
+#: gio/gmemoryinputstream.c:476 gio/gmemoryoutputstream.c:764
+#, fuzzy
+msgid "Invalid GSeekType supplied"
+msgstr "Null contrasigne providet."
+
+#: gio/gmemoryinputstream.c:486
+#, fuzzy
+msgid "Invalid seek request"
+msgstr "Demandar"
+
+#: gio/gmemoryinputstream.c:510
+#, fuzzy
+msgid "Cannot truncate GMemoryInputStream"
+msgstr "Nómines de files ne posse contener “/”."
+
+#: gio/gmemoryoutputstream.c:570
+msgid "Memory output stream not resizable"
+msgstr ""
+
+#: gio/gmemoryoutputstream.c:586
+msgid "Failed to resize memory output stream"
+msgstr ""
+
+#: gio/gmemoryoutputstream.c:665
+msgid ""
+"Amount of memory required to process the write is larger than available "
+"address space"
+msgstr ""
+
+#: gio/gmemoryoutputstream.c:774
+msgid "Requested seek before the beginning of the stream"
+msgstr ""
+
+#: gio/gmemoryoutputstream.c:789
+msgid "Requested seek beyond the end of the stream"
+msgstr ""
+
+#. Translators: This is an error
+#. * message for mount objects that
+#. * don't implement unmount.
+#: gio/gmount.c:401
+#, fuzzy
+msgid "mount doesn’t implement “unmount”"
+msgstr "_Monter li volume"
+
+#. Translators: This is an error
+#. * message for mount objects that
+#. * don't implement eject.
+#: gio/gmount.c:477
+#, fuzzy
+msgid "mount doesn’t implement “eject”"
+msgstr "Ejecter li selectet volume"
+
+#. Translators: This is an error
+#. * message for mount objects that
+#. * don't implement any of unmount or unmount_with_operation.
+#: gio/gmount.c:555
+msgid "mount doesn’t implement “unmount” or “unmount_with_operation”"
+msgstr ""
+
+#. Translators: This is an error
+#. * message for mount objects that
+#. * don't implement any of eject or eject_with_operation.
+#: gio/gmount.c:640
+msgid "mount doesn’t implement “eject” or “eject_with_operation”"
+msgstr ""
+
+#. Translators: This is an error
+#. * message for mount objects that
+#. * don't implement remount.
+#: gio/gmount.c:728
+#, fuzzy
+msgid "mount doesn’t implement “remount”"
+msgstr "_Monter li volume"
+
+#. Translators: This is an error
+#. * message for mount objects that
+#. * don't implement content type guessing.
+#: gio/gmount.c:810
+msgid "mount doesn’t implement content type guessing"
+msgstr ""
+
+#. Translators: This is an error
+#. * message for mount objects that
+#. * don't implement content type guessing.
+#: gio/gmount.c:897
+msgid "mount doesn’t implement synchronous content type guessing"
+msgstr ""
+
+#: gio/gnetworkaddress.c:417
+#, fuzzy, c-format
+msgid "Hostname “%s” contains “[” but not “]”"
+msgstr "Ne successat obtener li nómine de host: %s\n"
+
+#: gio/gnetworkmonitorbase.c:221 gio/gnetworkmonitorbase.c:325
+#, fuzzy
+msgid "Network unreachable"
+msgstr "%s es ínatingibil"
+
+#: gio/gnetworkmonitorbase.c:259 gio/gnetworkmonitorbase.c:289
+#, fuzzy
+msgid "Host unreachable"
+msgstr "%s es ínatingibil"
+
+#: gio/gnetworkmonitornetlink.c:101 gio/gnetworkmonitornetlink.c:113
+#: gio/gnetworkmonitornetlink.c:132
+#, fuzzy, c-format
+msgid "Could not create network monitor: %s"
+msgstr "Ne successat crear un conexion de rete"
+
+#: gio/gnetworkmonitornetlink.c:122
+#, fuzzy
+msgid "Could not create network monitor: "
+msgstr "Ne successat crear un conexion de rete"
+
+#: gio/gnetworkmonitornetlink.c:185
+#, fuzzy
+msgid "Could not get network status: "
+msgstr "Ne successat obtener li information pri ecran"
+
+#: gio/gnetworkmonitornm.c:313
+#, fuzzy, c-format
+msgid "NetworkManager not running"
+msgstr "NetworkManager deve esser lansat."
+
+#: gio/gnetworkmonitornm.c:324
+#, fuzzy, c-format
+msgid "NetworkManager version too old"
+msgstr "Ancian version"
+
+#: gio/goutputstream.c:234 gio/goutputstream.c:777
+#, fuzzy
+msgid "Output stream doesn’t implement write"
+msgstr "Startar li selectet unité"
+
+#: gio/goutputstream.c:474 gio/goutputstream.c:1535
+#, c-format
+msgid "Sum of vectors passed to %s too large"
+msgstr ""
+
+#: gio/goutputstream.c:738 gio/goutputstream.c:1763
+msgid "Source stream is already closed"
+msgstr ""
+
+#: gio/gproxyaddressenumerator.c:324 gio/gproxyaddressenumerator.c:342
+#, fuzzy
+msgid "Unspecified proxy lookup failure"
+msgstr "Ne successat trovar information"
+
+#. Translators: the first placeholder is a domain name, the
+#. * second is an error message
+#: gio/gresolver.c:403 gio/gthreadedresolver.c:152 gio/gthreadedresolver.c:170
+#: gio/gthreadedresolver.c:782 gio/gthreadedresolver.c:806
+#: gio/gthreadedresolver.c:831 gio/gthreadedresolver.c:846
+#, fuzzy, c-format
+msgid "Error resolving “%s”: %s"
+msgstr "errore - iconv: %s -> %s\n"
+
+#. Translators: The placeholder is for a function name.
+#: gio/gresolver.c:472 gio/gresolver.c:632
+#, fuzzy, c-format
+msgid "%s not implemented"
+msgstr "ne implementat"
+
+#: gio/gresolver.c:1001 gio/gresolver.c:1053
+#, fuzzy
+msgid "Invalid domain"
+msgstr "_Dominia:"
+
+#: gio/gresource.c:683 gio/gresource.c:945 gio/gresource.c:985
+#: gio/gresource.c:1109 gio/gresource.c:1181 gio/gresource.c:1255
+#: gio/gresource.c:1336 gio/gresourcefile.c:478 gio/gresourcefile.c:601
+#: gio/gresourcefile.c:752
+#, fuzzy, c-format
+msgid "The resource at “%s” does not exist"
+msgstr "Li demandat ressurse ne existe."
+
+#: gio/gresource.c:850
+#, fuzzy, c-format
+msgid "The resource at “%s” failed to decompress"
+msgstr "Ne successat decompresser %s"
+
+#: gio/gresourcefile.c:658
+#, fuzzy
+msgid "Resource files cannot be renamed"
+msgstr "Li files ne posset esser renominat."
+
+#: gio/gresourcefile.c:748
+#, fuzzy, c-format
+msgid "The resource at “%s” is not a directory"
+msgstr "Ressurse"
+
+#: gio/gresourcefile.c:956
+#, fuzzy
+msgid "Input stream doesn’t implement seek"
+msgstr "Ejecter li selectet volume"
+
+#: gio/gresource-tool.c:502
+msgid "List sections containing resources in an elf FILE"
+msgstr ""
+
+#: gio/gresource-tool.c:508
+msgid ""
+"List resources\n"
+"If SECTION is given, only list resources in this section\n"
+"If PATH is given, only list matching resources"
+msgstr ""
+
+#: gio/gresource-tool.c:511 gio/gresource-tool.c:521
+#, fuzzy
+msgid "FILE [PATH]"
+msgstr "Rute del file:"
+
+#: gio/gresource-tool.c:512 gio/gresource-tool.c:522 gio/gresource-tool.c:529
+#, fuzzy
+msgid "SECTION"
+msgstr "section"
+
+#: gio/gresource-tool.c:517
+msgid ""
+"List resources with details\n"
+"If SECTION is given, only list resources in this section\n"
+"If PATH is given, only list matching resources\n"
+"Details include the section, size and compression"
+msgstr ""
+
+#: gio/gresource-tool.c:527
+#, fuzzy
+msgid "Extract a resource file to stdout"
+msgstr "Extraer li selectet file o fólder"
+
+#: gio/gresource-tool.c:528
+#, fuzzy
+msgid "FILE PATH"
+msgstr "Rute de file"
+
+#: gio/gresource-tool.c:542
+msgid ""
+"Usage:\n"
+" gresource [--section SECTION] COMMAND [ARGS…]\n"
+"\n"
+"Commands:\n"
+" help Show this information\n"
+" sections List resource sections\n"
+" list List resources\n"
+" details List resources with details\n"
+" extract Extract a resource\n"
+"\n"
+"Use “gresource help COMMAND” to get detailed help.\n"
+"\n"
+msgstr ""
+
+#: gio/gresource-tool.c:556
+#, c-format
+msgid ""
+"Usage:\n"
+" gresource %s%s%s %s\n"
+"\n"
+"%s\n"
+"\n"
+msgstr ""
+
+#: gio/gresource-tool.c:563
+msgid " SECTION An (optional) elf section name\n"
+msgstr ""
+
+#: gio/gresource-tool.c:567 gio/gsettings-tool.c:720
+#, fuzzy
+msgid " COMMAND The (optional) command to explain\n"
+msgstr "Selecte un comande"
+
+#: gio/gresource-tool.c:573
+msgid " FILE An elf file (a binary or a shared library)\n"
+msgstr ""
+
+#: gio/gresource-tool.c:576
+msgid ""
+" FILE An elf file (a binary or a shared library)\n"
+" or a compiled resource file\n"
+msgstr ""
+
+#: gio/gresource-tool.c:580
+#, fuzzy
+msgid "[PATH]"
+msgstr "Rute: "
+
+#: gio/gresource-tool.c:582
+msgid " PATH An (optional) resource path (may be partial)\n"
+msgstr ""
+
+#: gio/gresource-tool.c:583
+#, fuzzy
+msgid "PATH"
+msgstr "RUTE"
+
+#: gio/gresource-tool.c:585
+#, fuzzy
+msgid " PATH A resource path\n"
+msgstr "_Rute:"
+
+#: gio/gsettings-tool.c:51 gio/gsettings-tool.c:72 gio/gsettings-tool.c:925
+#, fuzzy, c-format
+msgid "No such schema “%s”\n"
+msgstr "SCHEMA"
+
+#: gio/gsettings-tool.c:57
+#, c-format
+msgid "Schema “%s” is not relocatable (path must not be specified)\n"
+msgstr ""
+
+#: gio/gsettings-tool.c:78
+#, c-format
+msgid "Schema “%s” is relocatable (path must be specified)\n"
+msgstr ""
+
+#: gio/gsettings-tool.c:92
+#, fuzzy
+msgid "Empty path given.\n"
+msgstr "_Rute:"
+
+#: gio/gsettings-tool.c:98
+#, fuzzy
+msgid "Path must begin with a slash (/)\n"
+msgstr "Li directoria de labor deve esser un absolut rute"
+
+#: gio/gsettings-tool.c:104
+#, fuzzy
+msgid "Path must end with a slash (/)\n"
+msgstr "Li directoria de labor deve esser un absolut rute"
+
+#: gio/gsettings-tool.c:110
+msgid "Path must not contain two adjacent slashes (//)\n"
+msgstr ""
+
+#: gio/gsettings-tool.c:555
+msgid "The provided value is outside of the valid range\n"
+msgstr ""
+
+#: gio/gsettings-tool.c:562
+#, fuzzy
+msgid "The key is not writable\n"
+msgstr "Scribil?"
+
+#: gio/gsettings-tool.c:598
+msgid "List the installed (non-relocatable) schemas"
+msgstr ""
+
+#: gio/gsettings-tool.c:604
+#, fuzzy
+msgid "List the installed relocatable schemas"
+msgstr "listar li installat paccages"
+
+#: gio/gsettings-tool.c:610
+#, fuzzy
+msgid "List the keys in SCHEMA"
+msgstr "SCHEMA"
+
+#: gio/gsettings-tool.c:611 gio/gsettings-tool.c:617 gio/gsettings-tool.c:660
+#, fuzzy
+msgid "SCHEMA[:PATH]"
+msgstr "SCHEMA"
+
+#: gio/gsettings-tool.c:616
+#, fuzzy
+msgid "List the children of SCHEMA"
+msgstr "Infantes"
+
+#: gio/gsettings-tool.c:622
+msgid ""
+"List keys and values, recursively\n"
+"If no SCHEMA is given, list all keys\n"
+msgstr ""
+
+#: gio/gsettings-tool.c:624
+#, fuzzy
+msgid "[SCHEMA[:PATH]]"
+msgstr "SCHEMA"
+
+#: gio/gsettings-tool.c:629
+#, fuzzy
+msgid "Get the value of KEY"
+msgstr "VALORE"
+
+#: gio/gsettings-tool.c:630 gio/gsettings-tool.c:636 gio/gsettings-tool.c:642
+#: gio/gsettings-tool.c:654 gio/gsettings-tool.c:666
+#, fuzzy
+msgid "SCHEMA[:PATH] KEY"
+msgstr "SCHEMA"
+
+#: gio/gsettings-tool.c:635
+msgid "Query the range of valid values for KEY"
+msgstr ""
+
+#: gio/gsettings-tool.c:641
+#, fuzzy
+msgid "Query the description for KEY"
+msgstr "_Descrition:"
+
+#: gio/gsettings-tool.c:647
+#, fuzzy
+msgid "Set the value of KEY to VALUE"
+msgstr "usage: set [variabile = valore]\n"
+
+#: gio/gsettings-tool.c:648
+msgid "SCHEMA[:PATH] KEY VALUE"
+msgstr ""
+
+#: gio/gsettings-tool.c:653
+msgid "Reset KEY to its default value"
+msgstr ""
+
+#: gio/gsettings-tool.c:659
+msgid "Reset all keys in SCHEMA to their defaults"
+msgstr ""
+
+#: gio/gsettings-tool.c:665
+#, fuzzy
+msgid "Check if KEY is writable"
+msgstr "Scribil?"
+
+#: gio/gsettings-tool.c:671
+msgid ""
+"Monitor KEY for changes.\n"
+"If no KEY is specified, monitor all keys in SCHEMA.\n"
+"Use ^C to stop monitoring.\n"
+msgstr ""
+
+#: gio/gsettings-tool.c:674
+#, fuzzy
+msgid "SCHEMA[:PATH] [KEY]"
+msgstr "SCHEMA"
+
+#: gio/gsettings-tool.c:686
+msgid ""
+"Usage:\n"
+" gsettings --version\n"
+" gsettings [--schemadir SCHEMADIR] COMMAND [ARGS…]\n"
+"\n"
+"Commands:\n"
+" help Show this information\n"
+" list-schemas List installed schemas\n"
+" list-relocatable-schemas List relocatable schemas\n"
+" list-keys List keys in a schema\n"
+" list-children List children of a schema\n"
+" list-recursively List keys and values, recursively\n"
+" range Queries the range of a key\n"
+" describe Queries the description of a key\n"
+" get Get the value of a key\n"
+" set Set the value of a key\n"
+" reset Reset the value of a key\n"
+" reset-recursively Reset all values in a given schema\n"
+" writable Check if a key is writable\n"
+" monitor Watch for changes\n"
+"\n"
+"Use “gsettings help COMMAND” to get detailed help.\n"
+"\n"
+msgstr ""
+
+#: gio/gsettings-tool.c:710
+#, c-format
+msgid ""
+"Usage:\n"
+" gsettings [--schemadir SCHEMADIR] %s %s\n"
+"\n"
+"%s\n"
+"\n"
+msgstr ""
+
+#: gio/gsettings-tool.c:716
+msgid " SCHEMADIR A directory to search for additional schemas\n"
+msgstr ""
+
+#: gio/gsettings-tool.c:724
+msgid ""
+" SCHEMA The name of the schema\n"
+" PATH The path, for relocatable schemas\n"
+msgstr ""
+
+#: gio/gsettings-tool.c:729
+msgid " KEY The (optional) key within the schema\n"
+msgstr ""
+
+#: gio/gsettings-tool.c:733
+#, fuzzy
+msgid " KEY The key within the schema\n"
+msgstr "_Longore del clave:"
+
+#: gio/gsettings-tool.c:737
+#, fuzzy
+msgid " VALUE The value to set\n"
+msgstr "VALORE"
+
+#: gio/gsettings-tool.c:792
+#, fuzzy, c-format
+msgid "Could not load schemas from %s: %s\n"
+msgstr "Ne successat cargar data de menú ex %s"
+
+#: gio/gsettings-tool.c:804
+#, fuzzy
+msgid "No schemas installed\n"
+msgstr "ma it ne es installat"
+
+#: gio/gsettings-tool.c:883
+#, fuzzy
+msgid "Empty schema name given\n"
+msgstr "Nómine@ de usator (si present): %U"
+
+#: gio/gsettings-tool.c:938
+#, fuzzy, c-format
+msgid "No such key “%s”\n"
+msgstr "Ne successat adjunter li clave GPG %s, %s"
+
+#: gio/gsocket.c:419
+#, fuzzy
+msgid "Invalid socket, not initialized"
+msgstr "Socket:"
+
+#: gio/gsocket.c:426
+#, c-format
+msgid "Invalid socket, initialization failed due to: %s"
+msgstr ""
+
+#: gio/gsocket.c:434
+#, fuzzy
+msgid "Socket is already closed"
+msgstr "Cludet"
+
+#: gio/gsocket.c:449 gio/gsocket.c:3201 gio/gsocket.c:4434 gio/gsocket.c:4492
+msgid "Socket I/O timed out"
+msgstr ""
+
+#: gio/gsocket.c:586
+#, c-format
+msgid "creating GSocket from fd: %s"
+msgstr ""
+
+#: gio/gsocket.c:615 gio/gsocket.c:679 gio/gsocket.c:686
+#, fuzzy, c-format
+msgid "Unable to create socket: %s"
+msgstr "Ne successat crear un socket"
+
+#: gio/gsocket.c:679
+#, fuzzy
+msgid "Unknown family was specified"
+msgstr "Ínspecificat"
+
+#: gio/gsocket.c:686
+#, fuzzy
+msgid "Unknown protocol was specified"
+msgstr "Protocol «%1» es ínconosset"
+
+#: gio/gsocket.c:1177
+#, c-format
+msgid "Cannot use datagram operations on a non-datagram socket."
+msgstr ""
+
+#: gio/gsocket.c:1194
+#, c-format
+msgid "Cannot use datagram operations on a socket with a timeout set."
+msgstr ""
+
+#: gio/gsocket.c:2001
+#, fuzzy, c-format
+msgid "could not get local address: %s"
+msgstr "%s: Lokale Adresse konnte nicht ermittelt werden!"
+
+#: gio/gsocket.c:2047
+#, fuzzy, c-format
+msgid "could not get remote address: %s"
+msgstr "Rechnername des Servers konnte nicht ermittelt werden: %s!"
+
+#: gio/gsocket.c:2113
+#, fuzzy, c-format
+msgid "could not listen: %s"
+msgstr "listen ne successat"
+
+#: gio/gsocket.c:2217
+#, fuzzy, c-format
+msgid "Error binding to address %s: %s"
+msgstr "Li rapid-taste (%s) es íncomplet"
+
+#: gio/gsocket.c:2392 gio/gsocket.c:2429 gio/gsocket.c:2539 gio/gsocket.c:2564
+#: gio/gsocket.c:2631 gio/gsocket.c:2689 gio/gsocket.c:2707
+#, c-format
+msgid "Error joining multicast group: %s"
+msgstr ""
+
+#: gio/gsocket.c:2393 gio/gsocket.c:2430 gio/gsocket.c:2540 gio/gsocket.c:2565
+#: gio/gsocket.c:2632 gio/gsocket.c:2690 gio/gsocket.c:2708
+#, c-format
+msgid "Error leaving multicast group: %s"
+msgstr ""
+
+#: gio/gsocket.c:2394
+msgid "No support for source-specific multicast"
+msgstr ""
+
+#: gio/gsocket.c:2541
+#, fuzzy
+msgid "Unsupported socket family"
+msgstr "_Familie:"
+
+#: gio/gsocket.c:2566
+#, fuzzy
+msgid "source-specific not an IPv4 address"
+msgstr "Adresse IPv4"
+
+#: gio/gsocket.c:2590
+#, fuzzy, c-format
+msgid "Interface name too long"
+msgstr "Li nómine es tre long"
+
+#: gio/gsocket.c:2603 gio/gsocket.c:2657
+#, fuzzy, c-format
+msgid "Interface not found: %s"
+msgstr "«%s» ne esset trovat."
+
+#: gio/gsocket.c:2633
+msgid "No support for IPv4 source-specific multicast"
+msgstr ""
+
+#: gio/gsocket.c:2691
+msgid "No support for IPv6 source-specific multicast"
+msgstr ""
+
+#: gio/gsocket.c:2900
+#, fuzzy, c-format
+msgid "Error accepting connection: %s"
+msgstr "OAuth2: errore de conexion\n"
+
+#: gio/gsocket.c:3026
+#, fuzzy
+msgid "Connection in progress"
+msgstr "Progresse: "
+
+#: gio/gsocket.c:3077
+#, fuzzy
+msgid "Unable to get pending error: "
+msgstr "Ne successat conexer al bus de missages de session"
+
+#: gio/gsocket.c:3266
+#, fuzzy, c-format
+msgid "Error receiving data: %s"
+msgstr "Recivente corruptet data."
+
+#: gio/gsocket.c:3463
+#, fuzzy, c-format
+msgid "Error sending data: %s"
+msgstr "Emissente DATA..."
+
+#: gio/gsocket.c:3650
+#, fuzzy, c-format
+msgid "Unable to shutdown socket: %s"
+msgstr "Ne successat crear un socket"
+
+#: gio/gsocket.c:3731
+#, fuzzy, c-format
+msgid "Error closing socket: %s"
+msgstr "Errore de socket: %1"
+
+#: gio/gsocket.c:4427
+#, fuzzy, c-format
+msgid "Waiting for socket condition: %s"
+msgstr "Ne successat crear un socket: %s"
+
+#: gio/gsocket.c:4817 gio/gsocket.c:4833 gio/gsocket.c:4846
+#, fuzzy, c-format
+msgid "Unable to send message: %s"
+msgstr "Inviar li missage"
+
+#: gio/gsocket.c:4818 gio/gsocket.c:4834 gio/gsocket.c:4847
+#, fuzzy
+msgid "Message vectors too large"
+msgstr "Li file es tro grand por li Paper-corb."
+
+#: gio/gsocket.c:4863 gio/gsocket.c:4865 gio/gsocket.c:5012 gio/gsocket.c:5097
+#: gio/gsocket.c:5275 gio/gsocket.c:5315 gio/gsocket.c:5317
+#, fuzzy, c-format
+msgid "Error sending message: %s"
+msgstr "Inviante li missage med comande: %s\n"
+
+#: gio/gsocket.c:5039
+#, fuzzy
+msgid "GSocketControlMessage not supported on Windows"
+msgstr "KListOpenFilesJob es ínsupportat in Windows"
+
+#: gio/gsocket.c:5512 gio/gsocket.c:5588 gio/gsocket.c:5814
+#, fuzzy, c-format
+msgid "Error receiving message: %s"
+msgstr ""
+"%s:\n"
+"Reception %s\n"
+"Emission %s"
+
+#: gio/gsocket.c:6099 gio/gsocket.c:6110 gio/gsocket.c:6173
+#, c-format
+msgid "Unable to read socket credentials: %s"
+msgstr ""
+
+#: gio/gsocket.c:6182
+msgid "g_socket_get_credentials not implemented for this OS"
+msgstr ""
+
+#: gio/gsocketclient.c:193
+#, fuzzy, c-format
+msgid "Could not connect to proxy server %s: "
+msgstr "Ne successat conexer a %s"
+
+#: gio/gsocketclient.c:207
+#, fuzzy, c-format
+msgid "Could not connect to %s: "
+msgstr "Ne successat conexer a %s"
+
+#: gio/gsocketclient.c:209
+#, fuzzy
+msgid "Could not connect: "
+msgstr "Ne successat conexer a %s"
+
+#: gio/gsocketclient.c:1204 gio/gsocketclient.c:1807
+msgid "Proxying over a non-TCP connection is not supported."
+msgstr ""
+
+#: gio/gsocketclient.c:1236 gio/gsocketclient.c:1836
+#, fuzzy, c-format
+msgid "Proxy protocol “%s” is not supported."
+msgstr "Li protocol %1 ne es supportat."
+
+#: gio/gsocketlistener.c:232
+#, fuzzy
+msgid "Listener is already closed"
+msgstr "Cluder cartes"
+
+#: gio/gsocketlistener.c:278
+#, fuzzy
+msgid "Added socket is closed"
+msgstr "Cludet"
+
+#: gio/gsocks4aproxy.c:120
+#, c-format
+msgid "SOCKSv4 does not support IPv6 address “%s”"
+msgstr ""
+
+#: gio/gsocks4aproxy.c:138
+msgid "Username is too long for SOCKSv4 protocol"
+msgstr ""
+
+#: gio/gsocks4aproxy.c:155
+#, c-format
+msgid "Hostname “%s” is too long for SOCKSv4 protocol"
+msgstr ""
+
+#: gio/gsocks4aproxy.c:181
+#, fuzzy
+msgid "The server is not a SOCKSv4 proxy server."
+msgstr "<b>Servitore Proxy</b>"
+
+#: gio/gsocks4aproxy.c:188
+msgid "Connection through SOCKSv4 server was rejected"
+msgstr ""
+
+#: gio/gsocks5proxy.c:155 gio/gsocks5proxy.c:340 gio/gsocks5proxy.c:350
+#, fuzzy
+msgid "The server is not a SOCKSv5 proxy server."
+msgstr "<b>Servitore Proxy</b>"
+
+#: gio/gsocks5proxy.c:169 gio/gsocks5proxy.c:186
+#, fuzzy
+msgid "The SOCKSv5 proxy requires authentication."
+msgstr "Autentication del proxy ne successat."
+
+#: gio/gsocks5proxy.c:193
+msgid ""
+"The SOCKSv5 proxy requires an authentication method that is not supported by "
+"GLib."
+msgstr ""
+
+#: gio/gsocks5proxy.c:222
+msgid "Username or password is too long for SOCKSv5 protocol."
+msgstr ""
+
+#: gio/gsocks5proxy.c:252
+msgid "SOCKSv5 authentication failed due to wrong username or password."
+msgstr ""
+
+#: gio/gsocks5proxy.c:302
+#, c-format
+msgid "Hostname “%s” is too long for SOCKSv5 protocol"
+msgstr ""
+
+#: gio/gsocks5proxy.c:364
+msgid "The SOCKSv5 proxy server uses unknown address type."
+msgstr ""
+
+#: gio/gsocks5proxy.c:371
+#, fuzzy
+msgid "Internal SOCKSv5 proxy server error."
+msgstr ""
+"Errore intern in li servitor\n"
+"%1"
+
+#: gio/gsocks5proxy.c:377
+msgid "SOCKSv5 connection not allowed by ruleset."
+msgstr ""
+
+#: gio/gsocks5proxy.c:384
+msgid "Host unreachable through SOCKSv5 server."
+msgstr ""
+
+#: gio/gsocks5proxy.c:390
+msgid "Network unreachable through SOCKSv5 proxy."
+msgstr ""
+
+#: gio/gsocks5proxy.c:396
+msgid "Connection refused through SOCKSv5 proxy."
+msgstr ""
+
+#: gio/gsocks5proxy.c:402
+msgid "SOCKSv5 proxy does not support “connect” command."
+msgstr ""
+
+#: gio/gsocks5proxy.c:408
+msgid "SOCKSv5 proxy does not support provided address type."
+msgstr ""
+
+#: gio/gsocks5proxy.c:414
+#, fuzzy
+msgid "Unknown SOCKSv5 proxy error."
+msgstr ""
+"Ínconosset host de proxy\n"
+"%1"
+
+#: gio/gtestdbus.c:614 glib/gspawn-win32.c:354
+#, c-format
+msgid "Failed to create pipe for communicating with child process (%s)"
+msgstr ""
+
+#: gio/gtestdbus.c:621
+#, fuzzy, c-format
+msgid "Pipes are not supported in this platform"
+msgstr "Platforme"
+
+#: gio/gthemedicon.c:597
+#, c-format
+msgid "Can’t handle version %d of GThemedIcon encoding"
+msgstr ""
+
+#: gio/gthreadedresolver.c:154
+#, fuzzy
+msgid "No valid addresses were found"
+msgstr "Null provisores de sercha esset trovat."
+
+#: gio/gthreadedresolver.c:339
+#, fuzzy, c-format
+msgid "Error reverse-resolving “%s”: %s"
+msgstr "Un errore evenit leente «%s»: %s"
+
+#. Translators: the placeholder is a DNS record type, such as ‘MX’ or ‘SRV’
+#: gio/gthreadedresolver.c:552 gio/gthreadedresolver.c:574
+#: gio/gthreadedresolver.c:612 gio/gthreadedresolver.c:659
+#: gio/gthreadedresolver.c:688 gio/gthreadedresolver.c:700
+#, c-format
+msgid "Error parsing DNS %s record: malformed DNS packet"
+msgstr ""
+
+#: gio/gthreadedresolver.c:758 gio/gthreadedresolver.c:895
+#: gio/gthreadedresolver.c:993 gio/gthreadedresolver.c:1043
+#, c-format
+msgid "No DNS record of the requested type for “%s”"
+msgstr ""
+
+#: gio/gthreadedresolver.c:763 gio/gthreadedresolver.c:998
+#, fuzzy, c-format
+msgid "Temporarily unable to resolve “%s”"
+msgstr "Ne successat monter %s"
+
+#: gio/gthreadedresolver.c:768 gio/gthreadedresolver.c:1003
+#: gio/gthreadedresolver.c:1113
+#, fuzzy, c-format
+msgid "Error resolving “%s”"
+msgstr "Resolution de dependenties"
+
+#: gio/gthreadedresolver.c:782 gio/gthreadedresolver.c:806
+#: gio/gthreadedresolver.c:831 gio/gthreadedresolver.c:846
+#, fuzzy
+msgid "Malformed DNS packet"
+msgstr "Protocol NTLM e signation de paquettes"
+
+#: gio/gthreadedresolver.c:888
+#, fuzzy, c-format
+msgid "Failed to parse DNS response for “%s”: "
+msgstr "Ne successat analisar li contenete de «%s»: %s"
+
+#: gio/gtlscertificate.c:480
+#, fuzzy
+msgid "No PEM-encoded private key found"
+msgstr "Null certificat o clave privat esset trovat."
+
+#: gio/gtlscertificate.c:490
+msgid "Cannot decrypt PEM-encoded private key"
+msgstr ""
+
+#: gio/gtlscertificate.c:501
+msgid "Could not parse PEM-encoded private key"
+msgstr ""
+
+#: gio/gtlscertificate.c:528
+msgid "No PEM-encoded certificate found"
+msgstr ""
+
+#: gio/gtlscertificate.c:537
+msgid "Could not parse PEM-encoded certificate"
+msgstr ""
+
+#: gio/gtlscertificate.c:800
+msgid "The current TLS backend does not support PKCS #12"
+msgstr ""
+
+#: gio/gtlscertificate.c:1017
+msgid "This GTlsBackend does not support creating PKCS #11 certificates"
+msgstr ""
+
+#: gio/gtlspassword.c:113
+msgid ""
+"This is the last chance to enter the password correctly before your access "
+"is locked out."
+msgstr ""
+
+#. Translators: This is not the 'This is the last chance' string. It is
+#. * displayed when more than one attempt is allowed.
+#: gio/gtlspassword.c:117
+msgid ""
+"Several passwords entered have been incorrect, and your access will be "
+"locked out after further failures."
+msgstr ""
+
+#: gio/gtlspassword.c:119
+#, fuzzy
+msgid "The password entered is incorrect."
+msgstr "Ti-ci contrasigne esset íncorect."
+
+#: gio/gunixconnection.c:127
+#, fuzzy
+msgid "Sending FD is not supported"
+msgstr "FD"
+
+#: gio/gunixconnection.c:180 gio/gunixconnection.c:598
+#, c-format
+msgid "Expecting 1 control message, got %d"
+msgid_plural "Expecting 1 control message, got %d"
+msgstr[0] ""
+msgstr[1] ""
+
+#: gio/gunixconnection.c:196 gio/gunixconnection.c:610
+msgid "Unexpected type of ancillary data"
+msgstr ""
+
+#: gio/gunixconnection.c:214
+#, c-format
+msgid "Expecting one fd, but got %d\n"
+msgid_plural "Expecting one fd, but got %d\n"
+msgstr[0] ""
+msgstr[1] ""
+
+#: gio/gunixconnection.c:233
+#, fuzzy
+msgid "Received invalid fd"
+msgstr "FD"
+
+#: gio/gunixconnection.c:240
+#, fuzzy
+msgid "Receiving FD is not supported"
+msgstr "Recivente"
+
+#: gio/gunixconnection.c:382
+#, fuzzy
+msgid "Error sending credentials: "
+msgstr "Un errore evenit inviante li signale"
+
+#: gio/gunixconnection.c:539
+#, c-format
+msgid "Error checking if SO_PASSCRED is enabled for socket: %s"
+msgstr ""
+
+#: gio/gunixconnection.c:555
+#, c-format
+msgid "Error enabling SO_PASSCRED: %s"
+msgstr ""
+
+#: gio/gunixconnection.c:584
+msgid ""
+"Expecting to read a single byte for receiving credentials but read zero bytes"
+msgstr ""
+
+#: gio/gunixconnection.c:624
+#, c-format
+msgid "Not expecting control message, but got %d"
+msgstr ""
+
+#: gio/gunixconnection.c:649
+#, c-format
+msgid "Error while disabling SO_PASSCRED: %s"
+msgstr ""
+
+#: gio/gunixinputstream.c:359 gio/gunixinputstream.c:380
+#, c-format
+msgid "Error reading from file descriptor: %s"
+msgstr ""
+
+#: gio/gunixinputstream.c:413 gio/gunixoutputstream.c:522
+#: gio/gwin32inputstream.c:219 gio/gwin32outputstream.c:206
+#, fuzzy, c-format
+msgid "Error closing file descriptor: %s"
+msgstr "Un errore evenit revertente li file %s"
+
+#: gio/gunixmounts.c:2815 gio/gunixmounts.c:2868
+#, fuzzy
+msgid "Filesystem root"
+msgstr "Orígine del fil-sistema"
+
+#: gio/gunixoutputstream.c:359 gio/gunixoutputstream.c:379
+#: gio/gunixoutputstream.c:466 gio/gunixoutputstream.c:486
+#: gio/gunixoutputstream.c:632
+#, fuzzy, c-format
+msgid "Error writing to file descriptor: %s"
+msgstr "Un errore evenit scriente li file PO: %s"
+
+#: gio/gunixsocketaddress.c:253
+msgid "Abstract UNIX domain socket addresses not supported on this system"
+msgstr ""
+
+#: gio/gvolume.c:440
+#, fuzzy
+msgid "volume doesn’t implement eject"
+msgstr "Ejecter li selectet volume"
+
+#. Translators: This is an error
+#. * message for volume objects that
+#. * don't implement any of eject or eject_with_operation.
+#: gio/gvolume.c:517
+#, fuzzy
+msgid "volume doesn’t implement eject or eject_with_operation"
+msgstr "Ejecter li selectet volume"
+
+#: gio/gwin32inputstream.c:187
+#, fuzzy, c-format
+msgid "Error reading from handle: %s"
+msgstr "Un errore evenit leente «%s»: %s"
+
+#: gio/gwin32inputstream.c:234 gio/gwin32outputstream.c:221
+#, fuzzy, c-format
+msgid "Error closing handle: %s"
+msgstr "Ínconosset final element <%s>"
+
+#: gio/gwin32outputstream.c:174
+#, fuzzy, c-format
+msgid "Error writing to handle: %s"
+msgstr "Un errore evenit registrante un ISO: %s"
+
+#: gio/gzlibcompressor.c:396 gio/gzlibdecompressor.c:349
+#, fuzzy
+msgid "Not enough memory"
+msgstr "Memorie exhaustet"
+
+#: gio/gzlibcompressor.c:403 gio/gzlibdecompressor.c:356
+#, c-format
+msgid "Internal error: %s"
+msgstr "Errore intern: %s"
+
+#: gio/gzlibcompressor.c:416 gio/gzlibdecompressor.c:370
+#, fuzzy
+msgid "Need more input"
+msgstr "_Plu..."
+
+#: gio/gzlibdecompressor.c:342
+#, fuzzy
+msgid "Invalid compressed data"
+msgstr "Ínvalid compresset data"
+
+#: gio/tests/gdbus-daemon.c:18
+#, fuzzy
+msgid "Address to listen on"
+msgstr "listen ne successat"
+
+#: gio/tests/gdbus-daemon.c:19
+#, fuzzy
+msgid "Ignored, for compat with GTestDbus"
+msgstr "Ignorat:"
+
+#: gio/tests/gdbus-daemon.c:20
+#, fuzzy
+msgid "Print address"
+msgstr "_Printar..."
+
+#: gio/tests/gdbus-daemon.c:21
+msgid "Print address in shell mode"
+msgstr ""
+
+#: gio/tests/gdbus-daemon.c:28
+#, fuzzy
+msgid "Run a dbus service"
+msgstr "DBus"
+
+#: gio/tests/gdbus-daemon.c:42
+#, fuzzy
+msgid "Wrong args\n"
+msgstr "SIM es íncorrect"
+
+#: glib/gbookmarkfile.c:779
+#, fuzzy, c-format
+msgid "Unexpected attribute “%s” for element “%s”"
+msgstr "Ínconosset atribute %s de elemente <%s>"
+
+#: glib/gbookmarkfile.c:790 glib/gbookmarkfile.c:870 glib/gbookmarkfile.c:880
+#: glib/gbookmarkfile.c:993
+#, fuzzy, c-format
+msgid "Attribute “%s” of element “%s” not found"
+msgstr "Mancant atribute «%s» de elemente <%s>"
+
+#: glib/gbookmarkfile.c:1202 glib/gbookmarkfile.c:1267
+#: glib/gbookmarkfile.c:1331 glib/gbookmarkfile.c:1341
+#, fuzzy, c-format
+msgid "Unexpected tag “%s”, tag “%s” expected"
+msgstr "Tag <%s> ne posse contener li tag <%s>"
+
+#: glib/gbookmarkfile.c:1227 glib/gbookmarkfile.c:1241
+#: glib/gbookmarkfile.c:1309 glib/gbookmarkfile.c:1355
+#, fuzzy, c-format
+msgid "Unexpected tag “%s” inside “%s”"
+msgstr "Un ínexpectat errore: %s"
+
+#: glib/gbookmarkfile.c:1635
+#, c-format
+msgid "Invalid date/time ‘%s’ in bookmark file"
+msgstr ""
+
+#: glib/gbookmarkfile.c:1838
+msgid "No valid bookmark file found in data dirs"
+msgstr ""
+
+#: glib/gbookmarkfile.c:2039
+#, fuzzy, c-format
+msgid "A bookmark for URI “%s” already exists"
+msgstr "%s: %s ja existe in li sistema de files"
+
+#: glib/gbookmarkfile.c:2088 glib/gbookmarkfile.c:2246
+#: glib/gbookmarkfile.c:2331 glib/gbookmarkfile.c:2411
+#: glib/gbookmarkfile.c:2496 glib/gbookmarkfile.c:2630
+#: glib/gbookmarkfile.c:2763 glib/gbookmarkfile.c:2898
+#: glib/gbookmarkfile.c:2940 glib/gbookmarkfile.c:3037
+#: glib/gbookmarkfile.c:3158 glib/gbookmarkfile.c:3352
+#: glib/gbookmarkfile.c:3493 glib/gbookmarkfile.c:3712
+#: glib/gbookmarkfile.c:3801 glib/gbookmarkfile.c:3890
+#: glib/gbookmarkfile.c:4009
+#, fuzzy, c-format
+msgid "No bookmark found for URI “%s”"
+msgstr "uri: %s\n"
+
+#: glib/gbookmarkfile.c:2420
+#, c-format
+msgid "No MIME type defined in the bookmark for URI “%s”"
+msgstr ""
+
+#: glib/gbookmarkfile.c:2505
+#, c-format
+msgid "No private flag has been defined in bookmark for URI “%s”"
+msgstr ""
+
+#: glib/gbookmarkfile.c:3046
+#, fuzzy, c-format
+msgid "No groups set in bookmark for URI “%s”"
+msgstr "%s ne esset trovat"
+
+#: glib/gbookmarkfile.c:3514 glib/gbookmarkfile.c:3722
+#, fuzzy, c-format
+msgid "No application with name “%s” registered a bookmark for “%s”"
+msgstr "%s: nómine de application manca"
+
+#: glib/gbookmarkfile.c:3745
+#, c-format
+msgid "Failed to expand exec line “%s” with URI “%s”"
+msgstr ""
+
+#: glib/gconvert.c:470
+#, fuzzy
+msgid "Unrepresentable character in conversion input"
+msgstr "Ne successat converter caracteres por «%s»"
+
+#: glib/gconvert.c:497 glib/gutf8.c:888 glib/gutf8.c:1101 glib/gutf8.c:1238
+#: glib/gutf8.c:1342
+msgid "Partial character sequence at end of input"
+msgstr ""
+
+#: glib/gconvert.c:768
+#, fuzzy, c-format
+msgid "Cannot convert fallback “%s” to codeset “%s”"
+msgstr "Ne posset converter a «%s»"
+
+#: glib/gconvert.c:940
+#, fuzzy
+msgid "Embedded NUL byte in conversion input"
+msgstr "Ínvalid sequentie de octetes in li intrada de conversion"
+
+#: glib/gconvert.c:961
+msgid "Embedded NUL byte in conversion output"
+msgstr ""
+
+#: glib/gconvert.c:1692
+#, c-format
+msgid "The URI “%s” is not an absolute URI using the “file” scheme"
+msgstr ""
+
+#: glib/gconvert.c:1702
+#, c-format
+msgid "The local file URI “%s” may not include a “#”"
+msgstr ""
+
+#: glib/gconvert.c:1719
+#, fuzzy, c-format
+msgid "The URI “%s” is invalid"
+msgstr "uri: %s\n"
+
+#: glib/gconvert.c:1731
+#, fuzzy, c-format
+msgid "The hostname of the URI “%s” is invalid"
+msgstr "uri: %s\n"
+
+#: glib/gconvert.c:1747
+#, c-format
+msgid "The URI “%s” contains invalidly escaped characters"
+msgstr ""
+
+#: glib/gconvert.c:1819
+#, fuzzy, c-format
+msgid "The pathname “%s” is not an absolute path"
+msgstr "Li directoria de labor deve esser un absolut rute"
+
+#. Translators: this is the preferred format for expressing the date and the time
+#: glib/gdatetime.c:228
+#, fuzzy
+msgctxt "GDateTime"
+msgid "%a %b %e %H:%M:%S %Y"
+msgstr "%-e %b %Y %H:%M"
+
+#. Translators: this is the preferred format for expressing the date
+#: glib/gdatetime.c:231
+msgctxt "GDateTime"
+msgid "%m/%d/%y"
+msgstr "%d.%m.%y"
+
+#. Translators: this is the preferred format for expressing the time
+#: glib/gdatetime.c:234
+msgctxt "GDateTime"
+msgid "%H:%M:%S"
+msgstr "%H:%M:%S"
+
+#. Translators: this is the preferred format for expressing 12 hour time
+#: glib/gdatetime.c:237
+msgctxt "GDateTime"
+msgid "%I:%M:%S %p"
+msgstr "%I:%M:%S %p"
+
+#. Translators: Some languages (Baltic, Slavic, Greek, and some more)
+#. * need different grammatical forms of month names depending on whether
+#. * they are standalone or in a complete date context, with the day
+#. * number. Some other languages may prefer starting with uppercase when
+#. * they are standalone and with lowercase when they are in a complete
+#. * date context. Here are full month names in a form appropriate when
+#. * they are used standalone. If your system is Linux with the glibc
+#. * version 2.27 (released Feb 1, 2018) or newer or if it is from the BSD
+#. * family (which includes OS X) then you can refer to the date command
+#. * line utility and see what the command `date +%OB' produces. Also in
+#. * the latest Linux the command `locale alt_mon' in your native locale
+#. * produces a complete list of month names almost ready to copy and
+#. * paste here. Note that in most of the languages (western European,
+#. * non-European) there is no difference between the standalone and
+#. * complete date form.
+#.
+#: glib/gdatetime.c:276
+msgctxt "full month name"
+msgid "January"
+msgstr "Januar"
+
+#: glib/gdatetime.c:278
+msgctxt "full month name"
+msgid "February"
+msgstr "Februar"
+
+#: glib/gdatetime.c:280
+#, fuzzy
+msgctxt "full month name"
+msgid "March"
+msgstr "Marte"
+
+#: glib/gdatetime.c:282
+#, fuzzy
+msgctxt "full month name"
+msgid "April"
+msgstr "April"
+
+#: glib/gdatetime.c:284
+#, fuzzy
+msgctxt "full month name"
+msgid "May"
+msgstr "May"
+
+#: glib/gdatetime.c:286
+msgctxt "full month name"
+msgid "June"
+msgstr "Junio"
+
+#: glib/gdatetime.c:288
+msgctxt "full month name"
+msgid "July"
+msgstr "Julí"
+
+#: glib/gdatetime.c:290
+msgctxt "full month name"
+msgid "August"
+msgstr "August"
+
+#: glib/gdatetime.c:292
+msgctxt "full month name"
+msgid "September"
+msgstr "Septembre"
+
+#: glib/gdatetime.c:294
+msgctxt "full month name"
+msgid "October"
+msgstr "Octobre"
+
+#: glib/gdatetime.c:296
+#, fuzzy
+msgctxt "full month name"
+msgid "November"
+msgstr "Novembre"
+
+#: glib/gdatetime.c:298
+msgctxt "full month name"
+msgid "December"
+msgstr "Decembre"
+
+#. Translators: Some languages need different grammatical forms of
+#. * month names depending on whether they are standalone or in a complete
+#. * date context, with the day number. Some may prefer starting with
+#. * uppercase when they are standalone and with lowercase when they are
+#. * in a full date context. However, as these names are abbreviated
+#. * the grammatical difference is visible probably only in Belarusian
+#. * and Russian. In other languages there is no difference between
+#. * the standalone and complete date form when they are abbreviated.
+#. * If your system is Linux with the glibc version 2.27 (released
+#. * Feb 1, 2018) or newer then you can refer to the date command line
+#. * utility and see what the command `date +%Ob' produces. Also in
+#. * the latest Linux the command `locale ab_alt_mon' in your native
+#. * locale produces a complete list of month names almost ready to copy
+#. * and paste here. Note that this feature is not yet supported by any
+#. * other platform. Here are abbreviated month names in a form
+#. * appropriate when they are used standalone.
+#.
+#: glib/gdatetime.c:330
+#, fuzzy
+msgctxt "abbreviated month name"
+msgid "Jan"
+msgstr "jan"
+
+#: glib/gdatetime.c:332
+#, fuzzy
+msgctxt "abbreviated month name"
+msgid "Feb"
+msgstr "feb"
+
+#: glib/gdatetime.c:334
+#, fuzzy
+msgctxt "abbreviated month name"
+msgid "Mar"
+msgstr "Mar"
+
+#: glib/gdatetime.c:336
+#, fuzzy
+msgctxt "abbreviated month name"
+msgid "Apr"
+msgstr "apr"
+
+#: glib/gdatetime.c:338
+#, fuzzy
+msgctxt "abbreviated month name"
+msgid "May"
+msgstr "May"
+
+#: glib/gdatetime.c:340
+#, fuzzy
+msgctxt "abbreviated month name"
+msgid "Jun"
+msgstr "Jun"
+
+#: glib/gdatetime.c:342
+#, fuzzy
+msgctxt "abbreviated month name"
+msgid "Jul"
+msgstr "jul"
+
+#: glib/gdatetime.c:344
+#, fuzzy
+msgctxt "abbreviated month name"
+msgid "Aug"
+msgstr "Aug"
+
+#: glib/gdatetime.c:346
+#, fuzzy
+msgctxt "abbreviated month name"
+msgid "Sep"
+msgstr "sep"
+
+#: glib/gdatetime.c:348
+msgctxt "abbreviated month name"
+msgid "Oct"
+msgstr "Oct"
+
+#: glib/gdatetime.c:350
+#, fuzzy
+msgctxt "abbreviated month name"
+msgid "Nov"
+msgstr "nov"
+
+#: glib/gdatetime.c:352
+#, fuzzy
+msgctxt "abbreviated month name"
+msgid "Dec"
+msgstr "dec"
+
+#: glib/gdatetime.c:367
+msgctxt "full weekday name"
+msgid "Monday"
+msgstr "Lunedí"
+
+#: glib/gdatetime.c:369
+msgctxt "full weekday name"
+msgid "Tuesday"
+msgstr "Mardí"
+
+#: glib/gdatetime.c:371
+msgctxt "full weekday name"
+msgid "Wednesday"
+msgstr "Mercurdí"
+
+#: glib/gdatetime.c:373
+msgctxt "full weekday name"
+msgid "Thursday"
+msgstr "Jovedí"
+
+#: glib/gdatetime.c:375
+msgctxt "full weekday name"
+msgid "Friday"
+msgstr "Venerdí"
+
+#: glib/gdatetime.c:377
+msgctxt "full weekday name"
+msgid "Saturday"
+msgstr "Saturdí"
+
+#: glib/gdatetime.c:379
+msgctxt "full weekday name"
+msgid "Sunday"
+msgstr "Soledí"
+
+#: glib/gdatetime.c:394
+msgctxt "abbreviated weekday name"
+msgid "Mon"
+msgstr "Lu"
+
+#: glib/gdatetime.c:396
+#, fuzzy
+msgctxt "abbreviated weekday name"
+msgid "Tue"
+msgstr "Ma"
+
+#: glib/gdatetime.c:398
+#, fuzzy
+msgctxt "abbreviated weekday name"
+msgid "Wed"
+msgstr "Me"
+
+#: glib/gdatetime.c:400
+#, fuzzy
+msgctxt "abbreviated weekday name"
+msgid "Thu"
+msgstr "Jo"
+
+#: glib/gdatetime.c:402
+#, fuzzy
+msgctxt "abbreviated weekday name"
+msgid "Fri"
+msgstr "Ve"
+
+#: glib/gdatetime.c:404
+msgctxt "abbreviated weekday name"
+msgid "Sat"
+msgstr "Sa"
+
+#: glib/gdatetime.c:406
+msgctxt "abbreviated weekday name"
+msgid "Sun"
+msgstr "So"
+
+#. Translators: Some languages need different grammatical forms of
+#. * month names depending on whether they are standalone or in a full
+#. * date context, with the day number. Some may prefer starting with
+#. * uppercase when they are standalone and with lowercase when they are
+#. * in a full date context. Here are full month names in a form
+#. * appropriate when they are used in a full date context, with the
+#. * day number. If your system is Linux with the glibc version 2.27
+#. * (released Feb 1, 2018) or newer or if it is from the BSD family
+#. * (which includes OS X) then you can refer to the date command line
+#. * utility and see what the command `date +%B' produces. Also in
+#. * the latest Linux the command `locale mon' in your native locale
+#. * produces a complete list of month names almost ready to copy and
+#. * paste here. In older Linux systems due to a bug the result is
+#. * incorrect in some languages. Note that in most of the languages
+#. * (western European, non-European) there is no difference between the
+#. * standalone and complete date form.
+#.
+#: glib/gdatetime.c:470
+#, fuzzy
+#| msgctxt "full month name"
+#| msgid "January"
+msgctxt "full month name with day"
+msgid "January"
+msgstr "Januar"
+
+#: glib/gdatetime.c:472
+#, fuzzy
+#| msgctxt "full month name"
+#| msgid "February"
+msgctxt "full month name with day"
+msgid "February"
+msgstr "Februar"
+
+#: glib/gdatetime.c:474
+#, fuzzy
+msgctxt "full month name with day"
+msgid "March"
+msgstr "Marte"
+
+#: glib/gdatetime.c:476
+#, fuzzy
+msgctxt "full month name with day"
+msgid "April"
+msgstr "April"
+
+#: glib/gdatetime.c:478
+#, fuzzy
+msgctxt "full month name with day"
+msgid "May"
+msgstr "May"
+
+#: glib/gdatetime.c:480
+#, fuzzy
+#| msgctxt "full month name"
+#| msgid "June"
+msgctxt "full month name with day"
+msgid "June"
+msgstr "Junio"
+
+#: glib/gdatetime.c:482
+#, fuzzy
+#| msgctxt "full month name"
+#| msgid "July"
+msgctxt "full month name with day"
+msgid "July"
+msgstr "Julí"
+
+#: glib/gdatetime.c:484
+#, fuzzy
+#| msgctxt "full month name"
+#| msgid "August"
+msgctxt "full month name with day"
+msgid "August"
+msgstr "August"
+
+#: glib/gdatetime.c:486
+#, fuzzy
+#| msgctxt "full month name"
+#| msgid "September"
+msgctxt "full month name with day"
+msgid "September"
+msgstr "Septembre"
+
+#: glib/gdatetime.c:488
+#, fuzzy
+#| msgctxt "full month name"
+#| msgid "October"
+msgctxt "full month name with day"
+msgid "October"
+msgstr "Octobre"
+
+#: glib/gdatetime.c:490
+#, fuzzy
+msgctxt "full month name with day"
+msgid "November"
+msgstr "Novembre"
+
+#: glib/gdatetime.c:492
+#, fuzzy
+#| msgctxt "full month name"
+#| msgid "December"
+msgctxt "full month name with day"
+msgid "December"
+msgstr "Decembre"
+
+#. Translators: Some languages need different grammatical forms of
+#. * month names depending on whether they are standalone or in a full
+#. * date context, with the day number. Some may prefer starting with
+#. * uppercase when they are standalone and with lowercase when they are
+#. * in a full date context. Here are abbreviated month names in a form
+#. * appropriate when they are used in a full date context, with the
+#. * day number. However, as these names are abbreviated the grammatical
+#. * difference is visible probably only in Belarusian and Russian.
+#. * In other languages there is no difference between the standalone
+#. * and complete date form when they are abbreviated. If your system
+#. * is Linux with the glibc version 2.27 (released Feb 1, 2018) or newer
+#. * then you can refer to the date command line utility and see what the
+#. * command `date +%b' produces. Also in the latest Linux the command
+#. * `locale abmon' in your native locale produces a complete list of
+#. * month names almost ready to copy and paste here. In other systems
+#. * due to a bug the result is incorrect in some languages.
+#.
+#: glib/gdatetime.c:557
+#, fuzzy
+msgctxt "abbreviated month name with day"
+msgid "Jan"
+msgstr "jan"
+
+#: glib/gdatetime.c:559
+#, fuzzy
+msgctxt "abbreviated month name with day"
+msgid "Feb"
+msgstr "feb"
+
+#: glib/gdatetime.c:561
+#, fuzzy
+msgctxt "abbreviated month name with day"
+msgid "Mar"
+msgstr "Mar"
+
+#: glib/gdatetime.c:563
+#, fuzzy
+msgctxt "abbreviated month name with day"
+msgid "Apr"
+msgstr "apr"
+
+#: glib/gdatetime.c:565
+#, fuzzy
+msgctxt "abbreviated month name with day"
+msgid "May"
+msgstr "May"
+
+#: glib/gdatetime.c:567
+#, fuzzy
+#| msgctxt "full month name"
+#| msgid "June"
+msgctxt "abbreviated month name with day"
+msgid "Jun"
+msgstr "Jun"
+
+#: glib/gdatetime.c:569
+#, fuzzy
+#| msgctxt "full month name"
+#| msgid "July"
+msgctxt "abbreviated month name with day"
+msgid "Jul"
+msgstr "jul"
+
+#: glib/gdatetime.c:571
+#, fuzzy
+#| msgctxt "full month name"
+#| msgid "August"
+msgctxt "abbreviated month name with day"
+msgid "Aug"
+msgstr "Aug"
+
+#: glib/gdatetime.c:573
+#, fuzzy
+msgctxt "abbreviated month name with day"
+msgid "Sep"
+msgstr "sep"
+
+#: glib/gdatetime.c:575
+#, fuzzy
+#| msgctxt "abbreviated month name"
+#| msgid "Oct"
+msgctxt "abbreviated month name with day"
+msgid "Oct"
+msgstr "Oct"
+
+#: glib/gdatetime.c:577
+#, fuzzy
+msgctxt "abbreviated month name with day"
+msgid "Nov"
+msgstr "nov"
+
+#: glib/gdatetime.c:579
+#, fuzzy
+msgctxt "abbreviated month name with day"
+msgid "Dec"
+msgstr "dec"
+
+#. Translators: 'before midday' indicator
+#: glib/gdatetime.c:596
+msgctxt "GDateTime"
+msgid "AM"
+msgstr "AM"
+
+#. Translators: 'after midday' indicator
+#: glib/gdatetime.c:599
+msgctxt "GDateTime"
+msgid "PM"
+msgstr "PM"
+
+#: glib/gdir.c:158
+#, fuzzy, c-format
+msgid "Error opening directory “%s”: %s"
+msgstr "Ne successat aperter un file %s."
+
+#: glib/gfileutils.c:735 glib/gfileutils.c:827
+#, c-format
+msgid "Could not allocate %lu byte to read file “%s”"
+msgid_plural "Could not allocate %lu bytes to read file “%s”"
+msgstr[0] ""
+msgstr[1] ""
+
+#: glib/gfileutils.c:752
+#, fuzzy, c-format
+msgid "Error reading file “%s”: %s"
+msgstr "Un errore evenit leente «%s»: %s"
+
+#: glib/gfileutils.c:788
+#, fuzzy, c-format
+msgid "File “%s” is too large"
+msgstr "Li file es tro grand por li Paper-corb."
+
+#: glib/gfileutils.c:852
+#, fuzzy, c-format
+msgid "Failed to read from file “%s”: %s"
+msgstr "Ne successat leer li file «%s»: %s"
+
+#: glib/gfileutils.c:902 glib/gfileutils.c:977 glib/gfileutils.c:1449
+#, fuzzy, c-format
+msgid "Failed to open file “%s”: %s"
+msgstr "Ne successat aperter li file «%s»: %s"
+
+#: glib/gfileutils.c:915
+#, c-format
+msgid "Failed to get attributes of file “%s”: fstat() failed: %s"
+msgstr ""
+
+#: glib/gfileutils.c:946
+#, fuzzy, c-format
+msgid "Failed to open file “%s”: fdopen() failed: %s"
+msgstr "Ne successat aperter li file «%s»: %s"
+
+#: glib/gfileutils.c:1047
+#, c-format
+msgid "Failed to rename file “%s” to “%s”: g_rename() failed: %s"
+msgstr ""
+
+#: glib/gfileutils.c:1156
+#, fuzzy, c-format
+msgid "Failed to write file “%s”: write() failed: %s"
+msgstr "Ne posset crear un file temporari por salvar: %s"
+
+#: glib/gfileutils.c:1177
+#, fuzzy, c-format
+msgid "Failed to write file “%s”: fsync() failed: %s"
+msgstr "Ne posset crear un file temporari por salvar: %s"
+
+#: glib/gfileutils.c:1338 glib/gfileutils.c:1753
+#, fuzzy, c-format
+msgid "Failed to create file “%s”: %s"
+msgstr "Ne successat crear un vacui file «%s»: %s"
+
+#: glib/gfileutils.c:1383
+#, c-format
+msgid "Existing file “%s” could not be removed: g_unlink() failed: %s"
+msgstr ""
+
+#: glib/gfileutils.c:1718
+#, c-format
+msgid "Template “%s” invalid, should not contain a “%s”"
+msgstr ""
+
+#: glib/gfileutils.c:1731
+#, c-format
+msgid "Template “%s” doesn’t contain XXXXXX"
+msgstr ""
+
+#: glib/gfileutils.c:2310 glib/gfileutils.c:2339
+#, fuzzy, c-format
+msgid "Failed to read the symbolic link “%s”: %s"
+msgstr "Ne successat crear un simbolic ligament por «%s»."
+
+#: glib/giochannel.c:1408
+#, fuzzy, c-format
+msgid "Could not open converter from “%s” to “%s”: %s"
+msgstr "Ne successat aperter %s/%s: %s\n"
+
+#: glib/giochannel.c:1761
+msgid "Can’t do a raw read in g_io_channel_read_line_string"
+msgstr ""
+
+#: glib/giochannel.c:1808 glib/giochannel.c:2066 glib/giochannel.c:2153
+msgid "Leftover unconverted data in read buffer"
+msgstr ""
+
+#: glib/giochannel.c:1889 glib/giochannel.c:1966
+msgid "Channel terminates in a partial character"
+msgstr ""
+
+#: glib/giochannel.c:1952
+msgid "Can’t do a raw read in g_io_channel_read_to_end"
+msgstr ""
+
+#: glib/gkeyfile.c:796
+msgid "Valid key file could not be found in search dirs"
+msgstr ""
+
+#: glib/gkeyfile.c:833
+#, fuzzy
+msgid "Not a regular file"
+msgstr "Ne es un file regulari"
+
+#: glib/gkeyfile.c:1291
+#, c-format
+msgid ""
+"Key file contains line “%s” which is not a key-value pair, group, or comment"
+msgstr ""
+
+#: glib/gkeyfile.c:1348
+#, fuzzy, c-format
+msgid "Invalid group name: %s"
+msgstr "Ínvalid gruppe"
+
+#: glib/gkeyfile.c:1372
+msgid "Key file does not start with a group"
+msgstr ""
+
+#: glib/gkeyfile.c:1396
+#, fuzzy, c-format
+msgid "Invalid key name: %.*s"
+msgstr "Li nómine «%s» es ínvalid"
+
+#: glib/gkeyfile.c:1424
+#, c-format
+msgid "Key file contains unsupported encoding “%s”"
+msgstr ""
+
+#: glib/gkeyfile.c:1679 glib/gkeyfile.c:1852 glib/gkeyfile.c:3299
+#: glib/gkeyfile.c:3363 glib/gkeyfile.c:3493 glib/gkeyfile.c:3625
+#: glib/gkeyfile.c:3771 glib/gkeyfile.c:4006 glib/gkeyfile.c:4073
+#, fuzzy, c-format
+msgid "Key file does not have group “%s”"
+msgstr "File %s ne have un extension .wav"
+
+#: glib/gkeyfile.c:1807
+#, c-format
+msgid "Key file does not have key “%s” in group “%s”"
+msgstr ""
+
+#: glib/gkeyfile.c:1969 glib/gkeyfile.c:2085
+#, c-format
+msgid "Key file contains key “%s” with value “%s” which is not UTF-8"
+msgstr ""
+
+#: glib/gkeyfile.c:1989 glib/gkeyfile.c:2105 glib/gkeyfile.c:2544
+#, c-format
+msgid ""
+"Key file contains key “%s” which has a value that cannot be interpreted."
+msgstr ""
+
+#: glib/gkeyfile.c:2759 glib/gkeyfile.c:3128
+#, c-format
+msgid ""
+"Key file contains key “%s” in group “%s” which has a value that cannot be "
+"interpreted."
+msgstr ""
+
+#: glib/gkeyfile.c:2837 glib/gkeyfile.c:2914
+#, c-format
+msgid "Key “%s” in group “%s” has value “%s” where %s was expected"
+msgstr ""
+
+#: glib/gkeyfile.c:4326
+msgid "Key file contains escape character at end of line"
+msgstr ""
+
+#: glib/gkeyfile.c:4348
+#, c-format
+msgid "Key file contains invalid escape sequence “%s”"
+msgstr ""
+
+#: glib/gkeyfile.c:4493
+#, c-format
+msgid "Value “%s” cannot be interpreted as a number."
+msgstr ""
+
+#: glib/gkeyfile.c:4507
+#, c-format
+msgid "Integer value “%s” out of range"
+msgstr ""
+
+#: glib/gkeyfile.c:4540
+#, c-format
+msgid "Value “%s” cannot be interpreted as a float number."
+msgstr ""
+
+#: glib/gkeyfile.c:4579
+#, c-format
+msgid "Value “%s” cannot be interpreted as a boolean."
+msgstr ""
+
+#: glib/gmappedfile.c:131
+#, c-format
+msgid "Failed to get attributes of file “%s%s%s%s”: fstat() failed: %s"
+msgstr ""
+
+#: glib/gmappedfile.c:197
+#, c-format
+msgid "Failed to map %s%s%s%s: mmap() failed: %s"
+msgstr ""
+
+#: glib/gmappedfile.c:264
+#, fuzzy, c-format
+msgid "Failed to open file “%s”: open() failed: %s"
+msgstr "Ne successat aperter li file «%s»: %s"
+
+#: glib/gmarkup.c:400 glib/gmarkup.c:442
+#, fuzzy, c-format
+msgid "Error on line %d char %d: "
+msgstr "File %s - Errore in linea %d caracter %d: "
+
+#: glib/gmarkup.c:464 glib/gmarkup.c:547
+#, c-format
+msgid "Invalid UTF-8 encoded text in name — not valid “%s”"
+msgstr ""
+
+#: glib/gmarkup.c:475
+#, fuzzy, c-format
+msgid "“%s” is not a valid name"
+msgstr "Valid nómine"
+
+#: glib/gmarkup.c:491
+#, fuzzy, c-format
+msgid "“%s” is not a valid name: “%c”"
+msgstr "Valid nómine"
+
+#: glib/gmarkup.c:615
+#, fuzzy, c-format
+msgid "Error on line %d: %s"
+msgstr "Linea %d caracter %d: %s"
+
+#: glib/gmarkup.c:692
+#, c-format
+msgid ""
+"Failed to parse “%-.*s”, which should have been a digit inside a character "
+"reference (&#234; for example) — perhaps the digit is too large"
+msgstr ""
+
+#: glib/gmarkup.c:704
+msgid ""
+"Character reference did not end with a semicolon; most likely you used an "
+"ampersand character without intending to start an entity — escape ampersand "
+"as &amp;"
+msgstr ""
+
+#: glib/gmarkup.c:730
+#, c-format
+msgid "Character reference “%-.*s” does not encode a permitted character"
+msgstr ""
+
+#: glib/gmarkup.c:768
+msgid ""
+"Empty entity “&;” seen; valid entities are: &amp; &quot; &lt; &gt; &apos;"
+msgstr ""
+
+#: glib/gmarkup.c:776
+#, fuzzy, c-format
+msgid "Entity name “%-.*s” is not known"
+msgstr "Nómine de labor-spacie: %s\n"
+
+#: glib/gmarkup.c:781
+msgid ""
+"Entity did not end with a semicolon; most likely you used an ampersand "
+"character without intending to start an entity — escape ampersand as &amp;"
+msgstr ""
+
+#: glib/gmarkup.c:1195
+msgid "Document must begin with an element (e.g. <book>)"
+msgstr ""
+
+#: glib/gmarkup.c:1235
+#, c-format
+msgid ""
+"“%s” is not a valid character following a “<” character; it may not begin an "
+"element name"
+msgstr ""
+
+#: glib/gmarkup.c:1278
+#, c-format
+msgid ""
+"Odd character “%s”, expected a “>” character to end the empty-element tag "
+"“%s”"
+msgstr ""
+
+#: glib/gmarkup.c:1348
+#, c-format
+msgid "Too many attributes in element “%s”"
+msgstr ""
+
+#: glib/gmarkup.c:1368
+#, c-format
+msgid ""
+"Odd character “%s”, expected a “=” after attribute name “%s” of element “%s”"
+msgstr ""
+
+#: glib/gmarkup.c:1410
+#, c-format
+msgid ""
+"Odd character “%s”, expected a “>” or “/” character to end the start tag of "
+"element “%s”, or optionally an attribute; perhaps you used an invalid "
+"character in an attribute name"
+msgstr ""
+
+#: glib/gmarkup.c:1455
+#, c-format
+msgid ""
+"Odd character “%s”, expected an open quote mark after the equals sign when "
+"giving value for attribute “%s” of element “%s”"
+msgstr ""
+
+#: glib/gmarkup.c:1589
+#, c-format
+msgid ""
+"“%s” is not a valid character following the characters “</”; “%s” may not "
+"begin an element name"
+msgstr ""
+
+#: glib/gmarkup.c:1627
+#, c-format
+msgid ""
+"“%s” is not a valid character following the close element name “%s”; the "
+"allowed character is “>”"
+msgstr ""
+
+#: glib/gmarkup.c:1639
+#, c-format
+msgid "Element “%s” was closed, no element is currently open"
+msgstr ""
+
+#: glib/gmarkup.c:1648
+#, c-format
+msgid "Element “%s” was closed, but the currently open element is “%s”"
+msgstr ""
+
+#: glib/gmarkup.c:1801
+#, fuzzy
+msgid "Document was empty or contained only whitespace"
+msgstr "Li textu esset blanc (o contenet solmen spacies)"
+
+#: glib/gmarkup.c:1815
+msgid "Document ended unexpectedly just after an open angle bracket “<”"
+msgstr ""
+
+#: glib/gmarkup.c:1823 glib/gmarkup.c:1868
+#, c-format
+msgid ""
+"Document ended unexpectedly with elements still open — “%s” was the last "
+"element opened"
+msgstr ""
+
+#: glib/gmarkup.c:1831
+#, c-format
+msgid ""
+"Document ended unexpectedly, expected to see a close angle bracket ending "
+"the tag <%s/>"
+msgstr ""
+
+#: glib/gmarkup.c:1837
+msgid "Document ended unexpectedly inside an element name"
+msgstr ""
+
+#: glib/gmarkup.c:1843
+msgid "Document ended unexpectedly inside an attribute name"
+msgstr ""
+
+#: glib/gmarkup.c:1848
+msgid "Document ended unexpectedly inside an element-opening tag."
+msgstr ""
+
+#: glib/gmarkup.c:1854
+msgid ""
+"Document ended unexpectedly after the equals sign following an attribute "
+"name; no attribute value"
+msgstr ""
+
+#: glib/gmarkup.c:1861
+msgid "Document ended unexpectedly while inside an attribute value"
+msgstr ""
+
+#: glib/gmarkup.c:1878
+#, c-format
+msgid "Document ended unexpectedly inside the close tag for element “%s”"
+msgstr ""
+
+#: glib/gmarkup.c:1882
+msgid ""
+"Document ended unexpectedly inside the close tag for an unopened element"
+msgstr ""
+
+#: glib/gmarkup.c:1888
+msgid "Document ended unexpectedly inside a comment or processing instruction"
+msgstr ""
+
+#: glib/goption.c:875
+#, fuzzy
+msgid "[OPTION…]"
+msgstr "[option]"
+
+#: glib/goption.c:991
+#, fuzzy
+msgid "Help Options:"
+msgstr "Monstrar optiones de auxilie"
+
+#: glib/goption.c:992
+#, fuzzy
+msgid "Show help options"
+msgstr "Monstrar optiones de auxilie"
+
+#: glib/goption.c:998
+#, fuzzy
+msgid "Show all help options"
+msgstr "Monstrar optiones de auxilie"
+
+#: glib/goption.c:1061
+#, fuzzy
+msgid "Application Options:"
+msgstr ""
+"Optiones de application:\n"
+" -s, --solve <equation> Solver li providet equation"
+
+#: glib/goption.c:1063
+#, fuzzy
+msgid "Options:"
+msgstr "Optiones..."
+
+#: glib/goption.c:1127 glib/goption.c:1197
+#, fuzzy, c-format
+msgid "Cannot parse integer value “%s” for %s"
+msgstr "Ne successat analisar «%s» quam un integrale"
+
+#: glib/goption.c:1137 glib/goption.c:1205
+#, c-format
+msgid "Integer value “%s” for %s out of range"
+msgstr ""
+
+#: glib/goption.c:1162
+#, fuzzy, c-format
+msgid "Cannot parse double value “%s” for %s"
+msgstr "%s: Ne successat analisar un color %s\n"
+
+#: glib/goption.c:1170
+#, c-format
+msgid "Double value “%s” for %s out of range"
+msgstr ""
+
+#: glib/goption.c:1462 glib/goption.c:1541
+#, fuzzy, c-format
+msgid "Error parsing option %s"
+msgstr "Errore de analise de data de tempe!"
+
+#: glib/goption.c:1563 glib/goption.c:1676
+#, fuzzy, c-format
+msgid "Missing argument for %s"
+msgstr "Mancant argument de function"
+
+#: glib/goption.c:2186
+#, fuzzy, c-format
+msgid "Unknown option %s"
+msgstr "Ínconosset option %s"
+
+#: glib/gregex.c:479
+#, fuzzy
+msgid "corrupted object"
+msgstr "Li file es coruptet"
+
+#: glib/gregex.c:481
+#, fuzzy
+msgid "out of memory"
+msgstr "Memorie exhaustet"
+
+#: glib/gregex.c:487
+#, fuzzy
+msgid "backtracking limit reached"
+msgstr "_Limitar a: "
+
+#: glib/gregex.c:498
+#, fuzzy
+msgid "internal error"
+msgstr "Errore intern"
+
+#: glib/gregex.c:500
+msgid "the pattern contains items not supported for partial matching"
+msgstr ""
+
+#: glib/gregex.c:502
+msgid "back references as conditions are not supported for partial matching"
+msgstr ""
+
+#: glib/gregex.c:508
+#, fuzzy
+msgid "recursion limit reached"
+msgstr "_Limitar a: "
+
+#: glib/gregex.c:510
+#, fuzzy
+msgid "bad offset"
+msgstr "P_ositionar"
+
+#: glib/gregex.c:512
+#, fuzzy
+msgid "recursion loop"
+msgstr "[Cicle]"
+
+#. should not happen in GRegex since we check modes before each match
+#: glib/gregex.c:515
+msgid "matching mode is requested that was not compiled for JIT"
+msgstr ""
+
+#: glib/gregex.c:536 glib/gregex.c:1838
+#, fuzzy
+msgid "unknown error"
+msgstr "ínconosset errore"
+
+#: glib/gregex.c:557
+#, fuzzy
+msgid "\\ at end of pattern"
+msgstr "_Fin"
+
+#: glib/gregex.c:561
+#, fuzzy
+msgid "\\c at end of pattern"
+msgstr "_Fin"
+
+#: glib/gregex.c:566
+#, fuzzy
+msgid "unrecognized character following \\"
+msgstr "Adhere a"
+
+# CHECK
+#: glib/gregex.c:570
+msgid "numbers out of order in {} quantifier"
+msgstr ""
+
+#: glib/gregex.c:574
+#, fuzzy
+msgid "number too big in {} quantifier"
+msgstr "Li file es tro grand."
+
+#: glib/gregex.c:578
+msgid "missing terminating ] for character class"
+msgstr ""
+
+#: glib/gregex.c:582
+msgid "invalid escape sequence in character class"
+msgstr ""
+
+# CHECK
+#: glib/gregex.c:586
+msgid "range out of order in character class"
+msgstr ""
+
+#: glib/gregex.c:591
+#, fuzzy
+msgid "nothing to repeat"
+msgstr "Repetir"
+
+#: glib/gregex.c:595
+#, fuzzy
+msgid "unrecognized character after (? or (?-"
+msgstr "Caracter"
+
+#: glib/gregex.c:599
+msgid "POSIX named classes are supported only within a class"
+msgstr ""
+
+#: glib/gregex.c:603
+msgid "POSIX collating elements are not supported"
+msgstr ""
+
+#: glib/gregex.c:609
+#, fuzzy
+msgid "missing terminating )"
+msgstr "Finalisation..."
+
+#: glib/gregex.c:613
+msgid "reference to non-existent subpattern"
+msgstr ""
+
+#: glib/gregex.c:617
+#, fuzzy
+msgid "missing ) after comment"
+msgstr "Mancant ')' pos li function"
+
+#: glib/gregex.c:621
+#, fuzzy
+msgid "regular expression is too large"
+msgstr "Expression regulari:"
+
+#: glib/gregex.c:625
+#, fuzzy
+msgid "malformed number or name after (?("
+msgstr "Ancian nómine - Textu - Numeró"
+
+#: glib/gregex.c:629
+msgid "lookbehind assertion is not fixed length"
+msgstr ""
+
+#: glib/gregex.c:633
+msgid "conditional group contains more than two branches"
+msgstr ""
+
+#: glib/gregex.c:637
+#, fuzzy
+msgid "assertion expected after (?("
+msgstr "pos"
+
+#: glib/gregex.c:641
+msgid "a numbered reference must not be zero"
+msgstr ""
+
+#: glib/gregex.c:645
+#, fuzzy
+msgid "unknown POSIX class name"
+msgstr "Ínconosset nómine de sintaxe: %s"
+
+#: glib/gregex.c:650
+msgid "character value in \\x{...} sequence is too large"
+msgstr ""
+
+#: glib/gregex.c:654
+msgid "\\C not allowed in lookbehind assertion"
+msgstr ""
+
+#: glib/gregex.c:658
+#, fuzzy
+msgid "missing terminator in subpattern name"
+msgstr "%s: nómine de application manca"
+
+#: glib/gregex.c:662
+msgid "two named subpatterns have the same name"
+msgstr ""
+
+#: glib/gregex.c:666
+#, fuzzy
+msgid "malformed \\P or \\p sequence"
+msgstr "<p>%1</p>"
+
+#: glib/gregex.c:670
+msgid "unknown property name after \\P or \\p"
+msgstr ""
+
+#: glib/gregex.c:674
+msgid "subpattern name is too long (maximum 32 characters)"
+msgstr ""
+
+#: glib/gregex.c:678
+msgid "too many named subpatterns (maximum 10,000)"
+msgstr ""
+
+#: glib/gregex.c:682
+msgid "octal value is greater than \\377"
+msgstr ""
+
+#: glib/gregex.c:686
+msgid "DEFINE group contains more than one branch"
+msgstr ""
+
+#: glib/gregex.c:690
+#, fuzzy
+msgid "inconsistent NEWLINE options"
+msgstr "Ínconsistent"
+
+#: glib/gregex.c:694
+msgid ""
+"\\g is not followed by a braced, angle-bracketed, or quoted name or number, "
+"or by a plain number"
+msgstr ""
+
+#: glib/gregex.c:699
+msgid "an argument is not allowed for (*ACCEPT), (*FAIL), or (*COMMIT)"
+msgstr ""
+
+#: glib/gregex.c:703
+#, fuzzy
+msgid "(*VERB) not recognized"
+msgstr "Verbe"
+
+#: glib/gregex.c:707
+#, fuzzy
+msgid "number is too big"
+msgstr "Li file es tro grand."
+
+#: glib/gregex.c:711
+#, fuzzy
+msgid "missing subpattern name after (?&"
+msgstr "Nómine manca"
+
+#: glib/gregex.c:715
+msgid "different names for subpatterns of the same number are not allowed"
+msgstr ""
+
+#: glib/gregex.c:719
+#, fuzzy
+msgid "(*MARK) must have an argument"
+msgstr "Ne posse haver ti-ci tag [NE]"
+
+#: glib/gregex.c:723
+msgid "\\c must be followed by an ASCII character"
+msgstr ""
+
+#: glib/gregex.c:727
+msgid "\\k is not followed by a braced, angle-bracketed, or quoted name"
+msgstr ""
+
+#: glib/gregex.c:731
+#, fuzzy
+msgid "\\N is not supported in a class"
+msgstr "n"
+
+#: glib/gregex.c:735
+msgid "name is too long in (*MARK), (*PRUNE), (*SKIP), or (*THEN)"
+msgstr ""
+
+#: glib/gregex.c:739 glib/gregex.c:875
+#, fuzzy
+msgid "code overflow"
+msgstr "_Code:"
+
+#: glib/gregex.c:743
+#, fuzzy
+msgid "unrecognized character after (?P"
+msgstr "R_eproducter pos"
+
+#: glib/gregex.c:747
+#, fuzzy
+msgid "overran compiling workspace"
+msgstr "Compilante li bibliografie..."
+
+#: glib/gregex.c:751
+msgid "previously-checked referenced subpattern not found"
+msgstr ""
+
+#: glib/gregex.c:874 glib/gregex.c:1121 glib/gregex.c:2444
+#, fuzzy, c-format
+msgid "Error while matching regular expression %s: %s"
+msgstr "Errore evenit compilante expression regulari «%s»."
+
+#: glib/gregex.c:1721
+msgid "PCRE library is compiled without UTF8 support"
+msgstr ""
+
+#: glib/gregex.c:1729
+msgid "PCRE library is compiled with incompatible options"
+msgstr ""
+
+#: glib/gregex.c:1847
+#, fuzzy, c-format
+msgid "Error while compiling regular expression ‘%s’ at char %s: %s"
+msgstr "Errore evenit compilante expression regulari «%s»."
+
+#: glib/gregex.c:2887
+#, fuzzy
+msgid "hexadecimal digit or “}” expected"
+msgstr "Hexadecimal"
+
+#: glib/gregex.c:2903
+#, fuzzy
+msgid "hexadecimal digit expected"
+msgstr "Hexadecimal"
+
+#: glib/gregex.c:2943
+#, fuzzy
+msgid "missing “<” in symbolic reference"
+msgstr "Quam &referentie"
+
+#: glib/gregex.c:2952
+#, fuzzy
+msgid "unfinished symbolic reference"
+msgstr "Quam &referentie"
+
+#: glib/gregex.c:2959
+msgid "zero-length symbolic reference"
+msgstr ""
+
+#: glib/gregex.c:2970
+#, fuzzy
+msgid "digit expected"
+msgstr "Ciffre"
+
+#: glib/gregex.c:2988
+#, fuzzy
+msgid "illegal symbolic reference"
+msgstr "Quam &referentie"
+
+#: glib/gregex.c:3051
+#, fuzzy
+msgid "stray final “\\”"
+msgstr "Final"
+
+#: glib/gregex.c:3055
+#, fuzzy
+msgid "unknown escape sequence"
+msgstr "Sequentie Escape"
+
+#: glib/gregex.c:3065
+#, c-format
+msgid "Error while parsing replacement text “%s” at char %lu: %s"
+msgstr ""
+
+#: glib/gshell.c:98
+msgid "Quoted text doesn’t begin with a quotation mark"
+msgstr ""
+
+#: glib/gshell.c:188
+msgid "Unmatched quotation mark in command line or other shell-quoted text"
+msgstr ""
+
+#: glib/gshell.c:594
+#, c-format
+msgid "Text ended just after a “\\” character. (The text was “%s”)"
+msgstr ""
+
+#: glib/gshell.c:601
+#, c-format
+msgid "Text ended before matching quote was found for %c. (The text was “%s”)"
+msgstr ""
+
+#: glib/gshell.c:613
+#, fuzzy
+msgid "Text was empty (or contained only whitespace)"
+msgstr "Li textu esset blanc (o contenet solmen spacies)"
+
+#: glib/gspawn.c:310
+#, c-format
+msgid "Failed to read data from child process (%s)"
+msgstr ""
+
+#: glib/gspawn.c:462
+#, fuzzy, c-format
+msgid "Unexpected error in reading data from a child process (%s)"
+msgstr "Un ínexpectat errore: %s"
+
+#: glib/gspawn.c:547
+#, fuzzy, c-format
+msgid "Unexpected error in waitpid() (%s)"
+msgstr "Un ínexpectat errore: %s"
+
+#: glib/gspawn.c:1166 glib/gspawn-win32.c:1488
+#, c-format
+msgid "Child process exited with code %ld"
+msgstr ""
+
+#: glib/gspawn.c:1174
+#, fuzzy, c-format
+msgid "Child process killed by signal %ld"
+msgstr "Li processu de Claws Mail (%ld) recivet un signal %ld"
+
+#: glib/gspawn.c:1181
+#, fuzzy, c-format
+msgid "Child process stopped by signal %ld"
+msgstr "Li processu de Claws Mail (%ld) recivet un signal %ld"
+
+#: glib/gspawn.c:1188
+#, fuzzy, c-format
+msgid "Child process exited abnormally"
+msgstr "Comande terminat abnormalmen."
+
+#: glib/gspawn.c:1867 glib/gspawn-win32.c:393 glib/gspawn-win32.c:401
+#, c-format
+msgid "Failed to read from child pipe (%s)"
+msgstr ""
+
+#: glib/gspawn.c:2230
+#, fuzzy, c-format
+msgid "Failed to spawn child process “%s” (%s)"
+msgstr "Ne posset executer li comande «%s»"
+
+#: glib/gspawn.c:2347
+#, fuzzy, c-format
+msgid "Failed to fork (%s)"
+msgstr "Ne successat aperter «%s»: %s"
+
+#: glib/gspawn.c:2507 glib/gspawn-win32.c:424
+#, fuzzy, c-format
+msgid "Failed to change to directory “%s” (%s)"
+msgstr "Ne successat alterar li icone de «%s»"
+
+#: glib/gspawn.c:2517
+#, fuzzy, c-format
+msgid "Failed to execute child process “%s” (%s)"
+msgstr "Ne successat executer li application «%s»"
+
+#: glib/gspawn.c:2527
+#, fuzzy, c-format
+msgid "Failed to open file to remap file descriptor (%s)"
+msgstr "Ne successat aperter li file «%s»: %s"
+
+#: glib/gspawn.c:2535
+#, fuzzy, c-format
+msgid "Failed to duplicate file descriptor for child process (%s)"
+msgstr "Ne posset executer li comande «%s»"
+
+#: glib/gspawn.c:2544
+#, fuzzy, c-format
+msgid "Failed to fork child process (%s)"
+msgstr "Processu ne successat (%s)"
+
+#: glib/gspawn.c:2552
+#, fuzzy, c-format
+msgid "Failed to close file descriptor for child process (%s)"
+msgstr "Ne posset executer li comande «%s»"
+
+#: glib/gspawn.c:2560
+#, fuzzy, c-format
+msgid "Unknown error executing child process “%s”"
+msgstr "Ne posset executer li comande «%s»"
+
+#: glib/gspawn.c:2584
+#, c-format
+msgid "Failed to read enough data from child pid pipe (%s)"
+msgstr ""
+
+#: glib/gspawn-win32.c:337
+msgid "Failed to read data from child process"
+msgstr ""
+
+#: glib/gspawn-win32.c:430 glib/gspawn-win32.c:435 glib/gspawn-win32.c:561
+#, fuzzy, c-format
+msgid "Failed to execute child process (%s)"
+msgstr "Ne successat executer li file «%s»"
+
+#: glib/gspawn-win32.c:440
+#, fuzzy, c-format
+msgid "Failed to dup() in child process (%s)"
+msgstr "Processu ne successat (%s)"
+
+#: glib/gspawn-win32.c:511
+#, fuzzy, c-format
+msgid "Invalid program name: %s"
+msgstr "Li nómine «%s» es ínvalid"
+
+#: glib/gspawn-win32.c:521 glib/gspawn-win32.c:853
+#, c-format
+msgid "Invalid string in argument vector at %d: %s"
+msgstr ""
+
+#: glib/gspawn-win32.c:532 glib/gspawn-win32.c:869
+#, fuzzy, c-format
+msgid "Invalid string in environment: %s"
+msgstr "Ínvalid catene de geometrie \"%s\"\n"
+
+#: glib/gspawn-win32.c:849
+#, fuzzy, c-format
+msgid "Invalid working directory: %s"
+msgstr "_Directoria de labor:"
+
+#: glib/gspawn-win32.c:914
+#, fuzzy, c-format
+msgid "Failed to execute helper program (%s)"
+msgstr "Ne successat executer li application «%s»"
+
+#: glib/gspawn-win32.c:1143
+msgid ""
+"Unexpected error in g_io_channel_win32_poll() reading data from a child "
+"process"
+msgstr ""
+
+#: glib/gstrfuncs.c:3372 glib/gstrfuncs.c:3474
+#, fuzzy
+msgid "Empty string is not a number"
+msgstr "(Vacui)"
+
+#: glib/gstrfuncs.c:3396
+#, fuzzy, c-format
+msgid "“%s” is not a signed number"
+msgstr "%s: Ínvalid númere de channeles"
+
+#: glib/gstrfuncs.c:3406 glib/gstrfuncs.c:3510
+#, fuzzy, c-format
+msgid "Number “%s” is out of bounds [%s, %s]"
+msgstr "%s líber ex %s"
+
+#: glib/gstrfuncs.c:3500
+#, fuzzy, c-format
+msgid "“%s” is not an unsigned number"
+msgstr "%s: Ínvalid númere de channeles"
+
+#: glib/guri.c:317
+#, fuzzy, no-c-format
+msgid "Invalid %-encoding in URI"
+msgstr "[Codification ínvalid]"
+
+#: glib/guri.c:334
+#, fuzzy
+msgid "Illegal character in URI"
+msgstr "Caracter"
+
+#: glib/guri.c:368
+#, fuzzy
+msgid "Non-UTF-8 characters in URI"
+msgstr "Remover non-_ASCII caracteres"
+
+#: glib/guri.c:548
+#, c-format
+msgid "Invalid IPv6 address ‘%.*s’ in URI"
+msgstr ""
+
+#: glib/guri.c:603
+#, c-format
+msgid "Illegal encoded IP address ‘%.*s’ in URI"
+msgstr ""
+
+#: glib/guri.c:615
+#, c-format
+msgid "Illegal internationalized hostname ‘%.*s’ in URI"
+msgstr ""
+
+#: glib/guri.c:647 glib/guri.c:659
+#, fuzzy, c-format
+msgid "Could not parse port ‘%.*s’ in URI"
+msgstr "Ne successat analisar «%s» quam un integrale"
+
+#: glib/guri.c:666
+#, c-format
+msgid "Port ‘%.*s’ in URI is out of range"
+msgstr ""
+
+#: glib/guri.c:1226 glib/guri.c:1290
+#, fuzzy, c-format
+msgid "URI ‘%s’ is not an absolute URI"
+msgstr "Ne successat aperter li URI «%s»."
+
+#: glib/guri.c:1232
+#, c-format
+msgid "URI ‘%s’ has no host component"
+msgstr ""
+
+#: glib/guri.c:1462
+#, fuzzy
+msgid "URI is not absolute, and no base URI was provided"
+msgstr "Null URL providet por li file desktop de un lansator de panel\n"
+
+#: glib/guri.c:2248
+#, fuzzy
+msgid "Missing ‘=’ and parameter value"
+msgstr ") mancant"
+
+#: glib/gutf8.c:834
+#, fuzzy
+msgid "Failed to allocate memory"
+msgstr "Migration del memorie de traductiones ne successat."
+
+#: glib/gutf8.c:967
+#, fuzzy
+msgid "Character out of range for UTF-8"
+msgstr "Sempre usar li codification UTF-_8"
+
+#: glib/gutf8.c:1069 glib/gutf8.c:1078 glib/gutf8.c:1208 glib/gutf8.c:1217
+#: glib/gutf8.c:1356 glib/gutf8.c:1453
+msgid "Invalid sequence in conversion input"
+msgstr "Ínvalid sequentie de octetes in li intrada de conversion"
+
+#: glib/gutf8.c:1367 glib/gutf8.c:1464
+msgid "Character out of range for UTF-16"
+msgstr ""
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 kB"
+#: glib/gutils.c:2857
+msgid "kB"
+msgstr "ko"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 MB"
+#: glib/gutils.c:2859
+msgid "MB"
+msgstr "Mo"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 GB"
+#: glib/gutils.c:2861
+msgid "GB"
+msgstr "Go"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 TB"
+#: glib/gutils.c:2863
+msgid "TB"
+msgstr "To"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 PB"
+#: glib/gutils.c:2865
+msgid "PB"
+msgstr "Po"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 EB"
+#: glib/gutils.c:2867
+msgid "EB"
+msgstr "Eo"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 KiB"
+#: glib/gutils.c:2871
+msgid "KiB"
+msgstr "Kio"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 MiB"
+#: glib/gutils.c:2873
+msgid "MiB"
+msgstr "Mio"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 GiB"
+#: glib/gutils.c:2875
+msgid "GiB"
+msgstr "Gio"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 TiB"
+#: glib/gutils.c:2877
+msgid "TiB"
+msgstr "Tio"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 PiB"
+#: glib/gutils.c:2879
+msgid "PiB"
+msgstr "Pio"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 EiB"
+#: glib/gutils.c:2881
+msgid "EiB"
+msgstr "Eio"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 kb"
+#: glib/gutils.c:2885
+msgid "kb"
+msgstr "ko"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 Mb"
+#: glib/gutils.c:2887
+msgid "Mb"
+msgstr "Mo"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 Gb"
+#: glib/gutils.c:2889
+msgid "Gb"
+msgstr "Go"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 Tb"
+#: glib/gutils.c:2891
+msgid "Tb"
+msgstr "To"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 Pb"
+#: glib/gutils.c:2893
+msgid "Pb"
+msgstr "Po"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 Eb"
+#: glib/gutils.c:2895
+msgid "Eb"
+msgstr "Eo"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 Kib"
+#: glib/gutils.c:2899
+msgid "Kib"
+msgstr "Kio"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 Mib"
+#: glib/gutils.c:2901
+msgid "Mib"
+msgstr "Mio"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 Gib"
+#: glib/gutils.c:2903
+msgid "Gib"
+msgstr "Gio"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 Tib"
+#: glib/gutils.c:2905
+msgid "Tib"
+msgstr "Tio"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 Pib"
+#: glib/gutils.c:2907
+msgid "Pib"
+msgstr "Pio"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 Eib"
+#: glib/gutils.c:2909
+msgid "Eib"
+msgstr "Eio"
+
+#: glib/gutils.c:2947
+msgid "byte"
+msgid_plural "bytes"
+msgstr[0] "octet"
+msgstr[1] "octetes"
+
+#: glib/gutils.c:2951
+msgid "bit"
+msgid_plural "bits"
+msgstr[0] "bit"
+msgstr[1] "bits"
+
+#. Translators: The "%u" is replaced with the size value, like "13"; it could
+#. * be part of "13 bytes", but only the number is requested this time.
+#: glib/gutils.c:2959
+#, c-format
+msgctxt "format-size"
+msgid "%u"
+msgstr "%u"
+
+#. Translators: The first "%u" is replaced with the value, the "%s" with a unit of the value.
+#. * The order can be changed with "%$2s %$1u". An example: "13 bytes"
+#: glib/gutils.c:2964
+#, c-format
+msgctxt "format-size"
+msgid "%u %s"
+msgstr "%u %s"
+
+#. Translators: The "%.1f" is replaced with the size value, like "13.0"; it could
+#. * be part of "13.0 MB", but only the number is requested this time.
+#: glib/gutils.c:3000
+#, c-format
+#| msgid "%.1f kB"
+msgctxt "format-size"
+msgid "%.1f"
+msgstr "%.1f"
+
+#. Translators: The first "%.1f" is replaced with the value, the "%s" with a unit of the value.
+#. * The order can be changed with "%$2s %$1.1f". Keep the no-break space between the value and
+#. * the unit symbol. An example: "13.0 MB"
+#: glib/gutils.c:3006
+#, c-format
+msgctxt "format-size"
+msgid "%.1f %s"
+msgstr "%.1f %s"
+
+#. Translators: the %s in "%s bytes" will always be replaced by a number.
+#: glib/gutils.c:3046
+#, c-format
+msgid "%s byte"
+msgid_plural "%s bytes"
+msgstr[0] "%s octet"
+msgstr[1] "%s octetes"
+
+#. Translators: the %s in "%s bits" will always be replaced by a number.
+#: glib/gutils.c:3051
+#, fuzzy, c-format
+#| msgid "%s byte"
+#| msgid_plural "%s bytes"
+msgid "%s bit"
+msgid_plural "%s bits"
+msgstr[0] "%s octet"
+msgstr[1] "%s octetes"
+
+#: glib/gutils.c:3092
+#, c-format
+msgid "%u byte"
+msgid_plural "%u bytes"
+msgstr[0] "%u octet"
+msgstr[1] "%u octetes"
+
+#. Translators: this is from the deprecated function g_format_size_for_display() which uses 'KB' to
+#. * mean 1024 bytes. I am aware that 'KB' is not correct, but it has been preserved for reasons of
+#. * compatibility. Users will not see this string unless a program is using this deprecated function.
+#. * Please translate as literally as possible.
+#.
+#: glib/gutils.c:3105
+#, c-format
+msgid "%.1f KB"
+msgstr "%.1f Ko"
+
+#: glib/gutils.c:3110
+#, c-format
+msgid "%.1f MB"
+msgstr "%.1f Mo"
+
+#: glib/gutils.c:3115
+#, c-format
+msgid "%.1f GB"
+msgstr "%.1f Go"
+
+#: glib/gutils.c:3120
+#, c-format
+msgid "%.1f TB"
+msgstr "%.1f To"
+
+#: glib/gutils.c:3125
+#, c-format
+msgid "%.1f PB"
+msgstr "%.1f Po"
+
+#: glib/gutils.c:3130
+#, c-format
+msgid "%.1f EB"
+msgstr "%.1f Eo"
diff --git a/po/ka.po b/po/ka.po
index 88cd446ac..2db6380e9 100644
--- a/po/ka.po
+++ b/po/ka.po
@@ -1,163 +1,152 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
-# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+# Georgian transaltion for glib
+# Copyright (C) 2022, glib authors
+# This file is distributed under the same license as the glib package.
+# Ekaterine Papava <papava.e@gtu.ge>, 2022
#
msgid ""
msgstr ""
-"Project-Id-Version: glib\n"
+"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/glib/issues\n"
-"POT-Creation-Date: 2022-07-26 20:03+0000\n"
-"PO-Revision-Date: 2022-07-28 21:13+0200\n"
-"Last-Translator: Temuri Doghonadze <temuri.doghonadze@gmail.com>\n"
-"Language-Team: Georgian <(nothing)>\n"
+"POT-Creation-Date: 2022-08-08 10:41+0000\n"
+"PO-Revision-Date: 2022-12-13 07:04+0100\n"
+"Last-Translator: Ekaterine Papava <papava.e@gtu.ge>\n"
+"Language-Team: \n"
"Language: ka\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=1; plural=0;\n"
-"X-Generator: Poedit 3.1.1\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Generator: Poedit 3.2.2\n"
-#: gio/gappinfo.c:335
+#: gio/gappinfo.c:333
msgid "Setting default applications not supported yet"
msgstr ""
-#: gio/gappinfo.c:368
+#: gio/gappinfo.c:366
msgid "Setting application as last used for type not supported yet"
msgstr ""
-#: gio/gappinfo.c:808
-#, c-format
-msgid "Failed to find default application for content type ‘%s’"
-msgstr ""
-
-#: gio/gappinfo.c:868
-#, c-format
-msgid "Failed to find default application for URI Scheme ‘%s’"
-msgstr ""
-
-#: gio/gapplication.c:502
+#: gio/gapplication.c:500
msgid "GApplication options"
msgstr "GApplication-ის მორგება"
-#: gio/gapplication.c:502
+#: gio/gapplication.c:500
msgid "Show GApplication options"
msgstr "GApplication პარამეტრების ჩვენება"
-#: gio/gapplication.c:547
+#: gio/gapplication.c:545
msgid "Enter GApplication service mode (use from D-Bus service files)"
msgstr ""
-#: gio/gapplication.c:559
+#: gio/gapplication.c:557
msgid "Override the application’s ID"
-msgstr ""
+msgstr "აპლიკაციის ID-ის გადაფარვა"
-#: gio/gapplication.c:571
+#: gio/gapplication.c:569
msgid "Replace the running instance"
msgstr "გაშვებული ინტერფეისის შეცვლა"
-#: gio/gapplication-tool.c:47 gio/gapplication-tool.c:48 gio/gio-tool.c:229
-#: gio/gresource-tool.c:496 gio/gsettings-tool.c:586
+#: gio/gapplication-tool.c:45 gio/gapplication-tool.c:46 gio/gio-tool.c:227
+#: gio/gresource-tool.c:494 gio/gsettings-tool.c:584
msgid "Print help"
msgstr "დახმარების ჩვენება"
-#: gio/gapplication-tool.c:49 gio/gresource-tool.c:497 gio/gresource-tool.c:565
+#: gio/gapplication-tool.c:47 gio/gresource-tool.c:495 gio/gresource-tool.c:563
msgid "[COMMAND]"
msgstr "[ბრძანება]"
-#: gio/gapplication-tool.c:51 gio/gio-tool.c:230
+#: gio/gapplication-tool.c:49 gio/gio-tool.c:228
msgid "Print version"
msgstr "მიმდინარე ვერსიის დაბეჭდვა"
-#: gio/gapplication-tool.c:52 gio/gsettings-tool.c:592
+#: gio/gapplication-tool.c:50 gio/gsettings-tool.c:590
msgid "Print version information and exit"
msgstr "ვერსიის ჩვენება და გასვლა"
-#: gio/gapplication-tool.c:55
+#: gio/gapplication-tool.c:53
msgid "List applications"
msgstr "აპლიკაციების სია"
-#: gio/gapplication-tool.c:56
+#: gio/gapplication-tool.c:54
msgid "List the installed D-Bus activatable applications (by .desktop files)"
msgstr ""
-#: gio/gapplication-tool.c:59
+#: gio/gapplication-tool.c:57
msgid "Launch an application"
msgstr "აპლიკაციის გაშვება"
-#: gio/gapplication-tool.c:60
+#: gio/gapplication-tool.c:58
msgid "Launch the application (with optional files to open)"
msgstr ""
-#: gio/gapplication-tool.c:61
+#: gio/gapplication-tool.c:59
msgid "APPID [FILE…]"
msgstr ""
-#: gio/gapplication-tool.c:63
+#: gio/gapplication-tool.c:61
msgid "Activate an action"
msgstr "ქმედების აქტივაცია"
-#: gio/gapplication-tool.c:64
+#: gio/gapplication-tool.c:62
msgid "Invoke an action on the application"
msgstr ""
-#: gio/gapplication-tool.c:65
+#: gio/gapplication-tool.c:63
msgid "APPID ACTION [PARAMETER]"
msgstr ""
-#: gio/gapplication-tool.c:67
+#: gio/gapplication-tool.c:65
msgid "List available actions"
msgstr ""
-#: gio/gapplication-tool.c:68
+#: gio/gapplication-tool.c:66
msgid "List static actions for an application (from .desktop file)"
msgstr ""
-#: gio/gapplication-tool.c:69 gio/gapplication-tool.c:75
+#: gio/gapplication-tool.c:67 gio/gapplication-tool.c:73
msgid "APPID"
msgstr "აპისID"
-#: gio/gapplication-tool.c:74 gio/gapplication-tool.c:137 gio/gdbus-tool.c:108
-#: gio/gio-tool.c:226
+#: gio/gapplication-tool.c:72 gio/gapplication-tool.c:135 gio/gdbus-tool.c:106
+#: gio/gio-tool.c:224
msgid "COMMAND"
msgstr "ბრძანება"
-#: gio/gapplication-tool.c:74
+#: gio/gapplication-tool.c:72
msgid "The command to print detailed help for"
msgstr ""
-#: gio/gapplication-tool.c:75
+#: gio/gapplication-tool.c:73
msgid "Application identifier in D-Bus format (eg: org.example.viewer)"
msgstr ""
-#: gio/gapplication-tool.c:76 gio/glib-compile-resources.c:822
-#: gio/glib-compile-resources.c:828 gio/glib-compile-resources.c:857
-#: gio/gresource-tool.c:503 gio/gresource-tool.c:569
+#: gio/gapplication-tool.c:74 gio/glib-compile-resources.c:820
+#: gio/glib-compile-resources.c:826 gio/glib-compile-resources.c:855
+#: gio/gresource-tool.c:501 gio/gresource-tool.c:567
msgid "FILE"
-msgstr "PROFILEID"
+msgstr "ფაილი"
-#: gio/gapplication-tool.c:76
+#: gio/gapplication-tool.c:74
msgid "Optional relative or absolute filenames, or URIs to open"
msgstr ""
-#: gio/gapplication-tool.c:77
+#: gio/gapplication-tool.c:75
msgid "ACTION"
msgstr "[ქმედება]"
-#: gio/gapplication-tool.c:77
+#: gio/gapplication-tool.c:75
msgid "The action name to invoke"
msgstr ""
-#: gio/gapplication-tool.c:78
+#: gio/gapplication-tool.c:76
msgid "PARAMETER"
msgstr "პარამეტრი"
-#: gio/gapplication-tool.c:78
+#: gio/gapplication-tool.c:76
msgid "Optional parameter to the action invocation, in GVariant format"
msgstr ""
-#: gio/gapplication-tool.c:100 gio/gresource-tool.c:534
-#: gio/gsettings-tool.c:678
+#: gio/gapplication-tool.c:98 gio/gresource-tool.c:532 gio/gsettings-tool.c:676
#, c-format
msgid ""
"Unknown command %s\n"
@@ -166,92 +155,94 @@ msgstr ""
"უცნობი ბრძანება: %s\n"
"\n"
-#: gio/gapplication-tool.c:105
+#: gio/gapplication-tool.c:103
msgid "Usage:\n"
msgstr "გამოყენება:\n"
-#: gio/gapplication-tool.c:118 gio/gresource-tool.c:559
-#: gio/gsettings-tool.c:713
+#: gio/gapplication-tool.c:116 gio/gresource-tool.c:557
+#: gio/gsettings-tool.c:711
msgid "Arguments:\n"
msgstr "არგუმენტები:\n"
-#: gio/gapplication-tool.c:137 gio/gio-tool.c:226
+#: gio/gapplication-tool.c:135 gio/gio-tool.c:224
msgid "[ARGS…]"
msgstr "[არგუმენტები…]"
-#: gio/gapplication-tool.c:138
+#: gio/gapplication-tool.c:136
#, c-format
msgid "Commands:\n"
msgstr "ბრძანებები:\n"
#. Translators: do not translate 'help', but please translate 'COMMAND'.
-#: gio/gapplication-tool.c:150
+#: gio/gapplication-tool.c:148
#, c-format
msgid ""
"Use “%s help COMMAND” to get detailed help.\n"
"\n"
msgstr ""
-#: gio/gapplication-tool.c:169
+#: gio/gapplication-tool.c:167
#, c-format
msgid ""
"%s command requires an application id to directly follow\n"
"\n"
msgstr ""
-#: gio/gapplication-tool.c:175
+#: gio/gapplication-tool.c:173
#, c-format
msgid "invalid application id: “%s”\n"
-msgstr ""
+msgstr "არასწორი აპლიკაციის id: \"%s\"\n"
#. Translators: %s is replaced with a command name like 'list-actions'
-#: gio/gapplication-tool.c:186
+#: gio/gapplication-tool.c:184
#, c-format
msgid ""
"“%s” takes no arguments\n"
"\n"
msgstr ""
+"“%s” -ს არგუმენტები არ მიეთითება\n"
+"\n"
-#: gio/gapplication-tool.c:270
+#: gio/gapplication-tool.c:268
#, c-format
msgid "unable to connect to D-Bus: %s\n"
msgstr "d-bus-თან მიერთების შეცდომა: %s\n"
-#: gio/gapplication-tool.c:290
+#: gio/gapplication-tool.c:288
#, c-format
msgid "error sending %s message to application: %s\n"
msgstr ""
-#: gio/gapplication-tool.c:321
+#: gio/gapplication-tool.c:319
msgid "action name must be given after application id\n"
msgstr ""
-#: gio/gapplication-tool.c:329
+#: gio/gapplication-tool.c:327
#, c-format
msgid ""
"invalid action name: “%s”\n"
"action names must consist of only alphanumerics, “-” and “.”\n"
msgstr ""
-#: gio/gapplication-tool.c:348
+#: gio/gapplication-tool.c:346
#, c-format
msgid "error parsing action parameter: %s\n"
msgstr ""
-#: gio/gapplication-tool.c:360
+#: gio/gapplication-tool.c:358
msgid "actions accept a maximum of one parameter\n"
msgstr ""
-#: gio/gapplication-tool.c:415
+#: gio/gapplication-tool.c:413
msgid "list-actions command takes only the application id"
msgstr ""
-#: gio/gapplication-tool.c:425
+#: gio/gapplication-tool.c:423
#, c-format
msgid "unable to find desktop file for application %s\n"
msgstr ""
-#: gio/gapplication-tool.c:470
+#: gio/gapplication-tool.c:468
#, c-format
msgid ""
"unrecognised command: %s\n"
@@ -260,261 +251,261 @@ msgstr ""
"უცნობი ბრძანება: %s\n"
"\n"
-#: gio/gbufferedinputstream.c:422 gio/gbufferedinputstream.c:500
-#: gio/ginputstream.c:181 gio/ginputstream.c:381 gio/ginputstream.c:650
-#: gio/ginputstream.c:1052 gio/goutputstream.c:225 gio/goutputstream.c:1051
-#: gio/gpollableinputstream.c:207 gio/gpollableoutputstream.c:279
+#: gio/gbufferedinputstream.c:420 gio/gbufferedinputstream.c:498
+#: gio/ginputstream.c:179 gio/ginputstream.c:379 gio/ginputstream.c:648
+#: gio/ginputstream.c:1050 gio/goutputstream.c:223 gio/goutputstream.c:1049
+#: gio/gpollableinputstream.c:205 gio/gpollableoutputstream.c:277
#, c-format
msgid "Too large count value passed to %s"
msgstr ""
-#: gio/gbufferedinputstream.c:893 gio/gbufferedoutputstream.c:577
-#: gio/gdataoutputstream.c:564
+#: gio/gbufferedinputstream.c:891 gio/gbufferedoutputstream.c:575
+#: gio/gdataoutputstream.c:562
msgid "Seek not supported on base stream"
msgstr ""
-#: gio/gbufferedinputstream.c:940
+#: gio/gbufferedinputstream.c:938
msgid "Cannot truncate GBufferedInputStream"
msgstr ""
-#: gio/gbufferedinputstream.c:985 gio/ginputstream.c:1241 gio/giostream.c:302
-#: gio/goutputstream.c:2200
+#: gio/gbufferedinputstream.c:983 gio/ginputstream.c:1239 gio/giostream.c:300
+#: gio/goutputstream.c:2198
msgid "Stream is already closed"
msgstr "ნაკადი უკვე დახურულია"
-#: gio/gbufferedoutputstream.c:614 gio/gdataoutputstream.c:594
+#: gio/gbufferedoutputstream.c:612 gio/gdataoutputstream.c:592
msgid "Truncate not supported on base stream"
msgstr ""
-#: gio/gcancellable.c:319 gio/gdbusconnection.c:1859 gio/gdbusprivate.c:1420
-#: gio/gsimpleasyncresult.c:873 gio/gsimpleasyncresult.c:899
+#: gio/gcancellable.c:319 gio/gdbusconnection.c:1857 gio/gdbusprivate.c:1418
+#: gio/gsimpleasyncresult.c:871 gio/gsimpleasyncresult.c:897
#, c-format
msgid "Operation was cancelled"
msgstr "ოპერაცია გაუქმდა"
-#: gio/gcharsetconverter.c:262
+#: gio/gcharsetconverter.c:260
msgid "Invalid object, not initialized"
msgstr "ობიექტი არასწორია. ინიციალიზებული არაა"
-#: gio/gcharsetconverter.c:283 gio/gcharsetconverter.c:311
+#: gio/gcharsetconverter.c:281 gio/gcharsetconverter.c:309
msgid "Incomplete multibyte sequence in input"
msgstr "შეტანილ ტექსტში ბაიტების მიმდევრობა მცდარია"
-#: gio/gcharsetconverter.c:317 gio/gcharsetconverter.c:326
+#: gio/gcharsetconverter.c:315 gio/gcharsetconverter.c:324
msgid "Not enough space in destination"
msgstr "დანიშნულების წერტილში საკმარისი ადგილი არაა"
-#: gio/gcharsetconverter.c:344 gio/gdatainputstream.c:850
-#: gio/gdatainputstream.c:1268 glib/gconvert.c:451 glib/gconvert.c:883
-#: glib/giochannel.c:1576 glib/giochannel.c:1618 glib/giochannel.c:2473
-#: glib/gutf8.c:892 glib/gutf8.c:1346
+#: gio/gcharsetconverter.c:342 gio/gdatainputstream.c:848
+#: gio/gdatainputstream.c:1266 glib/gconvert.c:449 glib/gconvert.c:879
+#: glib/giochannel.c:1573 glib/giochannel.c:1615 glib/giochannel.c:2470
+#: glib/gutf8.c:890 glib/gutf8.c:1344
msgid "Invalid byte sequence in conversion input"
msgstr "შეტანილ ტექსტში ბაიტების მიმდევრობა მცდარია"
-#: gio/gcharsetconverter.c:349 glib/gconvert.c:459 glib/gconvert.c:797
-#: glib/giochannel.c:1583 glib/giochannel.c:2485
+#: gio/gcharsetconverter.c:347 glib/gconvert.c:457 glib/gconvert.c:793
+#: glib/giochannel.c:1580 glib/giochannel.c:2482
#, c-format
msgid "Error during conversion: %s"
msgstr "გარდაქმნის შეცდომა: %s"
-#: gio/gcharsetconverter.c:447 gio/gsocket.c:1151
+#: gio/gcharsetconverter.c:445 gio/gsocket.c:1147
msgid "Cancellable initialization not supported"
msgstr "გაუქმებადი ინიციალიზაცია მხარდაჭერილი არაა"
-#: gio/gcharsetconverter.c:458 glib/gconvert.c:324 glib/giochannel.c:1404
+#: gio/gcharsetconverter.c:456 glib/gconvert.c:322 glib/giochannel.c:1401
#, c-format
msgid "Conversion from character set “%s” to “%s” is not supported"
msgstr "კოდური გვერდის \"%s\" გარდაქმნა \"%s\" კოდირებაში მხარდაუჭერელია"
-#: gio/gcharsetconverter.c:462 glib/gconvert.c:328
+#: gio/gcharsetconverter.c:460 glib/gconvert.c:326
#, c-format
msgid "Could not open converter from “%s” to “%s”"
msgstr "ვერ ხერხდება \"%s\" - \"%s\" გარდამქმნელის გახსნა"
-#: gio/gcontenttype.c:472
+#: gio/gcontenttype.c:470
#, c-format
msgid "%s type"
msgstr "ტიპი %s"
-#: gio/gcontenttype-win32.c:198
+#: gio/gcontenttype-win32.c:196
msgid "Unknown type"
msgstr "უცნობი ტიპი"
-#: gio/gcontenttype-win32.c:200
+#: gio/gcontenttype-win32.c:198
#, c-format
msgid "%s filetype"
msgstr "ფაილის ტიპი %s"
-#: gio/gcredentials.c:337
+#: gio/gcredentials.c:335
msgid "GCredentials contains invalid data"
msgstr ""
-#: gio/gcredentials.c:397 gio/gcredentials.c:688
+#: gio/gcredentials.c:395 gio/gcredentials.c:686
msgid "GCredentials is not implemented on this OS"
msgstr ""
-#: gio/gcredentials.c:552 gio/gcredentials.c:570
+#: gio/gcredentials.c:550 gio/gcredentials.c:568
msgid "There is no GCredentials support for your platform"
msgstr ""
-#: gio/gcredentials.c:628
+#: gio/gcredentials.c:626
msgid "GCredentials does not contain a process ID on this OS"
msgstr ""
-#: gio/gcredentials.c:682
+#: gio/gcredentials.c:680
msgid "Credentials spoofing is not possible on this OS"
msgstr ""
-#: gio/gdatainputstream.c:306
+#: gio/gdatainputstream.c:304
msgid "Unexpected early end-of-stream"
msgstr ""
-#: gio/gdbusaddress.c:164 gio/gdbusaddress.c:238 gio/gdbusaddress.c:327
+#: gio/gdbusaddress.c:162 gio/gdbusaddress.c:236 gio/gdbusaddress.c:325
#, c-format
msgid "Unsupported key “%s” in address entry “%s”"
msgstr ""
-#: gio/gdbusaddress.c:177
+#: gio/gdbusaddress.c:175
#, c-format
msgid "Meaningless key/value pair combination in address entry “%s”"
msgstr ""
-#: gio/gdbusaddress.c:186
+#: gio/gdbusaddress.c:184
#, c-format
msgid ""
"Address “%s” is invalid (need exactly one of path, dir, tmpdir, or abstract "
"keys)"
msgstr ""
-#: gio/gdbusaddress.c:253 gio/gdbusaddress.c:264 gio/gdbusaddress.c:279
-#: gio/gdbusaddress.c:342 gio/gdbusaddress.c:353
+#: gio/gdbusaddress.c:251 gio/gdbusaddress.c:262 gio/gdbusaddress.c:277
+#: gio/gdbusaddress.c:340 gio/gdbusaddress.c:351
#, c-format
msgid "Error in address “%s” — the “%s” attribute is malformed"
msgstr ""
-#: gio/gdbusaddress.c:423 gio/gdbusaddress.c:682
+#: gio/gdbusaddress.c:421 gio/gdbusaddress.c:680
#, c-format
msgid "Unknown or unsupported transport “%s” for address “%s”"
msgstr ""
-#: gio/gdbusaddress.c:467
+#: gio/gdbusaddress.c:465
#, c-format
msgid "Address element “%s” does not contain a colon (:)"
msgstr ""
-#: gio/gdbusaddress.c:476
+#: gio/gdbusaddress.c:474
#, c-format
msgid "Transport name in address element “%s” must not be empty"
msgstr ""
-#: gio/gdbusaddress.c:497
+#: gio/gdbusaddress.c:495
#, c-format
msgid ""
"Key/Value pair %d, “%s”, in address element “%s” does not contain an equal "
"sign"
msgstr ""
-#: gio/gdbusaddress.c:508
+#: gio/gdbusaddress.c:506
#, c-format
msgid ""
"Key/Value pair %d, “%s”, in address element “%s” must not have an empty key"
msgstr ""
-#: gio/gdbusaddress.c:522
+#: gio/gdbusaddress.c:520
#, c-format
msgid ""
"Error unescaping key or value in Key/Value pair %d, “%s”, in address element "
"“%s”"
msgstr ""
-#: gio/gdbusaddress.c:590
+#: gio/gdbusaddress.c:588
#, c-format
msgid ""
"Error in address “%s” — the unix transport requires exactly one of the keys "
"“path” or “abstract” to be set"
msgstr ""
-#: gio/gdbusaddress.c:625
+#: gio/gdbusaddress.c:623
#, c-format
msgid "Error in address “%s” — the host attribute is missing or malformed"
msgstr ""
-#: gio/gdbusaddress.c:639
+#: gio/gdbusaddress.c:637
#, c-format
msgid "Error in address “%s” — the port attribute is missing or malformed"
msgstr ""
-#: gio/gdbusaddress.c:653
+#: gio/gdbusaddress.c:651
#, c-format
msgid "Error in address “%s” — the noncefile attribute is missing or malformed"
msgstr ""
-#: gio/gdbusaddress.c:674
+#: gio/gdbusaddress.c:672
msgid "Error auto-launching: "
msgstr "ავტომატურად გაშვების შეცდომა: "
-#: gio/gdbusaddress.c:727
+#: gio/gdbusaddress.c:725
#, c-format
msgid "Error opening nonce file “%s”: %s"
msgstr "ერთჯერადი ფაილის (%s) გახსნის შეცდომა: %s"
-#: gio/gdbusaddress.c:746
+#: gio/gdbusaddress.c:744
#, c-format
msgid "Error reading from nonce file “%s”: %s"
msgstr "ერთჯერადი ფაილიდან (%s) წაკითხვის შეცდომა: %s"
-#: gio/gdbusaddress.c:755
+#: gio/gdbusaddress.c:753
#, c-format
msgid "Error reading from nonce file “%s”, expected 16 bytes, got %d"
msgstr ""
-#: gio/gdbusaddress.c:773
+#: gio/gdbusaddress.c:771
#, c-format
msgid "Error writing contents of nonce file “%s” to stream:"
msgstr ""
-#: gio/gdbusaddress.c:988
+#: gio/gdbusaddress.c:986
msgid "The given address is empty"
msgstr "მითითებული მისამართი ცარიელია"
-#: gio/gdbusaddress.c:1101
+#: gio/gdbusaddress.c:1099
#, c-format
msgid "Cannot spawn a message bus when AT_SECURE is set"
msgstr ""
-#: gio/gdbusaddress.c:1108
+#: gio/gdbusaddress.c:1106
msgid "Cannot spawn a message bus without a machine-id: "
msgstr ""
-#: gio/gdbusaddress.c:1115
+#: gio/gdbusaddress.c:1113
#, c-format
msgid "Cannot autolaunch D-Bus without X11 $DISPLAY"
msgstr ""
-#: gio/gdbusaddress.c:1157
+#: gio/gdbusaddress.c:1155
#, c-format
msgid "Error spawning command line “%s”: "
msgstr ""
-#: gio/gdbusaddress.c:1226
+#: gio/gdbusaddress.c:1224
#, c-format
msgid "Cannot determine session bus address (not implemented for this OS)"
msgstr ""
-#: gio/gdbusaddress.c:1375 gio/gdbusconnection.c:7321
+#: gio/gdbusaddress.c:1373 gio/gdbusconnection.c:7318
#, c-format
msgid ""
"Cannot determine bus address from DBUS_STARTER_BUS_TYPE environment variable "
"— unknown value “%s”"
msgstr ""
-#: gio/gdbusaddress.c:1384 gio/gdbusconnection.c:7330
+#: gio/gdbusaddress.c:1382 gio/gdbusconnection.c:7327
msgid ""
"Cannot determine bus address because the DBUS_STARTER_BUS_TYPE environment "
"variable is not set"
msgstr ""
-#: gio/gdbusaddress.c:1394
+#: gio/gdbusaddress.c:1392
#, c-format
msgid "Unknown bus type %d"
msgstr "მატარებლის უცნობი ტიპი %d"
@@ -533,426 +524,429 @@ msgid ""
"Exhausted all available authentication mechanisms (tried: %s) (available: %s)"
msgstr ""
-#: gio/gdbusauth.c:1178
+#: gio/gdbusauth.c:1171
msgid "User IDs must be the same for peer and server"
msgstr ""
-#: gio/gdbusauth.c:1190
+#: gio/gdbusauth.c:1183
msgid "Cancelled via GDBusAuthObserver::authorize-authenticated-peer"
msgstr ""
-#: gio/gdbusauthmechanismsha1.c:303
+#: gio/gdbusauthmechanismsha1.c:300
#, c-format
msgid "Error when getting information for directory “%s”: %s"
msgstr ""
-#: gio/gdbusauthmechanismsha1.c:318
+#: gio/gdbusauthmechanismsha1.c:315
#, c-format
msgid ""
"Permissions on directory “%s” are malformed. Expected mode 0700, got 0%o"
msgstr ""
-#: gio/gdbusauthmechanismsha1.c:351 gio/gdbusauthmechanismsha1.c:362
+#: gio/gdbusauthmechanismsha1.c:348 gio/gdbusauthmechanismsha1.c:359
#, c-format
msgid "Error creating directory “%s”: %s"
msgstr ""
-#: gio/gdbusauthmechanismsha1.c:364 gio/gfile.c:1095 gio/gfile.c:1333
-#: gio/gfile.c:1471 gio/gfile.c:1709 gio/gfile.c:1764 gio/gfile.c:1822
-#: gio/gfile.c:1906 gio/gfile.c:1963 gio/gfile.c:2027 gio/gfile.c:2082
-#: gio/gfile.c:3787 gio/gfile.c:3927 gio/gfile.c:4339 gio/gfile.c:4809
-#: gio/gfile.c:5220 gio/gfile.c:5305 gio/gfile.c:5395 gio/gfile.c:5492
-#: gio/gfile.c:5579 gio/gfile.c:5680 gio/gfile.c:8809 gio/gfile.c:8899
-#: gio/gfile.c:8983 gio/win32/gwinhttpfile.c:453
+#: gio/gdbusauthmechanismsha1.c:361 gio/gfile.c:1080 gio/gfile.c:1318
+#: gio/gfile.c:1456 gio/gfile.c:1694 gio/gfile.c:1749 gio/gfile.c:1807
+#: gio/gfile.c:1891 gio/gfile.c:1948 gio/gfile.c:2012 gio/gfile.c:2067
+#: gio/gfile.c:3772 gio/gfile.c:3912 gio/gfile.c:4205 gio/gfile.c:4675
+#: gio/gfile.c:5086 gio/gfile.c:5171 gio/gfile.c:5261 gio/gfile.c:5358
+#: gio/gfile.c:5445 gio/gfile.c:5546 gio/gfile.c:8375 gio/gfile.c:8465
+#: gio/gfile.c:8549 gio/win32/gwinhttpfile.c:453
msgid "Operation not supported"
msgstr "ოპერაცია მხარდაუჭერელია"
-#: gio/gdbusauthmechanismsha1.c:407
+#: gio/gdbusauthmechanismsha1.c:404
#, c-format
msgid "Error opening keyring “%s” for reading: "
msgstr ""
-#: gio/gdbusauthmechanismsha1.c:430 gio/gdbusauthmechanismsha1.c:771
+#: gio/gdbusauthmechanismsha1.c:427 gio/gdbusauthmechanismsha1.c:769
#, c-format
msgid "Line %d of the keyring at “%s” with content “%s” is malformed"
msgstr ""
-#: gio/gdbusauthmechanismsha1.c:444 gio/gdbusauthmechanismsha1.c:785
+#: gio/gdbusauthmechanismsha1.c:441 gio/gdbusauthmechanismsha1.c:783
#, c-format
msgid ""
"First token of line %d of the keyring at “%s” with content “%s” is malformed"
msgstr ""
-#: gio/gdbusauthmechanismsha1.c:458 gio/gdbusauthmechanismsha1.c:799
+#: gio/gdbusauthmechanismsha1.c:455 gio/gdbusauthmechanismsha1.c:797
#, c-format
msgid ""
"Second token of line %d of the keyring at “%s” with content “%s” is malformed"
msgstr ""
-#: gio/gdbusauthmechanismsha1.c:482
+#: gio/gdbusauthmechanismsha1.c:479
#, c-format
msgid "Didn’t find cookie with id %d in the keyring at “%s”"
msgstr ""
-#: gio/gdbusauthmechanismsha1.c:539
+#: gio/gdbusauthmechanismsha1.c:536
#, c-format
msgid "Error creating lock file “%s”: %s"
msgstr ""
-#: gio/gdbusauthmechanismsha1.c:612
+#: gio/gdbusauthmechanismsha1.c:609
#, c-format
msgid "Error deleting stale lock file “%s”: %s"
msgstr ""
-#: gio/gdbusauthmechanismsha1.c:651
+#: gio/gdbusauthmechanismsha1.c:648
#, c-format
msgid "Error closing (unlinked) lock file “%s”: %s"
msgstr ""
-#: gio/gdbusauthmechanismsha1.c:662
+#: gio/gdbusauthmechanismsha1.c:659
#, c-format
msgid "Error unlinking lock file “%s”: %s"
msgstr ""
-#: gio/gdbusauthmechanismsha1.c:738
+#: gio/gdbusauthmechanismsha1.c:736
#, c-format
msgid "Error opening keyring “%s” for writing: "
msgstr ""
-#: gio/gdbusauthmechanismsha1.c:932
+#: gio/gdbusauthmechanismsha1.c:930
#, c-format
msgid "(Additionally, releasing the lock for “%s” also failed: %s) "
msgstr ""
-#: gio/gdbusconnection.c:590 gio/gdbusconnection.c:2404
+#: gio/gdbusconnection.c:588 gio/gdbusconnection.c:2402
msgid "The connection is closed"
msgstr "შეერთება არ დახურულა"
-#: gio/gdbusconnection.c:1889
+#: gio/gdbusconnection.c:1887
msgid "Timeout was reached"
msgstr ""
-#: gio/gdbusconnection.c:2527
+#: gio/gdbusconnection.c:2525
msgid ""
"Unsupported flags encountered when constructing a client-side connection"
msgstr ""
-#: gio/gdbusconnection.c:4256 gio/gdbusconnection.c:4610
+#: gio/gdbusconnection.c:4253 gio/gdbusconnection.c:4607
#, c-format
msgid ""
"No such interface “org.freedesktop.DBus.Properties” on object at path %s"
msgstr ""
-#: gio/gdbusconnection.c:4401
+#: gio/gdbusconnection.c:4398
#, c-format
msgid "No such property “%s”"
msgstr ""
-#: gio/gdbusconnection.c:4413
+#: gio/gdbusconnection.c:4410
#, c-format
msgid "Property “%s” is not readable"
msgstr ""
-#: gio/gdbusconnection.c:4424
+#: gio/gdbusconnection.c:4421
#, c-format
msgid "Property “%s” is not writable"
msgstr ""
-#: gio/gdbusconnection.c:4444
+#: gio/gdbusconnection.c:4441
#, c-format
msgid "Error setting property “%s”: Expected type “%s” but got “%s”"
msgstr ""
-#: gio/gdbusconnection.c:4549 gio/gdbusconnection.c:4764
-#: gio/gdbusconnection.c:6747
+#: gio/gdbusconnection.c:4546 gio/gdbusconnection.c:4761
+#: gio/gdbusconnection.c:6744
#, c-format
msgid "No such interface “%s”"
msgstr ""
-#: gio/gdbusconnection.c:4986 gio/gdbusconnection.c:7261
+#: gio/gdbusconnection.c:4983 gio/gdbusconnection.c:7258
#, c-format
msgid "No such interface “%s” on object at path %s"
msgstr ""
-#: gio/gdbusconnection.c:5087
+#: gio/gdbusconnection.c:5084
#, c-format
msgid "No such method “%s”"
msgstr ""
-#: gio/gdbusconnection.c:5118
+#: gio/gdbusconnection.c:5115
#, c-format
msgid "Type of message, “%s”, does not match expected type “%s”"
msgstr ""
-#: gio/gdbusconnection.c:5321
+#: gio/gdbusconnection.c:5318
#, c-format
msgid "An object is already exported for the interface %s at %s"
msgstr ""
-#: gio/gdbusconnection.c:5548
+#: gio/gdbusconnection.c:5545
#, c-format
msgid "Unable to retrieve property %s.%s"
msgstr "თვისების შექმნის შეცდომა: %s.%s"
-#: gio/gdbusconnection.c:5604
+#: gio/gdbusconnection.c:5601
#, c-format
msgid "Unable to set property %s.%s"
msgstr "თვისების დაყენების შეცდომა: %s.%s"
-#: gio/gdbusconnection.c:5783
+#: gio/gdbusconnection.c:5780
#, c-format
msgid "Method “%s” returned type “%s”, but expected “%s”"
msgstr ""
-#: gio/gdbusconnection.c:6859
+#: gio/gdbusconnection.c:6856
#, c-format
msgid "Method “%s” on interface “%s” with signature “%s” does not exist"
msgstr ""
-#: gio/gdbusconnection.c:6980
+#: gio/gdbusconnection.c:6977
#, c-format
msgid "A subtree is already exported for %s"
msgstr ""
-#: gio/gdbusconnection.c:7269
+#: gio/gdbusconnection.c:7266
#, c-format
msgid "Object does not exist at path “%s”"
msgstr ""
-#: gio/gdbusmessage.c:1303
+#: gio/gdbusmessage.c:1301
msgid "type is INVALID"
msgstr "ტიპი არასწორია"
-#: gio/gdbusmessage.c:1314
+#: gio/gdbusmessage.c:1312
msgid "METHOD_CALL message: PATH or MEMBER header field is missing"
msgstr ""
-#: gio/gdbusmessage.c:1325
+#: gio/gdbusmessage.c:1323
msgid "METHOD_RETURN message: REPLY_SERIAL header field is missing"
msgstr ""
-#: gio/gdbusmessage.c:1337
+#: gio/gdbusmessage.c:1335
msgid "ERROR message: REPLY_SERIAL or ERROR_NAME header field is missing"
msgstr ""
-#: gio/gdbusmessage.c:1350
+#: gio/gdbusmessage.c:1348
msgid "SIGNAL message: PATH, INTERFACE or MEMBER header field is missing"
msgstr ""
-#: gio/gdbusmessage.c:1358
+#: gio/gdbusmessage.c:1356
msgid ""
"SIGNAL message: The PATH header field is using the reserved value /org/"
"freedesktop/DBus/Local"
msgstr ""
-#: gio/gdbusmessage.c:1366
+#: gio/gdbusmessage.c:1364
msgid ""
"SIGNAL message: The INTERFACE header field is using the reserved value org."
"freedesktop.DBus.Local"
msgstr ""
-#: gio/gdbusmessage.c:1414 gio/gdbusmessage.c:1474
+#: gio/gdbusmessage.c:1412 gio/gdbusmessage.c:1472
#, c-format
msgid "Wanted to read %lu byte but only got %lu"
msgid_plural "Wanted to read %lu bytes but only got %lu"
msgstr[0] ""
+msgstr[1] ""
-#: gio/gdbusmessage.c:1428
+#: gio/gdbusmessage.c:1426
#, c-format
msgid "Expected NUL byte after the string “%s” but found byte %d"
msgstr ""
-#: gio/gdbusmessage.c:1447
+#: gio/gdbusmessage.c:1445
#, c-format
msgid ""
"Expected valid UTF-8 string but found invalid bytes at byte offset %d "
"(length of string is %d). The valid UTF-8 string up until that point was “%s”"
msgstr ""
-#: gio/gdbusmessage.c:1511 gio/gdbusmessage.c:1787 gio/gdbusmessage.c:1998
+#: gio/gdbusmessage.c:1509 gio/gdbusmessage.c:1785 gio/gdbusmessage.c:1996
msgid "Value nested too deeply"
msgstr ""
-#: gio/gdbusmessage.c:1679
+#: gio/gdbusmessage.c:1677
#, c-format
msgid "Parsed value “%s” is not a valid D-Bus object path"
msgstr ""
-#: gio/gdbusmessage.c:1703
+#: gio/gdbusmessage.c:1701
#, c-format
msgid "Parsed value “%s” is not a valid D-Bus signature"
msgstr ""
-#: gio/gdbusmessage.c:1754
+#: gio/gdbusmessage.c:1752
#, c-format
msgid ""
"Encountered array of length %u byte. Maximum length is 2<<26 bytes (64 MiB)."
msgid_plural ""
"Encountered array of length %u bytes. Maximum length is 2<<26 bytes (64 MiB)."
msgstr[0] ""
+msgstr[1] ""
-#: gio/gdbusmessage.c:1774
+#: gio/gdbusmessage.c:1772
#, c-format
msgid ""
"Encountered array of type “a%c”, expected to have a length a multiple of %u "
"bytes, but found to be %u bytes in length"
msgstr ""
-#: gio/gdbusmessage.c:1928 gio/gdbusmessage.c:2647
+#: gio/gdbusmessage.c:1926 gio/gdbusmessage.c:2645
msgid "Empty structures (tuples) are not allowed in D-Bus"
msgstr ""
-#: gio/gdbusmessage.c:1982
+#: gio/gdbusmessage.c:1980
#, c-format
msgid "Parsed value “%s” for variant is not a valid D-Bus signature"
msgstr ""
-#: gio/gdbusmessage.c:2023
+#: gio/gdbusmessage.c:2021
#, c-format
msgid ""
"Error deserializing GVariant with type string “%s” from the D-Bus wire format"
msgstr ""
-#: gio/gdbusmessage.c:2208
+#: gio/gdbusmessage.c:2206
#, c-format
msgid ""
"Invalid endianness value. Expected 0x6c (“l”) or 0x42 (“B”) but found value "
"0x%02x"
msgstr ""
-#: gio/gdbusmessage.c:2227
+#: gio/gdbusmessage.c:2225
#, c-format
msgid "Invalid major protocol version. Expected 1 but found %d"
msgstr ""
-#: gio/gdbusmessage.c:2285 gio/gdbusmessage.c:2883
+#: gio/gdbusmessage.c:2283 gio/gdbusmessage.c:2881
msgid "Signature header found but is not of type signature"
msgstr ""
-#: gio/gdbusmessage.c:2297
+#: gio/gdbusmessage.c:2295
#, c-format
msgid "Signature header with signature “%s” found but message body is empty"
msgstr ""
-#: gio/gdbusmessage.c:2312
+#: gio/gdbusmessage.c:2310
#, c-format
msgid "Parsed value “%s” is not a valid D-Bus signature (for body)"
msgstr ""
-#: gio/gdbusmessage.c:2344
+#: gio/gdbusmessage.c:2342
#, c-format
msgid "No signature header in message but the message body is %u byte"
msgid_plural "No signature header in message but the message body is %u bytes"
msgstr[0] ""
+msgstr[1] ""
-#: gio/gdbusmessage.c:2354
+#: gio/gdbusmessage.c:2352
msgid "Cannot deserialize message: "
msgstr ""
-#: gio/gdbusmessage.c:2700
+#: gio/gdbusmessage.c:2698
#, c-format
msgid ""
"Error serializing GVariant with type string “%s” to the D-Bus wire format"
msgstr ""
-#: gio/gdbusmessage.c:2837
+#: gio/gdbusmessage.c:2835
#, c-format
msgid ""
"Number of file descriptors in message (%d) differs from header field (%d)"
msgstr ""
-#: gio/gdbusmessage.c:2845
+#: gio/gdbusmessage.c:2843
msgid "Cannot serialize message: "
msgstr ""
-#: gio/gdbusmessage.c:2898
+#: gio/gdbusmessage.c:2896
#, c-format
msgid "Message body has signature “%s” but there is no signature header"
msgstr ""
-#: gio/gdbusmessage.c:2908
+#: gio/gdbusmessage.c:2906
#, c-format
msgid ""
"Message body has type signature “%s” but signature in the header field is "
"“%s”"
msgstr ""
-#: gio/gdbusmessage.c:2924
+#: gio/gdbusmessage.c:2922
#, c-format
msgid "Message body is empty but signature in the header field is “(%s)”"
msgstr ""
-#: gio/gdbusmessage.c:3479
+#: gio/gdbusmessage.c:3477
#, c-format
msgid "Error return with body of type “%s”"
msgstr ""
-#: gio/gdbusmessage.c:3487
+#: gio/gdbusmessage.c:3485
msgid "Error return with empty body"
-msgstr ""
+msgstr "შეცდომა ცარიელი სხეულით დაბრუნდა"
-#: gio/gdbusprivate.c:2187
+#: gio/gdbusprivate.c:2185
#, c-format
msgid "(Type any character to close this window)\n"
msgstr "(ფანჯრის დასახურად დააჭირეთ ნებისმიერ კლავიშას)\n"
-#: gio/gdbusprivate.c:2373
+#: gio/gdbusprivate.c:2371
#, c-format
msgid "Session dbus not running, and autolaunch failed"
msgstr ""
-#: gio/gdbusprivate.c:2396
+#: gio/gdbusprivate.c:2394
#, c-format
msgid "Unable to get Hardware profile: %s"
msgstr "აპარატურის პროფილის მიღების შეცდომა: %s"
#. Translators: Both placeholders are file paths
-#: gio/gdbusprivate.c:2447
+#: gio/gdbusprivate.c:2445
#, c-format
msgid "Unable to load %s or %s: "
msgstr "%s-ის ან %s-ის ჩატვირთვის შეცდომა: "
-#: gio/gdbusproxy.c:1575
+#: gio/gdbusproxy.c:1573
#, c-format
msgid "Error calling StartServiceByName for %s: "
msgstr ""
-#: gio/gdbusproxy.c:1598
+#: gio/gdbusproxy.c:1596
#, c-format
msgid "Unexpected reply %d from StartServiceByName(\"%s\") method"
msgstr ""
-#: gio/gdbusproxy.c:2709 gio/gdbusproxy.c:2844
+#: gio/gdbusproxy.c:2707 gio/gdbusproxy.c:2842
#, c-format
msgid ""
"Cannot invoke method; proxy is for the well-known name %s without an owner, "
"and proxy was constructed with the G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START flag"
msgstr ""
-#: gio/gdbusserver.c:765
+#: gio/gdbusserver.c:767
msgid "Abstract namespace not supported"
msgstr ""
-#: gio/gdbusserver.c:857
+#: gio/gdbusserver.c:860
msgid "Cannot specify nonce file when creating a server"
msgstr ""
-#: gio/gdbusserver.c:939
+#: gio/gdbusserver.c:942
#, c-format
msgid "Error writing nonce file at “%s”: %s"
msgstr ""
-#: gio/gdbusserver.c:1114
+#: gio/gdbusserver.c:1117
#, c-format
msgid "The string “%s” is not a valid D-Bus GUID"
msgstr ""
-#: gio/gdbusserver.c:1152
+#: gio/gdbusserver.c:1157
#, c-format
msgid "Cannot listen on unsupported transport “%s”"
msgstr ""
-#: gio/gdbus-tool.c:113
+#: gio/gdbus-tool.c:111
#, c-format
msgid ""
"Commands:\n"
@@ -966,358 +960,358 @@ msgid ""
"Use “%s COMMAND --help” to get help on each command.\n"
msgstr ""
-#: gio/gdbus-tool.c:204 gio/gdbus-tool.c:276 gio/gdbus-tool.c:348
-#: gio/gdbus-tool.c:372 gio/gdbus-tool.c:862 gio/gdbus-tool.c:1247
-#: gio/gdbus-tool.c:1734
+#: gio/gdbus-tool.c:202 gio/gdbus-tool.c:274 gio/gdbus-tool.c:346
+#: gio/gdbus-tool.c:370 gio/gdbus-tool.c:860 gio/gdbus-tool.c:1245
+#: gio/gdbus-tool.c:1733
#, c-format
msgid "Error: %s\n"
msgstr "შეცდომა: %s\n"
-#: gio/gdbus-tool.c:215 gio/gdbus-tool.c:289 gio/gdbus-tool.c:1750
+#: gio/gdbus-tool.c:213 gio/gdbus-tool.c:287 gio/gdbus-tool.c:1749
#, c-format
msgid "Error parsing introspection XML: %s\n"
msgstr ""
-#: gio/gdbus-tool.c:253
+#: gio/gdbus-tool.c:251
#, c-format
msgid "Error: %s is not a valid name\n"
msgstr "შეცდომა: არასწორი სახელი: \"%s\"\n"
-#: gio/gdbus-tool.c:258 gio/gdbus-tool.c:748 gio/gdbus-tool.c:1066
-#: gio/gdbus-tool.c:1900 gio/gdbus-tool.c:2140
+#: gio/gdbus-tool.c:256 gio/gdbus-tool.c:746 gio/gdbus-tool.c:1064
+#: gio/gdbus-tool.c:1899 gio/gdbus-tool.c:2139
#, c-format
msgid "Error: %s is not a valid object path\n"
msgstr ""
-#: gio/gdbus-tool.c:406
+#: gio/gdbus-tool.c:404
msgid "Connect to the system bus"
-msgstr ""
+msgstr "სისტემურ მატარებელთან მიერთება"
-#: gio/gdbus-tool.c:407
+#: gio/gdbus-tool.c:405
msgid "Connect to the session bus"
-msgstr ""
+msgstr "სესიის მატარებელთან მიერთება"
-#: gio/gdbus-tool.c:408
+#: gio/gdbus-tool.c:406
msgid "Connect to given D-Bus address"
-msgstr ""
+msgstr "მითითებულ D-Bus-ს მისამართზე მიერთება"
-#: gio/gdbus-tool.c:418
+#: gio/gdbus-tool.c:416
msgid "Connection Endpoint Options:"
msgstr ""
-#: gio/gdbus-tool.c:419
+#: gio/gdbus-tool.c:417
msgid "Options specifying the connection endpoint"
msgstr ""
-#: gio/gdbus-tool.c:442
+#: gio/gdbus-tool.c:440
#, c-format
msgid "No connection endpoint specified"
msgstr ""
-#: gio/gdbus-tool.c:452
+#: gio/gdbus-tool.c:450
#, c-format
msgid "Multiple connection endpoints specified"
msgstr ""
-#: gio/gdbus-tool.c:525
+#: gio/gdbus-tool.c:523
#, c-format
msgid ""
"Warning: According to introspection data, interface “%s” does not exist\n"
msgstr ""
-#: gio/gdbus-tool.c:534
+#: gio/gdbus-tool.c:532
#, c-format
msgid ""
"Warning: According to introspection data, method “%s” does not exist on "
"interface “%s”\n"
msgstr ""
-#: gio/gdbus-tool.c:596
+#: gio/gdbus-tool.c:594
msgid "Optional destination for signal (unique name)"
msgstr ""
-#: gio/gdbus-tool.c:597
+#: gio/gdbus-tool.c:595
msgid "Object path to emit signal on"
msgstr ""
-#: gio/gdbus-tool.c:598
+#: gio/gdbus-tool.c:596
msgid "Signal and interface name"
msgstr ""
-#: gio/gdbus-tool.c:631
+#: gio/gdbus-tool.c:629
msgid "Emit a signal."
-msgstr ""
+msgstr "სიგნალის გამოცემა."
-#: gio/gdbus-tool.c:686 gio/gdbus-tool.c:1003 gio/gdbus-tool.c:1837
-#: gio/gdbus-tool.c:2069 gio/gdbus-tool.c:2289
+#: gio/gdbus-tool.c:684 gio/gdbus-tool.c:1001 gio/gdbus-tool.c:1836
+#: gio/gdbus-tool.c:2068 gio/gdbus-tool.c:2288
#, c-format
msgid "Error connecting: %s\n"
msgstr "შეერთების შეცდომა: %s\n"
-#: gio/gdbus-tool.c:706
+#: gio/gdbus-tool.c:704
#, c-format
msgid "Error: %s is not a valid unique bus name.\n"
msgstr "შეცდომა: %s მატარებლის უნიკალურ სახელს არ წარმოადგენს.\n"
-#: gio/gdbus-tool.c:725 gio/gdbus-tool.c:1046 gio/gdbus-tool.c:1880
+#: gio/gdbus-tool.c:723 gio/gdbus-tool.c:1044 gio/gdbus-tool.c:1879
msgid "Error: Object path is not specified\n"
-msgstr ""
+msgstr "შეცდომა: ობიექტის ბილიკი მითითებული არაა\n"
-#: gio/gdbus-tool.c:768
+#: gio/gdbus-tool.c:766
msgid "Error: Signal name is not specified\n"
-msgstr ""
+msgstr "შეცდომა: სიგნალის სახელი მითითებული არაა\n"
-#: gio/gdbus-tool.c:782
+#: gio/gdbus-tool.c:780
#, c-format
msgid "Error: Signal name “%s” is invalid\n"
-msgstr ""
+msgstr "შეცდომა: სიგნალის სახელი \"%s\" არასწორია\n"
-#: gio/gdbus-tool.c:794
+#: gio/gdbus-tool.c:792
#, c-format
msgid "Error: %s is not a valid interface name\n"
msgstr "შეცდომა: %s ინტერფეისის სწორ სახელს არ წარმოადგენს\n"
-#: gio/gdbus-tool.c:800
+#: gio/gdbus-tool.c:798
#, c-format
msgid "Error: %s is not a valid member name\n"
msgstr "შეცდომა: %s წევრის არასწორი სახელია\n"
#. Use the original non-"parse-me-harder" error
-#: gio/gdbus-tool.c:837 gio/gdbus-tool.c:1178
+#: gio/gdbus-tool.c:835 gio/gdbus-tool.c:1176
#, c-format
msgid "Error parsing parameter %d: %s\n"
-msgstr ""
+msgstr "შეცდომა %d პარამეტრის დამუშავებისას: %s\n"
-#: gio/gdbus-tool.c:869
+#: gio/gdbus-tool.c:867
#, c-format
msgid "Error flushing connection: %s\n"
msgstr "შეერთების მოცილების შეცდომა: %s\n"
-#: gio/gdbus-tool.c:897
+#: gio/gdbus-tool.c:895
msgid "Destination name to invoke method on"
msgstr ""
-#: gio/gdbus-tool.c:898
+#: gio/gdbus-tool.c:896
msgid "Object path to invoke method on"
msgstr ""
-#: gio/gdbus-tool.c:899
+#: gio/gdbus-tool.c:897
msgid "Method and interface name"
msgstr ""
-#: gio/gdbus-tool.c:900
+#: gio/gdbus-tool.c:898
msgid "Timeout in seconds"
msgstr "ვადა წამებში"
-#: gio/gdbus-tool.c:901
+#: gio/gdbus-tool.c:899
msgid "Allow interactive authorization"
msgstr ""
-#: gio/gdbus-tool.c:948
+#: gio/gdbus-tool.c:946
msgid "Invoke a method on a remote object."
msgstr ""
-#: gio/gdbus-tool.c:1020 gio/gdbus-tool.c:1854 gio/gdbus-tool.c:2094
+#: gio/gdbus-tool.c:1018 gio/gdbus-tool.c:1853 gio/gdbus-tool.c:2093
msgid "Error: Destination is not specified\n"
msgstr ""
-#: gio/gdbus-tool.c:1031 gio/gdbus-tool.c:1871 gio/gdbus-tool.c:2105
+#: gio/gdbus-tool.c:1029 gio/gdbus-tool.c:1870 gio/gdbus-tool.c:2104
#, c-format
msgid "Error: %s is not a valid bus name\n"
msgstr "შეცდომა: %s მატარებლის სწორ სახელს არ წარმოადგენს.\n"
-#: gio/gdbus-tool.c:1081
+#: gio/gdbus-tool.c:1079
msgid "Error: Method name is not specified\n"
msgstr ""
-#: gio/gdbus-tool.c:1092
+#: gio/gdbus-tool.c:1090
#, c-format
msgid "Error: Method name “%s” is invalid\n"
msgstr ""
-#: gio/gdbus-tool.c:1170
+#: gio/gdbus-tool.c:1168
#, c-format
msgid "Error parsing parameter %d of type “%s”: %s\n"
msgstr ""
-#: gio/gdbus-tool.c:1196
+#: gio/gdbus-tool.c:1194
#, c-format
msgid "Error adding handle %d: %s\n"
msgstr "ფაილის \"%d\" წაკითხვის შეცდომა: %s\n"
-#: gio/gdbus-tool.c:1696
+#: gio/gdbus-tool.c:1695
msgid "Destination name to introspect"
msgstr ""
-#: gio/gdbus-tool.c:1697
+#: gio/gdbus-tool.c:1696
msgid "Object path to introspect"
msgstr ""
-#: gio/gdbus-tool.c:1698
+#: gio/gdbus-tool.c:1697
msgid "Print XML"
msgstr "XML-ის დაბეჭდვა"
-#: gio/gdbus-tool.c:1699
+#: gio/gdbus-tool.c:1698
msgid "Introspect children"
msgstr ""
-#: gio/gdbus-tool.c:1700
+#: gio/gdbus-tool.c:1699
msgid "Only print properties"
msgstr ""
-#: gio/gdbus-tool.c:1789
+#: gio/gdbus-tool.c:1788
msgid "Introspect a remote object."
msgstr ""
-#: gio/gdbus-tool.c:1995
+#: gio/gdbus-tool.c:1994
msgid "Destination name to monitor"
msgstr ""
-#: gio/gdbus-tool.c:1996
+#: gio/gdbus-tool.c:1995
msgid "Object path to monitor"
msgstr ""
-#: gio/gdbus-tool.c:2021
+#: gio/gdbus-tool.c:2020
msgid "Monitor a remote object."
msgstr "დაშორებული ობიექტის მონიტორინგი."
-#: gio/gdbus-tool.c:2079
+#: gio/gdbus-tool.c:2078
msgid "Error: can’t monitor a non-message-bus connection\n"
msgstr ""
-#: gio/gdbus-tool.c:2203
+#: gio/gdbus-tool.c:2202
msgid "Service to activate before waiting for the other one (well-known name)"
msgstr ""
-#: gio/gdbus-tool.c:2206
+#: gio/gdbus-tool.c:2205
msgid ""
"Timeout to wait for before exiting with an error (seconds); 0 for no timeout "
"(default)"
msgstr ""
-#: gio/gdbus-tool.c:2254
+#: gio/gdbus-tool.c:2253
msgid "[OPTION…] BUS-NAME"
msgstr ""
-#: gio/gdbus-tool.c:2255
+#: gio/gdbus-tool.c:2254
msgid "Wait for a bus name to appear."
msgstr ""
-#: gio/gdbus-tool.c:2331
+#: gio/gdbus-tool.c:2330
msgid "Error: A service to activate for must be specified.\n"
msgstr ""
-#: gio/gdbus-tool.c:2336
+#: gio/gdbus-tool.c:2335
msgid "Error: A service to wait for must be specified.\n"
msgstr ""
-#: gio/gdbus-tool.c:2341
+#: gio/gdbus-tool.c:2340
msgid "Error: Too many arguments.\n"
msgstr ""
-#: gio/gdbus-tool.c:2349 gio/gdbus-tool.c:2356
+#: gio/gdbus-tool.c:2348 gio/gdbus-tool.c:2355
#, c-format
msgid "Error: %s is not a valid well-known bus name.\n"
msgstr "შეცდომა: %s მატარებლის ცნობილ სახელს არ წარმოადგენს.\n"
-#: gio/gdebugcontrollerdbus.c:360
+#: gio/gdebugcontrollerdbus.c:358
#, c-format
msgid "Not authorized to change debug settings"
msgstr ""
-#: gio/gdesktopappinfo.c:2182 gio/gdesktopappinfo.c:5113
+#: gio/gdesktopappinfo.c:2178 gio/gdesktopappinfo.c:5105
msgid "Unnamed"
msgstr "უსახელო"
-#: gio/gdesktopappinfo.c:2592
+#: gio/gdesktopappinfo.c:2588
msgid "Desktop file didn’t specify Exec field"
msgstr ""
-#: gio/gdesktopappinfo.c:2891
+#: gio/gdesktopappinfo.c:2896
msgid "Unable to find terminal required for application"
msgstr ""
-#: gio/gdesktopappinfo.c:3631
+#: gio/gdesktopappinfo.c:3625
#, c-format
msgid "Can’t create user application configuration folder %s: %s"
msgstr ""
-#: gio/gdesktopappinfo.c:3635
+#: gio/gdesktopappinfo.c:3629
#, c-format
msgid "Can’t create user MIME configuration folder %s: %s"
msgstr ""
-#: gio/gdesktopappinfo.c:3877 gio/gdesktopappinfo.c:3901
+#: gio/gdesktopappinfo.c:3871 gio/gdesktopappinfo.c:3895
msgid "Application information lacks an identifier"
msgstr ""
-#: gio/gdesktopappinfo.c:4137
+#: gio/gdesktopappinfo.c:4131
#, c-format
msgid "Can’t create user desktop file %s"
msgstr ""
-#: gio/gdesktopappinfo.c:4273
+#: gio/gdesktopappinfo.c:4267
#, c-format
msgid "Custom definition for %s"
msgstr ""
-#: gio/gdrive.c:419
+#: gio/gdrive.c:417
msgid "drive doesn’t implement eject"
msgstr ""
#. Translators: This is an error
#. * message for drive objects that
#. * don't implement any of eject or eject_with_operation.
-#: gio/gdrive.c:497
+#: gio/gdrive.c:495
msgid "drive doesn’t implement eject or eject_with_operation"
msgstr ""
-#: gio/gdrive.c:573
+#: gio/gdrive.c:571
msgid "drive doesn’t implement polling for media"
msgstr ""
-#: gio/gdrive.c:780
+#: gio/gdrive.c:778
msgid "drive doesn’t implement start"
msgstr ""
-#: gio/gdrive.c:882
+#: gio/gdrive.c:880
msgid "drive doesn’t implement stop"
msgstr ""
-#: gio/gdtlsconnection.c:1188 gio/gtlsconnection.c:957
+#: gio/gdtlsconnection.c:1186 gio/gtlsconnection.c:955
msgid "TLS backend does not implement TLS binding retrieval"
msgstr ""
-#: gio/gdummytlsbackend.c:197 gio/gdummytlsbackend.c:323
-#: gio/gdummytlsbackend.c:515
+#: gio/gdummytlsbackend.c:195 gio/gdummytlsbackend.c:321
+#: gio/gdummytlsbackend.c:513
msgid "TLS support is not available"
msgstr ""
-#: gio/gdummytlsbackend.c:425
+#: gio/gdummytlsbackend.c:423
msgid "DTLS support is not available"
msgstr ""
-#: gio/gemblem.c:325
+#: gio/gemblem.c:323
#, c-format
msgid "Can’t handle version %d of GEmblem encoding"
msgstr ""
-#: gio/gemblem.c:335
+#: gio/gemblem.c:333
#, c-format
msgid "Malformed number of tokens (%d) in GEmblem encoding"
msgstr ""
-#: gio/gemblemedicon.c:364
+#: gio/gemblemedicon.c:362
#, c-format
msgid "Can’t handle version %d of GEmblemedIcon encoding"
msgstr ""
-#: gio/gemblemedicon.c:374
+#: gio/gemblemedicon.c:372
#, c-format
msgid "Malformed number of tokens (%d) in GEmblemedIcon encoding"
msgstr ""
-#: gio/gemblemedicon.c:397
+#: gio/gemblemedicon.c:395
msgid "Expected a GEmblem for GEmblemedIcon"
msgstr ""
@@ -1325,218 +1319,213 @@ msgstr ""
#. * trying to find the enclosing (user visible)
#. * mount of a file, but none exists.
#.
-#: gio/gfile.c:1594
+#: gio/gfile.c:1579
msgid "Containing mount does not exist"
msgstr ""
-#: gio/gfile.c:2641 gio/glocalfile.c:2500
+#: gio/gfile.c:2626 gio/glocalfile.c:2486
msgid "Can’t copy over directory"
msgstr ""
-#: gio/gfile.c:2701
+#: gio/gfile.c:2686
msgid "Can’t copy directory over directory"
msgstr "საქაღალდის საქაღალდეზე კოპირება შეუძლებელია"
-#: gio/gfile.c:2709
+#: gio/gfile.c:2694
msgid "Target file exists"
msgstr "სამიზნე ფაილი უკვე არსებობს"
-#: gio/gfile.c:2728
+#: gio/gfile.c:2713
msgid "Can’t recursively copy directory"
msgstr "საქაღალდის რეკურსიულად კოპირება შეუძლებელია"
-#: gio/gfile.c:3029
+#: gio/gfile.c:3014
msgid "Splice not supported"
msgstr ""
-#: gio/gfile.c:3033
+#: gio/gfile.c:3018
#, c-format
msgid "Error splicing file: %s"
msgstr ""
-#: gio/gfile.c:3185
+#: gio/gfile.c:3170
msgid "Copy (reflink/clone) between mounts is not supported"
msgstr ""
-#: gio/gfile.c:3189
+#: gio/gfile.c:3174
msgid "Copy (reflink/clone) is not supported or invalid"
msgstr ""
-#: gio/gfile.c:3194
+#: gio/gfile.c:3179
msgid "Copy (reflink/clone) is not supported or didn’t work"
msgstr ""
-#: gio/gfile.c:3259
+#: gio/gfile.c:3244
msgid "Can’t copy special file"
-msgstr ""
+msgstr "სპეციალური ფაილის კოპირება შეუძლებელია"
-#: gio/gfile.c:4153
+#: gio/gfile.c:4138
msgid "Invalid symlink value given"
-msgstr ""
+msgstr "სიმბმბულის მითითებული მნიშვნელობა არასწორია"
-#: gio/gfile.c:4163 glib/gfileutils.c:2335
+#: gio/gfile.c:4148 glib/gfileutils.c:2333
msgid "Symbolic links not supported"
msgstr "სიმბოლური ბმების გამოყენება არაა რეალიზებული"
-#: gio/gfile.c:4450
+#: gio/gfile.c:4316
msgid "Trash not supported"
msgstr "ნაგავი მხარდაუჭერელია"
-#: gio/gfile.c:4562
+#: gio/gfile.c:4428
#, c-format
msgid "File names cannot contain “%c”"
msgstr ""
-#: gio/gfile.c:6993 gio/gfile.c:7119
-#, c-format
-msgid "Failed to create a temporary directory for template “%s”: %s"
-msgstr ""
-
-#: gio/gfile.c:7408 gio/gvolume.c:366
+#: gio/gfile.c:7028 gio/gvolume.c:364
msgid "volume doesn’t implement mount"
msgstr ""
-#: gio/gfile.c:7522 gio/gfile.c:7599
+#: gio/gfile.c:7142 gio/gfile.c:7190
msgid "No application is registered as handling this file"
msgstr "ამ ფაილის გასახსნელი პროგრამა დარეგისტრირებული არაა"
-#: gio/gfileenumerator.c:214
+#: gio/gfileenumerator.c:212
msgid "Enumerator is closed"
msgstr ""
-#: gio/gfileenumerator.c:221 gio/gfileenumerator.c:280
-#: gio/gfileenumerator.c:379 gio/gfileenumerator.c:478
+#: gio/gfileenumerator.c:219 gio/gfileenumerator.c:278
+#: gio/gfileenumerator.c:377 gio/gfileenumerator.c:476
msgid "File enumerator has outstanding operation"
msgstr ""
-#: gio/gfileenumerator.c:370 gio/gfileenumerator.c:469
+#: gio/gfileenumerator.c:368 gio/gfileenumerator.c:467
msgid "File enumerator is already closed"
msgstr ""
-#: gio/gfileicon.c:252
+#: gio/gfileicon.c:250
#, c-format
msgid "Can’t handle version %d of GFileIcon encoding"
msgstr ""
-#: gio/gfileicon.c:262
+#: gio/gfileicon.c:260
msgid "Malformed input data for GFileIcon"
msgstr ""
-#: gio/gfileinputstream.c:151 gio/gfileinputstream.c:396
-#: gio/gfileiostream.c:169 gio/gfileoutputstream.c:166
-#: gio/gfileoutputstream.c:499
+#: gio/gfileinputstream.c:149 gio/gfileinputstream.c:394
+#: gio/gfileiostream.c:167 gio/gfileoutputstream.c:164
+#: gio/gfileoutputstream.c:497
msgid "Stream doesn’t support query_info"
msgstr ""
-#: gio/gfileinputstream.c:327 gio/gfileiostream.c:381
-#: gio/gfileoutputstream.c:373
+#: gio/gfileinputstream.c:325 gio/gfileiostream.c:379
+#: gio/gfileoutputstream.c:371
msgid "Seek not supported on stream"
msgstr "ნაკადში გადახვევა მხარდაუჭერელია"
-#: gio/gfileinputstream.c:371
+#: gio/gfileinputstream.c:369
msgid "Truncate not allowed on input stream"
msgstr ""
-#: gio/gfileiostream.c:457 gio/gfileoutputstream.c:449
+#: gio/gfileiostream.c:455 gio/gfileoutputstream.c:447
msgid "Truncate not supported on stream"
msgstr "ნაკადის მოკვეთა მხარდაუჭერელია"
-#: gio/ghttpproxy.c:93 gio/gresolver.c:460 gio/gresolver.c:613
-#: glib/gconvert.c:1829
+#: gio/ghttpproxy.c:91 gio/gresolver.c:458 gio/gresolver.c:611
+#: glib/gconvert.c:1825
msgid "Invalid hostname"
msgstr "ჰოსტის არასწორი სახელი"
-#: gio/ghttpproxy.c:145
+#: gio/ghttpproxy.c:143
msgid "Bad HTTP proxy reply"
msgstr ""
-#: gio/ghttpproxy.c:161
+#: gio/ghttpproxy.c:159
msgid "HTTP proxy connection not allowed"
msgstr ""
-#: gio/ghttpproxy.c:166
+#: gio/ghttpproxy.c:164
msgid "HTTP proxy authentication failed"
msgstr ""
-#: gio/ghttpproxy.c:169
+#: gio/ghttpproxy.c:167
msgid "HTTP proxy authentication required"
msgstr ""
-#: gio/ghttpproxy.c:173
+#: gio/ghttpproxy.c:171
#, c-format
msgid "HTTP proxy connection failed: %i"
msgstr ""
-#: gio/ghttpproxy.c:268
+#: gio/ghttpproxy.c:266
msgid "HTTP proxy response too big"
msgstr ""
-#: gio/ghttpproxy.c:285
+#: gio/ghttpproxy.c:283
msgid "HTTP proxy server closed connection unexpectedly."
msgstr ""
-#: gio/gicon.c:300
+#: gio/gicon.c:298
#, c-format
msgid "Wrong number of tokens (%d)"
msgstr ""
-#: gio/gicon.c:320
+#: gio/gicon.c:318
#, c-format
msgid "No type for class name %s"
msgstr ""
-#: gio/gicon.c:330
+#: gio/gicon.c:328
#, c-format
msgid "Type %s does not implement the GIcon interface"
msgstr ""
-#: gio/gicon.c:341
+#: gio/gicon.c:339
#, c-format
msgid "Type %s is not classed"
msgstr ""
-#: gio/gicon.c:355
+#: gio/gicon.c:353
#, c-format
msgid "Malformed version number: %s"
msgstr ""
-#: gio/gicon.c:369
+#: gio/gicon.c:367
#, c-format
msgid "Type %s does not implement from_tokens() on the GIcon interface"
msgstr ""
-#: gio/gicon.c:471
+#: gio/gicon.c:469
msgid "Can’t handle the supplied version of the icon encoding"
msgstr ""
-#: gio/ginetaddressmask.c:184
+#: gio/ginetaddressmask.c:182
msgid "No address specified"
-msgstr ""
+msgstr "მისამართი მითითებული არაა"
-#: gio/ginetaddressmask.c:192
+#: gio/ginetaddressmask.c:190
#, c-format
msgid "Length %u is too long for address"
msgstr ""
-#: gio/ginetaddressmask.c:225
+#: gio/ginetaddressmask.c:223
msgid "Address has bits set beyond prefix length"
msgstr ""
-#: gio/ginetaddressmask.c:302
+#: gio/ginetaddressmask.c:300
#, c-format
msgid "Could not parse “%s” as IP address mask"
msgstr ""
-#: gio/ginetsocketaddress.c:205 gio/ginetsocketaddress.c:222
-#: gio/gnativesocketaddress.c:111 gio/gunixsocketaddress.c:230
+#: gio/ginetsocketaddress.c:203 gio/ginetsocketaddress.c:220
+#: gio/gnativesocketaddress.c:109 gio/gunixsocketaddress.c:228
msgid "Not enough space for socket address"
msgstr ""
-#: gio/ginetsocketaddress.c:237
+#: gio/ginetsocketaddress.c:235
msgid "Unsupported socket address"
msgstr ""
-#: gio/ginputstream.c:190
+#: gio/ginputstream.c:188
msgid "Input stream doesn’t implement read"
msgstr ""
@@ -1546,277 +1535,284 @@ msgstr ""
#. Translators: This is an error you get if there is
#. * already an operation running against this stream when
#. * you try to start one
-#: gio/ginputstream.c:1251 gio/giostream.c:312 gio/goutputstream.c:2210
+#: gio/ginputstream.c:1249 gio/giostream.c:310 gio/goutputstream.c:2208
msgid "Stream has outstanding operation"
msgstr ""
-#: gio/gio-tool.c:162
+#: gio/gio-tool.c:160
msgid "Copy with file"
-msgstr ""
+msgstr "ფაილით კოპირება"
-#: gio/gio-tool.c:166
+#: gio/gio-tool.c:164
msgid "Keep with file when moved"
msgstr ""
-#: gio/gio-tool.c:207
+#: gio/gio-tool.c:205
msgid "“version” takes no arguments"
msgstr "\"version\"-ს არგუმენტები არ აქვს"
-#: gio/gio-tool.c:209 gio/gio-tool.c:225 glib/goption.c:871
+#: gio/gio-tool.c:207 gio/gio-tool.c:223 glib/goption.c:869
msgid "Usage:"
msgstr "გამოყენება:"
-#: gio/gio-tool.c:212
+#: gio/gio-tool.c:210
msgid "Print version information and exit."
-msgstr ""
+msgstr "ვერსიის ინფორმაციის გამოტანა და გასვლა."
-#: gio/gio-tool.c:228
+#: gio/gio-tool.c:226
msgid "Commands:"
msgstr "ბრძანებები:"
-#: gio/gio-tool.c:231
+#: gio/gio-tool.c:229
msgid "Concatenate files to standard output"
msgstr ""
-#: gio/gio-tool.c:232
+#: gio/gio-tool.c:230
msgid "Copy one or more files"
-msgstr ""
+msgstr "ერთი ან მეტი ფაილის კოპირება"
-#: gio/gio-tool.c:233
+#: gio/gio-tool.c:231
msgid "Show information about locations"
msgstr ""
-#: gio/gio-tool.c:234
+#: gio/gio-tool.c:232
msgid "Launch an application from a desktop file"
msgstr ""
-#: gio/gio-tool.c:235
+#: gio/gio-tool.c:233
msgid "List the contents of locations"
msgstr ""
-#: gio/gio-tool.c:236
+#: gio/gio-tool.c:234
msgid "Get or set the handler for a mimetype"
msgstr ""
-#: gio/gio-tool.c:237
+#: gio/gio-tool.c:235
msgid "Create directories"
msgstr "საქაღალდეების შექმნა"
-#: gio/gio-tool.c:238
+#: gio/gio-tool.c:236
msgid "Monitor files and directories for changes"
msgstr ""
-#: gio/gio-tool.c:239
+#: gio/gio-tool.c:237
msgid "Mount or unmount the locations"
msgstr ""
-#: gio/gio-tool.c:240
+#: gio/gio-tool.c:238
msgid "Move one or more files"
-msgstr ""
+msgstr "ერთი ან მეტი ფაილის გადატანა"
-#: gio/gio-tool.c:241
+#: gio/gio-tool.c:239
msgid "Open files with the default application"
msgstr ""
-#: gio/gio-tool.c:242
+#: gio/gio-tool.c:240
msgid "Rename a file"
msgstr ""
-#: gio/gio-tool.c:243
+#: gio/gio-tool.c:241
msgid "Delete one or more files"
msgstr ""
-#: gio/gio-tool.c:244
+#: gio/gio-tool.c:242
msgid "Read from standard input and save"
msgstr ""
-#: gio/gio-tool.c:245
+#: gio/gio-tool.c:243
msgid "Set a file attribute"
msgstr ""
-#: gio/gio-tool.c:246
+#: gio/gio-tool.c:244
msgid "Move files or directories to the trash"
msgstr ""
-#: gio/gio-tool.c:247
+#: gio/gio-tool.c:245
msgid "Lists the contents of locations in a tree"
msgstr ""
-#: gio/gio-tool.c:249
+#: gio/gio-tool.c:247
#, c-format
msgid "Use %s to get detailed help.\n"
msgstr ""
-#: gio/gio-tool-cat.c:89
+#: gio/gio-tool-cat.c:87
msgid "Error writing to stdout"
msgstr ""
#. Translators: commandline placeholder
-#: gio/gio-tool-cat.c:135 gio/gio-tool-info.c:379 gio/gio-tool-list.c:173
-#: gio/gio-tool-mkdir.c:50 gio/gio-tool-monitor.c:39 gio/gio-tool-monitor.c:41
-#: gio/gio-tool-monitor.c:43 gio/gio-tool-monitor.c:45
-#: gio/gio-tool-monitor.c:206 gio/gio-tool-mount.c:1202 gio/gio-tool-open.c:72
-#: gio/gio-tool-remove.c:50 gio/gio-tool-rename.c:47 gio/gio-tool-set.c:93
-#: gio/gio-tool-trash.c:222 gio/gio-tool-tree.c:241
+#: gio/gio-tool-cat.c:133 gio/gio-tool-info.c:340 gio/gio-tool-list.c:172
+#: gio/gio-tool-mkdir.c:48 gio/gio-tool-monitor.c:37 gio/gio-tool-monitor.c:39
+#: gio/gio-tool-monitor.c:41 gio/gio-tool-monitor.c:43
+#: gio/gio-tool-monitor.c:204 gio/gio-tool-mount.c:1199 gio/gio-tool-open.c:70
+#: gio/gio-tool-remove.c:48 gio/gio-tool-rename.c:45 gio/gio-tool-set.c:91
+#: gio/gio-tool-trash.c:220 gio/gio-tool-tree.c:239
msgid "LOCATION"
-msgstr ""
+msgstr "მდებარეობა"
-#: gio/gio-tool-cat.c:140
+#: gio/gio-tool-cat.c:138
msgid "Concatenate files and print to standard output."
msgstr ""
-#: gio/gio-tool-cat.c:142
+#: gio/gio-tool-cat.c:140
msgid ""
"gio cat works just like the traditional cat utility, but using GIO\n"
"locations instead of local files: for example, you can use something\n"
"like smb://server/resource/file.txt as location."
msgstr ""
-#: gio/gio-tool-cat.c:164 gio/gio-tool-info.c:410 gio/gio-tool-mkdir.c:78
-#: gio/gio-tool-monitor.c:231 gio/gio-tool-mount.c:1253 gio/gio-tool-open.c:98
-#: gio/gio-tool-remove.c:74 gio/gio-tool-trash.c:303
+#: gio/gio-tool-cat.c:162 gio/gio-tool-info.c:371 gio/gio-tool-mkdir.c:76
+#: gio/gio-tool-monitor.c:229 gio/gio-tool-mount.c:1250 gio/gio-tool-open.c:96
+#: gio/gio-tool-remove.c:72 gio/gio-tool-trash.c:303
msgid "No locations given"
-msgstr ""
+msgstr "მდებარეობები მითითებული არაა"
-#: gio/gio-tool-copy.c:45 gio/gio-tool-move.c:40
+#: gio/gio-tool-copy.c:43 gio/gio-tool-move.c:38
msgid "No target directory"
msgstr "სამიზნე საქაღალდის გარეშე"
-#: gio/gio-tool-copy.c:46 gio/gio-tool-move.c:41
+#: gio/gio-tool-copy.c:44 gio/gio-tool-move.c:39
msgid "Show progress"
-msgstr ""
+msgstr "მიმდინარეობის ჩვენება"
-#: gio/gio-tool-copy.c:47 gio/gio-tool-move.c:42
+#: gio/gio-tool-copy.c:45 gio/gio-tool-move.c:40
msgid "Prompt before overwrite"
-msgstr ""
+msgstr "კითხვა თავზე გადაწერამდე"
-#: gio/gio-tool-copy.c:48
+#: gio/gio-tool-copy.c:46
msgid "Preserve all attributes"
-msgstr ""
+msgstr "ყველა ატრიბუტის შენარჩუნება"
-#: gio/gio-tool-copy.c:49 gio/gio-tool-move.c:43 gio/gio-tool-save.c:51
+#: gio/gio-tool-copy.c:47 gio/gio-tool-move.c:41 gio/gio-tool-save.c:49
msgid "Backup existing destination files"
msgstr ""
-#: gio/gio-tool-copy.c:50
+#: gio/gio-tool-copy.c:48
msgid "Never follow symbolic links"
msgstr ""
-#: gio/gio-tool-copy.c:51
+#: gio/gio-tool-copy.c:49
msgid "Use default permissions for the destination"
msgstr ""
-#: gio/gio-tool-copy.c:76 gio/gio-tool-move.c:69
+#: gio/gio-tool-copy.c:74 gio/gio-tool-move.c:67
#, c-format
msgid "Transferred %s out of %s (%s/s)"
msgstr ""
#. Translators: commandline placeholder
-#: gio/gio-tool-copy.c:102 gio/gio-tool-move.c:96
+#: gio/gio-tool-copy.c:100 gio/gio-tool-move.c:94
msgid "SOURCE"
-msgstr ""
+msgstr "წყარო"
#. Translators: commandline placeholder
-#: gio/gio-tool-copy.c:102 gio/gio-tool-move.c:96 gio/gio-tool-save.c:162
+#: gio/gio-tool-copy.c:100 gio/gio-tool-move.c:94 gio/gio-tool-save.c:160
msgid "DESTINATION"
-msgstr ""
+msgstr "დანიშნულება"
-#: gio/gio-tool-copy.c:107
+#: gio/gio-tool-copy.c:105
msgid "Copy one or more files from SOURCE to DESTINATION."
msgstr ""
-#: gio/gio-tool-copy.c:109
+#: gio/gio-tool-copy.c:107
msgid ""
"gio copy is similar to the traditional cp utility, but using GIO\n"
"locations instead of local files: for example, you can use something\n"
"like smb://server/resource/file.txt as location."
msgstr ""
-#: gio/gio-tool-copy.c:151
+#: gio/gio-tool-copy.c:149
#, c-format
msgid "Destination %s is not a directory"
msgstr ""
-#: gio/gio-tool-copy.c:198 gio/gio-tool-move.c:188
+#: gio/gio-tool-copy.c:196 gio/gio-tool-move.c:186
#, c-format
msgid "%s: overwrite “%s”? "
msgstr ""
-#: gio/gio-tool-info.c:39
+#: gio/gio-tool-info.c:37
msgid "List writable attributes"
msgstr ""
-#: gio/gio-tool-info.c:40
+#: gio/gio-tool-info.c:38
msgid "Get file system info"
msgstr "სისტემის ინფორმაციის მიღების შეცდომა"
-#: gio/gio-tool-info.c:41 gio/gio-tool-list.c:37
+#: gio/gio-tool-info.c:39 gio/gio-tool-list.c:36
msgid "The attributes to get"
msgstr ""
-#: gio/gio-tool-info.c:41 gio/gio-tool-list.c:37
+#: gio/gio-tool-info.c:39 gio/gio-tool-list.c:36
msgid "ATTRIBUTES"
-msgstr ""
+msgstr "ატრიბუტები"
-#: gio/gio-tool-info.c:42 gio/gio-tool-list.c:40 gio/gio-tool-set.c:36
+#: gio/gio-tool-info.c:40 gio/gio-tool-list.c:39 gio/gio-tool-set.c:34
msgid "Don’t follow symbolic links"
-msgstr ""
+msgstr "სიმბმულების არ-მიყოლა"
-#: gio/gio-tool-info.c:105
+#: gio/gio-tool-info.c:78
msgid "attributes:\n"
msgstr "ატრიბუტები:\n"
-#: gio/gio-tool-info.c:165 gio/gio-tool-info.c:174
+#. Translators: This is a noun and represents and attribute of a file
+#: gio/gio-tool-info.c:134
#, c-format
msgid "display name: %s\n"
msgstr "საჩვენებელი სახელი :%s\n"
-#: gio/gio-tool-info.c:182
+#. Translators: This is a noun and represents and attribute of a file
+#: gio/gio-tool-info.c:139
+#, c-format
+msgid "edit name: %s\n"
+msgstr "სახელის ჩასწორება: %s\n"
+
+#: gio/gio-tool-info.c:145
#, c-format
msgid "name: %s\n"
msgstr "სახელი: %s\n"
-#: gio/gio-tool-info.c:189
+#: gio/gio-tool-info.c:152
#, c-format
msgid "type: %s\n"
msgstr "ტიპი : %s\n"
-#: gio/gio-tool-info.c:195
+#: gio/gio-tool-info.c:158
msgid "size: "
msgstr "ზომა: "
-#: gio/gio-tool-info.c:200
+#: gio/gio-tool-info.c:163
msgid "hidden\n"
msgstr "დამალული\n"
-#: gio/gio-tool-info.c:203
+#: gio/gio-tool-info.c:166
#, c-format
msgid "uri: %s\n"
msgstr "uri: %s\n"
-#: gio/gio-tool-info.c:210
+#: gio/gio-tool-info.c:172
#, c-format
msgid "local path: %s\n"
msgstr "ლოკალური ბილიკი: %s\n"
-#: gio/gio-tool-info.c:244
+#: gio/gio-tool-info.c:205
#, c-format
msgid "unix mount: %s%s %s %s %s\n"
msgstr ""
-#: gio/gio-tool-info.c:325
+#: gio/gio-tool-info.c:286
msgid "Settable attributes:\n"
msgstr ""
-#: gio/gio-tool-info.c:349
+#: gio/gio-tool-info.c:310
msgid "Writable attribute namespaces:\n"
msgstr ""
-#: gio/gio-tool-info.c:384
+#: gio/gio-tool-info.c:345
msgid "Show information about locations."
msgstr ""
-#: gio/gio-tool-info.c:386
+#: gio/gio-tool-info.c:347
msgid ""
"gio info is similar to the traditional ls utility, but using GIO\n"
"locations instead of local files: for example, you can use something\n"
@@ -1826,60 +1822,60 @@ msgid ""
msgstr ""
#. Translators: commandline placeholder
-#: gio/gio-tool-launch.c:56
+#: gio/gio-tool-launch.c:54
msgid "DESKTOP-FILE [FILE-ARG …]"
msgstr ""
-#: gio/gio-tool-launch.c:59
+#: gio/gio-tool-launch.c:57
msgid ""
"Launch an application from a desktop file, passing optional filename "
"arguments to it."
msgstr ""
-#: gio/gio-tool-launch.c:79
+#: gio/gio-tool-launch.c:77
msgid "No desktop file given"
msgstr ""
-#: gio/gio-tool-launch.c:87
+#: gio/gio-tool-launch.c:85
msgid "The launch command is not currently supported on this platform"
msgstr ""
-#: gio/gio-tool-launch.c:100
+#: gio/gio-tool-launch.c:98
#, c-format
msgid "Unable to load ‘%s‘: %s"
msgstr "%s-ის ჩატვირთვის შეცდომა: %s"
-#: gio/gio-tool-launch.c:109
+#: gio/gio-tool-launch.c:107
#, c-format
msgid "Unable to load application information for ‘%s‘"
msgstr ""
-#: gio/gio-tool-launch.c:121
+#: gio/gio-tool-launch.c:119
#, c-format
msgid "Unable to launch application ‘%s’: %s"
msgstr ""
-#: gio/gio-tool-list.c:38 gio/gio-tool-tree.c:34
+#: gio/gio-tool-list.c:37 gio/gio-tool-tree.c:32
msgid "Show hidden files"
-msgstr ""
+msgstr "დამალული ფაილების ჩვენება"
-#: gio/gio-tool-list.c:39
+#: gio/gio-tool-list.c:38
msgid "Use a long listing format"
msgstr ""
-#: gio/gio-tool-list.c:41
+#: gio/gio-tool-list.c:40
msgid "Print display names"
msgstr ""
-#: gio/gio-tool-list.c:42
+#: gio/gio-tool-list.c:41
msgid "Print full URIs"
msgstr ""
-#: gio/gio-tool-list.c:178
+#: gio/gio-tool-list.c:177
msgid "List the contents of the locations."
msgstr ""
-#: gio/gio-tool-list.c:180
+#: gio/gio-tool-list.c:179
msgid ""
"gio list is similar to the traditional ls utility, but using GIO\n"
"locations instead of local files: for example, you can use something\n"
@@ -1888,410 +1884,410 @@ msgid ""
msgstr ""
#. Translators: commandline placeholder
-#: gio/gio-tool-mime.c:73
+#: gio/gio-tool-mime.c:71
msgid "MIMETYPE"
msgstr ""
-#: gio/gio-tool-mime.c:73
+#: gio/gio-tool-mime.c:71
msgid "HANDLER"
msgstr ""
-#: gio/gio-tool-mime.c:78
+#: gio/gio-tool-mime.c:76
msgid "Get or set the handler for a mimetype."
msgstr ""
-#: gio/gio-tool-mime.c:80
+#: gio/gio-tool-mime.c:78
msgid ""
"If no handler is given, lists registered and recommended applications\n"
"for the mimetype. If a handler is given, it is set as the default\n"
"handler for the mimetype."
msgstr ""
-#: gio/gio-tool-mime.c:102
+#: gio/gio-tool-mime.c:100
msgid "Must specify a single mimetype, and maybe a handler"
msgstr ""
-#: gio/gio-tool-mime.c:118
+#: gio/gio-tool-mime.c:116
#, c-format
msgid "No default applications for “%s”\n"
msgstr ""
-#: gio/gio-tool-mime.c:124
+#: gio/gio-tool-mime.c:122
#, c-format
msgid "Default application for “%s”: %s\n"
msgstr ""
-#: gio/gio-tool-mime.c:129
+#: gio/gio-tool-mime.c:127
msgid "Registered applications:\n"
msgstr ""
-#: gio/gio-tool-mime.c:131
+#: gio/gio-tool-mime.c:129
msgid "No registered applications\n"
msgstr ""
-#: gio/gio-tool-mime.c:142
+#: gio/gio-tool-mime.c:140
msgid "Recommended applications:\n"
msgstr ""
-#: gio/gio-tool-mime.c:144
+#: gio/gio-tool-mime.c:142
msgid "No recommended applications\n"
msgstr ""
-#: gio/gio-tool-mime.c:164
+#: gio/gio-tool-mime.c:162
#, c-format
msgid "Failed to load info for handler “%s”"
msgstr ""
-#: gio/gio-tool-mime.c:170
+#: gio/gio-tool-mime.c:168
#, c-format
msgid "Failed to set “%s” as the default handler for “%s”: %s\n"
msgstr ""
-#: gio/gio-tool-mkdir.c:33
+#: gio/gio-tool-mkdir.c:31
msgid "Create parent directories"
msgstr ""
-#: gio/gio-tool-mkdir.c:54
+#: gio/gio-tool-mkdir.c:52
msgid "Create directories."
msgstr ""
-#: gio/gio-tool-mkdir.c:56
+#: gio/gio-tool-mkdir.c:54
msgid ""
"gio mkdir is similar to the traditional mkdir utility, but using GIO\n"
"locations instead of local files: for example, you can use something\n"
"like smb://server/resource/mydir as location."
msgstr ""
-#: gio/gio-tool-monitor.c:39
+#: gio/gio-tool-monitor.c:37
msgid "Monitor a directory (default: depends on type)"
msgstr ""
-#: gio/gio-tool-monitor.c:41
+#: gio/gio-tool-monitor.c:39
msgid "Monitor a file (default: depends on type)"
msgstr ""
-#: gio/gio-tool-monitor.c:43
+#: gio/gio-tool-monitor.c:41
msgid "Monitor a file directly (notices changes made via hardlinks)"
msgstr ""
-#: gio/gio-tool-monitor.c:45
+#: gio/gio-tool-monitor.c:43
msgid "Monitors a file directly, but doesn’t report changes"
msgstr ""
-#: gio/gio-tool-monitor.c:47
+#: gio/gio-tool-monitor.c:45
msgid "Report moves and renames as simple deleted/created events"
msgstr ""
-#: gio/gio-tool-monitor.c:49
+#: gio/gio-tool-monitor.c:47
msgid "Watch for mount events"
msgstr ""
-#: gio/gio-tool-monitor.c:211
+#: gio/gio-tool-monitor.c:209
msgid "Monitor files or directories for changes."
msgstr ""
-#: gio/gio-tool-mount.c:65
+#: gio/gio-tool-mount.c:63
msgid "Mount as mountable"
msgstr ""
-#: gio/gio-tool-mount.c:66
+#: gio/gio-tool-mount.c:64
msgid "Mount volume with device file, or other identifier"
msgstr ""
-#: gio/gio-tool-mount.c:66
+#: gio/gio-tool-mount.c:64
msgid "ID"
-msgstr "ID"
+msgstr "აიდი"
-#: gio/gio-tool-mount.c:67
+#: gio/gio-tool-mount.c:65
msgid "Unmount"
msgstr "მოხსნა"
-#: gio/gio-tool-mount.c:68
+#: gio/gio-tool-mount.c:66
msgid "Eject"
-msgstr "გამოღება"
+msgstr "მოხსნა"
-#: gio/gio-tool-mount.c:69
+#: gio/gio-tool-mount.c:67
msgid "Stop drive with device file"
msgstr ""
-#: gio/gio-tool-mount.c:69
+#: gio/gio-tool-mount.c:67
msgid "DEVICE"
msgstr "მოწყობილობა"
-#: gio/gio-tool-mount.c:70
+#: gio/gio-tool-mount.c:68
msgid "Unmount all mounts with the given scheme"
msgstr ""
-#: gio/gio-tool-mount.c:70
+#: gio/gio-tool-mount.c:68
msgid "SCHEME"
-msgstr ""
+msgstr "სქემა"
-#: gio/gio-tool-mount.c:71
+#: gio/gio-tool-mount.c:69
msgid "Ignore outstanding file operations when unmounting or ejecting"
msgstr ""
-#: gio/gio-tool-mount.c:72
+#: gio/gio-tool-mount.c:70
msgid "Use an anonymous user when authenticating"
msgstr ""
#. Translator: List here is a verb as in 'List all mounts'
-#: gio/gio-tool-mount.c:74
+#: gio/gio-tool-mount.c:72
msgid "List"
msgstr "სია"
-#: gio/gio-tool-mount.c:75
+#: gio/gio-tool-mount.c:73
msgid "Monitor events"
msgstr ""
-#: gio/gio-tool-mount.c:76
+#: gio/gio-tool-mount.c:74
msgid "Show extra information"
msgstr "დამატებითი ინფორმაციის ჩვენება"
-#: gio/gio-tool-mount.c:77
+#: gio/gio-tool-mount.c:75
msgid "The numeric PIM when unlocking a VeraCrypt volume"
msgstr ""
-#: gio/gio-tool-mount.c:77
+#: gio/gio-tool-mount.c:75
msgid "PIM"
msgstr "PIM"
-#: gio/gio-tool-mount.c:78
+#: gio/gio-tool-mount.c:76
msgid "Mount a TCRYPT hidden volume"
msgstr ""
-#: gio/gio-tool-mount.c:79
+#: gio/gio-tool-mount.c:77
msgid "Mount a TCRYPT system volume"
msgstr ""
-#: gio/gio-tool-mount.c:268 gio/gio-tool-mount.c:300
+#: gio/gio-tool-mount.c:265 gio/gio-tool-mount.c:297
msgid "Anonymous access denied"
msgstr ""
-#: gio/gio-tool-mount.c:525
+#: gio/gio-tool-mount.c:522
msgid "No drive for device file"
msgstr ""
-#: gio/gio-tool-mount.c:1017
+#: gio/gio-tool-mount.c:1014
msgid "No volume for given ID"
msgstr ""
-#: gio/gio-tool-mount.c:1206
+#: gio/gio-tool-mount.c:1203
msgid "Mount or unmount the locations."
msgstr ""
-#: gio/gio-tool-move.c:44
+#: gio/gio-tool-move.c:42
msgid "Don’t use copy and delete fallback"
msgstr ""
-#: gio/gio-tool-move.c:101
+#: gio/gio-tool-move.c:99
msgid "Move one or more files from SOURCE to DEST."
msgstr ""
-#: gio/gio-tool-move.c:103
+#: gio/gio-tool-move.c:101
msgid ""
"gio move is similar to the traditional mv utility, but using GIO\n"
"locations instead of local files: for example, you can use something\n"
"like smb://server/resource/file.txt as location"
msgstr ""
-#: gio/gio-tool-move.c:145
+#: gio/gio-tool-move.c:143
#, c-format
msgid "Target %s is not a directory"
msgstr "სამიზნე %s საქაღალდეს არ წარმოადგენს"
-#: gio/gio-tool-open.c:77
+#: gio/gio-tool-open.c:75
msgid ""
"Open files with the default application that\n"
"is registered to handle files of this type."
msgstr ""
-#: gio/gio-tool-remove.c:33 gio/gio-tool-trash.c:35
+#: gio/gio-tool-remove.c:31 gio/gio-tool-trash.c:33
msgid "Ignore nonexistent files, never prompt"
msgstr ""
-#: gio/gio-tool-remove.c:54
+#: gio/gio-tool-remove.c:52
msgid "Delete the given files."
msgstr ""
-#: gio/gio-tool-rename.c:47
+#: gio/gio-tool-rename.c:45
msgid "NAME"
-msgstr ""
+msgstr "სახელი"
-#: gio/gio-tool-rename.c:52
+#: gio/gio-tool-rename.c:50
msgid "Rename a file."
-msgstr ""
+msgstr "ფაილის სახელის გადარქმევა."
-#: gio/gio-tool-rename.c:72
+#: gio/gio-tool-rename.c:70
msgid "Missing argument"
msgstr "ნაკლული არგუმენტი"
-#: gio/gio-tool-rename.c:78 gio/gio-tool-save.c:192 gio/gio-tool-set.c:141
+#: gio/gio-tool-rename.c:76 gio/gio-tool-save.c:190 gio/gio-tool-set.c:139
msgid "Too many arguments"
msgstr "მეტისმეტად ბევრი არგუმენტი"
-#: gio/gio-tool-rename.c:97
+#: gio/gio-tool-rename.c:95
#, c-format
msgid "Rename successful. New uri: %s\n"
-msgstr ""
+msgstr "სახელის გადარქმევა წარმატებულია. ახალი URI: %s\n"
-#: gio/gio-tool-save.c:52
+#: gio/gio-tool-save.c:50
msgid "Only create if not existing"
msgstr ""
-#: gio/gio-tool-save.c:53
+#: gio/gio-tool-save.c:51
msgid "Append to end of file"
msgstr ""
-#: gio/gio-tool-save.c:54
+#: gio/gio-tool-save.c:52
msgid "When creating, restrict access to the current user"
msgstr ""
-#: gio/gio-tool-save.c:55
+#: gio/gio-tool-save.c:53
msgid "When replacing, replace as if the destination did not exist"
msgstr ""
#. Translators: The "etag" is a token allowing to verify whether a file has been modified
-#: gio/gio-tool-save.c:57
+#: gio/gio-tool-save.c:55
msgid "Print new etag at end"
msgstr ""
#. Translators: The "etag" is a token allowing to verify whether a file has been modified
-#: gio/gio-tool-save.c:59
+#: gio/gio-tool-save.c:57
msgid "The etag of the file being overwritten"
msgstr ""
-#: gio/gio-tool-save.c:59
+#: gio/gio-tool-save.c:57
msgid "ETAG"
msgstr ""
-#: gio/gio-tool-save.c:115
+#: gio/gio-tool-save.c:113
msgid "Error reading from standard input"
msgstr ""
#. Translators: The "etag" is a token allowing to verify whether a file has been modified
-#: gio/gio-tool-save.c:141
+#: gio/gio-tool-save.c:139
msgid "Etag not available\n"
msgstr ""
-#: gio/gio-tool-save.c:165
+#: gio/gio-tool-save.c:163
msgid "Read from standard input and save to DEST."
msgstr ""
-#: gio/gio-tool-save.c:185
+#: gio/gio-tool-save.c:183
msgid "No destination given"
msgstr ""
-#: gio/gio-tool-set.c:35
+#: gio/gio-tool-set.c:33
msgid "Type of the attribute"
msgstr ""
-#: gio/gio-tool-set.c:35
+#: gio/gio-tool-set.c:33
msgid "TYPE"
msgstr "ტიპი"
-#: gio/gio-tool-set.c:93
+#: gio/gio-tool-set.c:91
msgid "ATTRIBUTE"
msgstr ""
-#: gio/gio-tool-set.c:93
+#: gio/gio-tool-set.c:91
msgid "VALUE"
msgstr "მნიშვნელობა"
-#: gio/gio-tool-set.c:97
+#: gio/gio-tool-set.c:95
msgid "Set a file attribute of LOCATION."
msgstr ""
-#: gio/gio-tool-set.c:117
+#: gio/gio-tool-set.c:115
msgid "Location not specified"
msgstr "მდებარეობა მითითებული არაა"
-#: gio/gio-tool-set.c:124
+#: gio/gio-tool-set.c:122
msgid "Attribute not specified"
msgstr ""
-#: gio/gio-tool-set.c:134
+#: gio/gio-tool-set.c:132
msgid "Value not specified"
msgstr ""
-#: gio/gio-tool-set.c:184
+#: gio/gio-tool-set.c:182
#, c-format
msgid "Invalid attribute type “%s”"
msgstr "ატრიბუტის არასწორი ტიპი: %s"
-#: gio/gio-tool-trash.c:36
+#: gio/gio-tool-trash.c:34
msgid "Empty the trash"
msgstr ""
-#: gio/gio-tool-trash.c:37
+#: gio/gio-tool-trash.c:35
msgid "List files in the trash with their original locations"
msgstr ""
-#: gio/gio-tool-trash.c:38
+#: gio/gio-tool-trash.c:36
msgid ""
"Restore a file from trash to its original location (possibly recreating the "
"directory)"
msgstr ""
-#: gio/gio-tool-trash.c:108
+#: gio/gio-tool-trash.c:106
msgid "Unable to find original path"
msgstr ""
-#: gio/gio-tool-trash.c:125
+#: gio/gio-tool-trash.c:123
msgid "Unable to recreate original location: "
msgstr "საწყისი მდებარეობის თავიდან შექმნის შეცდომა: "
-#: gio/gio-tool-trash.c:138
+#: gio/gio-tool-trash.c:136
msgid "Unable to move file to its original location: "
msgstr ""
-#: gio/gio-tool-trash.c:227
+#: gio/gio-tool-trash.c:225
msgid "Move/Restore files or directories to the trash."
msgstr ""
-#: gio/gio-tool-trash.c:229
+#: gio/gio-tool-trash.c:227
msgid ""
"Note: for --restore switch, if the original location of the trashed file \n"
"already exists, it will not be overwritten unless --force is set."
msgstr ""
-#: gio/gio-tool-trash.c:260
+#: gio/gio-tool-trash.c:258
msgid "Location given doesn't start with trash:///"
msgstr ""
-#: gio/gio-tool-tree.c:35
+#: gio/gio-tool-tree.c:33
msgid "Follow symbolic links, mounts and shortcuts"
msgstr ""
-#: gio/gio-tool-tree.c:246
+#: gio/gio-tool-tree.c:244
msgid "List contents of directories in a tree-like format."
msgstr ""
-#: gio/glib-compile-resources.c:142 gio/glib-compile-schemas.c:1516
+#: gio/glib-compile-resources.c:140 gio/glib-compile-schemas.c:1514
#, c-format
msgid "Element <%s> not allowed inside <%s>"
msgstr "ელემენტი <%s> <%s>-ის შიგნით დაუშვებელია"
-#: gio/glib-compile-resources.c:146
+#: gio/glib-compile-resources.c:144
#, c-format
msgid "Element <%s> not allowed at toplevel"
msgstr "ელემენტი <%s> შეუძლებელია, სიის თავში იყოს"
-#: gio/glib-compile-resources.c:236
+#: gio/glib-compile-resources.c:234
#, c-format
msgid "File %s appears multiple times in the resource"
msgstr ""
-#: gio/glib-compile-resources.c:247
+#: gio/glib-compile-resources.c:245
#, c-format
msgid "Failed to locate “%s” in any source directory"
msgstr ""
-#: gio/glib-compile-resources.c:258
+#: gio/glib-compile-resources.c:256
#, c-format
msgid "Failed to locate “%s” in current directory"
msgstr ""
-#: gio/glib-compile-resources.c:292
+#: gio/glib-compile-resources.c:290
#, c-format
msgid "Unknown processing option “%s”"
msgstr "დამუშავების უცნობი პარამეტრი %s"
@@ -2300,543 +2296,543 @@ msgstr "დამუშავების უცნობი პარამე
#. * the second %s is an environment variable, and the third
#. * %s is a command line tool
#.
-#: gio/glib-compile-resources.c:312 gio/glib-compile-resources.c:369
-#: gio/glib-compile-resources.c:426
+#: gio/glib-compile-resources.c:310 gio/glib-compile-resources.c:367
+#: gio/glib-compile-resources.c:424
#, c-format
msgid "%s preprocessing requested, but %s is not set, and %s is not in PATH"
msgstr ""
-#: gio/glib-compile-resources.c:459
+#: gio/glib-compile-resources.c:457
#, c-format
msgid "Error reading file %s: %s"
msgstr ""
-#: gio/glib-compile-resources.c:479
+#: gio/glib-compile-resources.c:477
#, c-format
msgid "Error compressing file %s"
msgstr ""
-#: gio/glib-compile-resources.c:543
+#: gio/glib-compile-resources.c:541
#, c-format
msgid "text may not appear inside <%s>"
msgstr ""
-#: gio/glib-compile-resources.c:821 gio/glib-compile-schemas.c:2174
+#: gio/glib-compile-resources.c:819 gio/glib-compile-schemas.c:2172
msgid "Show program version and exit"
msgstr ""
-#: gio/glib-compile-resources.c:822
+#: gio/glib-compile-resources.c:820
msgid "Name of the output file"
msgstr ""
-#: gio/glib-compile-resources.c:823
+#: gio/glib-compile-resources.c:821
msgid ""
"The directories to load files referenced in FILE from (default: current "
"directory)"
msgstr ""
-#: gio/glib-compile-resources.c:823 gio/glib-compile-schemas.c:2175
-#: gio/glib-compile-schemas.c:2204
+#: gio/glib-compile-resources.c:821 gio/glib-compile-schemas.c:2173
+#: gio/glib-compile-schemas.c:2202
msgid "DIRECTORY"
msgstr "DIRECTORY"
-#: gio/glib-compile-resources.c:824
+#: gio/glib-compile-resources.c:822
msgid ""
"Generate output in the format selected for by the target filename extension"
msgstr ""
-#: gio/glib-compile-resources.c:825
+#: gio/glib-compile-resources.c:823
msgid "Generate source header"
msgstr ""
-#: gio/glib-compile-resources.c:826
+#: gio/glib-compile-resources.c:824
msgid "Generate source code used to link in the resource file into your code"
msgstr ""
-#: gio/glib-compile-resources.c:827
+#: gio/glib-compile-resources.c:825
msgid "Generate dependency list"
msgstr ""
-#: gio/glib-compile-resources.c:828
+#: gio/glib-compile-resources.c:826
msgid "Name of the dependency file to generate"
msgstr ""
-#: gio/glib-compile-resources.c:829
+#: gio/glib-compile-resources.c:827
msgid "Include phony targets in the generated dependency file"
msgstr ""
-#: gio/glib-compile-resources.c:830
+#: gio/glib-compile-resources.c:828
msgid "Don’t automatically create and register resource"
msgstr ""
-#: gio/glib-compile-resources.c:831
+#: gio/glib-compile-resources.c:829
msgid "Don’t export functions; declare them G_GNUC_INTERNAL"
msgstr ""
-#: gio/glib-compile-resources.c:832
+#: gio/glib-compile-resources.c:830
msgid ""
"Don’t embed resource data in the C file; assume it's linked externally "
"instead"
msgstr ""
-#: gio/glib-compile-resources.c:833
+#: gio/glib-compile-resources.c:831
msgid "C identifier name used for the generated source code"
msgstr ""
-#: gio/glib-compile-resources.c:834
+#: gio/glib-compile-resources.c:832
msgid "The target C compiler (default: the CC environment variable)"
msgstr ""
-#: gio/glib-compile-resources.c:860
+#: gio/glib-compile-resources.c:858
msgid ""
"Compile a resource specification into a resource file.\n"
"Resource specification files have the extension .gresource.xml,\n"
"and the resource file have the extension called .gresource."
msgstr ""
-#: gio/glib-compile-resources.c:882
+#: gio/glib-compile-resources.c:880
msgid "You should give exactly one file name\n"
msgstr ""
-#: gio/glib-compile-schemas.c:94
+#: gio/glib-compile-schemas.c:92
#, c-format
msgid "nick must be a minimum of 2 characters"
msgstr ""
-#: gio/glib-compile-schemas.c:105
+#: gio/glib-compile-schemas.c:103
#, c-format
msgid "Invalid numeric value"
msgstr "არასწორი რიცხვითი მნიშვნელობა"
-#: gio/glib-compile-schemas.c:113
+#: gio/glib-compile-schemas.c:111
#, c-format
msgid "<value nick='%s'/> already specified"
msgstr ""
-#: gio/glib-compile-schemas.c:121
+#: gio/glib-compile-schemas.c:119
#, c-format
msgid "value='%s' already specified"
msgstr ""
-#: gio/glib-compile-schemas.c:135
+#: gio/glib-compile-schemas.c:133
#, c-format
msgid "flags values must have at most 1 bit set"
msgstr ""
-#: gio/glib-compile-schemas.c:160
+#: gio/glib-compile-schemas.c:158
#, c-format
msgid "<%s> must contain at least one <value>"
msgstr ""
-#: gio/glib-compile-schemas.c:316
+#: gio/glib-compile-schemas.c:314
#, c-format
msgid "<%s> is not contained in the specified range"
msgstr ""
-#: gio/glib-compile-schemas.c:328
+#: gio/glib-compile-schemas.c:326
#, c-format
msgid "<%s> is not a valid member of the specified enumerated type"
msgstr ""
-#: gio/glib-compile-schemas.c:334
+#: gio/glib-compile-schemas.c:332
#, c-format
msgid "<%s> contains string not in the specified flags type"
msgstr ""
-#: gio/glib-compile-schemas.c:340
+#: gio/glib-compile-schemas.c:338
#, c-format
msgid "<%s> contains a string not in <choices>"
msgstr ""
-#: gio/glib-compile-schemas.c:374
+#: gio/glib-compile-schemas.c:372
msgid "<range/> already specified for this key"
msgstr ""
-#: gio/glib-compile-schemas.c:392
+#: gio/glib-compile-schemas.c:390
#, c-format
msgid "<range> not allowed for keys of type “%s”"
msgstr ""
-#: gio/glib-compile-schemas.c:409
+#: gio/glib-compile-schemas.c:407
#, c-format
msgid "<range> specified minimum is greater than maximum"
msgstr ""
-#: gio/glib-compile-schemas.c:434
+#: gio/glib-compile-schemas.c:432
#, c-format
msgid "unsupported l10n category: %s"
msgstr ""
-#: gio/glib-compile-schemas.c:442
+#: gio/glib-compile-schemas.c:440
msgid "l10n requested, but no gettext domain given"
msgstr ""
-#: gio/glib-compile-schemas.c:454
+#: gio/glib-compile-schemas.c:452
msgid "translation context given for value without l10n enabled"
msgstr ""
-#: gio/glib-compile-schemas.c:476
+#: gio/glib-compile-schemas.c:474
#, c-format
msgid "Failed to parse <default> value of type “%s”: "
msgstr ""
-#: gio/glib-compile-schemas.c:493
+#: gio/glib-compile-schemas.c:491
msgid ""
"<choices> cannot be specified for keys tagged as having an enumerated type"
msgstr ""
-#: gio/glib-compile-schemas.c:502
+#: gio/glib-compile-schemas.c:500
msgid "<choices> already specified for this key"
msgstr ""
-#: gio/glib-compile-schemas.c:514
+#: gio/glib-compile-schemas.c:512
#, c-format
msgid "<choices> not allowed for keys of type “%s”"
msgstr ""
-#: gio/glib-compile-schemas.c:530
+#: gio/glib-compile-schemas.c:528
#, c-format
msgid "<choice value='%s'/> already given"
msgstr ""
-#: gio/glib-compile-schemas.c:545
+#: gio/glib-compile-schemas.c:543
#, c-format
msgid "<choices> must contain at least one <choice>"
msgstr ""
-#: gio/glib-compile-schemas.c:559
+#: gio/glib-compile-schemas.c:557
msgid "<aliases> already specified for this key"
msgstr ""
-#: gio/glib-compile-schemas.c:563
+#: gio/glib-compile-schemas.c:561
msgid ""
"<aliases> can only be specified for keys with enumerated or flags types or "
"after <choices>"
msgstr ""
-#: gio/glib-compile-schemas.c:582
+#: gio/glib-compile-schemas.c:580
#, c-format
msgid ""
"<alias value='%s'/> given when “%s” is already a member of the enumerated "
"type"
msgstr ""
-#: gio/glib-compile-schemas.c:588
+#: gio/glib-compile-schemas.c:586
#, c-format
msgid "<alias value='%s'/> given when <choice value='%s'/> was already given"
msgstr ""
-#: gio/glib-compile-schemas.c:596
+#: gio/glib-compile-schemas.c:594
#, c-format
msgid "<alias value='%s'/> already specified"
msgstr ""
-#: gio/glib-compile-schemas.c:606
+#: gio/glib-compile-schemas.c:604
#, c-format
msgid "alias target “%s” is not in enumerated type"
msgstr ""
-#: gio/glib-compile-schemas.c:607
+#: gio/glib-compile-schemas.c:605
#, c-format
msgid "alias target “%s” is not in <choices>"
msgstr ""
-#: gio/glib-compile-schemas.c:622
+#: gio/glib-compile-schemas.c:620
#, c-format
msgid "<aliases> must contain at least one <alias>"
msgstr ""
-#: gio/glib-compile-schemas.c:799
+#: gio/glib-compile-schemas.c:797
msgid "Empty names are not permitted"
msgstr "ცარელი სახელები დაუშვებელია"
-#: gio/glib-compile-schemas.c:809
+#: gio/glib-compile-schemas.c:807
#, c-format
msgid "Invalid name “%s”: names must begin with a lowercase letter"
msgstr ""
-#: gio/glib-compile-schemas.c:821
+#: gio/glib-compile-schemas.c:819
#, c-format
msgid ""
"Invalid name “%s”: invalid character “%c”; only lowercase letters, numbers "
"and hyphen (“-”) are permitted"
msgstr ""
-#: gio/glib-compile-schemas.c:830
+#: gio/glib-compile-schemas.c:828
#, c-format
msgid "Invalid name “%s”: two successive hyphens (“--”) are not permitted"
msgstr ""
-#: gio/glib-compile-schemas.c:839
+#: gio/glib-compile-schemas.c:837
#, c-format
msgid "Invalid name “%s”: the last character may not be a hyphen (“-”)"
msgstr ""
-#: gio/glib-compile-schemas.c:847
+#: gio/glib-compile-schemas.c:845
#, c-format
msgid "Invalid name “%s”: maximum length is 1024"
msgstr ""
-#: gio/glib-compile-schemas.c:919
+#: gio/glib-compile-schemas.c:917
#, c-format
msgid "<child name='%s'> already specified"
msgstr ""
-#: gio/glib-compile-schemas.c:945
+#: gio/glib-compile-schemas.c:943
msgid "Cannot add keys to a “list-of” schema"
msgstr ""
-#: gio/glib-compile-schemas.c:956
+#: gio/glib-compile-schemas.c:954
#, c-format
msgid "<key name='%s'> already specified"
msgstr ""
-#: gio/glib-compile-schemas.c:974
+#: gio/glib-compile-schemas.c:972
#, c-format
msgid ""
"<key name='%s'> shadows <key name='%s'> in <schema id='%s'>; use <override> "
"to modify value"
msgstr ""
-#: gio/glib-compile-schemas.c:985
+#: gio/glib-compile-schemas.c:983
#, c-format
msgid ""
"Exactly one of “type”, “enum” or “flags” must be specified as an attribute "
"to <key>"
msgstr ""
-#: gio/glib-compile-schemas.c:1004
+#: gio/glib-compile-schemas.c:1002
#, c-format
msgid "<%s id='%s'> not (yet) defined."
msgstr ""
-#: gio/glib-compile-schemas.c:1019
+#: gio/glib-compile-schemas.c:1017
#, c-format
msgid "Invalid GVariant type string “%s”"
msgstr ""
-#: gio/glib-compile-schemas.c:1049
+#: gio/glib-compile-schemas.c:1047
msgid "<override> given but schema isn’t extending anything"
msgstr ""
-#: gio/glib-compile-schemas.c:1062
+#: gio/glib-compile-schemas.c:1060
#, c-format
msgid "No <key name='%s'> to override"
msgstr ""
-#: gio/glib-compile-schemas.c:1070
+#: gio/glib-compile-schemas.c:1068
#, c-format
msgid "<override name='%s'> already specified"
msgstr ""
-#: gio/glib-compile-schemas.c:1143
+#: gio/glib-compile-schemas.c:1141
#, c-format
msgid "<schema id='%s'> already specified"
msgstr ""
-#: gio/glib-compile-schemas.c:1155
+#: gio/glib-compile-schemas.c:1153
#, c-format
msgid "<schema id='%s'> extends not yet existing schema “%s”"
msgstr ""
-#: gio/glib-compile-schemas.c:1171
+#: gio/glib-compile-schemas.c:1169
#, c-format
msgid "<schema id='%s'> is list of not yet existing schema “%s”"
msgstr ""
-#: gio/glib-compile-schemas.c:1179
+#: gio/glib-compile-schemas.c:1177
#, c-format
msgid "Cannot be a list of a schema with a path"
msgstr ""
-#: gio/glib-compile-schemas.c:1189
+#: gio/glib-compile-schemas.c:1187
#, c-format
msgid "Cannot extend a schema with a path"
msgstr ""
-#: gio/glib-compile-schemas.c:1199
+#: gio/glib-compile-schemas.c:1197
#, c-format
msgid ""
"<schema id='%s'> is a list, extending <schema id='%s'> which is not a list"
msgstr ""
-#: gio/glib-compile-schemas.c:1209
+#: gio/glib-compile-schemas.c:1207
#, c-format
msgid ""
"<schema id='%s' list-of='%s'> extends <schema id='%s' list-of='%s'> but “%s” "
"does not extend “%s”"
msgstr ""
-#: gio/glib-compile-schemas.c:1226
+#: gio/glib-compile-schemas.c:1224
#, c-format
msgid "A path, if given, must begin and end with a slash"
msgstr ""
-#: gio/glib-compile-schemas.c:1233
+#: gio/glib-compile-schemas.c:1231
#, c-format
msgid "The path of a list must end with “:/”"
msgstr ""
-#: gio/glib-compile-schemas.c:1242
+#: gio/glib-compile-schemas.c:1240
#, c-format
msgid ""
"Warning: Schema “%s” has path “%s”. Paths starting with “/apps/”, “/"
"desktop/” or “/system/” are deprecated."
msgstr ""
-#: gio/glib-compile-schemas.c:1272
+#: gio/glib-compile-schemas.c:1270
#, c-format
msgid "<%s id='%s'> already specified"
msgstr ""
-#: gio/glib-compile-schemas.c:1422 gio/glib-compile-schemas.c:1438
+#: gio/glib-compile-schemas.c:1420 gio/glib-compile-schemas.c:1436
#, c-format
msgid "Only one <%s> element allowed inside <%s>"
msgstr ""
-#: gio/glib-compile-schemas.c:1520
+#: gio/glib-compile-schemas.c:1518
#, c-format
msgid "Element <%s> not allowed at the top level"
msgstr ""
-#: gio/glib-compile-schemas.c:1538
+#: gio/glib-compile-schemas.c:1536
msgid "Element <default> is required in <key>"
msgstr ""
-#: gio/glib-compile-schemas.c:1628
+#: gio/glib-compile-schemas.c:1626
#, c-format
msgid "Text may not appear inside <%s>"
msgstr "<%s>-ის შიგნით შეუძლებელია, ტექსტი გამოჩნდეს"
-#: gio/glib-compile-schemas.c:1696
+#: gio/glib-compile-schemas.c:1694
#, c-format
msgid "Warning: undefined reference to <schema id='%s'/>"
msgstr ""
#. Translators: Do not translate "--strict".
-#: gio/glib-compile-schemas.c:1835 gio/glib-compile-schemas.c:1914
+#: gio/glib-compile-schemas.c:1833 gio/glib-compile-schemas.c:1912
msgid "--strict was specified; exiting."
msgstr ""
-#: gio/glib-compile-schemas.c:1847
+#: gio/glib-compile-schemas.c:1845
msgid "This entire file has been ignored."
msgstr ""
-#: gio/glib-compile-schemas.c:1910
+#: gio/glib-compile-schemas.c:1908
msgid "Ignoring this file."
msgstr ""
-#: gio/glib-compile-schemas.c:1965
+#: gio/glib-compile-schemas.c:1963
#, c-format
msgid ""
"No such key “%s” in schema “%s” as specified in override file “%s”; ignoring "
"override for this key."
msgstr ""
-#: gio/glib-compile-schemas.c:1973
+#: gio/glib-compile-schemas.c:1971
#, c-format
msgid ""
"No such key “%s” in schema “%s” as specified in override file “%s” and --"
"strict was specified; exiting."
msgstr ""
-#: gio/glib-compile-schemas.c:1995
+#: gio/glib-compile-schemas.c:1993
#, c-format
msgid ""
"Cannot provide per-desktop overrides for localized key “%s” in schema "
"“%s” (override file “%s”); ignoring override for this key."
msgstr ""
-#: gio/glib-compile-schemas.c:2004
+#: gio/glib-compile-schemas.c:2002
#, c-format
msgid ""
"Cannot provide per-desktop overrides for localized key “%s” in schema "
"“%s” (override file “%s”) and --strict was specified; exiting."
msgstr ""
-#: gio/glib-compile-schemas.c:2028
+#: gio/glib-compile-schemas.c:2026
#, c-format
msgid ""
"Error parsing key “%s” in schema “%s” as specified in override file “%s”: "
"%s. Ignoring override for this key."
msgstr ""
-#: gio/glib-compile-schemas.c:2040
+#: gio/glib-compile-schemas.c:2038
#, c-format
msgid ""
"Error parsing key “%s” in schema “%s” as specified in override file “%s”: "
"%s. --strict was specified; exiting."
msgstr ""
-#: gio/glib-compile-schemas.c:2067
+#: gio/glib-compile-schemas.c:2065
#, c-format
msgid ""
"Override for key “%s” in schema “%s” in override file “%s” is outside the "
"range given in the schema; ignoring override for this key."
msgstr ""
-#: gio/glib-compile-schemas.c:2077
+#: gio/glib-compile-schemas.c:2075
#, c-format
msgid ""
"Override for key “%s” in schema “%s” in override file “%s” is outside the "
"range given in the schema and --strict was specified; exiting."
msgstr ""
-#: gio/glib-compile-schemas.c:2103
+#: gio/glib-compile-schemas.c:2101
#, c-format
msgid ""
"Override for key “%s” in schema “%s” in override file “%s” is not in the "
"list of valid choices; ignoring override for this key."
msgstr ""
-#: gio/glib-compile-schemas.c:2113
+#: gio/glib-compile-schemas.c:2111
#, c-format
msgid ""
"Override for key “%s” in schema “%s” in override file “%s” is not in the "
"list of valid choices and --strict was specified; exiting."
msgstr ""
-#: gio/glib-compile-schemas.c:2175
+#: gio/glib-compile-schemas.c:2173
msgid "Where to store the gschemas.compiled file"
msgstr ""
-#: gio/glib-compile-schemas.c:2176
+#: gio/glib-compile-schemas.c:2174
msgid "Abort on any errors in schemas"
msgstr ""
-#: gio/glib-compile-schemas.c:2177
+#: gio/glib-compile-schemas.c:2175
msgid "Do not write the gschema.compiled file"
msgstr ""
-#: gio/glib-compile-schemas.c:2178
+#: gio/glib-compile-schemas.c:2176
msgid "Do not enforce key name restrictions"
msgstr ""
-#: gio/glib-compile-schemas.c:2207
+#: gio/glib-compile-schemas.c:2205
msgid ""
"Compile all GSettings schema files into a schema cache.\n"
"Schema files are required to have the extension .gschema.xml,\n"
"and the cache file is called gschemas.compiled."
msgstr ""
-#: gio/glib-compile-schemas.c:2228
+#: gio/glib-compile-schemas.c:2226
msgid "You should give exactly one directory name"
msgstr ""
-#: gio/glib-compile-schemas.c:2271
+#: gio/glib-compile-schemas.c:2269
msgid "No schema files found: doing nothing."
msgstr ""
-#: gio/glib-compile-schemas.c:2273
+#: gio/glib-compile-schemas.c:2271
msgid "No schema files found: removed existing output file."
msgstr ""
-#: gio/glocalfile.c:563 gio/win32/gwinhttpfile.c:436
+#: gio/glocalfile.c:549 gio/win32/gwinhttpfile.c:436
#, c-format
msgid "Invalid filename %s"
msgstr "ფაილის არასწორი სახელი: %s"
-#: gio/glocalfile.c:996
+#: gio/glocalfile.c:982
#, c-format
msgid "Error getting filesystem info for %s: %s"
msgstr ""
@@ -2845,526 +2841,522 @@ msgstr ""
#. * the enclosing (user visible) mount of a file, but none
#. * exists.
#.
-#: gio/glocalfile.c:1137
+#: gio/glocalfile.c:1123
#, c-format
msgid "Containing mount for file %s not found"
msgstr ""
-#: gio/glocalfile.c:1160
+#: gio/glocalfile.c:1146
msgid "Can’t rename root directory"
msgstr ""
-#: gio/glocalfile.c:1178 gio/glocalfile.c:1201
+#: gio/glocalfile.c:1164 gio/glocalfile.c:1187
#, c-format
msgid "Error renaming file %s: %s"
msgstr ""
-#: gio/glocalfile.c:1185
+#: gio/glocalfile.c:1171
msgid "Can’t rename file, filename already exists"
msgstr ""
-#: gio/glocalfile.c:1198 gio/glocalfile.c:2394 gio/glocalfile.c:2422
-#: gio/glocalfile.c:2561 gio/glocalfileoutputstream.c:658
+#: gio/glocalfile.c:1184 gio/glocalfile.c:2380 gio/glocalfile.c:2408
+#: gio/glocalfile.c:2547 gio/glocalfileoutputstream.c:656
msgid "Invalid filename"
msgstr "ფაილის არასწორი სახელი"
-#: gio/glocalfile.c:1366 gio/glocalfile.c:1377
+#: gio/glocalfile.c:1352 gio/glocalfile.c:1363
#, c-format
msgid "Error opening file %s: %s"
msgstr ""
-#: gio/glocalfile.c:1502
+#: gio/glocalfile.c:1488
#, c-format
msgid "Error removing file %s: %s"
msgstr ""
-#: gio/glocalfile.c:1996 gio/glocalfile.c:2007 gio/glocalfile.c:2034
+#: gio/glocalfile.c:1982 gio/glocalfile.c:1993 gio/glocalfile.c:2020
#, c-format
msgid "Error trashing file %s: %s"
msgstr ""
-#: gio/glocalfile.c:2054
+#: gio/glocalfile.c:2040
#, c-format
msgid "Unable to create trash directory %s: %s"
msgstr "სანაგვის საქაღალდის (%s) შექმნის შეცდომა: %s"
-#: gio/glocalfile.c:2075
+#: gio/glocalfile.c:2061
#, c-format
msgid "Unable to find toplevel directory to trash %s"
msgstr "%s-ის წასაშლელად ზედა საქაღალდის პოვნა შეუძლებელი იყო"
-#: gio/glocalfile.c:2083
+#: gio/glocalfile.c:2069
#, c-format
msgid "Trashing on system internal mounts is not supported"
msgstr ""
-#: gio/glocalfile.c:2169 gio/glocalfile.c:2197
+#: gio/glocalfile.c:2155 gio/glocalfile.c:2183
#, c-format
msgid "Unable to find or create trash directory %s to trash %s"
msgstr "სანაგვე საქაღალდის (%s) შექმნა შეუძლებელია %s-ის წასაშლელად"
-#: gio/glocalfile.c:2243
+#: gio/glocalfile.c:2229
#, c-format
msgid "Unable to create trashing info file for %s: %s"
msgstr "წაშლის ინფორმაციის ფაილის (%s) შექმნის შეცდომა: %s"
-#: gio/glocalfile.c:2305
+#: gio/glocalfile.c:2291
#, c-format
msgid "Unable to trash file %s across filesystem boundaries"
msgstr "ფაილის (%s) წაშლა ფაილური სისტემის საზღვრებს მიღმა შეუძლებელია"
-#: gio/glocalfile.c:2309 gio/glocalfile.c:2365
+#: gio/glocalfile.c:2295 gio/glocalfile.c:2351
#, c-format
msgid "Unable to trash file %s: %s"
msgstr "ფაილის (%s) წაშლა შეუძლებელია: %s"
-#: gio/glocalfile.c:2371
+#: gio/glocalfile.c:2357
#, c-format
msgid "Unable to trash file %s"
msgstr "ფაილის (%s) წაშლა შეუძლებელია"
-#: gio/glocalfile.c:2397
+#: gio/glocalfile.c:2383
#, c-format
msgid "Error creating directory %s: %s"
msgstr "საქაღალდის (%s) შექმნის შეცდომა: %s"
-#: gio/glocalfile.c:2426
+#: gio/glocalfile.c:2412
#, c-format
msgid "Filesystem does not support symbolic links"
msgstr "ფაილურ სისტემას სიმბმულების მხარდაჭერა არ გააჩნია"
-#: gio/glocalfile.c:2429
+#: gio/glocalfile.c:2415
#, c-format
msgid "Error making symbolic link %s: %s"
msgstr ""
-#: gio/glocalfile.c:2472 gio/glocalfile.c:2507 gio/glocalfile.c:2564
+#: gio/glocalfile.c:2458 gio/glocalfile.c:2493 gio/glocalfile.c:2550
#, c-format
msgid "Error moving file %s: %s"
msgstr ""
-#: gio/glocalfile.c:2495
+#: gio/glocalfile.c:2481
msgid "Can’t move directory over directory"
msgstr "საქაღალდის საქაღალდეზე გადატანა შეუძლებელია"
-#: gio/glocalfile.c:2521 gio/glocalfileoutputstream.c:1110
-#: gio/glocalfileoutputstream.c:1124 gio/glocalfileoutputstream.c:1139
-#: gio/glocalfileoutputstream.c:1156 gio/glocalfileoutputstream.c:1170
+#: gio/glocalfile.c:2507 gio/glocalfileoutputstream.c:1108
+#: gio/glocalfileoutputstream.c:1122 gio/glocalfileoutputstream.c:1137
+#: gio/glocalfileoutputstream.c:1154 gio/glocalfileoutputstream.c:1168
msgid "Backup file creation failed"
msgstr "მარქაფის ფაილის შექმნის შეცდომა"
-#: gio/glocalfile.c:2540
+#: gio/glocalfile.c:2526
#, c-format
msgid "Error removing target file: %s"
msgstr ""
-#: gio/glocalfile.c:2554
+#: gio/glocalfile.c:2540
msgid "Move between mounts not supported"
msgstr ""
-#: gio/glocalfile.c:2728
+#: gio/glocalfile.c:2714
#, c-format
msgid "Could not determine the disk usage of %s: %s"
msgstr "დისკზე %s-ის მიერ დაკავებული ადგილის გამოთვლის შეცდომა: %s"
-#: gio/glocalfileinfo.c:775
+#: gio/glocalfileinfo.c:767
msgid "Attribute value must be non-NULL"
msgstr ""
-#: gio/glocalfileinfo.c:782
-msgid "Invalid attribute type (string or invalid expected)"
-msgstr "ატრიბუტის არასწორი ტიპი (მოველოდი სტრიქონს ან არასწორს)"
+#: gio/glocalfileinfo.c:774
+msgid "Invalid attribute type (string expected)"
+msgstr ""
-#: gio/glocalfileinfo.c:789
+#: gio/glocalfileinfo.c:781
msgid "Invalid extended attribute name"
msgstr "გაფართოებული ატრიბუტის არასწორი სახელი"
-#: gio/glocalfileinfo.c:840
+#: gio/glocalfileinfo.c:821
#, c-format
msgid "Error setting extended attribute “%s”: %s"
msgstr ""
-#: gio/glocalfileinfo.c:1738 gio/win32/gwinhttpfile.c:191
+#: gio/glocalfileinfo.c:1709 gio/win32/gwinhttpfile.c:191
msgid " (invalid encoding)"
msgstr " (არასწორი კოდირება)"
-#: gio/glocalfileinfo.c:1897 gio/glocalfileoutputstream.c:945
-#: gio/glocalfileoutputstream.c:997
+#: gio/glocalfileinfo.c:1868 gio/glocalfileoutputstream.c:943
+#: gio/glocalfileoutputstream.c:995
#, c-format
msgid "Error when getting information for file “%s”: %s"
msgstr ""
-#: gio/glocalfileinfo.c:2163
+#: gio/glocalfileinfo.c:2134
#, c-format
msgid "Error when getting information for file descriptor: %s"
msgstr ""
-#: gio/glocalfileinfo.c:2208
+#: gio/glocalfileinfo.c:2179
msgid "Invalid attribute type (uint32 expected)"
msgstr "ატრიბუტის არასწორი ტიპი (მოველოდი uint32-ს)"
-#: gio/glocalfileinfo.c:2226
+#: gio/glocalfileinfo.c:2197
msgid "Invalid attribute type (uint64 expected)"
msgstr ""
-#: gio/glocalfileinfo.c:2245 gio/glocalfileinfo.c:2264
+#: gio/glocalfileinfo.c:2216 gio/glocalfileinfo.c:2235
msgid "Invalid attribute type (byte string expected)"
msgstr ""
-#: gio/glocalfileinfo.c:2311
+#: gio/glocalfileinfo.c:2282
msgid "Cannot set permissions on symlinks"
msgstr "სიმბმულებზე წვდომების დაყენების შეცდომა"
-#: gio/glocalfileinfo.c:2327
+#: gio/glocalfileinfo.c:2298
#, c-format
msgid "Error setting permissions: %s"
msgstr "წვდომის დაყენების შეცდომა: %s"
-#: gio/glocalfileinfo.c:2378
+#: gio/glocalfileinfo.c:2349
#, c-format
msgid "Error setting owner: %s"
msgstr "მფლობლის დაყენების შეცდომა: %s"
-#: gio/glocalfileinfo.c:2401
+#: gio/glocalfileinfo.c:2372
msgid "symlink must be non-NULL"
msgstr ""
-#: gio/glocalfileinfo.c:2411 gio/glocalfileinfo.c:2430
-#: gio/glocalfileinfo.c:2441
+#: gio/glocalfileinfo.c:2382 gio/glocalfileinfo.c:2401
+#: gio/glocalfileinfo.c:2412
#, c-format
msgid "Error setting symlink: %s"
msgstr "სიმბმულის დაყენების შეცდომა: %s"
-#: gio/glocalfileinfo.c:2420
+#: gio/glocalfileinfo.c:2391
msgid "Error setting symlink: file is not a symlink"
msgstr ""
-#: gio/glocalfileinfo.c:2492
+#: gio/glocalfileinfo.c:2463
#, c-format
msgid "Extra nanoseconds %d for UNIX timestamp %lld are negative"
msgstr ""
-#: gio/glocalfileinfo.c:2501
+#: gio/glocalfileinfo.c:2472
#, c-format
msgid "Extra nanoseconds %d for UNIX timestamp %lld reach 1 second"
msgstr ""
-#: gio/glocalfileinfo.c:2511
+#: gio/glocalfileinfo.c:2482
#, c-format
msgid "UNIX timestamp %lld does not fit into 64 bits"
msgstr ""
-#: gio/glocalfileinfo.c:2522
+#: gio/glocalfileinfo.c:2493
#, c-format
msgid "UNIX timestamp %lld is outside of the range supported by Windows"
msgstr ""
-#: gio/glocalfileinfo.c:2625
+#: gio/glocalfileinfo.c:2570
#, c-format
msgid "File name “%s” cannot be converted to UTF-16"
msgstr ""
-#: gio/glocalfileinfo.c:2644
+#: gio/glocalfileinfo.c:2589
#, c-format
msgid "File “%s” cannot be opened: Windows Error %lu"
msgstr ""
-#: gio/glocalfileinfo.c:2657
+#: gio/glocalfileinfo.c:2602
#, c-format
msgid "Error setting modification or access time for file “%s”: %lu"
msgstr "%s-ისთვის შეცვლის ან წვდომის დროის დაყენების შეცდომა: %lu"
-#: gio/glocalfileinfo.c:2798 gio/glocalfileinfo.c:2810
+#: gio/glocalfileinfo.c:2703
#, c-format
msgid "Error setting modification or access time: %s"
msgstr "ცვლილების ან წვდომის დროის დაყენების შეცდომა: %s"
-#: gio/glocalfileinfo.c:2833
+#: gio/glocalfileinfo.c:2726
msgid "SELinux context must be non-NULL"
msgstr ""
-#: gio/glocalfileinfo.c:2840
+#: gio/glocalfileinfo.c:2733
msgid "SELinux is not enabled on this system"
msgstr ""
-#: gio/glocalfileinfo.c:2850
+#: gio/glocalfileinfo.c:2743
#, c-format
msgid "Error setting SELinux context: %s"
msgstr "SELinux-ის კონტექსტის დაყენების შეცდომა: %s"
-#: gio/glocalfileinfo.c:2947
+#: gio/glocalfileinfo.c:2836
#, c-format
msgid "Setting attribute %s not supported"
msgstr "ატრიბუტის (%s) დაყენება მხარდაუჭერელია"
-#: gio/glocalfileinputstream.c:165 gio/glocalfileoutputstream.c:803
+#: gio/glocalfileinputstream.c:163 gio/glocalfileoutputstream.c:801
#, c-format
msgid "Error reading from file: %s"
msgstr ""
-#: gio/glocalfileinputstream.c:196 gio/glocalfileoutputstream.c:355
-#: gio/glocalfileoutputstream.c:449
+#: gio/glocalfileinputstream.c:194 gio/glocalfileoutputstream.c:353
+#: gio/glocalfileoutputstream.c:447
#, c-format
msgid "Error closing file: %s"
msgstr "ფაილის (%s) დახურვის შეცდომა"
-#: gio/glocalfileinputstream.c:274 gio/glocalfileoutputstream.c:565
-#: gio/glocalfileoutputstream.c:1188
+#: gio/glocalfileinputstream.c:272 gio/glocalfileoutputstream.c:563
+#: gio/glocalfileoutputstream.c:1186
#, c-format
msgid "Error seeking in file: %s"
msgstr ""
-#: gio/glocalfilemonitor.c:882
+#: gio/glocalfilemonitor.c:879
msgid "Unable to find default local file monitor type"
msgstr ""
-#: gio/glocalfileoutputstream.c:222 gio/glocalfileoutputstream.c:300
-#: gio/glocalfileoutputstream.c:336 gio/glocalfileoutputstream.c:824
+#: gio/glocalfileoutputstream.c:220 gio/glocalfileoutputstream.c:298
+#: gio/glocalfileoutputstream.c:334 gio/glocalfileoutputstream.c:822
#, c-format
msgid "Error writing to file: %s"
msgstr ""
-#: gio/glocalfileoutputstream.c:382
+#: gio/glocalfileoutputstream.c:380
#, c-format
msgid "Error removing old backup link: %s"
msgstr ""
-#: gio/glocalfileoutputstream.c:396 gio/glocalfileoutputstream.c:409
+#: gio/glocalfileoutputstream.c:394 gio/glocalfileoutputstream.c:407
#, c-format
msgid "Error creating backup copy: %s"
msgstr ""
-#: gio/glocalfileoutputstream.c:427
+#: gio/glocalfileoutputstream.c:425
#, c-format
msgid "Error renaming temporary file: %s"
msgstr ""
-#: gio/glocalfileoutputstream.c:611 gio/glocalfileoutputstream.c:1241
+#: gio/glocalfileoutputstream.c:609 gio/glocalfileoutputstream.c:1239
#, c-format
msgid "Error truncating file: %s"
msgstr ""
-#: gio/glocalfileoutputstream.c:664 gio/glocalfileoutputstream.c:909
-#: gio/glocalfileoutputstream.c:1222 gio/gsubprocess.c:231
+#: gio/glocalfileoutputstream.c:662 gio/glocalfileoutputstream.c:907
+#: gio/glocalfileoutputstream.c:1220 gio/gsubprocess.c:229
#, c-format
msgid "Error opening file “%s”: %s"
msgstr ""
-#: gio/glocalfileoutputstream.c:959
+#: gio/glocalfileoutputstream.c:957
msgid "Target file is a directory"
msgstr "სამიზნე ფაილი საქაღალდეა"
-#: gio/glocalfileoutputstream.c:973
+#: gio/glocalfileoutputstream.c:971
msgid "Target file is not a regular file"
msgstr "სამიზნე საქაღალდე ჩვეულებრივი არაა"
-#: gio/glocalfileoutputstream.c:1015
+#: gio/glocalfileoutputstream.c:1013
msgid "The file was externally modified"
msgstr "ფაილი გარედან შეიცვალა"
-#: gio/glocalfileoutputstream.c:1204
+#: gio/glocalfileoutputstream.c:1202
#, c-format
msgid "Error removing old file: %s"
msgstr ""
-#: gio/gmemoryinputstream.c:476 gio/gmemoryoutputstream.c:764
+#: gio/gmemoryinputstream.c:474 gio/gmemoryoutputstream.c:762
msgid "Invalid GSeekType supplied"
msgstr ""
-#: gio/gmemoryinputstream.c:486
+#: gio/gmemoryinputstream.c:484
msgid "Invalid seek request"
msgstr "გადახვევის არასწორი მოთხოვნა"
-#: gio/gmemoryinputstream.c:510
+#: gio/gmemoryinputstream.c:508
msgid "Cannot truncate GMemoryInputStream"
msgstr ""
-#: gio/gmemoryoutputstream.c:570
+#: gio/gmemoryoutputstream.c:568
msgid "Memory output stream not resizable"
msgstr ""
-#: gio/gmemoryoutputstream.c:586
+#: gio/gmemoryoutputstream.c:584
msgid "Failed to resize memory output stream"
msgstr ""
-#: gio/gmemoryoutputstream.c:665
+#: gio/gmemoryoutputstream.c:663
msgid ""
"Amount of memory required to process the write is larger than available "
"address space"
msgstr ""
-#: gio/gmemoryoutputstream.c:774
+#: gio/gmemoryoutputstream.c:772
msgid "Requested seek before the beginning of the stream"
msgstr ""
-#: gio/gmemoryoutputstream.c:789
+#: gio/gmemoryoutputstream.c:787
msgid "Requested seek beyond the end of the stream"
msgstr ""
#. Translators: This is an error
#. * message for mount objects that
#. * don't implement unmount.
-#: gio/gmount.c:401
+#: gio/gmount.c:399
msgid "mount doesn’t implement “unmount”"
msgstr ""
#. Translators: This is an error
#. * message for mount objects that
#. * don't implement eject.
-#: gio/gmount.c:477
+#: gio/gmount.c:475
msgid "mount doesn’t implement “eject”"
msgstr ""
#. Translators: This is an error
#. * message for mount objects that
#. * don't implement any of unmount or unmount_with_operation.
-#: gio/gmount.c:555
+#: gio/gmount.c:553
msgid "mount doesn’t implement “unmount” or “unmount_with_operation”"
msgstr ""
#. Translators: This is an error
#. * message for mount objects that
#. * don't implement any of eject or eject_with_operation.
-#: gio/gmount.c:640
+#: gio/gmount.c:638
msgid "mount doesn’t implement “eject” or “eject_with_operation”"
msgstr ""
#. Translators: This is an error
#. * message for mount objects that
#. * don't implement remount.
-#: gio/gmount.c:728
+#: gio/gmount.c:726
msgid "mount doesn’t implement “remount”"
msgstr ""
#. Translators: This is an error
#. * message for mount objects that
#. * don't implement content type guessing.
-#: gio/gmount.c:810
+#: gio/gmount.c:808
msgid "mount doesn’t implement content type guessing"
msgstr ""
#. Translators: This is an error
#. * message for mount objects that
#. * don't implement content type guessing.
-#: gio/gmount.c:897
+#: gio/gmount.c:895
msgid "mount doesn’t implement synchronous content type guessing"
msgstr ""
-#: gio/gnetworkaddress.c:417
+#: gio/gnetworkaddress.c:415
#, c-format
msgid "Hostname “%s” contains “[” but not “]”"
msgstr ""
-#: gio/gnetworkmonitorbase.c:221 gio/gnetworkmonitorbase.c:325
+#: gio/gnetworkmonitorbase.c:219 gio/gnetworkmonitorbase.c:323
msgid "Network unreachable"
msgstr "ქსელი მიუწვდომელია"
-#: gio/gnetworkmonitorbase.c:259 gio/gnetworkmonitorbase.c:289
+#: gio/gnetworkmonitorbase.c:257 gio/gnetworkmonitorbase.c:287
msgid "Host unreachable"
msgstr "ჰოსტი მიუწვდომელია"
-#: gio/gnetworkmonitornetlink.c:101 gio/gnetworkmonitornetlink.c:113
-#: gio/gnetworkmonitornetlink.c:132
+#: gio/gnetworkmonitornetlink.c:99 gio/gnetworkmonitornetlink.c:111
+#: gio/gnetworkmonitornetlink.c:130
#, c-format
msgid "Could not create network monitor: %s"
msgstr ""
-#: gio/gnetworkmonitornetlink.c:122
+#: gio/gnetworkmonitornetlink.c:120
msgid "Could not create network monitor: "
msgstr ""
-#: gio/gnetworkmonitornetlink.c:185
+#: gio/gnetworkmonitornetlink.c:183
msgid "Could not get network status: "
msgstr ""
-#: gio/gnetworkmonitornm.c:313
+#: gio/gnetworkmonitornm.c:311
#, c-format
msgid "NetworkManager not running"
msgstr "NetworkManager-ი გაშვებული არაა"
-#: gio/gnetworkmonitornm.c:324
+#: gio/gnetworkmonitornm.c:322
#, c-format
msgid "NetworkManager version too old"
msgstr ""
-#: gio/goutputstream.c:234 gio/goutputstream.c:777
+#: gio/goutputstream.c:232 gio/goutputstream.c:775
msgid "Output stream doesn’t implement write"
msgstr ""
-#: gio/goutputstream.c:474 gio/goutputstream.c:1535
+#: gio/goutputstream.c:472 gio/goutputstream.c:1533
#, c-format
msgid "Sum of vectors passed to %s too large"
msgstr ""
-#: gio/goutputstream.c:738 gio/goutputstream.c:1763
+#: gio/goutputstream.c:736 gio/goutputstream.c:1761
msgid "Source stream is already closed"
msgstr ""
-#: gio/gproxyaddressenumerator.c:324 gio/gproxyaddressenumerator.c:342
-msgid "Unspecified proxy lookup failure"
-msgstr ""
-
#. Translators: the first placeholder is a domain name, the
#. * second is an error message
-#: gio/gresolver.c:403 gio/gthreadedresolver.c:152 gio/gthreadedresolver.c:170
-#: gio/gthreadedresolver.c:782 gio/gthreadedresolver.c:806
-#: gio/gthreadedresolver.c:831 gio/gthreadedresolver.c:846
+#: gio/gresolver.c:401 gio/gthreadedresolver.c:150 gio/gthreadedresolver.c:168
+#: gio/gthreadedresolver.c:780 gio/gthreadedresolver.c:804
+#: gio/gthreadedresolver.c:829 gio/gthreadedresolver.c:844
#, c-format
msgid "Error resolving “%s”: %s"
msgstr ""
#. Translators: The placeholder is for a function name.
-#: gio/gresolver.c:472 gio/gresolver.c:632
+#: gio/gresolver.c:470 gio/gresolver.c:630
#, c-format
msgid "%s not implemented"
msgstr ""
-#: gio/gresolver.c:1001 gio/gresolver.c:1053
+#: gio/gresolver.c:999 gio/gresolver.c:1051
msgid "Invalid domain"
msgstr "დომენის არასწორი სახელი"
-#: gio/gresource.c:683 gio/gresource.c:945 gio/gresource.c:985
-#: gio/gresource.c:1109 gio/gresource.c:1181 gio/gresource.c:1255
-#: gio/gresource.c:1336 gio/gresourcefile.c:478 gio/gresourcefile.c:601
-#: gio/gresourcefile.c:738
+#: gio/gresource.c:681 gio/gresource.c:943 gio/gresource.c:983
+#: gio/gresource.c:1107 gio/gresource.c:1179 gio/gresource.c:1253
+#: gio/gresource.c:1334 gio/gresourcefile.c:476 gio/gresourcefile.c:599
+#: gio/gresourcefile.c:736
#, c-format
msgid "The resource at “%s” does not exist"
msgstr ""
-#: gio/gresource.c:850
+#: gio/gresource.c:848
#, c-format
msgid "The resource at “%s” failed to decompress"
msgstr ""
-#: gio/gresourcefile.c:734
+#: gio/gresourcefile.c:732
#, c-format
msgid "The resource at “%s” is not a directory"
msgstr ""
-#: gio/gresourcefile.c:942
+#: gio/gresourcefile.c:940
msgid "Input stream doesn’t implement seek"
msgstr ""
-#: gio/gresource-tool.c:502
+#: gio/gresource-tool.c:500
msgid "List sections containing resources in an elf FILE"
msgstr ""
-#: gio/gresource-tool.c:508
+#: gio/gresource-tool.c:506
msgid ""
"List resources\n"
"If SECTION is given, only list resources in this section\n"
"If PATH is given, only list matching resources"
msgstr ""
-#: gio/gresource-tool.c:511 gio/gresource-tool.c:521
+#: gio/gresource-tool.c:509 gio/gresource-tool.c:519
msgid "FILE [PATH]"
msgstr ""
-#: gio/gresource-tool.c:512 gio/gresource-tool.c:522 gio/gresource-tool.c:529
+#: gio/gresource-tool.c:510 gio/gresource-tool.c:520 gio/gresource-tool.c:527
msgid "SECTION"
-msgstr ""
+msgstr "სექცია"
-#: gio/gresource-tool.c:517
+#: gio/gresource-tool.c:515
msgid ""
"List resources with details\n"
"If SECTION is given, only list resources in this section\n"
@@ -3372,15 +3364,15 @@ msgid ""
"Details include the section, size and compression"
msgstr ""
-#: gio/gresource-tool.c:527
+#: gio/gresource-tool.c:525
msgid "Extract a resource file to stdout"
msgstr ""
-#: gio/gresource-tool.c:528
+#: gio/gresource-tool.c:526
msgid "FILE PATH"
-msgstr ""
+msgstr "ფაილის ბილიკი"
-#: gio/gresource-tool.c:542
+#: gio/gresource-tool.c:540
msgid ""
"Usage:\n"
" gresource [--section SECTION] COMMAND [ARGS…]\n"
@@ -3396,7 +3388,7 @@ msgid ""
"\n"
msgstr ""
-#: gio/gresource-tool.c:556
+#: gio/gresource-tool.c:554
#, c-format
msgid ""
"Usage:\n"
@@ -3406,158 +3398,158 @@ msgid ""
"\n"
msgstr ""
-#: gio/gresource-tool.c:563
+#: gio/gresource-tool.c:561
msgid " SECTION An (optional) elf section name\n"
msgstr ""
-#: gio/gresource-tool.c:567 gio/gsettings-tool.c:720
+#: gio/gresource-tool.c:565 gio/gsettings-tool.c:718
msgid " COMMAND The (optional) command to explain\n"
msgstr ""
-#: gio/gresource-tool.c:573
+#: gio/gresource-tool.c:571
msgid " FILE An elf file (a binary or a shared library)\n"
msgstr ""
-#: gio/gresource-tool.c:576
+#: gio/gresource-tool.c:574
msgid ""
" FILE An elf file (a binary or a shared library)\n"
" or a compiled resource file\n"
msgstr ""
-#: gio/gresource-tool.c:580
+#: gio/gresource-tool.c:578
msgid "[PATH]"
msgstr "[ბილიკი]"
-#: gio/gresource-tool.c:582
+#: gio/gresource-tool.c:580
msgid " PATH An (optional) resource path (may be partial)\n"
msgstr ""
-#: gio/gresource-tool.c:583
+#: gio/gresource-tool.c:581
msgid "PATH"
msgstr "ბილიკი"
-#: gio/gresource-tool.c:585
+#: gio/gresource-tool.c:583
msgid " PATH A resource path\n"
msgstr ""
-#: gio/gsettings-tool.c:51 gio/gsettings-tool.c:72 gio/gsettings-tool.c:925
+#: gio/gsettings-tool.c:49 gio/gsettings-tool.c:70 gio/gsettings-tool.c:923
#, c-format
msgid "No such schema “%s”\n"
msgstr ""
-#: gio/gsettings-tool.c:57
+#: gio/gsettings-tool.c:55
#, c-format
msgid "Schema “%s” is not relocatable (path must not be specified)\n"
msgstr ""
-#: gio/gsettings-tool.c:78
+#: gio/gsettings-tool.c:76
#, c-format
msgid "Schema “%s” is relocatable (path must be specified)\n"
msgstr ""
-#: gio/gsettings-tool.c:92
+#: gio/gsettings-tool.c:90
msgid "Empty path given.\n"
msgstr ""
-#: gio/gsettings-tool.c:98
+#: gio/gsettings-tool.c:96
msgid "Path must begin with a slash (/)\n"
msgstr ""
-#: gio/gsettings-tool.c:104
+#: gio/gsettings-tool.c:102
msgid "Path must end with a slash (/)\n"
msgstr ""
-#: gio/gsettings-tool.c:110
+#: gio/gsettings-tool.c:108
msgid "Path must not contain two adjacent slashes (//)\n"
msgstr ""
-#: gio/gsettings-tool.c:555
+#: gio/gsettings-tool.c:553
msgid "The provided value is outside of the valid range\n"
msgstr ""
-#: gio/gsettings-tool.c:562
+#: gio/gsettings-tool.c:560
msgid "The key is not writable\n"
msgstr ""
-#: gio/gsettings-tool.c:598
+#: gio/gsettings-tool.c:596
msgid "List the installed (non-relocatable) schemas"
msgstr ""
-#: gio/gsettings-tool.c:604
+#: gio/gsettings-tool.c:602
msgid "List the installed relocatable schemas"
msgstr ""
-#: gio/gsettings-tool.c:610
+#: gio/gsettings-tool.c:608
msgid "List the keys in SCHEMA"
msgstr ""
-#: gio/gsettings-tool.c:611 gio/gsettings-tool.c:617 gio/gsettings-tool.c:660
+#: gio/gsettings-tool.c:609 gio/gsettings-tool.c:615 gio/gsettings-tool.c:658
msgid "SCHEMA[:PATH]"
msgstr ""
-#: gio/gsettings-tool.c:616
+#: gio/gsettings-tool.c:614
msgid "List the children of SCHEMA"
msgstr ""
-#: gio/gsettings-tool.c:622
+#: gio/gsettings-tool.c:620
msgid ""
"List keys and values, recursively\n"
"If no SCHEMA is given, list all keys\n"
msgstr ""
-#: gio/gsettings-tool.c:624
+#: gio/gsettings-tool.c:622
msgid "[SCHEMA[:PATH]]"
msgstr ""
-#: gio/gsettings-tool.c:629
+#: gio/gsettings-tool.c:627
msgid "Get the value of KEY"
msgstr ""
-#: gio/gsettings-tool.c:630 gio/gsettings-tool.c:636 gio/gsettings-tool.c:642
-#: gio/gsettings-tool.c:654 gio/gsettings-tool.c:666
+#: gio/gsettings-tool.c:628 gio/gsettings-tool.c:634 gio/gsettings-tool.c:640
+#: gio/gsettings-tool.c:652 gio/gsettings-tool.c:664
msgid "SCHEMA[:PATH] KEY"
msgstr ""
-#: gio/gsettings-tool.c:635
+#: gio/gsettings-tool.c:633
msgid "Query the range of valid values for KEY"
msgstr ""
-#: gio/gsettings-tool.c:641
+#: gio/gsettings-tool.c:639
msgid "Query the description for KEY"
msgstr ""
-#: gio/gsettings-tool.c:647
+#: gio/gsettings-tool.c:645
msgid "Set the value of KEY to VALUE"
msgstr ""
-#: gio/gsettings-tool.c:648
+#: gio/gsettings-tool.c:646
msgid "SCHEMA[:PATH] KEY VALUE"
msgstr ""
-#: gio/gsettings-tool.c:653
+#: gio/gsettings-tool.c:651
msgid "Reset KEY to its default value"
msgstr ""
-#: gio/gsettings-tool.c:659
+#: gio/gsettings-tool.c:657
msgid "Reset all keys in SCHEMA to their defaults"
msgstr ""
-#: gio/gsettings-tool.c:665
+#: gio/gsettings-tool.c:663
msgid "Check if KEY is writable"
msgstr ""
-#: gio/gsettings-tool.c:671
+#: gio/gsettings-tool.c:669
msgid ""
"Monitor KEY for changes.\n"
"If no KEY is specified, monitor all keys in SCHEMA.\n"
"Use ^C to stop monitoring.\n"
msgstr ""
-#: gio/gsettings-tool.c:674
+#: gio/gsettings-tool.c:672
msgid "SCHEMA[:PATH] [KEY]"
msgstr ""
-#: gio/gsettings-tool.c:686
+#: gio/gsettings-tool.c:684
msgid ""
"Usage:\n"
" gsettings --version\n"
@@ -3583,7 +3575,7 @@ msgid ""
"\n"
msgstr ""
-#: gio/gsettings-tool.c:710
+#: gio/gsettings-tool.c:708
#, c-format
msgid ""
"Usage:\n"
@@ -3593,428 +3585,428 @@ msgid ""
"\n"
msgstr ""
-#: gio/gsettings-tool.c:716
+#: gio/gsettings-tool.c:714
msgid " SCHEMADIR A directory to search for additional schemas\n"
msgstr ""
-#: gio/gsettings-tool.c:724
+#: gio/gsettings-tool.c:722
msgid ""
" SCHEMA The name of the schema\n"
" PATH The path, for relocatable schemas\n"
msgstr ""
-#: gio/gsettings-tool.c:729
+#: gio/gsettings-tool.c:727
msgid " KEY The (optional) key within the schema\n"
msgstr ""
-#: gio/gsettings-tool.c:733
+#: gio/gsettings-tool.c:731
msgid " KEY The key within the schema\n"
msgstr ""
-#: gio/gsettings-tool.c:737
+#: gio/gsettings-tool.c:735
msgid " VALUE The value to set\n"
msgstr ""
-#: gio/gsettings-tool.c:792
+#: gio/gsettings-tool.c:790
#, c-format
msgid "Could not load schemas from %s: %s\n"
msgstr "%s-დან სქემების ჩატვირთვის შეცდომა: %s\n"
-#: gio/gsettings-tool.c:804
+#: gio/gsettings-tool.c:802
msgid "No schemas installed\n"
msgstr ""
-#: gio/gsettings-tool.c:883
+#: gio/gsettings-tool.c:881
msgid "Empty schema name given\n"
msgstr ""
-#: gio/gsettings-tool.c:938
+#: gio/gsettings-tool.c:936
#, c-format
msgid "No such key “%s”\n"
msgstr ""
-#: gio/gsocket.c:419
+#: gio/gsocket.c:417
msgid "Invalid socket, not initialized"
msgstr ""
-#: gio/gsocket.c:426
+#: gio/gsocket.c:424
#, c-format
msgid "Invalid socket, initialization failed due to: %s"
msgstr ""
-#: gio/gsocket.c:434
+#: gio/gsocket.c:432
msgid "Socket is already closed"
msgstr ""
-#: gio/gsocket.c:449 gio/gsocket.c:3201 gio/gsocket.c:4434 gio/gsocket.c:4492
+#: gio/gsocket.c:447 gio/gsocket.c:3194 gio/gsocket.c:4427 gio/gsocket.c:4485
msgid "Socket I/O timed out"
msgstr "სოკეტის I/O ვადა გავიდა"
-#: gio/gsocket.c:586
+#: gio/gsocket.c:582
#, c-format
msgid "creating GSocket from fd: %s"
msgstr ""
-#: gio/gsocket.c:615 gio/gsocket.c:679 gio/gsocket.c:686
+#: gio/gsocket.c:611 gio/gsocket.c:675 gio/gsocket.c:682
#, c-format
msgid "Unable to create socket: %s"
msgstr "სოკეტის შექმნის შეცდომა: %s"
-#: gio/gsocket.c:679
+#: gio/gsocket.c:675
msgid "Unknown family was specified"
msgstr ""
-#: gio/gsocket.c:686
+#: gio/gsocket.c:682
msgid "Unknown protocol was specified"
msgstr ""
-#: gio/gsocket.c:1177
+#: gio/gsocket.c:1173
#, c-format
msgid "Cannot use datagram operations on a non-datagram socket."
msgstr ""
-#: gio/gsocket.c:1194
+#: gio/gsocket.c:1190
#, c-format
msgid "Cannot use datagram operations on a socket with a timeout set."
msgstr ""
-#: gio/gsocket.c:2001
+#: gio/gsocket.c:1997
#, c-format
msgid "could not get local address: %s"
msgstr ""
-#: gio/gsocket.c:2047
+#: gio/gsocket.c:2043
#, c-format
msgid "could not get remote address: %s"
msgstr ""
-#: gio/gsocket.c:2113
+#: gio/gsocket.c:2109
#, c-format
msgid "could not listen: %s"
msgstr ""
-#: gio/gsocket.c:2217
+#: gio/gsocket.c:2213
#, c-format
msgid "Error binding to address %s: %s"
msgstr ""
-#: gio/gsocket.c:2392 gio/gsocket.c:2429 gio/gsocket.c:2539 gio/gsocket.c:2564
-#: gio/gsocket.c:2631 gio/gsocket.c:2689 gio/gsocket.c:2707
+#: gio/gsocket.c:2389 gio/gsocket.c:2426 gio/gsocket.c:2536 gio/gsocket.c:2561
+#: gio/gsocket.c:2624 gio/gsocket.c:2682 gio/gsocket.c:2700
#, c-format
msgid "Error joining multicast group: %s"
msgstr ""
-#: gio/gsocket.c:2393 gio/gsocket.c:2430 gio/gsocket.c:2540 gio/gsocket.c:2565
-#: gio/gsocket.c:2632 gio/gsocket.c:2690 gio/gsocket.c:2708
+#: gio/gsocket.c:2390 gio/gsocket.c:2427 gio/gsocket.c:2537 gio/gsocket.c:2562
+#: gio/gsocket.c:2625 gio/gsocket.c:2683 gio/gsocket.c:2701
#, c-format
msgid "Error leaving multicast group: %s"
msgstr ""
-#: gio/gsocket.c:2394
+#: gio/gsocket.c:2391
msgid "No support for source-specific multicast"
msgstr ""
-#: gio/gsocket.c:2541
+#: gio/gsocket.c:2538
msgid "Unsupported socket family"
msgstr ""
-#: gio/gsocket.c:2566
+#: gio/gsocket.c:2563
msgid "source-specific not an IPv4 address"
msgstr ""
-#: gio/gsocket.c:2590
+#: gio/gsocket.c:2587
#, c-format
msgid "Interface name too long"
msgstr ""
-#: gio/gsocket.c:2603 gio/gsocket.c:2657
+#: gio/gsocket.c:2600 gio/gsocket.c:2650
#, c-format
msgid "Interface not found: %s"
msgstr ""
-#: gio/gsocket.c:2633
+#: gio/gsocket.c:2626
msgid "No support for IPv4 source-specific multicast"
msgstr ""
-#: gio/gsocket.c:2691
+#: gio/gsocket.c:2684
msgid "No support for IPv6 source-specific multicast"
msgstr ""
-#: gio/gsocket.c:2900
+#: gio/gsocket.c:2893
#, c-format
msgid "Error accepting connection: %s"
msgstr "შეერთების მიღების შეცდომა: %s"
-#: gio/gsocket.c:3026
+#: gio/gsocket.c:3019
msgid "Connection in progress"
msgstr ""
-#: gio/gsocket.c:3077
+#: gio/gsocket.c:3070
msgid "Unable to get pending error: "
msgstr "დარჩენილი შეცდომის მიღება შეუძლებელია: "
-#: gio/gsocket.c:3266
+#: gio/gsocket.c:3259
#, c-format
msgid "Error receiving data: %s"
msgstr ""
-#: gio/gsocket.c:3463
+#: gio/gsocket.c:3456
#, c-format
msgid "Error sending data: %s"
msgstr ""
-#: gio/gsocket.c:3650
+#: gio/gsocket.c:3643
#, c-format
msgid "Unable to shutdown socket: %s"
msgstr "სოკეტის გამორთვის შეცდომა: %s"
-#: gio/gsocket.c:3731
+#: gio/gsocket.c:3724
#, c-format
msgid "Error closing socket: %s"
msgstr ""
-#: gio/gsocket.c:4427
+#: gio/gsocket.c:4420
#, c-format
msgid "Waiting for socket condition: %s"
msgstr ""
-#: gio/gsocket.c:4817 gio/gsocket.c:4833 gio/gsocket.c:4846
+#: gio/gsocket.c:4810 gio/gsocket.c:4826 gio/gsocket.c:4839
#, c-format
msgid "Unable to send message: %s"
msgstr "შეუძლებელია შეტყობინების გაგზავნა: %s"
-#: gio/gsocket.c:4818 gio/gsocket.c:4834 gio/gsocket.c:4847
+#: gio/gsocket.c:4811 gio/gsocket.c:4827 gio/gsocket.c:4840
msgid "Message vectors too large"
msgstr ""
-#: gio/gsocket.c:4863 gio/gsocket.c:4865 gio/gsocket.c:5012 gio/gsocket.c:5097
-#: gio/gsocket.c:5275 gio/gsocket.c:5315 gio/gsocket.c:5317
+#: gio/gsocket.c:4856 gio/gsocket.c:4858 gio/gsocket.c:5005 gio/gsocket.c:5090
+#: gio/gsocket.c:5268 gio/gsocket.c:5308 gio/gsocket.c:5310
#, c-format
msgid "Error sending message: %s"
msgstr ""
-#: gio/gsocket.c:5039
+#: gio/gsocket.c:5032
msgid "GSocketControlMessage not supported on Windows"
msgstr ""
-#: gio/gsocket.c:5512 gio/gsocket.c:5588 gio/gsocket.c:5814
+#: gio/gsocket.c:5505 gio/gsocket.c:5581 gio/gsocket.c:5807
#, c-format
msgid "Error receiving message: %s"
msgstr ""
-#: gio/gsocket.c:6099 gio/gsocket.c:6110 gio/gsocket.c:6173
+#: gio/gsocket.c:6092 gio/gsocket.c:6103 gio/gsocket.c:6166
#, c-format
msgid "Unable to read socket credentials: %s"
msgstr "სოკეტის მომხმარებლის/პაროლის წაკითხვის შეცდომა: %s"
-#: gio/gsocket.c:6182
+#: gio/gsocket.c:6175
msgid "g_socket_get_credentials not implemented for this OS"
msgstr ""
-#: gio/gsocketclient.c:193
+#: gio/gsocketclient.c:191
#, c-format
msgid "Could not connect to proxy server %s: "
msgstr ""
-#: gio/gsocketclient.c:207
+#: gio/gsocketclient.c:205
#, c-format
msgid "Could not connect to %s: "
msgstr "%s-სთან მიერთების შეცდომა: "
-#: gio/gsocketclient.c:209
+#: gio/gsocketclient.c:207
msgid "Could not connect: "
msgstr ""
-#: gio/gsocketclient.c:1204 gio/gsocketclient.c:1807
+#: gio/gsocketclient.c:1202 gio/gsocketclient.c:1805
msgid "Proxying over a non-TCP connection is not supported."
msgstr "არა-TCP შეერთების ზემოდან პროქსი მხარდაუჭერელია."
-#: gio/gsocketclient.c:1236 gio/gsocketclient.c:1836
+#: gio/gsocketclient.c:1234 gio/gsocketclient.c:1834
#, c-format
msgid "Proxy protocol “%s” is not supported."
msgstr "პროქსი პროტოკოლი \"%s\" მხარდაუჭერელია."
-#: gio/gsocketlistener.c:232
+#: gio/gsocketlistener.c:230
msgid "Listener is already closed"
msgstr ""
-#: gio/gsocketlistener.c:278
+#: gio/gsocketlistener.c:276
msgid "Added socket is closed"
msgstr ""
-#: gio/gsocks4aproxy.c:120
+#: gio/gsocks4aproxy.c:118
#, c-format
msgid "SOCKSv4 does not support IPv6 address “%s”"
msgstr ""
-#: gio/gsocks4aproxy.c:138
+#: gio/gsocks4aproxy.c:136
msgid "Username is too long for SOCKSv4 protocol"
msgstr ""
-#: gio/gsocks4aproxy.c:155
+#: gio/gsocks4aproxy.c:153
#, c-format
msgid "Hostname “%s” is too long for SOCKSv4 protocol"
msgstr ""
-#: gio/gsocks4aproxy.c:181
+#: gio/gsocks4aproxy.c:179
msgid "The server is not a SOCKSv4 proxy server."
msgstr ""
-#: gio/gsocks4aproxy.c:188
+#: gio/gsocks4aproxy.c:186
msgid "Connection through SOCKSv4 server was rejected"
msgstr ""
-#: gio/gsocks5proxy.c:155 gio/gsocks5proxy.c:340 gio/gsocks5proxy.c:350
+#: gio/gsocks5proxy.c:153 gio/gsocks5proxy.c:338 gio/gsocks5proxy.c:348
msgid "The server is not a SOCKSv5 proxy server."
msgstr ""
-#: gio/gsocks5proxy.c:169 gio/gsocks5proxy.c:186
+#: gio/gsocks5proxy.c:167 gio/gsocks5proxy.c:184
msgid "The SOCKSv5 proxy requires authentication."
msgstr ""
-#: gio/gsocks5proxy.c:193
+#: gio/gsocks5proxy.c:191
msgid ""
"The SOCKSv5 proxy requires an authentication method that is not supported by "
"GLib."
msgstr ""
-#: gio/gsocks5proxy.c:222
+#: gio/gsocks5proxy.c:220
msgid "Username or password is too long for SOCKSv5 protocol."
msgstr ""
-#: gio/gsocks5proxy.c:252
+#: gio/gsocks5proxy.c:250
msgid "SOCKSv5 authentication failed due to wrong username or password."
msgstr ""
-#: gio/gsocks5proxy.c:302
+#: gio/gsocks5proxy.c:300
#, c-format
msgid "Hostname “%s” is too long for SOCKSv5 protocol"
msgstr ""
-#: gio/gsocks5proxy.c:364
+#: gio/gsocks5proxy.c:362
msgid "The SOCKSv5 proxy server uses unknown address type."
msgstr ""
-#: gio/gsocks5proxy.c:371
+#: gio/gsocks5proxy.c:369
msgid "Internal SOCKSv5 proxy server error."
msgstr ""
-#: gio/gsocks5proxy.c:377
+#: gio/gsocks5proxy.c:375
msgid "SOCKSv5 connection not allowed by ruleset."
msgstr ""
-#: gio/gsocks5proxy.c:384
+#: gio/gsocks5proxy.c:382
msgid "Host unreachable through SOCKSv5 server."
msgstr ""
-#: gio/gsocks5proxy.c:390
+#: gio/gsocks5proxy.c:388
msgid "Network unreachable through SOCKSv5 proxy."
msgstr ""
-#: gio/gsocks5proxy.c:396
+#: gio/gsocks5proxy.c:394
msgid "Connection refused through SOCKSv5 proxy."
msgstr ""
-#: gio/gsocks5proxy.c:402
+#: gio/gsocks5proxy.c:400
msgid "SOCKSv5 proxy does not support “connect” command."
msgstr ""
-#: gio/gsocks5proxy.c:408
+#: gio/gsocks5proxy.c:406
msgid "SOCKSv5 proxy does not support provided address type."
msgstr ""
-#: gio/gsocks5proxy.c:414
+#: gio/gsocks5proxy.c:412
msgid "Unknown SOCKSv5 proxy error."
msgstr ""
-#: gio/gtestdbus.c:614 glib/gspawn-win32.c:303
+#: gio/gtestdbus.c:612 glib/gspawn-win32.c:314
#, c-format
msgid "Failed to create pipe for communicating with child process (%s)"
msgstr "არხის შექმნა ქვეპროცესთან დასაკავშირებლად ვერ მოხერხდა (%s)"
-#: gio/gtestdbus.c:621
+#: gio/gtestdbus.c:619
#, c-format
msgid "Pipes are not supported in this platform"
msgstr ""
-#: gio/gthemedicon.c:597
+#: gio/gthemedicon.c:595
#, c-format
msgid "Can’t handle version %d of GThemedIcon encoding"
msgstr ""
-#: gio/gthreadedresolver.c:154
+#: gio/gthreadedresolver.c:152
msgid "No valid addresses were found"
msgstr ""
-#: gio/gthreadedresolver.c:339
+#: gio/gthreadedresolver.c:337
#, c-format
msgid "Error reverse-resolving “%s”: %s"
msgstr ""
#. Translators: the placeholder is a DNS record type, such as ‘MX’ or ‘SRV’
-#: gio/gthreadedresolver.c:552 gio/gthreadedresolver.c:574
-#: gio/gthreadedresolver.c:612 gio/gthreadedresolver.c:659
-#: gio/gthreadedresolver.c:688 gio/gthreadedresolver.c:700
+#: gio/gthreadedresolver.c:550 gio/gthreadedresolver.c:572
+#: gio/gthreadedresolver.c:610 gio/gthreadedresolver.c:657
+#: gio/gthreadedresolver.c:686 gio/gthreadedresolver.c:698
#, c-format
msgid "Error parsing DNS %s record: malformed DNS packet"
msgstr ""
-#: gio/gthreadedresolver.c:758 gio/gthreadedresolver.c:895
-#: gio/gthreadedresolver.c:993 gio/gthreadedresolver.c:1043
+#: gio/gthreadedresolver.c:756 gio/gthreadedresolver.c:893
+#: gio/gthreadedresolver.c:991 gio/gthreadedresolver.c:1041
#, c-format
msgid "No DNS record of the requested type for “%s”"
msgstr ""
-#: gio/gthreadedresolver.c:763 gio/gthreadedresolver.c:998
+#: gio/gthreadedresolver.c:761 gio/gthreadedresolver.c:996
#, c-format
msgid "Temporarily unable to resolve “%s”"
msgstr ""
-#: gio/gthreadedresolver.c:768 gio/gthreadedresolver.c:1003
-#: gio/gthreadedresolver.c:1113
+#: gio/gthreadedresolver.c:766 gio/gthreadedresolver.c:1001
+#: gio/gthreadedresolver.c:1111
#, c-format
msgid "Error resolving “%s”"
msgstr ""
-#: gio/gthreadedresolver.c:782 gio/gthreadedresolver.c:806
-#: gio/gthreadedresolver.c:831 gio/gthreadedresolver.c:846
+#: gio/gthreadedresolver.c:780 gio/gthreadedresolver.c:804
+#: gio/gthreadedresolver.c:829 gio/gthreadedresolver.c:844
msgid "Malformed DNS packet"
msgstr "არასწორი DNS პაკეტი"
-#: gio/gthreadedresolver.c:888
+#: gio/gthreadedresolver.c:886
#, c-format
msgid "Failed to parse DNS response for “%s”: "
msgstr ""
-#: gio/gtlscertificate.c:480
+#: gio/gtlscertificate.c:478
msgid "No PEM-encoded private key found"
msgstr ""
-#: gio/gtlscertificate.c:490
+#: gio/gtlscertificate.c:488
msgid "Cannot decrypt PEM-encoded private key"
msgstr ""
-#: gio/gtlscertificate.c:501
+#: gio/gtlscertificate.c:499
msgid "Could not parse PEM-encoded private key"
msgstr ""
-#: gio/gtlscertificate.c:528
+#: gio/gtlscertificate.c:526
msgid "No PEM-encoded certificate found"
msgstr ""
-#: gio/gtlscertificate.c:537
+#: gio/gtlscertificate.c:535
msgid "Could not parse PEM-encoded certificate"
msgstr ""
-#: gio/gtlscertificate.c:800
+#: gio/gtlscertificate.c:796
msgid "The current TLS backend does not support PKCS #12"
msgstr ""
-#: gio/gtlscertificate.c:1017
+#: gio/gtlscertificate.c:1013
msgid "This GTlsBackend does not support creating PKCS #11 certificates"
msgstr ""
-#: gio/gtlspassword.c:113
+#: gio/gtlspassword.c:111
msgid ""
"This is the last chance to enter the password correctly before your access "
"is locked out."
@@ -4022,139 +4014,141 @@ msgstr ""
#. Translators: This is not the 'This is the last chance' string. It is
#. * displayed when more than one attempt is allowed.
-#: gio/gtlspassword.c:117
+#: gio/gtlspassword.c:115
msgid ""
"Several passwords entered have been incorrect, and your access will be "
"locked out after further failures."
msgstr ""
-#: gio/gtlspassword.c:119
+#: gio/gtlspassword.c:117
msgid "The password entered is incorrect."
msgstr ""
-#: gio/gunixconnection.c:127
+#: gio/gunixconnection.c:125
msgid "Sending FD is not supported"
msgstr "FD-ის გაგზავნა მხარდაუჭერელია"
-#: gio/gunixconnection.c:180 gio/gunixconnection.c:598
+#: gio/gunixconnection.c:178 gio/gunixconnection.c:596
#, c-format
msgid "Expecting 1 control message, got %d"
msgid_plural "Expecting 1 control message, got %d"
msgstr[0] ""
+msgstr[1] ""
-#: gio/gunixconnection.c:196 gio/gunixconnection.c:610
+#: gio/gunixconnection.c:194 gio/gunixconnection.c:608
msgid "Unexpected type of ancillary data"
msgstr ""
-#: gio/gunixconnection.c:214
+#: gio/gunixconnection.c:212
#, c-format
msgid "Expecting one fd, but got %d\n"
msgid_plural "Expecting one fd, but got %d\n"
msgstr[0] ""
+msgstr[1] ""
-#: gio/gunixconnection.c:233
+#: gio/gunixconnection.c:231
msgid "Received invalid fd"
msgstr ""
-#: gio/gunixconnection.c:240
+#: gio/gunixconnection.c:238
msgid "Receiving FD is not supported"
msgstr "FD-ის მიღება მხარდაუჭერელია"
-#: gio/gunixconnection.c:382
+#: gio/gunixconnection.c:380
msgid "Error sending credentials: "
msgstr ""
-#: gio/gunixconnection.c:539
+#: gio/gunixconnection.c:537
#, c-format
msgid "Error checking if SO_PASSCRED is enabled for socket: %s"
msgstr ""
-#: gio/gunixconnection.c:555
+#: gio/gunixconnection.c:553
#, c-format
msgid "Error enabling SO_PASSCRED: %s"
msgstr ""
-#: gio/gunixconnection.c:584
+#: gio/gunixconnection.c:582
msgid ""
"Expecting to read a single byte for receiving credentials but read zero bytes"
msgstr ""
-#: gio/gunixconnection.c:624
+#: gio/gunixconnection.c:622
#, c-format
msgid "Not expecting control message, but got %d"
msgstr ""
-#: gio/gunixconnection.c:649
+#: gio/gunixconnection.c:647
#, c-format
msgid "Error while disabling SO_PASSCRED: %s"
msgstr ""
-#: gio/gunixinputstream.c:359 gio/gunixinputstream.c:380
+#: gio/gunixinputstream.c:357 gio/gunixinputstream.c:378
#, c-format
msgid "Error reading from file descriptor: %s"
msgstr ""
-#: gio/gunixinputstream.c:413 gio/gunixoutputstream.c:522
-#: gio/gwin32inputstream.c:219 gio/gwin32outputstream.c:206
+#: gio/gunixinputstream.c:411 gio/gunixoutputstream.c:520
+#: gio/gwin32inputstream.c:217 gio/gwin32outputstream.c:204
#, c-format
msgid "Error closing file descriptor: %s"
msgstr ""
-#: gio/gunixmounts.c:2815 gio/gunixmounts.c:2868
+#: gio/gunixmounts.c:2809 gio/gunixmounts.c:2862
msgid "Filesystem root"
msgstr "ფაილური სისტემის საწყისი საქაღალდე"
-#: gio/gunixoutputstream.c:359 gio/gunixoutputstream.c:379
-#: gio/gunixoutputstream.c:466 gio/gunixoutputstream.c:486
-#: gio/gunixoutputstream.c:632
+#: gio/gunixoutputstream.c:357 gio/gunixoutputstream.c:377
+#: gio/gunixoutputstream.c:464 gio/gunixoutputstream.c:484
+#: gio/gunixoutputstream.c:630
#, c-format
msgid "Error writing to file descriptor: %s"
msgstr ""
-#: gio/gunixsocketaddress.c:253
+#: gio/gunixsocketaddress.c:251
msgid "Abstract UNIX domain socket addresses not supported on this system"
msgstr ""
-#: gio/gvolume.c:440
+#: gio/gvolume.c:438
msgid "volume doesn’t implement eject"
msgstr ""
#. Translators: This is an error
#. * message for volume objects that
#. * don't implement any of eject or eject_with_operation.
-#: gio/gvolume.c:517
+#: gio/gvolume.c:515
msgid "volume doesn’t implement eject or eject_with_operation"
msgstr ""
-#: gio/gwin32inputstream.c:187
+#: gio/gwin32inputstream.c:185
#, c-format
msgid "Error reading from handle: %s"
msgstr ""
-#: gio/gwin32inputstream.c:234 gio/gwin32outputstream.c:221
+#: gio/gwin32inputstream.c:232 gio/gwin32outputstream.c:219
#, c-format
msgid "Error closing handle: %s"
msgstr ""
-#: gio/gwin32outputstream.c:174
+#: gio/gwin32outputstream.c:172
#, c-format
msgid "Error writing to handle: %s"
msgstr ""
-#: gio/gzlibcompressor.c:396 gio/gzlibdecompressor.c:349
+#: gio/gzlibcompressor.c:394 gio/gzlibdecompressor.c:347
msgid "Not enough memory"
msgstr "მეხსიერება საკმარისი არ არის"
-#: gio/gzlibcompressor.c:403 gio/gzlibdecompressor.c:356
+#: gio/gzlibcompressor.c:401 gio/gzlibdecompressor.c:354
#, c-format
msgid "Internal error: %s"
msgstr "შიდა შეცდომა: %s"
-#: gio/gzlibcompressor.c:416 gio/gzlibdecompressor.c:370
+#: gio/gzlibcompressor.c:414 gio/gzlibdecompressor.c:368
msgid "Need more input"
msgstr "საჭიროა მეტი შეტანა"
-#: gio/gzlibdecompressor.c:342
+#: gio/gzlibdecompressor.c:340
msgid "Invalid compressed data"
msgstr "არასწორი შეკუმშული მონაცემები"
@@ -4182,156 +4176,156 @@ msgstr "D-Bus სერვისის გაშვება"
msgid "Wrong args\n"
msgstr "არასწორი არგუმენტები\n"
-#: glib/gbookmarkfile.c:779
+#: glib/gbookmarkfile.c:777
#, c-format
msgid "Unexpected attribute “%s” for element “%s”"
msgstr "მოულოდნელი ატრიბუტი '%s' ელემენტ '%s'-თვის"
-#: glib/gbookmarkfile.c:790 glib/gbookmarkfile.c:870 glib/gbookmarkfile.c:880
-#: glib/gbookmarkfile.c:993
+#: glib/gbookmarkfile.c:788 glib/gbookmarkfile.c:868 glib/gbookmarkfile.c:878
+#: glib/gbookmarkfile.c:991
#, c-format
msgid "Attribute “%s” of element “%s” not found"
msgstr "ატრიბუტი'%s' ელემენტისთვის '%s' ვერ მოიძებნა"
-#: glib/gbookmarkfile.c:1202 glib/gbookmarkfile.c:1267
-#: glib/gbookmarkfile.c:1331 glib/gbookmarkfile.c:1341
+#: glib/gbookmarkfile.c:1200 glib/gbookmarkfile.c:1265
+#: glib/gbookmarkfile.c:1329 glib/gbookmarkfile.c:1339
#, c-format
msgid "Unexpected tag “%s”, tag “%s” expected"
msgstr "უცნობი ჭდე '%s', მოსალოდნელი იყო '%s'"
-#: glib/gbookmarkfile.c:1227 glib/gbookmarkfile.c:1241
-#: glib/gbookmarkfile.c:1309 glib/gbookmarkfile.c:1355
+#: glib/gbookmarkfile.c:1225 glib/gbookmarkfile.c:1239
+#: glib/gbookmarkfile.c:1307 glib/gbookmarkfile.c:1353
#, c-format
msgid "Unexpected tag “%s” inside “%s”"
msgstr "უცნობი ჭდე '%s' - '%s'-ში"
-#: glib/gbookmarkfile.c:1635
+#: glib/gbookmarkfile.c:1633
#, c-format
msgid "Invalid date/time ‘%s’ in bookmark file"
msgstr ""
-#: glib/gbookmarkfile.c:1838
+#: glib/gbookmarkfile.c:1836
msgid "No valid bookmark file found in data dirs"
msgstr "მონაცემთა დასტებში მართებული საკვანძო ფაილი ვერ მოიძებნა"
-#: glib/gbookmarkfile.c:2039
+#: glib/gbookmarkfile.c:2037
#, c-format
msgid "A bookmark for URI “%s” already exists"
msgstr "სანიშნე URI-სთვის '%s' უკვე არსებობს"
-#: glib/gbookmarkfile.c:2088 glib/gbookmarkfile.c:2246
-#: glib/gbookmarkfile.c:2331 glib/gbookmarkfile.c:2411
-#: glib/gbookmarkfile.c:2496 glib/gbookmarkfile.c:2630
-#: glib/gbookmarkfile.c:2763 glib/gbookmarkfile.c:2898
-#: glib/gbookmarkfile.c:2940 glib/gbookmarkfile.c:3037
-#: glib/gbookmarkfile.c:3158 glib/gbookmarkfile.c:3352
-#: glib/gbookmarkfile.c:3493 glib/gbookmarkfile.c:3712
-#: glib/gbookmarkfile.c:3801 glib/gbookmarkfile.c:3890
-#: glib/gbookmarkfile.c:4009
+#: glib/gbookmarkfile.c:2086 glib/gbookmarkfile.c:2244
+#: glib/gbookmarkfile.c:2329 glib/gbookmarkfile.c:2409
+#: glib/gbookmarkfile.c:2494 glib/gbookmarkfile.c:2628
+#: glib/gbookmarkfile.c:2761 glib/gbookmarkfile.c:2896
+#: glib/gbookmarkfile.c:2938 glib/gbookmarkfile.c:3035
+#: glib/gbookmarkfile.c:3156 glib/gbookmarkfile.c:3350
+#: glib/gbookmarkfile.c:3491 glib/gbookmarkfile.c:3710
+#: glib/gbookmarkfile.c:3799 glib/gbookmarkfile.c:3888
+#: glib/gbookmarkfile.c:4007
#, c-format
msgid "No bookmark found for URI “%s”"
msgstr "URI '%s'-თვის სანიშნე ვერ მოიძებნა"
-#: glib/gbookmarkfile.c:2420
+#: glib/gbookmarkfile.c:2418
#, c-format
msgid "No MIME type defined in the bookmark for URI “%s”"
msgstr "URI '%s' სანიშნეში MIME ტიპი მითითებული არაა"
-#: glib/gbookmarkfile.c:2505
+#: glib/gbookmarkfile.c:2503
#, c-format
msgid "No private flag has been defined in bookmark for URI “%s”"
msgstr "URI '%s' სანიშნეში პირადი ალამი არ მითითებულა"
-#: glib/gbookmarkfile.c:3046
+#: glib/gbookmarkfile.c:3044
#, c-format
msgid "No groups set in bookmark for URI “%s”"
msgstr "URI '%s' სანიშნეში ჯგუფები დაყენებული არაა"
-#: glib/gbookmarkfile.c:3514 glib/gbookmarkfile.c:3722
+#: glib/gbookmarkfile.c:3512 glib/gbookmarkfile.c:3720
#, c-format
msgid "No application with name “%s” registered a bookmark for “%s”"
msgstr "პროგრამას სახელით \"%s\" სანიშნე \"%s\" არ დაურეგისტრირებია"
-#: glib/gbookmarkfile.c:3745
+#: glib/gbookmarkfile.c:3743
#, c-format
msgid "Failed to expand exec line “%s” with URI “%s”"
msgstr ""
-#: glib/gconvert.c:470
+#: glib/gconvert.c:468
msgid "Unrepresentable character in conversion input"
msgstr ""
-#: glib/gconvert.c:497 glib/gutf8.c:888 glib/gutf8.c:1101 glib/gutf8.c:1238
-#: glib/gutf8.c:1342
+#: glib/gconvert.c:495 glib/gutf8.c:886 glib/gutf8.c:1099 glib/gutf8.c:1236
+#: glib/gutf8.c:1340
msgid "Partial character sequence at end of input"
msgstr "არასრული სიმბოლო შეტანის ტექსტის ბოლოს"
-#: glib/gconvert.c:768
+#: glib/gconvert.c:764
#, c-format
msgid "Cannot convert fallback “%s” to codeset “%s”"
msgstr "ვერ ხერხდება \"%s\" სიმბოლოს გარდაქმნა კოდირებაში \"%s\""
-#: glib/gconvert.c:940
+#: glib/gconvert.c:936
msgid "Embedded NUL byte in conversion input"
msgstr "გადაყვანისას შეყვანაში ჩაშენებული NUL ბაიტი"
-#: glib/gconvert.c:961
+#: glib/gconvert.c:957
msgid "Embedded NUL byte in conversion output"
msgstr "გადაყვანისას გამოტანაში ჩაშენებული NUL ბაიტი"
-#: glib/gconvert.c:1692
+#: glib/gconvert.c:1688
#, c-format
msgid "The URI “%s” is not an absolute URI using the “file” scheme"
msgstr ""
"URI \"%s\" არ გახლავთ აბსოლუტური იდენტიფიკატორი \"file\" სქემის გამოყენებისას"
-#: glib/gconvert.c:1702
+#: glib/gconvert.c:1698
#, c-format
msgid "The local file URI “%s” may not include a “#”"
msgstr ""
-"ლოკალური ფაილის URI იდენტიფიკატორი \"%s\" არ შეიძლება შეიცავდეს სიმბოლოს \"#"
-"\""
+"ლოკალური ფაილის URI იდენტიფიკატორი \"%s\" არ შეიძლება შეიცავდეს სიმბოლოს "
+"\"#\""
-#: glib/gconvert.c:1719
+#: glib/gconvert.c:1715
#, c-format
msgid "The URI “%s” is invalid"
msgstr "URI იდენტიფიკატორი \"%s\" მცდარია"
-#: glib/gconvert.c:1731
+#: glib/gconvert.c:1727
#, c-format
msgid "The hostname of the URI “%s” is invalid"
msgstr "URI იდენტიფიკატორის \"%s\" ჰოსტის სახელი მცდარია"
-#: glib/gconvert.c:1747
+#: glib/gconvert.c:1743
#, c-format
msgid "The URI “%s” contains invalidly escaped characters"
msgstr "URI იდენტიფიკატორი \"%s\" შეიცავ მცდარ საკონტროლო სიმბოლოებს"
-#: glib/gconvert.c:1819
+#: glib/gconvert.c:1815
#, c-format
msgid "The pathname “%s” is not an absolute path"
msgstr "ბილიკი \"%s\" აბსოლუტური არ გახლავთ"
#. Translators: this is the preferred format for expressing the date and the time
-#: glib/gdatetime.c:228
+#: glib/gdatetime.c:226
msgctxt "GDateTime"
msgid "%a %b %e %H:%M:%S %Y"
msgstr "%Y წლის %d %B, %T %Z"
#. Translators: this is the preferred format for expressing the date
-#: glib/gdatetime.c:231
+#: glib/gdatetime.c:229
msgctxt "GDateTime"
msgid "%m/%d/%y"
msgstr "%m/%d/%Y"
#. Translators: this is the preferred format for expressing the time
-#: glib/gdatetime.c:234
+#: glib/gdatetime.c:232
msgctxt "GDateTime"
msgid "%H:%M:%S"
msgstr "%T"
#. Translators: this is the preferred format for expressing 12 hour time
-#: glib/gdatetime.c:237
+#: glib/gdatetime.c:235
msgctxt "GDateTime"
msgid "%I:%M:%S %p"
msgstr "%I:%M:%S %p"
@@ -4352,62 +4346,62 @@ msgstr "%I:%M:%S %p"
#. * non-European) there is no difference between the standalone and
#. * complete date form.
#.
-#: glib/gdatetime.c:276
+#: glib/gdatetime.c:274
msgctxt "full month name"
msgid "January"
msgstr "იანვარი"
-#: glib/gdatetime.c:278
+#: glib/gdatetime.c:276
msgctxt "full month name"
msgid "February"
msgstr "თებერვალი"
-#: glib/gdatetime.c:280
+#: glib/gdatetime.c:278
msgctxt "full month name"
msgid "March"
msgstr "მარტი"
-#: glib/gdatetime.c:282
+#: glib/gdatetime.c:280
msgctxt "full month name"
msgid "April"
msgstr "აპრილი"
-#: glib/gdatetime.c:284
+#: glib/gdatetime.c:282
msgctxt "full month name"
msgid "May"
msgstr "მაისი"
-#: glib/gdatetime.c:286
+#: glib/gdatetime.c:284
msgctxt "full month name"
msgid "June"
msgstr "ივნისი"
-#: glib/gdatetime.c:288
+#: glib/gdatetime.c:286
msgctxt "full month name"
msgid "July"
msgstr "ივლისი"
-#: glib/gdatetime.c:290
+#: glib/gdatetime.c:288
msgctxt "full month name"
msgid "August"
msgstr "აგვისტო"
-#: glib/gdatetime.c:292
+#: glib/gdatetime.c:290
msgctxt "full month name"
msgid "September"
msgstr "სექტემბერი"
-#: glib/gdatetime.c:294
+#: glib/gdatetime.c:292
msgctxt "full month name"
msgid "October"
msgstr "ოქტომბერი"
-#: glib/gdatetime.c:296
+#: glib/gdatetime.c:294
msgctxt "full month name"
msgid "November"
msgstr "ნოემბერი"
-#: glib/gdatetime.c:298
+#: glib/gdatetime.c:296
msgctxt "full month name"
msgid "December"
msgstr "დეკემბერი"
@@ -4429,132 +4423,132 @@ msgstr "დეკემბერი"
#. * other platform. Here are abbreviated month names in a form
#. * appropriate when they are used standalone.
#.
-#: glib/gdatetime.c:330
+#: glib/gdatetime.c:328
msgctxt "abbreviated month name"
msgid "Jan"
msgstr "იან"
-#: glib/gdatetime.c:332
+#: glib/gdatetime.c:330
msgctxt "abbreviated month name"
msgid "Feb"
msgstr "თებ"
-#: glib/gdatetime.c:334
+#: glib/gdatetime.c:332
msgctxt "abbreviated month name"
msgid "Mar"
msgstr "მარ"
-#: glib/gdatetime.c:336
+#: glib/gdatetime.c:334
msgctxt "abbreviated month name"
msgid "Apr"
msgstr "აპრ"
-#: glib/gdatetime.c:338
+#: glib/gdatetime.c:336
msgctxt "abbreviated month name"
msgid "May"
msgstr "მაისი"
-#: glib/gdatetime.c:340
+#: glib/gdatetime.c:338
msgctxt "abbreviated month name"
msgid "Jun"
msgstr "ივნ"
-#: glib/gdatetime.c:342
+#: glib/gdatetime.c:340
msgctxt "abbreviated month name"
msgid "Jul"
msgstr "ივლ"
-#: glib/gdatetime.c:344
+#: glib/gdatetime.c:342
msgctxt "abbreviated month name"
msgid "Aug"
msgstr "აგვ"
-#: glib/gdatetime.c:346
+#: glib/gdatetime.c:344
msgctxt "abbreviated month name"
msgid "Sep"
msgstr "სექ"
-#: glib/gdatetime.c:348
+#: glib/gdatetime.c:346
msgctxt "abbreviated month name"
msgid "Oct"
msgstr "ოქტ"
-#: glib/gdatetime.c:350
+#: glib/gdatetime.c:348
msgctxt "abbreviated month name"
msgid "Nov"
msgstr "ნოე"
-#: glib/gdatetime.c:352
+#: glib/gdatetime.c:350
msgctxt "abbreviated month name"
msgid "Dec"
msgstr "დეკ"
-#: glib/gdatetime.c:367
+#: glib/gdatetime.c:365
msgctxt "full weekday name"
msgid "Monday"
msgstr "ორშაბათი"
-#: glib/gdatetime.c:369
+#: glib/gdatetime.c:367
msgctxt "full weekday name"
msgid "Tuesday"
msgstr "სამშაბათი"
-#: glib/gdatetime.c:371
+#: glib/gdatetime.c:369
msgctxt "full weekday name"
msgid "Wednesday"
msgstr "ოთხშაბათი"
-#: glib/gdatetime.c:373
+#: glib/gdatetime.c:371
msgctxt "full weekday name"
msgid "Thursday"
msgstr "ხუთშაბათი"
-#: glib/gdatetime.c:375
+#: glib/gdatetime.c:373
msgctxt "full weekday name"
msgid "Friday"
msgstr "პარასკევი"
-#: glib/gdatetime.c:377
+#: glib/gdatetime.c:375
msgctxt "full weekday name"
msgid "Saturday"
msgstr "შაბათი"
-#: glib/gdatetime.c:379
+#: glib/gdatetime.c:377
msgctxt "full weekday name"
msgid "Sunday"
msgstr "კვირა"
-#: glib/gdatetime.c:394
+#: glib/gdatetime.c:392
msgctxt "abbreviated weekday name"
msgid "Mon"
msgstr "ორშ"
-#: glib/gdatetime.c:396
+#: glib/gdatetime.c:394
msgctxt "abbreviated weekday name"
msgid "Tue"
msgstr "სამ"
-#: glib/gdatetime.c:398
+#: glib/gdatetime.c:396
msgctxt "abbreviated weekday name"
msgid "Wed"
msgstr "ოთხ"
-#: glib/gdatetime.c:400
+#: glib/gdatetime.c:398
msgctxt "abbreviated weekday name"
msgid "Thu"
msgstr "ხუთ"
-#: glib/gdatetime.c:402
+#: glib/gdatetime.c:400
msgctxt "abbreviated weekday name"
msgid "Fri"
msgstr "პარ"
-#: glib/gdatetime.c:404
+#: glib/gdatetime.c:402
msgctxt "abbreviated weekday name"
msgid "Sat"
msgstr "შაბ"
-#: glib/gdatetime.c:406
+#: glib/gdatetime.c:404
msgctxt "abbreviated weekday name"
msgid "Sun"
msgstr "კვი"
@@ -4576,62 +4570,62 @@ msgstr "კვი"
#. * (western European, non-European) there is no difference between the
#. * standalone and complete date form.
#.
-#: glib/gdatetime.c:470
+#: glib/gdatetime.c:468
msgctxt "full month name with day"
msgid "January"
msgstr "იანვარი"
-#: glib/gdatetime.c:472
+#: glib/gdatetime.c:470
msgctxt "full month name with day"
msgid "February"
msgstr "თებერვალი"
-#: glib/gdatetime.c:474
+#: glib/gdatetime.c:472
msgctxt "full month name with day"
msgid "March"
msgstr "მარტი"
-#: glib/gdatetime.c:476
+#: glib/gdatetime.c:474
msgctxt "full month name with day"
msgid "April"
msgstr "აპრილი"
-#: glib/gdatetime.c:478
+#: glib/gdatetime.c:476
msgctxt "full month name with day"
msgid "May"
msgstr "მაისი"
-#: glib/gdatetime.c:480
+#: glib/gdatetime.c:478
msgctxt "full month name with day"
msgid "June"
msgstr "ივნისი"
-#: glib/gdatetime.c:482
+#: glib/gdatetime.c:480
msgctxt "full month name with day"
msgid "July"
msgstr "ივლისი"
-#: glib/gdatetime.c:484
+#: glib/gdatetime.c:482
msgctxt "full month name with day"
msgid "August"
msgstr "აგვისტო"
-#: glib/gdatetime.c:486
+#: glib/gdatetime.c:484
msgctxt "full month name with day"
msgid "September"
msgstr "სექტემბერი"
-#: glib/gdatetime.c:488
+#: glib/gdatetime.c:486
msgctxt "full month name with day"
msgid "October"
msgstr "ოქტომბერი"
-#: glib/gdatetime.c:490
+#: glib/gdatetime.c:488
msgctxt "full month name with day"
msgid "November"
msgstr "ნოემბერი"
-#: glib/gdatetime.c:492
+#: glib/gdatetime.c:490
msgctxt "full month name with day"
msgid "December"
msgstr "დეკემბერი"
@@ -4653,189 +4647,190 @@ msgstr "დეკემბერი"
#. * month names almost ready to copy and paste here. In other systems
#. * due to a bug the result is incorrect in some languages.
#.
-#: glib/gdatetime.c:557
+#: glib/gdatetime.c:555
msgctxt "abbreviated month name with day"
msgid "Jan"
msgstr "იან"
-#: glib/gdatetime.c:559
+#: glib/gdatetime.c:557
msgctxt "abbreviated month name with day"
msgid "Feb"
msgstr "თებ"
-#: glib/gdatetime.c:561
+#: glib/gdatetime.c:559
msgctxt "abbreviated month name with day"
msgid "Mar"
msgstr "მარ"
-#: glib/gdatetime.c:563
+#: glib/gdatetime.c:561
msgctxt "abbreviated month name with day"
msgid "Apr"
msgstr "აპრ"
-#: glib/gdatetime.c:565
+#: glib/gdatetime.c:563
msgctxt "abbreviated month name with day"
msgid "May"
msgstr "მაისი"
-#: glib/gdatetime.c:567
+#: glib/gdatetime.c:565
msgctxt "abbreviated month name with day"
msgid "Jun"
msgstr "ივნ"
-#: glib/gdatetime.c:569
+#: glib/gdatetime.c:567
msgctxt "abbreviated month name with day"
msgid "Jul"
msgstr "ივლ"
-#: glib/gdatetime.c:571
+#: glib/gdatetime.c:569
msgctxt "abbreviated month name with day"
msgid "Aug"
msgstr "აგვ"
-#: glib/gdatetime.c:573
+#: glib/gdatetime.c:571
msgctxt "abbreviated month name with day"
msgid "Sep"
msgstr "სექ"
-#: glib/gdatetime.c:575
+#: glib/gdatetime.c:573
msgctxt "abbreviated month name with day"
msgid "Oct"
msgstr "ოქტ"
-#: glib/gdatetime.c:577
+#: glib/gdatetime.c:575
msgctxt "abbreviated month name with day"
msgid "Nov"
msgstr "ნოე"
-#: glib/gdatetime.c:579
+#: glib/gdatetime.c:577
msgctxt "abbreviated month name with day"
msgid "Dec"
msgstr "დეკ"
#. Translators: 'before midday' indicator
-#: glib/gdatetime.c:596
+#: glib/gdatetime.c:594
msgctxt "GDateTime"
msgid "AM"
msgstr "AM"
#. Translators: 'after midday' indicator
-#: glib/gdatetime.c:599
+#: glib/gdatetime.c:597
msgctxt "GDateTime"
msgid "PM"
msgstr "PM"
-#: glib/gdir.c:158
+#: glib/gdir.c:156
#, c-format
msgid "Error opening directory “%s”: %s"
msgstr ""
-#: glib/gfileutils.c:735 glib/gfileutils.c:827
+#: glib/gfileutils.c:733 glib/gfileutils.c:825
#, c-format
msgid "Could not allocate %lu byte to read file “%s”"
msgid_plural "Could not allocate %lu bytes to read file “%s”"
msgstr[0] "ვერ ხერხდება %lu ბაიტის გამოყოფა \"%s\" ფაილის წასაკითხად"
+msgstr[1] "ვერ ხერხდება %lu ბაიტის გამოყოფა \"%s\" ფაილის წასაკითხად"
-#: glib/gfileutils.c:752
+#: glib/gfileutils.c:750
#, c-format
msgid "Error reading file “%s”: %s"
msgstr ""
-#: glib/gfileutils.c:788
+#: glib/gfileutils.c:786
#, c-format
msgid "File “%s” is too large"
msgstr ""
-#: glib/gfileutils.c:852
+#: glib/gfileutils.c:850
#, c-format
msgid "Failed to read from file “%s”: %s"
msgstr ""
-#: glib/gfileutils.c:902 glib/gfileutils.c:977 glib/gfileutils.c:1449
+#: glib/gfileutils.c:900 glib/gfileutils.c:975 glib/gfileutils.c:1447
#, c-format
msgid "Failed to open file “%s”: %s"
msgstr "ფაილის (%s) გახსნა შეუძლებელია: %s"
-#: glib/gfileutils.c:915
+#: glib/gfileutils.c:913
#, c-format
msgid "Failed to get attributes of file “%s”: fstat() failed: %s"
msgstr ""
-#: glib/gfileutils.c:946
+#: glib/gfileutils.c:944
#, c-format
msgid "Failed to open file “%s”: fdopen() failed: %s"
msgstr ""
-#: glib/gfileutils.c:1047
+#: glib/gfileutils.c:1045
#, c-format
msgid "Failed to rename file “%s” to “%s”: g_rename() failed: %s"
msgstr "ვერ მოხერხდა '%s' ფაილის გადარქმევა - '%s': g_rename() ვერ შედგა: %s"
-#: glib/gfileutils.c:1156
+#: glib/gfileutils.c:1154
#, c-format
msgid "Failed to write file “%s”: write() failed: %s"
msgstr "ვერ ვწერ '%s' ფაილს: fwrite() ვერ შედგა: %s"
-#: glib/gfileutils.c:1177
+#: glib/gfileutils.c:1175
#, c-format
msgid "Failed to write file “%s”: fsync() failed: %s"
msgstr "ვერ ვწერ '%s' ფაილს: fsync() ვერ შედგა: %s"
-#: glib/gfileutils.c:1338 glib/gfileutils.c:1753
+#: glib/gfileutils.c:1336 glib/gfileutils.c:1751
#, c-format
msgid "Failed to create file “%s”: %s"
msgstr "ვერ ვქმნი '%s' ფაილს: %s"
-#: glib/gfileutils.c:1383
+#: glib/gfileutils.c:1381
#, c-format
msgid "Existing file “%s” could not be removed: g_unlink() failed: %s"
msgstr "არსებული '%s' ფაილი ვერ ამოიშლება: g_unlink() ვერ შედგა: %s"
-#: glib/gfileutils.c:1718
+#: glib/gfileutils.c:1716
#, c-format
msgid "Template “%s” invalid, should not contain a “%s”"
msgstr "შაბლონი '%s' მცდარია და '%s'-ს არ უნდა შეიცავდეს"
-#: glib/gfileutils.c:1731
+#: glib/gfileutils.c:1729
#, c-format
msgid "Template “%s” doesn’t contain XXXXXX"
msgstr "შაბლონი '%s' არ შეიცავს XXXXXX"
-#: glib/gfileutils.c:2291 glib/gfileutils.c:2320
+#: glib/gfileutils.c:2289 glib/gfileutils.c:2318
#, c-format
msgid "Failed to read the symbolic link “%s”: %s"
msgstr "სიმბოლური ბმის \"%s\" წაკითხვის შეცდომა: %s"
-#: glib/giochannel.c:1408
+#: glib/giochannel.c:1405
#, c-format
msgid "Could not open converter from “%s” to “%s”: %s"
msgstr "ვერ ხერხდება გარდამქმნელის გახსნა '%s' - '%s': %s"
-#: glib/giochannel.c:1761
+#: glib/giochannel.c:1758
msgid "Can’t do a raw read in g_io_channel_read_line_string"
msgstr "უშუალოდ წაკითხვა ფუნქციაში g_io_channel_read_line_string ვერ ხერხდება"
-#: glib/giochannel.c:1808 glib/giochannel.c:2066 glib/giochannel.c:2153
+#: glib/giochannel.c:1805 glib/giochannel.c:2063 glib/giochannel.c:2150
msgid "Leftover unconverted data in read buffer"
msgstr "გარდაუქმნელი მონაცემები წაკითხვის ბუფერში დარჩა"
-#: glib/giochannel.c:1889 glib/giochannel.c:1966
+#: glib/giochannel.c:1886 glib/giochannel.c:1963
msgid "Channel terminates in a partial character"
msgstr "არხი არასრული სიმბოლოთი იხურება"
-#: glib/giochannel.c:1952
+#: glib/giochannel.c:1949
msgid "Can’t do a raw read in g_io_channel_read_to_end"
msgstr "უშუალოდ წაკითხვა ფუნქციაში g_io_channel_read_to_end ვერ ხერხდება"
-#: glib/gkeyfile.c:796
+#: glib/gkeyfile.c:794
msgid "Valid key file could not be found in search dirs"
msgstr "ძიების კატალოგებში შეუძლებელია დამოწმებული გასაღების პოვნა"
-#: glib/gkeyfile.c:833
+#: glib/gkeyfile.c:831
msgid "Not a regular file"
msgstr "ფაილი ჩვეულებრივი არაა"
-#: glib/gkeyfile.c:1291
+#: glib/gkeyfile.c:1289
#, c-format
msgid ""
"Key file contains line “%s” which is not a key-value pair, group, or comment"
@@ -4843,50 +4838,50 @@ msgstr ""
"გასაღების ფაილი '%s' შეიცავს სტრიქონს, რომელიც არ წარმოადგენს გასაღები-"
"მნიშვნელობას, ჯგუფს ან კომენტარს"
-#: glib/gkeyfile.c:1348
+#: glib/gkeyfile.c:1346
#, c-format
msgid "Invalid group name: %s"
msgstr "ჯგუფის მიუღებელი სახელი: %s"
-#: glib/gkeyfile.c:1372
+#: glib/gkeyfile.c:1370
msgid "Key file does not start with a group"
msgstr "საკვანძო ფაილი ჯგუფით არ იწყება"
-#: glib/gkeyfile.c:1396
+#: glib/gkeyfile.c:1394
#, c-format
msgid "Invalid key name: %.*s"
msgstr "გასაღების მიუღებელი სახელი: %.*s"
-#: glib/gkeyfile.c:1424
+#: glib/gkeyfile.c:1422
#, c-format
msgid "Key file contains unsupported encoding “%s”"
msgstr "გასაღების ფაილი შეიცავს მხარდაუჭერელ კოდირებას '%s'"
-#: glib/gkeyfile.c:1679 glib/gkeyfile.c:1852 glib/gkeyfile.c:3299
-#: glib/gkeyfile.c:3363 glib/gkeyfile.c:3493 glib/gkeyfile.c:3625
-#: glib/gkeyfile.c:3771 glib/gkeyfile.c:4006 glib/gkeyfile.c:4073
+#: glib/gkeyfile.c:1677 glib/gkeyfile.c:1850 glib/gkeyfile.c:3297
+#: glib/gkeyfile.c:3361 glib/gkeyfile.c:3491 glib/gkeyfile.c:3623
+#: glib/gkeyfile.c:3769 glib/gkeyfile.c:4004 glib/gkeyfile.c:4071
#, c-format
msgid "Key file does not have group “%s”"
msgstr "გასაღების ფაილი არ შეიცავს ჯგუფს '%s'"
-#: glib/gkeyfile.c:1807
+#: glib/gkeyfile.c:1805
#, c-format
msgid "Key file does not have key “%s” in group “%s”"
msgstr "გასაღების ფაილი არ შეიცავს გასაღებს '%s' ჯგუფში '%s'"
-#: glib/gkeyfile.c:1969 glib/gkeyfile.c:2085
+#: glib/gkeyfile.c:1967 glib/gkeyfile.c:2083
#, c-format
msgid "Key file contains key “%s” with value “%s” which is not UTF-8"
msgstr ""
"ფაილი შეიცავს გასაღებს '%s', რომლის მნიშვნელობაც '%s' UTF-8 კოდირებაში არაა"
-#: glib/gkeyfile.c:1989 glib/gkeyfile.c:2105 glib/gkeyfile.c:2544
+#: glib/gkeyfile.c:1987 glib/gkeyfile.c:2103 glib/gkeyfile.c:2542
#, c-format
msgid ""
"Key file contains key “%s” which has a value that cannot be interpreted."
msgstr "ფაილი შეიცავს გასაღებს '%s', რომლის მნიშვნელობაც ვერ იშიფრება."
-#: glib/gkeyfile.c:2759 glib/gkeyfile.c:3128
+#: glib/gkeyfile.c:2757 glib/gkeyfile.c:3126
#, c-format
msgid ""
"Key file contains key “%s” in group “%s” which has a value that cannot be "
@@ -4894,81 +4889,81 @@ msgid ""
msgstr ""
"ფაილი შეიცავს გასაღებს '%s' ჯგუფში '%s', რომლის მნიშვნელობაც ვერ იშიფრება."
-#: glib/gkeyfile.c:2837 glib/gkeyfile.c:2914
+#: glib/gkeyfile.c:2835 glib/gkeyfile.c:2912
#, c-format
msgid "Key “%s” in group “%s” has value “%s” where %s was expected"
msgstr ""
-#: glib/gkeyfile.c:4326
+#: glib/gkeyfile.c:4324
msgid "Key file contains escape character at end of line"
msgstr "გასაღების ფაილი სტრიქონის ბოლოს escape სიმბოლოს შეიცავს"
-#: glib/gkeyfile.c:4348
+#: glib/gkeyfile.c:4346
#, c-format
msgid "Key file contains invalid escape sequence “%s”"
msgstr "გასაღების ფაილი მცდარ escape მიმდევრობას '%s' შეიცავს"
-#: glib/gkeyfile.c:4493
+#: glib/gkeyfile.c:4491
#, c-format
msgid "Value “%s” cannot be interpreted as a number."
msgstr "მნიშვნელობა '%s' ვერ აღიქმება, როგორც რიცხვი."
-#: glib/gkeyfile.c:4507
+#: glib/gkeyfile.c:4505
#, c-format
msgid "Integer value “%s” out of range"
msgstr "მთელი მნიშვნელობა '%s' დიაპაზონს გარეთაა"
-#: glib/gkeyfile.c:4540
+#: glib/gkeyfile.c:4538
#, c-format
msgid "Value “%s” cannot be interpreted as a float number."
msgstr "მნიშვნელობა '%s' ვერ აღიქმება, როგორც წილადი."
-#: glib/gkeyfile.c:4579
+#: glib/gkeyfile.c:4577
#, c-format
msgid "Value “%s” cannot be interpreted as a boolean."
msgstr "მნიშვნელობა '%s' ვერ აღიქმება, როგორც ლოგიკური ოპერატორი."
-#: glib/gmappedfile.c:131
+#: glib/gmappedfile.c:129
#, c-format
msgid "Failed to get attributes of file “%s%s%s%s”: fstat() failed: %s"
msgstr ""
-#: glib/gmappedfile.c:197
+#: glib/gmappedfile.c:195
#, c-format
msgid "Failed to map %s%s%s%s: mmap() failed: %s"
msgstr "ვერ მოხერხდა '%s%s%s%s:' ფაილის განთავსება: mmap() ვერ შედგა: %s"
-#: glib/gmappedfile.c:264
+#: glib/gmappedfile.c:262
#, c-format
msgid "Failed to open file “%s”: open() failed: %s"
msgstr "ვერ მოხერხდა '%s' ფაილის გახსნა: open() ვერ შედგა: %s"
-#: glib/gmarkup.c:400 glib/gmarkup.c:442
+#: glib/gmarkup.c:398 glib/gmarkup.c:440
#, c-format
msgid "Error on line %d char %d: "
msgstr ""
-#: glib/gmarkup.c:464 glib/gmarkup.c:547
+#: glib/gmarkup.c:462 glib/gmarkup.c:545
#, c-format
msgid "Invalid UTF-8 encoded text in name — not valid “%s”"
msgstr "ტექსტი მიუღებელი UTF-8 კოდირებით - მიუღებელი '%s'"
-#: glib/gmarkup.c:475
+#: glib/gmarkup.c:473
#, c-format
msgid "“%s” is not a valid name"
msgstr "არასწორი სახელი: %s"
-#: glib/gmarkup.c:491
+#: glib/gmarkup.c:489
#, c-format
msgid "“%s” is not a valid name: “%c”"
msgstr ""
-#: glib/gmarkup.c:615
+#: glib/gmarkup.c:613
#, c-format
msgid "Error on line %d: %s"
msgstr "შეცდომა სტრიქონში %d: %s"
-#: glib/gmarkup.c:692
+#: glib/gmarkup.c:690
#, c-format
msgid ""
"Failed to parse “%-.*s”, which should have been a digit inside a character "
@@ -4977,30 +4972,30 @@ msgstr ""
"ვერ მუშავდება სტრიქონი '%-.*s', რომელშიც უნდა იყოს სიმბოლოს ნომერი "
"(მაგალითად, &#234;): შესაძლოა რიცხვი მეტისმეტად დიდია"
-#: glib/gmarkup.c:704
+#: glib/gmarkup.c:702
msgid ""
"Character reference did not end with a semicolon; most likely you used an "
"ampersand character without intending to start an entity — escape ampersand "
"as &amp;"
msgstr ""
-#: glib/gmarkup.c:730
+#: glib/gmarkup.c:728
#, c-format
msgid "Character reference “%-.*s” does not encode a permitted character"
msgstr ""
-#: glib/gmarkup.c:768
+#: glib/gmarkup.c:766
msgid ""
"Empty entity “&;” seen; valid entities are: &amp; &quot; &lt; &gt; &apos;"
msgstr ""
"ცარიელი ერთეული \"&;\"; შესაძლო ერთეულებია: &amp; &quot; &lt; &gt; &apos;"
-#: glib/gmarkup.c:776
+#: glib/gmarkup.c:774
#, c-format
msgid "Entity name “%-.*s” is not known"
msgstr "ერთეულის სახელი \"%-.*s\" უცნობია"
-#: glib/gmarkup.c:781
+#: glib/gmarkup.c:779
msgid ""
"Entity did not end with a semicolon; most likely you used an ampersand "
"character without intending to start an entity — escape ampersand as &amp;"
@@ -5008,11 +5003,11 @@ msgstr ""
"ერთეული არ მთავრდება წერტილ-მძიმით; როგორც ჩანს, სახელის დასაწყისში "
"გამოყენებულია სიმბოლო \"&\". გამოსახეთ იგი, როგორც &amp;"
-#: glib/gmarkup.c:1195
+#: glib/gmarkup.c:1193
msgid "Document must begin with an element (e.g. <book>)"
msgstr "დოკუმენტი უნდა დაიწყოს ელემეტით (მაგალითად <book>)"
-#: glib/gmarkup.c:1235
+#: glib/gmarkup.c:1233
#, c-format
msgid ""
"“%s” is not a valid character following a “<” character; it may not begin an "
@@ -5021,7 +5016,7 @@ msgstr ""
"სიმბოლო \"%s\" დაუშვებელია \"<\" სიმბოლოს შემდეგ; ამ სიმბოლოთი ელემენტის "
"სახელის დაწყება არ შეიძლება"
-#: glib/gmarkup.c:1278
+#: glib/gmarkup.c:1276
#, c-format
msgid ""
"Odd character “%s”, expected a “>” character to end the empty-element tag "
@@ -5030,12 +5025,12 @@ msgstr ""
"უცნაური სიმბოლო \"%s\". მოველოდი სიმბოლოს \">\" ცარიელი ელემენტის ჭდის (%s) "
"დასასრულებლად"
-#: glib/gmarkup.c:1348
+#: glib/gmarkup.c:1346
#, c-format
msgid "Too many attributes in element “%s”"
msgstr ""
-#: glib/gmarkup.c:1368
+#: glib/gmarkup.c:1366
#, c-format
msgid ""
"Odd character “%s”, expected a “=” after attribute name “%s” of element “%s”"
@@ -5043,7 +5038,7 @@ msgstr ""
"უცნაური სიმბოლო \"%s\". მოველოდი \"=\"-ს ატრიბუტის (%s) სახელის შემდეგ "
"ელემენტისთვის \"%s\""
-#: glib/gmarkup.c:1410
+#: glib/gmarkup.c:1408
#, c-format
msgid ""
"Odd character “%s”, expected a “>” or “/” character to end the start tag of "
@@ -5054,7 +5049,7 @@ msgstr ""
"საწყისი ჭდის დასასრულებლად, ან ატრიბუტს. ალბათ ატრიბუტის სახელში არასწორი "
"სიმბოლო გამოიყენეთ"
-#: glib/gmarkup.c:1455
+#: glib/gmarkup.c:1453
#, c-format
msgid ""
"Odd character “%s”, expected an open quote mark after the equals sign when "
@@ -5063,7 +5058,7 @@ msgstr ""
"ზედმეტი სიმბოლო \"%s\", მოსალოდნელია გახსნილი ბრჭყალები ტოლობის ნიშნის "
"შემდეგ ატრიბუტისთვის \"%s\" მნიშვნელობის მისანიჭებლად ელემენტისთვის \"%s\""
-#: glib/gmarkup.c:1589
+#: glib/gmarkup.c:1587
#, c-format
msgid ""
"“%s” is not a valid character following the characters “</”; “%s” may not "
@@ -5072,7 +5067,7 @@ msgstr ""
"სიმბოლო \"%s\" დაუშვებელია \"</\" შემდეგ; სიმბოლო \"%s\" არ შეიძლება იყოს "
"ელემენტის სახელის დასაწყისში"
-#: glib/gmarkup.c:1627
+#: glib/gmarkup.c:1625
#, c-format
msgid ""
"“%s” is not a valid character following the close element name “%s”; the "
@@ -5081,25 +5076,25 @@ msgstr ""
"სიმბოლო \"%s\" დაუშვებელია ელემენტის \"%s\" დახურვის ჭდის შემდეგ; დასაშვები "
"სიმბოლოა \">\""
-#: glib/gmarkup.c:1639
+#: glib/gmarkup.c:1637
#, c-format
msgid "Element “%s” was closed, no element is currently open"
msgstr "ელემენტი \"%s\" დაიხურა, არცერთი ელემენტი არაა გახსნილი"
-#: glib/gmarkup.c:1648
+#: glib/gmarkup.c:1646
#, c-format
msgid "Element “%s” was closed, but the currently open element is “%s”"
msgstr "ელემენტი \"%s\" დაიხურა, მაგრამ გახსნილია ელემენტი \"%s\""
-#: glib/gmarkup.c:1801
+#: glib/gmarkup.c:1799
msgid "Document was empty or contained only whitespace"
msgstr "დოკუმენტი ცარიელია ან მხოლოდ ხარეებს შეიცავს"
-#: glib/gmarkup.c:1815
+#: glib/gmarkup.c:1813
msgid "Document ended unexpectedly just after an open angle bracket “<”"
msgstr "დოკუმენტი დასრულდა უშუალოდ კუთხოვანი ფრჩხილის \"<\" შემდეგ"
-#: glib/gmarkup.c:1823 glib/gmarkup.c:1868
+#: glib/gmarkup.c:1821 glib/gmarkup.c:1866
#, c-format
msgid ""
"Document ended unexpectedly with elements still open — “%s” was the last "
@@ -5108,7 +5103,7 @@ msgstr ""
"დოკუმენტი მოულოდნელად დასრულდა გახსნილი ელემენტებით - \"%s\" ბოლო გახსნილი "
"ელემენტია"
-#: glib/gmarkup.c:1831
+#: glib/gmarkup.c:1829
#, c-format
msgid ""
"Document ended unexpectedly, expected to see a close angle bracket ending "
@@ -5116,19 +5111,19 @@ msgid ""
msgstr ""
"დოკუმენტი მოულოდნელად დასრულდა, მოსალოდნელია ჩამკეტი კუთხოვანი ფრჩხილი <%s/>"
-#: glib/gmarkup.c:1837
+#: glib/gmarkup.c:1835
msgid "Document ended unexpectedly inside an element name"
msgstr "დოკუმენტი მოულოდნელად დასრულდა ელემენტის სახელის შიგნით"
-#: glib/gmarkup.c:1843
+#: glib/gmarkup.c:1841
msgid "Document ended unexpectedly inside an attribute name"
msgstr "დოკუმენტი მოულოდნელად დასრულდა ატრიბუტის სახელის შიგნით"
-#: glib/gmarkup.c:1848
+#: glib/gmarkup.c:1846
msgid "Document ended unexpectedly inside an element-opening tag."
msgstr "დოკუმენტი მოულოდნელად დასრულდა ელემენტის გამხსნელი ჭდის შიგნით."
-#: glib/gmarkup.c:1854
+#: glib/gmarkup.c:1852
msgid ""
"Document ended unexpectedly after the equals sign following an attribute "
"name; no attribute value"
@@ -5136,534 +5131,603 @@ msgstr ""
"დოკუმენტი მოულოდნელად დასრულდა ატრიბუტის სახელის შემდგომი ტოლობის ნიშნის "
"შემდეგ; ატრიბუტის მნიშვნელობა არ მითითებულა"
-#: glib/gmarkup.c:1861
+#: glib/gmarkup.c:1859
msgid "Document ended unexpectedly while inside an attribute value"
msgstr "დოკუმენტი მოულოდნელად დასრულდა ატრიბუტის მნიშვნელობის შიგნით"
-#: glib/gmarkup.c:1878
+#: glib/gmarkup.c:1876
#, c-format
msgid "Document ended unexpectedly inside the close tag for element “%s”"
msgstr "დოკუმენტი მოულოდნელად დასრულდა ელემენტის \"%s\" ჩამკეტი ჭდის შიგნით"
-#: glib/gmarkup.c:1882
+#: glib/gmarkup.c:1880
msgid ""
"Document ended unexpectedly inside the close tag for an unopened element"
msgstr "დოკუმენტი მოულოდნელად დასრულდა გაუხსნელი ელემენტის ჩამკეტი ჭდის შიგნით"
-#: glib/gmarkup.c:1888
+#: glib/gmarkup.c:1886
msgid "Document ended unexpectedly inside a comment or processing instruction"
msgstr ""
"დოკუმენტი მოულოდნელად დასრულდა კომენტარის ან დამუშავების ინსტრუქციის შიგნით"
-#: glib/goption.c:875
+#: glib/goption.c:873
msgid "[OPTION…]"
msgstr "[პარამეტრი...]"
-#: glib/goption.c:991
+#: glib/goption.c:989
msgid "Help Options:"
msgstr "დახმარების პარამეტრები:"
-#: glib/goption.c:992
+#: glib/goption.c:990
msgid "Show help options"
msgstr "დახმარების პარამეტრების ჩვენება"
-#: glib/goption.c:998
+#: glib/goption.c:996
msgid "Show all help options"
msgstr "დახმარების ყველა პარამეტრის ჩვენება"
-#: glib/goption.c:1061
+#: glib/goption.c:1059
msgid "Application Options:"
msgstr "პროგრამის პარამეტრები:"
-#: glib/goption.c:1063
+#: glib/goption.c:1061
msgid "Options:"
-msgstr ""
+msgstr "პარამეტრები:"
-#: glib/goption.c:1127 glib/goption.c:1197
+#: glib/goption.c:1125 glib/goption.c:1195
#, c-format
msgid "Cannot parse integer value “%s” for %s"
msgstr "მთელი მნიშვნელობის \"%s\" დამუშავების შეცდომა %s-თვის"
-#: glib/goption.c:1137 glib/goption.c:1205
+#: glib/goption.c:1135 glib/goption.c:1203
#, c-format
msgid "Integer value “%s” for %s out of range"
msgstr "მთელი მნიშვნელობა '%s' ელემენტისთვის %s დიაპაზონს გარეთაა"
-#: glib/goption.c:1162
+#: glib/goption.c:1160
#, c-format
msgid "Cannot parse double value “%s” for %s"
msgstr "ორმაგი მნიშვნელობის \"%s\" დამუშავების შეცდომა %s-თვის"
-#: glib/goption.c:1170
+#: glib/goption.c:1168
#, c-format
msgid "Double value “%s” for %s out of range"
msgstr "ორმაგი მნიშვნელობა '%s' ელემენტისთვის %s დიაპაზონს გარეთაა"
-#: glib/goption.c:1462 glib/goption.c:1541
+#: glib/goption.c:1460 glib/goption.c:1539
#, c-format
msgid "Error parsing option %s"
msgstr "შეცდომის გაანალიზების პარამეტრი: %s"
-#: glib/goption.c:1563 glib/goption.c:1676
+#: glib/goption.c:1561 glib/goption.c:1674
#, c-format
msgid "Missing argument for %s"
msgstr "არ არსებული არგუმენტი - %s-თვის"
-#: glib/goption.c:2186
+#: glib/goption.c:2184
#, c-format
msgid "Unknown option %s"
msgstr "უცნობი პარამეტრი %s"
-#: glib/gregex.c:436
+#: glib/gregex.c:255
msgid "corrupted object"
msgstr "დაზიანებული ობიექტი"
-#: glib/gregex.c:438
+#: glib/gregex.c:257
+msgid "internal error or corrupted object"
+msgstr "შიდა შეცდომა ან დაზიანებული ობიექტი"
+
+#: glib/gregex.c:259
msgid "out of memory"
-msgstr "არასაკმარისი მეხსიერება"
+msgstr "მეხსიერებას გარეთ"
-#: glib/gregex.c:443
+#: glib/gregex.c:264
msgid "backtracking limit reached"
msgstr "უკან დაბრუნების ლიმიტი ამოწურულია"
-#: glib/gregex.c:454 glib/gregex.c:707 glib/gregex.c:736
-msgid "internal error"
-msgstr "შიდა შეცდომა"
-
-#: glib/gregex.c:456
+#: glib/gregex.c:276 glib/gregex.c:284
msgid "the pattern contains items not supported for partial matching"
msgstr "თარგი შეიცავს ნაწილობრივი დამთხვევისთვის მხარდაუჭერელ ელემეტებს"
-#: glib/gregex.c:458
+#: glib/gregex.c:278
+msgid "internal error"
+msgstr "შიდა შეცდომა"
+
+#: glib/gregex.c:286
msgid "back references as conditions are not supported for partial matching"
msgstr "უკუ მიმართვა პირობების სახით მხარდაუჭერელია ნაწილობრივი დამთხვევისთვის"
-#: glib/gregex.c:464
+#: glib/gregex.c:295
msgid "recursion limit reached"
msgstr "რეკურსიის ლიმიტი მიღწეულია"
-#: glib/gregex.c:466
+#: glib/gregex.c:297
+msgid "invalid combination of newline flags"
+msgstr "სტრიქონების გადაყვანის ალმების არასწორი კომბინაცია"
+
+#: glib/gregex.c:299
msgid "bad offset"
-msgstr ""
+msgstr "არასწორი წანაცვლება"
-#: glib/gregex.c:468
-msgid "recursion loop"
-msgstr ""
+#: glib/gregex.c:301
+msgid "short utf8"
+msgstr "მოკლე utf8"
-#. should not happen in GRegex since we check modes before each match
-#: glib/gregex.c:471
-msgid "matching mode is requested that was not compiled for JIT"
-msgstr ""
+#: glib/gregex.c:303
+msgid "recursion loop"
+msgstr "რეკურსიის მარყუჟი"
-#: glib/gregex.c:475
+#: glib/gregex.c:307
msgid "unknown error"
msgstr "უცნობი შეცდომა"
-#: glib/gregex.c:496
+#: glib/gregex.c:327
msgid "\\ at end of pattern"
msgstr "\\ ნიმუშის ბოლოში"
-#: glib/gregex.c:500
+#: glib/gregex.c:330
msgid "\\c at end of pattern"
msgstr "\\c ნიმუშის ბოლოში"
-#: glib/gregex.c:505
+#: glib/gregex.c:333
msgid "unrecognized character following \\"
msgstr ""
-#: glib/gregex.c:509
+#: glib/gregex.c:336
msgid "numbers out of order in {} quantifier"
msgstr "მთვლელში რიცხვები დაულაგებელია {}"
-#: glib/gregex.c:513
+#: glib/gregex.c:339
msgid "number too big in {} quantifier"
msgstr "მთვლელში {} რიცხვები ძალიან დიდია"
-#: glib/gregex.c:517
+#: glib/gregex.c:342
msgid "missing terminating ] for character class"
msgstr "სიმბოლოების კლასს დამაბოლოებელი ] აკლია"
-#: glib/gregex.c:521
+#: glib/gregex.c:345
msgid "invalid escape sequence in character class"
msgstr "სიმბოლოების კლასის არასწორი დამაბოლოებელი თანამიმდევრობა"
-#: glib/gregex.c:525
+#: glib/gregex.c:348
msgid "range out of order in character class"
msgstr "სიმბოლოების კლასის დიაპაზონი მიმდევრობის გარეთაა"
-#: glib/gregex.c:530
+#: glib/gregex.c:351
msgid "nothing to repeat"
msgstr "გასამეორებელი არაფერია"
-#: glib/gregex.c:534
+#: glib/gregex.c:355
+msgid "unexpected repeat"
+msgstr ""
+
+#: glib/gregex.c:358
msgid "unrecognized character after (? or (?-"
msgstr "უცნობი სიმბლოები (? ან (?- ის შემდეგ"
-#: glib/gregex.c:538
+#: glib/gregex.c:361
msgid "POSIX named classes are supported only within a class"
msgstr "POSIX-ის დასახელებული კლასები მხოლოდ კლასის შიგნითაა ხელმისაწვდომი"
-#: glib/gregex.c:542
-msgid "POSIX collating elements are not supported"
-msgstr "POSIX-ის გადაფარვადი ელემენტები მხარდაუჭერელია"
-
-#: glib/gregex.c:548
+#: glib/gregex.c:364
msgid "missing terminating )"
msgstr ""
-#: glib/gregex.c:552
+#: glib/gregex.c:367
msgid "reference to non-existent subpattern"
msgstr "ბმა არარსებულ ქვეშაბლონთან"
-#: glib/gregex.c:556
+#: glib/gregex.c:370
msgid "missing ) after comment"
msgstr "კომენტარის შემდეგ ) აკლია"
-#: glib/gregex.c:560
+#: glib/gregex.c:373
msgid "regular expression is too large"
msgstr "რეგულარული გამოსახულება ძალიან გრძელია"
-#: glib/gregex.c:564
-msgid "malformed number or name after (?("
-msgstr "(?(-ის შემდეგ არასწორი რიცხვი ან სახელია"
+#: glib/gregex.c:376
+msgid "failed to get memory"
+msgstr "მეხსიერებს მიღება შეუძლეებლია"
-#: glib/gregex.c:568
-msgid "lookbehind assertion is not fixed length"
+#: glib/gregex.c:380
+msgid ") without opening ("
msgstr ""
-#: glib/gregex.c:572
+#: glib/gregex.c:384
+msgid "code overflow"
+msgstr ""
+
+#: glib/gregex.c:388
+msgid "unrecognized character after (?<"
+msgstr "(?< ის შემდეგ უცნობი სიმბოლოა"
+
+#: glib/gregex.c:391
+msgid "lookbehind assertion is not fixed length"
+msgstr "lookbehind assertion is not fixed length"
+
+#: glib/gregex.c:394
+msgid "malformed number or name after (?("
+msgstr "(?(-ის შემდეგ არასწორი რიცხვი ან სახელია"
+
+#: glib/gregex.c:397
msgid "conditional group contains more than two branches"
msgstr "პირობითი ჯგუფი ორ ბრენჩზე მეტს შეიცავს"
-#: glib/gregex.c:576
+#: glib/gregex.c:400
msgid "assertion expected after (?("
msgstr "assertion expected after (?("
-#: glib/gregex.c:580
-msgid "a numbered reference must not be zero"
-msgstr ""
+#. translators: '(?R' and '(?[+-]digits' are both meant as (groups of)
+#. * sequences here, '(?-54' would be an example for the second group.
+#.
+#: glib/gregex.c:407
+msgid "(?R or (?[+-]digits must be followed by )"
+msgstr "(?R or (?[+-]digits must be followed by )"
-#: glib/gregex.c:584
+#: glib/gregex.c:410
msgid "unknown POSIX class name"
msgstr "posix-ის უცნობი კლასის სახელი"
-#: glib/gregex.c:589
+#: glib/gregex.c:413
+msgid "POSIX collating elements are not supported"
+msgstr "POSIX-ის გადაფარვადი ელემენტები მხარდაუჭერელია"
+
+#: glib/gregex.c:416
msgid "character value in \\x{...} sequence is too large"
msgstr "character value in \\x{...} sequence is too large"
-#: glib/gregex.c:593
+#: glib/gregex.c:419
+msgid "invalid condition (?(0)"
+msgstr "არასწორი პირობა (?(0)"
+
+#: glib/gregex.c:422
msgid "\\C not allowed in lookbehind assertion"
+msgstr "\\C not allowed in lookbehind assertion"
+
+#: glib/gregex.c:429
+msgid "escapes \\L, \\l, \\N{name}, \\U, and \\u are not supported"
msgstr ""
-#: glib/gregex.c:597
+#: glib/gregex.c:432
+msgid "recursive call could loop indefinitely"
+msgstr "რეკურსიული გამოძახება შეიძლება უსასრულოდ გაგრძელდეს"
+
+#: glib/gregex.c:436
+msgid "unrecognized character after (?P"
+msgstr "უცნობი სიმბოლო (?P-ის შემდეგ"
+
+#: glib/gregex.c:439
msgid "missing terminator in subpattern name"
msgstr ""
-#: glib/gregex.c:601
+#: glib/gregex.c:442
msgid "two named subpatterns have the same name"
msgstr "ორ სხვადასხვა ქვეშაბლონს ერთი და იგივე სახელი აქვთ"
-#: glib/gregex.c:605
+#: glib/gregex.c:445
msgid "malformed \\P or \\p sequence"
-msgstr ""
+msgstr "არასწორი \\P ან \\p მიმდევრობა"
-#: glib/gregex.c:609
+#: glib/gregex.c:448
msgid "unknown property name after \\P or \\p"
-msgstr ""
+msgstr "უცნობი თვისების სახელი \\P-ის ან \\p-ის შემდეგ"
-#: glib/gregex.c:613
+#: glib/gregex.c:451
msgid "subpattern name is too long (maximum 32 characters)"
-msgstr ""
+msgstr "ქვეშაბლონის სახელი ძალიან გრძელია (მაქს 32 სიმბოლო)"
-#: glib/gregex.c:617
+#: glib/gregex.c:454
msgid "too many named subpatterns (maximum 10,000)"
msgstr ""
-#: glib/gregex.c:621
+#: glib/gregex.c:457
msgid "octal value is greater than \\377"
msgstr ""
-#: glib/gregex.c:625
+#: glib/gregex.c:461
+msgid "overran compiling workspace"
+msgstr ""
+
+#: glib/gregex.c:465
+msgid "previously-checked referenced subpattern not found"
+msgstr ""
+
+#: glib/gregex.c:468
msgid "DEFINE group contains more than one branch"
msgstr ""
-#: glib/gregex.c:629
+#: glib/gregex.c:471
msgid "inconsistent NEWLINE options"
msgstr ""
-#: glib/gregex.c:633
+#: glib/gregex.c:474
msgid ""
"\\g is not followed by a braced, angle-bracketed, or quoted name or number, "
"or by a plain number"
msgstr ""
-#: glib/gregex.c:638
+#: glib/gregex.c:478
+msgid "a numbered reference must not be zero"
+msgstr ""
+
+#: glib/gregex.c:481
msgid "an argument is not allowed for (*ACCEPT), (*FAIL), or (*COMMIT)"
msgstr ""
-#: glib/gregex.c:642
+#: glib/gregex.c:484
msgid "(*VERB) not recognized"
-msgstr ""
+msgstr "(*VERB) უცნობია"
-#: glib/gregex.c:646
+#: glib/gregex.c:487
msgid "number is too big"
msgstr "რიცხვი ძალიან დიდია"
-#: glib/gregex.c:650
+#: glib/gregex.c:490
msgid "missing subpattern name after (?&"
msgstr ""
-#: glib/gregex.c:654
+#: glib/gregex.c:493
+msgid "digit expected after (?+"
+msgstr "(?+ -ის შემდეგ მოველოდი ციფრს"
+
+#: glib/gregex.c:496
+msgid "] is an invalid data character in JavaScript compatibility mode"
+msgstr ""
+
+#: glib/gregex.c:499
msgid "different names for subpatterns of the same number are not allowed"
msgstr ""
-#: glib/gregex.c:658
+#: glib/gregex.c:502
msgid "(*MARK) must have an argument"
msgstr ""
-#: glib/gregex.c:662
+#: glib/gregex.c:505
msgid "\\c must be followed by an ASCII character"
msgstr ""
-#: glib/gregex.c:666
+#: glib/gregex.c:508
msgid "\\k is not followed by a braced, angle-bracketed, or quoted name"
msgstr ""
-#: glib/gregex.c:670
+#: glib/gregex.c:511
msgid "\\N is not supported in a class"
msgstr "კლასში \\N მხარდაუჭერელია"
-#: glib/gregex.c:674
-msgid "name is too long in (*MARK), (*PRUNE), (*SKIP), or (*THEN)"
-msgstr ""
-
-#: glib/gregex.c:678 glib/gregex.c:809
-msgid "code overflow"
+#: glib/gregex.c:514
+msgid "too many forward references"
msgstr ""
-#: glib/gregex.c:682
-msgid "unrecognized character after (?P"
-msgstr "უცნობი სიმბოლო (?P-ის შემდეგ"
-
-#: glib/gregex.c:686
-msgid "overran compiling workspace"
-msgstr ""
+#: glib/gregex.c:517
+msgid "name is too long in (*MARK), (*PRUNE), (*SKIP), or (*THEN)"
+msgstr "სახელი ძალიან გრძელია (*MARK), (*PRUNE), (*SKIP) ან (*THEN)"
-#: glib/gregex.c:690
-msgid "previously-checked referenced subpattern not found"
+#: glib/gregex.c:520
+msgid "character value in \\u.... sequence is too large"
msgstr ""
-#: glib/gregex.c:808 glib/gregex.c:1041 glib/gregex.c:2342
+#: glib/gregex.c:743 glib/gregex.c:1988
#, c-format
msgid "Error while matching regular expression %s: %s"
msgstr "დაიშვა შეცდომა სტანდარტული გამოსახულების %s დამთხვევის ძიების დროს: %s"
-#: glib/gregex.c:1618
+#: glib/gregex.c:1321
msgid "PCRE library is compiled without UTF8 support"
msgstr "ბიბლიოთეკა PCRE-ს არ გააჩნია UTF8-ის მხარდაჭერა"
-#: glib/gregex.c:1626
+#: glib/gregex.c:1325
+msgid "PCRE library is compiled without UTF8 properties support"
+msgstr ""
+"PCRE ბიბლიოთეკა კომპილირებულია UTF8 კოდირების პარამეტრების მხარდაჭერის გარეშე"
+
+#: glib/gregex.c:1333
msgid "PCRE library is compiled with incompatible options"
msgstr "PCRE ბიბლიოთეკა კომპილირებულია შეუთავსებელი პარამეტრებით"
-#: glib/gregex.c:1751
+#: glib/gregex.c:1362
+#, c-format
+msgid "Error while optimizing regular expression %s: %s"
+msgstr "შეცდომა სტანდარტული გამოსახულების ოპტიმიზირებისას %s: %s"
+
+#: glib/gregex.c:1442
#, c-format
-msgid "Error while compiling regular expression ‘%s’ at char %s: %s"
+msgid "Error while compiling regular expression %s at char %d: %s"
msgstr ""
+"შეცდომა სტანდარტული გამოსახულება %s-ის კომპილირებისას, სიმბოლო ნომრით %d: %s"
-#: glib/gregex.c:2786
+#: glib/gregex.c:2427
msgid "hexadecimal digit or “}” expected"
msgstr "მოსალოდნელია თექვსმეტობითი რიცხვი, ან '}'"
-#: glib/gregex.c:2802
+#: glib/gregex.c:2443
msgid "hexadecimal digit expected"
msgstr "მოსალოდნელია თექვსმეტობითი სიმბოლო"
-#: glib/gregex.c:2842
+#: glib/gregex.c:2483
msgid "missing “<” in symbolic reference"
msgstr "არ მოიძებნა '<', სიმბოლურ მითითებაში"
-#: glib/gregex.c:2851
+#: glib/gregex.c:2492
msgid "unfinished symbolic reference"
msgstr "დაუსრულებელი სიმბოლური მითითება"
-#: glib/gregex.c:2858
+#: glib/gregex.c:2499
msgid "zero-length symbolic reference"
msgstr "ნულოვანი სიგრძის სიმბოლური მითითება"
-#: glib/gregex.c:2869
+#: glib/gregex.c:2510
msgid "digit expected"
msgstr "მოველოდი ციფრს"
-#: glib/gregex.c:2887
+#: glib/gregex.c:2528
msgid "illegal symbolic reference"
msgstr "მიუღებელი სიმბოლური მითითება"
-#: glib/gregex.c:2950
+#: glib/gregex.c:2591
msgid "stray final “\\”"
msgstr ""
-#: glib/gregex.c:2954
+#: glib/gregex.c:2595
msgid "unknown escape sequence"
msgstr "უცნობი escape სეკვენცია"
-#: glib/gregex.c:2964
+#: glib/gregex.c:2605
#, c-format
msgid "Error while parsing replacement text “%s” at char %lu: %s"
msgstr ""
-#: glib/gshell.c:98
+#: glib/gshell.c:96
msgid "Quoted text doesn’t begin with a quotation mark"
msgstr "ციტირებული ტექსტი ბრჭყალებით არ იწყება"
-#: glib/gshell.c:188
+#: glib/gshell.c:186
msgid "Unmatched quotation mark in command line or other shell-quoted text"
msgstr "უმართებლო ბრჭყალი ბრძანებაში ან სხვა ტექსტურ გარსში"
-#: glib/gshell.c:594
+#: glib/gshell.c:592
#, c-format
msgid "Text ended just after a “\\” character. (The text was “%s”)"
msgstr "ტექსტი დასრულდა უშუალოდ \"\\\" სიმბოლოს შემდეგ. (ტექსტი - \"%s\")"
-#: glib/gshell.c:601
+#: glib/gshell.c:599
#, c-format
msgid "Text ended before matching quote was found for %c. (The text was “%s”)"
msgstr "ტექსტი დასრულდა %c შესაბამისი ბრჭყალის წინ. (ტექსტი - \"%s\")"
-#: glib/gshell.c:613
+#: glib/gshell.c:611
msgid "Text was empty (or contained only whitespace)"
msgstr "ტექსტი ცარიელი იყო (ან მხოლოდ ხარეებს შეიცავდა)"
-#: glib/gspawn.c:314
+#: glib/gspawn.c:310
#, c-format
msgid "Failed to read data from child process (%s)"
msgstr "მონაცემთა წაკითხვა ქვეპროცესიდან ვერ მოხერხდა (%s)"
-#: glib/gspawn.c:466
+#: glib/gspawn.c:462
#, c-format
msgid "Unexpected error in reading data from a child process (%s)"
msgstr "შვილეული პროცესიდან (%s) მონაცემების წაკითხვის შეცდომა"
-#: glib/gspawn.c:551
+#: glib/gspawn.c:547
#, c-format
msgid "Unexpected error in waitpid() (%s)"
msgstr "მოულოდნელი შეცდომა ფუნქციაში waitpid() (%s)"
-#: glib/gspawn.c:1170 glib/gspawn-win32.c:1434
+#: glib/gspawn.c:1175 glib/gspawn-win32.c:1438
#, c-format
msgid "Child process exited with code %ld"
msgstr ""
-#: glib/gspawn.c:1178
+#: glib/gspawn.c:1183
#, c-format
msgid "Child process killed by signal %ld"
msgstr ""
-#: glib/gspawn.c:1185
+#: glib/gspawn.c:1190
#, c-format
msgid "Child process stopped by signal %ld"
msgstr ""
-#: glib/gspawn.c:1192
+#: glib/gspawn.c:1197
#, c-format
msgid "Child process exited abnormally"
msgstr ""
-#: glib/gspawn.c:1885 glib/gspawn-win32.c:342 glib/gspawn-win32.c:350
+#: glib/gspawn.c:1890 glib/gspawn-win32.c:353 glib/gspawn-win32.c:361
#, c-format
msgid "Failed to read from child pipe (%s)"
msgstr "მონაცემთა წაკითხვა ქვეპროცესის არხიდან ვერ მოხერხდა (%s)"
-#: glib/gspawn.c:2248
+#: glib/gspawn.c:2253
#, c-format
msgid "Failed to spawn child process “%s” (%s)"
msgstr "ქვეპროცესის (%s) განტოტვის შეცდომა (%s)"
-#: glib/gspawn.c:2365
+#: glib/gspawn.c:2370
#, c-format
msgid "Failed to fork (%s)"
-msgstr "განტოტების შეცდომა (%s)"
+msgstr "პროცესის განტოტვის შეცდომა (%s)"
-#: glib/gspawn.c:2525 glib/gspawn-win32.c:373
+#: glib/gspawn.c:2530 glib/gspawn-win32.c:384
#, c-format
msgid "Failed to change to directory “%s” (%s)"
msgstr "საქაღალდის ცვლილების შეცდომა \"%s\" (%s)"
-#: glib/gspawn.c:2535
+#: glib/gspawn.c:2540
#, c-format
msgid "Failed to execute child process “%s” (%s)"
msgstr "შვილობილი პროცესის %s გაშვების შეცდომა %s"
-#: glib/gspawn.c:2545
+#: glib/gspawn.c:2550
#, c-format
msgid "Failed to open file to remap file descriptor (%s)"
msgstr "დესკრიპტორისთვის ფაილის გადამაგრების შეცდომა (%s)"
-#: glib/gspawn.c:2553
+#: glib/gspawn.c:2558
#, c-format
msgid "Failed to duplicate file descriptor for child process (%s)"
msgstr "შვილეული პროცესისთვის (%s) ფაილის დესკრიპტორის დუბლირების შეცდომა"
-#: glib/gspawn.c:2562
+#: glib/gspawn.c:2567
#, c-format
msgid "Failed to fork child process (%s)"
msgstr "დამხმარე პროცესის გაშვების შეცდომა (%s)"
-#: glib/gspawn.c:2570
+#: glib/gspawn.c:2575
#, c-format
msgid "Failed to close file descriptor for child process (%s)"
msgstr "შვილეული პროცესის (%s) ფაილის დესკრიპტორის დახურვის შეცდომა"
-#: glib/gspawn.c:2578
+#: glib/gspawn.c:2583
#, c-format
msgid "Unknown error executing child process “%s”"
msgstr "შეცდომა შვილეული პროცესის (%s) შესრულებისას"
-#: glib/gspawn.c:2602
+#: glib/gspawn.c:2607
#, c-format
msgid "Failed to read enough data from child pid pipe (%s)"
msgstr "ქვეპროცესის არხიდან საკმარის მონაცემთა წაკითხვა ვერ მოხერხდა (%s)"
-#: glib/gspawn-win32.c:286
+#: glib/gspawn-win32.c:297
msgid "Failed to read data from child process"
msgstr "მონაცემთა წაკითხვა ქვეპროცესიდან ვერ მოხერხდა"
-#: glib/gspawn-win32.c:379 glib/gspawn-win32.c:384 glib/gspawn-win32.c:510
+#: glib/gspawn-win32.c:390 glib/gspawn-win32.c:395 glib/gspawn-win32.c:521
#, c-format
msgid "Failed to execute child process (%s)"
msgstr "ქვეპროცესის გამოყენება ვერ მოხერხდა (%s)"
-#: glib/gspawn-win32.c:389
+#: glib/gspawn-win32.c:400
#, c-format
msgid "Failed to dup() in child process (%s)"
msgstr "ქვეპროცესში dup()-ის შეცდომა (%s)"
-#: glib/gspawn-win32.c:460
+#: glib/gspawn-win32.c:471
#, c-format
msgid "Invalid program name: %s"
msgstr "პროგრამის მცდარი სახელი: %s"
-#: glib/gspawn-win32.c:470 glib/gspawn-win32.c:802
+#: glib/gspawn-win32.c:481 glib/gspawn-win32.c:807
#, c-format
msgid "Invalid string in argument vector at %d: %s"
msgstr "მცდარი სტრიქონი არგუმენტის ვექტორში - %d: %s"
-#: glib/gspawn-win32.c:481 glib/gspawn-win32.c:818
+#: glib/gspawn-win32.c:492 glib/gspawn-win32.c:823
#, c-format
msgid "Invalid string in environment: %s"
msgstr "მცდარი სტრიქონი გარემოში: %s"
-#: glib/gspawn-win32.c:798
+#: glib/gspawn-win32.c:803
#, c-format
msgid "Invalid working directory: %s"
msgstr "უმართებლო სამუშაო დასტა: %s"
-#: glib/gspawn-win32.c:863
+#: glib/gspawn-win32.c:868
#, c-format
msgid "Failed to execute helper program (%s)"
msgstr "დახმარების პროგრამის (%s) გამოყენება ვერ მოხერხდა"
-#: glib/gspawn-win32.c:1092
+#: glib/gspawn-win32.c:1096
msgid ""
"Unexpected error in g_io_channel_win32_poll() reading data from a child "
"process"
@@ -5671,312 +5735,303 @@ msgstr ""
"მოულოდნელი შეცდომა ფუნქციაში g_io_channel_win32_poll() ქვეპროცესიდან "
"მონაცემთა წაკითხვისას"
-#: glib/gstrfuncs.c:3366 glib/gstrfuncs.c:3468
+#: glib/gstrfuncs.c:3351 glib/gstrfuncs.c:3453
msgid "Empty string is not a number"
msgstr ""
-#: glib/gstrfuncs.c:3390
+#: glib/gstrfuncs.c:3375
#, c-format
msgid "“%s” is not a signed number"
msgstr ""
-#: glib/gstrfuncs.c:3400 glib/gstrfuncs.c:3504
+#: glib/gstrfuncs.c:3385 glib/gstrfuncs.c:3489
#, c-format
msgid "Number “%s” is out of bounds [%s, %s]"
msgstr ""
-#: glib/gstrfuncs.c:3494
+#: glib/gstrfuncs.c:3479
#, c-format
msgid "“%s” is not an unsigned number"
msgstr ""
-#: glib/guri.c:317
+#: glib/guri.c:315
#, no-c-format
msgid "Invalid %-encoding in URI"
msgstr ""
-#: glib/guri.c:334
+#: glib/guri.c:332
msgid "Illegal character in URI"
msgstr ""
-#: glib/guri.c:368
+#: glib/guri.c:366
msgid "Non-UTF-8 characters in URI"
msgstr ""
-#: glib/guri.c:548
+#: glib/guri.c:546
#, c-format
msgid "Invalid IPv6 address ‘%.*s’ in URI"
msgstr ""
-#: glib/guri.c:603
+#: glib/guri.c:601
#, c-format
msgid "Illegal encoded IP address ‘%.*s’ in URI"
msgstr ""
-#: glib/guri.c:615
+#: glib/guri.c:613
#, c-format
msgid "Illegal internationalized hostname ‘%.*s’ in URI"
msgstr ""
-#: glib/guri.c:647 glib/guri.c:659
+#: glib/guri.c:645 glib/guri.c:657
#, c-format
msgid "Could not parse port ‘%.*s’ in URI"
msgstr ""
-#: glib/guri.c:666
+#: glib/guri.c:664
#, c-format
msgid "Port ‘%.*s’ in URI is out of range"
msgstr ""
-#: glib/guri.c:1226 glib/guri.c:1290
+#: glib/guri.c:1224 glib/guri.c:1288
#, c-format
msgid "URI ‘%s’ is not an absolute URI"
msgstr "URI \"%s\" აბსოლუტური იდენტიფიკატორი არ გახლავთ"
-#: glib/guri.c:1232
+#: glib/guri.c:1230
#, c-format
msgid "URI ‘%s’ has no host component"
msgstr ""
-#: glib/guri.c:1462
+#: glib/guri.c:1460
msgid "URI is not absolute, and no base URI was provided"
msgstr ""
-#: glib/guri.c:2248
+#: glib/guri.c:2238
msgid "Missing ‘=’ and parameter value"
msgstr ""
-#: glib/gutf8.c:834
+#: glib/gutf8.c:832
msgid "Failed to allocate memory"
-msgstr ""
+msgstr "მეხსიერების გამოყოფის შეცდომა"
-#: glib/gutf8.c:967
+#: glib/gutf8.c:965
msgid "Character out of range for UTF-8"
msgstr "სიმბოლო UTF-8 რანგს გარეთაა"
-#: glib/gutf8.c:1069 glib/gutf8.c:1078 glib/gutf8.c:1208 glib/gutf8.c:1217
-#: glib/gutf8.c:1356 glib/gutf8.c:1453
+#: glib/gutf8.c:1067 glib/gutf8.c:1076 glib/gutf8.c:1206 glib/gutf8.c:1215
+#: glib/gutf8.c:1354 glib/gutf8.c:1451
msgid "Invalid sequence in conversion input"
msgstr "შეტანის ტექსტის გარდაქმნის მცდარი მიმდევრობა"
-#: glib/gutf8.c:1367 glib/gutf8.c:1464
+#: glib/gutf8.c:1365 glib/gutf8.c:1462
msgid "Character out of range for UTF-16"
msgstr "სიმბოლო UTF-16 რანგს გარეთაა"
-#. Translators: A unit symbol for size formatting, showing for example: "13.0 kB"
+#. Translators: Keep the no-break space between %.1f and the unit symbol
+#: glib/gutils.c:2849
+#, c-format
+msgid "%.1f kB"
+msgstr "%.1f კბ"
+
+#. Translators: Keep the no-break space between %.1f and the unit symbol
+#: glib/gutils.c:2851
+#, c-format
+msgid "%.1f MB"
+msgstr "%.1f მბ"
+
+#. Translators: Keep the no-break space between %.1f and the unit symbol
+#: glib/gutils.c:2853
+#, c-format
+msgid "%.1f GB"
+msgstr "%.1f გბ"
+
+#. Translators: Keep the no-break space between %.1f and the unit symbol
+#: glib/gutils.c:2855
+#, c-format
+msgid "%.1f TB"
+msgstr "%.1f ტბ"
+
+#. Translators: Keep the no-break space between %.1f and the unit symbol
#: glib/gutils.c:2857
-msgid "kB"
-msgstr "კბ"
+#, c-format
+msgid "%.1f PB"
+msgstr "%.1f პბ"
-#. Translators: A unit symbol for size formatting, showing for example: "13.0 MB"
+#. Translators: Keep the no-break space between %.1f and the unit symbol
#: glib/gutils.c:2859
-msgid "MB"
-msgstr "მბ"
-
-#. Translators: A unit symbol for size formatting, showing for example: "13.0 GB"
-#: glib/gutils.c:2861
-msgid "GB"
-msgstr "გბ"
+#, c-format
+msgid "%.1f EB"
+msgstr "%.1f ებ"
-#. Translators: A unit symbol for size formatting, showing for example: "13.0 TB"
+#. Translators: Keep the no-break space between %.1f and the unit symbol
#: glib/gutils.c:2863
-msgid "TB"
-msgstr "ტბ"
+#, c-format
+msgid "%.1f KiB"
+msgstr "%.1f კიბ"
-#. Translators: A unit symbol for size formatting, showing for example: "13.0 PB"
+#. Translators: Keep the no-break space between %.1f and the unit symbol
#: glib/gutils.c:2865
-msgid "PB"
-msgstr "პბ"
+#, c-format
+msgid "%.1f MiB"
+msgstr "%.1f მიბ"
-#. Translators: A unit symbol for size formatting, showing for example: "13.0 EB"
+#. Translators: Keep the no-break space between %.1f and the unit symbol
#: glib/gutils.c:2867
-msgid "EB"
-msgstr "ებ"
+#, c-format
+msgid "%.1f GiB"
+msgstr "%.1f გიბ"
-#. Translators: A unit symbol for size formatting, showing for example: "13.0 KiB"
+#. Translators: Keep the no-break space between %.1f and the unit symbol
+#: glib/gutils.c:2869
+#, c-format
+msgid "%.1f TiB"
+msgstr "%.1f ტიბ"
+
+#. Translators: Keep the no-break space between %.1f and the unit symbol
#: glib/gutils.c:2871
-msgid "KiB"
-msgstr "კიბ"
+#, c-format
+msgid "%.1f PiB"
+msgstr "%.1f პიბ"
-#. Translators: A unit symbol for size formatting, showing for example: "13.0 MiB"
+#. Translators: Keep the no-break space between %.1f and the unit symbol
#: glib/gutils.c:2873
-msgid "MiB"
-msgstr "მიბ"
-
-#. Translators: A unit symbol for size formatting, showing for example: "13.0 GiB"
-#: glib/gutils.c:2875
-msgid "GiB"
-msgstr "გიბ"
+#, c-format
+msgid "%.1f EiB"
+msgstr "%.1f ეიბ"
-#. Translators: A unit symbol for size formatting, showing for example: "13.0 TiB"
+#. Translators: Keep the no-break space between %.1f and the unit symbol
#: glib/gutils.c:2877
-msgid "TiB"
-msgstr "ტიბ"
+#, c-format
+msgid "%.1f kb"
+msgstr "%.1f კბ"
-#. Translators: A unit symbol for size formatting, showing for example: "13.0 PiB"
+#. Translators: Keep the no-break space between %.1f and the unit symbol
#: glib/gutils.c:2879
-msgid "PiB"
-msgstr "პიბ"
+#, c-format
+msgid "%.1f Mb"
+msgstr "%.1f მბ"
-#. Translators: A unit symbol for size formatting, showing for example: "13.0 EiB"
+#. Translators: Keep the no-break space between %.1f and the unit symbol
#: glib/gutils.c:2881
-msgid "EiB"
-msgstr "EiB"
+#, c-format
+msgid "%.1f Gb"
+msgstr "%.1f გბ"
+
+#. Translators: Keep the no-break space between %.1f and the unit symbol
+#: glib/gutils.c:2883
+#, c-format
+msgid "%.1f Tb"
+msgstr "%.1f ტბ"
-#. Translators: A unit symbol for size formatting, showing for example: "13.0 kb"
+#. Translators: Keep the no-break space between %.1f and the unit symbol
#: glib/gutils.c:2885
-msgid "kb"
-msgstr "კბ"
+#, c-format
+msgid "%.1f Pb"
+msgstr "%.1f პბ"
-#. Translators: A unit symbol for size formatting, showing for example: "13.0 Mb"
+#. Translators: Keep the no-break space between %.1f and the unit symbol
#: glib/gutils.c:2887
-msgid "Mb"
-msgstr "მბ"
-
-#. Translators: A unit symbol for size formatting, showing for example: "13.0 Gb"
-#: glib/gutils.c:2889
-msgid "Gb"
-msgstr "გბ"
+#, c-format
+msgid "%.1f Eb"
+msgstr "%.1f ებ"
-#. Translators: A unit symbol for size formatting, showing for example: "13.0 Tb"
+#. Translators: Keep the no-break space between %.1f and the unit symbol
#: glib/gutils.c:2891
-msgid "Tb"
-msgstr "ტბ"
+#, c-format
+msgid "%.1f Kib"
+msgstr "%.1f Kკიბ"
-#. Translators: A unit symbol for size formatting, showing for example: "13.0 Pb"
+#. Translators: Keep the no-break space between %.1f and the unit symbol
#: glib/gutils.c:2893
-msgid "Pb"
-msgstr "პბ"
+#, c-format
+msgid "%.1f Mib"
+msgstr "%.1f მიბ"
-#. Translators: A unit symbol for size formatting, showing for example: "13.0 Eb"
+#. Translators: Keep the no-break space between %.1f and the unit symbol
#: glib/gutils.c:2895
-msgid "Eb"
-msgstr "ებ"
+#, c-format
+msgid "%.1f Gib"
+msgstr "%.1f გიბ"
+
+#. Translators: Keep the no-break space between %.1f and the unit symbol
+#: glib/gutils.c:2897
+#, c-format
+msgid "%.1f Tib"
+msgstr "%.1f ტიბ"
-#. Translators: A unit symbol for size formatting, showing for example: "13.0 Kib"
+#. Translators: Keep the no-break space between %.1f and the unit symbol
#: glib/gutils.c:2899
-msgid "Kib"
-msgstr "კიბ"
+#, c-format
+msgid "%.1f Pib"
+msgstr "%.1f პიბ"
-#. Translators: A unit symbol for size formatting, showing for example: "13.0 Mib"
+#. Translators: Keep the no-break space between %.1f and the unit symbol
#: glib/gutils.c:2901
-msgid "Mib"
-msgstr "მიბ"
-
-#. Translators: A unit symbol for size formatting, showing for example: "13.0 Gib"
-#: glib/gutils.c:2903
-msgid "Gib"
-msgstr "გიბ"
-
-#. Translators: A unit symbol for size formatting, showing for example: "13.0 Tib"
-#: glib/gutils.c:2905
-msgid "Tib"
-msgstr "ტიბ"
-
-#. Translators: A unit symbol for size formatting, showing for example: "13.0 Pib"
-#: glib/gutils.c:2907
-msgid "Pib"
-msgstr "პიბ"
-
-#. Translators: A unit symbol for size formatting, showing for example: "13.0 Eib"
-#: glib/gutils.c:2909
-msgid "Eib"
-msgstr "ეიბ"
-
-#: glib/gutils.c:2947
-msgid "byte"
-msgid_plural "bytes"
-msgstr[0] "ბაიტი"
-
-#: glib/gutils.c:2951
-msgid "bit"
-msgid_plural "bits"
-msgstr[0] "ბიტი"
-
-#. Translators: The "%u" is replaced with the size value, like "13"; it could
-#. * be part of "13 bytes", but only the number is requested this time.
-#: glib/gutils.c:2959
-#, c-format
-msgctxt "format-size"
-msgid "%u"
-msgstr "%u"
-
-#. Translators: The first "%u" is replaced with the value, the "%s" with a unit of the value.
-#. * The order can be changed with "%$2s %$1u". An example: "13 bytes"
-#: glib/gutils.c:2964
-#, c-format
-msgctxt "format-size"
-msgid "%u %s"
-msgstr "%u %s"
-
-#. Translators: The "%.1f" is replaced with the size value, like "13.0"; it could
-#. * be part of "13.0 MB", but only the number is requested this time.
-#: glib/gutils.c:3000
-#, c-format
-msgctxt "format-size"
-msgid "%.1f"
-msgstr "%.1f"
-
-#. Translators: The first "%.1f" is replaced with the value, the "%s" with a unit of the value.
-#. * The order can be changed with "%$2s %$1.1f". Keep the no-break space between the value and
-#. * the unit symbol. An example: "13.0 MB"
-#: glib/gutils.c:3006
#, c-format
-msgctxt "format-size"
-msgid "%.1f %s"
-msgstr "%.1f %s"
+msgid "%.1f Eib"
+msgstr "%.1f ეიბ"
+
+#: glib/gutils.c:2935 glib/gutils.c:3052
+#, c-format
+msgid "%u byte"
+msgid_plural "%u bytes"
+msgstr[0] "%u ბაიტი"
+msgstr[1] "%u ბაიტი"
+
+#: glib/gutils.c:2939
+#, c-format
+msgid "%u bit"
+msgid_plural "%u bits"
+msgstr[0] "%u ბიტი"
+msgstr[1] "%u ბიტი"
#. Translators: the %s in "%s bytes" will always be replaced by a number.
-#: glib/gutils.c:3046
+#: glib/gutils.c:3006
#, c-format
msgid "%s byte"
msgid_plural "%s bytes"
msgstr[0] "%s ბაიტი"
+msgstr[1] "%s ბაიტი"
#. Translators: the %s in "%s bits" will always be replaced by a number.
-#: glib/gutils.c:3051
+#: glib/gutils.c:3011
#, c-format
msgid "%s bit"
msgid_plural "%s bits"
msgstr[0] "%s ბიტი"
-
-#: glib/gutils.c:3092
-#, c-format
-msgid "%u byte"
-msgid_plural "%u bytes"
-msgstr[0] "%u ბაიტი"
+msgstr[1] "%s ბიტი"
#. Translators: this is from the deprecated function g_format_size_for_display() which uses 'KB' to
#. * mean 1024 bytes. I am aware that 'KB' is not correct, but it has been preserved for reasons of
#. * compatibility. Users will not see this string unless a program is using this deprecated function.
#. * Please translate as literally as possible.
#.
-#: glib/gutils.c:3105
+#: glib/gutils.c:3065
#, c-format
msgid "%.1f KB"
msgstr "%.1f კბ"
-#: glib/gutils.c:3110
+#: glib/gutils.c:3070
#, c-format
msgid "%.1f MB"
msgstr "%.1f მბ"
-#: glib/gutils.c:3115
+#: glib/gutils.c:3075
#, c-format
msgid "%.1f GB"
msgstr "%.1f გბ"
-#: glib/gutils.c:3120
+#: glib/gutils.c:3080
#, c-format
msgid "%.1f TB"
msgstr "%.1f ტბ"
-#: glib/gutils.c:3125
+#: glib/gutils.c:3085
#, c-format
msgid "%.1f PB"
msgstr "%.1f პბ"
-#: glib/gutils.c:3130
+#: glib/gutils.c:3090
#, c-format
msgid "%.1f EB"
msgstr "%.1f ებ"