diff options
author | Mateusz Majewski <m.majewski2@samsung.com> | 2024-02-05 08:41:58 +0100 |
---|---|---|
committer | Mateusz Majewski <m.majewski2@samsung.com> | 2024-02-05 08:41:58 +0100 |
commit | 52d71e72a8000341fb25d6afc0aa04590b1b925b (patch) | |
tree | 105e1406bdcb1e30617ee6847cba6f01b5274d98 | |
parent | fd2ab4b80d94071c65de999f519b5b1e91421a02 (diff) | |
download | glib-52d71e72a8000341fb25d6afc0aa04590b1b925b.tar.gz glib-52d71e72a8000341fb25d6afc0aa04590b1b925b.tar.bz2 glib-52d71e72a8000341fb25d6afc0aa04590b1b925b.zip |
Imported Upstream version 2.74.4
33 files changed, 14982 insertions, 4934 deletions
@@ -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", ¶meter); 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, ¶meter_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 (¶meter, 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 (¶meter, 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", ¶meter); 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, ¶meter_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 (¶meter, 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 (¶meter, 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, ¶meter_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, ¶m, &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, ¶m, &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 (¶meter), + 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 (¬ification); + + 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, + ¤t_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, ¤t_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, ¤t_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, ¤t_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 (¤t_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 @@ -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 @@ -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 (ê for example) - perhaps the digit is too large" +"Failed to parse “%-.*s”, which should have been a digit inside a character " +"reference (ê for example) — perhaps the digit is too large" msgstr "" -"Не ўдалося разабраць \"%-.*s\", якое мусіла быць лікам у адсылцы да знака " -"(напрыклад, \"ê\"). Мабыць, лік надта вялікі." +"Не ўдалося разабраць “%-.*s”, які павінен быць лікам у кодзе сімвала (напр. " +"ê), магчыма лік занадта вялікі" -#: ../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 &" msgstr "" -"Адсылка да знака не скончана кропкай з коскай. Відаць, вы ўжылі знак \"&\", " -"не плануючы ствараць новы знакавы элемент. Каб пазбегнуць такіх паводзін, " -"пішыце знак \"&\" як \"&\"." +"Код сімвала не заканчваецца кропкай з коскай. Падобна, што вы выкарысталі " +"сімвал амперсанду (&) не для вызначэння пачатку кода — экрануйце амперсанд " +"як &" -#: ../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: & " < > '" +"Empty entity “&;” seen; valid entities are: & " < > '" msgstr "" -"Напатканы пусты знакавы элемент \"&;\". Дазволеныя элементы: \"&\", " -"\""\", \"<\", \">\" і \"'\"." +"Выяўлены пусты аб'ект «&;». Правільныя аб'екты: & " < > '" -#: ../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 &" +"character without intending to start an entity — escape ampersand as &" msgstr "" -"Знакавы элемент не скончаны кропкай з коскай. Відаць, вы ўжылі знак \"&\", " -"не плануючы ствараць новы знакавы элемент. Каб пазбегнуць такіх паводзін, " -"пішыце знак \"&\" як \"&\"." +"Аб'ект не заканчваецца кропкай з коскай. Падобна, што вы выкарысталі сімвал " +"амперсанду (&) не для вызначэння пачатку кода — экрануйце амперсанд як &" -#: ../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 (ê 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 &" +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: & " < > '" +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 &" +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" @@ -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', რომელშიც უნდა იყოს სიმბოლოს ნომერი " "(მაგალითად, ê): შესაძლოა რიცხვი მეტისმეტად დიდია" -#: 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 &" 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: & " < > '" msgstr "" "ცარიელი ერთეული \"&;\"; შესაძლო ერთეულებია: & " < > '" -#: 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 &" @@ -5008,11 +5003,11 @@ msgstr "" "ერთეული არ მთავრდება წერტილ-მძიმით; როგორც ჩანს, სახელის დასაწყისში " "გამოყენებულია სიმბოლო \"&\". გამოსახეთ იგი, როგორც &" -#: 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 ებ" |