diff --git a/Makefile.decl b/Makefile.decl index d07e6d23f..163fd8bbf 100644 --- a/Makefile.decl +++ b/Makefile.decl @@ -46,17 +46,23 @@ test-report perf-report full-report: ${TEST_PROGS} GTESTER_LOGDIR=`mktemp -d "\`pwd\`/.testlogs-XXXXXX"`; export GTESTER_LOGDIR ; \ ignore_logdir=false ; \ fi ; \ + if test -d "$(top_srcdir)/.git" ; then \ + REVISION=`git describe` ; \ + else \ + REVISION=$(VERSION) ; \ + fi ; \ for subdir in $(SUBDIRS) . ; do \ test "$$subdir" = "." -o "$$subdir" = "po" || \ ( cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $@ ) || exit $? ; \ done ; \ $$ignore_logdir || { \ - echo '' > $@.xml ; \ - echo '' >> $@.xml ; \ - echo '' >> $@.xml ; \ - echo ' $(PACKAGE)' >> $@.xml ; \ - echo ' $(VERSION)' >> $@.xml ; \ - echo '' >> $@.xml ; \ + echo '' > $@.xml ; \ + echo '' >> $@.xml ; \ + echo '' >> $@.xml ; \ + echo ' $(PACKAGE)' >> $@.xml ; \ + echo ' $(VERSION)' >> $@.xml ; \ + echo " $$REVISION" >> $@.xml ; \ + echo '' >> $@.xml ; \ for lf in `ls -L "$$GTESTER_LOGDIR"/.` ; do \ sed '1,1s/^?]*?>//' <"$$GTESTER_LOGDIR"/"$$lf" >> $@.xml ; \ done ; \ diff --git a/NEWS b/NEWS index 84cb200dd..7509821b0 100644 --- a/NEWS +++ b/NEWS @@ -1,3 +1,92 @@ +Overview of Changes from GLib 2.27.5 to 2.27.90 +=============================================== + +* Test reports created by gtester-report can now + include revision information + +* The g_desktop_app_info_launch_* family of functions + now emit a DBus signal when an application is launched. + Additionally, there is a new variant + g_desktop_app_info_launch_uris_as_manager(), which + gives more control over the launched process. + +* The memory and null GSettings backends are now available + as public API + +* g_get_locale_variants() is a new function that returns a + list of variants of a locale identifier + +* Bugs fixed: + 587898 I/O timeouts for GSocket + 606960 gio: Add extension point for informing parties... + 631980 Handle an optional node in the report... + 634569 Document that g_variant_builder_add_value consumes... + 635998 Make _g_compute_locale_variants public + 636806 Add g_{memory,null}_settings_backend_get_default + 637262 Need a binary DER version of ::accepted-cas + 637544 Skip fsync() on btrfs + 637720 void functions should not return a value. + 637738 object_interface_check_properties never actually... + 637759 GIOChannel: fix a crash in g_io_channel_read_chars() + 637852 Updates to glib.vsprops file for MSVC 2008 builds... + 637858 Updates to test/testglib.c... + 638349 parameter name of g_variant_new_* may conflict... + +* Translation updates: + Hebrew + Norwegian bokmål + Simplified Chinese + Spanish + Swedish + Uyghur + Vietnamese + + +Overview of Changes from GLib 2.27.4 to 2.27.5 +============================================== + +* Network support: + - Add g_tls_certificate_verify() to verify a certificate + - Add GTlsConnection:use-system-certdb + - Other TLS api additions + +* GIO: + - Add g_io_stream_splice_async()/_finish() to splice two iostreams + - Add g_emblemed_icon_clear_emblems() and make GEmblemedIcon derivable + - Remove GPeriodic; it did not receive the necessary review and + integration work to declare it stable + +* GSequence: + - New methods g_sequence_lookup() and g_sequence_lookup_iter() + +* Bugs fixed: + 617254 Missing g_sequence_lookup + 632544 g_dbus_connection_send_message can not send a locked message... + 633350 g_hostname_to_ascii() ignores non-ascii dots + 634583 Better error reporting for g_variant_parse() + 635007 gsetting enum rule don't work for out-of-srcdir builds + 635626 GDBus message idle can execute while flushes are pending + 636100 Can't read GSettings:backend property + 636305 Typo on g_queue_remove_all() function description + 636311 appinfo: tweak application positioning for content-types + 636351 g_simple_async_result_is_valid lacks a version tag + 636387 gdb autoload files shadow the "dir" builtin + 636673 g_simple_async_report_error_in_idle should allow object... + 637147 Add a "delay-apply" property to GSettings + 637171 emblemedicon: add g_emblemed_icon_clear_emblems() + 637237 gapplication: plug a memory leak + +* Translation updates: + Estonian + Galician + Hebrew + Norwegian bokmål + Simplified Chinese + Spanish + Traditional Chinese + Vietnamese + + Overview of Changes from GLib 2.27.3 to 2.27.4 ============================================== diff --git a/build/win32/vs9/glib.vsprops b/build/win32/vs9/glib.vsprops index ba098d420..302ce323b 100644 --- a/build/win32/vs9/glib.vsprops +++ b/build/win32/vs9/glib.vsprops @@ -205,8 +205,9 @@ copy ..\..\..\gio\gnativevolumemonitor.h $(OutDir)\include\glib-2.0\gio &#x copy ..\..\..\gio\gnetworkaddress.h $(OutDir)\include\glib-2.0\gio copy ..\..\..\gio\gnetworkservice.h $(OutDir)\include\glib-2.0\gio copy ..\..\..\gio\goutputstream.h $(OutDir)\include\glib-2.0\gio -copy ..\..\..\gio\gperiodic.h $(OutDir)\include\glib-2.0\gio copy ..\..\..\gio\gpermission.h $(OutDir)\include\glib-2.0\gio +copy ..\..\..\gio\gpollableinputstream.h $(OutDir)\include\glib-2.0\gio +copy ..\..\..\gio\gpollableoutputstream.h $(OutDir)\include\glib-2.0\gio copy ..\..\..\gio\gproxy.h $(OutDir)\include\glib-2.0\gio copy ..\..\..\gio\gproxyaddress.h $(OutDir)\include\glib-2.0\gio copy ..\..\..\gio\gproxyaddressenumerator.h $(OutDir)\include\glib-2.0\gio @@ -229,8 +230,14 @@ copy ..\..\..\gio\gsocketlistener.h $(OutDir)\include\glib-2.0\gio copy ..\..\..\gio\gsocketservice.h $(OutDir)\include\glib-2.0\gio copy ..\..\..\gio\gsrvtarget.h $(OutDir)\include\glib-2.0\gio copy ..\..\..\gio\gtcpconnection.h $(OutDir)\include\glib-2.0\gio +copy ..\..\..\gio\gtcpwrapperconnection.h $(OutDir)\include\glib-2.0\gio copy ..\..\..\gio\gthemedicon.h $(OutDir)\include\glib-2.0\gio copy ..\..\..\gio\gthreadedsocketservice.h $(OutDir)\include\glib-2.0\gio +copy ..\..\..\gio\gtlsbackend.h $(OutDir)\include\glib-2.0\gio +copy ..\..\..\gio\gtlscertificate.h $(OutDir)\include\glib-2.0\gio +copy ..\..\..\gio\gtlsclientconnection.h $(OutDir)\include\glib-2.0\gio +copy ..\..\..\gio\gtlsconnection.h $(OutDir)\include\glib-2.0\gio +copy ..\..\..\gio\gtlsserverconnection.h $(OutDir)\include\glib-2.0\gio copy ..\..\..\gio\gvfs.h $(OutDir)\include\glib-2.0\gio copy ..\..\..\gio\gvolume.h $(OutDir)\include\glib-2.0\gio copy ..\..\..\gio\gvolumemonitor.h $(OutDir)\include\glib-2.0\gio diff --git a/configure.ac b/configure.ac index 28a1f3967..e90127070 100644 --- a/configure.ac +++ b/configure.ac @@ -22,7 +22,7 @@ m4_define(glib_configure_ac) # m4_define([glib_major_version], [2]) m4_define([glib_minor_version], [27]) -m4_define([glib_micro_version], [5]) +m4_define([glib_micro_version], [91]) m4_define([glib_interface_age], [0]) m4_define([glib_binary_age], [m4_eval(100 * glib_minor_version + glib_micro_version)]) @@ -49,6 +49,7 @@ AC_INIT(glib, [glib_version], AC_CONFIG_HEADER([config.h]) AC_CONFIG_SRCDIR([glib/glib.h]) +AC_CONFIG_MACRO_DIR([m4macros]) # Save this value here, since automake will set cflags later cflags_set=${CFLAGS+set} @@ -224,10 +225,6 @@ AC_ARG_ENABLE(rebuilds, [AC_HELP_STRING([--disable-rebuilds], [disable all source autogeneration rules])],, [enable_rebuilds=yes]) -AC_ARG_ENABLE(visibility, - [AC_HELP_STRING([--disable-visibility], - [don't use ELF visibility attributes])],, - [enable_visibility=yes]) if test "x$enable_threads" != "xyes"; then enable_threads=no @@ -296,10 +293,6 @@ else fi fi -if test "x$enable_visibility" = "xno"; then - GLIB_DEBUG_FLAGS="$GLIB_DEBUG_FLAGS -DDISABLE_VISIBILITY" -fi - # Ensure MSVC-compatible struct packing convention is used when # compiling for Win32 with gcc. # What flag to depends on gcc version: gcc3 uses "-mms-bitfields", while diff --git a/docs/reference/gio/gio-docs.xml b/docs/reference/gio/gio-docs.xml index ce756433e..ad1aee5d8 100644 --- a/docs/reference/gio/gio-docs.xml +++ b/docs/reference/gio/gio-docs.xml @@ -184,10 +184,6 @@ - - Periodic Timer - - Extending GIO diff --git a/docs/reference/gio/gio-sections.txt b/docs/reference/gio/gio-sections.txt index b49d501b7..3448e8c8f 100644 --- a/docs/reference/gio/gio-sections.txt +++ b/docs/reference/gio/gio-sections.txt @@ -506,6 +506,7 @@ g_emblemed_icon_new g_emblemed_icon_get_icon g_emblemed_icon_get_emblems g_emblemed_icon_add_emblem +g_emblemed_icon_clear_emblems GEmblemedIconClass G_EMBLEMED_ICON @@ -892,9 +893,12 @@ GUnixOutputStreamPrivate
giostream GIOStream +GIOStreamSpliceFlags GIOStream g_io_stream_get_input_stream g_io_stream_get_output_stream +g_io_stream_splice_async +g_io_stream_splice_finish g_io_stream_close g_io_stream_close_async g_io_stream_close_finish @@ -1252,6 +1256,7 @@ g_app_info_delete g_app_info_reset_type_associations g_app_info_set_as_default_for_type g_app_info_set_as_default_for_extension +g_app_info_set_as_last_used_for_type g_app_info_add_supports_type g_app_info_can_remove_supports_type g_app_info_remove_supports_type @@ -2153,6 +2158,7 @@ G_TYPE_FILE_DESCRIPTOR_BASED GSettingsBackend GSettingsBackendClass G_SETTINGS_BACKEND_EXTENSION_POINT_NAME +g_settings_backend_get_default g_settings_backend_changed g_settings_backend_path_changed g_settings_backend_keys_changed @@ -2161,6 +2167,8 @@ g_settings_backend_writable_changed g_settings_backend_changed_tree g_settings_backend_flatten_tree g_keyfile_settings_backend_new +g_memory_settings_backend_new +g_null_settings_backend_new G_IS_SETTINGS_BACKEND @@ -2932,32 +2940,6 @@ G_TYPE_PROXY g_proxy_get_type
-
-gperiodic -GPeriodic -GPeriodic - -g_periodic_new -g_periodic_get_hz -g_periodic_get_high_priority -g_periodic_get_low_priority - -GPeriodicTickFunc -g_periodic_add -g_periodic_remove - -g_periodic_block -g_periodic_unblock - -g_periodic_damaged - -G_TYPE_PERIODIC -G_PERIODIC -G_IS_PERIODIC - -g_periodic_get_type -
-
gpollableinputstream GPollableInputStream @@ -3038,6 +3020,7 @@ g_tls_certificate_new_from_file g_tls_certificate_new_from_files g_tls_certificate_list_new_from_file g_tls_certificate_get_issuer +g_tls_certificate_verify GTlsCertificateClass GTlsCertificatePrivate @@ -3058,19 +3041,20 @@ GTlsConnection g_tls_connection_set_certificate g_tls_connection_get_certificate g_tls_connection_get_peer_certificate +g_tls_connection_get_peer_certificate_errors g_tls_connection_set_require_close_notify g_tls_connection_get_require_close_notify GTlsRehandshakeMode g_tls_connection_set_rehandshake_mode g_tls_connection_get_rehandshake_mode +g_tls_connection_set_use_system_certdb +g_tls_connection_get_use_system_certdb g_tls_connection_handshake g_tls_connection_handshake_async g_tls_connection_handshake_finish -g_tls_connection_set_peer_certificate g_tls_connection_emit_accept_certificate -g_tls_connection_emit_need_certificate GTlsConnectionClass GTlsConnectionPrivate diff --git a/docs/reference/gio/gio.types b/docs/reference/gio/gio.types index 76eb7e020..d63151723 100644 --- a/docs/reference/gio/gio.types +++ b/docs/reference/gio/gio.types @@ -74,7 +74,6 @@ g_network_service_get_type g_output_stream_get_type g_output_stream_splice_flags_get_type g_password_save_get_type -g_periodic_get_type g_permission_get_type g_pollable_input_stream_get_type g_pollable_output_stream_get_type diff --git a/docs/reference/gio/overview.xml b/docs/reference/gio/overview.xml index 58ce31760..a6e327b8b 100644 --- a/docs/reference/gio/overview.xml +++ b/docs/reference/gio/overview.xml @@ -247,14 +247,13 @@ - <envar>GIO_USE_URI_ASSOCIATION</envar> + <envar>GIO_USE_TLS</envar> - This variable can be set to the name of a #GDesktopAppInfoLookup + This variable can be set to the name of a #GTlsBackend implementation to override the default for debugging purposes. - GIO does not include a #GDesktopAppInfoLookup implementation, - the GConf-based implementation in the gvfs module has the name - "gconf". + GIO does not include a #GTlsBackend implementation, the gnutls-based + implementation in the glib-networking module has the name "gnutls". diff --git a/docs/reference/glib/building.sgml b/docs/reference/glib/building.sgml index 6ba280a96..8b643e095 100644 --- a/docs/reference/glib/building.sgml +++ b/docs/reference/glib/building.sgml @@ -232,8 +232,8 @@ How to compile GLib itself --enable-included-printf - --disable-visibility - --enable-visibility + --disable-Bsymbolic + --enable-Bsymbolic --disable-gtk-doc @@ -510,19 +510,18 @@ How to compile GLib itself - <systemitem>--disable-visibility</systemitem> and - <systemitem>--enable-visibility</systemitem> + <systemitem>--disable-Bsymbolic</systemitem> and + <systemitem>--enable-Bsymbolic</systemitem> - By default, GLib uses ELF visibility attributes to optimize - PLT table entries if the compiler supports ELF visibility - attributes. A side-effect of the way in which this is currently - implemented is that any header change forces a full - recompilation, and missing includes may go unnoticed. - Therefore, it makes sense to turn this feature off while - doing GLib development, even if the compiler supports ELF - visibility attributes. The - option allows to do that. + By default, GLib uses the -Bsymbolic-functions linker + flag to avoid intra-library PLT jumps. A side-effect + of this is that it is no longer possible to override + internal uses of GLib functions with + LD_PRELOAD. Therefore, it may make + sense to turn this feature off in some situations. + The option allows + to do that. diff --git a/docs/reference/glib/glib-sections.txt b/docs/reference/glib/glib-sections.txt index 6540fe8fa..c45ee67ae 100644 --- a/docs/reference/glib/glib-sections.txt +++ b/docs/reference/glib/glib-sections.txt @@ -2166,6 +2166,8 @@ g_sequence_remove_range g_sequence_move_range g_sequence_search g_sequence_search_iter +g_sequence_lookup +g_sequence_lookup_iter g_sequence_get @@ -2728,6 +2730,7 @@ g_dpgettext2 g_strip_context g_get_language_names +g_get_locale_variants
diff --git a/gio/Makefile.am b/gio/Makefile.am index 89aa16276..0fa675f38 100644 --- a/gio/Makefile.am +++ b/gio/Makefile.am @@ -116,9 +116,7 @@ settings_sources = \ gdelayedsettingsbackend.h \ gdelayedsettingsbackend.c \ gkeyfilesettingsbackend.c \ - gmemorysettingsbackend.h \ gmemorysettingsbackend.c \ - gnullsettingsbackend.h \ gnullsettingsbackend.c \ gsettingsbackendinternal.h \ gsettingsbackend.c \ @@ -348,7 +346,6 @@ libgio_2_0_la_SOURCES = \ gnetworkingprivate.h \ gnetworkservice.c \ goutputstream.c \ - gperiodic.c \ gpermission.c \ gpollableinputstream.c \ gpollableoutputstream.c \ @@ -510,7 +507,6 @@ gio_headers = \ gnetworkaddress.h \ gnetworkservice.h \ goutputstream.h \ - gperiodic.h \ gpermission.h \ gpollableinputstream.h \ gpollableoutputstream.h \ diff --git a/gio/gaction.c b/gio/gaction.c index 6c2ee1db5..15fe23a85 100644 --- a/gio/gaction.c +++ b/gio/gaction.c @@ -77,7 +77,8 @@ g_action_default_init (GActionInterface *iface) P_("Action Name"), P_("The name used to invoke the action"), NULL, - G_PARAM_READABLE | + G_PARAM_READWRITE | + G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS)); /** @@ -93,7 +94,8 @@ g_action_default_init (GActionInterface *iface) P_("Parameter Type"), P_("The type of GVariant passed to activate()"), G_TYPE_VARIANT_TYPE, - G_PARAM_READABLE | + G_PARAM_READWRITE | + G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS)); /** @@ -111,7 +113,8 @@ g_action_default_init (GActionInterface *iface) P_("Enabled"), P_("If the action can be activated"), TRUE, - G_PARAM_READABLE | + G_PARAM_CONSTRUCT | + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); /** diff --git a/gio/gappinfo.c b/gio/gappinfo.c index 755731e58..7557ce5c0 100644 --- a/gio/gappinfo.c +++ b/gio/gappinfo.c @@ -308,6 +308,33 @@ g_app_info_set_as_default_for_type (GAppInfo *appinfo, return (* iface->set_as_default_for_type) (appinfo, content_type, error); } +/** + * g_app_info_set_as_last_used_for_type: + * @appinfo: a #GAppInfo. + * @content_type: the content type. + * @error: a #GError. + * + * Sets the application as the last used application for a given type. + * This will make the application appear as first in the list returned by + * #g_app_info_get_recommended_for_type, regardless of the default application + * for that content type. + * + * Returns: %TRUE on success, %FALSE on error. + **/ +gboolean +g_app_info_set_as_last_used_for_type (GAppInfo *appinfo, + const char *content_type, + GError **error) +{ + GAppInfoIface *iface; + + g_return_val_if_fail (G_IS_APP_INFO (appinfo), FALSE); + g_return_val_if_fail (content_type != NULL, FALSE); + + iface = G_APP_INFO_GET_IFACE (appinfo); + + return (* iface->set_as_last_used_for_type) (appinfo, content_type, error); +} /** * g_app_info_set_as_default_for_extension: @@ -548,7 +575,7 @@ g_app_info_supports_files (GAppInfo *appinfo) /** * g_app_info_launch_uris: * @appinfo: a #GAppInfo - * @uris: (element-type char*): a #GList containing URIs to launch. + * @uris: (element-type utf8): a #GList containing URIs to launch. * @launch_context: (allow-none): a #GAppLaunchContext or %NULL * @error: a #GError * @@ -605,7 +632,7 @@ g_app_info_should_show (GAppInfo *appinfo) /** * g_app_info_launch_default_for_uri: * @uri: the uri to show - * @launch_context: an optional #GAppLaunchContext. + * @launch_context: (allow-none): an optional #GAppLaunchContext. * @error: a #GError. * * Utility function that launches the default application diff --git a/gio/gappinfo.h b/gio/gappinfo.h index a52e21644..d752d4482 100644 --- a/gio/gappinfo.h +++ b/gio/gappinfo.h @@ -99,7 +99,7 @@ struct _GAppInfoIface const char * (* get_executable) (GAppInfo *appinfo); GIcon * (* get_icon) (GAppInfo *appinfo); gboolean (* launch) (GAppInfo *appinfo, - GList *filenames, + GList *files, GAppLaunchContext *launch_context, GError **error); gboolean (* supports_uris) (GAppInfo *appinfo); @@ -128,6 +128,9 @@ struct _GAppInfoIface gboolean (* do_delete) (GAppInfo *appinfo); const char * (* get_commandline) (GAppInfo *appinfo); const char * (* get_display_name) (GAppInfo *appinfo); + gboolean (* set_as_last_used_for_type) (GAppInfo *appinfo, + const char *content_type, + GError **error); }; GType g_app_info_get_type (void) G_GNUC_CONST; @@ -173,6 +176,10 @@ gboolean g_app_info_remove_supports_type (GAppInfo *appin gboolean g_app_info_can_delete (GAppInfo *appinfo); gboolean g_app_info_delete (GAppInfo *appinfo); +gboolean g_app_info_set_as_last_used_for_type (GAppInfo *appinfo, + const char *content_type, + GError **error); + GList * g_app_info_get_all (void); GList * g_app_info_get_all_for_type (const char *content_type); GList * g_app_info_get_recommended_for_type (const gchar *content_type); diff --git a/gio/gapplication.c b/gio/gapplication.c index da9d54d82..6ad23d0f4 100644 --- a/gio/gapplication.c +++ b/gio/gapplication.c @@ -357,7 +357,7 @@ g_application_set_property (GObject *object, /** * g_application_set_action_group: * @application: a #GApplication - * @action_group: a #GActionGroup, or %NULL + * @action_group: (allow-none): a #GActionGroup, or %NULL * * Sets or unsets the group of actions associated with the application. * @@ -545,7 +545,7 @@ g_application_class_init (GApplicationClass *class) /** * GApplication::open: * @application: the application - * @files: an array of #GFile objects + * @files: (array length=n_files) (element-type GFile): an array of #GFiles * @n_files: the length of @files * @hint: a hint provided by the calling instance * @@ -1047,7 +1047,7 @@ g_application_activate (GApplication *application) /** * g_application_open: * @application: a #GApplication - * @files: an array of #GFiles to open + * @files: (array length=n_files): an array of #GFiles to open * @n_files: the length of the @files array * @hint: a hint (or ""), but never %NULL * @@ -1094,7 +1094,7 @@ g_application_open (GApplication *application, * g_application_run: * @application: a #GApplication * @argc: the argc from main() - * @argv: the argv from main() + * @argv: (array length=argc): the argv from main() * @returns: the exit status * * Runs the application. diff --git a/gio/gapplicationcommandline.c b/gio/gapplicationcommandline.c index c52398c3d..b8d788aab 100644 --- a/gio/gapplicationcommandline.c +++ b/gio/gapplicationcommandline.c @@ -249,7 +249,7 @@ g_application_command_line_class_init (GApplicationCommandLineClass *class) /** * g_application_command_line_get_arguments: * @cmdline: a #GApplicationCommandLine - * @argc: the length of the arguments array, or %NULL + * @argc: (out): the length of the arguments array, or %NULL * * Gets the list of arguments that was passed on the command line. * @@ -258,7 +258,8 @@ g_application_command_line_class_init (GApplicationCommandLineClass *class) * The return value is %NULL-terminated and should be freed using * g_strfreev(). * - * Returns: the string array containing the arguments (the argv) + * Returns: (array length=argc) (transfer full): the string array + * containing the arguments (the argv) * * Since: 2.28 **/ @@ -321,7 +322,8 @@ g_application_command_line_get_cwd (GApplicationCommandLine *cmdline) * The return value should not be modified or freed and is valid for as * long as @cmdline exists. * - * Returns: the environment strings, or %NULL if they were not sent + * Returns: (array zero-terminated=1) (transfer none): the environment + * strings, or %NULL if they were not sent * * Since: 2.28 **/ diff --git a/gio/gapplicationimpl-dbus.c b/gio/gapplicationimpl-dbus.c index c9f430657..406b8390d 100644 --- a/gio/gapplicationimpl-dbus.c +++ b/gio/gapplicationimpl-dbus.c @@ -328,6 +328,8 @@ g_application_impl_actions_method_call (GDBusConnection *connection, g_dbus_method_invocation_return_value (invocation, g_variant_builder_end (&builder)); + + g_strfreev (actions); } else if (strcmp (method_name, "SetState") == 0) @@ -666,7 +668,7 @@ g_application_impl_register (GApplication *application, g_free (impl->object_path); g_slice_free (GApplicationImpl, impl); - impl = NULL; + return NULL; } } @@ -674,7 +676,7 @@ g_application_impl_register (GApplication *application, * This also serves as a mechanism to ensure that the primary exists * (ie: DBus service files installed correctly, etc). */ - impl->signal_id = + impl->signal_id = g_dbus_connection_signal_subscribe (impl->session_bus, impl->bus_name, "org.gtk.Actions", NULL, impl->object_path, NULL, diff --git a/gio/gasyncresult.h b/gio/gasyncresult.h index 1614586ba..ade63c4ea 100644 --- a/gio/gasyncresult.h +++ b/gio/gasyncresult.h @@ -59,8 +59,8 @@ struct _GAsyncResultIface /* Virtual Table */ - gpointer (* get_user_data) (GAsyncResult *async_result); - GObject * (* get_source_object) (GAsyncResult *async_result); + gpointer (* get_user_data) (GAsyncResult *res); + GObject * (* get_source_object) (GAsyncResult *res); }; GType g_async_result_get_type (void) G_GNUC_CONST; diff --git a/gio/gbufferedinputstream.c b/gio/gbufferedinputstream.c index f79787c70..711c8d3d2 100644 --- a/gio/gbufferedinputstream.c +++ b/gio/gbufferedinputstream.c @@ -360,7 +360,7 @@ g_buffered_input_stream_new_sized (GInputStream *base_stream, * g_buffered_input_stream_fill: * @stream: a #GBufferedInputStream * @count: the number of bytes that will be read from the stream - * @cancellable: optional #GCancellable object, %NULL to ignore + * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore * @error: location to store the error occuring, or %NULL to ignore * * Tries to read @count bytes from the stream into the buffer. @@ -447,9 +447,9 @@ async_fill_callback_wrapper (GObject *source_object, * @count: the number of bytes that will be read from the stream * @io_priority: the I/O priority * of the request - * @cancellable: optional #GCancellable object - * @callback: a #GAsyncReadyCallback - * @user_data: a #gpointer + * @cancellable: (allow-none): optional #GCancellable object + * @callback: (scope async): a #GAsyncReadyCallback + * @user_data: (closure): a #gpointer * * Reads data into @stream's buffer asynchronously, up to @count size. * @io_priority can be used to prioritize reads. For the synchronous @@ -602,13 +602,14 @@ g_buffered_input_stream_peek (GBufferedInputStream *stream, /** * g_buffered_input_stream_peek_buffer: * @stream: a #GBufferedInputStream - * @count: a #gsize to get the number of bytes available in the buffer + * @count: (out): a #gsize to get the number of bytes available in the buffer * * Returns the buffer with the currently available bytes. The returned * buffer must not be modified and will become invalid when reading from * the stream or filling the buffer. * - * Returns: read-only buffer + * Returns: (array length=count) (element-type guint8) (transfer none): + * read-only buffer */ const void* g_buffered_input_stream_peek_buffer (GBufferedInputStream *stream, @@ -839,7 +840,7 @@ g_buffered_input_stream_read (GInputStream *stream, /** * g_buffered_input_stream_read_byte: * @stream: a #GBufferedInputStream - * @cancellable: optional #GCancellable object, %NULL to ignore + * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore * @error: location to store the error occuring, or %NULL to ignore * * Tries to read a single byte from the stream or the buffer. Will block diff --git a/gio/gcancellable.c b/gio/gcancellable.c index 65e15bc12..c37baff51 100644 --- a/gio/gcancellable.c +++ b/gio/gcancellable.c @@ -288,7 +288,7 @@ g_cancellable_new (void) * @cancellable: a #GCancellable object * * Pushes @cancellable onto the cancellable stack. The current - * cancllable can then be recieved using g_cancellable_get_current(). + * cancellable can then be recieved using g_cancellable_get_current(). * * This is useful when implementing cancellable operations in * code that does not allow you to pass down the cancellable object. @@ -852,7 +852,7 @@ static GSourceFuncs cancellable_source_funcs = }; /** - * g_cancellable_source_new: + * g_cancellable_source_new: (skip) * @cancellable: a #GCancellable, or %NULL * * Creates a source that triggers if @cancellable is cancelled and @@ -863,7 +863,7 @@ static GSourceFuncs cancellable_source_funcs = * For convenience, you can call this with a %NULL #GCancellable, * in which case the source will never trigger. * - * Return value: the new #GSource. + * Return value: (transfer full): the new #GSource. * * Since: 2.28 */ diff --git a/gio/gcontenttype.c b/gio/gcontenttype.c index dfbe8688b..3856a2dfa 100644 --- a/gio/gcontenttype.c +++ b/gio/gcontenttype.c @@ -1651,8 +1651,8 @@ match_match (TreeMatch *match, * This function is useful in the implementation of * g_mount_guess_content_type(). * - * Returns: (transfer full): an %NULL-terminated array of zero or more content types, - * or %NULL. Free with g_strfreev() + * Returns: (transfer full) (array zero-terminated=1): an %NULL-terminated + * array of zero or more content types, or %NULL. Free with g_strfreev() * * Since: 2.18 */ diff --git a/gio/gconverter.c b/gio/gconverter.c index 74e90c211..1dcf6aac1 100644 --- a/gio/gconverter.c +++ b/gio/gconverter.c @@ -54,13 +54,14 @@ g_converter_default_init (GConverterInterface *iface) /** * g_converter_convert: * @converter: a #GConverter. - * @inbuf: the buffer containing the data to convert. + * @inbuf: (array length=inbuf_size) (element-type guint8): the buffer + * containing the data to convert. * @inbuf_size: the number of bytes in @inbuf * @outbuf: a buffer to write converted data in. * @outbuf_size: the number of bytes in @outbuf, must be at least one * @flags: a #GConvertFlags controlling the conversion details - * @bytes_read: will be set to the number of bytes read from @inbuf on success - * @bytes_written: will be set to the number of bytes written to @outbuf on success + * @bytes_read: (out): will be set to the number of bytes read from @inbuf on success + * @bytes_written: (out): will be set to the number of bytes written to @outbuf on success * @error: location to store the error occuring, or %NULL to ignore * * This is the main operation used when converting data. It is to be called diff --git a/gio/gdatainputstream.c b/gio/gdatainputstream.c index 7a7af9afe..2ab6bd63a 100644 --- a/gio/gdatainputstream.c +++ b/gio/gdatainputstream.c @@ -325,7 +325,7 @@ read_data (GDataInputStream *stream, /** * g_data_input_stream_read_byte: * @stream: a given #GDataInputStream. - * @cancellable: optional #GCancellable object, %NULL to ignore. + * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore. * @error: #GError for error reporting. * * Reads an unsigned 8-bit/1-byte value from @stream. @@ -352,7 +352,7 @@ g_data_input_stream_read_byte (GDataInputStream *stream, /** * g_data_input_stream_read_int16: * @stream: a given #GDataInputStream. - * @cancellable: optional #GCancellable object, %NULL to ignore. + * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore. * @error: #GError for error reporting. * * Reads a 16-bit/2-byte value from @stream. @@ -396,7 +396,7 @@ g_data_input_stream_read_int16 (GDataInputStream *stream, /** * g_data_input_stream_read_uint16: * @stream: a given #GDataInputStream. - * @cancellable: optional #GCancellable object, %NULL to ignore. + * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore. * @error: #GError for error reporting. * * Reads an unsigned 16-bit/2-byte value from @stream. @@ -440,7 +440,7 @@ g_data_input_stream_read_uint16 (GDataInputStream *stream, /** * g_data_input_stream_read_int32: * @stream: a given #GDataInputStream. - * @cancellable: optional #GCancellable object, %NULL to ignore. + * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore. * @error: #GError for error reporting. * * Reads a signed 32-bit/4-byte value from @stream. @@ -488,7 +488,7 @@ g_data_input_stream_read_int32 (GDataInputStream *stream, /** * g_data_input_stream_read_uint32: * @stream: a given #GDataInputStream. - * @cancellable: optional #GCancellable object, %NULL to ignore. + * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore. * @error: #GError for error reporting. * * Reads an unsigned 32-bit/4-byte value from @stream. @@ -536,7 +536,7 @@ g_data_input_stream_read_uint32 (GDataInputStream *stream, /** * g_data_input_stream_read_int64: * @stream: a given #GDataInputStream. - * @cancellable: optional #GCancellable object, %NULL to ignore. + * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore. * @error: #GError for error reporting. * * Reads a 64-bit/8-byte value from @stream. @@ -584,7 +584,7 @@ g_data_input_stream_read_int64 (GDataInputStream *stream, /** * g_data_input_stream_read_uint64: * @stream: a given #GDataInputStream. - * @cancellable: optional #GCancellable object, %NULL to ignore. + * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore. * @error: #GError for error reporting. * * Reads an unsigned 64-bit/8-byte value from @stream. @@ -730,8 +730,8 @@ scan_for_newline (GDataInputStream *stream, /** * g_data_input_stream_read_line: * @stream: a given #GDataInputStream. - * @length: a #gsize to get the length of the data read in. - * @cancellable: optional #GCancellable object, %NULL to ignore. + * @length: (out): a #gsize to get the length of the data read in. + * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore. * @error: #GError for error reporting. * * Reads a line from the data input stream. @@ -740,10 +740,11 @@ scan_for_newline (GDataInputStream *stream, * triggering the cancellable object from another thread. If the operation * was cancelled, the error %G_IO_ERROR_CANCELLED will be returned. * - * Returns: a string with the line that was read in (without the newlines). - * Set @length to a #gsize to get the length of the read line. - * On an error, it will return %NULL and @error will be set. If there's no - * content to read, it will still return %NULL, but @error won't be set. + * Returns: (transfer full): a string with the line that was read in + * (without the newlines). Set @length to a #gsize to get the + * length of the read line. On an error, it will return %NULL and + * @error will be set. If there's no content to read, it will + * still return %NULL, but @error won't be set. **/ char * g_data_input_stream_read_line (GDataInputStream *stream, @@ -852,8 +853,8 @@ scan_for_chars (GDataInputStream *stream, * g_data_input_stream_read_until: * @stream: a given #GDataInputStream. * @stop_chars: characters to terminate the read. - * @length: a #gsize to get the length of the data read in. - * @cancellable: optional #GCancellable object, %NULL to ignore. + * @length: (out): a #gsize to get the length of the data read in. + * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore. * @error: #GError for error reporting. * * Reads a string from the data input stream, up to the first @@ -868,9 +869,10 @@ scan_for_chars (GDataInputStream *stream, * g_data_input_stream_read_upto() instead, but note that that function * does not consume the stop character. * - * Returns: a string with the data that was read before encountering - * any of the stop characters. Set @length to a #gsize to get the length - * of the string. This function will return %NULL on an error. + * Returns: (transfer full): a string with the data that was read + * before encountering any of the stop characters. Set @length to + * a #gsize to get the length of the string. This function will + * return %NULL on an error. */ char * g_data_input_stream_read_until (GDataInputStream *stream, @@ -1099,9 +1101,9 @@ g_data_input_stream_read_finish (GDataInputStream *stream, * @stream: a given #GDataInputStream. * @io_priority: the I/O priority * of the request. - * @cancellable: optional #GCancellable object, %NULL to ignore. - * @callback: callback to call when the request is satisfied. - * @user_data: the data to pass to callback function. + * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore. + * @callback: (scope async): callback to call when the request is satisfied. + * @user_data: (closure): the data to pass to callback function. * * The asynchronous version of g_data_input_stream_read_line(). It is * an error to have two outstanding calls to this function. @@ -1133,9 +1135,9 @@ g_data_input_stream_read_line_async (GDataInputStream *stream, * @stop_chars: characters to terminate the read. * @io_priority: the I/O priority * of the request. - * @cancellable: optional #GCancellable object, %NULL to ignore. - * @callback: callback to call when the request is satisfied. - * @user_data: the data to pass to callback function. + * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore. + * @callback: (scope async): callback to call when the request is satisfied. + * @user_data: (closure): the data to pass to callback function. * * The asynchronous version of g_data_input_stream_read_until(). * It is an error to have two outstanding calls to this function. @@ -1176,16 +1178,17 @@ g_data_input_stream_read_until_async (GDataInputStream *stream, * g_data_input_stream_read_line_finish: * @stream: a given #GDataInputStream. * @result: the #GAsyncResult that was provided to the callback. - * @length: a #gsize to get the length of the data read in. + * @length: (out): a #gsize to get the length of the data read in. * @error: #GError for error reporting. * * Finish an asynchronous call started by * g_data_input_stream_read_line_async(). * - * Returns: a string with the line that was read in (without the newlines). - * Set @length to a #gsize to get the length of the read line. - * On an error, it will return %NULL and @error will be set. If there's no - * content to read, it will still return %NULL, but @error won't be set. + * Returns: (transfer full): a string with the line that was read in + * (without the newlines). Set @length to a #gsize to get the + * length of the read line. On an error, it will return %NULL and + * @error will be set. If there's no content to read, it will + * still return %NULL, but @error won't be set. * * Since: 2.20 */ @@ -1206,7 +1209,7 @@ g_data_input_stream_read_line_finish (GDataInputStream *stream, * g_data_input_stream_read_until_finish: * @stream: a given #GDataInputStream. * @result: the #GAsyncResult that was provided to the callback. - * @length: a #gsize to get the length of the data read in. + * @length: (out): a #gsize to get the length of the data read in. * @error: #GError for error reporting. * * Finish an asynchronous call started by @@ -1214,9 +1217,10 @@ g_data_input_stream_read_line_finish (GDataInputStream *stream, * * Since: 2.20 * - * Returns: a string with the data that was read before encountering - * any of the stop characters. Set @length to a #gsize to get the length - * of the string. This function will return %NULL on an error. + * Returns: (transfer full): a string with the data that was read + * before encountering any of the stop characters. Set @length to + * a #gsize to get the length of the string. This function will + * return %NULL on an error. */ gchar * g_data_input_stream_read_until_finish (GDataInputStream *stream, @@ -1237,8 +1241,8 @@ g_data_input_stream_read_until_finish (GDataInputStream *stream, * @stop_chars: characters to terminate the read * @stop_chars_len: length of @stop_chars. May be -1 if @stop_chars is * nul-terminated - * @length: a #gsize to get the length of the data read in - * @cancellable: optional #GCancellable object, %NULL to ignore + * @length: (out): a #gsize to get the length of the data read in + * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore * @error: #GError for error reporting * * Reads a string from the data input stream, up to the first @@ -1252,9 +1256,10 @@ g_data_input_stream_read_until_finish (GDataInputStream *stream, * Note that @stop_chars may contain '\0' if @stop_chars_len is * specified. * - * Returns: a string with the data that was read before encountering - * any of the stop characters. Set @length to a #gsize to get the length - * of the string. This function will return %NULL on an error + * Returns: (transfer full): a string with the data that was read + * before encountering any of the stop characters. Set @length to + * a #gsize to get the length of the string. This function will + * return %NULL on an error * * Since: 2.24 */ @@ -1330,9 +1335,9 @@ g_data_input_stream_read_upto (GDataInputStream *stream, * nul-terminated * @io_priority: the I/O priority * of the request. - * @cancellable: optional #GCancellable object, %NULL to ignore - * @callback: callback to call when the request is satisfied - * @user_data: the data to pass to callback function + * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore + * @callback: (scope async): callback to call when the request is satisfied + * @user_data: (closure): the data to pass to callback function * * The asynchronous version of g_data_input_stream_read_upto(). * It is an error to have two outstanding calls to this function. @@ -1373,7 +1378,7 @@ g_data_input_stream_read_upto_async (GDataInputStream *stream, * g_data_input_stream_read_upto_finish: * @stream: a #GDataInputStream * @result: the #GAsyncResult that was provided to the callback - * @length: a #gsize to get the length of the data read in + * @length: (out): a #gsize to get the length of the data read in * @error: #GError for error reporting * * Finish an asynchronous call started by @@ -1383,9 +1388,10 @@ g_data_input_stream_read_upto_async (GDataInputStream *stream, * stop character. You have to use g_data_input_stream_read_byte() to * get it before calling g_data_input_stream_read_upto_async() again. * - * Returns: a string with the data that was read before encountering - * any of the stop characters. Set @length to a #gsize to get the length - * of the string. This function will return %NULL on an error. + * Returns: (transfer full): a string with the data that was read + * before encountering any of the stop characters. Set @length to + * a #gsize to get the length of the string. This function will + * return %NULL on an error. * * Since: 2.24 */ diff --git a/gio/gdataoutputstream.c b/gio/gdataoutputstream.c index b700523b6..e03003b36 100644 --- a/gio/gdataoutputstream.c +++ b/gio/gdataoutputstream.c @@ -210,7 +210,7 @@ g_data_output_stream_get_byte_order (GDataOutputStream *stream) * g_data_output_stream_put_byte: * @stream: a #GDataOutputStream. * @data: a #guchar. - * @cancellable: optional #GCancellable object, %NULL to ignore. + * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore. * @error: a #GError, %NULL to ignore. * * Puts a byte into the output stream. @@ -237,7 +237,7 @@ g_data_output_stream_put_byte (GDataOutputStream *stream, * g_data_output_stream_put_int16: * @stream: a #GDataOutputStream. * @data: a #gint16. - * @cancellable: optional #GCancellable object, %NULL to ignore. + * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore. * @error: a #GError, %NULL to ignore. * * Puts a signed 16-bit integer into the output stream. @@ -277,7 +277,7 @@ g_data_output_stream_put_int16 (GDataOutputStream *stream, * g_data_output_stream_put_uint16: * @stream: a #GDataOutputStream. * @data: a #guint16. - * @cancellable: optional #GCancellable object, %NULL to ignore. + * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore. * @error: a #GError, %NULL to ignore. * * Puts an unsigned 16-bit integer into the output stream. @@ -317,7 +317,7 @@ g_data_output_stream_put_uint16 (GDataOutputStream *stream, * g_data_output_stream_put_int32: * @stream: a #GDataOutputStream. * @data: a #gint32. - * @cancellable: optional #GCancellable object, %NULL to ignore. + * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore. * @error: a #GError, %NULL to ignore. * * Puts a signed 32-bit integer into the output stream. @@ -357,7 +357,7 @@ g_data_output_stream_put_int32 (GDataOutputStream *stream, * g_data_output_stream_put_uint32: * @stream: a #GDataOutputStream. * @data: a #guint32. - * @cancellable: optional #GCancellable object, %NULL to ignore. + * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore. * @error: a #GError, %NULL to ignore. * * Puts an unsigned 32-bit integer into the stream. @@ -397,7 +397,7 @@ g_data_output_stream_put_uint32 (GDataOutputStream *stream, * g_data_output_stream_put_int64: * @stream: a #GDataOutputStream. * @data: a #gint64. - * @cancellable: optional #GCancellable object, %NULL to ignore. + * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore. * @error: a #GError, %NULL to ignore. * * Puts a signed 64-bit integer into the stream. @@ -437,7 +437,7 @@ g_data_output_stream_put_int64 (GDataOutputStream *stream, * g_data_output_stream_put_uint64: * @stream: a #GDataOutputStream. * @data: a #guint64. - * @cancellable: optional #GCancellable object, %NULL to ignore. + * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore. * @error: a #GError, %NULL to ignore. * * Puts an unsigned 64-bit integer into the stream. @@ -477,7 +477,7 @@ g_data_output_stream_put_uint64 (GDataOutputStream *stream, * g_data_output_stream_put_string: * @stream: a #GDataOutputStream. * @str: a string. - * @cancellable: optional #GCancellable object, %NULL to ignore. + * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore. * @error: a #GError, %NULL to ignore. * * Puts a string into the output stream. diff --git a/gio/gdbusconnection.c b/gio/gdbusconnection.c index 7c6a2d07f..809f97640 100644 --- a/gio/gdbusconnection.c +++ b/gio/gdbusconnection.c @@ -1452,7 +1452,8 @@ g_dbus_connection_send_message_unlocked (GDBusConnection *connection, if (out_serial != NULL) *out_serial = serial_to_use; - g_dbus_message_set_serial (message, serial_to_use); + if (!(flags & G_DBUS_SEND_MESSAGE_FLAGS_PRESERVE_SERIAL)) + g_dbus_message_set_serial (message, serial_to_use); g_dbus_message_lock (message); _g_dbus_worker_send_message (connection->worker, diff --git a/gio/gdbusprivate.c b/gio/gdbusprivate.c index 43804a406..5f8f1f432 100644 --- a/gio/gdbusprivate.c +++ b/gio/gdbusprivate.c @@ -430,6 +430,7 @@ struct GDBusWorker gint num_writes_pending; guint64 write_num_messages_written; GList *write_pending_flushes; + gboolean flush_pending; }; /* ---------------------------------------------------------------------------------------------------- */ @@ -1155,6 +1156,12 @@ ostream_flush_cb (GObject *source_object, if (error != NULL) g_error_free (error); + /* Make sure we tell folks that we don't have additional + flushes pending */ + g_mutex_lock (data->worker->write_lock); + data->worker->flush_pending = FALSE; + g_mutex_unlock (data->worker->write_lock); + /* OK, cool, finally kick off the next write */ maybe_write_next_message (data->worker); @@ -1207,6 +1214,10 @@ message_written (GDBusWorker *worker, worker->write_pending_flushes = g_list_delete_link (worker->write_pending_flushes, l); } } + if (flushers != NULL) + { + worker->flush_pending = TRUE; + } g_mutex_unlock (worker->write_lock); if (flushers != NULL) @@ -1341,7 +1352,7 @@ static gboolean write_message_in_idle_cb (gpointer user_data) { GDBusWorker *worker = user_data; - if (worker->num_writes_pending == 0) + if (worker->num_writes_pending == 0 && !worker->flush_pending) maybe_write_next_message (worker); return FALSE; } @@ -1424,6 +1435,7 @@ _g_dbus_worker_new (GIOStream *stream, worker->stream = g_object_ref (stream); worker->capabilities = capabilities; worker->cancellable = g_cancellable_new (); + worker->flush_pending = FALSE; worker->frozen = initially_frozen; worker->received_messages_while_frozen = g_queue_new (); diff --git a/gio/gdesktopappinfo.c b/gio/gdesktopappinfo.c index a7648c984..f55753844 100644 --- a/gio/gdesktopappinfo.c +++ b/gio/gdesktopappinfo.c @@ -69,7 +69,8 @@ static void g_desktop_app_info_iface_init (GAppInfoIface *iface); static GList * get_all_desktop_entries_for_mime_type (const char *base_mime_type, const char **except, - gboolean include_fallback); + gboolean include_fallback, + char **explicit_default); static void mime_info_cache_reload (const char *dir); static gboolean g_desktop_app_info_ensure_saved (GDesktopAppInfo *info, GError **error); @@ -107,6 +108,14 @@ struct _GDesktopAppInfo /* FIXME: what about StartupWMClass ? */ }; +typedef enum { + UPDATE_MIME_NONE = 1 << 0, + UPDATE_MIME_SET_DEFAULT = 1 << 1, + UPDATE_MIME_SET_NON_DEFAULT = 1 << 2, + UPDATE_MIME_REMOVE = 1 << 3, + UPDATE_MIME_SET_LAST_USED = 1 << 4, +} UpdateMimeFlags; + G_DEFINE_TYPE_WITH_CODE (GDesktopAppInfo, g_desktop_app_info, G_TYPE_OBJECT, G_IMPLEMENT_INTERFACE (G_TYPE_APP_INFO, g_desktop_app_info_iface_init)) @@ -871,18 +880,17 @@ prepend_terminal_to_vector (int *argc, } static GList * -uri_list_segment_to_files (GList *start, - GList *end) +create_files_for_uris (GList *uris) { GList *res; - GFile *file; + GList *iter; res = NULL; - while (start != NULL && start != end) + + for (iter = uris; iter; iter = iter->next) { - file = g_file_new_for_uri ((char *)start->data); + GFile *file = g_file_new_for_uri ((char *)iter->data); res = g_list_prepend (res, file); - start = start->next; } return g_list_reverse (res); @@ -890,6 +898,8 @@ uri_list_segment_to_files (GList *start, typedef struct { + GSpawnChildSetupFunc user_setup; + gpointer user_setup_data; char *display; char *sn_id; char *desktop_file; @@ -915,18 +925,79 @@ child_setup (gpointer user_data) g_snprintf (pid, 20, "%ld", (long)getpid ()); g_setenv ("GIO_LAUNCHED_DESKTOP_FILE_PID", pid, TRUE); } + + if (data->user_setup) + data->user_setup (data->user_setup_data); } +static void +notify_desktop_launch (GDBusConnection *session_bus, + GDesktopAppInfo *info, + long pid, + const char *display, + const char *sn_id, + GList *uris) +{ + GDBusMessage *msg; + GVariantBuilder uri_variant; + GVariantBuilder extras_variant; + GList *iter; + const char *desktop_file_id; + + if (session_bus == NULL) + return; + + g_variant_builder_init (&uri_variant, G_VARIANT_TYPE ("as")); + for (iter = uris; iter; iter = iter->next) + g_variant_builder_add (&uri_variant, "s", iter->data); + + g_variant_builder_init (&extras_variant, G_VARIANT_TYPE ("a{sv}")); + if (sn_id != NULL && g_utf8_validate (sn_id, -1, NULL)) + g_variant_builder_add (&extras_variant, "{sv}", + "startup-id", + g_variant_new ("s", + sn_id)); + + if (info->filename) + desktop_file_id = info->filename; + else if (info->desktop_id) + desktop_file_id = info->desktop_id; + else + desktop_file_id = ""; + + msg = g_dbus_message_new_signal ("/org/gtk/gio/DesktopAppInfo", + "org.gtk.gio.DesktopAppInfo", + "Launched"); + g_dbus_message_set_body (msg, g_variant_new ("(@aysxasa{sv})", + g_variant_new_bytestring (desktop_file_id), + display ? display : "", + (gint64)pid, + &uri_variant, + &extras_variant)); + g_dbus_connection_send_message (session_bus, + msg, 0, + NULL, + NULL); + g_object_unref (msg); +} + +#define _SPAWN_FLAGS_DEFAULT (G_SPAWN_SEARCH_PATH) + static gboolean -g_desktop_app_info_launch_uris (GAppInfo *appinfo, - GList *uris, - GAppLaunchContext *launch_context, - GError **error) +_g_desktop_app_info_launch_uris_internal (GAppInfo *appinfo, + GList *uris, + GAppLaunchContext *launch_context, + GSpawnFlags spawn_flags, + GSpawnChildSetupFunc user_setup, + gpointer user_setup_data, + GDesktopAppLaunchCallback pid_callback, + gpointer pid_callback_data, + GError **error) { GDesktopAppInfo *info = G_DESKTOP_APP_INFO (appinfo); + GDBusConnection *session_bus; gboolean completed = FALSE; GList *old_uris; - GList *launched_files; char **argv; int argc; ChildSetupData data; @@ -935,12 +1006,24 @@ g_desktop_app_info_launch_uris (GAppInfo *appinfo, argv = NULL; + session_bus = g_bus_get_sync (G_BUS_TYPE_SESSION, NULL, NULL); + do { + GPid pid; + GList *launched_uris; + GList *iter; + old_uris = uris; if (!expand_application_parameters (info, &uris, &argc, &argv, error)) goto out; + + /* Get the subset of URIs we're launching with this process */ + launched_uris = NULL; + for (iter = old_uris; iter != NULL && iter != uris; iter = iter->next) + launched_uris = g_list_prepend (launched_uris, iter->data); + launched_uris = g_list_reverse (launched_uris); if (info->terminal && !prepend_terminal_to_vector (&argc, &argv)) { @@ -949,13 +1032,15 @@ g_desktop_app_info_launch_uris (GAppInfo *appinfo, goto out; } + data.user_setup = user_setup; + data.user_setup_data = user_setup_data; data.display = NULL; data.sn_id = NULL; data.desktop_file = info->filename; if (launch_context) { - launched_files = uri_list_segment_to_files (old_uris, uris); + GList *launched_files = create_files_for_uris (launched_uris); data.display = g_app_launch_context_get_display (launch_context, appinfo, @@ -972,10 +1057,10 @@ g_desktop_app_info_launch_uris (GAppInfo *appinfo, if (!g_spawn_async (info->path, argv, NULL, - G_SPAWN_SEARCH_PATH, + spawn_flags, child_setup, &data, - NULL, + &pid, error)) { if (data.sn_id) @@ -983,18 +1068,36 @@ g_desktop_app_info_launch_uris (GAppInfo *appinfo, g_free (data.sn_id); g_free (data.display); + g_list_free (launched_uris); goto out; } + if (pid_callback != NULL) + pid_callback (info, pid, pid_callback_data); + + notify_desktop_launch (session_bus, + info, + pid, + data.display, + data.sn_id, + launched_uris); + g_free (data.sn_id); g_free (data.display); + g_list_free (launched_uris); g_strfreev (argv); argv = NULL; } while (uris != NULL); + /* TODO - need to handle the process exiting immediately + * after launching an app. See http://bugzilla.gnome.org/606960 + */ + if (session_bus != NULL) + g_object_unref (session_bus); + completed = TRUE; out: @@ -1003,6 +1106,19 @@ g_desktop_app_info_launch_uris (GAppInfo *appinfo, return completed; } +static gboolean +g_desktop_app_info_launch_uris (GAppInfo *appinfo, + GList *uris, + GAppLaunchContext *launch_context, + GError **error) +{ + return _g_desktop_app_info_launch_uris_internal (appinfo, uris, + launch_context, + _SPAWN_FLAGS_DEFAULT, + NULL, NULL, NULL, NULL, + error); +} + static gboolean g_desktop_app_info_supports_uris (GAppInfo *appinfo) { @@ -1051,6 +1167,56 @@ g_desktop_app_info_launch (GAppInfo *appinfo, return res; } +/** + * g_desktop_app_info_launch_uris_as_manager: + * @appinfo: a #GDesktopAppInfo + * @uris: (element-type utf8): List of URIs + * @launch_context: a #GAppLaunchContext + * @spawn_flags: #GSpawnFlags, used for each process + * @user_setup: (scope call): a #GSpawnChildSetupFunc, used once for + * each process. + * @user_setup_data: (closure user_setup): User data for @user_setup + * @pid_callback: (scope call): Callback for child processes + * @pid_callback_data: (closure pid_callback): User data for @callback + * @error: a #GError + * + * This function performs the equivalent of g_app_info_launch_uris(), + * but is intended primarily for operating system components that + * launch applications. Ordinary applications should use + * g_app_info_launch_uris(). + * + * In contrast to g_app_info_launch_uris(), all processes created will + * always be run directly as children as if by the UNIX fork()/exec() + * calls. + * + * This guarantee allows additional control over the exact environment + * of the child processes, which is provided via a setup function + * @setup, as well as the process identifier of each child process via + * @pid_callback. See g_spawn_async() for more information about the + * semantics of the @setup function. + */ +gboolean +g_desktop_app_info_launch_uris_as_manager (GDesktopAppInfo *appinfo, + GList *uris, + GAppLaunchContext *launch_context, + GSpawnFlags spawn_flags, + GSpawnChildSetupFunc user_setup, + gpointer user_setup_data, + GDesktopAppLaunchCallback pid_callback, + gpointer pid_callback_data, + GError **error) +{ + return _g_desktop_app_info_launch_uris_internal ((GAppInfo*)appinfo, + uris, + launch_context, + spawn_flags, + user_setup, + user_setup_data, + pid_callback, + pid_callback_data, + error); +} + G_LOCK_DEFINE_STATIC (g_desktop_env); static gchar *g_desktop_env = NULL; @@ -1169,25 +1335,24 @@ ensure_dir (DirType type, static gboolean update_mimeapps_list (const char *desktop_id, - const char *content_type, - gboolean add_as_default, - gboolean add_non_default, - gboolean remove, + const char *content_type, + UpdateMimeFlags flags, GError **error) { - char *dirname, *filename; + char *dirname, *filename, *string; GKeyFile *key_file; - gboolean load_succeeded, res; + gboolean load_succeeded, res, explicit_default; char **old_list, **list; - GList *system_list, *l; + GList *system_list; gsize length, data_size; char *data; int i, j, k; char **content_types; /* Don't add both at start and end */ - g_assert (!(add_as_default && add_non_default)); - + g_assert (!((flags & UPDATE_MIME_SET_DEFAULT) && + (flags & UPDATE_MIME_SET_NON_DEFAULT))); + dirname = ensure_dir (APP_DIR, error); if (!dirname) return FALSE; @@ -1211,9 +1376,57 @@ update_mimeapps_list (const char *desktop_id, } else { - content_types = g_key_file_get_keys (key_file, ADDED_ASSOCIATIONS_GROUP, NULL, NULL); + content_types = g_key_file_get_keys (key_file, DEFAULT_APPLICATIONS_GROUP, NULL, NULL); } + explicit_default = FALSE; + + for (k = 0; content_types && content_types[k]; k++) + { + /* set as default, if requested so */ + string = g_key_file_get_string (key_file, + DEFAULT_APPLICATIONS_GROUP, + content_types[k], + NULL); + + if (g_strcmp0 (string, desktop_id) != 0 && + (flags & UPDATE_MIME_SET_DEFAULT)) + { + g_free (string); + string = g_strdup (desktop_id); + + /* add in the non-default list too, if it's not already there */ + flags |= UPDATE_MIME_SET_NON_DEFAULT; + } + + if (string == NULL || desktop_id == NULL) + g_key_file_remove_key (key_file, + DEFAULT_APPLICATIONS_GROUP, + content_types[k], + NULL); + else + { + g_key_file_set_string (key_file, + DEFAULT_APPLICATIONS_GROUP, + content_types[k], + string); + + explicit_default = TRUE; + } + + g_free (string); + } + + if (content_type) + { + /* reuse the list from above */ + } + else + { + g_strfreev (content_types); + content_types = g_key_file_get_keys (key_file, ADDED_ASSOCIATIONS_GROUP, NULL, NULL); + } + for (k = 0; content_types && content_types[k]; k++) { /* Add to the right place in the list */ @@ -1225,48 +1438,41 @@ update_mimeapps_list (const char *desktop_id, list = g_new (char *, 1 + length + 1); i = 0; - if (add_as_default) - list[i++] = g_strdup (desktop_id); + + /* if we're adding a last-used hint, just put the application in front of the list */ + if (flags & UPDATE_MIME_SET_LAST_USED) + { + /* avoid adding this again as non-default later */ + if (flags & UPDATE_MIME_SET_NON_DEFAULT) + flags ^= UPDATE_MIME_SET_NON_DEFAULT; + + list[i++] = g_strdup (desktop_id); + } + if (old_list) { for (j = 0; old_list[j] != NULL; j++) { if (g_strcmp0 (old_list[j], desktop_id) != 0) - list[i++] = g_strdup (old_list[j]); - else if (add_non_default) + { + /* rewrite other entries if they're different from the new one */ + list[i++] = g_strdup (old_list[j]); + } + else if (flags & UPDATE_MIME_SET_NON_DEFAULT) { - /* If adding as non-default, and it's already in, - don't change order of desktop ids */ - add_non_default = FALSE; + /* we encountered an old entry which is equal to the one we're adding as non-default, + * don't change its position in the list. + */ + flags ^= UPDATE_MIME_SET_NON_DEFAULT; list[i++] = g_strdup (old_list[j]); } } } - - if (add_non_default) - { - /* We're adding as non-default, and it wasn't already in the list, - so we add at the end. But to avoid listing the app before the - current system default (thus changing the default) we have to - add the current list of (not yet listed) apps before it. */ - list[i] = NULL; /* Terminate current list so we can use it */ - system_list = get_all_desktop_entries_for_mime_type (content_type, (const char **)list, FALSE); + /* add it at the end of the list */ + if (flags & UPDATE_MIME_SET_NON_DEFAULT) + list[i++] = g_strdup (desktop_id); - list = g_renew (char *, list, 1 + length + g_list_length (system_list) + 1); - - for (l = system_list; l != NULL; l = l->next) - { - list[i++] = l->data; /* no strdup, taking ownership */ - if (g_strcmp0 (l->data, desktop_id) == 0) - add_non_default = FALSE; - } - g_list_free (system_list); - - if (add_non_default) - list[i++] = g_strdup (desktop_id); - } - list[i] = NULL; g_strfreev (old_list); @@ -1277,10 +1483,32 @@ update_mimeapps_list (const char *desktop_id, content_types[k], NULL); else - g_key_file_set_string_list (key_file, - ADDED_ASSOCIATIONS_GROUP, - content_types[k], - (const char * const *)list, i); + { + g_key_file_set_string_list (key_file, + ADDED_ASSOCIATIONS_GROUP, + content_types[k], + (const char * const *)list, i); + + /* if we had no explicit default set, we should add the system default to the + * list, to avoid overriding it with applications from this list. + */ + if (!explicit_default) + { + system_list = get_all_desktop_entries_for_mime_type (content_type, (const char **) list, FALSE, NULL); + + if (system_list != NULL) + { + string = system_list->data; + + g_key_file_set_string (key_file, + DEFAULT_APPLICATIONS_GROUP, + content_types[k], + string); + } + + g_list_free_full (system_list, g_free); + } + } g_strfreev (list); } @@ -1306,7 +1534,7 @@ update_mimeapps_list (const char *desktop_id, list = g_new (char *, 1 + length + 1); i = 0; - if (remove) + if (flags & UPDATE_MIME_REMOVE) list[i++] = g_strdup (desktop_id); if (old_list) { @@ -1333,7 +1561,7 @@ update_mimeapps_list (const char *desktop_id, g_strfreev (list); } - + g_strfreev (content_types); data = g_key_file_to_data (key_file, &data_size, error); @@ -1349,6 +1577,23 @@ update_mimeapps_list (const char *desktop_id, return res; } +static gboolean +g_desktop_app_info_set_as_last_used_for_type (GAppInfo *appinfo, + const char *content_type, + GError **error) +{ + GDesktopAppInfo *info = G_DESKTOP_APP_INFO (appinfo); + + if (!g_desktop_app_info_ensure_saved (info, error)) + return FALSE; + + /* both add support for the content type and set as last used */ + return update_mimeapps_list (info->desktop_id, content_type, + UPDATE_MIME_SET_NON_DEFAULT | + UPDATE_MIME_SET_LAST_USED, + error); +} + static gboolean g_desktop_app_info_set_as_default_for_type (GAppInfo *appinfo, const char *content_type, @@ -1359,7 +1604,9 @@ g_desktop_app_info_set_as_default_for_type (GAppInfo *appinfo, if (!g_desktop_app_info_ensure_saved (info, error)) return FALSE; - return update_mimeapps_list (info->desktop_id, content_type, TRUE, FALSE, FALSE, error); + return update_mimeapps_list (info->desktop_id, content_type, + UPDATE_MIME_SET_DEFAULT, + error); } static void @@ -1476,7 +1723,9 @@ g_desktop_app_info_add_supports_type (GAppInfo *appinfo, if (!g_desktop_app_info_ensure_saved (G_DESKTOP_APP_INFO (info), error)) return FALSE; - return update_mimeapps_list (info->desktop_id, content_type, FALSE, TRUE, FALSE, error); + return update_mimeapps_list (info->desktop_id, content_type, + UPDATE_MIME_SET_NON_DEFAULT, + error); } static gboolean @@ -1495,7 +1744,9 @@ g_desktop_app_info_remove_supports_type (GAppInfo *appinfo, if (!g_desktop_app_info_ensure_saved (G_DESKTOP_APP_INFO (info), error)) return FALSE; - return update_mimeapps_list (info->desktop_id, content_type, FALSE, FALSE, TRUE, error); + return update_mimeapps_list (info->desktop_id, content_type, + UPDATE_MIME_REMOVE, + error); } static gboolean @@ -1616,7 +1867,9 @@ g_desktop_app_info_delete (GAppInfo *appinfo) { if (g_remove (info->filename) == 0) { - update_mimeapps_list (info->desktop_id, NULL, FALSE, FALSE, FALSE, NULL); + update_mimeapps_list (info->desktop_id, NULL, + UPDATE_MIME_NONE, + NULL); g_free (info->filename); info->filename = NULL; @@ -1709,6 +1962,7 @@ g_desktop_app_info_iface_init (GAppInfoIface *iface) iface->do_delete = g_desktop_app_info_delete; iface->get_commandline = g_desktop_app_info_get_commandline; iface->get_display_name = g_desktop_app_info_get_display_name; + iface->set_as_last_used_for_type = g_desktop_app_info_set_as_last_used_for_type; } static gboolean @@ -1731,6 +1985,9 @@ app_info_in_list (GAppInfo *info, * Gets a list of recommended #GAppInfos for a given content type, i.e. * those applications which claim to support the given content type exactly, * and not by MIME type subclassing. + * Note that the first application of the list is the last used one, i.e. + * the last one for which #g_app_info_set_as_last_used_for_type has been + * called. * * Returns: (element-type GAppInfo) (transfer full): #GList of #GAppInfos * for given @content_type or %NULL on error. @@ -1746,7 +2003,7 @@ g_app_info_get_recommended_for_type (const gchar *content_type) g_return_val_if_fail (content_type != NULL, NULL); - desktop_entries = get_all_desktop_entries_for_mime_type (content_type, NULL, FALSE); + desktop_entries = get_all_desktop_entries_for_mime_type (content_type, NULL, FALSE, NULL); infos = NULL; for (l = desktop_entries; l != NULL; l = l->next) @@ -1765,7 +2022,7 @@ g_app_info_get_recommended_for_type (const gchar *content_type) } g_list_free (desktop_entries); - + return g_list_reverse (infos); } @@ -1791,7 +2048,7 @@ g_app_info_get_fallback_for_type (const gchar *content_type) g_return_val_if_fail (content_type != NULL, NULL); - desktop_entries = get_all_desktop_entries_for_mime_type (content_type, NULL, TRUE); + desktop_entries = get_all_desktop_entries_for_mime_type (content_type, NULL, TRUE, NULL); recommended_infos = g_app_info_get_recommended_for_type (content_type); infos = NULL; @@ -1831,13 +2088,25 @@ g_app_info_get_all_for_type (const char *content_type) { GList *desktop_entries, *l; GList *infos; + char *user_default = NULL; GDesktopAppInfo *info; g_return_val_if_fail (content_type != NULL, NULL); - desktop_entries = get_all_desktop_entries_for_mime_type (content_type, NULL, TRUE); - + desktop_entries = get_all_desktop_entries_for_mime_type (content_type, NULL, TRUE, &user_default); infos = NULL; + + /* put the user default in front of the list, for compatibility */ + if (user_default != NULL) + { + info = g_desktop_app_info_new (user_default); + + if (info != NULL) + infos = g_list_prepend (infos, info); + } + + g_free (user_default); + for (l = desktop_entries; l != NULL; l = l->next) { char *desktop_entry = l->data; @@ -1872,7 +2141,9 @@ g_app_info_get_all_for_type (const char *content_type) void g_app_info_reset_type_associations (const char *content_type) { - update_mimeapps_list (NULL, content_type, FALSE, FALSE, FALSE, NULL); + update_mimeapps_list (NULL, content_type, + UPDATE_MIME_NONE, + NULL); } /** @@ -1883,20 +2154,48 @@ g_app_info_reset_type_associations (const char *content_type) * * Gets the #GAppInfo that corresponds to a given content type. * - * Returns: #GAppInfo for given @content_type or %NULL on error. + * Returns: (transfer full): #GAppInfo for given @content_type or + * %NULL on error. **/ GAppInfo * g_app_info_get_default_for_type (const char *content_type, gboolean must_support_uris) { GList *desktop_entries, *l; + char *user_default = NULL; GAppInfo *info; g_return_val_if_fail (content_type != NULL, NULL); - desktop_entries = get_all_desktop_entries_for_mime_type (content_type, NULL, TRUE); + desktop_entries = get_all_desktop_entries_for_mime_type (content_type, NULL, TRUE, &user_default); info = NULL; + + if (user_default != NULL) + { + info = (GAppInfo *) g_desktop_app_info_new (user_default); + + if (info) + { + if (must_support_uris && !g_app_info_supports_uris (info)) + { + g_object_unref (info); + info = NULL; + } + } + } + + g_free (user_default); + + if (info != NULL) + { + g_list_free_full (desktop_entries, g_free); + return info; + } + + /* pick the first from the other list that matches our URI + * requirements. + */ for (l = desktop_entries; l != NULL; l = l->next) { char *desktop_entry = l->data; @@ -1914,9 +2213,8 @@ g_app_info_get_default_for_type (const char *content_type, } } - g_list_foreach (desktop_entries, (GFunc)g_free, NULL); - g_list_free (desktop_entries); - + g_list_free_full (desktop_entries, g_free); + return info; } @@ -1929,7 +2227,7 @@ g_app_info_get_default_for_type (const char *content_type, * of the URI, up to but not including the ':', e.g. "http", * "ftp" or "sip". * - * Returns: #GAppInfo for given @uri_scheme or %NULL on error. + * Returns: (transfer full): #GAppInfo for given @uri_scheme or %NULL on error. **/ GAppInfo * g_app_info_get_default_for_uri_scheme (const char *uri_scheme) @@ -2066,6 +2364,7 @@ typedef struct { GHashTable *defaults_list_map; GHashTable *mimeapps_list_added_map; GHashTable *mimeapps_list_removed_map; + GHashTable *mimeapps_list_defaults_map; time_t mime_info_cache_timestamp; time_t defaults_list_timestamp; time_t mimeapps_list_timestamp; @@ -2318,6 +2617,7 @@ mime_info_cache_dir_init_mimeapps_list (MimeInfoCacheDir *dir) gchar *filename, **mime_types; char *unaliased_type; char **desktop_file_ids; + char *desktop_id; int i; struct stat buf; @@ -2339,6 +2639,11 @@ mime_info_cache_dir_init_mimeapps_list (MimeInfoCacheDir *dir) dir->mimeapps_list_removed_map = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, (GDestroyNotify)g_strfreev); + if (dir->mimeapps_list_defaults_map != NULL) + g_hash_table_destroy (dir->mimeapps_list_defaults_map); + dir->mimeapps_list_defaults_map = g_hash_table_new_full (g_str_hash, g_str_equal, + g_free, g_free); + key_file = g_key_file_new (); filename = g_build_filename (dir->path, "mimeapps.list", NULL); @@ -2403,6 +2708,28 @@ mime_info_cache_dir_init_mimeapps_list (MimeInfoCacheDir *dir) g_strfreev (mime_types); } + mime_types = g_key_file_get_keys (key_file, DEFAULT_APPLICATIONS_GROUP, + NULL, NULL); + if (mime_types != NULL) + { + for (i = 0; mime_types[i] != NULL; i++) + { + desktop_id = g_key_file_get_string (key_file, + DEFAULT_APPLICATIONS_GROUP, + mime_types[i], + NULL); + if (desktop_id == NULL) + continue; + + unaliased_type = _g_unix_content_type_unalias (mime_types[i]); + g_hash_table_replace (dir->mimeapps_list_defaults_map, + unaliased_type, + desktop_id); + } + + g_strfreev (mime_types); + } + g_key_file_free (key_file); return; @@ -2458,7 +2785,13 @@ mime_info_cache_dir_free (MimeInfoCacheDir *dir) g_hash_table_destroy (dir->mimeapps_list_removed_map); dir->mimeapps_list_removed_map = NULL; } - + + if (dir->mimeapps_list_defaults_map != NULL) + { + g_hash_table_destroy (dir->mimeapps_list_defaults_map); + dir->mimeapps_list_defaults_map = NULL; + } + g_free (dir); } @@ -2635,13 +2968,15 @@ append_desktop_entry (GList *list, * to handle @mime_type. */ static GList * -get_all_desktop_entries_for_mime_type (const char *base_mime_type, +get_all_desktop_entries_for_mime_type (const char *base_mime_type, const char **except, - gboolean include_fallback) + gboolean include_fallback, + char **explicit_default) { GList *desktop_entries, *removed_entries, *list, *dir_list, *tmp; MimeInfoCacheDir *dir; - char *mime_type; + char *mime_type, *default_entry = NULL; + const char *entry; char **mime_types; char **default_entries; char **removed_associations; @@ -2696,17 +3031,27 @@ get_all_desktop_entries_for_mime_type (const char *base_mime_type, { mime_type = mime_types[i]; - /* Go through all apps listed as defaults */ + /* Go through all apps listed in user and system dirs */ for (dir_list = mime_info_cache->dirs; dir_list != NULL; dir_list = dir_list->next) { dir = dir_list->data; - /* First added associations from mimeapps.list */ + /* Pick the explicit default application */ + entry = g_hash_table_lookup (dir->mimeapps_list_defaults_map, mime_type); + + if (entry != NULL) + { + /* Save the default entry if it's the first one we encounter */ + if (default_entry == NULL) + default_entry = g_strdup (entry); + } + + /* Then added associations from mimeapps.list */ default_entries = g_hash_table_lookup (dir->mimeapps_list_added_map, mime_type); for (j = 0; default_entries != NULL && default_entries[j] != NULL; j++) - desktop_entries = append_desktop_entry (desktop_entries, default_entries[j], removed_entries); + desktop_entries = append_desktop_entry (desktop_entries, default_entries[j], removed_entries); /* Then removed associations from mimeapps.list */ removed_associations = g_hash_table_lookup (dir->mimeapps_list_removed_map, mime_type); @@ -2736,9 +3081,14 @@ get_all_desktop_entries_for_mime_type (const char *base_mime_type, g_strfreev (mime_types); + if (explicit_default != NULL) + *explicit_default = default_entry; + else + g_free (default_entry); + g_list_foreach (removed_entries, (GFunc)g_free, NULL); g_list_free (removed_entries); - + desktop_entries = g_list_reverse (desktop_entries); return desktop_entries; diff --git a/gio/gdesktopappinfo.h b/gio/gdesktopappinfo.h index 6be936904..162cbb6d6 100644 --- a/gio/gdesktopappinfo.h +++ b/gio/gdesktopappinfo.h @@ -93,6 +93,30 @@ GType g_desktop_app_info_lookup_get_type (void) G_GNUC_CON GAppInfo *g_desktop_app_info_lookup_get_default_for_uri_scheme (GDesktopAppInfoLookup *lookup, const char *uri_scheme); +/** + * GDesktopAppLaunchCallback: + * @appinfo: a #GDesktopAppInfo + * @pid: Process identifier + * @user_data: User data + * + * During invocation, g_desktop_app_info_launch_uris_as_manager() may + * create one or more child processes. This callback is invoked once + * for each, providing the process ID. + */ +typedef void (*GDesktopAppLaunchCallback) (GDesktopAppInfo *appinfo, + GPid pid, + gpointer user_data); + +gboolean g_desktop_app_info_launch_uris_as_manager (GDesktopAppInfo *appinfo, + GList *uris, + GAppLaunchContext *launch_context, + GSpawnFlags spawn_flags, + GSpawnChildSetupFunc user_setup, + gpointer user_setup_data, + GDesktopAppLaunchCallback pid_callback, + gpointer pid_callback_data, + GError **error); + #endif /* G_DISABLE_DEPRECATED */ G_END_DECLS diff --git a/gio/gdrive.c b/gio/gdrive.c index 5d6efdc0b..b4a616450 100644 --- a/gio/gdrive.c +++ b/gio/gdrive.c @@ -331,8 +331,8 @@ g_drive_can_poll_for_media (GDrive *drive) * g_drive_eject: * @drive: a #GDrive. * @flags: flags affecting the unmount if required for eject - * @cancellable: optional #GCancellable object, %NULL to ignore. - * @callback: a #GAsyncReadyCallback, or %NULL. + * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore. + * @callback: (allow-none): a #GAsyncReadyCallback, or %NULL. * @user_data: user data to pass to @callback * * Asynchronously ejects a drive. @@ -407,9 +407,10 @@ g_drive_eject_finish (GDrive *drive, * g_drive_eject_with_operation: * @drive: a #GDrive. * @flags: flags affecting the unmount if required for eject - * @mount_operation: a #GMountOperation or %NULL to avoid user interaction. - * @cancellable: optional #GCancellable object, %NULL to ignore. - * @callback: a #GAsyncReadyCallback, or %NULL. + * @mount_operation: (allow-none): a #GMountOperation or %NULL to avoid + * user interaction. + * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore. + * @callback: (allow-none): a #GAsyncReadyCallback, or %NULL. * @user_data: user data passed to @callback. * * Ejects a drive. This is an asynchronous operation, and is @@ -491,8 +492,8 @@ g_drive_eject_with_operation_finish (GDrive *drive, /** * g_drive_poll_for_media: * @drive: a #GDrive. - * @cancellable: optional #GCancellable object, %NULL to ignore. - * @callback: a #GAsyncReadyCallback, or %NULL. + * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore. + * @callback: (allow-none): a #GAsyncReadyCallback, or %NULL. * @user_data: user data to pass to @callback * * Asynchronously polls @drive to see if media has been inserted or removed. @@ -594,8 +595,9 @@ g_drive_get_identifier (GDrive *drive, * Use g_drive_get_identifer() to obtain the identifiers * themselves. * - * Returns: (transfer full): a %NULL-terminated array of strings containing - * kinds of identifiers. Use g_strfreev() to free. + * Returns: (transfer full) (array zero-terminated=1): a %NULL-terminated + * array of strings containing kinds of identifiers. Use g_strfreev() + * to free. */ char ** g_drive_enumerate_identifiers (GDrive *drive) @@ -691,9 +693,10 @@ g_drive_can_start_degraded (GDrive *drive) * g_drive_start: * @drive: a #GDrive. * @flags: flags affecting the start operation. - * @mount_operation: a #GMountOperation or %NULL to avoid user interaction. - * @cancellable: optional #GCancellable object, %NULL to ignore. - * @callback: a #GAsyncReadyCallback, or %NULL. + * @mount_operation: (allow-none): a #GMountOperation or %NULL to avoid + * user interaction. + * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore. + * @callback: (allow-none): a #GAsyncReadyCallback, or %NULL. * @user_data: user data to pass to @callback * * Asynchronously starts a drive. @@ -793,9 +796,10 @@ g_drive_can_stop (GDrive *drive) * g_drive_stop: * @drive: a #GDrive. * @flags: flags affecting the unmount if required for stopping. - * @mount_operation: a #GMountOperation or %NULL to avoid user interaction. - * @cancellable: optional #GCancellable object, %NULL to ignore. - * @callback: a #GAsyncReadyCallback, or %NULL. + * @mount_operation: (allow-none): a #GMountOperation or %NULL to avoid + * user interaction. + * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore. + * @callback: (allow-none): a #GAsyncReadyCallback, or %NULL. * @user_data: user data to pass to @callback * * Asynchronously stops a drive. diff --git a/gio/gdummytlsbackend.c b/gio/gdummytlsbackend.c index fd55aa9e5..f297f7401 100644 --- a/gio/gdummytlsbackend.c +++ b/gio/gdummytlsbackend.c @@ -92,10 +92,11 @@ enum { PROP_CERTIFICATE_0, - PROP_CERTIFICATE, - PROP_CERTIFICATE_PEM, - PROP_PRIVATE_KEY, - PROP_PRIVATE_KEY_PEM + PROP_CERT_CERTIFICATE, + PROP_CERT_CERTIFICATE_PEM, + PROP_CERT_PRIVATE_KEY, + PROP_CERT_PRIVATE_KEY_PEM, + PROP_CERT_ISSUER }; static void g_dummy_tls_certificate_initable_iface_init (GInitableIface *iface); @@ -134,10 +135,11 @@ g_dummy_tls_certificate_class_init (GDummyTlsCertificateClass *certificate_class gobject_class->get_property = g_dummy_tls_certificate_get_property; gobject_class->set_property = g_dummy_tls_certificate_set_property; - g_object_class_override_property (gobject_class, PROP_CERTIFICATE, "certificate"); - g_object_class_override_property (gobject_class, PROP_CERTIFICATE_PEM, "certificate-pem"); - g_object_class_override_property (gobject_class, PROP_PRIVATE_KEY, "private-key"); - g_object_class_override_property (gobject_class, PROP_PRIVATE_KEY_PEM, "private-key-pem"); + g_object_class_override_property (gobject_class, PROP_CERT_CERTIFICATE, "certificate"); + g_object_class_override_property (gobject_class, PROP_CERT_CERTIFICATE_PEM, "certificate-pem"); + g_object_class_override_property (gobject_class, PROP_CERT_PRIVATE_KEY, "private-key"); + g_object_class_override_property (gobject_class, PROP_CERT_PRIVATE_KEY_PEM, "private-key-pem"); + g_object_class_override_property (gobject_class, PROP_CERT_ISSUER, "issuer"); } static void @@ -150,7 +152,7 @@ g_dummy_tls_certificate_initable_init (GInitable *initable, GCancellable *cancellable, GError **error) { - g_set_error_literal (error, G_TLS_ERROR, G_TLS_ERROR_MISC, + g_set_error_literal (error, G_TLS_ERROR, G_TLS_ERROR_UNAVAILABLE, _("TLS support is not available")); return FALSE; } @@ -181,14 +183,18 @@ enum { PROP_CONNECTION_0, - PROP_BASE_IO_STREAM, - PROP_REQUIRE_CLOSE_NOTIFY, - PROP_REHANDSHAKE_MODE, - PROP_VALIDATION_FLAGS, - PROP_SERVER_IDENTITY, - PROP_USE_SSL3, - PROP_ACCEPTED_CAS, - PROP_AUTHENTICATION_MODE + PROP_CONN_BASE_IO_STREAM, + PROP_CONN_USE_SYSTEM_CERTDB, + PROP_CONN_REQUIRE_CLOSE_NOTIFY, + PROP_CONN_REHANDSHAKE_MODE, + PROP_CONN_CERTIFICATE, + PROP_CONN_PEER_CERTIFICATE, + PROP_CONN_PEER_CERTIFICATE_ERRORS, + PROP_CONN_VALIDATION_FLAGS, + PROP_CONN_SERVER_IDENTITY, + PROP_CONN_USE_SSL3, + PROP_CONN_ACCEPTED_CAS, + PROP_CONN_AUTHENTICATION_MODE }; static void g_dummy_tls_connection_initable_iface_init (GInitableIface *iface); @@ -240,15 +246,18 @@ g_dummy_tls_connection_class_init (GDummyTlsConnectionClass *connection_class) */ io_stream_class->close_fn = g_dummy_tls_connection_close; - g_object_class_override_property (gobject_class, PROP_BASE_IO_STREAM, "base-io-stream"); - g_object_class_override_property (gobject_class, PROP_REQUIRE_CLOSE_NOTIFY, "require-close-notify"); - g_object_class_override_property (gobject_class, PROP_REHANDSHAKE_MODE, "rehandshake-mode"); - g_object_class_override_property (gobject_class, PROP_VALIDATION_FLAGS, "validation-flags"); - g_object_class_override_property (gobject_class, PROP_SERVER_IDENTITY, "server-identity"); - g_object_class_override_property (gobject_class, PROP_USE_SSL3, "use-ssl3"); - g_object_class_override_property (gobject_class, PROP_ACCEPTED_CAS, "accepted-cas"); - g_object_class_override_property (gobject_class, PROP_AUTHENTICATION_MODE, "authentication-mode"); - + g_object_class_override_property (gobject_class, PROP_CONN_BASE_IO_STREAM, "base-io-stream"); + g_object_class_override_property (gobject_class, PROP_CONN_USE_SYSTEM_CERTDB, "use-system-certdb"); + g_object_class_override_property (gobject_class, PROP_CONN_REQUIRE_CLOSE_NOTIFY, "require-close-notify"); + g_object_class_override_property (gobject_class, PROP_CONN_REHANDSHAKE_MODE, "rehandshake-mode"); + g_object_class_override_property (gobject_class, PROP_CONN_CERTIFICATE, "certificate"); + g_object_class_override_property (gobject_class, PROP_CONN_PEER_CERTIFICATE, "peer-certificate"); + g_object_class_override_property (gobject_class, PROP_CONN_PEER_CERTIFICATE_ERRORS, "peer-certificate-errors"); + g_object_class_override_property (gobject_class, PROP_CONN_VALIDATION_FLAGS, "validation-flags"); + g_object_class_override_property (gobject_class, PROP_CONN_SERVER_IDENTITY, "server-identity"); + g_object_class_override_property (gobject_class, PROP_CONN_USE_SSL3, "use-ssl3"); + g_object_class_override_property (gobject_class, PROP_CONN_ACCEPTED_CAS, "accepted-cas"); + g_object_class_override_property (gobject_class, PROP_CONN_AUTHENTICATION_MODE, "authentication-mode"); } static void @@ -261,7 +270,7 @@ g_dummy_tls_connection_initable_init (GInitable *initable, GCancellable *cancellable, GError **error) { - g_set_error_literal (error, G_TLS_ERROR, G_TLS_ERROR_MISC, + g_set_error_literal (error, G_TLS_ERROR, G_TLS_ERROR_UNAVAILABLE, _("TLS support is not available")); return FALSE; } diff --git a/gio/gemblem.c b/gio/gemblem.c index 68afbab76..1df712b6a 100644 --- a/gio/gemblem.c +++ b/gio/gemblem.c @@ -220,8 +220,8 @@ g_emblem_new_with_origin (GIcon *icon, * * Gives back the icon from @emblem. * - * Returns: (transfer full): a #GIcon. The returned object belongs to the emblem - * and should not be modified or freed. + * Returns: (transfer none): a #GIcon. The returned object belongs to + * the emblem and should not be modified or freed. * * Since: 2.18 */ @@ -240,7 +240,7 @@ g_emblem_get_icon (GEmblem *emblem) * * Gets the origin of the emblem. * - * Returns: the origin of the emblem + * Returns: (transfer none): the origin of the emblem * * Since: 2.18 */ diff --git a/gio/gemblemedicon.c b/gio/gemblemedicon.c index 0364cbaa0..6f7af0e46 100644 --- a/gio/gemblemedicon.c +++ b/gio/gemblemedicon.c @@ -46,20 +46,19 @@ * of the emblems. See also #GEmblem for more information. **/ -static void g_emblemed_icon_icon_iface_init (GIconIface *iface); - -struct _GEmblemedIcon -{ - GObject parent_instance; +enum { + PROP_GICON = 1, + NUM_PROPERTIES +}; +struct _GEmblemedIconPrivate { GIcon *icon; GList *emblems; }; -struct _GEmblemedIconClass -{ - GObjectClass parent_class; -}; +static GParamSpec *properties[NUM_PROPERTIES] = { NULL, }; + +static void g_emblemed_icon_icon_iface_init (GIconIface *iface); G_DEFINE_TYPE_WITH_CODE (GEmblemedIcon, g_emblemed_icon, G_TYPE_OBJECT, G_IMPLEMENT_INTERFACE (G_TYPE_ICON, @@ -73,23 +72,78 @@ g_emblemed_icon_finalize (GObject *object) emblemed = G_EMBLEMED_ICON (object); - g_object_unref (emblemed->icon); - g_list_foreach (emblemed->emblems, (GFunc) g_object_unref, NULL); - g_list_free (emblemed->emblems); + g_object_unref (emblemed->priv->icon); + g_list_foreach (emblemed->priv->emblems, (GFunc) g_object_unref, NULL); + g_list_free (emblemed->priv->emblems); (*G_OBJECT_CLASS (g_emblemed_icon_parent_class)->finalize) (object); } +static void +g_emblemed_icon_set_property (GObject *object, + guint property_id, + const GValue *value, + GParamSpec *pspec) +{ + GEmblemedIcon *self = G_EMBLEMED_ICON (object); + + switch (property_id) + { + case PROP_GICON: + self->priv->icon = g_value_dup_object (value); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); + break; + } +} + +static void +g_emblemed_icon_get_property (GObject *object, + guint property_id, + GValue *value, + GParamSpec *pspec) +{ + GEmblemedIcon *self = G_EMBLEMED_ICON (object); + + switch (property_id) + { + case PROP_GICON: + g_value_set_object (value, self->priv->icon); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); + break; + } +} + static void g_emblemed_icon_class_init (GEmblemedIconClass *klass) { GObjectClass *gobject_class = G_OBJECT_CLASS (klass); + gobject_class->finalize = g_emblemed_icon_finalize; + gobject_class->set_property = g_emblemed_icon_set_property; + gobject_class->get_property = g_emblemed_icon_get_property; + + properties[PROP_GICON] = + g_param_spec_object ("gicon", + P_("The base GIcon"), + P_("The GIcon to attach emblems to"), + G_TYPE_ICON, + G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS); + + g_object_class_install_properties (gobject_class, NUM_PROPERTIES, properties); + + g_type_class_add_private (klass, sizeof (GEmblemedIconPrivate)); } static void g_emblemed_icon_init (GEmblemedIcon *emblemed) { + emblemed->priv = + G_TYPE_INSTANCE_GET_PRIVATE (emblemed, G_TYPE_EMBLEMED_ICON, + GEmblemedIconPrivate); } /** @@ -112,8 +166,9 @@ g_emblemed_icon_new (GIcon *icon, g_return_val_if_fail (G_IS_ICON (icon), NULL); g_return_val_if_fail (!G_IS_EMBLEM (icon), NULL); - emblemed = G_EMBLEMED_ICON (g_object_new (G_TYPE_EMBLEMED_ICON, NULL)); - emblemed->icon = g_object_ref (icon); + emblemed = G_EMBLEMED_ICON (g_object_new (G_TYPE_EMBLEMED_ICON, + "gicon", icon, + NULL)); if (emblem != NULL) g_emblemed_icon_add_emblem (emblemed, emblem); @@ -128,7 +183,7 @@ g_emblemed_icon_new (GIcon *icon, * * Gets the main icon for @emblemed. * - * Returns: (transfer full): a #GIcon that is owned by @emblemed + * Returns: (transfer none): a #GIcon that is owned by @emblemed * * Since: 2.18 **/ @@ -137,7 +192,7 @@ g_emblemed_icon_get_icon (GEmblemedIcon *emblemed) { g_return_val_if_fail (G_IS_EMBLEMED_ICON (emblemed), NULL); - return emblemed->icon; + return emblemed->priv->icon; } /** @@ -146,8 +201,8 @@ g_emblemed_icon_get_icon (GEmblemedIcon *emblemed) * * Gets the list of emblems for the @icon. * - * Returns: (element-type utf8) (transfer none): a #GList of #GEmblem s that - * is owned by @emblemed + * Returns: (element-type Gio.Emblem) (transfer none): a #GList of + * #GEmblem s that is owned by @emblemed * * Since: 2.18 **/ @@ -157,7 +212,27 @@ g_emblemed_icon_get_emblems (GEmblemedIcon *emblemed) { g_return_val_if_fail (G_IS_EMBLEMED_ICON (emblemed), NULL); - return emblemed->emblems; + return emblemed->priv->emblems; +} + +/** + * g_emblemed_icon_clear_emblems: + * @emblemed: a #GEmblemedIcon + * + * Removes all the emblems from @icon. + * + * Since: 2.28 + **/ +void +g_emblemed_icon_clear_emblems (GEmblemedIcon *emblemed) +{ + g_return_if_fail (G_IS_EMBLEMED_ICON (emblemed)); + + if (emblemed->priv->emblems == NULL) + return; + + g_list_free_full (emblemed->priv->emblems, g_object_unref); + emblemed->priv->emblems = NULL; } static gint @@ -193,8 +268,8 @@ g_emblemed_icon_add_emblem (GEmblemedIcon *emblemed, g_return_if_fail (G_IS_EMBLEM (emblem)); g_object_ref (emblem); - emblemed->emblems = g_list_insert_sorted (emblemed->emblems, emblem, - (GCompareFunc) g_emblem_comp); + emblemed->priv->emblems = g_list_insert_sorted (emblemed->priv->emblems, emblem, + (GCompareFunc) g_emblem_comp); } static guint @@ -202,9 +277,9 @@ g_emblemed_icon_hash (GIcon *icon) { GEmblemedIcon *emblemed = G_EMBLEMED_ICON (icon); GList *list; - guint hash = g_icon_hash (emblemed->icon); + guint hash = g_icon_hash (emblemed->priv->icon); - for (list = emblemed->emblems; list != NULL; list = list->next) + for (list = emblemed->priv->emblems; list != NULL; list = list->next) hash ^= g_icon_hash (G_ICON (list->data)); return hash; @@ -218,11 +293,11 @@ g_emblemed_icon_equal (GIcon *icon1, GEmblemedIcon *emblemed2 = G_EMBLEMED_ICON (icon2); GList *list1, *list2; - if (!g_icon_equal (emblemed1->icon, emblemed2->icon)) + if (!g_icon_equal (emblemed1->priv->icon, emblemed2->priv->icon)) return FALSE; - list1 = emblemed1->emblems; - list2 = emblemed2->emblems; + list1 = emblemed1->priv->emblems; + list2 = emblemed2->priv->emblems; while (list1 && list2) { @@ -254,13 +329,13 @@ g_emblemed_icon_to_tokens (GIcon *icon, *out_version = 0; - s = g_icon_to_string (emblemed_icon->icon); + s = g_icon_to_string (emblemed_icon->priv->icon); if (s == NULL) return FALSE; g_ptr_array_add (tokens, s); - for (l = emblemed_icon->emblems; l != NULL; l = l->next) + for (l = emblemed_icon->priv->emblems; l != NULL; l = l->next) { GIcon *emblem_icon = G_ICON (l->data); @@ -306,8 +381,8 @@ g_emblemed_icon_from_tokens (gchar **tokens, } emblemed_icon = g_object_new (G_TYPE_EMBLEMED_ICON, NULL); - emblemed_icon->icon = g_icon_new_for_string (tokens[0], error); - if (emblemed_icon->icon == NULL) + emblemed_icon->priv->icon = g_icon_new_for_string (tokens[0], error); + if (emblemed_icon->priv->icon == NULL) goto fail; for (n = 1; n < num_tokens; n++) @@ -328,7 +403,7 @@ g_emblemed_icon_from_tokens (gchar **tokens, goto fail; } - emblemed_icon->emblems = g_list_append (emblemed_icon->emblems, emblem); + emblemed_icon->priv->emblems = g_list_append (emblemed_icon->priv->emblems, emblem); } return G_ICON (emblemed_icon); diff --git a/gio/gemblemedicon.h b/gio/gemblemedicon.h index 7a5dc4dae..ded692815 100644 --- a/gio/gemblemedicon.h +++ b/gio/gemblemedicon.h @@ -47,6 +47,20 @@ G_BEGIN_DECLS **/ typedef struct _GEmblemedIcon GEmblemedIcon; typedef struct _GEmblemedIconClass GEmblemedIconClass; +typedef struct _GEmblemedIconPrivate GEmblemedIconPrivate; + +struct _GEmblemedIcon +{ + GObject parent_instance; + + /*< private >*/ + GEmblemedIconPrivate *priv; +}; + +struct _GEmblemedIconClass +{ + GObjectClass parent_class; +}; GType g_emblemed_icon_get_type (void) G_GNUC_CONST; @@ -56,6 +70,7 @@ GIcon *g_emblemed_icon_get_icon (GEmblemedIcon *emblemed); GList *g_emblemed_icon_get_emblems (GEmblemedIcon *emblemed); void g_emblemed_icon_add_emblem (GEmblemedIcon *emblemed, GEmblem *emblem); +void g_emblemed_icon_clear_emblems (GEmblemedIcon *emblemed); G_END_DECLS diff --git a/gio/gfile.c b/gio/gfile.c index 4cfec8f2c..da3477b88 100644 --- a/gio/gfile.c +++ b/gio/gfile.c @@ -822,7 +822,7 @@ g_file_resolve_relative_path (GFile *file, * @file: input #GFile. * @attributes: an attribute query string. * @flags: a set of #GFileQueryInfoFlags. - * @cancellable: optional #GCancellable object, %NULL to ignore. + * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore. * @error: #GError for error reporting. * * Gets the requested information about the files in a directory. The result @@ -884,9 +884,10 @@ g_file_enumerate_children (GFile *file, * @flags: a set of #GFileQueryInfoFlags. * @io_priority: the I/O priority * of the request. - * @cancellable: optional #GCancellable object, %NULL to ignore. - * @callback: a #GAsyncReadyCallback to call when the request is satisfied - * @user_data: the data to pass to callback function + * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore. + * @callback: (scope async): a #GAsyncReadyCallback to call when the + * request is satisfied + * @user_data: (closure): the data to pass to callback function * * Asynchronously gets the requested information about the files in a directory. The result * is a #GFileEnumerator object that will give out #GFileInfo objects for @@ -957,7 +958,7 @@ g_file_enumerate_children_finish (GFile *file, /** * g_file_query_exists: * @file: input #GFile. - * @cancellable: optional #GCancellable object, %NULL to ignore. + * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore. * * Utility function to check if a particular file exists. This is * implemented using g_file_query_info() and as such does blocking I/O. @@ -1007,7 +1008,7 @@ g_file_query_exists (GFile *file, * g_file_query_file_type: * @file: input #GFile. * @flags: a set of #GFileQueryInfoFlags passed to g_file_query_info(). - * @cancellable: optional #GCancellable object, %NULL to ignore. + * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore. * * Utility function to inspect the #GFileType of a file. This is * implemented using g_file_query_info() and as such does blocking I/O. @@ -1047,7 +1048,7 @@ g_file_query_file_type (GFile *file, * @file: input #GFile. * @attributes: an attribute query string. * @flags: a set of #GFileQueryInfoFlags. - * @cancellable: optional #GCancellable object, %NULL to ignore. + * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore. * @error: a #GError. * * Gets the requested information about specified @file. The result @@ -1113,9 +1114,9 @@ g_file_query_info (GFile *file, * @flags: a set of #GFileQueryInfoFlags. * @io_priority: the I/O priority * of the request. - * @cancellable: optional #GCancellable object, %NULL to ignore. - * @callback: a #GAsyncReadyCallback to call when the request is satisfied - * @user_data: the data to pass to callback function + * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore. + * @callback: (scope async): a #GAsyncReadyCallback to call when the request is satisfied + * @user_data: (closure): the data to pass to callback function * * Asynchronously gets the requested information about specified @file. The result * is a #GFileInfo object that contains key-value attributes (such as type or size @@ -1187,7 +1188,7 @@ g_file_query_info_finish (GFile *file, * g_file_query_filesystem_info: * @file: input #GFile. * @attributes: an attribute query string. - * @cancellable: optional #GCancellable object, %NULL to ignore. + * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore. * @error: a #GError. * * Similar to g_file_query_info(), but obtains information @@ -1247,9 +1248,9 @@ g_file_query_filesystem_info (GFile *file, * @attributes: an attribute query string. * @io_priority: the I/O priority * of the request. - * @cancellable: optional #GCancellable object, %NULL to ignore. - * @callback: a #GAsyncReadyCallback to call when the request is satisfied - * @user_data: the data to pass to callback function + * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore. + * @callback: (scope async): a #GAsyncReadyCallback to call when the request is satisfied + * @user_data: (closure): the data to pass to callback function * * Asynchronously gets the requested information about the filesystem * that the specified @file is on. The result is a #GFileInfo object @@ -1320,7 +1321,7 @@ g_file_query_filesystem_info_finish (GFile *file, /** * g_file_find_enclosing_mount: * @file: input #GFile. - * @cancellable: optional #GCancellable object, %NULL to ignore. + * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore. * @error: a #GError. * * Gets a #GMount for the #GFile. @@ -1367,9 +1368,9 @@ g_file_find_enclosing_mount (GFile *file, * @file: a #GFile * @io_priority: the I/O priority * of the request. - * @cancellable: optional #GCancellable object, %NULL to ignore. - * @callback: a #GAsyncReadyCallback to call when the request is satisfied - * @user_data: the data to pass to callback function + * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore. + * @callback: (scope async): a #GAsyncReadyCallback to call when the request is satisfied + * @user_data: (closure): the data to pass to callback function * * Asynchronously gets the mount for the file. * @@ -1435,7 +1436,7 @@ g_file_find_enclosing_mount_finish (GFile *file, /** * g_file_read: * @file: #GFile to read. - * @cancellable: a #GCancellable + * @cancellable: (allow-none): a #GCancellable * @error: a #GError, or %NULL * * Opens a file for reading. The result is a #GFileInputStream that @@ -1482,7 +1483,7 @@ g_file_read (GFile *file, * g_file_append_to: * @file: input #GFile. * @flags: a set of #GFileCreateFlags. - * @cancellable: optional #GCancellable object, %NULL to ignore. + * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore. * @error: a #GError, or %NULL * * Gets an output stream for appending data to the file. If @@ -1536,7 +1537,7 @@ g_file_append_to (GFile *file, * g_file_create: * @file: input #GFile. * @flags: a set of #GFileCreateFlags. - * @cancellable: optional #GCancellable object, %NULL to ignore. + * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore. * @error: a #GError, or %NULL * * Creates a new file and returns an output stream for writing to it. @@ -1596,7 +1597,7 @@ g_file_create (GFile *file, * current #GFile, or #NULL to ignore. * @make_backup: %TRUE if a backup should be created. * @flags: a set of #GFileCreateFlags. - * @cancellable: optional #GCancellable object, %NULL to ignore. + * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore. * @error: a #GError, or %NULL * * Returns an output stream for overwriting the file, possibly @@ -1680,7 +1681,7 @@ g_file_replace (GFile *file, /** * g_file_open_readwrite: * @file: #GFile to open - * @cancellable: a #GCancellable + * @cancellable: (allow-none): a #GCancellable * @error: a #GError, or %NULL * * Opens an existing file for reading and writing. The result is @@ -1731,7 +1732,7 @@ g_file_open_readwrite (GFile *file, * g_file_create_readwrite: * @file: a #GFile * @flags: a set of #GFileCreateFlags - * @cancellable: optional #GCancellable object, %NULL to ignore + * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore * @error: return location for a #GError, or %NULL * * Creates a new file and returns a stream for reading and writing to it. @@ -1794,7 +1795,7 @@ g_file_create_readwrite (GFile *file, * current #GFile, or #NULL to ignore * @make_backup: %TRUE if a backup should be created * @flags: a set of #GFileCreateFlags - * @cancellable: optional #GCancellable object, %NULL to ignore + * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore * @error: return location for a #GError, or %NULL * * Returns an output stream for overwriting the file in readwrite mode, @@ -1846,9 +1847,9 @@ g_file_replace_readwrite (GFile *file, * @file: input #GFile * @io_priority: the I/O priority * of the request. - * @cancellable: optional #GCancellable object, %NULL to ignore. - * @callback: a #GAsyncReadyCallback to call when the request is satisfied - * @user_data: the data to pass to callback function + * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore. + * @callback: (scope async): a #GAsyncReadyCallback to call when the request is satisfied + * @user_data: (closure): the data to pass to callback function * * Asynchronously opens @file for reading. * @@ -1916,9 +1917,9 @@ g_file_read_finish (GFile *file, * @flags: a set of #GFileCreateFlags. * @io_priority: the I/O priority * of the request. - * @cancellable: optional #GCancellable object, %NULL to ignore. - * @callback: a #GAsyncReadyCallback to call when the request is satisfied - * @user_data: the data to pass to callback function + * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore. + * @callback: (scope async): a #GAsyncReadyCallback to call when the request is satisfied + * @user_data: (closure): the data to pass to callback function * * Asynchronously opens @file for appending. * @@ -1988,9 +1989,9 @@ g_file_append_to_finish (GFile *file, * @flags: a set of #GFileCreateFlags. * @io_priority: the I/O priority * of the request. - * @cancellable: optional #GCancellable object, %NULL to ignore. - * @callback: a #GAsyncReadyCallback to call when the request is satisfied - * @user_data: the data to pass to callback function + * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore. + * @callback: (scope async): a #GAsyncReadyCallback to call when the request is satisfied + * @user_data: (closure): the data to pass to callback function * * Asynchronously creates a new file and returns an output stream for writing to it. * The file must not already exist. @@ -2064,9 +2065,9 @@ g_file_create_finish (GFile *file, * @flags: a set of #GFileCreateFlags. * @io_priority: the I/O priority * of the request. - * @cancellable: optional #GCancellable object, %NULL to ignore. - * @callback: a #GAsyncReadyCallback to call when the request is satisfied - * @user_data: the data to pass to callback function + * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore. + * @callback: (scope async): a #GAsyncReadyCallback to call when the request is satisfied + * @user_data: (closure): the data to pass to callback function * * Asynchronously overwrites the file, replacing the contents, possibly * creating a backup copy of the file first. @@ -2141,9 +2142,9 @@ g_file_replace_finish (GFile *file, * @file: input #GFile. * @io_priority: the I/O priority * of the request. - * @cancellable: optional #GCancellable object, %NULL to ignore. - * @callback: a #GAsyncReadyCallback to call when the request is satisfied - * @user_data: the data to pass to callback function + * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore. + * @callback: (scope async): a #GAsyncReadyCallback to call when the request is satisfied + * @user_data: (closure): the data to pass to callback function * * Asynchronously opens @file for reading and writing. * @@ -2216,9 +2217,9 @@ g_file_open_readwrite_finish (GFile *file, * @flags: a set of #GFileCreateFlags * @io_priority: the I/O priority * of the request - * @cancellable: optional #GCancellable object, %NULL to ignore - * @callback: a #GAsyncReadyCallback to call when the request is satisfied - * @user_data: the data to pass to callback function + * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore + * @callback: (scope async): a #GAsyncReadyCallback to call when the request is satisfied + * @user_data: (closure): the data to pass to callback function * * Asynchronously creates a new file and returns a stream for reading and * writing to it. The file must not already exist. @@ -2296,9 +2297,9 @@ g_file_create_readwrite_finish (GFile *file, * @flags: a set of #GFileCreateFlags. * @io_priority: the I/O priority * of the request. - * @cancellable: optional #GCancellable object, %NULL to ignore. - * @callback: a #GAsyncReadyCallback to call when the request is satisfied - * @user_data: the data to pass to callback function + * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore. + * @callback: (scope async): a #GAsyncReadyCallback to call when the request is satisfied + * @user_data: (closure): the data to pass to callback function * * Asynchronously overwrites the file in read-write mode, replacing the * contents, possibly creating a backup copy of the file first. @@ -2570,7 +2571,7 @@ build_attribute_list_for_copy (GFileAttributeInfoList *attributes, * @source: a #GFile with attributes. * @destination: a #GFile to copy attributes to. * @flags: a set of #GFileCopyFlags. - * @cancellable: optional #GCancellable object, %NULL to ignore. + * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore. * @error: a #GError, %NULL to ignore. * * Copies the file attributes from @source to @destination. @@ -2988,7 +2989,7 @@ file_copy_fallback (GFile *source, * @source: input #GFile. * @destination: destination #GFile * @flags: set of #GFileCopyFlags - * @cancellable: optional #GCancellable object, %NULL to ignore. + * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore. * @progress_callback: (scope call): function to callback with progress information * @progress_callback_data: (closure): user data to pass to @progress_callback * @error: #GError to set on error, or %NULL @@ -3105,7 +3106,7 @@ g_file_copy (GFile *source, } /** - * g_file_copy_async: + * g_file_copy_async: (skip) * @source: input #GFile. * @destination: destination #GFile * @flags: set of #GFileCopyFlags @@ -3193,7 +3194,7 @@ g_file_copy_finish (GFile *file, * @source: #GFile pointing to the source location. * @destination: #GFile pointing to the destination location. * @flags: set of #GFileCopyFlags. - * @cancellable: optional #GCancellable object, %NULL to ignore. + * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore. * @progress_callback: (scope call): #GFileProgressCallback function for updates. * @progress_callback_data: (closure): gpointer to user data for the callback function. * @error: #GError for returning error conditions, or %NULL @@ -3320,7 +3321,7 @@ g_file_move (GFile *source, /** * g_file_make_directory * @file: input #GFile. - * @cancellable: optional #GCancellable object, %NULL to ignore. + * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore. * @error: a #GError, or %NULL * * Creates a directory. Note that this will only create a child directory of @@ -3368,7 +3369,7 @@ g_file_make_directory (GFile *file, /** * g_file_make_directory_with_parents: * @file: input #GFile. - * @cancellable: optional #GCancellable object, %NULL to ignore. + * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore. * @error: a #GError, or %NULL * * Creates a directory and any parent directories that may not exist similar to @@ -3450,7 +3451,7 @@ g_file_make_directory_with_parents (GFile *file, * g_file_make_symbolic_link: * @file: a #GFile with the name of the symlink to create * @symlink_value: a string with the path for the target of the new symlink - * @cancellable: optional #GCancellable object, %NULL to ignore. + * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore. * @error: a #GError. * * Creates a symbolic link named @file which contains the string @@ -3500,7 +3501,7 @@ g_file_make_symbolic_link (GFile *file, /** * g_file_delete: * @file: input #GFile. - * @cancellable: optional #GCancellable object, %NULL to ignore. + * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore. * @error: a #GError, or %NULL * * Deletes a file. If the @file is a directory, it will only be deleted if it @@ -3541,7 +3542,7 @@ g_file_delete (GFile *file, /** * g_file_trash: * @file: #GFile to send to trash. - * @cancellable: optional #GCancellable object, %NULL to ignore. + * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore. * @error: a #GError, or %NULL * * Sends @file to the "Trashcan", if possible. This is similar to @@ -3585,7 +3586,7 @@ g_file_trash (GFile *file, * g_file_set_display_name: * @file: input #GFile. * @display_name: a string. - * @cancellable: optional #GCancellable object, %NULL to ignore. + * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore. * @error: a #GError, or %NULL * * Renames @file to the specified display name. @@ -3641,9 +3642,9 @@ g_file_set_display_name (GFile *file, * @display_name: a string. * @io_priority: the I/O priority * of the request. - * @cancellable: optional #GCancellable object, %NULL to ignore. - * @callback: a #GAsyncReadyCallback to call when the request is satisfied - * @user_data: the data to pass to callback function + * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore. + * @callback: (scope async): a #GAsyncReadyCallback to call when the request is satisfied + * @user_data: (closure): the data to pass to callback function * * Asynchronously sets the display name for a given #GFile. * @@ -3711,7 +3712,7 @@ g_file_set_display_name_finish (GFile *file, /** * g_file_query_settable_attributes: * @file: input #GFile. - * @cancellable: optional #GCancellable object, %NULL to ignore. + * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore. * @error: a #GError, or %NULL * * Obtain the list of settable attributes for the file. @@ -3767,7 +3768,7 @@ g_file_query_settable_attributes (GFile *file, /** * g_file_query_writable_namespaces: * @file: input #GFile. - * @cancellable: optional #GCancellable object, %NULL to ignore. + * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore. * @error: a #GError, or %NULL * * Obtain the list of attribute namespaces where new attributes @@ -3824,7 +3825,7 @@ g_file_query_writable_namespaces (GFile *file, * @type: The type of the attribute * @value_p: a pointer to the value (or the pointer itself if the type is a pointer type) * @flags: a set of #GFileQueryInfoFlags. - * @cancellable: optional #GCancellable object, %NULL to ignore. + * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore. * @error: a #GError, or %NULL * * Sets an attribute in the file with attribute name @attribute to @value. @@ -3870,7 +3871,7 @@ g_file_set_attribute (GFile *file, * @file: input #GFile. * @info: a #GFileInfo. * @flags: #GFileQueryInfoFlags - * @cancellable: optional #GCancellable object, %NULL to ignore. + * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore. * @error: a #GError, or %NULL * * Tries to set all attributes in the #GFileInfo on the target values, @@ -3963,9 +3964,9 @@ g_file_real_set_attributes_from_info (GFile *file, * @flags: a #GFileQueryInfoFlags. * @io_priority: the I/O priority * of the request. - * @cancellable: optional #GCancellable object, %NULL to ignore. - * @callback: a #GAsyncReadyCallback. - * @user_data: a #gpointer. + * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore. + * @callback: (scope async): a #GAsyncReadyCallback. + * @user_data: (closure): a #gpointer. * * Asynchronously sets the attributes of @file with @info. * @@ -4034,7 +4035,7 @@ g_file_set_attributes_finish (GFile *file, * @attribute: a string containing the attribute's name. * @value: a string containing the attribute's value. * @flags: #GFileQueryInfoFlags. - * @cancellable: optional #GCancellable object, %NULL to ignore. + * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore. * @error: a #GError, or %NULL * * Sets @attribute of type %G_FILE_ATTRIBUTE_TYPE_STRING to @value. @@ -4065,7 +4066,7 @@ g_file_set_attribute_string (GFile *file, * @attribute: a string containing the attribute's name. * @value: a string containing the attribute's new value. * @flags: a #GFileQueryInfoFlags. - * @cancellable: optional #GCancellable object, %NULL to ignore. + * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore. * @error: a #GError, or %NULL * * Sets @attribute of type %G_FILE_ATTRIBUTE_TYPE_BYTE_STRING to @value. @@ -4098,7 +4099,7 @@ g_file_set_attribute_byte_string (GFile *file, * @attribute: a string containing the attribute's name. * @value: a #guint32 containing the attribute's new value. * @flags: a #GFileQueryInfoFlags. - * @cancellable: optional #GCancellable object, %NULL to ignore. + * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore. * @error: a #GError, or %NULL * * Sets @attribute of type %G_FILE_ATTRIBUTE_TYPE_UINT32 to @value. @@ -4130,7 +4131,7 @@ g_file_set_attribute_uint32 (GFile *file, * @attribute: a string containing the attribute's name. * @value: a #gint32 containing the attribute's new value. * @flags: a #GFileQueryInfoFlags. - * @cancellable: optional #GCancellable object, %NULL to ignore. + * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore. * @error: a #GError, or %NULL * * Sets @attribute of type %G_FILE_ATTRIBUTE_TYPE_INT32 to @value. @@ -4162,7 +4163,7 @@ g_file_set_attribute_int32 (GFile *file, * @attribute: a string containing the attribute's name. * @value: a #guint64 containing the attribute's new value. * @flags: a #GFileQueryInfoFlags. - * @cancellable: optional #GCancellable object, %NULL to ignore. + * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore. * @error: a #GError, or %NULL * * Sets @attribute of type %G_FILE_ATTRIBUTE_TYPE_UINT64 to @value. @@ -4194,7 +4195,7 @@ g_file_set_attribute_uint64 (GFile *file, * @attribute: a string containing the attribute's name. * @value: a #guint64 containing the attribute's new value. * @flags: a #GFileQueryInfoFlags. - * @cancellable: optional #GCancellable object, %NULL to ignore. + * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore. * @error: a #GError, or %NULL * * Sets @attribute of type %G_FILE_ATTRIBUTE_TYPE_INT64 to @value. @@ -4224,9 +4225,9 @@ g_file_set_attribute_int64 (GFile *file, * @file: input #GFile. * @flags: flags affecting the operation * @mount_operation: a #GMountOperation, or %NULL to avoid user interaction. - * @cancellable: optional #GCancellable object, %NULL to ignore. - * @callback: a #GAsyncReadyCallback to call when the request is satisfied, or %NULL. - * @user_data: the data to pass to callback function + * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore. + * @callback: (scope async): a #GAsyncReadyCallback to call when the request is satisfied, or %NULL. + * @user_data: (closure): the data to pass to callback function * * Mounts a file of type G_FILE_TYPE_MOUNTABLE. * Using @mount_operation, you can request callbacks when, for instance, @@ -4311,9 +4312,9 @@ g_file_mount_mountable_finish (GFile *file, * g_file_unmount_mountable: * @file: input #GFile. * @flags: flags affecting the operation - * @cancellable: optional #GCancellable object, %NULL to ignore. - * @callback: a #GAsyncReadyCallback to call when the request is satisfied, or %NULL. - * @user_data: the data to pass to callback function + * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore. + * @callback: (scope async): a #GAsyncReadyCallback to call when the request is satisfied, or %NULL. + * @user_data: (closure): the data to pass to callback function * * Unmounts a file of type G_FILE_TYPE_MOUNTABLE. * @@ -4399,9 +4400,9 @@ g_file_unmount_mountable_finish (GFile *file, * @file: input #GFile. * @flags: flags affecting the operation * @mount_operation: a #GMountOperation, or %NULL to avoid user interaction. - * @cancellable: optional #GCancellable object, %NULL to ignore. - * @callback: a #GAsyncReadyCallback to call when the request is satisfied, or %NULL. - * @user_data: the data to pass to callback function + * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore. + * @callback: (scope async): a #GAsyncReadyCallback to call when the request is satisfied, or %NULL. + * @user_data: (closure): the data to pass to callback function * * Unmounts a file of type G_FILE_TYPE_MOUNTABLE. * @@ -4498,9 +4499,9 @@ g_file_unmount_mountable_with_operation_finish (GFile *file, * g_file_eject_mountable: * @file: input #GFile. * @flags: flags affecting the operation - * @cancellable: optional #GCancellable object, %NULL to ignore. - * @callback: a #GAsyncReadyCallback to call when the request is satisfied, or %NULL. - * @user_data: the data to pass to callback function + * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore. + * @callback: (scope async): a #GAsyncReadyCallback to call when the request is satisfied, or %NULL. + * @user_data: (closure): the data to pass to callback function * * Starts an asynchronous eject on a mountable. * When this operation has completed, @callback will be called with @@ -4584,9 +4585,9 @@ g_file_eject_mountable_finish (GFile *file, * @file: input #GFile. * @flags: flags affecting the operation * @mount_operation: a #GMountOperation, or %NULL to avoid user interaction. - * @cancellable: optional #GCancellable object, %NULL to ignore. - * @callback: a #GAsyncReadyCallback to call when the request is satisfied, or %NULL. - * @user_data: the data to pass to callback function + * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore. + * @callback: (scope async): a #GAsyncReadyCallback to call when the request is satisfied, or %NULL. + * @user_data: (closure): the data to pass to callback function * * Starts an asynchronous eject on a mountable. * When this operation has completed, @callback will be called with @@ -4681,7 +4682,7 @@ g_file_eject_mountable_with_operation_finish (GFile *file, * g_file_monitor_directory: * @file: input #GFile. * @flags: a set of #GFileMonitorFlags. - * @cancellable: optional #GCancellable object, %NULL to ignore. + * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore. * @error: a #GError, or %NULL. * * Obtains a directory monitor for the given file. @@ -4725,7 +4726,7 @@ g_file_monitor_directory (GFile *file, * g_file_monitor_file: * @file: input #GFile. * @flags: a set of #GFileMonitorFlags. - * @cancellable: optional #GCancellable object, %NULL to ignore. + * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore. * @error: a #GError, or %NULL. * * Obtains a file monitor for the given file. If no file notification @@ -4770,7 +4771,7 @@ g_file_monitor_file (GFile *file, * g_file_monitor: * @file: input #GFile * @flags: a set of #GFileMonitorFlags - * @cancellable: optional #GCancellable object, %NULL to ignore + * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore * @error: a #GError, or %NULL * * Obtains a file or directory monitor for the given file, depending @@ -6379,7 +6380,7 @@ load_contents_open_callback (GObject *obj, } /** - * g_file_load_partial_contents_async: + * g_file_load_partial_contents_async: (skip) * @file: input #GFile. * @cancellable: optional #GCancellable object, %NULL to ignore. * @read_more_callback: a #GFileReadMoreCallback to receive partial data and to specify whether further data should be read. diff --git a/gio/gfileenumerator.c b/gio/gfileenumerator.c index ac7a72486..b8e733988 100644 --- a/gio/gfileenumerator.c +++ b/gio/gfileenumerator.c @@ -173,7 +173,7 @@ g_file_enumerator_init (GFileEnumerator *enumerator) /** * g_file_enumerator_next_file: * @enumerator: a #GFileEnumerator. - * @cancellable: optional #GCancellable object, %NULL to ignore. + * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore. * @error: location to store the error occuring, or %NULL to ignore * * Returns information for the next file in the enumerated object. @@ -238,7 +238,7 @@ g_file_enumerator_next_file (GFileEnumerator *enumerator, /** * g_file_enumerator_close: * @enumerator: a #GFileEnumerator. - * @cancellable: optional #GCancellable object, %NULL to ignore. + * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore. * @error: location to store the error occuring, or %NULL to ignore * * Releases all resources used by this enumerator, making the @@ -305,9 +305,9 @@ next_async_callback_wrapper (GObject *source_object, * @num_files: the number of file info objects to request * @io_priority: the io priority * of the request. - * @cancellable: optional #GCancellable object, %NULL to ignore. - * @callback: a #GAsyncReadyCallback to call when the request is satisfied - * @user_data: the data to pass to callback function + * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore. + * @callback: (scope async): a #GAsyncReadyCallback to call when the request is satisfied + * @user_data: (closure): the data to pass to callback function * * Request information for a number of files from the enumerator asynchronously. * When all i/o for the operation is finished the @callback will be called with @@ -439,9 +439,9 @@ close_async_callback_wrapper (GObject *source_object, * @enumerator: a #GFileEnumerator. * @io_priority: the I/O priority * of the request. - * @cancellable: optional #GCancellable object, %NULL to ignore. - * @callback: a #GAsyncReadyCallback to call when the request is satisfied - * @user_data: the data to pass to callback function + * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore. + * @callback: (scope async): a #GAsyncReadyCallback to call when the request is satisfied + * @user_data: (closure): the data to pass to callback function * * Asynchronously closes the file enumerator. * diff --git a/gio/gfileenumerator.h b/gio/gfileenumerator.h index a0cfaaf06..9cd2f3eca 100644 --- a/gio/gfileenumerator.h +++ b/gio/gfileenumerator.h @@ -74,7 +74,7 @@ struct _GFileEnumeratorClass GAsyncReadyCallback callback, gpointer user_data); GList * (* next_files_finish) (GFileEnumerator *enumerator, - GAsyncResult *res, + GAsyncResult *result, GError **error); void (* close_async) (GFileEnumerator *enumerator, int io_priority, @@ -82,7 +82,7 @@ struct _GFileEnumeratorClass GAsyncReadyCallback callback, gpointer user_data); gboolean (* close_finish) (GFileEnumerator *enumerator, - GAsyncResult *res, + GAsyncResult *result, GError **error); /*< private >*/ diff --git a/gio/gfileinputstream.c b/gio/gfileinputstream.c index 685d768d0..42942b44e 100644 --- a/gio/gfileinputstream.c +++ b/gio/gfileinputstream.c @@ -112,7 +112,7 @@ g_file_input_stream_init (GFileInputStream *stream) * g_file_input_stream_query_info: * @stream: a #GFileInputStream. * @attributes: a file attribute query string. - * @cancellable: optional #GCancellable object, %NULL to ignore. + * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore. * @error: a #GError location to store the error occuring, or %NULL to * ignore. * @@ -180,9 +180,9 @@ async_ready_callback_wrapper (GObject *source_object, * @attributes: a file attribute query string. * @io_priority: the I/O priority * of the request. - * @cancellable: optional #GCancellable object, %NULL to ignore. - * @callback: callback to call when the request is satisfied - * @user_data: the data to pass to callback function + * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore. + * @callback: (scope async): callback to call when the request is satisfied + * @user_data: (closure): the data to pass to callback function * * Queries the stream information asynchronously. * When the operation is finished @callback will be called. diff --git a/gio/gfileinputstream.h b/gio/gfileinputstream.h index 3c162c7f9..08c056e1b 100644 --- a/gio/gfileinputstream.h +++ b/gio/gfileinputstream.h @@ -79,7 +79,7 @@ struct _GFileInputStreamClass GAsyncReadyCallback callback, gpointer user_data); GFileInfo * (* query_info_finish) (GFileInputStream *stream, - GAsyncResult *res, + GAsyncResult *result, GError **error); /*< private >*/ diff --git a/gio/gfileiostream.c b/gio/gfileiostream.c index 1e5f17ff1..85a8dd909 100644 --- a/gio/gfileiostream.c +++ b/gio/gfileiostream.c @@ -115,7 +115,7 @@ g_file_io_stream_init (GFileIOStream *stream) * g_file_io_stream_query_info: * @stream: a #GFileIOStream. * @attributes: a file attribute query string. - * @cancellable: optional #GCancellable object, %NULL to ignore. + * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore. * @error: a #GError, %NULL to ignore. * * Queries a file io stream for the given @attributes. @@ -196,9 +196,9 @@ async_ready_callback_wrapper (GObject *source_object, * @attributes: a file attribute query string. * @io_priority: the I/O priority * of the request. - * @cancellable: optional #GCancellable object, %NULL to ignore. - * @callback: callback to call when the request is satisfied - * @user_data: the data to pass to callback function + * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore. + * @callback: (scope async): callback to call when the request is satisfied + * @user_data: (closure): the data to pass to callback function * * Asynchronously queries the @stream for a #GFileInfo. When completed, * @callback will be called with a #GAsyncResult which can be used to diff --git a/gio/gfileiostream.h b/gio/gfileiostream.h index 09c99224b..31497e38c 100644 --- a/gio/gfileiostream.h +++ b/gio/gfileiostream.h @@ -84,7 +84,7 @@ struct _GFileIOStreamClass GAsyncReadyCallback callback, gpointer user_data); GFileInfo * (* query_info_finish) (GFileIOStream *stream, - GAsyncResult *res, + GAsyncResult *result, GError **error); char * (* get_etag) (GFileIOStream *stream); diff --git a/gio/gfileoutputstream.h b/gio/gfileoutputstream.h index b2c27f5c4..3b5f85d3b 100644 --- a/gio/gfileoutputstream.h +++ b/gio/gfileoutputstream.h @@ -84,7 +84,7 @@ struct _GFileOutputStreamClass GAsyncReadyCallback callback, gpointer user_data); GFileInfo * (* query_info_finish) (GFileOutputStream *stream, - GAsyncResult *res, + GAsyncResult *result, GError **error); char * (* get_etag) (GFileOutputStream *stream); diff --git a/gio/gicon.c b/gio/gicon.c index 115a3f5ff..c78acd362 100644 --- a/gio/gicon.c +++ b/gio/gicon.c @@ -397,8 +397,8 @@ ensure_builtin_icon_types (void) * implementations you need to ensure that each #GType is registered * with the type system prior to calling g_icon_new_for_string(). * - * Returns: An object implementing the #GIcon interface or %NULL if - * @error is set. + * Returns: (transfer full): An object implementing the #GIcon + * interface or %NULL if @error is set. * * Since: 2.20 **/ diff --git a/gio/ginetaddress.c b/gio/ginetaddress.c index 429cac25c..0f67e4ff9 100644 --- a/gio/ginetaddress.c +++ b/gio/ginetaddress.c @@ -570,7 +570,7 @@ g_inet_address_to_string (GInetAddress *address) } /** - * g_inet_address_to_bytes: + * g_inet_address_to_bytes: (skip) * @address: a #GInetAddress * * Gets the raw binary address data from @address. diff --git a/gio/ginetsocketaddress.c b/gio/ginetsocketaddress.c index 3f0935b58..071c49ff3 100644 --- a/gio/ginetsocketaddress.c +++ b/gio/ginetsocketaddress.c @@ -289,7 +289,7 @@ g_inet_socket_address_new (GInetAddress *address, * * Gets @address's #GInetAddress. * - * Returns: (transfer full): the #GInetAddress for @address, which must be + * Returns: (transfer none): the #GInetAddress for @address, which must be * g_object_ref()'d if it will be stored * * Since: 2.22 diff --git a/gio/ginputstream.c b/gio/ginputstream.c index 3071a4743..53e84a042 100644 --- a/gio/ginputstream.c +++ b/gio/ginputstream.c @@ -139,7 +139,7 @@ g_input_stream_init (GInputStream *stream) * @stream: a #GInputStream. * @buffer: a buffer to read data into (which should be at least count bytes long). * @count: the number of bytes that will be read from the stream - * @cancellable: optional #GCancellable object, %NULL to ignore. + * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore. * @error: location to store the error occuring, or %NULL to ignore * * Tries to read @count bytes from the stream into the buffer starting at @@ -216,8 +216,8 @@ g_input_stream_read (GInputStream *stream, * @stream: a #GInputStream. * @buffer: a buffer to read data into (which should be at least count bytes long). * @count: the number of bytes that will be read from the stream - * @bytes_read: location to store the number of bytes that was read from the stream - * @cancellable: optional #GCancellable object, %NULL to ignore. + * @bytes_read: (out): location to store the number of bytes that was read from the stream + * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore. * @error: location to store the error occuring, or %NULL to ignore * * Tries to read @count bytes from the stream into the buffer starting at @@ -277,7 +277,7 @@ g_input_stream_read_all (GInputStream *stream, * g_input_stream_skip: * @stream: a #GInputStream. * @count: the number of bytes that will be skipped from the stream - * @cancellable: optional #GCancellable object, %NULL to ignore. + * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore. * @error: location to store the error occuring, or %NULL to ignore * * Tries to skip @count bytes from the stream. Will block during the operation. @@ -393,7 +393,7 @@ g_input_stream_real_skip (GInputStream *stream, /** * g_input_stream_close: * @stream: A #GInputStream. - * @cancellable: optional #GCancellable object, %NULL to ignore. + * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore. * @error: location to store the error occuring, or %NULL to ignore * * Closes the stream, releasing resources related to it. @@ -492,9 +492,9 @@ async_ready_close_callback_wrapper (GObject *source_object, * @count: the number of bytes that will be read from the stream * @io_priority: the I/O priority * of the request. - * @cancellable: optional #GCancellable object, %NULL to ignore. - * @callback: callback to call when the request is satisfied - * @user_data: the data to pass to callback function + * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore. + * @callback: (scope async): callback to call when the request is satisfied + * @user_data: (closure): the data to pass to callback function * * Request an asynchronous read of @count bytes from the stream into the buffer * starting at @buffer. When the operation is finished @callback will be called. @@ -617,9 +617,9 @@ g_input_stream_read_finish (GInputStream *stream, * @count: the number of bytes that will be skipped from the stream * @io_priority: the I/O priority * of the request. - * @cancellable: optional #GCancellable object, %NULL to ignore. - * @callback: callback to call when the request is satisfied - * @user_data: the data to pass to callback function + * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore. + * @callback: (scope async): callback to call when the request is satisfied + * @user_data: (closure): the data to pass to callback function * * Request an asynchronous skip of @count bytes from the stream. * When the operation is finished @callback will be called. @@ -740,9 +740,9 @@ g_input_stream_skip_finish (GInputStream *stream, * @stream: A #GInputStream. * @io_priority: the I/O priority * of the request. - * @cancellable: optional cancellable object - * @callback: callback to call when the request is satisfied - * @user_data: the data to pass to callback function + * @cancellable: (allow-none): optional cancellable object + * @callback: (scope async): callback to call when the request is satisfied + * @user_data: (closure): the data to pass to callback function * * Requests an asynchronous closes of the stream, releasing resources related to it. * When the operation is finished @callback will be called. diff --git a/gio/gio.h b/gio/gio.h index 306012f43..6dcccfe73 100644 --- a/gio/gio.h +++ b/gio/gio.h @@ -93,7 +93,6 @@ #include #include #include -#include #include #include #include diff --git a/gio/gio.symbols b/gio/gio.symbols index 13d1e8acd..fc4b590a9 100644 --- a/gio/gio.symbols +++ b/gio/gio.symbols @@ -84,6 +84,7 @@ g_app_info_launch_uris g_app_info_should_show g_app_info_set_as_default_for_type g_app_info_set_as_default_for_extension +g_app_info_set_as_last_used_for_type g_app_info_add_supports_type g_app_info_can_remove_supports_type g_app_info_remove_supports_type @@ -130,11 +131,12 @@ g_desktop_app_info_new_from_filename g_desktop_app_info_new_from_keyfile g_desktop_app_info_new g_desktop_app_info_get_filename -g_desktop_app_info_get_type G_GNUC_CONST g_desktop_app_info_get_is_hidden -g_desktop_app_info_set_desktop_env +g_desktop_app_info_get_type G_GNUC_CONST +g_desktop_app_info_launch_uris_as_manager g_desktop_app_info_lookup_get_type G_GNUC_CONST g_desktop_app_info_lookup_get_default_for_uri_scheme +g_desktop_app_info_set_desktop_env #endif #endif #endif @@ -663,6 +665,8 @@ g_io_stream_is_closed g_io_stream_has_pending g_io_stream_set_pending g_io_stream_clear_pending +g_io_stream_splice_async +g_io_stream_splice_finish #endif #endif @@ -1033,6 +1037,7 @@ g_file_query_info_flags_get_type G_GNUC_CONST g_file_type_get_type G_GNUC_CONST g_filesystem_preview_type_get_type G_GNUC_CONST g_io_error_enum_get_type G_GNUC_CONST +g_io_stream_splice_flags_get_type G_GNUC_CONST g_mount_mount_flags_get_type G_GNUC_CONST g_mount_operation_result_get_type G_GNUC_CONST g_drive_start_flags_get_type G_GNUC_CONST @@ -1081,6 +1086,7 @@ g_emblemed_icon_new g_emblemed_icon_get_icon g_emblemed_icon_get_emblems g_emblemed_icon_add_emblem +g_emblemed_icon_clear_emblems #endif #endif @@ -1539,13 +1545,20 @@ g_settings_backend_path_changed g_settings_backend_path_writable_changed g_settings_backend_writable_changed g_settings_backend_changed_tree -#endif +g_settings_backend_get_default #endif -#if IN_HEADER(__G_SETTINGS_BACKEND_H__) #if IN_FILE(__G_KEYFILE_SETTINGS_BACKEND_C__) g_keyfile_settings_backend_new #endif + +#if IN_FILE(__G_MEMORY_SETTINGS_BACKEND_C__) +g_memory_settings_backend_new +#endif + +#if IN_FILE(__G_NULL_SETTINGS_BACKEND_C__) +g_null_settings_backend_new +#endif #endif #if IN_HEADER(__G_SETTINGS_H__) @@ -1971,21 +1984,6 @@ g_simple_action_set_enabled #endif #endif -#if IN_HEADER(__G_PERIODIC_H__) -#if IN_FILE(__G_PERIODIC_C__) -g_periodic_block -g_periodic_damaged -g_periodic_get_hz -g_periodic_get_high_priority -g_periodic_get_low_priority -g_periodic_get_type -g_periodic_new -g_periodic_add -g_periodic_remove -g_periodic_unblock -#endif -#endif - #if IN_HEADER(__G_POLLABLE_INPUT_STREAM_H__) #if IN_FILE(__G_POLLABLE_INPUT_STREAM_C__) g_pollable_input_stream_get_type G_GNUC_CONST @@ -2036,25 +2034,27 @@ g_tls_certificate_list_new_from_file g_tls_certificate_new_from_file g_tls_certificate_new_from_files g_tls_certificate_new_from_pem +g_tls_certificate_verify #endif #endif #if IN_HEADER(__G_TLS_CONNECTION_H__) #if IN_FILE(__G_TLS_CONNECTION_C__) g_tls_connection_emit_accept_certificate -g_tls_connection_emit_need_certificate g_tls_connection_get_certificate g_tls_connection_get_peer_certificate +g_tls_connection_get_peer_certificate_errors g_tls_connection_get_rehandshake_mode g_tls_connection_get_require_close_notify +g_tls_connection_get_use_system_certdb g_tls_connection_get_type G_GNUC_CONST g_tls_connection_handshake g_tls_connection_handshake_async g_tls_connection_handshake_finish g_tls_connection_set_certificate -g_tls_connection_set_peer_certificate g_tls_connection_set_rehandshake_mode g_tls_connection_set_require_close_notify +g_tls_connection_set_use_system_certdb #endif #endif diff --git a/gio/gioenums.h b/gio/gioenums.h index 039b5dc50..0b2c5765e 100644 --- a/gio/gioenums.h +++ b/gio/gioenums.h @@ -571,6 +571,27 @@ typedef enum { } GOutputStreamSpliceFlags; +/** + * GIOStreamSpliceFlags: + * @G_IO_STREAM_SPLICE_NONE: Do not close either stream. + * @G_IO_STREAM_SPLICE_CLOSE_STREAM1: Close the first stream after + * the splice. + * @G_IO_STREAM_SPLICE_CLOSE_STREAM2: Close the second stream after + * the splice. + * @G_IO_STREAM_SPLICE_WAIT_FOR_BOTH: Wait for both splice operations to finish + * before calling the callback. + * + * GIOStreamSpliceFlags determine how streams should be spliced. + * + * Since: 2.28 + **/ +typedef enum { + G_IO_STREAM_SPLICE_NONE = 0, + G_IO_STREAM_SPLICE_CLOSE_STREAM1 = (1 << 0), + G_IO_STREAM_SPLICE_CLOSE_STREAM2 = (1 << 1), + G_IO_STREAM_SPLICE_WAIT_FOR_BOTH = (1 << 2) +} GIOStreamSpliceFlags; + /** * GEmblemOrigin: * @G_EMBLEM_ORIGIN_UNKNOWN: Emblem of unknown origin @@ -1251,6 +1272,7 @@ typedef enum /** * GTlsError: + * @G_TLS_ERROR_UNAVAILABLE: No TLS provider is available * @G_TLS_ERROR_MISC: Miscellaneous TLS error * @G_TLS_ERROR_BAD_CERTIFICATE: A certificate could not be parsed * @G_TLS_ERROR_NOT_TLS: The TLS handshake failed because the @@ -1259,7 +1281,7 @@ typedef enum * peer's certificate was not acceptable. * @G_TLS_ERROR_CERTIFICATE_REQUIRED: The TLS handshake failed because * the server requested a client-side certificate, but none was - * provided. See #GTlsConnection::need-certificate. + * provided. See g_tls_connection_set_certificate(). * @G_TLS_ERROR_EOF: The TLS connection was closed without proper * notice, which may indicate an attack. See * g_tls_connection_set_require_close_notify(). @@ -1270,6 +1292,7 @@ typedef enum * Since: 2.28 */ typedef enum { + G_TLS_ERROR_UNAVAILABLE, G_TLS_ERROR_MISC, G_TLS_ERROR_BAD_CERTIFICATE, G_TLS_ERROR_NOT_TLS, diff --git a/gio/giomodule.c b/gio/giomodule.c index cb05270ca..00e8c487b 100644 --- a/gio/giomodule.c +++ b/gio/giomodule.c @@ -26,12 +26,12 @@ #include "giomodule.h" #include "giomodule-priv.h" -#include "gmemorysettingsbackend.h" #include "glocalfilemonitor.h" #include "glocaldirectorymonitor.h" #include "gnativevolumemonitor.h" #include "gproxyresolver.h" #include "gproxy.h" +#include "gsettingsbackendinternal.h" #include "gsocks4proxy.h" #include "gsocks4aproxy.h" #include "gsocks5proxy.h" @@ -598,6 +598,7 @@ _g_io_modules_ensure_loaded (void) } /* Initialize types from built-in "modules" */ + g_null_settings_backend_get_type (); g_memory_settings_backend_get_type (); #if defined(HAVE_SYS_INOTIFY_H) || defined(HAVE_LINUX_INOTIFY_H) _g_inotify_directory_monitor_get_type (); diff --git a/gio/giostream.c b/gio/giostream.c index 7c5bdf02e..db3cd92d2 100644 --- a/gio/giostream.c +++ b/gio/giostream.c @@ -361,7 +361,7 @@ g_io_stream_real_close (GIOStream *stream, /** * g_io_stream_close: * @stream: a #GIOStream - * @cancellable: optional #GCancellable object, %NULL to ignore + * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore * @error: location to store the error occuring, or %NULL to ignore * * Closes the stream, releasing resources related to it. This will also @@ -454,9 +454,9 @@ async_ready_close_callback_wrapper (GObject *source_object, * g_io_stream_close_async: * @stream: a #GIOStream * @io_priority: the io priority of the request - * @callback: callback to call when the request is satisfied - * @user_data: the data to pass to callback function - * @cancellable: optional cancellable object + * @cancellable: (allow-none): optional cancellable object + * @callback: (scope async): callback to call when the request is satisfied + * @user_data: (closure): the data to pass to callback function * * Requests an asynchronous close of the stream, releasing resources * related to it. When the operation is finished @callback will be @@ -606,3 +606,255 @@ g_io_stream_real_close_finish (GIOStream *stream, g_io_stream_real_close_async); return TRUE; } + +typedef struct +{ + GIOStream *stream1; + GIOStream *stream2; + GIOStreamSpliceFlags flags; + gint io_priority; + GCancellable *cancellable; + gulong cancelled_id; + GCancellable *op1_cancellable; + GCancellable *op2_cancellable; + guint completed; + GError *error; +} SpliceContext; + +static void +splice_context_free (SpliceContext *ctx) +{ + g_object_unref (ctx->stream1); + g_object_unref (ctx->stream2); + if (ctx->cancellable != NULL) + g_object_unref (ctx->cancellable); + g_object_unref (ctx->op1_cancellable); + g_object_unref (ctx->op2_cancellable); + g_clear_error (&ctx->error); + g_slice_free (SpliceContext, ctx); +} + +static void +splice_complete (GSimpleAsyncResult *simple, + SpliceContext *ctx) +{ + if (ctx->cancelled_id != 0) + g_cancellable_disconnect (ctx->cancellable, ctx->cancelled_id); + ctx->cancelled_id = 0; + + if (ctx->error != NULL) + g_simple_async_result_set_from_error (simple, ctx->error); + g_simple_async_result_complete (simple); +} + +static void +splice_close_cb (GObject *iostream, + GAsyncResult *res, + gpointer user_data) +{ + GSimpleAsyncResult *simple = user_data; + SpliceContext *ctx; + GError *error = NULL; + + g_io_stream_close_finish (G_IO_STREAM (iostream), res, &error); + + ctx = g_simple_async_result_get_op_res_gpointer (simple); + ctx->completed++; + + /* Keep the first error that occured */ + if (error != NULL && ctx->error == NULL) + ctx->error = error; + else + g_clear_error (&error); + + /* If all operations are done, complete now */ + if (ctx->completed == 4) + splice_complete (simple, ctx); + + g_object_unref (simple); +} + +static void +splice_cb (GObject *ostream, + GAsyncResult *res, + gpointer user_data) +{ + GSimpleAsyncResult *simple = user_data; + SpliceContext *ctx; + GError *error = NULL; + + g_output_stream_splice_finish (G_OUTPUT_STREAM (ostream), res, &error); + + ctx = g_simple_async_result_get_op_res_gpointer (simple); + ctx->completed++; + + /* ignore cancellation error if it was not requested by the user */ + if (error != NULL && + g_error_matches (error, G_IO_ERROR, G_IO_ERROR_CANCELLED) && + (ctx->cancellable == NULL || + !g_cancellable_is_cancelled (ctx->cancellable))) + g_clear_error (&error); + + /* Keep the first error that occured */ + if (error != NULL && ctx->error == NULL) + ctx->error = error; + else + g_clear_error (&error); + + if (ctx->completed == 1 && + (ctx->flags & G_IO_STREAM_SPLICE_WAIT_FOR_BOTH) == 0) + { + /* We don't want to wait for the 2nd operation to finish, cancel it */ + g_cancellable_cancel (ctx->op1_cancellable); + g_cancellable_cancel (ctx->op2_cancellable); + } + else if (ctx->completed == 2) + { + if (ctx->cancellable == NULL || + !g_cancellable_is_cancelled (ctx->cancellable)) + { + g_cancellable_reset (ctx->op1_cancellable); + g_cancellable_reset (ctx->op2_cancellable); + } + + /* Close the IO streams if needed */ + if ((ctx->flags & G_IO_STREAM_SPLICE_CLOSE_STREAM1) != 0) + g_io_stream_close_async (ctx->stream1, ctx->io_priority, + ctx->op1_cancellable, splice_close_cb, g_object_ref (simple)); + else + ctx->completed++; + + if ((ctx->flags & G_IO_STREAM_SPLICE_CLOSE_STREAM2) != 0) + g_io_stream_close_async (ctx->stream2, ctx->io_priority, + ctx->op2_cancellable, splice_close_cb, g_object_ref (simple)); + else + ctx->completed++; + + /* If all operations are done, complete now */ + if (ctx->completed == 4) + splice_complete (simple, ctx); + } + + g_object_unref (simple); +} + +static void +splice_cancelled_cb (GCancellable *cancellable, + GSimpleAsyncResult *simple) +{ + SpliceContext *ctx; + + ctx = g_simple_async_result_get_op_res_gpointer (simple); + g_cancellable_cancel (ctx->op1_cancellable); + g_cancellable_cancel (ctx->op2_cancellable); +} + +/** + * g_io_stream_splice_async: + * @stream1: a #GIOStream. + * @stream2: a #GIOStream. + * @flags: a set of #GIOStreamSpliceFlags. + * @io_priority: the io priority of the request. + * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore. + * @callback: (scope async): a #GAsyncReadyCallback. + * @user_data: (closure): user data passed to @callback. + * + * Asyncronously splice the output stream of @stream1 to the input stream of + * @stream2, and splice the output stream of @stream2 to the input stream of + * @stream1. + * + * When the operation is finished @callback will be called. + * You can then call g_io_stream_splice_finish() to get the + * result of the operation. + * + * Since: 2.28 + **/ +void +g_io_stream_splice_async (GIOStream *stream1, + GIOStream *stream2, + GIOStreamSpliceFlags flags, + gint io_priority, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data) +{ + GSimpleAsyncResult *simple; + SpliceContext *ctx; + GInputStream *istream; + GOutputStream *ostream; + + if (cancellable != NULL && g_cancellable_is_cancelled (cancellable)) + { + g_simple_async_report_error_in_idle (NULL, callback, + user_data, G_IO_ERROR, G_IO_ERROR_CANCELLED, + "Operation has been cancelled"); + return; + } + + ctx = g_slice_new0 (SpliceContext); + ctx->stream1 = g_object_ref (stream1); + ctx->stream2 = g_object_ref (stream2); + ctx->flags = flags; + ctx->io_priority = io_priority; + ctx->op1_cancellable = g_cancellable_new (); + ctx->op2_cancellable = g_cancellable_new (); + ctx->completed = 0; + + simple = g_simple_async_result_new (NULL, callback, user_data, + g_io_stream_splice_finish); + g_simple_async_result_set_op_res_gpointer (simple, ctx, + (GDestroyNotify) splice_context_free); + + if (cancellable != NULL) + { + ctx->cancellable = g_object_ref (cancellable); + ctx->cancelled_id = g_cancellable_connect (cancellable, + G_CALLBACK (splice_cancelled_cb), g_object_ref (simple), + g_object_unref); + } + + istream = g_io_stream_get_input_stream (stream1); + ostream = g_io_stream_get_output_stream (stream2); + g_output_stream_splice_async (ostream, istream, G_OUTPUT_STREAM_SPLICE_NONE, + io_priority, ctx->op1_cancellable, splice_cb, + g_object_ref (simple)); + + istream = g_io_stream_get_input_stream (stream2); + ostream = g_io_stream_get_output_stream (stream1); + g_output_stream_splice_async (ostream, istream, G_OUTPUT_STREAM_SPLICE_NONE, + io_priority, ctx->op2_cancellable, splice_cb, + g_object_ref (simple)); + + g_object_unref (simple); +} + +/** + * g_io_stream_splice_finish: + * @result: a #GAsyncResult. + * @error: a #GError location to store the error occuring, or %NULL to + * ignore. + * + * Finishes an asynchronous io stream splice operation. + * + * Returns: %TRUE on success, %FALSE otherwise. + * + * Since: 2.28 + **/ +gboolean +g_io_stream_splice_finish (GAsyncResult *result, + GError **error) +{ + GSimpleAsyncResult *simple; + + g_return_val_if_fail (G_IS_SIMPLE_ASYNC_RESULT (result), FALSE); + + simple = G_SIMPLE_ASYNC_RESULT (result); + + if (g_simple_async_result_propagate_error (simple, error)) + return FALSE; + + g_return_val_if_fail (g_simple_async_result_is_valid (result, NULL, + g_io_stream_splice_finish), FALSE); + + return TRUE; +} diff --git a/gio/giostream.h b/gio/giostream.h index 048fd4f10..90283ddbd 100644 --- a/gio/giostream.h +++ b/gio/giostream.h @@ -88,6 +88,17 @@ GType g_io_stream_get_type (void) G_GNUC_CONST; GInputStream * g_io_stream_get_input_stream (GIOStream *stream); GOutputStream *g_io_stream_get_output_stream (GIOStream *stream); +void g_io_stream_splice_async (GIOStream *stream1, + GIOStream *stream2, + GIOStreamSpliceFlags flags, + int io_priority, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); + +gboolean g_io_stream_splice_finish (GAsyncResult *result, + GError **error); + gboolean g_io_stream_close (GIOStream *stream, GCancellable *cancellable, GError **error); diff --git a/gio/gloadableicon.c b/gio/gloadableicon.c index 1cad7fc32..db86fd04e 100644 --- a/gio/gloadableicon.c +++ b/gio/gloadableicon.c @@ -62,8 +62,9 @@ g_loadable_icon_default_init (GLoadableIconIface *iface) * g_loadable_icon_load: * @icon: a #GLoadableIcon. * @size: an integer. - * @type: a location to store the type of the loaded icon, %NULL to ignore. - * @cancellable: optional #GCancellable object, %NULL to ignore. + * @type: (out) (allow-none): a location to store the type of the + * loaded icon, %NULL to ignore. + * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore. * @error: a #GError location to store the error occuring, or %NULL to * ignore. * @@ -92,9 +93,10 @@ g_loadable_icon_load (GLoadableIcon *icon, * g_loadable_icon_load_async: * @icon: a #GLoadableIcon. * @size: an integer. - * @cancellable: optional #GCancellable object, %NULL to ignore. - * @callback: a #GAsyncReadyCallback to call when the request is satisfied - * @user_data: the data to pass to callback function + * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore. + * @callback: (scope async): a #GAsyncReadyCallback to call when the + * request is satisfied + * @user_data: (closure): the data to pass to callback function * * Loads an icon asynchronously. To finish this function, see * g_loadable_icon_load_finish(). For the synchronous, blocking diff --git a/gio/glocalfile.c b/gio/glocalfile.c index 4641f2e91..9e4aace78 100644 --- a/gio/glocalfile.c +++ b/gio/glocalfile.c @@ -701,6 +701,8 @@ get_fs_type (long f_type) return "xfs"; case 0x012FD16D: return "xiafs"; + case 0x52345362: + return "reiser4"; default: return NULL; } diff --git a/gio/gmemoryinputstream.c b/gio/gmemoryinputstream.c index 397c6a5b9..9107b22a8 100644 --- a/gio/gmemoryinputstream.c +++ b/gio/gmemoryinputstream.c @@ -203,9 +203,9 @@ g_memory_input_stream_new (void) /** * g_memory_input_stream_new_from_data: - * @data: input data + * @data: (array length=len) (element-type guint8): input data * @len: length of the data, may be -1 if @data is a nul-terminated string - * @destroy: function that is called to free @data, or %NULL + * @destroy: (allow-none): function that is called to free @data, or %NULL * * Creates a new #GMemoryInputStream with data in memory of a given size. * @@ -229,9 +229,9 @@ g_memory_input_stream_new_from_data (const void *data, /** * g_memory_input_stream_add_data: * @stream: a #GMemoryInputStream - * @data: input data + * @data: (array length=len) (element-type guint8): input data * @len: length of the data, may be -1 if @data is a nul-terminated string - * @destroy: function that is called to free @data, or %NULL + * @destroy: (allow-none): function that is called to free @data, or %NULL * * Appends @data to data that can be read from the input stream */ diff --git a/gio/gmemoryoutputstream.c b/gio/gmemoryoutputstream.c index 3291be4ed..b6b532d8a 100644 --- a/gio/gmemoryoutputstream.c +++ b/gio/gmemoryoutputstream.c @@ -194,7 +194,7 @@ g_memory_output_stream_class_init (GMemoryOutputStreamClass *klass) G_PARAM_STATIC_STRINGS)); /** - * GMemoryOutputStream:realloc-function: + * GMemoryOutputStream:realloc-function: (skip) * * Function with realloc semantics called to enlarge the buffer. * @@ -209,7 +209,7 @@ g_memory_output_stream_class_init (GMemoryOutputStreamClass *klass) G_PARAM_STATIC_STRINGS)); /** - * GMemoryOutputStream:destroy-function: + * GMemoryOutputStream:destroy-function: (skip) * * Function called with the buffer as argument when the stream is destroyed. * @@ -328,7 +328,7 @@ g_memory_output_stream_init (GMemoryOutputStream *stream) } /** - * g_memory_output_stream_new: + * g_memory_output_stream_new: (skip) * @data: pointer to a chunk of memory to use, or %NULL * @size: the size of @data * @realloc_function: a function with realloc() semantics (like g_realloc()) @@ -376,7 +376,7 @@ g_memory_output_stream_new (gpointer data, } /** - * g_memory_output_stream_get_data: (skip) + * g_memory_output_stream_get_data: * @ostream: a #GMemoryOutputStream * * Gets any loaded data from the @ostream. @@ -384,7 +384,7 @@ g_memory_output_stream_new (gpointer data, * Note that the returned pointer may become invalid on the next * write or truncate operation on the stream. * - * Returns: pointer to the stream's data + * Returns: (transfer none): pointer to the stream's data **/ gpointer g_memory_output_stream_get_data (GMemoryOutputStream *ostream) @@ -398,7 +398,7 @@ g_memory_output_stream_get_data (GMemoryOutputStream *ostream) * g_memory_output_stream_get_size: * @ostream: a #GMemoryOutputStream * - * Gets the size of the currently allocated data area (availible from + * Gets the size of the currently allocated data area (available from * g_memory_output_stream_get_data()). If the stream isn't * growable (no realloc was passed to g_memory_output_stream_new()) then * this is the maximum size of the stream and further writes diff --git a/gio/gmemorysettingsbackend.c b/gio/gmemorysettingsbackend.c index 8176b6076..eceebc116 100644 --- a/gio/gmemorysettingsbackend.c +++ b/gio/gmemorysettingsbackend.c @@ -22,9 +22,8 @@ #include "config.h" -#include "gmemorysettingsbackend.h" #include "gsimplepermission.h" -#include "gsettingsbackend.h" +#include "gsettingsbackendinternal.h" #include "giomodule.h" @@ -370,3 +369,9 @@ g_memory_settings_backend_class_init (GMemorySettingsBackendClass *class) backend_class->remove = g_memory_settings_backend_remove; object_class->finalize = g_memory_settings_backend_finalize; } + +GSettingsBackend * +g_memory_settings_backend_new (void) +{ + return g_object_new (G_TYPE_MEMORY_SETTINGS_BACKEND, NULL); +} diff --git a/gio/gmemorysettingsbackend.h b/gio/gmemorysettingsbackend.h deleted file mode 100644 index 9b7756c39..000000000 --- a/gio/gmemorysettingsbackend.h +++ /dev/null @@ -1,30 +0,0 @@ -/* - * Copyright © 2010 Codethink Limited - * - * 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 of the licence, 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, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - * - * Author: Ryan Lortie - */ - -#ifndef __GMEMORY_SETTINGS_BACKEND_H__ -#define __GMEMORY_SETTINGS_BACKEND_H__ - -#include - -G_GNUC_INTERNAL -GType g_memory_settings_backend_get_type (void); - -#endif /* __G_MEMORY_SETTINGS_BACKEND_H__ */ diff --git a/gio/gmount.c b/gio/gmount.c index 983a9feba..4868fad33 100644 --- a/gio/gmount.c +++ b/gio/gmount.c @@ -329,8 +329,8 @@ g_mount_can_eject (GMount *mount) * g_mount_unmount: * @mount: a #GMount. * @flags: flags affecting the operation - * @cancellable: optional #GCancellable object, %NULL to ignore. - * @callback: a #GAsyncReadyCallback, or %NULL. + * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore. + * @callback: (allow-none): a #GAsyncReadyCallback, or %NULL. * @user_data: user data passed to @callback. * * Unmounts a mount. This is an asynchronous operation, and is @@ -408,8 +408,8 @@ g_mount_unmount_finish (GMount *mount, * g_mount_eject: * @mount: a #GMount. * @flags: flags affecting the unmount if required for eject - * @cancellable: optional #GCancellable object, %NULL to ignore. - * @callback: a #GAsyncReadyCallback, or %NULL. + * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore. + * @callback: (allow-none): a #GAsyncReadyCallback, or %NULL. * @user_data: user data passed to @callback. * * Ejects a mount. This is an asynchronous operation, and is @@ -486,9 +486,10 @@ g_mount_eject_finish (GMount *mount, * g_mount_unmount_with_operation: * @mount: a #GMount. * @flags: flags affecting the operation - * @mount_operation: a #GMountOperation or %NULL to avoid user interaction. - * @cancellable: optional #GCancellable object, %NULL to ignore. - * @callback: a #GAsyncReadyCallback, or %NULL. + * @mount_operation: (allow-none): a #GMountOperation or %NULL to avoid + * user interaction. + * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore. + * @callback: (allow-none): a #GAsyncReadyCallback, or %NULL. * @user_data: user data passed to @callback. * * Unmounts a mount. This is an asynchronous operation, and is @@ -573,9 +574,10 @@ g_mount_unmount_with_operation_finish (GMount *mount, * g_mount_eject_with_operation: * @mount: a #GMount. * @flags: flags affecting the unmount if required for eject - * @mount_operation: a #GMountOperation or %NULL to avoid user interaction. - * @cancellable: optional #GCancellable object, %NULL to ignore. - * @callback: a #GAsyncReadyCallback, or %NULL. + * @mount_operation: (allow-none): a #GMountOperation or %NULL to avoid + * user interaction. + * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore. + * @callback: (allow-none): a #GAsyncReadyCallback, or %NULL. * @user_data: user data passed to @callback. * * Ejects a mount. This is an asynchronous operation, and is @@ -658,9 +660,10 @@ g_mount_eject_with_operation_finish (GMount *mount, * g_mount_remount: * @mount: a #GMount. * @flags: flags affecting the operation - * @mount_operation: a #GMountOperation or %NULL to avoid user interaction. - * @cancellable: optional #GCancellable object, %NULL to ignore. - * @callback: a #GAsyncReadyCallback, or %NULL. + * @mount_operation: (allow-none): a #GMountOperation or %NULL to avoid + * user interaction. + * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore. + * @callback: (allow-none): a #GAsyncReadyCallback, or %NULL. * @user_data: user data passed to @callback. * * Remounts a mount. This is an asynchronous operation, and is @@ -741,7 +744,7 @@ g_mount_remount_finish (GMount *mount, * @mount: a #GMount * @force_rescan: Whether to force a rescan of the content. * Otherwise a cached result will be used if available - * @cancellable: optional #GCancellable object, %NULL to ignore + * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore * @callback: a #GAsyncReadyCallback * @user_data: user data passed to @callback * @@ -831,7 +834,7 @@ g_mount_guess_content_type_finish (GMount *mount, * @mount: a #GMount * @force_rescan: Whether to force a rescan of the content. * Otherwise a cached result will be used if available - * @cancellable: optional #GCancellable object, %NULL to ignore + * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore * @error: a #GError location to store the error occuring, or %NULL to * ignore * diff --git a/gio/gnetworkaddress.c b/gio/gnetworkaddress.c index 3f3962d21..3a58325c6 100644 --- a/gio/gnetworkaddress.c +++ b/gio/gnetworkaddress.c @@ -781,7 +781,8 @@ typedef struct { GSocketAddressEnumerator parent_instance; GNetworkAddress *addr; - GList *a; + GList *addresses; + GList *next; } GNetworkAddressAddressEnumerator; typedef struct { @@ -811,31 +812,34 @@ g_network_address_address_enumerator_next (GSocketAddressEnumerator *enumerator G_NETWORK_ADDRESS_ADDRESS_ENUMERATOR (enumerator); GSocketAddress *sockaddr; - if (!addr_enum->addr->priv->sockaddrs) + if (addr_enum->addresses == NULL) { - GResolver *resolver = g_resolver_get_default (); - GList *addresses; + if (!addr_enum->addr->priv->sockaddrs) + { + GResolver *resolver = g_resolver_get_default (); + GList *addresses; - addresses = g_resolver_lookup_by_name (resolver, - addr_enum->addr->priv->hostname, - cancellable, error); - g_object_unref (resolver); + addresses = g_resolver_lookup_by_name (resolver, + addr_enum->addr->priv->hostname, + cancellable, error); + g_object_unref (resolver); - if (!addresses) - return NULL; + if (!addresses) + return NULL; - g_network_address_set_addresses (addr_enum->addr, addresses); - addr_enum->a = addr_enum->addr->priv->sockaddrs; + g_network_address_set_addresses (addr_enum->addr, addresses); + } + + addr_enum->addresses = addr_enum->addr->priv->sockaddrs; + addr_enum->next = addr_enum->addresses; } - if (!addr_enum->a) + if (addr_enum->next == NULL) return NULL; - else - { - sockaddr = addr_enum->a->data; - addr_enum->a = addr_enum->a->next; - return g_object_ref (sockaddr); - } + + sockaddr = addr_enum->next->data; + addr_enum->next = addr_enum->next->next; + return g_object_ref (sockaddr); } static void @@ -850,24 +854,21 @@ got_addresses (GObject *source_object, GList *addresses; GError *error = NULL; - addresses = g_resolver_lookup_by_name_finish (resolver, result, &error); if (!addr_enum->addr->priv->sockaddrs) { + addresses = g_resolver_lookup_by_name_finish (resolver, result, &error); + if (error) - { - g_simple_async_result_take_error (simple, error); - } + g_simple_async_result_take_error (simple, error); else - { - g_network_address_set_addresses (addr_enum->addr, addresses); - addr_enum->a = addr_enum->addr->priv->sockaddrs; - } + g_network_address_set_addresses (addr_enum->addr, addresses); } - else if (error) - g_error_free (error); g_object_unref (resolver); + addr_enum->addresses = addr_enum->addr->priv->sockaddrs; + addr_enum->next = addr_enum->addresses; + g_simple_async_result_complete (simple); g_object_unref (simple); } @@ -886,21 +887,26 @@ g_network_address_address_enumerator_next_async (GSocketAddressEnumerator *enum callback, user_data, g_network_address_address_enumerator_next_async); - if (!addr_enum->addr->priv->sockaddrs) + if (addr_enum->addresses == NULL) { - GResolver *resolver = g_resolver_get_default (); + if (!addr_enum->addr->priv->sockaddrs) + { + GResolver *resolver = g_resolver_get_default (); - g_simple_async_result_set_op_res_gpointer (simple, g_object_ref (addr_enum), g_object_unref); - g_resolver_lookup_by_name_async (resolver, - addr_enum->addr->priv->hostname, - cancellable, - got_addresses, simple); - } - else - { - g_simple_async_result_complete_in_idle (simple); - g_object_unref (simple); + g_simple_async_result_set_op_res_gpointer (simple, g_object_ref (addr_enum), g_object_unref); + g_resolver_lookup_by_name_async (resolver, + addr_enum->addr->priv->hostname, + cancellable, + got_addresses, simple); + return; + } + + addr_enum->addresses = addr_enum->addr->priv->sockaddrs; + addr_enum->next = addr_enum->addresses; } + + g_simple_async_result_complete_in_idle (simple); + g_object_unref (simple); } static GSocketAddress * @@ -915,12 +921,12 @@ g_network_address_address_enumerator_next_finish (GSocketAddressEnumerator *enu if (g_simple_async_result_propagate_error (simple, error)) return NULL; - else if (!addr_enum->a) + else if (!addr_enum->next) return NULL; else { - sockaddr = addr_enum->a->data; - addr_enum->a = addr_enum->a->next; + sockaddr = addr_enum->next->data; + addr_enum->next = addr_enum->next->next; return g_object_ref (sockaddr); } } diff --git a/gio/gnullsettingsbackend.c b/gio/gnullsettingsbackend.c index a2bead09d..507aa8c9d 100644 --- a/gio/gnullsettingsbackend.c +++ b/gio/gnullsettingsbackend.c @@ -21,7 +21,8 @@ #include "config.h" -#include "gnullsettingsbackend.h" +#include "gsettingsbackendinternal.h" +#include "giomodule.h" #include "gsimplepermission.h" @@ -34,10 +35,11 @@ typedef GSettingsBackendClass GNullSettingsBackendClass; typedef GSettingsBackend GNullSettingsBackend; -static GType g_null_settings_backend_get_type (void); -G_DEFINE_TYPE (GNullSettingsBackend, - g_null_settings_backend, - G_TYPE_SETTINGS_BACKEND) +G_DEFINE_TYPE_WITH_CODE (GNullSettingsBackend, + g_null_settings_backend, + G_TYPE_SETTINGS_BACKEND, + g_io_extension_point_implement (G_SETTINGS_BACKEND_EXTENSION_POINT_NAME, + g_define_type_id, "null", 10)) static GVariant * g_null_settings_backend_read (GSettingsBackend *backend, diff --git a/gio/gnullsettingsbackend.h b/gio/gnullsettingsbackend.h deleted file mode 100644 index ea07f5298..000000000 --- a/gio/gnullsettingsbackend.h +++ /dev/null @@ -1,30 +0,0 @@ -/* - * Copyright © 2010 Codethink Limited - * - * 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 of the licence, 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, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - * - * Author: Ryan Lortie - */ - -#ifndef __G_NULL_SETTINGS_BACKEND_H__ -#define __G_NULL_SETTINGS_BACKEND_H__ - -#include - -G_GNUC_INTERNAL -GSettingsBackend * g_null_settings_backend_new (void); - -#endif /* __G_NULL_SETTINGS_BACKEND_H__ */ diff --git a/gio/goutputstream.c b/gio/goutputstream.c index 5152de56c..02f013e41 100644 --- a/gio/goutputstream.c +++ b/gio/goutputstream.c @@ -150,7 +150,7 @@ g_output_stream_init (GOutputStream *stream) * @stream: a #GOutputStream. * @buffer: (array length=count) (element-type guint8): the buffer containing the data to write. * @count: the number of bytes to write - * @cancellable: optional cancellable object + * @cancellable: (allow-none): optional cancellable object * @error: location to store the error occuring, or %NULL to ignore * * Tries to write @count bytes from @buffer into the stream. Will block @@ -229,9 +229,9 @@ g_output_stream_write (GOutputStream *stream, * @stream: a #GOutputStream. * @buffer: (array length=count) (element-type guint8): the buffer containing the data to write. * @count: the number of bytes to write - * @bytes_written: location to store the number of bytes that was + * @bytes_written: (out): location to store the number of bytes that was * written to the stream - * @cancellable: optional #GCancellable object, %NULL to ignore. + * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore. * @error: location to store the error occuring, or %NULL to ignore * * Tries to write @count bytes from @buffer into the stream. Will block @@ -290,7 +290,7 @@ g_output_stream_write_all (GOutputStream *stream, /** * g_output_stream_flush: * @stream: a #GOutputStream. - * @cancellable: optional cancellable object + * @cancellable: (allow-none): optional cancellable object * @error: location to store the error occuring, or %NULL to ignore * * Flushed any outstanding buffers in the stream. Will block during @@ -341,7 +341,7 @@ g_output_stream_flush (GOutputStream *stream, * @stream: a #GOutputStream. * @source: a #GInputStream. * @flags: a set of #GOutputStreamSpliceFlags. - * @cancellable: optional #GCancellable object, %NULL to ignore. + * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore. * @error: a #GError location to store the error occuring, or %NULL to * ignore. * @@ -468,7 +468,7 @@ g_output_stream_real_splice (GOutputStream *stream, /** * g_output_stream_close: * @stream: A #GOutputStream. - * @cancellable: optional cancellable object + * @cancellable: (allow-none): optional cancellable object * @error: location to store the error occuring, or %NULL to ignore * * Closes the stream, releasing resources related to it. @@ -655,9 +655,9 @@ async_ready_close_flushed_callback_wrapper (GObject *source_object, * @buffer: (array length=count) (element-type guint8): the buffer containing the data to write. * @count: the number of bytes to write * @io_priority: the io priority of the request. - * @cancellable: optional #GCancellable object, %NULL to ignore. - * @callback: callback to call when the request is satisfied - * @user_data: the data to pass to callback function + * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore. + * @callback: (scope async): callback to call when the request is satisfied + * @user_data: (closure): the data to pass to callback function * * Request an asynchronous write of @count bytes from @buffer into * the stream. When the operation is finished @callback will be called. @@ -812,9 +812,9 @@ async_ready_splice_callback_wrapper (GObject *source_object, * @source: a #GInputStream. * @flags: a set of #GOutputStreamSpliceFlags. * @io_priority: the io priority of the request. - * @cancellable: optional #GCancellable object, %NULL to ignore. - * @callback: a #GAsyncReadyCallback. - * @user_data: user data passed to @callback. + * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore. + * @callback: (scope async): a #GAsyncReadyCallback. + * @user_data: (closure): user data passed to @callback. * * Splices a stream asynchronously. * When the operation is finished @callback will be called. @@ -908,9 +908,9 @@ g_output_stream_splice_finish (GOutputStream *stream, * g_output_stream_flush_async: * @stream: a #GOutputStream. * @io_priority: the io priority of the request. - * @cancellable: optional #GCancellable object, %NULL to ignore. - * @callback: a #GAsyncReadyCallback to call when the request is satisfied - * @user_data: the data to pass to callback function + * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore. + * @callback: (scope async): a #GAsyncReadyCallback to call when the request is satisfied + * @user_data: (closure): the data to pass to callback function * * Flushes a stream asynchronously. * For behaviour details see g_output_stream_flush(). @@ -1003,9 +1003,9 @@ g_output_stream_flush_finish (GOutputStream *stream, * g_output_stream_close_async: * @stream: A #GOutputStream. * @io_priority: the io priority of the request. - * @callback: callback to call when the request is satisfied - * @user_data: the data to pass to callback function - * @cancellable: optional cancellable object + * @cancellable: (allow-none): optional cancellable object + * @callback: (scope async): callback to call when the request is satisfied + * @user_data: (closure): the data to pass to callback function * * Requests an asynchronous close of the stream, releasing resources * related to it. When the operation is finished @callback will be diff --git a/gio/goutputstream.h b/gio/goutputstream.h index e28bded85..995d0dd44 100644 --- a/gio/goutputstream.h +++ b/gio/goutputstream.h @@ -100,7 +100,7 @@ struct _GOutputStreamClass int io_priority, GCancellable *cancellable, GAsyncReadyCallback callback, - gpointer data); + gpointer user_data); gssize (* splice_finish) (GOutputStream *stream, GAsyncResult *result, GError **error); diff --git a/gio/gperiodic.c b/gio/gperiodic.c deleted file mode 100644 index af7a2d583..000000000 --- a/gio/gperiodic.c +++ /dev/null @@ -1,765 +0,0 @@ -/* - * Copyright © 2010 Codethink Limited - * - * 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 of the - * licence, 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, write to the Free Software - * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, - * USA. - * - * Author: Ryan Lortie - */ - -#include "config.h" - -#include "gperiodic.h" - -#include "gio-marshal.h" - -/** - * SECTION:gperiodic - * @title: GPeriodic - * @short_description: a periodic event clock - * - * #GPeriodic is a periodic event clock that fires a configurable number - * of times per second and is capable of being put into synch with an - * external time source. - * - * A number of #GPeriodicTickFuncs are registered with - * g_periodic_add() and are called each time the clock "ticks". - * - * The tick functions can report "damage" (ie: updates that need to be - * performed) that are handled in a "repair" phase that follows all the - * tick functions having been run. It is also possible to report damage - * while the clock is not running, in which case the rate of repairs - * will be rate limited as if the clock were running. - * - * #GPeriodic has a configurable priority range consisting of a high and - * low value. Other sources with a priority higher than the high value - * might starve #GPeriodic and sources with the priority lower than the - * low value may be starved by #GPeriodic. - * - * #GPeriodic will engage in dynamic scheduling with respect to sources - * that have their priorities within the high to low range. A given - * #GPeriodic will ensure that the events dispatched from itself are - * generally using less than 50% of the CPU (on average) if other tasks - * are pending. If no other sources within the range are pending then - * #GPeriodic will use up to all of the available CPU (which can lead to - * starvation of lower-priority sources, as mentioned above). The 50% - * figure is entirely arbitrary and may change or become configurable in - * the future. - * - * For example, if a #GPeriodic has been set to run at 10Hz and a - * particular iteration uses 140ms of time, then 2 ticks will be - * "skipped" to give other sources a chance to run (ie: the next tick - * will occur 300ms later rather than 100ms later, giving 160ms of time - * for other sources). - * - * This means that the high priority value for #GPeriodic should be set - * quite high (above anything else) and the low priority value for - * #GPeriodic should be set lower than everything except true "idle" - * handlers (ie: things that you want to run only when the program is - * truly idle). - * - * #GPeriodic generally assumes that although the things attached to it - * may be poorly behaved in terms of non-yielding behaviour (either - * individually or in aggregate), the other sources on the main loop - * should be "well behaved". Other sources should try not to block the - * CPU for a substantial portion of the periodic interval. - * - * The sources attached to a #GPeriodic are permitted to be somewhat - * less well-behaved because they are generally rendering the UI for the - * user (which should be done smoothly) and also because they will be - * throttled by #GPeriodic. - * - * #GPeriodic is intended to be used as a paint clock for managing - * geometry updates and painting of windows. - * - * Since: 2.28 - **/ - -/** - * GPeriodic: - * - * #GPeriodic is an opaque structure type. - * - * Since: 2.28 - **/ - -typedef struct -{ - GPeriodicTickFunc callback; - gpointer user_data; - GDestroyNotify notify; - guint id; -} GPeriodicTick; - -typedef struct -{ - GSource source; - GPeriodic *periodic; -} GPeriodicSource; - -struct _GPeriodicPrivate -{ - GSource *source; /* GPeriodicSource */ - guint64 last_run; - guint blocked; - guint hz; - guint skip_frames; - guint stop_skip_id; - gint low_priority; - - GSList *ticks; /* List */ - - guint damaged : 1; - - /* debug */ - guint in_tick : 1; - guint in_repair : 1; -}; - -G_DEFINE_TYPE (GPeriodic, g_periodic, G_TYPE_OBJECT) - -#define PERIODIC_FROM_SOURCE(src) (((GPeriodicSource *) (src))->periodic) - -enum -{ - PROP_NONE, - PROP_HZ, - PROP_HIGH_PRIORITY, - PROP_LOW_PRIORITY -}; - -static guint g_periodic_tick; -static guint g_periodic_repair; - -static guint64 -g_periodic_get_microticks (GPeriodic *periodic) -{ - return g_source_get_time (periodic->priv->source) * periodic->priv->hz; -} - -static gboolean -g_periodic_stop_skip (gpointer data) -{ - GPeriodic *periodic = data; - - periodic->priv->skip_frames = 0; - - g_message ("Skipping frames ends"); - - periodic->priv->stop_skip_id = 0; - - return FALSE; -} - -static void -g_periodic_real_tick (GPeriodic *periodic, - gint64 timestamp) -{ - GSList *iter; - - for (iter = periodic->priv->ticks; iter; iter = iter->next) - { - GPeriodicTick *tick = iter->data; - - tick->callback (periodic, timestamp, tick->user_data); - } -} - -static void -g_periodic_real_repair (GPeriodic *periodic) -{ - periodic->priv->damaged = FALSE; -} - -static void -g_periodic_run (GPeriodic *periodic) -{ - gint64 start, usec; - - g_assert (periodic->priv->blocked == 0); - - start = g_get_monotonic_time (); - - if (periodic->priv->ticks) - { - guint64 microseconds; - - periodic->priv->in_tick = TRUE; - microseconds = periodic->priv->last_run / periodic->priv->hz; - g_signal_emit (periodic, g_periodic_tick, 0, microseconds); - periodic->priv->in_tick = FALSE; - } - - g_assert (periodic->priv->blocked == 0); - - if (periodic->priv->damaged) - { - periodic->priv->in_repair = TRUE; - g_signal_emit (periodic, g_periodic_repair, 0); - periodic->priv->in_repair = FALSE; - } - - g_assert (!periodic->priv->damaged); - - usec = g_get_monotonic_time () - start; - g_assert (usec >= 0); - - /* Take the time it took to render, multiply by two and round down to - * a whole number of frames. This ensures that we don't take more - * than 50% of the CPU with rendering. - * - * Examples (at 10fps for easy math. 1 frame = 100ms): - * - * 0-49ms to render: no frames skipped - * - * We used less than half of the time to render. OK. We will run - * the next frame 100ms after this one ran (no skips). - * - * 50-99ms to render: 1 frame skipped - * - * We used more than half the time. Skip one frame so that we run - * 200ms later rather than 100ms later. We already used up to - * 99ms worth of that 200ms window, so that gives 101ms for other - * things to run (50%). For figures closer to 50ms the other - * stuff will actually get more than 50%. - * - * 100-150ms to render: 2 frames skipped, etc. - */ - periodic->priv->skip_frames = 2 * usec * periodic->priv->hz / 1000000; - - if (periodic->priv->skip_frames) - { - g_message ("Slow painting; (possibly) skipping %d frames\n", - periodic->priv->skip_frames); - - if (periodic->priv->stop_skip_id == 0) - periodic->priv->stop_skip_id = - g_idle_add_full (periodic->priv->low_priority, - g_periodic_stop_skip, - periodic, NULL); - } -} - -static gboolean -g_periodic_prepare (GSource *source, - gint *timeout) -{ - GPeriodic *periodic = PERIODIC_FROM_SOURCE (source); - - if ((periodic->priv->ticks || periodic->priv->damaged) && !periodic->priv->blocked) - /* We need to run. */ - { - gint64 remaining; - - remaining = periodic->priv->last_run + 1000000 * (1 + periodic->priv->skip_frames) - - g_periodic_get_microticks (periodic); - - if (remaining > 0) - /* It's too soon. Wait some more before running. */ - { - /* Round-up the timeout. - * - * If we round down, then we will quite often wake to discover - * that not enough time has passed and want to sleep again, so - * save ourselves the future bother. - */ - *timeout = (remaining + periodic->priv->hz - 1) / periodic->priv->hz / 1000; - - return FALSE; - } - - else - /* Enough time has passed. Run now. */ - { - *timeout = 0; - return TRUE; - } - } - else - /* We shouldn't be running now at all. */ - { - *timeout = -1; - return FALSE; - } -} - -static gboolean -g_periodic_check (GSource *source) -{ - GPeriodic *periodic = PERIODIC_FROM_SOURCE (source); - - if ((periodic->priv->ticks || periodic->priv->damaged) && !periodic->priv->blocked) - /* We need to run. */ - { - guint64 now = g_periodic_get_microticks (periodic); - - /* Run if it's not too soon. */ - return !(now < periodic->priv->last_run + 1000000 * (periodic->priv->skip_frames + 1)); - } - - else - /* We shouldn't be running now at all. */ - return FALSE; -} - -static gboolean -g_periodic_dispatch (GSource *source, - GSourceFunc callback, - gpointer user_data) -{ - GPeriodic *periodic = PERIODIC_FROM_SOURCE (source); - guint64 elapsed_ticks; - guint64 now; - - g_assert (periodic->priv->blocked == 0); - - /* Update the last_run. - * - * In the normal case we want to add exactly 1 tick to it. This - * ensures that the clock runs at the proper rate in the normal case - * (ie: the dispatch overhead time is not lost). - * - * If more than one tick has elapsed, we set it equal to the current - * time. This has two purposes: - * - * - sets last_run to something reasonable if the clock is running - * for the first time or after a long period of inactivity - * - * - resets our stride if we missed a frame - */ - now = g_periodic_get_microticks (periodic); - elapsed_ticks = (now - periodic->priv->last_run) / 1000000; - g_assert (elapsed_ticks > 0); - - if G_LIKELY (elapsed_ticks == 1) - periodic->priv->last_run += 1000000; - else - periodic->priv->last_run = now; - - g_periodic_run (periodic); - - return TRUE; -} - -static void -g_periodic_get_property (GObject *object, - guint prop_id, - GValue *value, - GParamSpec *pspec) -{ - GPeriodic *periodic = G_PERIODIC (object); - - switch (prop_id) - { - case PROP_HIGH_PRIORITY: - g_value_set_int (value, g_source_get_priority (periodic->priv->source)); - break; - - case PROP_LOW_PRIORITY: - g_value_set_int (value, periodic->priv->low_priority); - break; - - case PROP_HZ: - g_value_set_uint (value, periodic->priv->hz); - break; - - default: - g_assert_not_reached (); - } -} - -static void -g_periodic_set_property (GObject *object, - guint prop_id, - const GValue *value, - GParamSpec *pspec) -{ - GPeriodic *periodic = G_PERIODIC (object); - - switch (prop_id) - { - case PROP_HIGH_PRIORITY: - g_source_set_priority (periodic->priv->source, g_value_get_int (value)); - break; - - case PROP_LOW_PRIORITY: - periodic->priv->low_priority = g_value_get_int (value); - break; - - case PROP_HZ: - periodic->priv->hz = g_value_get_uint (value); - break; - - default: - g_assert_not_reached (); - } -} - -static void -g_periodic_finalize (GObject *object) -{ - GPeriodic *periodic = G_PERIODIC (object); - - g_source_destroy (periodic->priv->source); - g_source_unref (periodic->priv->source); - - G_OBJECT_CLASS (g_periodic_parent_class) - ->finalize (object); -} - -static void -g_periodic_init (GPeriodic *periodic) -{ - static GSourceFuncs source_funcs = { - g_periodic_prepare, g_periodic_check, g_periodic_dispatch - }; - - periodic->priv = G_TYPE_INSTANCE_GET_PRIVATE (periodic, - G_TYPE_PERIODIC, - GPeriodicPrivate); - - periodic->priv->source = g_source_new (&source_funcs, - sizeof (GPeriodicSource)); - ((GPeriodicSource *) periodic->priv->source)->periodic = periodic; - g_source_attach (periodic->priv->source, - g_main_context_get_thread_default ()); -} - -static void -g_periodic_class_init (GPeriodicClass *class) -{ - GObjectClass *object_class = G_OBJECT_CLASS (class); - - class->tick = g_periodic_real_tick; - class->repair = g_periodic_real_repair; - - object_class->get_property = g_periodic_get_property; - object_class->set_property = g_periodic_set_property; - object_class->finalize = g_periodic_finalize; - - /** - * GPeriodic::tick - * @periodic: the #GPeriodic on which the signal was emitted - * @timestamp: the timestamp at the time of the tick - * - * The ::tick signal gets emitted whenever the clock "fires". - */ - g_periodic_tick = g_signal_new ("tick", G_TYPE_PERIODIC, - G_SIGNAL_RUN_LAST, - G_STRUCT_OFFSET(GPeriodicClass, tick), - NULL, NULL, _gio_marshal_VOID__INT64, - G_TYPE_NONE, 1, G_TYPE_INT64); - - /** - * GPeriodic::repair: - * @periodic: the #GPeriodic on which the signal was emitted - * - * The ::repair signal gets emitted to start the "repair" phase. - */ - g_periodic_repair = g_signal_new ("repair", G_TYPE_PERIODIC, - G_SIGNAL_RUN_LAST, - G_STRUCT_OFFSET (GPeriodicClass, repair), - NULL, NULL, g_cclosure_marshal_VOID__VOID, - G_TYPE_NONE, 0); - - g_object_class_install_property (object_class, PROP_HZ, - g_param_spec_uint ("hz", "ticks per second", - "rate (in Hz) at which the 'tick' signal is emitted", - 1, 120, 1, G_PARAM_READWRITE | - G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS)); - - g_object_class_install_property (object_class, PROP_HIGH_PRIORITY, - g_param_spec_int ("high-priority", "high priority level", - "the GSource priority level to run at", - G_MININT, G_MAXINT, 0, G_PARAM_READWRITE | - G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS)); - - g_object_class_install_property (object_class, PROP_LOW_PRIORITY, - g_param_spec_int ("low-priority", "low priority level", - "ignore tasks below this priority level", - G_MININT, G_MAXINT, 0, G_PARAM_READWRITE | - G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS)); - - g_type_class_add_private (class, sizeof (GPeriodicPrivate)); -} - -/** - * g_periodic_block: - * @periodic: a #GPeriodic clock - * - * Temporarily blocks @periodic from running in order to bring it in - * synch with an external time source. - * - * This function must be called from a handler of the #GPeriodic::repair - * signal. - * - * If this function is called, emission of the #GPeriodic::tick signal - * will be suspended until g_periodic_unblock() is called an equal number - * of times. Once that happens, the ::tick signal will run immediately - * and future ::tick signals will be emitted relative to the time at - * which the last call to g_periodic_unblock() occured. - * - * Since: 2.28 - **/ -void -g_periodic_block (GPeriodic *periodic) -{ - g_return_if_fail (G_IS_PERIODIC (periodic)); - g_return_if_fail (periodic->priv->in_repair); - - periodic->priv->blocked++; -} - -/** - * g_periodic_unblock: - * @periodic: a #GPeriodic clock - * @unblock_time: the unblock time - * - * Reverses the effect of a previous call to g_periodic_block(). - * - * If this call removes the last block, the ::tick signal is - * immediately run. The ::repair signal may also be run if the clock - * is marked as damaged. - * - * @unblock_time is the monotonic time, as per g_get_monotonic_time(), - * at which the event causing the unblock occured. - * - * This function may not be called from handlers of any signal emitted - * by @periodic. - * - * Since: 2.28 - **/ -void -g_periodic_unblock (GPeriodic *periodic, - gint64 unblock_time) -{ - g_return_if_fail (G_IS_PERIODIC (periodic)); - g_return_if_fail (!periodic->priv->in_repair); - g_return_if_fail (!periodic->priv->in_tick); - g_return_if_fail (periodic->priv->blocked); - - if (--periodic->priv->blocked) - { - periodic->priv->last_run = unblock_time * periodic->priv->hz; - g_periodic_run (periodic); - } -} - -/** - * g_periodic_add: - * @periodic: a #GPeriodic clock - * @callback: a #GPeriodicTickFunc function - * @user_data: data for @callback - * @notify: for freeing @user_data when it is no longer needed - * - * Request periodic calls to @callback to start. The periodicity of - * the calls is determined by the #GPeriodic:hz property. - * - * This function may not be called from a handler of the ::repair - * signal, but it is perfectly reasonable to call it from a handler - * of the ::tick signal. - * - * The callback may be cancelled later by using g_periodic_remove() - * on the return value of this function. - * - * Returns: a non-zero tag identifying this callback - * - * Since: 2.28 - **/ - -/** - * GPeriodicTickFunc: - * @periodic: the #GPeriodic clock that is ticking - * @timestamp: the timestamp at the time of the tick - * @user_data: the user data given to g_periodic_add() - * - * The signature of the callback function that is called when the - * #GPeriodic clock ticks. - * - * The @timestamp parameter is equal for all callbacks called during - * a particular tick on a given clock. - * - * Since: 2.28 - **/ -guint -g_periodic_add (GPeriodic *periodic, - GPeriodicTickFunc callback, - gpointer user_data, - GDestroyNotify notify) -{ - GPeriodicTick *tick; - static guint id; - - g_return_val_if_fail (G_IS_PERIODIC (periodic), 0); - g_return_val_if_fail (!periodic->priv->in_repair, 0); - - tick = g_slice_new (GPeriodicTick); - tick->callback = callback; - tick->user_data = user_data; - tick->notify = notify; - tick->id = ++id; - - periodic->priv->ticks = g_slist_prepend (periodic->priv->ticks, tick); - - return tick->id; -} - -/** - * g_periodic_remove: - * @periodic: a #GPeriodic clock - * @tag: the ID of the callback to remove - * - * Reverse the effect of a previous call to g_periodic_start(). - * - * @tag is the ID returned by that function. - * - * This function may not be called from a handler of the ::repair - * signal, but it is perfectly reasonable to call it from a handler - * of the ::tick signal. - * - * Since: 2.28 - **/ -void -g_periodic_remove (GPeriodic *periodic, - guint tag) -{ - GSList **iter; - - g_return_if_fail (G_IS_PERIODIC (periodic)); - g_return_if_fail (!periodic->priv->in_repair); - - for (iter = &periodic->priv->ticks; *iter; iter = &(*iter)->next) - { - GPeriodicTick *tick = (*iter)->data; - - if (tick->id == tag) - { - /* do this first, in case the destroy notify re-enters */ - *iter = g_slist_remove (*iter, tick); - - if (tick->notify) - tick->notify (tick->user_data); - - g_slice_free (GPeriodicTick, tick); - return; - } - } - - g_critical ("GPeriodic: tag %u not registered", tag); -} - -/** - * g_periodic_damaged: - * @periodic: a #GPeriodic clock - * - * Report damage and schedule the ::repair signal to be emitted - * during the next repair phase. - * - * You may not call this function during the repair phase. - * - * Since: 2.28 - **/ -void -g_periodic_damaged (GPeriodic *periodic) -{ - g_return_if_fail (G_IS_PERIODIC (periodic)); - g_return_if_fail (!periodic->priv->in_repair); - - periodic->priv->damaged = TRUE; -} - -/** - * g_periodic_get_hz: - * @periodic: a #GPeriodic clock - * - * Gets the frequency of the clock. - * - * Returns: the frequency of the clock, in Hz - * - * Since: 2.28 - **/ -guint -g_periodic_get_hz (GPeriodic *periodic) -{ - return periodic->priv->hz; -} - -/** - * g_periodic_get_high_priority: - * @periodic: a #GPeriodic clock - * - * Gets the #GSource priority of the clock. - * - * Returns: the high priority level - * - * Since: 2.28 - **/ -gint -g_periodic_get_high_priority (GPeriodic *periodic) -{ - return g_source_get_priority (periodic->priv->source); -} - -/** - * g_periodic_get_low_priority: - * @periodic: a #GPeriodic clock - * - * Gets the priority level that #GPeriodic uses to check for mainloop - * inactivity. Other sources scheduled below this level of priority are - * effectively ignored by #GPeriodic and may be starved. - * - * Returns: the low priority level - * - * Since: 2.28 - **/ -gint -g_periodic_get_low_priority (GPeriodic *periodic) -{ - return periodic->priv->low_priority; -} - -/** - * g_periodic_new: - * @hz: the frequency of the new clock in Hz (between 1 and 120) - * @high_priority: the #GSource priority to run at - * @low_priority: ignore tasks below this priority - * - * Creates a new #GPeriodic clock. - * - * The created clock is attached to the thread-default main context - * in effect at the time of the call to this function. - * See g_main_context_push_thread_default() for more information. - * - * Due to the fact that #GMainContext is only accurate to the nearest - * millisecond, the frequency can not meaningfully get too close to - * 1000. For this reason, it is arbitrarily bounded at 120. - * - * Returns: a new #GPeriodic - * - * Since: 2.28 - **/ -GPeriodic * -g_periodic_new (guint hz, - gint high_priority, - gint low_priority) -{ - g_return_val_if_fail (1 <= hz && hz <= 120, NULL); - - return g_object_new (G_TYPE_PERIODIC, - "hz", hz, - "high-priority", high_priority, - "low-priority", low_priority, - NULL); -} diff --git a/gio/gperiodic.h b/gio/gperiodic.h deleted file mode 100644 index 3f61fc750..000000000 --- a/gio/gperiodic.h +++ /dev/null @@ -1,88 +0,0 @@ -/* - * Copyright © 2010 Codethink Limited - * - * 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 of the - * licence, 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, write to the Free Software - * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, - * USA. - * - * Author: Ryan Lortie - */ - -#if !defined (__GIO_GIO_H_INSIDE__) && !defined (GIO_COMPILATION) -#error "Only can be included directly." -#endif - -#ifndef __G_PERIODIC_H__ -#define __G_PERIODIC_H__ - -#include - -G_BEGIN_DECLS - -#define G_TYPE_PERIODIC (g_periodic_get_type ()) -#define G_PERIODIC(inst) (G_TYPE_CHECK_INSTANCE_CAST ((inst), \ - G_TYPE_PERIODIC, GPeriodic)) -#define G_IS_PERIODIC(inst) (G_TYPE_CHECK_INSTANCE_TYPE ((inst), G_TYPE_PERIODIC)) - -typedef struct _GPeriodicPrivate GPeriodicPrivate; -typedef struct _GPeriodicClass GPeriodicClass; -typedef struct _GPeriodic GPeriodic; - -struct _GPeriodicClass -{ - GObjectClass parent_class; - - void (*tick) (GPeriodic *periodic, - gint64 timestamp); - void (*repair) (GPeriodic *periodic); - - /*< private >*/ - gpointer padding[14]; -}; - -struct _GPeriodic -{ - GObject parent_instance; - /*< private >*/ - GPeriodicPrivate *priv; -}; - -typedef void (* GPeriodicTickFunc) (GPeriodic *periodic, - gint64 timestamp, - gpointer user_data); - -GType g_periodic_get_type (void); -GPeriodic * g_periodic_new (guint hz, - gint high_priority, - gint low_priority); -guint g_periodic_get_hz (GPeriodic *periodic); -gint g_periodic_get_high_priority (GPeriodic *periodic); -gint g_periodic_get_low_priority (GPeriodic *periodic); - -guint g_periodic_add (GPeriodic *periodic, - GPeriodicTickFunc callback, - gpointer user_data, - GDestroyNotify notify); -void g_periodic_remove (GPeriodic *periodic, - guint tag); - -void g_periodic_block (GPeriodic *periodic); -void g_periodic_unblock (GPeriodic *periodic, - gint64 unblock_time); - -void g_periodic_damaged (GPeriodic *periodic); - -G_END_DECLS - -#endif /* __G_PERIODIC_H__ */ diff --git a/gio/gpollableinputstream.c b/gio/gpollableinputstream.c index d6937d835..912eaea27 100644 --- a/gio/gpollableinputstream.c +++ b/gio/gpollableinputstream.c @@ -115,9 +115,9 @@ g_pollable_input_stream_is_readable (GPollableInputStream *stream) } /** - * g_pollable_input_stream_create_source: + * g_pollable_input_stream_create_source: (skip) * @stream: a #GPollableInputStream. - * @cancellable: a #GCancellable, or %NULL + * @cancellable: (allow-none): a #GCancellable, or %NULL * * Creates a #GSource that triggers when @stream can be read, or * @cancellable is triggered or an error occurs. The callback on the @@ -128,7 +128,7 @@ g_pollable_input_stream_is_readable (GPollableInputStream *stream) * triggers, so you should use g_pollable_input_stream_read_nonblocking() * rather than g_input_stream_read() from the callback. * - * Returns: a new #GSource + * Returns: (transfer full): a new #GSource * * Since: 2.28 */ @@ -165,7 +165,7 @@ g_pollable_input_stream_default_read_nonblocking (GPollableInputStream *stream, * @buffer: a buffer to read data into (which should be at least @size * bytes long). * @size: the number of bytes you want to read - * @cancellable: a #GCancellable, or %NULL + * @cancellable: (allow-none): a #GCancellable, or %NULL * @error: #GError for error reporting, or %NULL to ignore. * * Attempts to read up to @size bytes from @stream into @buffer, as @@ -180,6 +180,7 @@ g_pollable_input_stream_default_read_nonblocking (GPollableInputStream *stream, * may happen if you call this method after a source triggers due * to having been cancelled. * + * Virtual: read_nonblocking * Return value: the number of bytes read, or -1 on error (including * %G_IO_ERROR_WOULD_BLOCK). */ @@ -275,7 +276,7 @@ static GSourceFuncs pollable_source_funcs = }; /** - * g_pollable_source_new: + * g_pollable_source_new: (skip) * @pollable_stream: the stream associated with the new source * * Utility method for #GPollableInputStream and #GPollableOutputStream @@ -284,7 +285,7 @@ static GSourceFuncs pollable_source_funcs = * anything on its own; use g_source_add_child_source() to add other * sources to it to cause it to trigger. * - * Return value: the new #GSource. + * Return value: (transfer full): the new #GSource. * * Since: 2.28 */ diff --git a/gio/gpollableoutputstream.c b/gio/gpollableoutputstream.c index b4efb3fe3..7879e8839 100644 --- a/gio/gpollableoutputstream.c +++ b/gio/gpollableoutputstream.c @@ -116,9 +116,9 @@ g_pollable_output_stream_is_writable (GPollableOutputStream *stream) } /** - * g_pollable_output_stream_create_source: + * g_pollable_output_stream_create_source: (skip) * @stream: a #GPollableOutputStream. - * @cancellable: a #GCancellable, or %NULL + * @cancellable: (allow-none): a #GCancellable, or %NULL * * Creates a #GSource that triggers when @stream can be written, or * @cancellable is triggered or an error occurs. The callback on the @@ -129,7 +129,7 @@ g_pollable_output_stream_is_writable (GPollableOutputStream *stream) * triggers, so you should use g_pollable_output_stream_write_nonblocking() * rather than g_output_stream_write() from the callback. * - * Returns: a new #GSource + * Returns: (transfer full): a new #GSource * * Since: 2.28 */ @@ -163,9 +163,10 @@ g_pollable_output_stream_default_write_nonblocking (GPollableOutputStream *stre /** * g_pollable_output_stream_write_nonblocking: * @stream: a #GPollableOutputStream - * @buffer: a buffer to write data from + * @buffer: (array length=size) (element-type guint8): a buffer to write + * data from * @size: the number of bytes you want to write - * @cancellable: a #GCancellable, or %NULL + * @cancellable: (allow-none): a #GCancellable, or %NULL * @error: #GError for error reporting, or %NULL to ignore. * * Attempts to write up to @size bytes from @buffer to @stream, as @@ -180,6 +181,7 @@ g_pollable_output_stream_default_write_nonblocking (GPollableOutputStream *stre * may happen if you call this method after a source triggers due * to having been cancelled. * + * Virtual: write_nonblocking * Return value: the number of bytes written, or -1 on error (including * %G_IO_ERROR_WOULD_BLOCK). */ diff --git a/gio/gproxy.c b/gio/gproxy.c index b40e23caa..d24e86eae 100644 --- a/gio/gproxy.c +++ b/gio/gproxy.c @@ -56,7 +56,8 @@ g_proxy_default_init (GProxyInterface *iface) * Lookup "gio-proxy" extension point for a proxy implementation that supports * specified protocol. * - * Return value: return a #GProxy or NULL if protocol is not supported. + * Return value: (transfer full): return a #GProxy or NULL if protocol + * is not supported. * * Since: 2.26 **/ @@ -84,7 +85,7 @@ g_proxy_get_default_for_protocol (const gchar *protocol) * @proxy: a #GProxy * @connection: a #GIOStream * @proxy_address: a #GProxyAddress - * @cancellable: a #GCancellable + * @cancellable: (allow-none): a #GCancellable * @error: return #GError * * Given @connection to communicate with a proxy (eg, a @@ -123,9 +124,9 @@ g_proxy_connect (GProxy *proxy, * @proxy: a #GProxy * @connection: a #GIOStream * @proxy_address: a #GProxyAddress - * @cancellable: a #GCancellable - * @callback: a #GAsyncReadyCallback - * @user_data: callback data + * @cancellable: (allow-none): a #GCancellable + * @callback: (scope async): a #GAsyncReadyCallback + * @user_data: (closure): callback data * * Asynchronous version of g_proxy_connect(). * diff --git a/gio/gproxyaddress.c b/gio/gproxyaddress.c index 61dfc7d08..68ef29420 100644 --- a/gio/gproxyaddress.c +++ b/gio/gproxyaddress.c @@ -233,8 +233,10 @@ g_proxy_address_init (GProxyAddress *proxy) * @protocol: The proxy protocol to support, in lower case (e.g. socks, http). * @dest_hostname: The destination hostname the the proxy should tunnel to. * @dest_port: The destination port to tunnel to. - * @username: The username to authenticate to the proxy server (or %NULL). - * @password: The password to authenticate to the proxy server (or %NULL). + * @username: (allow-none): The username to authenticate to the proxy server + * (or %NULL). + * @password: (allow-none): The password to authenticate to the proxy server + * (or %NULL). * * Creates a new #GProxyAddress for @inetaddr with @protocol that should * tunnel through @dest_hostname and @dest_port. diff --git a/gio/gproxyresolver.c b/gio/gproxyresolver.c index f6b60015d..f273ecf8d 100644 --- a/gio/gproxyresolver.c +++ b/gio/gproxyresolver.c @@ -141,7 +141,7 @@ g_proxy_resolver_is_supported (GProxyResolver *resolver) * g_proxy_resolver_lookup: * @resolver: a #GProxyResolver * @uri: a URI representing the destination to connect to - * @cancellable: a #GCancellable, or %NULL + * @cancellable: (allow-none): a #GCancellable, or %NULL * @error: return location for a #GError, or %NULL * * Looks into the system proxy configuration to determine what proxy, @@ -160,8 +160,9 @@ g_proxy_resolver_is_supported (GProxyResolver *resolver) * Direct connection should not be attempted unless it is part of the * returned array of proxies. * - * Return value: (transfer full) (element-type utf8): A NULL-terminated array of proxy URIs. Must be freed with - * g_strfreev(). + * Return value: (transfer full) (array zero-terminated=1): A + * NULL-terminated array of proxy URIs. Must be freed + * with g_strfreev(). * * Since: 2.26 */ @@ -185,9 +186,9 @@ g_proxy_resolver_lookup (GProxyResolver *resolver, * g_proxy_resolver_lookup_async: * @resolver: a #GProxyResolver * @uri: a URI representing the destination to connect to - * @cancellable: a #GCancellable, or %NULL - * @callback: callback to call after resolution completes - * @user_data: data for @callback + * @cancellable: (allow-none): a #GCancellable, or %NULL + * @callback: (scope async): callback to call after resolution completes + * @user_data: (closure): data for @callback * * Asynchronous lookup of proxy. See g_proxy_resolver_lookup() for more * details. @@ -221,8 +222,9 @@ g_proxy_resolver_lookup_async (GProxyResolver *resolver, * g_proxy_resolver_lookup_async() is complete. See * g_proxy_resolver_lookup() for more details. * - * Return value: (transfer full) (element-type utf8): A NULL-terminated array of proxy URIs. Must be freed with - * g_strfreev(). + * Return value: (transfer full) (array zero-terminated=1): A + * NULL-terminated array of proxy URIs. Must be freed + * with g_strfreev(). * * Since: 2.26 */ diff --git a/gio/gresolver.c b/gio/gresolver.c index 01c6db0e9..657505b7f 100644 --- a/gio/gresolver.c +++ b/gio/gresolver.c @@ -215,7 +215,7 @@ g_resolver_maybe_reload (GResolver *resolver) * g_resolver_lookup_by_name: * @resolver: a #GResolver * @hostname: the hostname to look up - * @cancellable: a #GCancellable, or %NULL + * @cancellable: (allow-none): a #GCancellable, or %NULL * @error: return location for a #GError, or %NULL * * Synchronously resolves @hostname to determine its associated IP @@ -279,9 +279,9 @@ g_resolver_lookup_by_name (GResolver *resolver, * g_resolver_lookup_by_name_async: * @resolver: a #GResolver * @hostname: the hostname to look up the address of - * @cancellable: a #GCancellable, or %NULL - * @callback: callback to call after resolution completes - * @user_data: data for @callback + * @cancellable: (allow-none): a #GCancellable, or %NULL + * @callback: (scope async): callback to call after resolution completes + * @user_data: (closure): data for @callback * * Begins asynchronously resolving @hostname to determine its * associated IP address(es), and eventually calls @callback, which @@ -401,7 +401,7 @@ g_resolver_free_addresses (GList *addresses) * g_resolver_lookup_by_address: * @resolver: a #GResolver * @address: the address to reverse-resolve - * @cancellable: a #GCancellable, or %NULL + * @cancellable: (allow-none): a #GCancellable, or %NULL * @error: return location for a #GError, or %NULL * * Synchronously reverse-resolves @address to determine its @@ -437,9 +437,9 @@ g_resolver_lookup_by_address (GResolver *resolver, * g_resolver_lookup_by_address_async: * @resolver: a #GResolver * @address: the address to reverse-resolve - * @cancellable: a #GCancellable, or %NULL - * @callback: callback to call after resolution completes - * @user_data: data for @callback + * @cancellable: (allow-none): a #GCancellable, or %NULL + * @callback: (scope async): callback to call after resolution completes + * @user_data: (closure): data for @callback * * Begins asynchronously reverse-resolving @address to determine its * associated hostname, and eventually calls @callback, which must @@ -521,7 +521,7 @@ g_resolver_get_service_rrname (const char *service, * @service: the service type to look up (eg, "ldap") * @protocol: the networking protocol to use for @service (eg, "tcp") * @domain: the DNS domain to look up the service in - * @cancellable: a #GCancellable, or %NULL + * @cancellable: (allow-none): a #GCancellable, or %NULL * @error: return location for a #GError, or %NULL * * Synchronously performs a DNS SRV lookup for the given @service and @@ -585,9 +585,9 @@ g_resolver_lookup_service (GResolver *resolver, * @service: the service type to look up (eg, "ldap") * @protocol: the networking protocol to use for @service (eg, "tcp") * @domain: the DNS domain to look up the service in - * @cancellable: a #GCancellable, or %NULL - * @callback: callback to call after resolution completes - * @user_data: data for @callback + * @cancellable: (allow-none): a #GCancellable, or %NULL + * @callback: (scope async): callback to call after resolution completes + * @user_data: (closure): data for @callback * * Begins asynchronously performing a DNS SRV lookup for the given * @service and @protocol in the given @domain, and eventually calls diff --git a/gio/gschema.dtd b/gio/gschema.dtd index 218b544a2..96ff014f7 100644 --- a/gio/gschema.dtd +++ b/gio/gschema.dtd @@ -1,10 +1,12 @@ - + + gettext-domain CDATA #IMPLIED + extends CDATA #IMPLIED + list-of CDATA #IMPLIED > @@ -64,3 +66,8 @@ + + + diff --git a/gio/gseekable.c b/gio/gseekable.c index 976243d40..cde639b10 100644 --- a/gio/gseekable.c +++ b/gio/gseekable.c @@ -89,7 +89,7 @@ g_seekable_can_seek (GSeekable *seekable) * @seekable: a #GSeekable. * @offset: a #goffset. * @type: a #GSeekType. - * @cancellable: optional #GCancellable object, %NULL to ignore. + * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore. * @error: a #GError location to store the error occuring, or %NULL to * ignore. * @@ -143,7 +143,7 @@ g_seekable_can_truncate (GSeekable *seekable) * g_seekable_truncate: * @seekable: a #GSeekable. * @offset: a #goffset. - * @cancellable: optional #GCancellable object, %NULL to ignore. + * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore. * @error: a #GError location to store the error occuring, or %NULL to * ignore. * diff --git a/gio/gsettings-tool.c b/gio/gsettings-tool.c index a7447ae8a..de4378233 100644 --- a/gio/gsettings-tool.c +++ b/gio/gsettings-tool.c @@ -408,7 +408,9 @@ gsettings_set (GSettings *settings, * To handle this case, try to parse again with an extra level * of quotes. */ - if (new == NULL && strstr (error->message, "unknown keyword")) + if (new == NULL && + g_error_matches (error, G_VARIANT_PARSE_ERROR, + G_VARIANT_PARSE_ERROR_UNKNOWN_KEYWORD)) { value = freeme = g_strdup_printf ("\"%s\"", value); new = g_variant_parse (type, value, NULL, NULL, NULL); diff --git a/gio/gsettings.c b/gio/gsettings.c index b31f462c5..c9a23b7e3 100644 --- a/gio/gsettings.c +++ b/gio/gsettings.c @@ -223,6 +223,7 @@ enum PROP_BACKEND, PROP_PATH, PROP_HAS_UNAPPLIED, + PROP_DELAY_APPLY }; enum @@ -448,6 +449,10 @@ g_settings_get_property (GObject *object, g_value_set_boolean (value, g_settings_get_has_unapplied (settings)); break; + case PROP_DELAY_APPLY: + g_value_set_boolean (value, settings->priv->delayed != NULL); + break; + default: g_assert_not_reached (); } @@ -567,7 +572,8 @@ g_settings_class_init (GSettingsClass *class) /** * GSettings::change-event: * @settings: the object on which the signal was emitted - * @keys: an array of #GQuarks for the changed keys, or %NULL + * @keys: (array length=n_keys) (element-type GQuark) (allow-none): + * an array of #GQuarks for the changed keys, or %NULL * @n_keys: the length of the @keys array, or 0 * @returns: %TRUE to stop other handlers from being invoked for the * event. FALSE to propagate the event further. @@ -612,7 +618,7 @@ g_settings_class_init (GSettingsClass *class) g_settings_signals[SIGNAL_WRITABLE_CHANGED] = g_signal_new ("writable-changed", G_TYPE_SETTINGS, G_SIGNAL_RUN_LAST | G_SIGNAL_DETAILED, - G_STRUCT_OFFSET (GSettingsClass, changed), + G_STRUCT_OFFSET (GSettingsClass, writable_changed), NULL, NULL, g_cclosure_marshal_VOID__STRING, G_TYPE_NONE, 1, G_TYPE_STRING | G_SIGNAL_TYPE_STATIC_SCOPE); @@ -701,6 +707,20 @@ g_settings_class_init (GSettingsClass *class) FALSE, G_PARAM_READABLE | G_PARAM_STATIC_STRINGS)); + /** + * GSettings:delay-apply: + * + * Whether the #GSettings object is in 'delay-apply' mode. See + * g_settings_delay() for details. + * + * Since: 2.28 + */ + g_object_class_install_property (object_class, PROP_DELAY_APPLY, + g_param_spec_boolean ("delay-apply", + P_("Delay-apply mode"), + P_("Whether this settings object is in 'delay-apply' mode"), + FALSE, + G_PARAM_READABLE | G_PARAM_STATIC_STRINGS)); } /* Construction (new, new_with_path, etc.) {{{1 */ @@ -1588,8 +1608,8 @@ g_settings_set (GSettings *settings, * g_settings_get_mapped: * @settings: a #GSettings object * @key: the key to get the value for - * @mapping: the function to map the value in the settings database to - * the value used by the application + * @mapping: (scope call): the function to map the value in the + * settings database to the value used by the application * @user_data: user data for @mapping * @returns: (transfer full): the result, which may be %NULL * @@ -1887,16 +1907,15 @@ g_settings_set_boolean (GSettings *settings, * g_settings_get_strv: * @settings: a #GSettings object * @key: the key to get the value for - * @returns: a newly-allocated, %NULL-terminated array of strings + * @returns: (array zero-terminated=1) (transfer full): a + * newly-allocated, %NULL-terminated array of strings, the value that + * is stored at @key in @settings. * * A convenience variant of g_settings_get() for string arrays. * * It is a programmer error to give a @key that isn't specified as * having an array of strings type in the schema for @settings. * - * Returns: (array zero-terminated=1) (transfer full): the value that is - * stored at @key in @settings. - * * Since: 2.26 */ gchar ** @@ -1976,6 +1995,8 @@ g_settings_delay (GSettings *settings) g_settings_backend_watch (settings->priv->backend, &listener_vtable, G_OBJECT (settings), settings->priv->main_context); + + g_object_notify (G_OBJECT (settings), "delay-apply"); } /** @@ -2119,7 +2140,7 @@ g_settings_is_writable (GSettings *settings, * @returns: (transfer full): a 'child' settings object * * Creates a 'child' settings object which has a base path of - * base-path/@name", where + * base-path/@name, where * base-path is the base path of @settings. * * The schema for the child settings object must have been declared @@ -2558,7 +2579,7 @@ g_settings_bind_invert_boolean_set_mapping (const GValue *value, * g_settings_bind: * @settings: a #GSettings object * @key: the key to bind - * @object: a #GObject + * @object: (type GObject.Object): a #GObject * @property: the name of the property to bind * @flags: flags for the binding * @@ -2609,10 +2630,10 @@ g_settings_bind (GSettings *settings, } /** - * g_settings_bind_with_mapping: + * g_settings_bind_with_mapping: (skip) * @settings: a #GSettings object * @key: the key to bind - * @object: a #GObject + * @object: (type GObject.Object): a #GObject * @property: the name of the property to bind * @flags: flags for the binding * @get_mapping: a function that gets called to convert values @@ -2825,7 +2846,7 @@ g_settings_binding_writable_changed (GSettings *settings, * g_settings_bind_writable: * @settings: a #GSettings object * @key: the key to bind - * @object: a #GObject + * @object: (type GObject.Object):a #GObject * @property: the name of a boolean property to bind * @inverted: whether to 'invert' the value * diff --git a/gio/gsettings.h b/gio/gsettings.h index 57c15f634..f30c44a6b 100644 --- a/gio/gsettings.h +++ b/gio/gsettings.h @@ -188,8 +188,9 @@ typedef gboolean (*GSettingsBindGetMapping) (GValue /** * GSettingsGetMapping: * @value: the #GVariant to map, or %NULL - * @result: the result of the mapping - * @user_data: the user data that was passed to g_settings_get_mapped() + * @result: (out): the result of the mapping + * @user_data: (closure): the user data that was passed to + * g_settings_get_mapped() * @returns: %TRUE if the conversion succeeded, %FALSE in case of an error * * The type of the function that is used to convert from a value stored diff --git a/gio/gsettingsbackend.c b/gio/gsettingsbackend.c index 954a4ac3e..ee0a93fd5 100644 --- a/gio/gsettingsbackend.c +++ b/gio/gsettingsbackend.c @@ -24,7 +24,6 @@ #include "config.h" #include "gsettingsbackendinternal.h" -#include "gnullsettingsbackend.h" #include "gsimplepermission.h" #include "giomodule-priv.h" #include "gio-marshal.h" @@ -402,7 +401,7 @@ g_settings_backend_changed (GSettingsBackend *backend, * g_settings_backend_keys_changed: * @backend: a #GSettingsBackend implementation * @path: the path containing the changes - * @items: the %NULL-terminated list of changed keys + * @items: (array zero-terminated=1): the %NULL-terminated list of changed keys * @origin_tag: the origin tag * * Signals that a list of keys have possibly changed. Backend @@ -610,9 +609,11 @@ g_settings_backend_flatten_one (gpointer key, /** * g_settings_backend_flatten_tree: * @tree: a #GTree containing the changes - * @path: the location to save the path - * @keys: the location to save the relative keys - * @values: the location to save the values, or %NULL + * @path: (out): the location to save the path + * @keys: (out) (transfer container) (array zero-terminated=1): the + * location to save the relative keys + * @values: (out) (allow-none) (transfer container) (array zero-terminated=1): + * the location to save the values, or %NULL * * Calculate the longest common prefix of all keys in a tree and write * out an array of the key names relative to that prefix and, @@ -925,15 +926,17 @@ g_settings_backend_create_tree (void) g_free, (GDestroyNotify) g_variant_unref); } -/*< private > +/** * g_settings_backend_get_default: - * @returns: the default #GSettingsBackend + * @returns: (transfer full): the default #GSettingsBackend * * Returns the default #GSettingsBackend. It is possible to override * the default by setting the GSETTINGS_BACKEND * environment variable to the name of a settings backend. * * The user gets a reference to the backend. + * + * Since: 2.28 */ GSettingsBackend * g_settings_backend_get_default (void) diff --git a/gio/gsettingsbackend.h b/gio/gsettingsbackend.h index 2f4aeaa0f..2854529db 100644 --- a/gio/gsettingsbackend.h +++ b/gio/gsettingsbackend.h @@ -148,10 +148,16 @@ void g_settings_backend_changed_tree (GSettin GTree *tree, gpointer origin_tag); +GSettingsBackend * g_settings_backend_get_default (void); + GSettingsBackend * g_keyfile_settings_backend_new (const gchar *filename, const gchar *root_path, const gchar *root_group); +GSettingsBackend * g_null_settings_backend_new (void); + +GSettingsBackend * g_memory_settings_backend_new (void); + G_END_DECLS #endif /* __G_SETTINGS_BACKEND_H__ */ diff --git a/gio/gsettingsbackendinternal.h b/gio/gsettingsbackendinternal.h index 6a4230c2d..8a423e0f8 100644 --- a/gio/gsettingsbackendinternal.h +++ b/gio/gsettingsbackendinternal.h @@ -125,9 +125,13 @@ gboolean g_settings_backend_can_remove (GSettin const gchar *path, const gchar *id); -G_GNUC_INTERNAL -GSettingsBackend * g_settings_backend_get_default (void); G_GNUC_INTERNAL void g_settings_backend_sync_default (void); +G_GNUC_INTERNAL +GType g_null_settings_backend_get_type (void); + +G_GNUC_INTERNAL +GType g_memory_settings_backend_get_type (void); + #endif /* __G_SETTINGS_BACKEND_INTERNAL_H__ */ diff --git a/gio/gsimpleactiongroup.c b/gio/gsimpleactiongroup.c index ecc1dceae..df359b93c 100644 --- a/gio/gsimpleactiongroup.c +++ b/gio/gsimpleactiongroup.c @@ -160,7 +160,7 @@ g_simple_action_group_set_state (GActionGroup *group, if (action == NULL) return; - return g_action_set_state (action, value); + g_action_set_state (action, value); } static void @@ -176,7 +176,7 @@ g_simple_action_group_activate (GActionGroup *group, if (action == NULL) return; - return g_action_activate (action, parameter); + g_action_activate (action, parameter); } static void diff --git a/gio/gsimpleasyncresult.c b/gio/gsimpleasyncresult.c index 2166bea21..b58b2e5cd 100644 --- a/gio/gsimpleasyncresult.c +++ b/gio/gsimpleasyncresult.c @@ -187,7 +187,7 @@ * return; * } * - * _baker_prepare_cake (self, radius, baked_cb, user_data); + * _baker_prepare_cake (self, radius, baked_cb, simple); * } * * Cake * @@ -299,10 +299,9 @@ g_simple_async_result_init (GSimpleAsyncResult *simple) /** * g_simple_async_result_new: - * @source_object: a #GObject the asynchronous function was called with, - * or %NULL. - * @callback: a #GAsyncReadyCallback. - * @user_data: user data passed to @callback. + * @source_object: (allow-none): a #GObject, or %NULL. + * @callback: (scope async): a #GAsyncReadyCallback. + * @user_data: (closure): user data passed to @callback. * @source_tag: the asynchronous function. * * Creates a #GSimpleAsyncResult. @@ -333,9 +332,9 @@ g_simple_async_result_new (GObject *source_object, /** * g_simple_async_result_new_from_error: - * @source_object: a #GObject, or %NULL. - * @callback: a #GAsyncReadyCallback. - * @user_data: user data passed to @callback. + * @source_object: (allow-none): a #GObject, or %NULL. + * @callback: (scope async): a #GAsyncReadyCallback. + * @user_data: (closure): user data passed to @callback. * @error: a #GError * * Creates a #GSimpleAsyncResult from an error condition. @@ -361,10 +360,10 @@ g_simple_async_result_new_from_error (GObject *source_object, } /** - * g_simple_async_result_new_take_error: + * g_simple_async_result_new_take_error: (skip) * @source_object: (allow-none): a #GObject, or %NULL - * @callback: a #GAsyncReadyCallback - * @user_data: (allow-none): user data passed to @callback + * @callback: (scope async): a #GAsyncReadyCallback + * @user_data: (closure): user data passed to @callback * @error: a #GError * * Creates a #GSimpleAsyncResult from an error condition, and takes over the @@ -394,9 +393,9 @@ g_simple_async_result_new_take_error (GObject *source_object, /** * g_simple_async_result_new_error: - * @source_object: a #GObject, or %NULL. - * @callback: a #GAsyncReadyCallback. - * @user_data: user data passed to @callback. + * @source_object: (allow-none): a #GObject, or %NULL. + * @callback: (scope async): a #GAsyncReadyCallback. + * @user_data: (closure): user data passed to @callback. * @domain: a #GQuark. * @code: an error code. * @format: a string with format characters. @@ -489,7 +488,7 @@ g_simple_async_result_get_source_tag (GSimpleAsyncResult *simple) /** * g_simple_async_result_propagate_error: * @simple: a #GSimpleAsyncResult. - * @dest: a location to propegate the error to. + * @dest: (out): a location to propagate the error to. * * Propagates an error from within the simple asynchronous result to * a given destination. @@ -513,7 +512,7 @@ g_simple_async_result_propagate_error (GSimpleAsyncResult *simple, } /** - * g_simple_async_result_set_op_res_gpointer: + * g_simple_async_result_set_op_res_gpointer: (skip) * @simple: a #GSimpleAsyncResult. * @op_res: a pointer result from an asynchronous function. * @destroy_op_res: a #GDestroyNotify function. @@ -632,7 +631,7 @@ g_simple_async_result_set_from_error (GSimpleAsyncResult *simple, } /** - * g_simple_async_result_take_error: + * g_simple_async_result_take_error: (skip) * @simple: a #GSimpleAsyncResult * @error: a #GError * @@ -655,7 +654,7 @@ g_simple_async_result_take_error (GSimpleAsyncResult *simple, } /** - * g_simple_async_result_set_error_va: + * g_simple_async_result_set_error_va: (skip) * @simple: a #GSimpleAsyncResult. * @domain: a #GQuark (usually #G_IO_ERROR). * @code: an error code. @@ -683,7 +682,7 @@ g_simple_async_result_set_error_va (GSimpleAsyncResult *simple, } /** - * g_simple_async_result_set_error: + * g_simple_async_result_set_error: (skip) * @simple: a #GSimpleAsyncResult. * @domain: a #GQuark (usually #G_IO_ERROR). * @code: an error code. @@ -851,11 +850,11 @@ run_in_thread (GIOSchedulerJob *job, } /** - * g_simple_async_result_run_in_thread: + * g_simple_async_result_run_in_thread: (skip) * @simple: a #GSimpleAsyncResult. * @func: a #GSimpleAsyncThreadFunc. * @io_priority: the io priority of the request. - * @cancellable: optional #GCancellable object, %NULL to ignore. + * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore. * * Runs the asynchronous job in a separate thread and then calls * g_simple_async_result_complete_in_idle() on @simple to return @@ -934,8 +933,8 @@ g_simple_async_result_is_valid (GAsyncResult *result, } /** - * g_simple_async_report_error_in_idle: - * @object: a #GObject. + * g_simple_async_report_error_in_idle: (skip) + * @object: (allow-none): a #GObject, or %NULL. * @callback: a #GAsyncReadyCallback. * @user_data: user data passed to @callback. * @domain: a #GQuark containing the error domain (usually #G_IO_ERROR). @@ -959,7 +958,7 @@ g_simple_async_report_error_in_idle (GObject *object, GSimpleAsyncResult *simple; va_list args; - g_return_if_fail (G_IS_OBJECT (object)); + g_return_if_fail (!object || G_IS_OBJECT (object)); g_return_if_fail (domain != 0); g_return_if_fail (format != NULL); @@ -976,9 +975,9 @@ g_simple_async_report_error_in_idle (GObject *object, /** * g_simple_async_report_gerror_in_idle: - * @object: a #GObject. - * @callback: a #GAsyncReadyCallback. - * @user_data: user data passed to @callback. + * @object: (allow-none): a #GObject, or %NULL + * @callback: (scope async): a #GAsyncReadyCallback. + * @user_data: (closure): user data passed to @callback. * @error: the #GError to report * * Reports an error in an idle function. Similar to @@ -993,7 +992,7 @@ g_simple_async_report_gerror_in_idle (GObject *object, { GSimpleAsyncResult *simple; - g_return_if_fail (G_IS_OBJECT (object)); + g_return_if_fail (!object || G_IS_OBJECT (object)); g_return_if_fail (error != NULL); simple = g_simple_async_result_new_from_error (object, @@ -1005,8 +1004,8 @@ g_simple_async_report_gerror_in_idle (GObject *object, } /** - * g_simple_async_report_take_gerror_in_idle: - * @object: a #GObject. + * g_simple_async_report_take_gerror_in_idle: (skip) + * @object: (allow-none): a #GObject, or %NULL * @callback: a #GAsyncReadyCallback. * @user_data: user data passed to @callback. * @error: the #GError to report @@ -1025,7 +1024,7 @@ g_simple_async_report_take_gerror_in_idle (GObject *object, { GSimpleAsyncResult *simple; - g_return_if_fail (G_IS_OBJECT (object)); + g_return_if_fail (!object || G_IS_OBJECT (object)); g_return_if_fail (error != NULL); simple = g_simple_async_result_new_take_error (object, diff --git a/gio/gsocket.c b/gio/gsocket.c index ae45802b7..01792a7fe 100644 --- a/gio/gsocket.c +++ b/gio/gsocket.c @@ -1479,7 +1479,7 @@ g_socket_speaks_ipv4 (GSocket *socket) /** * g_socket_accept: * @socket: a #GSocket. - * @cancellable: a %GCancellable or %NULL + * @cancellable: (allow-none): a %GCancellable or %NULL * @error: #GError for error reporting, or %NULL to ignore. * * Accept incoming connections on a connection-based socket. This removes @@ -1591,7 +1591,7 @@ g_socket_accept (GSocket *socket, * g_socket_connect: * @socket: a #GSocket. * @address: a #GSocketAddress specifying the remote address. - * @cancellable: a %GCancellable or %NULL + * @cancellable: (allow-none): a %GCancellable or %NULL * @error: #GError for error reporting, or %NULL to ignore. * * Connect the socket to the specified remote address. @@ -1737,7 +1737,7 @@ g_socket_check_connect_result (GSocket *socket, * @buffer: a buffer to read data into (which should be at least @size * bytes long). * @size: the number of bytes you want to read from the socket - * @cancellable: a %GCancellable or %NULL + * @cancellable: (allow-none): a %GCancellable or %NULL * @error: #GError for error reporting, or %NULL to ignore. * * Receive data (up to @size bytes) from a socket. This is mainly used by @@ -1786,7 +1786,7 @@ g_socket_receive (GSocket *socket, * bytes long). * @size: the number of bytes you want to read from the socket * @blocking: whether to do blocking or non-blocking I/O - * @cancellable: a %GCancellable or %NULL + * @cancellable: (allow-none): a %GCancellable or %NULL * @error: #GError for error reporting, or %NULL to ignore. * * This behaves exactly the same as g_socket_receive(), except that @@ -1864,7 +1864,7 @@ g_socket_receive_with_blocking (GSocket *socket, * @buffer: a buffer to read data into (which should be at least @size * bytes long). * @size: the number of bytes you want to read from the socket - * @cancellable: a %GCancellable or %NULL + * @cancellable: (allow-none): a %GCancellable or %NULL * @error: #GError for error reporting, or %NULL to ignore. * * Receive data (up to @size bytes) from a socket. @@ -1913,9 +1913,9 @@ g_socket_receive_from (GSocket *socket, /** * g_socket_send: * @socket: a #GSocket - * @buffer: the buffer containing the data to send. + * @buffer: (array length=size): the buffer containing the data to send. * @size: the number of bytes to send - * @cancellable: a %GCancellable or %NULL + * @cancellable: (allow-none): a %GCancellable or %NULL * @error: #GError for error reporting, or %NULL to ignore. * * Tries to send @size bytes from @buffer on the socket. This is @@ -1953,10 +1953,10 @@ g_socket_send (GSocket *socket, /** * g_socket_send_with_blocking: * @socket: a #GSocket - * @buffer: the buffer containing the data to send. + * @buffer: (array length=size): the buffer containing the data to send. * @size: the number of bytes to send * @blocking: whether to do blocking or non-blocking I/O - * @cancellable: a %GCancellable or %NULL + * @cancellable: (allow-none): a %GCancellable or %NULL * @error: #GError for error reporting, or %NULL to ignore. * * This behaves exactly the same as g_socket_send(), except that @@ -2032,9 +2032,9 @@ g_socket_send_with_blocking (GSocket *socket, * g_socket_send_to: * @socket: a #GSocket * @address: a #GSocketAddress, or %NULL - * @buffer: the buffer containing the data to send. + * @buffer: (array length=size): the buffer containing the data to send. * @size: the number of bytes to send - * @cancellable: a %GCancellable or %NULL + * @cancellable: (allow-none): a %GCancellable or %NULL * @error: #GError for error reporting, or %NULL to ignore. * * Tries to send @size bytes from @buffer to @address. If @address is @@ -2468,6 +2468,10 @@ socket_source_dispatch (GSource *source, GSocketSourceFunc func = (GSocketSourceFunc)callback; GSocketSource *socket_source = (GSocketSource *)source; +#ifdef G_OS_WIN32 + socket_source->pollfd.revents = update_condition (socket_source->socket); +#endif + return (*func) (socket_source->socket, socket_source->pollfd.revents & socket_source->condition, user_data); @@ -2588,10 +2592,10 @@ socket_source_new (GSocket *socket, } /** - * g_socket_create_source: + * g_socket_create_source: (skip) * @socket: a #GSocket * @condition: a #GIOCondition mask to monitor - * @cancellable: a %GCancellable or %NULL + * @cancellable: (allow-none): a %GCancellable or %NULL * * Creates a %GSource that can be attached to a %GMainContext to monitor * for the availibility of the specified @condition on the socket. @@ -2692,7 +2696,7 @@ g_socket_condition_check (GSocket *socket, * g_socket_condition_wait: * @socket: a #GSocket * @condition: a #GIOCondition mask to wait for - * @cancellable: a #GCancellable, or %NULL + * @cancellable: (allow-none): a #GCancellable, or %NULL * @error: a #GError pointer, or %NULL * * Waits for @condition to become true on @socket. When the condition @@ -2819,13 +2823,13 @@ g_socket_condition_wait (GSocket *socket, * g_socket_send_message: * @socket: a #GSocket * @address: a #GSocketAddress, or %NULL - * @vectors: an array of #GOutputVector structs + * @vectors: (array length=num_vectors): an array of #GOutputVector structs * @num_vectors: the number of elements in @vectors, or -1 - * @messages: a pointer to an array of #GSocketControlMessages, or - * %NULL. + * @messages: (array length=num_messages) (allow-none): a pointer to an + * array of #GSocketControlMessages, or %NULL. * @num_messages: number of elements in @messages, or -1. * @flags: an int containing #GSocketMsgFlags flags - * @cancellable: a %GCancellable or %NULL + * @cancellable: (allow-none): a %GCancellable or %NULL * @error: #GError for error reporting, or %NULL to ignore. * * Send data to @address on @socket. This is the most complicated and @@ -3117,14 +3121,14 @@ g_socket_send_message (GSocket *socket, * g_socket_receive_message: * @socket: a #GSocket * @address: a pointer to a #GSocketAddress pointer, or %NULL - * @vectors: an array of #GInputVector structs + * @vectors: (array length=num_vectors): an array of #GInputVector structs * @num_vectors: the number of elements in @vectors, or -1 - * @messages: a pointer which may be filled with an array of - * #GSocketControlMessages, or %NULL + * @messages: (array length=num_messages) (allow-none): a pointer which + * may be filled with an array of #GSocketControlMessages, or %NULL * @num_messages: a pointer which will be filled with the number of * elements in @messages, or %NULL * @flags: a pointer to an int containing #GSocketMsgFlags flags - * @cancellable: a %GCancellable or %NULL + * @cancellable: (allow-none): a %GCancellable or %NULL * @error: a #GError pointer, or %NULL * * Receive data from a socket. This is the most complicated and diff --git a/gio/gsocketaddressenumerator.c b/gio/gsocketaddressenumerator.c index 1886f3602..2193860bf 100644 --- a/gio/gsocketaddressenumerator.c +++ b/gio/gsocketaddressenumerator.c @@ -50,7 +50,7 @@ g_socket_address_enumerator_class_init (GSocketAddressEnumeratorClass *enumerato /** * g_socket_address_enumerator_next: * @enumerator: a #GSocketAddressEnumerator - * @cancellable: optional #GCancellable object, %NULL to ignore. + * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore. * @error: a #GError. * * Retrieves the next #GSocketAddress from @enumerator. Note that this @@ -115,9 +115,10 @@ g_socket_address_enumerator_real_next_async (GSocketAddressEnumerator *enumerato /** * g_socket_address_enumerator_next_async: * @enumerator: a #GSocketAddressEnumerator - * @cancellable: optional #GCancellable object, %NULL to ignore. - * @callback: a #GAsyncReadyCallback to call when the request is satisfied - * @user_data: the data to pass to callback function + * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore. + * @callback: (scope async): a #GAsyncReadyCallback to call when the request + * is satisfied + * @user_data: (closure): the data to pass to callback function * * Asynchronously retrieves the next #GSocketAddress from @enumerator * and then calls @callback, which must call diff --git a/gio/gsocketclient.c b/gio/gsocketclient.c index 046432279..bb60fcc9f 100644 --- a/gio/gsocketclient.c +++ b/gio/gsocketclient.c @@ -723,7 +723,7 @@ g_socket_client_class_init (GSocketClientClass *class) * g_socket_client_connect: * @client: a #GSocketClient. * @connectable: a #GSocketConnectable specifying the remote address. - * @cancellable: optional #GCancellable object, %NULL to ignore. + * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore. * @error: #GError for error reporting, or %NULL to ignore. * * Tries to resolve the @connectable and make a network connection to it.. @@ -864,15 +864,16 @@ g_socket_client_connect (GSocketClient *client, if (connection && client->priv->tls) { - GTlsClientConnection *tlsconn; + GIOStream *tlsconn; tlsconn = g_tls_client_connection_new (connection, connectable, &last_error); g_object_unref (connection); - connection = (GIOStream *)tlsconn; + connection = tlsconn; if (tlsconn) { - g_tls_client_connection_set_validation_flags (tlsconn, client->priv->tls_validation_flags); + g_tls_client_connection_set_validation_flags (G_TLS_CLIENT_CONNECTION (tlsconn), + client->priv->tls_validation_flags); if (!g_tls_connection_handshake (G_TLS_CONNECTION (tlsconn), cancellable, &last_error)) { @@ -904,7 +905,7 @@ g_socket_client_connect (GSocketClient *client, * @client: a #GSocketClient * @host_and_port: the name and optionally port of the host to connect to * @default_port: the default port to connect to - * @cancellable: a #GCancellable, or %NULL + * @cancellable: (allow-none): a #GCancellable, or %NULL * @error: a pointer to a #GError, or %NULL * * This is a helper function for g_socket_client_connect(). @@ -968,7 +969,7 @@ g_socket_client_connect_to_host (GSocketClient *client, * @client: a #GSocketConnection * @domain: a domain name * @service: the name of the service to connect to - * @cancellable: a #GCancellable, or %NULL + * @cancellable: (allow-none): a #GCancellable, or %NULL * @error: a pointer to a #GError, or %NULL * @returns: (transfer full): a #GSocketConnection if successful, or %NULL on error * @@ -1010,7 +1011,7 @@ g_socket_client_connect_to_service (GSocketClient *client, * @client: a #GSocketClient * @uri: A network URI * @default_port: the default port to connect to - * @cancellable: a #GCancellable, or %NULL + * @cancellable: (allow-none): a #GCancellable, or %NULL * @error: a pointer to a #GError, or %NULL * * This is a helper function for g_socket_client_connect(). @@ -1019,7 +1020,9 @@ g_socket_client_connect_to_service (GSocketClient *client, * * @uri may be any valid URI containing an "authority" (hostname/port) * component. If a port is not specified in the URI, @default_port - * will be used. + * will be used. TLS will be negotiated if #GSocketClient:tls is %TRUE. + * (#GSocketClient does not know to automatically assume TLS for + * certain URI schemes.) * * Using this rather than g_socket_client_connect() or * g_socket_client_connect_to_host() allows #GSocketClient to @@ -1166,7 +1169,7 @@ g_socket_client_tls_handshake_callback (GObject *object, static void g_socket_client_tls_handshake (GSocketClientAsyncConnectData *data) { - GTlsClientConnection *tlsconn; + GIOStream *tlsconn; if (!data->client->priv->tls) { @@ -1179,7 +1182,8 @@ g_socket_client_tls_handshake (GSocketClientAsyncConnectData *data) &data->last_error); if (tlsconn) { - g_tls_client_connection_set_validation_flags (tlsconn, data->client->priv->tls_validation_flags); + g_tls_client_connection_set_validation_flags (G_TLS_CLIENT_CONNECTION (tlsconn), + data->client->priv->tls_validation_flags); g_tls_connection_handshake_async (G_TLS_CONNECTION (tlsconn), G_PRIORITY_DEFAULT, data->cancellable, @@ -1418,9 +1422,9 @@ g_socket_client_enumerator_callback (GObject *object, * g_socket_client_connect_async: * @client: a #GTcpClient * @connectable: a #GSocketConnectable specifying the remote address. - * @cancellable: a #GCancellable, or %NULL - * @callback: a #GAsyncReadyCallback - * @user_data: user data for the callback + * @cancellable: (allow-none): a #GCancellable, or %NULL + * @callback: (scope async): a #GAsyncReadyCallback + * @user_data: (closure): user data for the callback * * This is the asynchronous version of g_socket_client_connect(). * @@ -1467,9 +1471,9 @@ g_socket_client_connect_async (GSocketClient *client, * @client: a #GTcpClient * @host_and_port: the name and optionally the port of the host to connect to * @default_port: the default port to connect to - * @cancellable: a #GCancellable, or %NULL - * @callback: a #GAsyncReadyCallback - * @user_data: user data for the callback + * @cancellable: (allow-none): a #GCancellable, or %NULL + * @callback: (scope async): a #GAsyncReadyCallback + * @user_data: (closure): user data for the callback * * This is the asynchronous version of g_socket_client_connect_to_host(). * @@ -1512,9 +1516,9 @@ g_socket_client_connect_to_host_async (GSocketClient *client, * @client: a #GSocketClient * @domain: a domain name * @service: the name of the service to connect to - * @cancellable: a #GCancellable, or %NULL - * @callback: a #GAsyncReadyCallback - * @user_data: user data for the callback + * @cancellable: (allow-none): a #GCancellable, or %NULL + * @callback: (scope async): a #GAsyncReadyCallback + * @user_data: (closure): user data for the callback * * This is the asynchronous version of * g_socket_client_connect_to_service(). @@ -1543,9 +1547,9 @@ g_socket_client_connect_to_service_async (GSocketClient *client, * @client: a #GSocketClient * @uri: a network uri * @default_port: the default port to connect to - * @cancellable: a #GCancellable, or %NULL - * @callback: a #GAsyncReadyCallback - * @user_data: user data for the callback + * @cancellable: (allow-none): a #GCancellable, or %NULL + * @callback: (scope async): a #GAsyncReadyCallback + * @user_data: (closure): user data for the callback * * This is the asynchronous version of g_socket_client_connect_to_uri(). * diff --git a/gio/gsocketcontrolmessage.c b/gio/gsocketcontrolmessage.c index cce825867..a2a6f44fe 100644 --- a/gio/gsocketcontrolmessage.c +++ b/gio/gsocketcontrolmessage.c @@ -153,7 +153,7 @@ g_socket_control_message_class_init (GSocketControlMessageClass *class) * @level: a socket level * @type: a socket control message type for the given @level * @size: the size of the data in bytes - * @data: pointer to the message data + * @data: (array length=size) (element-type guint8): pointer to the message data * * Tries to deserialize a socket control message of a given * @level and @type. This will ask all known (to GType) subclasses diff --git a/gio/gsocketlistener.c b/gio/gsocketlistener.c index babefcdf2..ddfbffa8b 100644 --- a/gio/gsocketlistener.c +++ b/gio/gsocketlistener.c @@ -199,7 +199,7 @@ check_listener (GSocketListener *listener, * g_socket_listener_add_socket: * @listener: a #GSocketListener * @socket: a listening #GSocket - * @source_object: Optional #GObject identifying this source + * @source_object: (allow-none): Optional #GObject identifying this source * @error: #GError for error reporting, or %NULL to ignore. * * Adds @socket to the set of sockets that we try to accept @@ -253,7 +253,7 @@ g_socket_listener_add_socket (GSocketListener *listener, * @address: a #GSocketAddress * @type: a #GSocketType * @protocol: a #GSocketProtocol - * @source_object: Optional #GObject identifying this source + * @source_object: (allow-none): Optional #GObject identifying this source * @effective_address: (out) (allow-none): location to store the address that was bound to, or %NULL. * @error: #GError for error reporting, or %NULL to ignore. * @@ -344,7 +344,7 @@ g_socket_listener_add_address (GSocketListener *listener, * g_socket_listener_add_inet_port: * @listener: a #GSocketListener * @port: an IP port number (non-zero) - * @source_object: Optional #GObject identifying this source + * @source_object: (allow-none): Optional #GObject identifying this source * @error: #GError for error reporting, or %NULL to ignore. * * Helper function for g_socket_listener_add_address() that @@ -563,7 +563,7 @@ accept_callback (GSocket *socket, * g_socket_listener_accept_socket: * @listener: a #GSocketListener * @source_object: (out) (transfer none) (allow-none): location where #GObject pointer will be stored, or %NULL. - * @cancellable: optional #GCancellable object, %NULL to ignore. + * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore. * @error: #GError for error reporting, or %NULL to ignore. * * Blocks waiting for a client to connect to any of the sockets added @@ -640,7 +640,7 @@ g_socket_listener_accept_socket (GSocketListener *listener, * g_socket_listener_accept: * @listener: a #GSocketListener * @source_object: (out) (transfer none) (allow-none): location where #GObject pointer will be stored, or %NULL - * @cancellable: optional #GCancellable object, %NULL to ignore. + * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore. * @error: #GError for error reporting, or %NULL to ignore. * * Blocks waiting for a client to connect to any of the sockets added @@ -724,9 +724,9 @@ accept_ready (GSocket *accept_socket, /** * g_socket_listener_accept_socket_async: * @listener: a #GSocketListener - * @cancellable: a #GCancellable, or %NULL - * @callback: a #GAsyncReadyCallback - * @user_data: user data for the callback + * @cancellable: (allow-none): a #GCancellable, or %NULL + * @callback: (scope async): a #GAsyncReadyCallback + * @user_data: (closure): user data for the callback * * This is the asynchronous version of g_socket_listener_accept_socket(). * @@ -769,7 +769,7 @@ g_socket_listener_accept_socket_async (GSocketListener *listener, * g_socket_listener_accept_socket_finish: * @listener: a #GSocketListener * @result: a #GAsyncResult. - * @source_object: Optional #GObject identifying this source + * @source_object: (out) (transfer none) (allow-none): Optional #GObject identifying this source * @error: a #GError location to store the error occuring, or %NULL to * ignore. * @@ -808,9 +808,9 @@ g_socket_listener_accept_socket_finish (GSocketListener *listener, /** * g_socket_listener_accept_async: * @listener: a #GSocketListener - * @cancellable: a #GCancellable, or %NULL - * @callback: a #GAsyncReadyCallback - * @user_data: user data for the callback + * @cancellable: (allow-none): a #GCancellable, or %NULL + * @callback: (scope async): a #GAsyncReadyCallback + * @user_data: (closure): user data for the callback * * This is the asynchronous version of g_socket_listener_accept(). * @@ -836,7 +836,7 @@ g_socket_listener_accept_async (GSocketListener *listener, * g_socket_listener_accept_finish: * @listener: a #GSocketListener * @result: a #GAsyncResult. - * @source_object: Optional #GObject identifying this source + * @source_object: (out) (transfer none) (allow-none): Optional #GObject identifying this source * @error: a #GError location to store the error occuring, or %NULL to * ignore. * @@ -927,7 +927,7 @@ g_socket_listener_close (GSocketListener *listener) /** * g_socket_listener_add_any_inet_port: * @listener: a #GSocketListener - * @source_object: Optional #GObject identifying this source + * @source_object: (allow-none): Optional #GObject identifying this source * @error: a #GError location to store the error occuring, or %NULL to * ignore. * diff --git a/gio/gsocks5proxy.c b/gio/gsocks5proxy.c index 07fc8ce2f..a4da21ef0 100644 --- a/gio/gsocks5proxy.c +++ b/gio/gsocks5proxy.c @@ -399,7 +399,7 @@ parse_connect_reply (const guint8 *data, gint *atype, GError **error) default: /* Unknown error */ g_set_error_literal (error, G_IO_ERROR, G_IO_ERROR_PROXY_FAILED, - _("Unkown SOCKSv5 proxy error.")); + _("Unknown SOCKSv5 proxy error.")); return FALSE; break; } diff --git a/gio/gthemedicon.c b/gio/gthemedicon.c index f6cde1570..e723a493e 100644 --- a/gio/gthemedicon.c +++ b/gio/gthemedicon.c @@ -275,7 +275,7 @@ g_themed_icon_new (const char *iconname) /** * g_themed_icon_new_from_names: - * @iconnames: an array of strings containing icon names. + * @iconnames: (array length=len): an array of strings containing icon names. * @len: the length of the @iconnames array, or -1 if @iconnames is * %NULL-terminated * diff --git a/gio/gtlscertificate.c b/gio/gtlscertificate.c index be1f9af47..8e0067c17 100644 --- a/gio/gtlscertificate.c +++ b/gio/gtlscertificate.c @@ -53,11 +53,6 @@ G_DEFINE_ABSTRACT_TYPE (GTlsCertificate, g_tls_certificate, G_TYPE_OBJECT); -struct _GTlsCertificatePrivate -{ - GTlsCertificate *issuer; -}; - enum { PROP_0, @@ -72,9 +67,6 @@ enum static void g_tls_certificate_init (GTlsCertificate *cert) { - cert->priv = G_TYPE_INSTANCE_GET_PRIVATE (cert, - G_TYPE_TLS_CERTIFICATE, - GTlsCertificatePrivate); } static void @@ -83,17 +75,7 @@ g_tls_certificate_get_property (GObject *object, GValue *value, GParamSpec *pspec) { - GTlsCertificate *cert = G_TLS_CERTIFICATE (object); - - switch (prop_id) - { - case PROP_ISSUER: - g_value_set_object (value, cert->priv->issuer); - break; - - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); - } + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); } static void @@ -102,28 +84,7 @@ g_tls_certificate_set_property (GObject *object, const GValue *value, GParamSpec *pspec) { - GTlsCertificate *cert = G_TLS_CERTIFICATE (object); - - switch (prop_id) - { - case PROP_ISSUER: - cert->priv->issuer = g_value_dup_object (value); - break; - - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); - } -} - -static void -g_tls_certificate_finalize (GObject *object) -{ - GTlsCertificate *cert = G_TLS_CERTIFICATE (object); - - if (cert->priv->issuer) - g_object_unref (cert->priv->issuer); - - G_OBJECT_CLASS (g_tls_certificate_parent_class)->finalize (object); + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); } static void @@ -131,11 +92,8 @@ g_tls_certificate_class_init (GTlsCertificateClass *class) { GObjectClass *gobject_class = G_OBJECT_CLASS (class); - g_type_class_add_private (class, sizeof (GTlsCertificatePrivate)); - gobject_class->set_property = g_tls_certificate_set_property; gobject_class->get_property = g_tls_certificate_get_property; - gobject_class->finalize = g_tls_certificate_finalize; /** * GTlsCertificate:certificate: @@ -482,5 +440,49 @@ g_tls_certificate_list_new_from_file (const gchar *file, GTlsCertificate * g_tls_certificate_get_issuer (GTlsCertificate *cert) { - return cert->priv->issuer; + GTlsCertificate *issuer; + + g_object_get (G_OBJECT (cert), "issuer", &issuer, NULL); + if (issuer) + g_object_unref (issuer); + + return issuer; +} + +/** + * g_tls_certificate_verify: + * @cert: a #GTlsCertificate + * @identity: (allow-none): the expected peer identity + * @trusted_ca: (allow-none): the certificate of a trusted authority + * + * This verifies @cert and returns a set of #GTlsCertificateFlags + * indicating any problems found with it. This can be used to verify a + * certificate outside the context of making a connection, or to + * check a certificate against a CA that is not part of the system + * CA database. + * + * If @identity is not %NULL, @cert's name(s) will be compared against + * it, and %G_TLS_CERTIFICATE_BAD_IDENTITY will be set in the return + * value if it does not match. If @identity is %NULL, that bit will + * never be set in the return value. + * + * If @trusted_ca is not %NULL, then @cert (or one of the certificates + * in its chain) must be signed by it, or else + * %G_TLS_CERTIFICATE_UNKNOWN_CA will be set in the return value. If + * @trusted_ca is %NULL, that bit will never be set in the return + * value. + * + * (All other #GTlsCertificateFlags values will always be set or unset + * as appropriate.) + * + * Return value: the appropriate #GTlsCertificateFlags + * + * Since: 2.28 + */ +GTlsCertificateFlags +g_tls_certificate_verify (GTlsCertificate *cert, + GSocketConnectable *identity, + GTlsCertificate *trusted_ca) +{ + return G_TLS_CERTIFICATE_GET_CLASS (cert)->verify (cert, identity, trusted_ca); } diff --git a/gio/gtlscertificate.h b/gio/gtlscertificate.h index f8a7fd161..40cabf959 100644 --- a/gio/gtlscertificate.h +++ b/gio/gtlscertificate.h @@ -49,26 +49,34 @@ struct _GTlsCertificateClass { GObjectClass parent_class; + GTlsCertificateFlags (* verify) (GTlsCertificate *cert, + GSocketConnectable *identity, + GTlsCertificate *trusted_ca); + /*< private >*/ /* Padding for future expansion */ gpointer padding[8]; }; -GType g_tls_certificate_get_type (void) G_GNUC_CONST; +GType g_tls_certificate_get_type (void) G_GNUC_CONST; -GTlsCertificate *g_tls_certificate_new_from_pem (const gchar *data, - gssize length, - GError **error); +GTlsCertificate *g_tls_certificate_new_from_pem (const gchar *data, + gssize length, + GError **error); -GTlsCertificate *g_tls_certificate_new_from_file (const gchar *file, - GError **error); -GTlsCertificate *g_tls_certificate_new_from_files (const gchar *cert_file, - const gchar *key_file, - GError **error); -GList *g_tls_certificate_list_new_from_file (const gchar *file, - GError **error); +GTlsCertificate *g_tls_certificate_new_from_file (const gchar *file, + GError **error); +GTlsCertificate *g_tls_certificate_new_from_files (const gchar *cert_file, + const gchar *key_file, + GError **error); +GList *g_tls_certificate_list_new_from_file (const gchar *file, + GError **error); -GTlsCertificate *g_tls_certificate_get_issuer (GTlsCertificate *cert); +GTlsCertificate *g_tls_certificate_get_issuer (GTlsCertificate *cert); + +GTlsCertificateFlags g_tls_certificate_verify (GTlsCertificate *cert, + GSocketConnectable *identity, + GTlsCertificate *trusted_ca); G_END_DECLS diff --git a/gio/gtlsclientconnection.c b/gio/gtlsclientconnection.c index 1faea96d4..4b87b60c9 100644 --- a/gio/gtlsclientconnection.c +++ b/gio/gtlsclientconnection.c @@ -38,8 +38,6 @@ * * #GTlsClientConnection is the client-side subclass of * #GTlsConnection, representing a client-side TLS connection. - * - * Since: 2.28 */ /** @@ -131,18 +129,19 @@ g_tls_client_connection_default_init (GTlsClientConnectionInterface *iface) * A list of the distinguished names of the Certificate Authorities * that the server will accept client certificates signed by. If the * server requests a client certificate during the handshake, then - * this property will be set by the time the - * #GTlsConnection::need-certificate signal is emitted. + * this property will be set after the handshake completes. + * + * Each item in the list is a #GByteArray which contains the complete + * subject DN of the certificate authority. * * Since: 2.28 */ g_object_interface_install_property (iface, - g_param_spec_boxed ("accepted-cas", - P_("Accepted CAs"), - P_("Distinguished names of the CAs the server accepts certificates from"), - G_TYPE_STRV, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); + g_param_spec_pointer ("accepted-cas", + P_("Accepted CAs"), + P_("Distinguished names of the CAs the server accepts certificates from"), + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS)); } /** @@ -159,7 +158,7 @@ g_tls_client_connection_default_init (GTlsClientConnectionInterface *iface) * * Since: 2.28 */ -GTlsClientConnection * +GIOStream * g_tls_client_connection_new (GIOStream *base_io_stream, GSocketConnectable *server_identity, GError **error) @@ -173,7 +172,7 @@ g_tls_client_connection_new (GIOStream *base_io_stream, "base-io-stream", base_io_stream, "server-identity", server_identity, NULL); - return G_TLS_CLIENT_CONNECTION (conn); + return G_IO_STREAM (conn); } /** @@ -200,10 +199,11 @@ g_tls_client_connection_get_validation_flags (GTlsClientConnection *conn) /** * g_tls_client_connection_set_validation_flags: * @conn: the #GTlsClientConnection - * @flags: the #GTlsCertificatelags to use + * @flags: the #GTlsCertificateFlags to use * * Sets @conn's validation flags, to override the default set of - * checks performed when validating a server certificate. + * checks performed when validating a server certificate. By default, + * %G_TLS_CERTIFICATE_VALIDATE_ALL is used. * * Since: 2.28 */ @@ -316,15 +316,19 @@ g_tls_client_connection_set_use_ssl3 (GTlsClientConnection *conn, * during the TLS handshake if the server requests a certificate. * Otherwise, it will be %NULL. * - * Return value: (transfer full) (array zero-terminated=1): the list - * of CA names, which you must free (eg, with g_strfreev()). + * Each item in the list is a #GByteArray which contains the complete + * subject DN of the certificate authority. + * + * Return value: (element-type GByteArray) (transfer full): the list of + * CA DNs. You should unref each element with g_byte_array_unref() and then + * the free the list with g_list_free(). * * Since: 2.28 */ -char ** +GList * g_tls_client_connection_get_accepted_cas (GTlsClientConnection *conn) { - char **accepted_cas = NULL; + GList *accepted_cas = NULL; g_return_val_if_fail (G_IS_TLS_CLIENT_CONNECTION (conn), NULL); diff --git a/gio/gtlsclientconnection.h b/gio/gtlsclientconnection.h index 2bfa8c451..fd6088a63 100644 --- a/gio/gtlsclientconnection.h +++ b/gio/gtlsclientconnection.h @@ -52,7 +52,7 @@ struct _GTlsClientConnectionInterface GType g_tls_client_connection_get_type (void) G_GNUC_CONST; -GTlsClientConnection *g_tls_client_connection_new (GIOStream *base_io_stream, +GIOStream * g_tls_client_connection_new (GIOStream *base_io_stream, GSocketConnectable *server_identity, GError **error); @@ -65,7 +65,7 @@ void g_tls_client_connection_set_server_identity (GTlsClientCo gboolean g_tls_client_connection_get_use_ssl3 (GTlsClientConnection *conn); void g_tls_client_connection_set_use_ssl3 (GTlsClientConnection *conn, gboolean use_ssl3); -char ** g_tls_client_connection_get_accepted_cas (GTlsClientConnection *conn); +GList * g_tls_client_connection_get_accepted_cas (GTlsClientConnection *conn); G_END_DECLS diff --git a/gio/gtlsconnection.c b/gio/gtlsconnection.c index e55f6f59c..b3587780b 100644 --- a/gio/gtlsconnection.c +++ b/gio/gtlsconnection.c @@ -63,15 +63,8 @@ static void g_tls_connection_set_property (GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec); -static void g_tls_connection_finalize (GObject *object); - -static gboolean g_tls_connection_certificate_accumulator (GSignalInvocationHint *ihint, - GValue *return_accu, - const GValue *handler_return, - gpointer dummy); enum { - NEED_CERTIFICATE, ACCEPT_CERTIFICATE, LAST_SIGNAL @@ -84,12 +77,10 @@ enum { PROP_BASE_IO_STREAM, PROP_REQUIRE_CLOSE_NOTIFY, PROP_REHANDSHAKE_MODE, + PROP_USE_SYSTEM_CERTDB, PROP_CERTIFICATE, - PROP_PEER_CERTIFICATE -}; - -struct _GTlsConnectionPrivate { - GTlsCertificate *certificate, *peer_certificate; + PROP_PEER_CERTIFICATE, + PROP_PEER_CERTIFICATE_ERRORS }; static void @@ -97,11 +88,8 @@ g_tls_connection_class_init (GTlsConnectionClass *klass) { GObjectClass *gobject_class = G_OBJECT_CLASS (klass); - g_type_class_add_private (klass, sizeof (GTlsConnectionPrivate)); - gobject_class->get_property = g_tls_connection_get_property; gobject_class->set_property = g_tls_connection_set_property; - gobject_class->finalize = g_tls_connection_finalize; /** * GTlsConnection:base-io-stream: @@ -118,6 +106,23 @@ g_tls_connection_class_init (GTlsConnectionClass *klass) G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS)); + /** + * GTlsConnection:use-system-certdb: + * + * Whether or not the system certificate database will be used to + * verify peer certificates. See + * g_tls_connection_set_use_system_certdb(). + * + * Since: 2.28 + */ + g_object_class_install_property (gobject_class, PROP_USE_SYSTEM_CERTDB, + g_param_spec_boolean ("use-system-certdb", + P_("Use system certificate database"), + P_("Whether to verify peer certificates against the system certificate database"), + TRUE, + G_PARAM_READWRITE | + G_PARAM_CONSTRUCT | + G_PARAM_STATIC_STRINGS)); /** * GTlsConnection:require-close-notify: * @@ -132,6 +137,7 @@ g_tls_connection_class_init (GTlsConnectionClass *klass) P_("Whether to require proper TLS close notification"), TRUE, G_PARAM_READWRITE | + G_PARAM_CONSTRUCT | G_PARAM_STATIC_STRINGS)); /** * GTlsConnection:rehandshake-mode: @@ -148,6 +154,7 @@ g_tls_connection_class_init (GTlsConnectionClass *klass) G_TYPE_TLS_REHANDSHAKE_MODE, G_TLS_REHANDSHAKE_SAFELY, G_PARAM_READWRITE | + G_PARAM_CONSTRUCT | G_PARAM_STATIC_STRINGS)); /** * GTlsConnection:certificate: @@ -167,8 +174,13 @@ g_tls_connection_class_init (GTlsConnectionClass *klass) /** * GTlsConnection:peer-certificate: * - * The connection's peer's certificate, after it has been set during - * the TLS handshake. + * The connection's peer's certificate, after the TLS handshake has + * completed and the certificate has been accepted. Note in + * particular that this is not yet set during the emission of + * #GTlsConnection::accept-certificate. + * + * (You can watch for a #GObject::notify signal on this property to + * detect when a handshake has occurred.) * * Since: 2.28 */ @@ -179,56 +191,26 @@ g_tls_connection_class_init (GTlsConnectionClass *klass) G_TYPE_TLS_CERTIFICATE, G_PARAM_READABLE | G_PARAM_STATIC_STRINGS)); - /** - * GTlsConnection::need-certificate: - * @conn: a #GTlsConnection + * GTlsConnection:peer-certificate-errors: * - * Emitted during the TLS handshake if a certificate is needed and - * one has not been set via g_tls_connection_set_certificate(). - * - * For server-side connections, a certificate is always needed, and - * the connection will fail if none is provided. - * - * For client-side connections, the signal will be emitted only if - * the server has requested a certificate; you can call - * g_tls_client_connection_get_accepted_cas() to get a list of - * Certificate Authorities that the server will accept certificates - * from. If you do not return a certificate (and have not provided - * one via g_tls_connection_set_certificate()) then the server may - * reject the handshake, in which case the operation will eventually - * fail with %G_TLS_ERROR_CERTIFICATE_REQUIRED. - * - * Note that if this signal is emitted as part of asynchronous I/O - * in the main thread, then you should not attempt to interact with - * the user before returning from the signal handler. If you want to - * let the user choose a certificate to return, you would have to - * return %NULL from the signal handler on the first attempt, and - * then after the connection attempt returns a - * %G_TLS_ERROR_CERTIFICATE_REQUIRED, you can interact with the - * user, create a new connection, and call - * g_tls_connection_set_certificate() on it before handshaking (or - * just connect to the signal again and return the certificate the - * next time). - * - * If you are doing I/O in another thread, you do not - * need to worry about this, and can simply block in the signal - * handler until the UI thread returns an answer. - * - * Return value: the certificate to send to the peer, or %NULL to - * send no certificate. If you return a certificate, the signal - * emission will be stopped and further handlers will not be called. + * The errors noticed-and-ignored while verifying + * #GTlsConnection:peer-certificate. Normally this should be %0, but + * it may not be if #GTlsClientConnection::validation-flags is not + * %G_TLS_CERTIFICATE_VALIDATE_ALL, or if + * #GTlsConnection::accept-certificate overrode the default + * behavior. * * Since: 2.28 */ - signals[NEED_CERTIFICATE] = - g_signal_new (I_("need-certificate"), - G_TYPE_TLS_CONNECTION, - G_SIGNAL_RUN_LAST, - G_STRUCT_OFFSET (GTlsConnectionClass, need_certificate), - g_tls_connection_certificate_accumulator, NULL, - _gio_marshal_OBJECT__VOID, - G_TYPE_TLS_CERTIFICATE, 0); + g_object_class_install_property (gobject_class, PROP_PEER_CERTIFICATE_ERRORS, + g_param_spec_flags ("peer-certificate-errors", + P_("Peer Certificate Errors"), + P_("Errors found with the peer's certificate"), + G_TYPE_TLS_CERTIFICATE_FLAGS, + 0, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS)); /** * GTlsConnection::accept-certificate: @@ -255,10 +237,20 @@ g_tls_connection_class_init (GTlsConnectionClass *klass) * certificate, and the certificate will only be accepted if a * handler returns %TRUE. * - * As with #GTlsConnection::need_certificate, you should not - * interact with the user during the signal emission if the signal - * was emitted as part of an asynchronous operation in the main - * thread. + * Note that if this signal is emitted as part of asynchronous I/O + * in the main thread, then you should not attempt to interact with + * the user before returning from the signal handler. If you want to + * let the user decide whether or not to accept the certificate, you + * would have to return %FALSE from the signal handler on the first + * attempt, and then after the connection attempt returns a + * %G_TLS_ERROR_HANDSHAKE, you can interact with the user, and if + * the user decides to accept the certificate, remember that fact, + * create a new connection, and return %TRUE from the signal handler + * the next time. + * + * If you are doing I/O in another thread, you do not + * need to worry about this, and can simply block in the signal + * handler until the UI thread returns an answer. * * Return value: %TRUE to accept @peer_cert (which will also * immediately end the signal emission). %FALSE to allow the signal @@ -282,20 +274,6 @@ g_tls_connection_class_init (GTlsConnectionClass *klass) static void g_tls_connection_init (GTlsConnection *conn) { - conn->priv = G_TYPE_INSTANCE_GET_PRIVATE (conn, G_TYPE_TLS_CONNECTION, GTlsConnectionPrivate); -} - -static void -g_tls_connection_finalize (GObject *object) -{ - GTlsConnection *conn = G_TLS_CONNECTION (object); - - if (conn->priv->certificate) - g_object_unref (conn->priv->certificate); - if (conn->priv->peer_certificate) - g_object_unref (conn->priv->peer_certificate); - - G_OBJECT_CLASS (g_tls_connection_parent_class)->finalize (object); } static void @@ -304,22 +282,7 @@ g_tls_connection_get_property (GObject *object, GValue *value, GParamSpec *pspec) { - GTlsConnection *conn = G_TLS_CONNECTION (object); - - switch (prop_id) - { - case PROP_CERTIFICATE: - g_value_set_object (value, conn->priv->certificate); - break; - - case PROP_PEER_CERTIFICATE: - g_value_set_object (value, conn->priv->peer_certificate); - break; - - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); - break; - } + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); } static void @@ -328,18 +291,57 @@ g_tls_connection_set_property (GObject *object, const GValue *value, GParamSpec *pspec) { - GTlsConnection *conn = G_TLS_CONNECTION (object); + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); +} - switch (prop_id) - { - case PROP_CERTIFICATE: - g_tls_connection_set_certificate (conn, g_value_get_object (value)); - break; +/** + * g_tls_connection_set_use_system_certdb: + * @conn: a #GTlsConnection + * @use_system_certdb: whether to use the system certificate database + * + * Sets whether @conn uses the system certificate database to verify + * peer certificates. This is %TRUE by default. If set to %FALSE, then + * peer certificate validation will always set the + * %G_TLS_CERTIFICATE_UNKNOWN_CA error (meaning + * #GTlsConnection::accept-certificate will always be emitted on + * client-side connections, unless that bit is not set in + * #GTlsClientConnection:validation-flags). + * + * Since: 2.28 + */ +void +g_tls_connection_set_use_system_certdb (GTlsConnection *conn, + gboolean use_system_certdb) +{ + g_return_if_fail (G_IS_TLS_CONNECTION (conn)); - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); - break; - } + g_object_set (G_OBJECT (conn), + "use-system-certdb", use_system_certdb, + NULL); +} + +/** + * g_tls_connection_get_use_system_certdb: + * @conn: a #GTlsConnection + * + * Gets whether @conn uses the system certificate database to verify + * peer certificates. See g_tls_connection_set_use_system_certdb(). + * + * Return value: whether @conn uses the system certificate database + * + * Since: 2.28 + */ +gboolean +g_tls_connection_get_use_system_certdb (GTlsConnection *conn) +{ + gboolean use_system_certdb; + + g_return_val_if_fail (G_IS_TLS_CONNECTION (conn), TRUE); + + g_object_get (G_OBJECT (conn), + "use-system-certdb", &use_system_certdb, + NULL); + return use_system_certdb; } /** @@ -348,9 +350,23 @@ g_tls_connection_set_property (GObject *object, * @certificate: the certificate to use for @conn * * This sets the certificate that @conn will present to its peer - * during the TLS handshake. If this is not set, - * #GTlsConnection::need-certificate will be emitted during the - * handshake if needed. + * during the TLS handshake. For a #GTlsServerConnection, it is + * mandatory to set this, and that will normally be done at construct + * time. + * + * For a #GTlsClientConnection, this is optional. If a handshake fails + * with %G_TLS_ERROR_CERTIFICATE_REQUIRED, that means that the server + * requires a certificate, and if you try connecting again, you should + * call this method first. You can call + * g_tls_client_connection_get_accepted_cas() on the failed connection + * to get a list of Certificate Authorities that the server will + * accept certificates from. + * + * (It is also possible that a server will allow the connection with + * or without a certificate; in that case, if you don't provide a + * certificate, you can tell that the server requested one by the fact + * that g_tls_client_connection_get_accepted_cas() will return + * non-%NULL.) * * Since: 2.28 */ @@ -361,10 +377,7 @@ g_tls_connection_set_certificate (GTlsConnection *conn, g_return_if_fail (G_IS_TLS_CONNECTION (conn)); g_return_if_fail (G_IS_TLS_CERTIFICATE (certificate)); - if (conn->priv->certificate) - g_object_unref (conn->priv->certificate); - conn->priv->certificate = certificate ? g_object_ref (certificate) : NULL; - g_object_notify (G_OBJECT (conn), "certificate"); + g_object_set (G_OBJECT (conn), "certificate", certificate, NULL); } /** @@ -372,38 +385,73 @@ g_tls_connection_set_certificate (GTlsConnection *conn, * @conn: a #GTlsConnection * * Gets @conn's certificate, as set by - * g_tls_connection_set_certificate() or returned from one of the - * signals. + * g_tls_connection_set_certificate(). * - * Return value: @conn's certificate, or %NULL + * Return value: (transfer none): @conn's certificate, or %NULL * * Since: 2.28 */ GTlsCertificate * g_tls_connection_get_certificate (GTlsConnection *conn) { + GTlsCertificate *certificate; + g_return_val_if_fail (G_IS_TLS_CONNECTION (conn), NULL); - return conn->priv->certificate; + g_object_get (G_OBJECT (conn), "certificate", &certificate, NULL); + if (certificate) + g_object_unref (certificate); + + return certificate; } /** * g_tls_connection_get_peer_certificate: * @conn: a #GTlsConnection * - * Gets @conn's peer's certificate after it has been set during the - * handshake. + * Gets @conn's peer's certificate after the handshake has completed. + * (It is not set during the emission of + * #GTlsConnection::accept-certificate.) * - * Return value: @conn's peer's certificate, or %NULL + * Return value: (transfer none): @conn's peer's certificate, or %NULL * * Since: 2.28 */ GTlsCertificate * g_tls_connection_get_peer_certificate (GTlsConnection *conn) { + GTlsCertificate *peer_certificate; + g_return_val_if_fail (G_IS_TLS_CONNECTION (conn), NULL); - return conn->priv->peer_certificate; + g_object_get (G_OBJECT (conn), "peer-certificate", &peer_certificate, NULL); + if (peer_certificate) + g_object_unref (peer_certificate); + + return peer_certificate; +} + +/** + * g_tls_connection_get_peer_certificate_errors: + * @conn: a #GTlsConnection + * + * Gets the errors associated with validating @conn's peer's + * certificate, after the handshake has completed. (It is not set + * during the emission of #GTlsConnection::accept-certificate.) + * + * Return value: @conn's peer's certificate errors + * + * Since: 2.28 + */ +GTlsCertificateFlags +g_tls_connection_get_peer_certificate_errors (GTlsConnection *conn) +{ + GTlsCertificateFlags errors; + + g_return_val_if_fail (G_IS_TLS_CONNECTION (conn), 0); + + g_object_get (G_OBJECT (conn), "peer-certificate-errors", &errors, NULL); + return errors; } /** @@ -411,13 +459,12 @@ g_tls_connection_get_peer_certificate (GTlsConnection *conn) * @conn: a #GTlsConnection * @require_close_notify: whether or not to require close notification * - * Sets whether or not @conn requires a proper TLS close notification - * before closing the connection. If this is %TRUE (the default), then - * calling g_io_stream_close() on @conn will send a TLS close - * notification, and likewise it will expect to receive a close - * notification before the connection is closed when reading, and will - * return a %G_TLS_ERROR_EOF error if the connection is closed without - * proper notification (since this may indicate a network error, or + * Sets whether or not @conn expects a proper TLS close notification + * before the connection is closed. If this is %TRUE (the default), + * then @conn will expect to receive a TLS close notification from its + * peer before the connection is closed, and will return a + * %G_TLS_ERROR_EOF error if the connection is closed without proper + * notification (since this may indicate a network error, or * man-in-the-middle attack). * * In some protocols, the application will know whether or not the @@ -426,9 +473,18 @@ g_tls_connection_get_peer_certificate (GTlsConnection *conn) * somehow self-delimiting); in this case, the close notify is * redundant and sometimes omitted. (TLS 1.1 explicitly allows this; * in TLS 1.0 it is technically an error, but often done anyway.) You - * can use g_tls_connection_set_require_close_notify() to tell @conn to - * allow an "unannounced" connection close, in which case it is up to - * the application to check that the data has been fully received. + * can use g_tls_connection_set_require_close_notify() to tell @conn + * to allow an "unannounced" connection close, in which case the close + * will show up as a 0-length read, as in a non-TLS + * #GSocketConnection, and it is up to the application to check that + * the data has been fully received. + * + * Note that this only affects the behavior when the peer closes the + * connection; when the application calls g_io_stream_close() itself + * on @conn, this will send a close notification regardless of the + * setting of this property. If you explicitly want to do an unclean + * close, you can close @conn's #GTlsConnection:base-io-stream rather + * than closing @conn itself. * * Since: 2.28 */ @@ -447,8 +503,8 @@ g_tls_connection_set_require_close_notify (GTlsConnection *conn, * g_tls_connection_get_require_close_notify: * @conn: a #GTlsConnection * - * Tests whether or not @conn requires a proper TLS close notification - * before closing the connection. See + * Tests whether or not @conn expects a proper TLS close notification + * when the connection is closed. See * g_tls_connection_set_require_close_notify() for details. * * Return value: %TRUE if @conn requires a proper TLS close @@ -558,8 +614,7 @@ g_tls_connection_get_rehandshake_mode (GTlsConnection *conn) * However, you may call g_tls_connection_handshake() later on to * renegotiate parameters (encryption methods, etc) with the client. * - * #GTlsConnection::accept_certificate and - * #GTlsConnection::need_certificate may be emitted during the + * #GTlsConnection::accept_certificate may be emitted during the * handshake. * * Return value: success or failure @@ -599,9 +654,9 @@ g_tls_connection_handshake_async (GTlsConnection *conn, { g_return_if_fail (G_IS_TLS_CONNECTION (conn)); - return G_TLS_CONNECTION_GET_CLASS (conn)->handshake_async (conn, io_priority, - cancellable, - callback, user_data); + G_TLS_CONNECTION_GET_CLASS (conn)->handshake_async (conn, io_priority, + cancellable, + callback, user_data); } /** @@ -644,42 +699,6 @@ g_tls_error_quark (void) } -static gboolean -g_tls_connection_certificate_accumulator (GSignalInvocationHint *ihint, - GValue *return_accu, - const GValue *handler_return, - gpointer dummy) -{ - GTlsCertificate *cert; - - cert = g_value_get_object (handler_return); - if (cert) - g_value_set_object (return_accu, cert); - - return cert != NULL; -} - -/** - * g_tls_connection_emit_need_certificate: - * @conn: a #GTlsConnection - * - * Used by #GTlsConnection implementations to emit the - * #GTlsConnection::need-certificate signal. - * - * Returns: a new #GTlsCertificate - * - * Since: 2.28 - */ -GTlsCertificate * -g_tls_connection_emit_need_certificate (GTlsConnection *conn) -{ - GTlsCertificate *cert = NULL; - - g_signal_emit (conn, signals[NEED_CERTIFICATE], 0, - &cert); - return cert; -} - /** * g_tls_connection_emit_accept_certificate: * @conn: a #GTlsConnection @@ -705,23 +724,3 @@ g_tls_connection_emit_accept_certificate (GTlsConnection *conn, peer_cert, errors, &accept); return accept; } - -/** - * g_tls_connection_set_peer_certificate: - * @conn: a #GTlsConnection - * @certificate: the peer certificate - * - * Used by #GTlsConnection implementations to set the connection's - * peer certificate. - * - * Since: 2.28 - */ -void -g_tls_connection_set_peer_certificate (GTlsConnection *conn, - GTlsCertificate *certificate) -{ - if (conn->priv->peer_certificate) - g_object_unref (conn->priv->peer_certificate); - conn->priv->peer_certificate = certificate ? g_object_ref (certificate) : NULL; - g_object_notify (G_OBJECT (conn), "peer-certificate"); -} diff --git a/gio/gtlsconnection.h b/gio/gtlsconnection.h index 86f1f68f5..7786c4302 100644 --- a/gio/gtlsconnection.h +++ b/gio/gtlsconnection.h @@ -58,8 +58,6 @@ struct _GTlsConnectionClass GIOStreamClass parent_class; /* signals */ - GTlsCertificate * ( *need_certificate) (GTlsConnection *connection); - gboolean ( *accept_certificate) (GTlsConnection *connection, GTlsCertificate *peer_cert, GTlsCertificateFlags errors); @@ -83,34 +81,39 @@ struct _GTlsConnectionClass gpointer padding[8]; }; -GType g_tls_connection_get_type (void) G_GNUC_CONST; +GType g_tls_connection_get_type (void) G_GNUC_CONST; -void g_tls_connection_set_certificate (GTlsConnection *conn, - GTlsCertificate *certificate); -GTlsCertificate *g_tls_connection_get_certificate (GTlsConnection *conn); +void g_tls_connection_set_use_system_certdb (GTlsConnection *conn, + gboolean use_system_certdb); +gboolean g_tls_connection_get_use_system_certdb (GTlsConnection *conn); -GTlsCertificate *g_tls_connection_get_peer_certificate (GTlsConnection *conn); +void g_tls_connection_set_certificate (GTlsConnection *conn, + GTlsCertificate *certificate); +GTlsCertificate *g_tls_connection_get_certificate (GTlsConnection *conn); -void g_tls_connection_set_require_close_notify (GTlsConnection *conn, - gboolean require_close_notify); -gboolean g_tls_connection_get_require_close_notify (GTlsConnection *conn); +GTlsCertificate *g_tls_connection_get_peer_certificate (GTlsConnection *conn); +GTlsCertificateFlags g_tls_connection_get_peer_certificate_errors (GTlsConnection *conn); -void g_tls_connection_set_rehandshake_mode (GTlsConnection *conn, - GTlsRehandshakeMode mode); -GTlsRehandshakeMode g_tls_connection_get_rehandshake_mode (GTlsConnection *conn); +void g_tls_connection_set_require_close_notify (GTlsConnection *conn, + gboolean require_close_notify); +gboolean g_tls_connection_get_require_close_notify (GTlsConnection *conn); -gboolean g_tls_connection_handshake (GTlsConnection *conn, - GCancellable *cancellable, - GError **error); +void g_tls_connection_set_rehandshake_mode (GTlsConnection *conn, + GTlsRehandshakeMode mode); +GTlsRehandshakeMode g_tls_connection_get_rehandshake_mode (GTlsConnection *conn); -void g_tls_connection_handshake_async (GTlsConnection *conn, - int io_priority, - GCancellable *cancellable, - GAsyncReadyCallback callback, - gpointer user_data); -gboolean g_tls_connection_handshake_finish (GTlsConnection *conn, - GAsyncResult *result, - GError **error); +gboolean g_tls_connection_handshake (GTlsConnection *conn, + GCancellable *cancellable, + GError **error); + +void g_tls_connection_handshake_async (GTlsConnection *conn, + int io_priority, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); +gboolean g_tls_connection_handshake_finish (GTlsConnection *conn, + GAsyncResult *result, + GError **error); /** * G_TLS_ERROR: @@ -124,13 +127,9 @@ GQuark g_tls_error_quark (void); /*< protected >*/ -GTlsCertificate *g_tls_connection_emit_need_certificate (GTlsConnection *conn); -gboolean g_tls_connection_emit_accept_certificate (GTlsConnection *conn, - GTlsCertificate *peer_cert, - GTlsCertificateFlags errors); - -void g_tls_connection_set_peer_certificate (GTlsConnection *conn, - GTlsCertificate *certificate); +gboolean g_tls_connection_emit_accept_certificate (GTlsConnection *conn, + GTlsCertificate *peer_cert, + GTlsCertificateFlags errors); G_END_DECLS diff --git a/gio/gtlsserverconnection.c b/gio/gtlsserverconnection.c index 791a0dd7b..496565671 100644 --- a/gio/gtlsserverconnection.c +++ b/gio/gtlsserverconnection.c @@ -78,7 +78,7 @@ g_tls_server_connection_default_init (GTlsServerConnectionInterface *iface) * * Since: 2.28 */ -GTlsServerConnection * +GIOStream * g_tls_server_connection_new (GIOStream *base_io_stream, GTlsCertificate *certificate, GError **error) @@ -92,5 +92,5 @@ g_tls_server_connection_new (GIOStream *base_io_stream, "base-io-stream", base_io_stream, "certificate", certificate, NULL); - return G_TLS_SERVER_CONNECTION (conn); + return G_IO_STREAM (conn); } diff --git a/gio/gtlsserverconnection.h b/gio/gtlsserverconnection.h index 976996eff..c909d5503 100644 --- a/gio/gtlsserverconnection.h +++ b/gio/gtlsserverconnection.h @@ -52,7 +52,7 @@ struct _GTlsServerConnectionInterface GType g_tls_server_connection_get_type (void) G_GNUC_CONST; -GTlsServerConnection *g_tls_server_connection_new (GIOStream *base_io_stream, +GIOStream * g_tls_server_connection_new (GIOStream *base_io_stream, GTlsCertificate *certificate, GError **error); diff --git a/gio/gunixconnection.c b/gio/gunixconnection.c index 82510f5c9..7106fb7ab 100644 --- a/gio/gunixconnection.c +++ b/gio/gunixconnection.c @@ -304,7 +304,7 @@ gboolean g_unix_connection_create_pair (GUnixCo /** * g_unix_connection_send_credentials: * @connection: A #GUnixConnection. - * @cancellable: A #GCancellable or %NULL. + * @cancellable: (allow-none): A #GCancellable or %NULL. * @error: Return location for error or %NULL. * * Passes the credentials of the current user the receiving side @@ -372,7 +372,7 @@ g_unix_connection_send_credentials (GUnixConnection *connection, /** * g_unix_connection_receive_credentials: * @connection: A #GUnixConnection. - * @cancellable: A #GCancellable or %NULL. + * @cancellable: (allow-none): A #GCancellable or %NULL. * @error: Return location for error or %NULL. * * Receives credentials from the sending end of the connection. The diff --git a/gio/gunixfdlist.c b/gio/gunixfdlist.c index e9425db96..68af47e68 100644 --- a/gio/gunixfdlist.c +++ b/gio/gunixfdlist.c @@ -161,7 +161,7 @@ g_unix_fd_list_new (void) /** * g_unix_fd_list_new_from_array: - * @fds: the initial list of file descriptors + * @fds: (array length=n_fds): the initial list of file descriptors * @n_fds: the length of #fds, or -1 * * Creates a new #GUnixFDList containing the file descriptors given in @@ -201,7 +201,8 @@ g_unix_fd_list_new_from_array (const gint *fds, /** * g_unix_fd_list_steal_fds: * @list: a #GUnixFDList - * @length: pointer to the length of the returned array, or %NULL + * @length: (out) (allow-none): pointer to the length of the returned + * array, or %NULL * * Returns the array of file descriptors that is contained in this * object. @@ -222,7 +223,8 @@ g_unix_fd_list_new_from_array (const gint *fds, * This function never returns %NULL. In case there are no file * descriptors contained in @list, an empty array is returned. * - * Returns: an array of file descriptors + * Returns: (array length=length) (transfer full): an array of file + * descriptors * * Since: 2.24 */ @@ -255,7 +257,8 @@ g_unix_fd_list_steal_fds (GUnixFDList *list, /** * g_unix_fd_list_peek_fds: * @list: a #GUnixFDList - * @length: pointer to the length of the returned array, or %NULL + * @length: (out) (allow-none): pointer to the length of the returned + * array, or %NULL * * Returns the array of file descriptors that is contained in this * object. @@ -271,7 +274,8 @@ g_unix_fd_list_steal_fds (GUnixFDList *list, * This function never returns %NULL. In case there are no file * descriptors contained in @list, an empty array is returned. * - * Returns: an array of file descriptors + * Returns: (array length=length) (transfer none): an array of file + * descriptors * * Since: 2.24 */ diff --git a/gio/gunixfdmessage.c b/gio/gunixfdmessage.c index 7dc0f8bbb..aaf749beb 100644 --- a/gio/gunixfdmessage.c +++ b/gio/gunixfdmessage.c @@ -257,7 +257,8 @@ g_unix_fd_message_new_with_fd_list (GUnixFDList *fd_list) /** * g_unix_fd_message_steal_fds: * @message: a #GUnixFDMessage - * @length: pointer to the length of the returned array, or %NULL + * @length: (out) (allow-none): pointer to the length of the returned + * array, or %NULL * * Returns the array of file descriptors that is contained in this * object. @@ -277,7 +278,8 @@ g_unix_fd_message_new_with_fd_list (GUnixFDList *fd_list) * This function never returns %NULL. In case there are no file * descriptors contained in @message, an empty array is returned. * - * Returns: an array of file descriptors + * Returns: (array length=length) (transfer full): an array of file + * descriptors * * Since: 2.22 **/ diff --git a/gio/gunixmounts.c b/gio/gunixmounts.c index f110351ee..054bfe7cf 100644 --- a/gio/gunixmounts.c +++ b/gio/gunixmounts.c @@ -1075,15 +1075,16 @@ get_mount_points_timestamp (void) } /** - * g_unix_mounts_get: - * @time_read: (allow-none): guint64 to contain a timestamp, or %NULL + * g_unix_mounts_get: (skip) + * @time_read: (out) (allow-none): guint64 to contain a timestamp, or %NULL * * Gets a #GList of #GUnixMountEntry containing the unix mounts. * If @time_read is set, it will be filled with the mount * timestamp, allowing for checking if the mounts have changed * with g_unix_mounts_changed_since(). * - * Returns: (element-type utf8) (transfer full): a #GList of the UNIX mounts. + * Returns: (element-type GUnixMountEntry) (transfer full): + * a #GList of the UNIX mounts. **/ GList * g_unix_mounts_get (guint64 *time_read) @@ -1095,15 +1096,15 @@ g_unix_mounts_get (guint64 *time_read) } /** - * g_unix_mount_at: + * g_unix_mount_at: (skip) * @mount_path: path for a possible unix mount. - * @time_read: guint64 to contain a timestamp. + * @time_read: (out) (allow-none): guint64 to contain a timestamp. * * Gets a #GUnixMountEntry for a given mount path. If @time_read * is set, it will be filled with a unix timestamp for checking * if the mounts have changed since with g_unix_mounts_changed_since(). * - * Returns: (transfer full): a #GUnixMount. + * Returns: (transfer full): a #GUnixMountEntry. **/ GUnixMountEntry * g_unix_mount_at (const char *mount_path, @@ -1130,15 +1131,16 @@ g_unix_mount_at (const char *mount_path, } /** - * g_unix_mount_points_get: - * @time_read: (allow-none): guint64 to contain a timestamp. + * g_unix_mount_points_get: (skip) + * @time_read: (out) (allow-none): guint64 to contain a timestamp. * * Gets a #GList of #GUnixMountPoint containing the unix mount points. * If @time_read is set, it will be filled with the mount timestamp, * allowing for checking if the mounts have changed with * g_unix_mounts_points_changed_since(). * - * Returns: (element-type utf8) (transfer full): a #GList of the UNIX mountpoints. + * Returns: (element-type GUnixMountPoint) (transfer full): + * a #GList of the UNIX mountpoints. **/ GList * g_unix_mount_points_get (guint64 *time_read) diff --git a/gio/gunixsocketaddress.c b/gio/gunixsocketaddress.c index a1e06b143..440ab253d 100644 --- a/gio/gunixsocketaddress.c +++ b/gio/gunixsocketaddress.c @@ -349,7 +349,7 @@ g_unix_socket_address_new (const gchar *path) /** * g_unix_socket_address_new_abstract: - * @path: the abstract name + * @path: (array length=path_len) (element-type gchar): the abstract name * @path_len: the length of @path, or -1 * * Creates a new %G_UNIX_SOCKET_ADDRESS_ABSTRACT_PADDED @@ -369,7 +369,7 @@ g_unix_socket_address_new_abstract (const gchar *path, /** * g_unix_socket_address_new_with_type: - * @path: the name + * @path: (array length=path_len) (element-type gchar): the name * @path_len: the length of @path, or -1 * @type: a #GUnixSocketAddressType * diff --git a/gio/gvolume.c b/gio/gvolume.c index df1b78d31..8e96288af 100644 --- a/gio/gvolume.c +++ b/gio/gvolume.c @@ -301,8 +301,8 @@ g_volume_should_automount (GVolume *volume) * @volume: a #GVolume. * @flags: flags affecting the operation * @mount_operation: (allow-none): a #GMountOperation or %NULL to avoid user interaction. - * @cancellable: optional #GCancellable object, %NULL to ignore. - * @callback: a #GAsyncReadyCallback, or %NULL. + * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore. + * @callback: (allow-none): a #GAsyncReadyCallback, or %NULL. * @user_data: user data that gets passed to @callback * * Mounts a volume. This is an asynchronous operation, and is @@ -378,8 +378,8 @@ g_volume_mount_finish (GVolume *volume, * g_volume_eject: * @volume: a #GVolume. * @flags: flags affecting the unmount if required for eject - * @cancellable: optional #GCancellable object, %NULL to ignore. - * @callback: a #GAsyncReadyCallback, or %NULL. + * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore. + * @callback: (allow-none): a #GAsyncReadyCallback, or %NULL. * @user_data: user data that gets passed to @callback * * Ejects a volume. This is an asynchronous operation, and is @@ -451,8 +451,9 @@ g_volume_eject_finish (GVolume *volume, * g_volume_eject_with_operation: * @volume: a #GVolume. * @flags: flags affecting the unmount if required for eject - * @mount_operation: a #GMountOperation or %NULL to avoid user interaction. - * @cancellable: optional #GCancellable object, %NULL to ignore. + * @mount_operation: (allow-none): a #GMountOperation or %NULL to + * avoid user interaction. + * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore. * @callback: a #GAsyncReadyCallback, or %NULL. * @user_data: user data passed to @callback. * diff --git a/gio/tests/.gitignore b/gio/tests/.gitignore index 0663fefcd..7e201bbb7 100644 --- a/gio/tests/.gitignore +++ b/gio/tests/.gitignore @@ -55,6 +55,7 @@ gsettings gsettings.store httpd icons +io-stream live-g-file memory-input-stream memory-output-stream diff --git a/gio/tests/Makefile.am b/gio/tests/Makefile.am index def7392a8..5f49e6cec 100644 --- a/gio/tests/Makefile.am +++ b/gio/tests/Makefile.am @@ -18,6 +18,7 @@ progs_ldadd = \ $(top_builddir)/gio/libgio-2.0.la TEST_PROGS += \ + io-stream \ actions \ memory-input-stream \ memory-output-stream \ @@ -102,6 +103,9 @@ if OS_WIN32 TEST_PROGS += win32-streams endif +io_stream_SOURCES = io-stream.c +io_stream_LDADD = $(progs_ldadd) + actions_LDADD = $(progs_ldadd) memory_input_stream_SOURCES = memory-input-stream.c diff --git a/gio/tests/desktop-app-info.c b/gio/tests/desktop-app-info.c index 9d9e181de..6c6e3135c 100644 --- a/gio/tests/desktop-app-info.c +++ b/gio/tests/desktop-app-info.c @@ -82,7 +82,7 @@ test_delete (void) if (g_file_test ("/usr/share/applications/gedit.desktop", G_FILE_TEST_EXISTS)) { - info = (GAppInfo*)g_desktop_app_info_new ("gedit.desktop"); + info = (GAppInfo*)g_desktop_app_info_new_from_filename ("/usr/share/applications/gedit.desktop"); g_assert (info); res = g_app_info_can_delete (info); @@ -205,9 +205,6 @@ test_fallback (void) app = g_list_nth_data (apps, 0); g_assert (g_app_info_equal (info1, app)); - app = g_list_nth_data (apps, 1); - g_assert (g_app_info_equal (info2, app)); - /* check that Test1 is the first recommended app */ recomm = g_app_info_get_recommended_for_type ("text/x-python"); g_assert (recomm != NULL); @@ -245,6 +242,56 @@ test_fallback (void) g_object_unref (info2); } +static void +test_last_used (void) +{ + GList *applications; + GAppInfo *info1, *info2, *default_app; + GError *error = NULL; + + info1 = create_app_info ("Test1"); + info2 = create_app_info ("Test2"); + + g_app_info_set_as_default_for_type (info1, "application/x-test", &error); + g_assert (error == NULL); + + g_app_info_add_supports_type (info2, "application/x-test", &error); + g_assert (error == NULL); + + applications = g_app_info_get_recommended_for_type ("application/x-test"); + g_assert (g_list_length (applications) == 2); + + /* the first should be the default app now */ + g_assert (g_app_info_equal (g_list_nth_data (applications, 0), info1)); + g_assert (g_app_info_equal (g_list_nth_data (applications, 1), info2)); + + g_list_free_full (applications, g_object_unref); + + g_app_info_set_as_last_used_for_type (info2, "application/x-test", &error); + g_assert (error == NULL); + + applications = g_app_info_get_recommended_for_type ("application/x-test"); + g_assert (g_list_length (applications) == 2); + + default_app = g_app_info_get_default_for_type ("application/x-test", FALSE); + g_assert (g_app_info_equal (default_app, info1)); + + /* the first should be the other app now */ + g_assert (g_app_info_equal (g_list_nth_data (applications, 0), info2)); + g_assert (g_app_info_equal (g_list_nth_data (applications, 1), info1)); + + g_list_free_full (applications, g_object_unref); + + g_app_info_reset_type_associations ("application/x-test"); + + g_app_info_delete (info1); + g_app_info_delete (info2); + + g_object_unref (info1); + g_object_unref (info2); + g_object_unref (default_app); +} + static void cleanup_dir_recurse (GFile *parent, GFile *root) { @@ -322,6 +369,7 @@ main (int argc, g_test_add_func ("/desktop-app-info/delete", test_delete); g_test_add_func ("/desktop-app-info/default", test_default); g_test_add_func ("/desktop-app-info/fallback", test_fallback); + g_test_add_func ("/desktop-app-info/lastused", test_last_used); result = g_test_run (); diff --git a/gio/tests/gdbus-connection.c b/gio/tests/gdbus-connection.c index 866e27cec..5c2939e44 100644 --- a/gio/tests/gdbus-connection.c +++ b/gio/tests/gdbus-connection.c @@ -878,6 +878,18 @@ test_connection_filter (void) while (data.num_handled == 1) g_thread_yield (); + m2 = g_dbus_message_copy (m, &error); + g_assert_no_error (error); + g_dbus_message_set_serial (m2, data.serial); + /* lock the message to test PRESERVE_SERIAL flag. */ + g_dbus_message_lock (m2); + g_dbus_connection_send_message (c, m2, G_DBUS_SEND_MESSAGE_FLAGS_PRESERVE_SERIAL, &data.serial, &error); + g_object_unref (m2); + g_assert_no_error (error); + + while (data.num_handled == 2) + g_thread_yield (); + m2 = g_dbus_message_copy (m, &error); g_assert_no_error (error); r = g_dbus_connection_send_message_with_reply_sync (c, @@ -891,7 +903,7 @@ test_connection_filter (void) g_assert_no_error (error); g_assert (r != NULL); g_object_unref (r); - g_assert_cmpint (data.num_handled, ==, 3); + g_assert_cmpint (data.num_handled, ==, 4); g_dbus_connection_remove_filter (c, filter_id); @@ -908,8 +920,8 @@ test_connection_filter (void) g_assert_no_error (error); g_assert (r != NULL); g_object_unref (r); - g_assert_cmpint (data.num_handled, ==, 3); - g_assert_cmpint (data.num_outgoing, ==, 3); + g_assert_cmpint (data.num_handled, ==, 4); + g_assert_cmpint (data.num_outgoing, ==, 4); /* this is safe; testserver will exit once the bus goes away */ g_assert (g_spawn_command_line_async (SRCDIR "/gdbus-testserver.py", NULL)); diff --git a/gio/tests/io-stream.c b/gio/tests/io-stream.c new file mode 100644 index 000000000..dbac08bfd --- /dev/null +++ b/gio/tests/io-stream.c @@ -0,0 +1,185 @@ +/* GLib testing framework examples and tests + * Copyright (C) 2010 Collabora Ltd. + * Authors: Xavier Claessens + * + * This work is provided "as is"; redistribution and modification + * in whole or in part, in any medium, physical or electronic is + * permitted without restriction. + * + * This work 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. + * + * In no event shall the authors or contributors be liable for any + * direct, indirect, incidental, special, exemplary, or consequential + * damages (including, but not limited to, procurement of substitute + * goods or services; loss of use, data, or profits; or business + * interruption) however caused and on any theory of liability, whether + * in contract, strict liability, or tort (including negligence or + * otherwise) arising in any way out of the use of this software, even + * if advised of the possibility of such damage. + */ + +#include +#include +#include +#include + +typedef struct +{ + GIOStream parent; + GInputStream *input_stream; + GOutputStream *output_stream; +} GTestIOStream; + +typedef struct +{ + GIOStreamClass parent_class; +} GTestIOStreamClass; + +G_DEFINE_TYPE (GTestIOStream, g_test_io_stream, G_TYPE_IO_STREAM); + + +static GInputStream * +get_input_stream (GIOStream *io_stream) +{ + GTestIOStream *self = (GTestIOStream *) io_stream; + + return self->input_stream; +} + +static GOutputStream * +get_output_stream (GIOStream *io_stream) +{ + GTestIOStream *self = (GTestIOStream *) io_stream; + + return self->output_stream; +} + +static void +finalize (GObject *object) +{ + GTestIOStream *self = (GTestIOStream *) object; + + if (self->input_stream != NULL) + g_object_unref (self->input_stream); + + if (self->output_stream != NULL) + g_object_unref (self->output_stream); + + G_OBJECT_CLASS (g_test_io_stream_parent_class)->finalize (object); +} + +static void +g_test_io_stream_class_init (GTestIOStreamClass *klass) +{ + GObjectClass *object_class = G_OBJECT_CLASS (klass); + GIOStreamClass *io_class = G_IO_STREAM_CLASS (klass); + + object_class->finalize = finalize; + + io_class->get_input_stream = get_input_stream; + io_class->get_output_stream = get_output_stream; +} + +static void +g_test_io_stream_init (GTestIOStream *self) +{ +} + +static GIOStream * +g_test_io_stream_new (GInputStream *input, GOutputStream *output) +{ + GTestIOStream *self; + + self = g_object_new (g_test_io_stream_get_type (), NULL); + self->input_stream = g_object_ref (input); + self->output_stream = g_object_ref (output); + + return G_IO_STREAM (self); +} + +typedef struct +{ + GMainLoop *main_loop; + const gchar *data1; + const gchar *data2; + GIOStream *iostream1; + GIOStream *iostream2; +} TestCopyChunksData; + +static void +test_copy_chunks_splice_cb (GObject *source_object, + GAsyncResult *res, + gpointer user_data) +{ + TestCopyChunksData *data = user_data; + GMemoryOutputStream *ostream; + gchar *received_data; + GError *error = NULL; + + g_io_stream_splice_finish (res, &error); + g_assert_no_error (error); + + ostream = G_MEMORY_OUTPUT_STREAM (((GTestIOStream *) data->iostream1)->output_stream); + received_data = g_memory_output_stream_get_data (ostream); + g_assert_cmpstr (received_data, ==, data->data2); + + ostream = G_MEMORY_OUTPUT_STREAM (((GTestIOStream *) data->iostream2)->output_stream); + received_data = g_memory_output_stream_get_data (ostream); + g_assert_cmpstr (received_data, ==, data->data1); + + g_assert (g_io_stream_is_closed (data->iostream1)); + g_assert (g_io_stream_is_closed (data->iostream2)); + + g_main_loop_quit (data->main_loop); +} + +static void +test_copy_chunks (void) +{ + TestCopyChunksData data; + GInputStream *istream; + GOutputStream *ostream; + + data.main_loop = g_main_loop_new (NULL, FALSE); + data.data1 = "abcdefghijklmnopqrstuvwxyz"; + data.data2 = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; + + istream = g_memory_input_stream_new_from_data (data.data1, -1, NULL); + ostream = g_memory_output_stream_new (NULL, 0, g_realloc, g_free); + data.iostream1 = g_test_io_stream_new (istream, ostream); + g_object_unref (istream); + g_object_unref (ostream); + + istream = g_memory_input_stream_new_from_data (data.data2, -1, NULL); + ostream = g_memory_output_stream_new (NULL, 0, g_realloc, g_free); + data.iostream2 = g_test_io_stream_new (istream, ostream); + g_object_unref (istream); + g_object_unref (ostream); + + g_io_stream_splice_async (data.iostream1, data.iostream2, + G_IO_STREAM_SPLICE_CLOSE_STREAM1 | G_IO_STREAM_SPLICE_CLOSE_STREAM2 | + G_IO_STREAM_SPLICE_WAIT_FOR_BOTH, G_PRIORITY_DEFAULT, + NULL, test_copy_chunks_splice_cb, &data); + + /* We do not hold a ref in data struct, this is to make sure the operation + * keeps the iostream objects alive until it finishes */ + g_object_unref (data.iostream1); + g_object_unref (data.iostream2); + + g_main_loop_run (data.main_loop); + g_main_loop_unref (data.main_loop); +} + +int +main (int argc, + char *argv[]) +{ + g_type_init (); + g_test_init (&argc, &argv, NULL); + + g_test_add_func ("/io-stream/copy-chunks", test_copy_chunks); + + return g_test_run(); +} diff --git a/gio/tests/resolver.c b/gio/tests/resolver.c index 64bc67e22..0b2a3fdf6 100644 --- a/gio/tests/resolver.c +++ b/gio/tests/resolver.c @@ -41,11 +41,12 @@ static void G_GNUC_NORETURN usage (void) { fprintf (stderr, "Usage: resolver [-t] [-s] [hostname | IP | service/protocol/domain ] ...\n"); - fprintf (stderr, " resolver [-t] [-s] -c [hostname | IP | service/protocol/domain ]\n"); + fprintf (stderr, " resolver [-t] [-s] -c NUMBER [hostname | IP | service/protocol/domain ]\n"); fprintf (stderr, " Use -t to enable threading.\n"); fprintf (stderr, " Use -s to do synchronous lookups.\n"); fprintf (stderr, " Both together will result in simultaneous lookups in multiple threads\n"); - fprintf (stderr, " Use -c (and only a single resolvable argument) to test GSocketConnectable.\n"); + fprintf (stderr, " Use -c NUMBER(and only a single resolvable argument) to test GSocketConnectable.\n"); + fprintf (stderr, " The given NUMBER determines how often the connectable will be enumerated.\n"); exit (1); } @@ -360,7 +361,7 @@ do_async_connectable (GSocketAddressEnumerator *enumerator) } static void -do_connectable (const char *arg, gboolean synchronous) +do_connectable (const char *arg, gboolean synchronous, guint count) { char **parts; GSocketConnectable *connectable; @@ -400,13 +401,17 @@ do_connectable (const char *arg, gboolean synchronous) connectable = g_network_address_new (arg, port); } - enumerator = g_socket_connectable_enumerate (connectable); - g_object_unref (connectable); + while (count--) + { + enumerator = g_socket_connectable_enumerate (connectable); - if (synchronous) - do_sync_connectable (enumerator); - else - do_async_connectable (enumerator); + if (synchronous) + do_sync_connectable (enumerator); + else + do_async_connectable (enumerator); + } + + g_object_unref (connectable); } #ifdef G_OS_UNIX @@ -434,7 +439,7 @@ int main (int argc, char **argv) { gboolean threaded = FALSE, synchronous = FALSE; - gboolean use_connectable = FALSE; + guint connectable_count = 0; #ifdef G_OS_UNIX GIOChannel *chan; guint watch; @@ -453,7 +458,11 @@ main (int argc, char **argv) else if (!strcmp (argv[1], "-s")) synchronous = TRUE; else if (!strcmp (argv[1], "-c")) - use_connectable = TRUE; + { + connectable_count = atoi (argv[2]); + argv++; + argc--; + } else usage (); @@ -462,7 +471,7 @@ main (int argc, char **argv) } g_type_init (); - if (argc < 2 || (argc > 2 && use_connectable)) + if (argc < 2 || (argc > 2 && connectable_count)) usage (); resolver = g_resolver_get_default (); @@ -488,8 +497,11 @@ main (int argc, char **argv) nlookups = argc - 1; loop = g_main_loop_new (NULL, TRUE); - if (use_connectable) - do_connectable (argv[1], synchronous); + if (connectable_count) + { + nlookups = connectable_count; + do_connectable (argv[1], synchronous, connectable_count); + } else { if (threaded && synchronous) diff --git a/gio/tests/socket-client.c b/gio/tests/socket-client.c index 61997da0f..6068034af 100644 --- a/gio/tests/socket-client.c +++ b/gio/tests/socket-client.c @@ -203,7 +203,7 @@ main (int argc, if (tls) { - GTlsClientConnection *tls_conn; + GIOStream *tls_conn; tls_conn = g_tls_client_connection_new (connection, connectable, &error); if (!tls_conn) diff --git a/gio/tests/socket-server.c b/gio/tests/socket-server.c index f151681f9..a44b158c0 100644 --- a/gio/tests/socket-server.c +++ b/gio/tests/socket-server.c @@ -211,7 +211,7 @@ main (int argc, if (tlscert) { - GTlsServerConnection *tls_conn; + GIOStream *tls_conn; tls_conn = g_tls_server_connection_new (connection, tlscert, &error); if (!tls_conn) @@ -230,7 +230,7 @@ main (int argc, } g_object_unref (connection); - connection = G_IO_STREAM (tls_conn); + connection = tls_conn; } if (connection) diff --git a/glib/gfileutils.c b/glib/gfileutils.c index 185a756dc..a87f0e97a 100644 --- a/glib/gfileutils.c +++ b/glib/gfileutils.c @@ -53,6 +53,10 @@ #include "gstdio.h" #include "glibintl.h" +#ifdef __linux__ /* for btrfs check */ +#include +#include +#endif /** * g_mkdir_with_parents: @@ -963,6 +967,20 @@ write_to_temp_file (const gchar *contents, goto out; } + +#ifdef BTRFS_SUPER_MAGIC + { + struct statfs buf; + + /* On Linux, on btrfs, skip the fsync since rename-over-existing is + * guaranteed to be atomic and this is the only case in which we + * would fsync() anyway. + */ + + if (fstatfs (fd, &buf) == 0 && buf.f_type == BTRFS_SUPER_MAGIC) + goto no_fsync; + } +#endif #ifdef HAVE_FSYNC { @@ -994,6 +1012,7 @@ write_to_temp_file (const gchar *contents, } } #endif + no_fsync: errno = 0; if (fclose (file) == EOF) diff --git a/glib/ghostutils.c b/glib/ghostutils.c index c0361958f..99afe9a7e 100644 --- a/glib/ghostutils.c +++ b/glib/ghostutils.c @@ -303,7 +303,8 @@ idna_is_prohibited (gunichar ch) /* RFC 3491 IDN cleanup algorithm. */ static gchar * nameprep (const gchar *hostname, - gint len) + gint len, + gboolean *is_unicode) { gchar *name, *tmp = NULL, *p; @@ -336,12 +337,15 @@ nameprep (const gchar *hostname, /* If there are no UTF8 characters, we're done. */ if (!contains_non_ascii (name, len)) { + *is_unicode = FALSE; if (name == (gchar *)hostname) return len == -1 ? g_strdup (hostname) : g_strndup (hostname, len); else return name; } + *is_unicode = TRUE; + /* Normalize */ name = g_utf8_normalize (name, len, G_NORMALIZE_NFKC); g_free (tmp); @@ -383,6 +387,26 @@ nameprep (const gchar *hostname, return name; } +/* RFC 3490, section 3.1 says '.', 0x3002, 0xFF0E, and 0xFF61 count as + * label-separating dots. @str must be '\0'-terminated. + */ +#define idna_is_dot(str) ( \ + ((guchar)(str)[0] == '.') || \ + ((guchar)(str)[0] == 0xE3 && (guchar)(str)[1] == 0x80 && (guchar)(str)[2] == 0x82) || \ + ((guchar)(str)[0] == 0xEF && (guchar)(str)[1] == 0xBC && (guchar)(str)[2] == 0x8E) || \ + ((guchar)(str)[0] == 0xEF && (guchar)(str)[1] == 0xBD && (guchar)(str)[2] == 0xA1) ) + +static const gchar * +idna_end_of_label (const gchar *str) +{ + for (; *str; str = g_utf8_next_char (str)) + { + if (idna_is_dot (str)) + return str; + } + return str; +} + /** * g_hostname_to_ascii: * @hostname: a valid UTF-8 or ASCII hostname @@ -404,16 +428,16 @@ g_hostname_to_ascii (const gchar *hostname) gssize llen, oldlen; gboolean unicode; - label = name = nameprep (hostname, -1); - if (!name) - return NULL; + label = name = nameprep (hostname, -1, &unicode); + if (!name || !unicode) + return name; out = g_string_new (NULL); do { unicode = FALSE; - for (p = label; *p && *p != '.'; p++) + for (p = label; *p && !idna_is_dot (p); p++) { if ((guchar)*p > 0x80) unicode = TRUE; @@ -437,7 +461,9 @@ g_hostname_to_ascii (const gchar *hostname) goto fail; label += llen; - if (*label && *++label) + if (*label) + label = g_utf8_next_char (label); + if (*label) g_string_append_c (out, '.'); } while (*label); @@ -585,7 +611,7 @@ g_hostname_to_unicode (const gchar *hostname) do { - llen = strcspn (hostname, "."); + llen = idna_end_of_label (hostname) - hostname; if (!g_ascii_strncasecmp (hostname, IDNA_ACE_PREFIX, IDNA_ACE_PREFIX_LEN)) { hostname += IDNA_ACE_PREFIX_LEN; @@ -598,7 +624,8 @@ g_hostname_to_unicode (const gchar *hostname) } else { - gchar *canonicalized = nameprep (hostname, llen); + gboolean unicode; + gchar *canonicalized = nameprep (hostname, llen, &unicode); if (!canonicalized) { @@ -610,7 +637,9 @@ g_hostname_to_unicode (const gchar *hostname) } hostname += llen; - if (*hostname && *++hostname) + if (*hostname) + hostname = g_utf8_next_char (hostname); + if (*hostname) g_string_append_c (out, '.'); } while (*hostname); @@ -643,8 +672,10 @@ g_hostname_is_ascii_encoded (const gchar *hostname) { if (!g_ascii_strncasecmp (hostname, IDNA_ACE_PREFIX, IDNA_ACE_PREFIX_LEN)) return TRUE; - hostname = strchr (hostname, '.'); - if (!hostname++) + hostname = idna_end_of_label (hostname); + if (*hostname) + hostname = g_utf8_next_char (hostname); + if (!*hostname) return FALSE; } } diff --git a/glib/giochannel.c b/glib/giochannel.c index e70e40a5e..8b74386a3 100644 --- a/glib/giochannel.c +++ b/glib/giochannel.c @@ -1987,39 +1987,38 @@ g_io_channel_read_to_end (GIOChannel *channel, * g_io_channel_read_chars: * @channel: a #GIOChannel * @buf: a buffer to read data into - * @count: the size of the buffer. Note that the buffer may - * not be complelely filled even if there is data - * in the buffer if the remaining data is not a - * complete character. - * @bytes_read: The number of bytes read. This may be zero even on - * success if count < 6 and the channel's encoding is non-%NULL. - * This indicates that the next UTF-8 character is too wide for - * the buffer. + * @count: the size of the buffer. Note that the buffer may not be + * complelely filled even if there is data in the buffer if the + * remaining data is not a complete character. + * @bytes_read: (allow-none): The number of bytes read. This may be + * zero even on success if count < 6 and the channel's encoding + * is non-%NULL. This indicates that the next UTF-8 character is + * too wide for the buffer. * @error: a location to return an error of type #GConvertError - * or #GIOChannelError. + * or #GIOChannelError. * * Replacement for g_io_channel_read() with the new API. * * Return value: the status of the operation. - **/ + */ GIOStatus g_io_channel_read_chars (GIOChannel *channel, - gchar *buf, - gsize count, - gsize *bytes_read, + gchar *buf, + gsize count, + gsize *bytes_read, GError **error) { GIOStatus status; gsize got_bytes; g_return_val_if_fail (channel != NULL, G_IO_STATUS_ERROR); - g_return_val_if_fail ((error == NULL) || (*error == NULL), - G_IO_STATUS_ERROR); + g_return_val_if_fail ((error == NULL) || (*error == NULL), G_IO_STATUS_ERROR); g_return_val_if_fail (channel->is_readable, G_IO_STATUS_ERROR); if (count == 0) { - *bytes_read = 0; + if (bytes_read) + *bytes_read = 0; return G_IO_STATUS_NORMAL; } g_return_val_if_fail (buf != NULL, G_IO_STATUS_ERROR); @@ -2027,13 +2026,13 @@ g_io_channel_read_chars (GIOChannel *channel, if (!channel->use_buffer) { gsize tmp_bytes; - + g_assert (!channel->read_buf || channel->read_buf->len == 0); status = channel->funcs->io_read (channel, buf, count, &tmp_bytes, error); - + if (bytes_read) - *bytes_read = tmp_bytes; + *bytes_read = tmp_bytes; return status; } diff --git a/glib/gkeyfile.c b/glib/gkeyfile.c index 10ca2a2af..1f2a85647 100644 --- a/glib/gkeyfile.c +++ b/glib/gkeyfile.c @@ -26,6 +26,7 @@ #include "config.h" #include "gkeyfile.h" +#include "gutils.h" #include #include @@ -1630,8 +1631,6 @@ g_key_file_set_locale_string (GKeyFile *key_file, g_free (value); } -extern GSList *_g_compute_locale_variants (const gchar *locale); - /** * g_key_file_get_locale_string: * @key_file: a #GKeyFile @@ -1677,16 +1676,7 @@ g_key_file_get_locale_string (GKeyFile *key_file, if (locale) { - GSList *l, *list; - - list = _g_compute_locale_variants (locale); - - languages = g_new (gchar *, g_slist_length (list) + 1); - for (l = list, i = 0; l; l = l->next, i++) - languages[i] = l->data; - languages[i] = NULL; - - g_slist_free (list); + languages = g_get_locale_variants (locale); free_languages = TRUE; } else diff --git a/glib/glib.symbols b/glib/glib.symbols index 9bb041919..4591ecdfd 100644 --- a/glib/glib.symbols +++ b/glib/glib.symbols @@ -1122,6 +1122,8 @@ g_sequence_remove_range g_sequence_move_range g_sequence_search g_sequence_search_iter +g_sequence_lookup +g_sequence_lookup_iter g_sequence_get g_sequence_set g_sequence_iter_is_begin @@ -1655,6 +1657,7 @@ g_setenv_utf8 g_get_home_dir_utf8 #endif g_get_language_names +g_get_locale_variants g_get_prgname #ifndef _WIN64 g_get_real_name PRIVATE diff --git a/glib/grand.c b/glib/grand.c index a70ce7b87..e86afa72a 100644 --- a/glib/grand.c +++ b/glib/grand.c @@ -68,8 +68,8 @@ * pseudo-random number generator (PRNG). It uses the Mersenne Twister * PRNG, which was originally developed by Makoto Matsumoto and Takuji * Nishimura. Further information can be found at - * - * www.math.keio.ac.jp/~matumoto/emt.html. + * + * http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/emt.html. * * If you just need a random number, you simply call the * g_random_* functions, which will create a diff --git a/glib/grand.h b/glib/grand.h index 07907dfc1..039799206 100644 --- a/glib/grand.h +++ b/glib/grand.h @@ -38,7 +38,7 @@ G_BEGIN_DECLS typedef struct _GRand GRand; /* GRand - a good and fast random number generator: Mersenne Twister - * see http://www.math.keio.ac.jp/~matumoto/emt.html for more info. + * see http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/emt.html for more info. * The range functions return a value in the intervall [begin, end). * int -> [0..2^32-1] * int_range -> [begin..end-1] diff --git a/glib/gsequence.c b/glib/gsequence.c index 8b28ce79a..40b3294d7 100644 --- a/glib/gsequence.c +++ b/glib/gsequence.c @@ -133,6 +133,11 @@ static GSequenceNode *node_get_next (GSequenceNode *node); static gint node_get_pos (GSequenceNode *node); static GSequenceNode *node_get_by_pos (GSequenceNode *node, gint pos); +static GSequenceNode *node_find (GSequenceNode *haystack, + GSequenceNode *needle, + GSequenceNode *end, + GSequenceIterCompareFunc cmp, + gpointer user_data); static GSequenceNode *node_find_closest (GSequenceNode *haystack, GSequenceNode *needle, GSequenceNode *end, @@ -756,6 +761,9 @@ g_sequence_sort_changed (GSequenceIter *iter, * Returns an iterator pointing to the position where @data would * be inserted according to @cmp_func and @cmp_data. * + * If you are simply searching for an existing element of the sequence, + * consider using g_sequence_lookup(). + * * Return value: an #GSequenceIter pointing to the position where @data * would have been inserted according to @cmp_func and @cmp_data. * @@ -779,6 +787,46 @@ g_sequence_search (GSequence *seq, return g_sequence_search_iter (seq, data, iter_compare, &info); } +/** + * g_sequence_lookup: + * @seq: a #GSequence + * @data: data to lookup + * @cmp_func: the #GCompareDataFunc used to compare items in the sequence. It + * is called with two items of the @seq and @user_data. It should + * return 0 if the items are equal, a negative value if the first + * item comes before the second, and a positive value if the second + * item comes before the first. + * @cmp_data: user data passed to @cmp_func. + * + * Returns an iterator pointing to the position of the first item found + * equal to @data according to @cmp_func and @cmp_data. If more than one item + * is equal, it is not guaranteed that it is the first which is returned. + * In that case, you can use g_sequence_iter_next() and g_sequence_iter_prev() + * to get others. + * + * Return value: an #GSequenceIter pointing to the position of the first item + * found equal to @data according to @cmp_func and @cmp_data. + * + * Since: 2.26 + **/ +GSequenceIter * +g_sequence_lookup (GSequence *seq, + gpointer data, + GCompareDataFunc cmp_func, + gpointer cmp_data) +{ + SortInfo info; + + g_return_val_if_fail (seq != NULL, NULL); + + info.cmp_func = cmp_func; + info.cmp_data = cmp_data; + info.end_node = seq->end_node; + check_seq_access (seq); + + return g_sequence_lookup_iter (seq, data, iter_compare, &info); +} + /** * g_sequence_sort_iter: * @seq: a #GSequence @@ -970,6 +1018,9 @@ g_sequence_insert_sorted_iter (GSequence *seq, * a #GSequenceIterCompareFunc instead of a #GCompareDataFunc as * the compare function. * + * If you are simply searching for an existing element of the sequence, + * consider using g_sequence_lookup_iter(). + * * Return value: a #GSequenceIter pointing to the position in @seq * where @data would have been inserted according to @iter_cmp and @cmp_data. * @@ -1006,6 +1057,57 @@ g_sequence_search_iter (GSequence *seq, return node; } +/** + * g_sequence_lookup_iter: + * @seq: a #GSequence + * @data: data to lookup + * @iter_cmp: the #GSequenceIterCompare function used to compare iterators + * in the sequence. It is called with two iterators pointing into @seq. + * It should return 0 if the iterators are equal, a negative value if the + * first iterator comes before the second, and a positive value if the + * second iterator comes before the first. + * @cmp_data: user data passed to @iter_cmp + * + * Like g_sequence_lookup(), but uses + * a #GSequenceIterCompareFunc instead of a #GCompareDataFunc as + * the compare function. + * + * Return value: an #GSequenceIter pointing to the position of the first item + * found equal to @data according to @cmp_func and @cmp_data. + * + * Since: 2.26 + **/ +GSequenceIter * +g_sequence_lookup_iter (GSequence *seq, + gpointer data, + GSequenceIterCompareFunc iter_cmp, + gpointer cmp_data) +{ + GSequenceNode *node; + GSequenceNode *dummy; + GSequence *tmp_seq; + + g_return_val_if_fail (seq != NULL, NULL); + + check_seq_access (seq); + + seq->access_prohibited = TRUE; + + tmp_seq = g_sequence_new (NULL); + tmp_seq->real_sequence = seq; + + dummy = g_sequence_append (tmp_seq, data); + + node = node_find (seq->end_node, dummy, + seq->end_node, iter_cmp, cmp_data); + + g_sequence_free (tmp_seq); + + seq->access_prohibited = FALSE; + + return node; +} + /** * g_sequence_iter_get_sequence: * @iter: a #GSequenceIter @@ -1548,6 +1650,40 @@ node_get_by_pos (GSequenceNode *node, return node; } +static GSequenceNode * +node_find (GSequenceNode *haystack, + GSequenceNode *needle, + GSequenceNode *end, + GSequenceIterCompareFunc iter_cmp, + gpointer cmp_data) +{ + gint c; + + haystack = find_root (haystack); + + do + { + /* iter_cmp can't be passed the end node, since the function may + * be user-supplied + */ + if (haystack == end) + c = 1; + else + c = iter_cmp (haystack, needle, cmp_data); + + if (c == 0) + break; + + if (c > 0) + haystack = haystack->left; + else + haystack = haystack->right; + } + while (haystack != NULL); + + return haystack; +} + static GSequenceNode * node_find_closest (GSequenceNode *haystack, GSequenceNode *needle, @@ -1572,7 +1708,7 @@ node_find_closest (GSequenceNode *haystack, else c = iter_cmp (haystack, needle, cmp_data); - /* In the following we don't break even if c == 0. Instaed we go on + /* In the following we don't break even if c == 0. Instead we go on * searching along the 'bigger' nodes, so that we find the last one * that is equal to the needle. */ diff --git a/glib/gsequence.h b/glib/gsequence.h index fa79066e0..6a21c3eeb 100644 --- a/glib/gsequence.h +++ b/glib/gsequence.h @@ -99,6 +99,14 @@ GSequenceIter *g_sequence_search_iter (GSequence *seq, gpointer data, GSequenceIterCompareFunc iter_cmp, gpointer cmp_data); +GSequenceIter *g_sequence_lookup (GSequence *seq, + gpointer data, + GCompareDataFunc cmp_func, + gpointer cmp_data); +GSequenceIter *g_sequence_lookup_iter (GSequence *seq, + gpointer data, + GSequenceIterCompareFunc iter_cmp, + gpointer cmp_data); /* Dereferencing */ diff --git a/glib/gtester-report b/glib/gtester-report index 3bce548bf..0fcdd9ac3 100755 --- a/glib/gtester-report +++ b/glib/gtester-report @@ -135,6 +135,9 @@ class ReportReader (TreeProcess): self.info['package'] = node_as_text (dn) dn = find_child (node, 'version') self.info['version'] = node_as_text (dn) + dn = find_child (node, 'revision') + if dn is not None: + self.info['revision'] = node_as_text (dn) def handle_testcase (self, node): self.last_binary.testcases += [ node ] result = attribute_as_text (node, 'result', 'status') @@ -239,6 +242,8 @@ class HTMLReportWriter(ReportWriter): self.lastchar = message[-1] def handle_info (self): self.oprint ('

Package: %(package)s, version: %(version)s

\n' % self.info) + if self.info['revision']: + self.oprint ('
Report generated from: %(revision)s
\n' % self.info) def handle_text (self, node): self.oprint (node.nodeValue) def handle_testcase (self, node, binary): diff --git a/glib/gutils.c b/glib/gutils.c index 73165ba14..5512fd480 100644 --- a/glib/gutils.c +++ b/glib/gutils.c @@ -68,6 +68,7 @@ #include "gtestutils.h" #include "gunicode.h" #include "gstrfuncs.h" +#include "garray.h" #include "glibintl.h" #ifdef G_PLATFORM_WIN32 @@ -3157,36 +3158,39 @@ explode_locale (const gchar *locale, * but it is big, ugly, and complicated, so I'm reluctant * to do so when this should handle 99% of the time... */ -GSList * -_g_compute_locale_variants (const gchar *locale) +static void +append_locale_variants (GPtrArray *array, + const gchar *locale) { - GSList *retval = NULL; - gchar *language = NULL; gchar *territory = NULL; gchar *codeset = NULL; gchar *modifier = NULL; guint mask; - guint i; + guint i, j; - g_return_val_if_fail (locale != NULL, NULL); + g_return_if_fail (locale != NULL); mask = explode_locale (locale, &language, &territory, &codeset, &modifier); /* Iterate through all possible combinations, from least attractive * to most attractive. */ - for (i = 0; i <= mask; i++) - if ((i & ~mask) == 0) - { - gchar *val = g_strconcat (language, - (i & COMPONENT_TERRITORY) ? territory : "", - (i & COMPONENT_CODESET) ? codeset : "", - (i & COMPONENT_MODIFIER) ? modifier : "", - NULL); - retval = g_slist_prepend (retval, val); - } + for (j = 0; j <= mask; ++j) + { + i = mask - j; + + if ((i & ~mask) == 0) + { + gchar *val = g_strconcat (language, + (i & COMPONENT_TERRITORY) ? territory : "", + (i & COMPONENT_CODESET) ? codeset : "", + (i & COMPONENT_MODIFIER) ? modifier : "", + NULL); + g_ptr_array_add (array, val); + } + } g_free (language); if (mask & COMPONENT_CODESET) @@ -3195,8 +3199,41 @@ _g_compute_locale_variants (const gchar *locale) g_free (territory); if (mask & COMPONENT_MODIFIER) g_free (modifier); +} - return retval; +/** + * g_get_locale_variants: + * @locale: a locale identifier + * + * Returns a list of derived variants of @locale, which can be used to + * e.g. construct locale-dependent filenames or search paths. The returned + * list is sorted from most desirable to least desirable. + * This function handles territory, charset and extra locale modifiers. + * + * For example, if @locale is "fr_BE", then the returned list + * is "fr_BE", "fr". + * + * If you need the list of variants for the current locale, + * use g_get_language_names(). + * + * Returns: (transfer full) (array zero-terminated="1") (element-type utf8): a newly + * allocated array of newly allocated strings with the locale variants. Free with + * g_strfreev(). + * + * Since: 2.28 + */ +gchar ** +g_get_locale_variants (const gchar *locale) +{ + GPtrArray *array; + + g_return_val_if_fail (locale != NULL, NULL); + + array = g_ptr_array_sized_new (8); + append_locale_variants (array, locale); + g_ptr_array_add (array, NULL); + + return (gchar **) g_ptr_array_free (array, FALSE); } /* The following is (partly) taken from the gettext package. @@ -3305,31 +3342,23 @@ g_get_language_names (void) if (!(cache->languages && strcmp (cache->languages, value) == 0)) { - gchar **languages; + GPtrArray *array; gchar **alist, **a; - GSList *list, *l; - gint i; g_free (cache->languages); g_strfreev (cache->language_names); cache->languages = g_strdup (value); + array = g_ptr_array_sized_new (8); + alist = g_strsplit (value, ":", 0); - list = NULL; for (a = alist; *a; a++) - { - gchar *b = unalias_lang (*a); - list = g_slist_concat (list, _g_compute_locale_variants (b)); - } + append_locale_variants (array, unalias_lang (*a)); g_strfreev (alist); - list = g_slist_append (list, g_strdup ("C")); + g_ptr_array_add (array, g_strdup ("C")); + g_ptr_array_add (array, NULL); - cache->language_names = languages = g_new (gchar *, g_slist_length (list) + 1); - for (l = list, i = 0; l; l = l->next, i++) - languages[i] = l->data; - languages[i] = NULL; - - g_slist_free (list); + cache->language_names = (gchar **) g_ptr_array_free (array, FALSE); } return (G_CONST_RETURN gchar * G_CONST_RETURN *) cache->language_names; diff --git a/glib/gutils.h b/glib/gutils.h index e4d82778a..6b94efde3 100644 --- a/glib/gutils.h +++ b/glib/gutils.h @@ -157,6 +157,8 @@ const gchar * g_get_user_runtime_dir (void); G_CONST_RETURN gchar* G_CONST_RETURN * g_get_language_names (void); +gchar **g_get_locale_variants (const gchar *locale); + /** * GUserDirectory: * @G_USER_DIRECTORY_DESKTOP: the user's Desktop directory diff --git a/glib/gvariant-parser.c b/glib/gvariant-parser.c index c38732d68..ca69dfb85 100644 --- a/glib/gvariant-parser.c +++ b/glib/gvariant-parser.c @@ -48,10 +48,26 @@ **/ /** * GVariantParseError: - * @G_VARIANT_PARSE_ERROR_FAILED: generic error + * @G_VARIANT_PARSE_ERROR_FAILED: generic error (unused) + * @G_VARIANT_PARSE_ERROR_BASIC_TYPE_EXPECTED: a non-basic #GVariantType was given where a basic type was expected + * @G_VARIANT_PARSE_ERROR_CANNOT_INFER_TYPE: cannot infer the #GVariantType + * @G_VARIANT_PARSE_ERROR_DEFINITE_TYPE_EXPECTED: an indefinite #GVariantType was given where a definite type was expected + * @G_VARIANT_PARSE_ERROR_INPUT_NOT_AT_END: extra data after parsing finished + * @G_VARIANT_PARSE_ERROR_INVALID_CHARACTER: invalid character in number or unicode escape + * @G_VARIANT_PARSE_ERROR_INVALID_FORMAT_STRING: not a valid #GVariant format string + * @G_VARIANT_PARSE_ERROR_INVALID_OBJECT_PATH: not a valid object path + * @G_VARIANT_PARSE_ERROR_INVALID_SIGNATURE: not a valid type signature + * @G_VARIANT_PARSE_ERROR_INVALID_TYPE_STRING: not a valid #GVariant type string + * @G_VARIANT_PARSE_ERROR_NO_COMMON_TYPE: could not find a common type for array entries + * @G_VARIANT_PARSE_ERROR_NUMBER_OUT_OF_RANGE: the numerical value is out of range of the given type + * @G_VARIANT_PARSE_ERROR_NUMBER_TOO_BIG: the numerical value is out of range for any type + * @G_VARIANT_PARSE_ERROR_TYPE_ERROR: cannot parse as variant of the specified type + * @G_VARIANT_PARSE_ERROR_UNEXPECTED_TOKEN: an unexpected token was encountered + * @G_VARIANT_PARSE_ERROR_UNKNOWN_KEYWORD: an unknown keyword was encountered + * @G_VARIANT_PARSE_ERROR_UNTERMINATED_STRING_CONSTANT: unterminated string constant + * @G_VARIANT_PARSE_ERROR_VALUE_EXPECTED: no value given * - * Error codes returned by parsing text-format GVariants. Currently the - * parser makes no distinction between different types of error. + * Error codes returned by parsing text-format GVariants. **/ GQuark g_variant_parser_get_error_quark (void) @@ -73,6 +89,7 @@ static void parser_set_error_va (GError **error, SourceRef *location, SourceRef *other, + gint code, const gchar *format, va_list ap) { @@ -91,7 +108,7 @@ parser_set_error_va (GError **error, g_string_append_c (msg, ':'); g_string_append_vprintf (msg, format, ap); - g_set_error_literal (error, G_VARIANT_PARSE_ERROR, 0, msg->str); + g_set_error_literal (error, G_VARIANT_PARSE_ERROR, code, msg->str); g_string_free (msg, TRUE); } @@ -99,13 +116,14 @@ static void parser_set_error (GError **error, SourceRef *location, SourceRef *other, + gint code, const gchar *format, ...) { va_list ap; va_start (ap, format); - parser_set_error_va (error, location, other, format, ap); + parser_set_error_va (error, location, other, code, format, ap); va_end (ap); } @@ -123,6 +141,7 @@ static void token_stream_set_error (TokenStream *stream, GError **error, gboolean this_token, + gint code, const gchar *format, ...) { @@ -137,7 +156,7 @@ token_stream_set_error (TokenStream *stream, ref.end = ref.start; va_start (ap, format); - parser_set_error_va (error, &ref, NULL, format, ap); + parser_set_error_va (error, &ref, NULL, code, format, ap); va_end (ap); } @@ -305,6 +324,7 @@ token_stream_require (TokenStream *stream, if (!token_stream_consume (stream, token)) { token_stream_set_error (stream, error, FALSE, + G_VARIANT_PARSE_ERROR_UNEXPECTED_TOKEN, "expected `%s'%s", token, purpose); return FALSE; } @@ -505,6 +525,7 @@ static void ast_set_error (AST *ast, GError **error, AST *other_ast, + gint code, const gchar *format, ...) { @@ -513,6 +534,7 @@ ast_set_error (AST *ast, va_start (ap, format); parser_set_error_va (error, &ast->source_ref, other_ast ? & other_ast->source_ref : NULL, + code, format, ap); va_end (ap); } @@ -526,6 +548,7 @@ ast_type_error (AST *ast, typestr = g_variant_type_dup_string (type); ast_set_error (ast, error, NULL, + G_VARIANT_PARSE_ERROR_TYPE_ERROR, "can not parse as value of type `%s'", typestr); g_free (typestr); @@ -556,7 +579,9 @@ ast_resolve (AST *ast, switch (pattern[i]) { case '*': - ast_set_error (ast, error, NULL, "unable to infer type"); + ast_set_error (ast, error, NULL, + G_VARIANT_PARSE_ERROR_CANNOT_INFER_TYPE, + "unable to infer type"); g_free (pattern); return NULL; @@ -669,6 +694,7 @@ ast_array_get_pattern (AST **array, * report the error. note: 'j' is first. */ ast_set_error (array[j], error, array[i], + G_VARIANT_PARSE_ERROR_NO_COMMON_TYPE, "unable to find a common type"); g_free (tmp); return NULL; @@ -776,7 +802,9 @@ maybe_parse (TokenStream *stream, else if (!token_stream_consume (stream, "nothing")) { - token_stream_set_error (stream, error, TRUE, "unknown keyword"); + token_stream_set_error (stream, error, TRUE, + G_VARIANT_PARSE_ERROR_UNKNOWN_KEYWORD, + "unknown keyword"); return NULL; } @@ -1187,6 +1215,7 @@ dictionary_get_pattern (AST *ast, if (!strchr ("bynqiuxthdsogNS", key_char)) { ast_set_error (ast, error, NULL, + G_VARIANT_PARSE_ERROR_BASIC_TYPE_EXPECTED, "dictionary keys must have basic types"); return NULL; } @@ -1422,7 +1451,9 @@ string_get_value (AST *ast, { if (!g_variant_is_object_path (string->string)) { - ast_set_error (ast, error, NULL, "not a valid object path"); + ast_set_error (ast, error, NULL, + G_VARIANT_PARSE_ERROR_INVALID_OBJECT_PATH, + "not a valid object path"); return NULL; } @@ -1433,7 +1464,9 @@ string_get_value (AST *ast, { if (!g_variant_is_signature (string->string)) { - ast_set_error (ast, error, NULL, "not a valid signature"); + ast_set_error (ast, error, NULL, + G_VARIANT_PARSE_ERROR_INVALID_SIGNATURE, + "not a valid signature"); return NULL; } @@ -1477,6 +1510,7 @@ unicode_unescape (const gchar *src, if (value == 0 || end != buffer + length) { parser_set_error (error, ref, NULL, + G_VARIANT_PARSE_ERROR_INVALID_CHARACTER, "invalid %d-character unicode escape", length); return FALSE; } @@ -1522,6 +1556,7 @@ string_parse (TokenStream *stream, { case '\0': parser_set_error (error, &ref, NULL, + G_VARIANT_PARSE_ERROR_UNTERMINATED_STRING_CONSTANT, "unterminated string constant"); g_free (token); g_free (str); @@ -1532,6 +1567,7 @@ string_parse (TokenStream *stream, { case '\0': parser_set_error (error, &ref, NULL, + G_VARIANT_PARSE_ERROR_UNTERMINATED_STRING_CONSTANT, "unterminated string constant"); g_free (token); g_free (str); @@ -1648,6 +1684,7 @@ bytestring_parse (TokenStream *stream, { case '\0': parser_set_error (error, &ref, NULL, + G_VARIANT_PARSE_ERROR_UNTERMINATED_STRING_CONSTANT, "unterminated string constant"); g_free (token); return NULL; @@ -1657,6 +1694,7 @@ bytestring_parse (TokenStream *stream, { case '\0': parser_set_error (error, &ref, NULL, + G_VARIANT_PARSE_ERROR_UNTERMINATED_STRING_CONSTANT, "unterminated string constant"); g_free (token); return NULL; @@ -1728,7 +1766,9 @@ number_overflow (AST *ast, const GVariantType *type, GError **error) { - ast_set_error (ast, error, NULL, "number out of range for type `%c'", + ast_set_error (ast, error, NULL, + G_VARIANT_PARSE_ERROR_NUMBER_OUT_OF_RANGE, + "number out of range for type `%c'", g_variant_type_peek_string (type)[0]); return NULL; } @@ -1756,7 +1796,9 @@ number_get_value (AST *ast, dbl_val = g_ascii_strtod (token, &end); if (dbl_val != 0.0 && errno == ERANGE) { - ast_set_error (ast, error, NULL, "number too big for any type"); + ast_set_error (ast, error, NULL, + G_VARIANT_PARSE_ERROR_NUMBER_TOO_BIG, + "number too big for any type"); return NULL; } @@ -1775,7 +1817,9 @@ number_get_value (AST *ast, abs_val = g_ascii_strtoull (token, &end, 0); if (abs_val == G_MAXUINT64 && errno == ERANGE) { - ast_set_error (ast, error, NULL, "integer too big for any type"); + ast_set_error (ast, error, NULL, + G_VARIANT_PARSE_ERROR_NUMBER_TOO_BIG, + "integer too big for any type"); return NULL; } @@ -1795,6 +1839,7 @@ number_get_value (AST *ast, ref.end = ref.start + 1; parser_set_error (error, &ref, NULL, + G_VARIANT_PARSE_ERROR_INVALID_CHARACTER, "invalid character in number"); return NULL; } @@ -2005,6 +2050,7 @@ positional_parse (TokenStream *stream, if (*endptr || positional->value == NULL) { token_stream_set_error (stream, error, TRUE, + G_VARIANT_PARSE_ERROR_INVALID_FORMAT_STRING, "invalid GVariant format string"); /* memory management doesn't matter in case of programmer error. */ return NULL; @@ -2076,6 +2122,7 @@ typedecl_parse (TokenStream *stream, if (!g_variant_type_string_is_valid (token + 1)) { token_stream_set_error (stream, error, TRUE, + G_VARIANT_PARSE_ERROR_INVALID_TYPE_STRING, "invalid type declaration"); g_free (token); @@ -2087,6 +2134,7 @@ typedecl_parse (TokenStream *stream, if (!g_variant_type_is_definite (type)) { token_stream_set_error (stream, error, TRUE, + G_VARIANT_PARSE_ERROR_DEFINITE_TYPE_EXPECTED, "type declarations must be definite"); g_variant_type_free (type); g_free (token); @@ -2140,7 +2188,9 @@ typedecl_parse (TokenStream *stream, else { - token_stream_set_error (stream, error, TRUE, "unknown keyword"); + token_stream_set_error (stream, error, TRUE, + G_VARIANT_PARSE_ERROR_UNKNOWN_KEYWORD, + "unknown keyword"); return NULL; } } @@ -2212,7 +2262,9 @@ parse (TokenStream *stream, else { - token_stream_set_error (stream, error, FALSE, "expected value"); + token_stream_set_error (stream, error, FALSE, + G_VARIANT_PARSE_ERROR_VALUE_EXPECTED, + "expected value"); return NULL; } @@ -2304,6 +2356,7 @@ g_variant_parse (const GVariantType *type, stream.stream - text }; parser_set_error (error, &ref, NULL, + G_VARIANT_PARSE_ERROR_INPUT_NOT_AT_END, "expected end of input"); g_variant_unref (result); diff --git a/glib/gvariant.c b/glib/gvariant.c index 89374454f..fd1163ef4 100644 --- a/glib/gvariant.c +++ b/glib/gvariant.c @@ -315,7 +315,7 @@ g_variant_new_from_trusted (const GVariantType *type, /** * g_variant_new_boolean: - * @boolean: a #gboolean value + * @value: a #gboolean value * @returns: a floating reference to a new boolean #GVariant instance * * Creates a new boolean #GVariant instance -- either %TRUE or %FALSE. @@ -373,7 +373,7 @@ g_variant_get_boolean (GVariant *value) /** * g_variant_new_byte: - * @byte: a #guint8 value + * @value: a #guint8 value * @returns: a floating reference to a new byte #GVariant instance * * Creates a new byte #GVariant instance. @@ -396,7 +396,7 @@ NUMERIC_TYPE (BYTE, byte, guchar) /** * g_variant_new_int16: - * @int16: a #gint16 value + * @value: a #gint16 value * @returns: a floating reference to a new int16 #GVariant instance * * Creates a new int16 #GVariant instance. @@ -419,7 +419,7 @@ NUMERIC_TYPE (INT16, int16, gint16) /** * g_variant_new_uint16: - * @uint16: a #guint16 value + * @value: a #guint16 value * @returns: a floating reference to a new uint16 #GVariant instance * * Creates a new uint16 #GVariant instance. @@ -442,7 +442,7 @@ NUMERIC_TYPE (UINT16, uint16, guint16) /** * g_variant_new_int32: - * @int32: a #gint32 value + * @value: a #gint32 value * @returns: a floating reference to a new int32 #GVariant instance * * Creates a new int32 #GVariant instance. @@ -465,7 +465,7 @@ NUMERIC_TYPE (INT32, int32, gint32) /** * g_variant_new_uint32: - * @uint32: a #guint32 value + * @value: a #guint32 value * @returns: a floating reference to a new uint32 #GVariant instance * * Creates a new uint32 #GVariant instance. @@ -488,7 +488,7 @@ NUMERIC_TYPE (UINT32, uint32, guint32) /** * g_variant_new_int64: - * @int64: a #gint64 value + * @value: a #gint64 value * @returns: a floating reference to a new int64 #GVariant instance * * Creates a new int64 #GVariant instance. @@ -511,7 +511,7 @@ NUMERIC_TYPE (INT64, int64, gint64) /** * g_variant_new_uint64: - * @uint64: a #guint64 value + * @value: a #guint64 value * @returns: a floating reference to a new uint64 #GVariant instance * * Creates a new uint64 #GVariant instance. @@ -565,7 +565,7 @@ NUMERIC_TYPE (HANDLE, handle, gint32) /** * g_variant_new_double: - * @floating: a #gdouble floating point value + * @value: a #gdouble floating point value * @returns: a floating reference to a new double #GVariant instance * * Creates a new double #GVariant instance. @@ -3058,6 +3058,9 @@ g_variant_builder_make_room (struct stack_builder *builder) * types or number of items in a tuple, putting more than one value into * a variant, etc. * + * If @value is a floating reference (see g_variant_ref_sink()), + * the @builder instance takes ownership of @value. + * * Since: 2.24 **/ void diff --git a/glib/gvariant.h b/glib/gvariant.h index 9519d97f0..9a67f2c71 100644 --- a/glib/gvariant.h +++ b/glib/gvariant.h @@ -199,7 +199,24 @@ struct _GVariantBuilder { typedef enum { - G_VARIANT_PARSE_ERROR_FAILED + G_VARIANT_PARSE_ERROR_FAILED, + G_VARIANT_PARSE_ERROR_BASIC_TYPE_EXPECTED, + G_VARIANT_PARSE_ERROR_CANNOT_INFER_TYPE, + G_VARIANT_PARSE_ERROR_DEFINITE_TYPE_EXPECTED, + G_VARIANT_PARSE_ERROR_INPUT_NOT_AT_END, + G_VARIANT_PARSE_ERROR_INVALID_CHARACTER, + G_VARIANT_PARSE_ERROR_INVALID_FORMAT_STRING, + G_VARIANT_PARSE_ERROR_INVALID_OBJECT_PATH, + G_VARIANT_PARSE_ERROR_INVALID_SIGNATURE, + G_VARIANT_PARSE_ERROR_INVALID_TYPE_STRING, + G_VARIANT_PARSE_ERROR_NO_COMMON_TYPE, + G_VARIANT_PARSE_ERROR_NUMBER_OUT_OF_RANGE, + G_VARIANT_PARSE_ERROR_NUMBER_TOO_BIG, + G_VARIANT_PARSE_ERROR_TYPE_ERROR, + G_VARIANT_PARSE_ERROR_UNEXPECTED_TOKEN, + G_VARIANT_PARSE_ERROR_UNKNOWN_KEYWORD, + G_VARIANT_PARSE_ERROR_UNTERMINATED_STRING_CONSTANT, + G_VARIANT_PARSE_ERROR_VALUE_EXPECTED } GVariantParseError; #define G_VARIANT_PARSE_ERROR (g_variant_parser_get_error_quark ()) diff --git a/glib/tests/hostutils.c b/glib/tests/hostutils.c index 622a0ced5..218f51648 100644 --- a/glib/tests/hostutils.c +++ b/glib/tests/hostutils.c @@ -19,6 +19,7 @@ #include +#include #include #include @@ -48,6 +49,23 @@ static const struct { }; static const gint num_idn_test_domains = G_N_ELEMENTS (idn_test_domains); +static const struct { + const gchar *orig_name, *ascii_name; + gboolean orig_is_unicode, ascii_is_encoded; +} non_round_trip_names[] = { + /* uppercase characters */ + { "EXAMPLE.COM", "example.com", FALSE, FALSE }, + { "\xc3\x89XAMPLE.COM", "xn--xample-9ua.com", TRUE, TRUE }, + + /* unicode that decodes to ascii */ + { "\xe2\x93\x94\xe2\x93\xa7\xe2\x93\x90\xe2\x93\x9c\xe2\x93\x9f\xe2\x93\x9b\xe2\x93\x94.com", "example.com", TRUE, FALSE }, + + /* non-standard dot characters */ + { "example\xe3\x80\x82" "com", "example.com", TRUE, FALSE }, + { "\xc3\xa9xample\xe3\x80\x82" "com", "xn--xample-9ua.com", TRUE, TRUE } +}; +static const gint num_non_round_trip_names = G_N_ELEMENTS (non_round_trip_names); + static const gchar *bad_names[] = { "disallowed\xef\xbf\xbd" "character", "non-utf\x88", @@ -73,6 +91,27 @@ test_to_ascii (void) g_free (ascii); } + for (i = 0; i < num_non_round_trip_names; i++) + { + if (non_round_trip_names[i].orig_is_unicode) + g_assert (g_hostname_is_non_ascii (non_round_trip_names[i].orig_name)); + else + g_assert (!g_hostname_is_non_ascii (non_round_trip_names[i].orig_name)); + + if (non_round_trip_names[i].ascii_is_encoded) + g_assert (g_hostname_is_ascii_encoded (non_round_trip_names[i].ascii_name)); + else + g_assert (!g_hostname_is_ascii_encoded (non_round_trip_names[i].ascii_name)); + + ascii = g_hostname_to_ascii (non_round_trip_names[i].orig_name); + g_assert_cmpstr (non_round_trip_names[i].ascii_name, ==, ascii); + g_free (ascii); + + ascii = g_hostname_to_ascii (non_round_trip_names[i].ascii_name); + g_assert_cmpstr (non_round_trip_names[i].ascii_name, ==, ascii); + g_free (ascii); + } + for (i = 0; i < num_bad_names; i++) { ascii = g_hostname_to_ascii (bad_names[i]); @@ -278,6 +317,28 @@ main (int argc, { g_test_init (&argc, &argv, NULL); + if (argc == 2 && argv[1][0] != '-') + { + const gchar *hostname = argv[1]; + gchar *converted; + + if (g_hostname_is_non_ascii (hostname)) + { + converted = g_hostname_to_ascii (hostname); + printf ("to_ascii: %s\n", converted); + g_free (converted); + } + else if (g_hostname_is_ascii_encoded (hostname)) + { + converted = g_hostname_to_unicode (hostname); + printf ("to_unicode: %s\n", converted); + g_free (converted); + } + else + printf ("hostname is neither unicode nor ACE encoded\n"); + return 0; + } + g_test_add_func ("/hostutils/to_ascii", test_to_ascii); g_test_add_func ("/hostutils/to_unicode", test_to_unicode); g_test_add_func ("/hostutils/is_ip_addr", test_is_ip_addr); diff --git a/glib/tests/rand.c b/glib/tests/rand.c index 62b5f7597..f1ff08d55 100644 --- a/glib/tests/rand.c +++ b/glib/tests/rand.c @@ -22,7 +22,8 @@ #include "glib.h" /* Outputs tested against the reference implementation mt19937ar.c from - http://www.math.keio.ac.jp/~matumoto/MT2002/emt19937ar.html */ + * http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/MT2002/emt19937ar.html + */ /* Tests for a simple seed, first number is the seed */ const guint32 first_numbers[] = diff --git a/glib/tests/regex.c b/glib/tests/regex.c index bd46a5e53..6e015e9ac 100644 --- a/glib/tests/regex.c +++ b/glib/tests/regex.c @@ -2357,6 +2357,8 @@ main (int argc, char *argv[]) TEST_SPLIT_SIMPLE3(",\\s*", "a, b, c", "a", "b", "c"); TEST_SPLIT_SIMPLE3("(,)\\s*", "a,b", "a", ",", "b"); TEST_SPLIT_SIMPLE3("(,)\\s*", "a, b", "a", ",", "b"); + TEST_SPLIT_SIMPLE2("\\s", "ab c", "ab", "c"); + TEST_SPLIT_SIMPLE3("\\s*", "ab c", "a", "b", "c"); /* Not matched sub-strings. */ TEST_SPLIT_SIMPLE2("a|(b)", "xay", "x", "y"); TEST_SPLIT_SIMPLE3("a|(b)", "xby", "x", "b", "y"); diff --git a/glib/tests/sequence.c b/glib/tests/sequence.c index f46761a90..e2a58f333 100644 --- a/glib/tests/sequence.c +++ b/glib/tests/sequence.c @@ -81,6 +81,7 @@ enum { GET_BEGIN_ITER, GET_END_ITER, GET_ITER_AT_POS, APPEND, PREPEND, INSERT_BEFORE, MOVE, SWAP, INSERT_SORTED, INSERT_SORTED_ITER, SORT_CHANGED, SORT_CHANGED_ITER, REMOVE, REMOVE_RANGE, MOVE_RANGE, SEARCH, SEARCH_ITER, + LOOKUP, LOOKUP_ITER, /* dereferencing */ GET, SET, @@ -199,6 +200,42 @@ seq_foreach (gpointer data, *link = (*link)->next; } +static gint +simple_items_cmp (gconstpointer a, + gconstpointer b, + gpointer data) +{ + const Item *item_a = fix_pointer (a); + const Item *item_b = fix_pointer (b); + + if (item_a->number > item_b->number) + return +1; + else if (item_a->number < item_b->number) + return -1; + else + return 0; +} + +static gint +simple_iters_cmp (gconstpointer a, + gconstpointer b, + gpointer data) +{ + GSequence *seq = data; + GSequenceIter *iter_a = (GSequenceIter *)a; + GSequenceIter *iter_b = (GSequenceIter *)b; + gpointer item_a = g_sequence_get (iter_a); + gpointer item_b = g_sequence_get (iter_b); + + if (seq) + { + g_assert (g_sequence_iter_get_sequence (iter_a) == seq); + g_assert (g_sequence_iter_get_sequence (iter_b) == seq); + } + + return simple_items_cmp (item_a, item_b, data); +} + static gint compare_items (gconstpointer a, gconstpointer b, @@ -884,6 +921,45 @@ run_random_tests (gconstpointer d) g_queue_insert_sorted (seq->queue, insert_iter, compare_iters, NULL); } break; + case LOOKUP: + { + Item *item; + GSequenceIter *lookup_iter; + GSequenceIter *insert_iter; + + g_sequence_sort (seq->sequence, compare_items, NULL); + g_queue_sort (seq->queue, compare_iters, NULL); + + check_sorted (seq); + + item = new_item (seq); + insert_iter = g_sequence_insert_sorted (seq->sequence, item, compare_items, NULL); + g_queue_insert_sorted (seq->queue, insert_iter, compare_iters, NULL); + + lookup_iter = g_sequence_lookup (seq->sequence, item, simple_items_cmp, NULL); + g_assert (simple_iters_cmp (insert_iter, lookup_iter, NULL) == 0); + } + break; + case LOOKUP_ITER: + { + Item *item; + GSequenceIter *lookup_iter; + GSequenceIter *insert_iter; + + g_sequence_sort (seq->sequence, compare_items, NULL); + g_queue_sort (seq->queue, compare_iters, NULL); + + check_sorted (seq); + + item = new_item (seq); + insert_iter = g_sequence_insert_sorted (seq->sequence, item, compare_items, NULL); + g_queue_insert_sorted (seq->queue, insert_iter, compare_iters, NULL); + + lookup_iter = g_sequence_lookup_iter (seq->sequence, item, + (GSequenceIterCompareFunc) simple_iters_cmp, NULL); + g_assert (simple_iters_cmp (insert_iter, lookup_iter, NULL) == 0); + } + break; /* dereferencing */ case GET: diff --git a/glib/tests/utils.c b/glib/tests/utils.c index f586aa131..cf7d8ddb6 100644 --- a/glib/tests/utils.c +++ b/glib/tests/utils.c @@ -72,6 +72,20 @@ test_language_names (void) NULL)); } +static void +test_locale_variants (void) +{ + char **v; + + v = g_get_locale_variants ("fr_BE"); + g_assert (strv_check ((const gchar * const *) v, "fr_BE", "fr", NULL)); + g_strfreev (v); + + v = g_get_locale_variants ("sr_SR@latin"); + g_assert (strv_check ((const gchar * const *) v, "sr_SR@latin", "sr@latin", "sr_SR", "sr", NULL)); + g_strfreev (v); +} + static void test_version (void) { @@ -152,6 +166,7 @@ main (int argc, g_test_bug_base ("http://bugzilla.gnome.org/"); g_test_add_func ("/utils/language-names", test_language_names); + g_test_add_func ("/utils/locale-variants", test_locale_variants); g_test_add_func ("/utils/version", test_version); g_test_add_func ("/utils/appname", test_appname); g_test_add_func ("/utils/tmpdir", test_tmpdir); diff --git a/gobject/gboxed.c b/gobject/gboxed.c index e6f2274e9..06b3cf293 100644 --- a/gobject/gboxed.c +++ b/gobject/gboxed.c @@ -402,7 +402,7 @@ g_boxed_free (GType boxed_type, * * Get the contents of a %G_TYPE_BOXED derived #GValue. * - * Returns: boxed contents of @value + * Returns: (transfer none): boxed contents of @value */ gpointer g_value_get_boxed (const GValue *value) @@ -414,7 +414,7 @@ g_value_get_boxed (const GValue *value) } /** - * g_value_dup_boxed: + * g_value_dup_boxed: (skip) * @value: a valid #GValue of %G_TYPE_BOXED derived type * * Get the contents of a %G_TYPE_BOXED derived #GValue. Upon getting, diff --git a/gobject/gclosure.c b/gobject/gclosure.c index 8a6b0f7ab..a415182da 100644 --- a/gobject/gclosure.c +++ b/gobject/gclosure.c @@ -186,7 +186,7 @@ enum { * } * ]| * - * Returns: a newly allocated #GClosure + * Returns: (transfer full): a newly allocated #GClosure */ GClosure* g_closure_new_simple (guint sizeof_closure, @@ -293,7 +293,7 @@ closure_invoke_notifiers (GClosure *closure, } /** - * g_closure_set_meta_marshal: + * g_closure_set_meta_marshal: (skip) * @closure: a #GClosure * @marshal_data: context-dependent data to pass to @meta_marshal * @meta_marshal: a #GClosureMarshal function @@ -343,7 +343,7 @@ g_closure_set_meta_marshal (GClosure *closure, } /** - * g_closure_add_marshal_guards: + * g_closure_add_marshal_guards: (skip) * @closure: a #GClosure * @pre_marshal_data: data to pass to @pre_marshal_notify * @pre_marshal_notify: a function to call before the closure callback @@ -401,7 +401,7 @@ g_closure_add_marshal_guards (GClosure *closure, } /** - * g_closure_add_finalize_notifier: + * g_closure_add_finalize_notifier: (skip) * @closure: a #GClosure * @notify_data: data to pass to @notify_func * @notify_func: the callback function to register @@ -437,7 +437,7 @@ g_closure_add_finalize_notifier (GClosure *closure, } /** - * g_closure_add_invalidate_notifier: + * g_closure_add_invalidate_notifier: (skip) * @closure: a #GClosure * @notify_data: data to pass to @notify_func * @notify_func: the callback function to register @@ -517,7 +517,7 @@ closure_try_remove_fnotify (GClosure *closure, * Increments the reference count on a closure to force it staying * alive while the caller holds a pointer to it. * - * Returns: The @closure passed in, for convenience + * Returns: (transfer none): The @closure passed in, for convenience */ GClosure* g_closure_ref (GClosure *closure) @@ -665,7 +665,7 @@ g_closure_sink (GClosure *closure) } /** - * g_closure_remove_invalidate_notifier: + * g_closure_remove_invalidate_notifier: (skip) * @closure: a #GClosure * @notify_data: data which was passed to g_closure_add_invalidate_notifier() * when registering @notify_func @@ -693,7 +693,7 @@ g_closure_remove_invalidate_notifier (GClosure *closure, } /** - * g_closure_remove_finalize_notifier: + * g_closure_remove_finalize_notifier: (skip) * @closure: a #GClosure * @notify_data: data which was passed to g_closure_add_finalize_notifier() * when registering @notify_func @@ -726,8 +726,9 @@ g_closure_remove_finalize_notifier (GClosure *closure, * @return_value: a #GValue to store the return value. May be %NULL if the * callback of @closure doesn't return a value. * @n_param_values: the length of the @param_values array - * @param_values: an array of #GValues holding the arguments on - * which to invoke the callback of @closure + * @param_values: (array length=n_param_values): an array of + * #GValues holding the arguments on which to + * invoke the callback of @closure * @invocation_hint: a context-dependent invocation hint * * Invokes the closure, i.e. executes the callback represented by the @closure. @@ -776,7 +777,7 @@ g_closure_invoke (GClosure *closure, } /** - * g_closure_set_marshal: + * g_closure_set_marshal: (skip) * @closure: a #GClosure * @marshal: a #GClosureMarshal function * @@ -802,7 +803,7 @@ g_closure_set_marshal (GClosure *closure, } /** - * g_cclosure_new: + * g_cclosure_new: (skip) * @callback_func: the function to invoke * @user_data: user data to pass to @callback_func * @destroy_data: destroy notify to be called when @user_data is no longer used @@ -830,7 +831,7 @@ g_cclosure_new (GCallback callback_func, } /** - * g_cclosure_new_swap: + * g_cclosure_new_swap: (skip) * @callback_func: the function to invoke * @user_data: user data to pass to @callback_func * @destroy_data: destroy notify to be called when @user_data is no longer used @@ -838,7 +839,7 @@ g_cclosure_new (GCallback callback_func, * Creates a new closure which invokes @callback_func with @user_data as * the first parameter. * - * Returns: a new #GCClosure + * Returns: (transfer full): a new #GCClosure */ GClosure* g_cclosure_new_swap (GCallback callback_func, diff --git a/gobject/gobject.c b/gobject/gobject.c index 8b427fa62..686d33d93 100644 --- a/gobject/gobject.c +++ b/gobject/gobject.c @@ -617,8 +617,8 @@ g_object_interface_install_property (gpointer g_iface, * * Looks up the #GParamSpec for a property of a class. * - * Returns: the #GParamSpec for the property, or %NULL if the class - * doesn't have a property of that name + * Returns: (transfer none): the #GParamSpec for the property, or + * %NULL if the class doesn't have a property of that name */ GParamSpec* g_object_class_find_property (GObjectClass *class, @@ -660,8 +660,9 @@ g_object_class_find_property (GObjectClass *class, * * Since: 2.4 * - * Returns: the #GParamSpec for the property of the interface with the - * name @property_name, or %NULL if no such property exists. + * Returns: (transfer none): the #GParamSpec for the property of the + * interface with the name @property_name, or %NULL if no + * such property exists. */ GParamSpec* g_object_interface_find_property (gpointer g_iface, @@ -760,11 +761,11 @@ g_object_class_override_property (GObjectClass *oclass, /** * g_object_class_list_properties: * @oclass: a #GObjectClass - * @n_properties: return location for the length of the returned array + * @n_properties: (out): return location for the length of the returned array * * Get an array of #GParamSpec* for all properties of a class. * - * Returns: (array length=n_properties) (transfer full): an array of + * Returns: (array length=n_properties) (transfer container): an array of * #GParamSpec* which should be freed after use */ GParamSpec** /* free result */ @@ -789,7 +790,7 @@ g_object_class_list_properties (GObjectClass *class, * g_object_interface_list_properties: * @g_iface: any interface vtable for the interface, or the default * vtable for the interface - * @n_properties_p: location to store number of properties returned. + * @n_properties_p: (out): location to store number of properties returned. * * Lists the properties of an interface.Generally, the interface * vtable passed in as @g_iface will be the default vtable from @@ -798,7 +799,8 @@ g_object_class_list_properties (GObjectClass *class, * * Since: 2.4 * - * Returns: a pointer to an array of pointers to #GParamSpec + * Returns: (array length=n_properties_p) (transfer container): a + * pointer to an array of pointers to #GParamSpec * structures. The paramspecs are owned by GLib, but the * array should be freed with g_free() when you are done with * it. @@ -1187,11 +1189,13 @@ object_interface_check_properties (gpointer func_data, gpointer g_iface) { GTypeInterface *iface_class = g_iface; - GObjectClass *class = g_type_class_peek (iface_class->g_instance_type); + GObjectClass *class; GType iface_type = iface_class->g_type; GParamSpec **pspecs; guint n; + class = g_type_class_ref (iface_class->g_instance_type); + if (!G_IS_OBJECT_CLASS (class)) return; @@ -1203,7 +1207,7 @@ object_interface_check_properties (gpointer func_data, pspecs[n]->name, G_OBJECT_CLASS_TYPE (class), TRUE); - + if (!class_pspec) { g_critical ("Object class %s doesn't implement property " @@ -1235,9 +1239,9 @@ object_interface_check_properties (gpointer func_data, g_type_name (G_PARAM_SPEC_VALUE_TYPE (pspecs[n])), g_type_name (iface_type)); } - + #define SUBSET(a,b,mask) (((a) & ~(b) & (mask)) == 0) - + /* CONSTRUCT and CONSTRUCT_ONLY add restrictions. * READABLE and WRITABLE remove restrictions. The implementation * paramspec must have less restrictive flags. @@ -1257,10 +1261,12 @@ object_interface_check_properties (gpointer func_data, g_type_name (G_OBJECT_CLASS_TYPE (class)), g_type_name (iface_type)); } -#undef SUBSET +#undef SUBSET } - + g_free (pspecs); + + g_type_class_unref (class); } GType @@ -1270,7 +1276,7 @@ g_object_get_type (void) } /** - * g_object_new: + * g_object_new: (skip) * @object_type: the type id of the #GObject subtype to instantiate * @first_property_name: the name of the first property * @...: the value of the first property, followed optionally by more @@ -1281,7 +1287,7 @@ g_object_get_type (void) * Construction parameters (see #G_PARAM_CONSTRUCT, #G_PARAM_CONSTRUCT_ONLY) * which are not explicitly specified are set to their default values. * - * Returns: a new instance of @object_type + * Returns: (transfer full): a new instance of @object_type */ gpointer g_object_new (GType object_type, @@ -1340,14 +1346,16 @@ object_in_construction_list (GObject *object) * g_object_newv: * @object_type: the type id of the #GObject subtype to instantiate * @n_parameters: the length of the @parameters array - * @parameters: an array of #GParameter + * @parameters: (array length=n_parameters): an array of #GParameter * * Creates a new instance of a #GObject subtype and sets its properties. * * Construction parameters (see #G_PARAM_CONSTRUCT, #G_PARAM_CONSTRUCT_ONLY) * which are not explicitly specified are set to their default values. * - * Returns: a new instance of @object_type + * Rename to: g_object_new + * Returns: (type GObject.Object) (transfer full): a new instance of + * @object_type */ gpointer g_object_newv (GType object_type, @@ -1513,7 +1521,7 @@ g_object_newv (GType object_type, } /** - * g_object_new_valist: + * g_object_new_valist: (skip) * @object_type: the type id of the #GObject subtype to instantiate * @first_property_name: the name of the first property * @var_args: the value of the first property, followed optionally by more @@ -1627,7 +1635,7 @@ g_object_constructor (GType type, } /** - * g_object_set_valist: + * g_object_set_valist: (skip) * @object: a #GObject * @first_property_name: name of the first property to set * @var_args: value for the first property, followed optionally by more @@ -1703,7 +1711,7 @@ g_object_set_valist (GObject *object, } /** - * g_object_get_valist: + * g_object_get_valist: (skip) * @object: a #GObject * @first_property_name: name of the first property to get * @var_args: return location for the first property, followed optionally by more @@ -1779,7 +1787,7 @@ g_object_get_valist (GObject *object, } /** - * g_object_set: + * g_object_set: (skip) * @object: a #GObject * @first_property_name: name of the first property to set * @...: value for the first property, followed optionally by more @@ -1803,7 +1811,7 @@ g_object_set (gpointer _object, } /** - * g_object_get: + * g_object_get: (skip) * @object: a #GObject * @first_property_name: name of the first property to get * @...: return location for the first property, followed optionally by more @@ -1906,7 +1914,9 @@ g_object_set_property (GObject *object, * @property_name: the name of the property to get * @value: return location for the property value * - * Gets a property of an object. + * Gets a property of an object. @value must have been initialized to the + * expected type of the property (or a type to which the expected type can be + * transformed) using g_value_init(). * * In general, a copy is made of the property contents and the caller is * responsible for freeing the memory by calling g_value_unset(). @@ -1978,7 +1988,7 @@ g_object_get_property (GObject *object, } /** - * g_object_connect: + * g_object_connect: (skip) * @object: a #GObject * @signal_spec: the spec for the first signal * @...: #GCallback for the first signal, followed by data for the @@ -2058,7 +2068,7 @@ g_object_get_property (GObject *object, * NULL); * ]| * - * Returns: @object + * Returns: (transfer none): @object */ gpointer g_object_connect (gpointer _object, @@ -2130,7 +2140,7 @@ g_object_connect (gpointer _object, } /** - * g_object_disconnect: + * g_object_disconnect: (skip) * @object: a #GObject * @signal_spec: the spec for the first signal * @...: #GCallback for the first signal, followed by data for the first signal, @@ -2213,7 +2223,7 @@ weak_refs_notify (gpointer data) } /** - * g_object_weak_ref: + * g_object_weak_ref: (skip) * @object: #GObject to reference weakly * @notify: callback to invoke before the object is freed * @data: extra data to pass to notify @@ -2257,7 +2267,7 @@ g_object_weak_ref (GObject *object, } /** - * g_object_weak_unref: + * g_object_weak_unref: (skip) * @object: #GObject to remove a weak reference from * @notify: callback to search for * @data: data to search for @@ -2299,7 +2309,7 @@ g_object_weak_unref (GObject *object, } /** - * g_object_add_weak_pointer: + * g_object_add_weak_pointer: (skip) * @object: The object that should be weak referenced. * @weak_pointer_location: (inout): The memory address of a pointer. * @@ -2321,7 +2331,7 @@ g_object_add_weak_pointer (GObject *object, } /** - * g_object_remove_weak_pointer: + * g_object_remove_weak_pointer: (skip) * @object: The object that is weak referenced. * @weak_pointer_location: (inout): The memory address of a pointer. * @@ -2367,7 +2377,7 @@ object_floating_flag_handler (GObject *object, /** * g_object_is_floating: - * @object: a #GObject + * @object: (type GObject.Object): a #GObject * * Checks wether @object has a floating * reference. @@ -2386,7 +2396,7 @@ g_object_is_floating (gpointer _object) /** * g_object_ref_sink: - * @object: a #GObject + * @object: (type GObject.Object): a #GObject * * Increase the reference count of @object, and possibly remove the * floating reference, if @object @@ -2400,7 +2410,7 @@ g_object_is_floating (gpointer _object) * * Since: 2.10 * - * Returns: @object + * Returns: (type GObject.Object) (transfer none): @object */ gpointer g_object_ref_sink (gpointer _object) @@ -2466,7 +2476,7 @@ toggle_refs_notify (GObject *object, } /** - * g_object_add_toggle_ref: + * g_object_add_toggle_ref: (skip) * @object: a #GObject * @notify: a function to call when this reference is the * last reference to the object, or is no longer @@ -2547,7 +2557,7 @@ g_object_add_toggle_ref (GObject *object, } /** - * g_object_remove_toggle_ref: + * g_object_remove_toggle_ref: (skip) * @object: a #GObject * @notify: a function to call when this reference is the * last reference to the object, or is no longer @@ -2601,11 +2611,11 @@ g_object_remove_toggle_ref (GObject *object, /** * g_object_ref: - * @object: a #GObject + * @object: (type GObject.Object): a #GObject * * Increases the reference count of @object. * - * Returns: the same @object + * Returns: (type GObject.Object) (transfer none): the same @object */ gpointer g_object_ref (gpointer _object) @@ -2634,7 +2644,7 @@ g_object_ref (gpointer _object) /** * g_object_unref: - * @object: a #GObject + * @object: (type GObject.Object): a #GObject * * Decreases the reference count of @object. When its reference count * drops to 0, the object is finalized (i.e. its memory is freed). @@ -2730,7 +2740,7 @@ g_object_unref (gpointer _object) } /** - * g_clear_object: + * g_clear_object: (skip) * @object_ptr: a pointer to a #GObject reference * * Clears a reference to a #GObject. @@ -2775,7 +2785,7 @@ g_clear_object (volatile GObject **object_ptr) * This function gets back user data pointers stored via * g_object_set_qdata(). * - * Returns: The user data pointer set, or %NULL + * Returns: (transfer none): The user data pointer set, or %NULL */ gpointer g_object_get_qdata (GObject *object, @@ -2787,7 +2797,7 @@ g_object_get_qdata (GObject *object, } /** - * g_object_set_qdata: + * g_object_set_qdata: (skip) * @object: The GObject to set store a user data pointer * @quark: A #GQuark, naming the user data pointer * @data: An opaque user data pointer @@ -2813,7 +2823,7 @@ g_object_set_qdata (GObject *object, } /** - * g_object_set_qdata_full: + * g_object_set_qdata_full: (skip) * @object: The GObject to set store a user data pointer * @quark: A #GQuark, naming the user data pointer * @data: An opaque user data pointer @@ -2880,7 +2890,7 @@ g_object_set_qdata_full (GObject *object, * and thus the partial string list would have been freed upon * g_object_set_qdata_full(). * - * Returns: The user data pointer set, or %NULL + * Returns: (transfer full): The user data pointer set, or %NULL */ gpointer g_object_steal_qdata (GObject *object, @@ -2899,7 +2909,7 @@ g_object_steal_qdata (GObject *object, * * Gets a named field from the objects table of associations (see g_object_set_data()). * - * Returns: the data if found, or %NULL if no such data exists. + * Returns: (transfer none): the data if found, or %NULL if no such data exists. */ gpointer g_object_get_data (GObject *object, @@ -2939,7 +2949,7 @@ g_object_set_data (GObject *object, } /** - * g_object_set_data_full: + * g_object_set_data_full: (skip) * @object: #GObject containing the associations * @key: name of the key * @data: data to associate with that key @@ -2972,7 +2982,7 @@ g_object_set_data_full (GObject *object, * Remove a specified datum from the object's data associations, * without invoking the association's destroy handler. * - * Returns: the data if found, or %NULL if no such data exists. + * Returns: (transfer full): the data if found, or %NULL if no such data exists. */ gpointer g_object_steal_data (GObject *object, @@ -3082,7 +3092,7 @@ g_value_object_lcopy_value (const GValue *value, /** * g_value_set_object: * @value: a valid #GValue of %G_TYPE_OBJECT derived type - * @v_object: object value to be set + * @v_object: (type GObject.Object): object value to be set * * Set the contents of a %G_TYPE_OBJECT derived #GValue to @v_object. * @@ -3122,7 +3132,7 @@ g_value_set_object (GValue *value, } /** - * g_value_set_object_take_ownership: + * g_value_set_object_take_ownership: (skip) * @value: a valid #GValue of %G_TYPE_OBJECT derived type * @v_object: object value to be set * @@ -3138,7 +3148,7 @@ g_value_set_object_take_ownership (GValue *value, } /** - * g_value_take_object: + * g_value_take_object: (skip) * @value: a valid #GValue of %G_TYPE_OBJECT derived type * @v_object: object value to be set * @@ -3179,7 +3189,7 @@ g_value_take_object (GValue *value, * * Get the contents of a %G_TYPE_OBJECT derived #GValue. * - * Returns: object contents of @value + * Returns: (type GObject.Object) (transfer none): object contents of @value */ gpointer g_value_get_object (const GValue *value) @@ -3196,8 +3206,8 @@ g_value_get_object (const GValue *value) * Get the contents of a %G_TYPE_OBJECT derived #GValue, increasing * its reference count. * - * Returns: object content of @value, should be unreferenced when no - * longer needed. + * Returns: (type GObject.Object) (transfer full): object content of @value, + * should be unreferenced when no longer needed. */ gpointer g_value_dup_object (const GValue *value) @@ -3208,7 +3218,7 @@ g_value_dup_object (const GValue *value) } /** - * g_signal_connect_object: + * g_signal_connect_object: (skip) * @instance: the instance to connect to. * @detailed_signal: a string of the form "signal-name::detail". * @c_handler: the #GCallback to connect. @@ -3395,7 +3405,7 @@ g_object_watch_closure (GObject *object, * @object and the created closure. This function is mainly useful * when implementing new types of closures. * - * Returns: a newly allocated #GClosure + * Returns: (transfer full): a newly allocated #GClosure */ GClosure* g_closure_new_object (guint sizeof_closure, @@ -3413,7 +3423,7 @@ g_closure_new_object (guint sizeof_closure, } /** - * g_cclosure_new_object: + * g_cclosure_new_object: (skip) * @callback_func: the function to invoke * @object: a #GObject pointer to pass to @callback_func * @@ -3442,7 +3452,7 @@ g_cclosure_new_object (GCallback callback_func, } /** - * g_cclosure_new_object_swap: + * g_cclosure_new_object_swap: (skip) * @callback_func: the function to invoke * @object: a #GObject pointer to pass to @callback_func * diff --git a/gobject/gparam.c b/gobject/gparam.c index f91e58745..bca47d225 100644 --- a/gobject/gparam.c +++ b/gobject/gparam.c @@ -187,7 +187,7 @@ g_param_spec_finalize (GParamSpec *pspec) } /** - * g_param_spec_ref: + * g_param_spec_ref: (skip) * @pspec: a valid #GParamSpec * * Increments the reference count of @pspec. @@ -206,7 +206,7 @@ g_param_spec_ref (GParamSpec *pspec) } /** - * g_param_spec_unref: + * g_param_spec_unref: (skip) * @pspec: a valid #GParamSpec * * Decrements the reference count of a @pspec. @@ -255,7 +255,7 @@ g_param_spec_sink (GParamSpec *pspec) } /** - * g_param_spec_ref_sink: + * g_param_spec_ref_sink: (skip) * @pspec: a valid #GParamSpec * * Convenience function to ref and sink a #GParamSpec. @@ -381,7 +381,7 @@ is_canonical (const gchar *key) } /** - * g_param_spec_internal: + * g_param_spec_internal: (skip) * @param_type: the #GType for the property; must be derived from #G_TYPE_PARAM * @name: the canonical name of the property * @nick: the nickname of the property @@ -459,7 +459,7 @@ g_param_spec_internal (GType param_type, * * Gets back user data pointers stored via g_param_spec_set_qdata(). * - * Returns: the user data pointer set, or %NULL + * Returns: (transfer none): the user data pointer set, or %NULL */ gpointer g_param_spec_get_qdata (GParamSpec *pspec, @@ -495,7 +495,7 @@ g_param_spec_set_qdata (GParamSpec *pspec, } /** - * g_param_spec_set_qdata_full: + * g_param_spec_set_qdata_full: (skip) * @pspec: the #GParamSpec to set store a user data pointer * @quark: a #GQuark, naming the user data pointer * @data: an opaque user data pointer @@ -530,7 +530,7 @@ g_param_spec_set_qdata_full (GParamSpec *pspec, * function (if any was set). Usually, calling this function is only * required to update user data pointers with a destroy notifier. * - * Returns: the user data pointer set, or %NULL + * Returns: (transfer none): the user data pointer set, or %NULL */ gpointer g_param_spec_steal_qdata (GParamSpec *pspec, @@ -556,8 +556,8 @@ g_param_spec_steal_qdata (GParamSpec *pspec, * * Since: 2.4 * - * Returns: paramspec to which requests on this paramspec should - * be redirected, or %NULL if none. + * Returns: (transfer none): paramspec to which requests on this + * paramspec should be redirected, or %NULL if none. */ GParamSpec* g_param_spec_get_redirect_target (GParamSpec *pspec) @@ -887,7 +887,7 @@ param_spec_pool_equals (gconstpointer key_spec_1, * property name, like "GtkContainer:border-width". This feature is * deprecated, so you should always set @type_prefixing to %FALSE. * - * Returns: a newly allocated #GParamSpecPool. + * Returns: (transfer none): a newly allocated #GParamSpecPool. */ GParamSpecPool* g_param_spec_pool_new (gboolean type_prefixing) @@ -1030,7 +1030,8 @@ param_spec_ht_lookup (GHashTable *hash_table, * * Looks up a #GParamSpec in the pool. * - * Returns: The found #GParamSpec, or %NULL if no matching #GParamSpec was found. + * Returns: (transfer none): The found #GParamSpec, or %NULL if no + * matching #GParamSpec was found. */ GParamSpec* g_param_spec_pool_lookup (GParamSpecPool *pool, @@ -1117,8 +1118,9 @@ pool_list (gpointer key, * Gets an #GList of all #GParamSpecs owned by @owner_type in * the pool. * - * Returns: a #GList of all #GParamSpecs owned by @owner_type - * in the pool#GParamSpecs. + * Returns: (transfer container) (element-type GObject.ParamSpec): a + * #GList of all #GParamSpecs owned by @owner_type in + * the pool#GParamSpecs. */ GList* g_param_spec_pool_list_owned (GParamSpecPool *pool, @@ -1253,13 +1255,14 @@ pool_depth_list_for_interface (gpointer key, * g_param_spec_pool_list: * @pool: a #GParamSpecPool * @owner_type: the owner to look for - * @n_pspecs_p: return location for the length of the returned array + * @n_pspecs_p: (out): return location for the length of the returned array * * Gets an array of all #GParamSpecs owned by @owner_type in * the pool. * - * Returns: a newly allocated array containing pointers to all - * #GParamSpecs owned by @owner_type in the pool + * Returns: (array length=n_pspecs_p) (transfer container): a newly + * allocated array containing pointers to all #GParamSpecs + * owned by @owner_type in the pool */ GParamSpec** g_param_spec_pool_list (GParamSpecPool *pool, @@ -1429,7 +1432,7 @@ g_value_set_param (GValue *value, } /** - * g_value_set_param_take_ownership: + * g_value_set_param_take_ownership: (skip) * @value: a valid #GValue of type %G_TYPE_PARAM * @param: the #GParamSpec to be set * @@ -1445,7 +1448,7 @@ g_value_set_param_take_ownership (GValue *value, } /** - * g_value_take_param: + * g_value_take_param: (skip) * @value: a valid #GValue of type %G_TYPE_PARAM * @param: the #GParamSpec to be set * @@ -1474,7 +1477,7 @@ g_value_take_param (GValue *value, * * Get the contents of a %G_TYPE_PARAM #GValue. * - * Returns: #GParamSpec content of @value + * Returns: (transfer none): #GParamSpec content of @value */ GParamSpec* g_value_get_param (const GValue *value) @@ -1485,7 +1488,7 @@ g_value_get_param (const GValue *value) } /** - * g_value_dup_param: + * g_value_dup_param: (skip) * @value: a valid #GValue whose type is derived from %G_TYPE_PARAM * * Get the contents of a %G_TYPE_PARAM #GValue, increasing its diff --git a/gobject/gparamspecs.c b/gobject/gparamspecs.c index 9e07cfe68..f49936bc3 100644 --- a/gobject/gparamspecs.c +++ b/gobject/gparamspecs.c @@ -1591,7 +1591,7 @@ g_param_spec_types_init (void) /* --- GParamSpec initialization --- */ /** - * g_param_spec_char: + * g_param_spec_char: (skip) * @name: canonical name of the property specified * @nick: nick name for the property specified * @blurb: description of the property specified @@ -1631,7 +1631,7 @@ g_param_spec_char (const gchar *name, } /** - * g_param_spec_uchar: + * g_param_spec_uchar: (skip) * @name: canonical name of the property specified * @nick: nick name for the property specified * @blurb: description of the property specified @@ -1671,7 +1671,7 @@ g_param_spec_uchar (const gchar *name, } /** - * g_param_spec_boolean: + * g_param_spec_boolean: (skip) * @name: canonical name of the property specified * @nick: nick name for the property specified * @blurb: description of the property specified @@ -1708,7 +1708,7 @@ g_param_spec_boolean (const gchar *name, } /** - * g_param_spec_int: + * g_param_spec_int: (skip) * @name: canonical name of the property specified * @nick: nick name for the property specified * @blurb: description of the property specified @@ -1750,7 +1750,7 @@ g_param_spec_int (const gchar *name, } /** - * g_param_spec_uint: + * g_param_spec_uint: (skip) * @name: canonical name of the property specified * @nick: nick name for the property specified * @blurb: description of the property specified @@ -1792,7 +1792,7 @@ g_param_spec_uint (const gchar *name, } /** - * g_param_spec_long: + * g_param_spec_long: (skip) * @name: canonical name of the property specified * @nick: nick name for the property specified * @blurb: description of the property specified @@ -1834,7 +1834,7 @@ g_param_spec_long (const gchar *name, } /** - * g_param_spec_ulong: + * g_param_spec_ulong: (skip) * @name: canonical name of the property specified * @nick: nick name for the property specified * @blurb: description of the property specified @@ -1877,7 +1877,7 @@ g_param_spec_ulong (const gchar *name, } /** - * g_param_spec_int64: + * g_param_spec_int64: (skip) * @name: canonical name of the property specified * @nick: nick name for the property specified * @blurb: description of the property specified @@ -1919,7 +1919,7 @@ g_param_spec_int64 (const gchar *name, } /** - * g_param_spec_uint64: + * g_param_spec_uint64: (skip) * @name: canonical name of the property specified * @nick: nick name for the property specified * @blurb: description of the property specified @@ -1962,7 +1962,7 @@ g_param_spec_uint64 (const gchar *name, } /** - * g_param_spec_unichar: + * g_param_spec_unichar: (skip) * @name: canonical name of the property specified * @nick: nick name for the property specified * @blurb: description of the property specified @@ -1998,7 +1998,7 @@ g_param_spec_unichar (const gchar *name, } /** - * g_param_spec_enum: + * g_param_spec_enum: (skip) * @name: canonical name of the property specified * @nick: nick name for the property specified * @blurb: description of the property specified @@ -2044,7 +2044,7 @@ g_param_spec_enum (const gchar *name, } /** - * g_param_spec_flags: + * g_param_spec_flags: (skip) * @name: canonical name of the property specified * @nick: nick name for the property specified * @blurb: description of the property specified @@ -2090,7 +2090,7 @@ g_param_spec_flags (const gchar *name, } /** - * g_param_spec_float: + * g_param_spec_float: (skip) * @name: canonical name of the property specified * @nick: nick name for the property specified * @blurb: description of the property specified @@ -2132,7 +2132,7 @@ g_param_spec_float (const gchar *name, } /** - * g_param_spec_double: + * g_param_spec_double: (skip) * @name: canonical name of the property specified * @nick: nick name for the property specified * @blurb: description of the property specified @@ -2175,7 +2175,7 @@ g_param_spec_double (const gchar *name, } /** - * g_param_spec_string: + * g_param_spec_string: (skip) * @name: canonical name of the property specified * @nick: nick name for the property specified * @blurb: description of the property specified @@ -2207,7 +2207,7 @@ g_param_spec_string (const gchar *name, } /** - * g_param_spec_param: + * g_param_spec_param: (skip) * @name: canonical name of the property specified * @nick: nick name for the property specified * @blurb: description of the property specified @@ -2243,7 +2243,7 @@ g_param_spec_param (const gchar *name, } /** - * g_param_spec_boxed: + * g_param_spec_boxed: (skip) * @name: canonical name of the property specified * @nick: nick name for the property specified * @blurb: description of the property specified @@ -2280,7 +2280,7 @@ g_param_spec_boxed (const gchar *name, } /** - * g_param_spec_pointer: + * g_param_spec_pointer: (skip) * @name: canonical name of the property specified * @nick: nick name for the property specified * @blurb: description of the property specified @@ -2309,7 +2309,7 @@ g_param_spec_pointer (const gchar *name, } /** - * g_param_spec_gtype: + * g_param_spec_gtype: (skip) * @name: canonical name of the property specified * @nick: nick name for the property specified * @blurb: description of the property specified @@ -2347,7 +2347,7 @@ g_param_spec_gtype (const gchar *name, } /** - * g_param_spec_value_array: + * g_param_spec_value_array: (skip) * @name: canonical name of the property specified * @nick: nick name for the property specified * @blurb: description of the property specified @@ -2391,7 +2391,7 @@ g_param_spec_value_array (const gchar *name, } /** - * g_param_spec_object: + * g_param_spec_object: (skip) * @name: canonical name of the property specified * @nick: nick name for the property specified * @blurb: description of the property specified @@ -2427,7 +2427,7 @@ g_param_spec_object (const gchar *name, } /** - * g_param_spec_override: + * g_param_spec_override: (skip) * @name: the name of the property. * @overridden: The property that is being overridden * @@ -2470,7 +2470,7 @@ g_param_spec_override (const gchar *name, } /** - * g_param_spec_variant: + * g_param_spec_variant: (skip) * @name: canonical name of the property specified * @nick: nick name for the property specified * @blurb: description of the property specified diff --git a/gobject/gtype.c b/gobject/gtype.c index 60f850c61..dac5e8f09 100644 --- a/gobject/gtype.c +++ b/gobject/gtype.c @@ -1606,14 +1606,16 @@ g_type_interface_add_prerequisite (GType interface_type, /** * g_type_interface_prerequisites: * @interface_type: an interface type - * @n_prerequisites: location to return the number of prerequisites, or %NULL + * @n_prerequisites: (out) (allow-none): location to return the number + * of prerequisites, or %NULL * * Returns the prerequisites of an interfaces type. * * Since: 2.2 * - * Returns: a newly-allocated zero-terminated array of #GType containing - * the prerequisites of @interface_type + * Returns: (array length=n_prerequisites) (transfer full): a + * newly-allocated zero-terminated array of #GType containing + * the prerequisites of @interface_type */ GType* g_type_interface_prerequisites (GType interface_type, @@ -1818,7 +1820,7 @@ instance_real_class_get (gpointer instance) } /** - * g_type_create_instance: + * g_type_create_instance: (skip) * @type: An instantiatable type to create an instance for. * * Creates and initializes an instance of @type if @type is valid and @@ -2429,7 +2431,7 @@ type_data_unref_U (TypeNode *node, } /** - * g_type_add_class_cache_func: + * g_type_add_class_cache_func: (skip) * @cache_data: data to be passed to @cache_func * @cache_func: a #GTypeClassCacheFunc * @@ -2458,7 +2460,7 @@ g_type_add_class_cache_func (gpointer cache_data, } /** - * g_type_remove_class_cache_func: + * g_type_remove_class_cache_func: (skip) * @cache_data: data that was given when adding @cache_func * @cache_func: a #GTypeClassCacheFunc * @@ -2497,7 +2499,7 @@ g_type_remove_class_cache_func (gpointer cache_data, /** - * g_type_add_interface_check: + * g_type_add_interface_check: (skip) * @check_data: data to pass to @check_func * @check_func: function to be called after each interface * is initialized. @@ -2531,7 +2533,7 @@ g_type_add_interface_check (gpointer check_data, } /** - * g_type_remove_interface_check: + * g_type_remove_interface_check: (skip) * @check_data: callback data passed to g_type_add_interface_check() * @check_func: callback function passed to g_type_add_interface_check() * @@ -2640,7 +2642,7 @@ g_type_register_fundamental (GType type_id, } /** - * g_type_register_static_simple: + * g_type_register_static_simple: (skip) * @parent_type: Type from which this type will be derived. * @type_name: 0-terminated string used as the name of the new type. * @class_size: Size of the class structure (see #GTypeInfo) @@ -2865,7 +2867,8 @@ g_type_add_interface_dynamic (GType instance_type, * @type. This function will demand-create the class if it doesn't * exist already. * - * Returns: The #GTypeClass structure for the given type ID. + * Returns: (type GObject.TypeClass) (transfer none): The #GTypeClass + * structure for the given type ID. */ gpointer g_type_class_ref (GType type) @@ -2924,7 +2927,8 @@ g_type_class_ref (GType type) /** * g_type_class_unref: - * @g_class: The #GTypeClass structure to unreference. + * @g_class: (type GObject.TypeClass): The #GTypeClass structure to + * unreference. * * Decrements the reference count of the class structure being passed in. * Once the last reference count of a class has been released, classes @@ -2948,8 +2952,9 @@ g_type_class_unref (gpointer g_class) } /** - * g_type_class_unref_uncached: - * @g_class: The #GTypeClass structure to unreference. + * g_type_class_unref_uncached: (skip) + * @g_class: (type GObject.TypeClass): The #GTypeClass structure to + * unreference. * * A variant of g_type_class_unref() for use in #GTypeClassCacheFunc * implementations. It unreferences a class without consulting the chain @@ -2981,8 +2986,9 @@ g_type_class_unref_uncached (gpointer g_class) * may return %NULL if the class of the type passed in does not currently * exist (hasn't been referenced before). * - * Returns: The #GTypeClass structure for the given type ID or %NULL - * if the class does not currently exist. + * Returns: (type GObject.TypeClass) (transfer none): The #GTypeClass + * structure for the given type ID or %NULL if the class does not + * currently exist. */ gpointer g_type_class_peek (GType type) @@ -3009,8 +3015,9 @@ g_type_class_peek (GType type) * static types. * * Since: 2.4 - * Returns: The #GTypeClass structure for the given type ID or %NULL - * if the class does not currently exist or is dynamically loaded. + * Returns: (type GObject.TypeClass) (transfer none): The #GTypeClass + * structure for the given type ID or %NULL if the class does not + * currently exist or is dynamically loaded. */ gpointer g_type_class_peek_static (GType type) @@ -3032,7 +3039,8 @@ g_type_class_peek_static (GType type) /** * g_type_class_peek_parent: - * @g_class: The #GTypeClass structure to retrieve the parent class for. + * @g_class: (type GObject.TypeClass): The #GTypeClass structure to + * retrieve the parent class for. * * This is a convenience function often needed in class initializers. * It returns the class structure of the immediate parent type of the @@ -3045,7 +3053,8 @@ g_type_class_peek_static (GType type) * g_type_class_peek (g_type_parent (G_TYPE_FROM_CLASS (g_class))); * * - * Returns: The parent class of @g_class. + * Returns: (type GObject.TypeClass) (transfer none): The parent class + * of @g_class. */ gpointer g_type_class_peek_parent (gpointer g_class) @@ -3073,14 +3082,15 @@ g_type_class_peek_parent (gpointer g_class) /** * g_type_interface_peek: - * @instance_class: A #GTypeClass structure. + * @instance_class: (type GObject.TypeClass): A #GTypeClass structure. * @iface_type: An interface ID which this class conforms to. * * Returns the #GTypeInterface structure of an interface to which the * passed in class conforms. * - * Returns: The GTypeInterface structure of iface_type if implemented - * by @instance_class, %NULL otherwise + * Returns: (type GObject.TypeInterface) (transfer none): The GTypeInterface + * structure of iface_type if implemented by @instance_class, %NULL + * otherwise */ gpointer g_type_interface_peek (gpointer instance_class, @@ -3105,16 +3115,17 @@ g_type_interface_peek (gpointer instance_class, /** * g_type_interface_peek_parent: - * @g_iface: A #GTypeInterface structure. + * @g_iface: (type GObject.TypeInterface): A #GTypeInterface structure. * * Returns the corresponding #GTypeInterface structure of the parent type * of the instance type to which @g_iface belongs. This is useful when * deriving the implementation of an interface from the parent type and * then possibly overriding some methods. * - * Returns: The corresponding #GTypeInterface structure of the parent - * type of the instance type to which @g_iface belongs, or - * %NULL if the parent type doesn't conform to the interface. + * Returns: (transfer none) (type GObject.TypeInterface): The + * corresponding #GTypeInterface structure of the parent type of the + * instance type to which @g_iface belongs, or %NULL if the parent + * type doesn't conform to the interface. */ gpointer g_type_interface_peek_parent (gpointer g_iface) @@ -3156,9 +3167,9 @@ g_type_interface_peek_parent (gpointer g_iface) * * Since: 2.4 * - * Returns: the default vtable for the interface; call - * g_type_default_interface_unref() when you are done using - * the interface. + * Returns: (type GObject.TypeInterface) (transfer none): the default + * vtable for the interface; call g_type_default_interface_unref() + * when you are done using the interface. */ gpointer g_type_default_interface_ref (GType g_type) @@ -3206,8 +3217,9 @@ g_type_default_interface_ref (GType g_type) * * Since: 2.4 * - * Returns: the default vtable for the interface, or %NULL - * if the type is not currently in use. + * Returns: (type GObject.TypeInterface) (transfer none): the default + * vtable for the interface, or %NULL if the type is not currently in + * use. */ gpointer g_type_default_interface_peek (GType g_type) @@ -3226,8 +3238,9 @@ g_type_default_interface_peek (GType g_type) /** * g_type_default_interface_unref: - * @g_iface: the default vtable structure for a interface, as - * returned by g_type_default_interface_ref() + * @g_iface: (type GObject.TypeInterface): the default vtable + * structure for a interface, as returned by + * g_type_default_interface_ref() * * Decrements the reference count for the type corresponding to the * interface default vtable @g_iface. If the type is dynamic, then @@ -3490,12 +3503,14 @@ g_type_is_a (GType type, /** * g_type_children: * @type: The parent type. - * @n_children: Optional #guint pointer to contain the number of child types. + * @n_children: (out) (allow-none): Optional #guint pointer to contain + * the number of child types. * * Return a newly allocated and 0-terminated array of type IDs, listing the * child types of @type. The return value has to be g_free()ed after use. * - * Returns: Newly allocated and 0-terminated array of child types. + * Returns: (array length=n_children) (transfer full): Newly allocated + * and 0-terminated array of child types. */ GType* g_type_children (GType type, @@ -3531,14 +3546,15 @@ g_type_children (GType type, /** * g_type_interfaces: * @type: The type to list interface types for. - * @n_interfaces: Optional #guint pointer to contain the number of - * interface types. + * @n_interfaces: (out) (allow-none): Optional #guint pointer to + * contain the number of interface types. * * Return a newly allocated and 0-terminated array of type IDs, listing the * interface types that @type conforms to. The return value has to be * g_free()ed after use. * - * Returns: Newly allocated and 0-terminated array of interface types. + * Returns: (array length=n_interfaces) (transfer full): Newly + * allocated and 0-terminated array of interface types. */ GType* g_type_interfaces (GType type, @@ -3636,7 +3652,7 @@ type_get_qdata_L (TypeNode *node, * Obtains data which has previously been attached to @type * with g_type_set_qdata(). * - * Returns: the data, or %NULL if no data was found + * Returns: (transfer none): the data, or %NULL if no data was found */ gpointer g_type_get_qdata (GType type, @@ -3742,8 +3758,8 @@ type_add_flags_W (TypeNode *node, /** * g_type_query: * @type: the #GType value of a static, classed type. - * @query: A user provided structure that is filled in with constant values - * upon success. + * @query: (out caller-allocates): A user provided structure that is + * filled in with constant values upon success. * * Queries the type system for information about a specific type. * This function will fill in a user-provided structure to hold @@ -3824,8 +3840,8 @@ g_type_test_flags (GType type, * Returns the #GTypePlugin structure for @type or * %NULL if @type does not have a #GTypePlugin structure. * - * Returns: The corresponding plugin if @type is a dynamic type, - * %NULL otherwise. + * Returns: (transfer none): The corresponding plugin if @type is a + * dynamic type, %NULL otherwise. */ GTypePlugin* g_type_get_plugin (GType type) @@ -3847,8 +3863,8 @@ g_type_get_plugin (GType type) * @interface_type has not been added to @instance_type or does not * have a #GTypePlugin structure. See g_type_add_interface_dynamic(). * - * Returns: the #GTypePlugin for the dynamic interface @interface_type - * of @instance_type. + * Returns: (transfer none): the #GTypePlugin for the dynamic + * interface @interface_type of @instance_type. */ GTypePlugin* g_type_interface_get_plugin (GType instance_type, @@ -4123,7 +4139,7 @@ g_type_check_value_holds (GValue *value, } /** - * g_type_value_table_peek: + * g_type_value_table_peek: (skip) * @type: A #GType value. * * Returns the location of the #GTypeValueTable associated with @type. diff --git a/gobject/gvalue.c b/gobject/gvalue.c index 9247d4c9b..573969cee 100644 --- a/gobject/gvalue.c +++ b/gobject/gvalue.c @@ -159,7 +159,7 @@ value_meminit (GValue *value, * * Initializes @value with the default value of @type. * - * Returns: the #GValue structure that has been passed in + * Returns: (transfer none): the #GValue structure that has been passed in */ GValue* g_value_init (GValue *value, @@ -301,11 +301,10 @@ g_value_fits_pointer (const GValue *value) * g_value_peek_pointer: * @value: An initialized #GValue structure. * - * Return the value contents as pointer. This function asserts that - * g_value_fits_pointer() returned %TRUE for the passed in value. - * This is an internal function introduced mainly for C marshallers. - * - * Returns: %TRUE if @value will fit inside a pointer value. + * Returns: (transfer none): the value contents as pointer. This + * function asserts that g_value_fits_pointer() returned %TRUE for the + * passed in value. This is an internal function introduced mainly + * for C marshallers. */ gpointer g_value_peek_pointer (const GValue *value) @@ -424,7 +423,7 @@ transform_entries_cmp (gconstpointer bsearch_node1, } /** - * g_value_register_transform_func: + * g_value_register_transform_func: (skip) * @src_type: Source type. * @dest_type: Target type. * @transform_func: a function which transforms values of type @src_type diff --git a/gobject/gvaluearray.c b/gobject/gvaluearray.c index 3bc6787f8..e2a752e43 100644 --- a/gobject/gvaluearray.c +++ b/gobject/gvaluearray.c @@ -58,7 +58,7 @@ * * Return a pointer to the value at @index_ containd in @value_array. * - * Returns: pointer to a value at @index_ in @value_array + * Returns: (transfer none): pointer to a value at @index_ in @value_array */ GValue* g_value_array_get_nth (GValueArray *value_array, @@ -158,7 +158,7 @@ g_value_array_free (GValueArray *value_array) * Construct an exact copy of a #GValueArray by duplicating all its * contents. * - * Returns: Newly allocated copy of #GValueArray + * Returns: (transfer full): Newly allocated copy of #GValueArray */ GValueArray* g_value_array_copy (const GValueArray *value_array) @@ -187,13 +187,13 @@ g_value_array_copy (const GValueArray *value_array) /** * g_value_array_prepend: * @value_array: #GValueArray to add an element to - * @value: #GValue to copy into #GValueArray, or %NULL + * @value: (allow-none): #GValue to copy into #GValueArray, or %NULL * * Insert a copy of @value as first element of @value_array. If @value is * %NULL, an uninitialized value is prepended. * * - * Returns: the #GValueArray passed in as @value_array + * Returns: (transfer none): the #GValueArray passed in as @value_array */ GValueArray* g_value_array_prepend (GValueArray *value_array, @@ -207,12 +207,12 @@ g_value_array_prepend (GValueArray *value_array, /** * g_value_array_append: * @value_array: #GValueArray to add an element to - * @value: #GValue to copy into #GValueArray, or %NULL + * @value: (allow-none): #GValue to copy into #GValueArray, or %NULL * * Insert a copy of @value as last element of @value_array. If @value is * %NULL, an uninitialized value is appended. * - * Returns: the #GValueArray passed in as @value_array + * Returns: (transfer none): the #GValueArray passed in as @value_array */ GValueArray* g_value_array_append (GValueArray *value_array, @@ -227,12 +227,12 @@ g_value_array_append (GValueArray *value_array, * g_value_array_insert: * @value_array: #GValueArray to add an element to * @index_: insertion position, must be <= value_array->n_values - * @value: #GValue to copy into #GValueArray, or %NULL + * @value: (allow-none): #GValue to copy into #GValueArray, or %NULL * * Insert a copy of @value at specified position into @value_array. If @value * is %NULL, an uninitialized value is inserted. * - * Returns: the #GValueArray passed in as @value_array + * Returns: (transfer none): the #GValueArray passed in as @value_array */ GValueArray* g_value_array_insert (GValueArray *value_array, @@ -265,7 +265,7 @@ g_value_array_insert (GValueArray *value_array, * * Remove the value at position @index_ from @value_array. * - * Returns: the #GValueArray passed in as @value_array + * Returns: (transfer none): the #GValueArray passed in as @value_array */ GValueArray* g_value_array_remove (GValueArray *value_array, @@ -290,14 +290,14 @@ g_value_array_remove (GValueArray *value_array, /** * g_value_array_sort: * @value_array: #GValueArray to sort - * @compare_func: function to compare elements + * @compare_func: (scope call): function to compare elements * * Sort @value_array using @compare_func to compare the elements accoring to * the semantics of #GCompareFunc. * * The current implementation uses Quick-Sort as sorting algorithm. * - * Returns: the #GValueArray passed in as @value_array + * Returns: (transfer none): the #GValueArray passed in as @value_array */ GValueArray* g_value_array_sort (GValueArray *value_array, @@ -316,15 +316,16 @@ g_value_array_sort (GValueArray *value_array, /** * g_value_array_sort_with_data: * @value_array: #GValueArray to sort - * @compare_func: function to compare elements - * @user_data: extra data argument provided for @compare_func + * @compare_func: (scope call): function to compare elements + * @user_data: (closure): extra data argument provided for @compare_func * * Sort @value_array using @compare_func to compare the elements accoring * to the semantics of #GCompareDataFunc. * * The current implementation uses Quick-Sort as sorting algorithm. * - * Returns: the #GValueArray passed in as @value_array + * Rename to: g_value_array_sort + * Returns: (transfer none): the #GValueArray passed in as @value_array */ GValueArray* g_value_array_sort_with_data (GValueArray *value_array, diff --git a/gobject/gvaluetypes.c b/gobject/gvaluetypes.c index aa22b2d51..78c7266d4 100644 --- a/gobject/gvaluetypes.c +++ b/gobject/gvaluetypes.c @@ -1119,7 +1119,7 @@ g_value_set_pointer (GValue *value, * * Get the contents of a pointer #GValue. * - * Returns: pointer contents of @value + * Returns: (transfer none): pointer contents of @value */ gpointer g_value_get_pointer (const GValue *value) diff --git a/gobject/tests/Makefile.am b/gobject/tests/Makefile.am index eec8c5e8c..845216422 100644 --- a/gobject/tests/Makefile.am +++ b/gobject/tests/Makefile.am @@ -3,15 +3,7 @@ include $(top_srcdir)/Makefile.decl INCLUDES = -g $(gobject_INCLUDES) $(GLIB_DEBUG_FLAGS) noinst_PROGRAMS = $(TEST_PROGS) -libgobject_LDADD = ../libgobject-2.0.la $(top_builddir)/gthread/libgthread-2.0.la $(top_builddir)/glib/libglib-2.0.la +LDADD = ../libgobject-2.0.la $(top_builddir)/gthread/libgthread-2.0.la $(top_builddir)/glib/libglib-2.0.la -TEST_PROGS += threadtests dynamictests binding properties reference -threadtests_SOURCES = threadtests.c -threadtests_LDADD = $(libgobject_LDADD) -dynamictests_SOURCES = dynamictests.c -dynamictests_LDADD = $(libgobject_LDADD) -binding_SOURCES = binding.c -binding_LDADD = $(libgobject_LDADD) -properties_SOURCES = properties.c -properties_LDADD = $(libgobject_LDADD) -reference_LDADD = $(libgobject_LDADD) +TEST_PROGS += threadtests dynamictests binding properties reference ifaceproperties +ifaceproperties_SOURCES = ifaceproperties.c testcommon.h diff --git a/tests/gobject/ifaceproperties.c b/gobject/tests/ifaceproperties.c similarity index 56% rename from tests/gobject/ifaceproperties.c rename to gobject/tests/ifaceproperties.c index 3b758ccbc..14762fb6e 100644 --- a/tests/gobject/ifaceproperties.c +++ b/gobject/tests/ifaceproperties.c @@ -17,13 +17,7 @@ * Boston, MA 02111-1307, USA. */ -#undef G_LOG_DOMAIN -#define G_LOG_DOMAIN "TestIfaceProperties" - -#undef G_DISABLE_ASSERT -#undef G_DISABLE_CHECKS -#undef G_DISABLE_CAST_CHECKS - +#include #include #include @@ -62,7 +56,7 @@ enum { * BaseObject, a parent class for DerivedObject */ #define BASE_TYPE_OBJECT (base_object_get_type ()) -#define BASE_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), BASE_TYPE_OBJECT, BaseObject)) +#define BASE_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), BASE_TYPE_OBJECT, BaseObject)) typedef struct _BaseObject BaseObject; typedef struct _BaseObjectClass BaseObjectClass; @@ -122,30 +116,30 @@ static void test_iface_default_init (TestIfaceClass *iface_vtable) { inherited_spec1 = iface_spec1 = g_param_spec_int ("prop1", - "Prop1", - "Property 1", - G_MININT, /* min */ - 0xFFFF, /* max */ - 42, /* default */ - G_PARAM_READWRITE | G_PARAM_CONSTRUCT); + "Prop1", + "Property 1", + G_MININT, /* min */ + 0xFFFF, /* max */ + 42, /* default */ + G_PARAM_READWRITE | G_PARAM_CONSTRUCT); g_object_interface_install_property (iface_vtable, iface_spec1); iface_spec2 = g_param_spec_int ("prop2", - "Prop2", - "Property 2", - G_MININT, /* min */ - G_MAXINT, /* max */ - 0, /* default */ - G_PARAM_WRITABLE); + "Prop2", + "Property 2", + G_MININT, /* min */ + G_MAXINT, /* max */ + 0, /* default */ + G_PARAM_WRITABLE); g_object_interface_install_property (iface_vtable, iface_spec2); inherited_spec3 = iface_spec3 = g_param_spec_int ("prop3", - "Prop3", - "Property 3", - G_MININT, /* min */ - G_MAXINT, /* max */ - 0, /* default */ - G_PARAM_READWRITE); + "Prop3", + "Property 3", + G_MININT, /* min */ + G_MAXINT, /* max */ + 0, /* default */ + G_PARAM_READWRITE); g_object_interface_install_property (iface_vtable, iface_spec3); } @@ -153,9 +147,9 @@ static DEFINE_IFACE (TestIface, test_iface, NULL, test_iface_default_init) static GObject* -base_object_constructor (GType type, - guint n_construct_properties, - GObjectConstructParam *construct_properties) +base_object_constructor (GType type, + guint n_construct_properties, + GObjectConstructParam *construct_properties) { /* The constructor is the one place where a GParamSpecOverride is visible * to the outside world, so we do a bunch of checks here @@ -184,7 +178,7 @@ base_object_constructor (GType type, */ g_value_init (&value1, G_TYPE_INT); g_value_init (&value2, G_TYPE_INT); - + g_param_value_set_default (pspec, &value1); g_assert (g_value_get_int (&value1) == 42); @@ -193,29 +187,29 @@ base_object_constructor (GType type, g_assert (g_param_value_validate (pspec, &value1)); g_assert (g_value_get_int (&value1) == 0xFFFF); g_assert (!g_param_value_validate (pspec, &value1)); - + g_value_reset (&value1); g_value_set_int (&value1, 1); g_value_set_int (&value2, 2); g_assert (g_param_values_cmp (pspec, &value1, &value2) < 0); g_assert (g_param_values_cmp (pspec, &value2, &value1) > 0); - + g_value_unset (&value1); g_value_unset (&value2); return base_parent_class->constructor (type, - n_construct_properties, - construct_properties); + n_construct_properties, + construct_properties); } static void base_object_set_property (GObject *object, - guint prop_id, - const GValue *value, - GParamSpec *pspec) + guint prop_id, + const GValue *value, + GParamSpec *pspec) { BaseObject *base_object = BASE_OBJECT (object); - + switch (prop_id) { case BASE_PROP1: @@ -239,10 +233,10 @@ base_object_set_property (GObject *object, } static void -base_object_get_property (GObject *object, - guint prop_id, - GValue *value, - GParamSpec *pspec) +base_object_get_property (GObject *object, + guint prop_id, + GValue *value, + GParamSpec *pspec) { BaseObject *base_object = BASE_OBJECT (object); @@ -270,15 +264,15 @@ base_object_get_property (GObject *object, static void base_object_notify (GObject *object, - GParamSpec *pspec) + GParamSpec *pspec) { /* The property passed to notify is the redirect target, not the * GParamSpecOverride */ g_assert (pspec == inherited_spec1 || - pspec == inherited_spec2 || - pspec == inherited_spec3 || - pspec == inherited_spec4); + pspec == inherited_spec2 || + pspec == inherited_spec3 || + pspec == inherited_spec4); } static void @@ -300,23 +294,23 @@ base_object_class_init (BaseObjectClass *class) * can make the flags less restrictive */ inherited_spec2 = g_param_spec_int ("prop2", - "Prop2", - "Property 2", - G_MININT, /* min */ - G_MAXINT, /* max */ - 0, /* default */ - G_PARAM_READWRITE); + "Prop2", + "Property 2", + G_MININT, /* min */ + G_MAXINT, /* max */ + 0, /* default */ + G_PARAM_READWRITE); g_object_class_install_property (object_class, BASE_PROP2, inherited_spec2); g_object_class_override_property (object_class, BASE_PROP3, "prop3"); - + inherited_spec4 = g_param_spec_int ("prop4", - "Prop4", - "Property 4", - G_MININT, /* min */ - G_MAXINT, /* max */ - 0, /* default */ - G_PARAM_READWRITE); + "Prop4", + "Property 4", + G_MININT, /* min */ + G_MAXINT, /* max */ + 0, /* default */ + G_PARAM_READWRITE); g_object_class_install_property (object_class, BASE_PROP4, inherited_spec4); } @@ -327,15 +321,15 @@ base_object_init (BaseObject *base_object) } static DEFINE_TYPE_FULL (BaseObject, base_object, - base_object_class_init, NULL, base_object_init, - G_TYPE_OBJECT, - INTERFACE (NULL, TEST_TYPE_IFACE)) + base_object_class_init, NULL, base_object_init, + G_TYPE_OBJECT, + INTERFACE (NULL, TEST_TYPE_IFACE)) static void derived_object_set_property (GObject *object, - guint prop_id, - const GValue *value, - GParamSpec *pspec) + guint prop_id, + const GValue *value, + GParamSpec *pspec) { BaseObject *base_object = BASE_OBJECT (object); @@ -356,10 +350,10 @@ derived_object_set_property (GObject *object, } static void -derived_object_get_property (GObject *object, - guint prop_id, - GValue *value, - GParamSpec *pspec) +derived_object_get_property (GObject *object, + guint prop_id, + GValue *value, + GParamSpec *pspec) { BaseObject *base_object = BASE_OBJECT (object); @@ -395,15 +389,14 @@ derived_object_class_init (DerivedObjectClass *class) } static DEFINE_TYPE (DerivedObject, derived_object, - derived_object_class_init, NULL, NULL, - BASE_TYPE_OBJECT) + derived_object_class_init, NULL, NULL, + BASE_TYPE_OBJECT) -/* Helper function for testing ...list_properties() - */ +/* Helper function for testing ...list_properties() */ static void assert_in_properties (GParamSpec *param_spec, - GParamSpec **properties, - gint n_properties) + GParamSpec **properties, + gint n_properties) { gint i; gboolean found = FALSE; @@ -411,53 +404,50 @@ assert_in_properties (GParamSpec *param_spec, for (i = 0; i < n_properties; i++) { if (properties[i] == param_spec) - found = TRUE; + found = TRUE; } g_assert (found); } -int -main (gint argc, - gchar *argv[]) +/* Test setting and getting the properties */ +static void +test_set (void) { BaseObject *object; - GObjectClass *object_class; - TestIfaceClass *iface_vtable; - GParamSpec **properties; - guint n_properties; - gint val1, val2, val3, val4; - - g_log_set_always_fatal (g_log_set_always_fatal (G_LOG_FATAL_MASK) | - G_LOG_LEVEL_WARNING | - G_LOG_LEVEL_CRITICAL); - g_type_init (); object = g_object_new (DERIVED_TYPE_OBJECT, NULL); - /* Test setting and getting the properties - */ g_object_set (object, - "prop1", 0x0101, - "prop2", 0x0202, - "prop3", 0x0303, - "prop4", 0x0404, - NULL); + "prop1", 0x0101, + "prop2", 0x0202, + "prop3", 0x0303, + "prop4", 0x0404, + NULL); g_object_get (object, - "prop1", &val1, - "prop2", &val2, - "prop3", &val3, - "prop4", &val4, - NULL); + "prop1", &val1, + "prop2", &val2, + "prop3", &val3, + "prop4", &val4, + NULL); g_assert (val1 == 0x0101); g_assert (val2 == 0x0202); g_assert (val3 == 0x0303); g_assert (val4 == 0x0404); - /* Test that the right spec is passed on explicit notifications - */ + g_object_unref (object); +} + +/* Test that the right spec is passed on explicit notifications */ +static void +test_notify (void) +{ + BaseObject *object; + + object = g_object_new (DERIVED_TYPE_OBJECT, NULL); + g_object_freeze_notify (G_OBJECT (object)); g_object_notify (G_OBJECT (object), "prop1"); g_object_notify (G_OBJECT (object), "prop2"); @@ -465,17 +455,33 @@ main (gint argc, g_object_notify (G_OBJECT (object), "prop4"); g_object_thaw_notify (G_OBJECT (object)); - /* Test g_object_class_find_property() for overridden properties - */ - object_class = G_OBJECT_GET_CLASS (object); + g_object_unref (object); +} + +/* Test g_object_class_find_property() for overridden properties */ +static void +test_find_overridden (void) +{ + GObjectClass *object_class; + + object_class = g_type_class_peek (DERIVED_TYPE_OBJECT); g_assert (g_object_class_find_property (object_class, "prop1") == inherited_spec1); g_assert (g_object_class_find_property (object_class, "prop2") == inherited_spec2); g_assert (g_object_class_find_property (object_class, "prop3") == inherited_spec3); g_assert (g_object_class_find_property (object_class, "prop4") == inherited_spec4); +} + +/* Test g_object_class_list_properties() for overridden properties */ +static void +test_list_overridden (void) +{ + GObjectClass *object_class; + GParamSpec **properties; + guint n_properties; + + object_class = g_type_class_peek (DERIVED_TYPE_OBJECT); - /* Test g_object_class_list_properties() for overridden properties - */ properties = g_object_class_list_properties (object_class, &n_properties); g_assert (n_properties == 4); assert_in_properties (inherited_spec1, properties, n_properties); @@ -483,25 +489,160 @@ main (gint argc, assert_in_properties (inherited_spec3, properties, n_properties); assert_in_properties (inherited_spec4, properties, n_properties); g_free (properties); +} - /* Test g_object_interface_find_property() - */ - iface_vtable = g_type_default_interface_peek (TEST_TYPE_IFACE); +/* Test g_object_interface_find_property() */ +static void +test_find_interface (void) +{ + TestIfaceClass *iface; - g_assert (g_object_interface_find_property (iface_vtable, "prop1") == iface_spec1); - g_assert (g_object_interface_find_property (iface_vtable, "prop2") == iface_spec2); - g_assert (g_object_interface_find_property (iface_vtable, "prop3") == iface_spec3); + iface = g_type_default_interface_peek (TEST_TYPE_IFACE); - /* Test g_object_interface_list_properties() - */ - properties = g_object_interface_list_properties (iface_vtable, &n_properties); + g_assert (g_object_interface_find_property (iface, "prop1") == iface_spec1); + g_assert (g_object_interface_find_property (iface, "prop2") == iface_spec2); + g_assert (g_object_interface_find_property (iface, "prop3") == iface_spec3); +} + +/* Test g_object_interface_list_properties() */ +static void +test_list_interface (void) +{ + TestIfaceClass *iface; + GParamSpec **properties; + guint n_properties; + + iface = g_type_default_interface_peek (TEST_TYPE_IFACE); + + properties = g_object_interface_list_properties (iface, &n_properties); g_assert (n_properties == 3); assert_in_properties (iface_spec1, properties, n_properties); assert_in_properties (iface_spec2, properties, n_properties); assert_in_properties (iface_spec3, properties, n_properties); g_free (properties); - - g_object_unref (object); - - return 0; +} + +/* Base2Object, which implements the interface but fails + * to override some of its properties + */ +#define BASE2_TYPE_OBJECT (base2_object_get_type ()) +#define BASE2_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), BASE2_TYPE_OBJECT, Base2Object)) + +typedef struct _Base2Object Base2Object; +typedef struct _Base2ObjectClass Base2ObjectClass; + +static void +base2_object_test_iface_init (TestIfaceClass *iface) +{ +} + +enum { + BASE2_PROP_0, + BASE2_PROP1, + BASE2_PROP2 +}; + +struct _Base2Object +{ + GObject parent_instance; +}; + +struct _Base2ObjectClass +{ + GObjectClass parent_class; +}; + +G_DEFINE_TYPE_WITH_CODE (Base2Object, base2_object, G_TYPE_OBJECT, + G_IMPLEMENT_INTERFACE (TEST_TYPE_IFACE, + base2_object_test_iface_init)) + +static void +base2_object_get_property (GObject *object, + guint prop_id, + GValue *value, + GParamSpec *pspec) +{ + switch (prop_id) + { + case BASE2_PROP1: + g_value_set_int (value, 0); + break; + case BASE2_PROP2: + g_value_set_int (value, 0); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +static void +base2_object_set_property (GObject *object, + guint prop_id, + const GValue *value, + GParamSpec *pspec) +{ + switch (prop_id) + { + case BASE2_PROP1: + break; + case BASE2_PROP2: + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +static void +base2_object_class_init (Base2ObjectClass *class) +{ + GObjectClass *object_class = G_OBJECT_CLASS (class); + + object_class->set_property = base2_object_set_property; + object_class->get_property = base2_object_get_property; + + g_object_class_override_property (object_class, BASE2_PROP1, "prop1"); + g_object_class_override_property (object_class, BASE2_PROP2, "prop2"); +} + +static void +base2_object_init (Base2Object *object) +{ +} + +static void +test_not_overridden (void) +{ + g_test_bug ("637738"); + + if (g_test_trap_fork (0, G_TEST_TRAP_SILENCE_STDOUT|G_TEST_TRAP_SILENCE_STDERR)) + { + Base2Object *object; + + object = g_object_new (BASE2_TYPE_OBJECT, NULL); + g_object_unref (object); + exit (0); + } + g_test_trap_assert_failed (); + g_test_trap_assert_stderr ("*Base2Object doesn't implement property 'prop3' from interface 'TestIface'*"); +} + +int +main (int argc, char *argv[]) +{ + g_type_init (); + + g_test_init (&argc, &argv, NULL); + g_test_bug_base ("http://bugzilla.gnome.org/"); + + g_test_add_func ("/interface/properties/set", test_set); + g_test_add_func ("/interface/properties/notify", test_notify); + g_test_add_func ("/interface/properties/find-overridden", test_find_overridden); + g_test_add_func ("/interface/properties/list-overridden", test_list_overridden); + g_test_add_func ("/interface/properties/find-interface", test_find_interface); + g_test_add_func ("/interface/properties/list-interface", test_list_interface); + g_test_add_func ("/interface/properties/not-overridden", test_not_overridden); + + return g_test_run (); } diff --git a/gobject/tests/testcommon.h b/gobject/tests/testcommon.h new file mode 100644 index 000000000..7bfef05c8 --- /dev/null +++ b/gobject/tests/testcommon.h @@ -0,0 +1,100 @@ +/* GObject - GLib Type, Object, Parameter and Signal Library + * Copyright (C) 2003 Red Hat, Inc. + * + * 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 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, write to the + * Free Software Foundation, Inc., 59 Temple Place, Suite 330, + * Boston, MA 02111-1307, USA. + */ + +#ifndef __TEST_COMMON_H__ +#define __TEST_COMMON_H__ + +G_BEGIN_DECLS + +#define DEFINE_TYPE_FULL(name, prefix, \ + class_init, base_init, instance_init, \ + parent_type, interface_decl) \ +GType \ +prefix ## _get_type (void) \ +{ \ + static GType object_type = 0; \ + \ + if (!object_type) \ + { \ + static const GTypeInfo object_info = \ + { \ + sizeof (name ## Class), \ + (GBaseInitFunc) base_init, \ + (GBaseFinalizeFunc) NULL, \ + (GClassInitFunc) class_init, \ + (GClassFinalizeFunc) NULL, \ + NULL, /* class_data */ \ + sizeof (name), \ + 0, /* n_prelocs */ \ + (GInstanceInitFunc) instance_init \ + }; \ + \ + object_type = g_type_register_static (parent_type, \ + # name, \ + &object_info, 0); \ + interface_decl \ + } \ + \ + return object_type; \ +} + +#define DEFINE_TYPE(name, prefix, \ + class_init, base_init, instance_init, \ + parent_type) \ + DEFINE_TYPE_FULL(name, prefix, class_init, base_init, \ + instance_init, parent_type, {}) + +#define DEFINE_IFACE(name, prefix, base_init, dflt_init) \ +GType \ +prefix ## _get_type (void) \ +{ \ + static GType iface_type = 0; \ + \ + if (!iface_type) \ + { \ + static const GTypeInfo iface_info = \ + { \ + sizeof (name ## Class), \ + (GBaseInitFunc) base_init, \ + (GBaseFinalizeFunc) NULL, \ + (GClassInitFunc) dflt_init, \ + }; \ + \ + iface_type = g_type_register_static (G_TYPE_INTERFACE, \ + # name, \ + &iface_info, 0); \ + } \ + return iface_type; \ +} + +#define INTERFACE_FULL(type, init_func, iface_type) \ +{ \ + static GInterfaceInfo const iface = \ + { \ + (GInterfaceInitFunc) init_func, NULL, NULL \ + }; \ + \ + g_type_add_interface_static (type, iface_type, &iface); \ +} +#define INTERFACE(init_func, iface_type) \ + INTERFACE_FULL(object_type, init_func, iface_type) + +G_END_DECLS + +#endif /* __TEST_COMMON_H__ */ diff --git a/gthread/tests/1bit-mutex.c b/gthread/tests/1bit-mutex.c index 6c5d0cd4f..4b405f4bb 100644 --- a/gthread/tests/1bit-mutex.c +++ b/gthread/tests/1bit-mutex.c @@ -26,9 +26,6 @@ */ /* side-step some glib build stuff */ - #ifndef DISABLE_VISIBILITY - #define DISABLE_VISIBILITY - #endif #define GLIB_COMPILATION /* rebuild gbitlock.c without futex support, diff --git a/m4macros/gsettings.m4 b/m4macros/gsettings.m4 index f0ed838fe..429d04ba4 100644 --- a/m4macros/gsettings.m4 +++ b/m4macros/gsettings.m4 @@ -67,7 +67,7 @@ clean-gsettings-schemas: ifdef gsettings_ENUM_NAMESPACE $(gsettings__enum_file): $(gsettings_ENUM_FILES) - $(AM_V_GEN) glib-mkenums --comments '\'''\'' --fhead "" --vhead " <@type@ id='\''$(gsettings_ENUM_NAMESPACE).@EnumName@'\''>" --vprod " " --vtail " " --ftail "" $(gsettings_ENUM_FILES) > [$]@.tmp && mv [$]@.tmp [$]@ + $(AM_V_GEN) glib-mkenums --comments '\'''\'' --fhead "" --vhead " <@type@ id='\''$(gsettings_ENUM_NAMESPACE).@EnumName@'\''>" --vprod " " --vtail " " --ftail "" [$]^ > [$]@.tmp && mv [$]@.tmp [$]@ endif ' _GSETTINGS_SUBST(GSETTINGS_RULES) diff --git a/mkinstalldirs b/mkinstalldirs index d2d5f21b6..4191a45db 100755 --- a/mkinstalldirs +++ b/mkinstalldirs @@ -1,21 +1,36 @@ #! /bin/sh # mkinstalldirs --- make directory hierarchy -# Author: Noah Friedman -# Created: 1993-05-16 -# Public domain +scriptversion=2009-04-28.21; # UTC + +# Original author: Noah Friedman +# Created: 1993-05-16 +# Public domain. +# +# This file is maintained in Automake, please report +# bugs to or send patches to +# . + +nl=' +' +IFS=" "" $nl" errstatus=0 -dirmode="" +dirmode= usage="\ -Usage: mkinstalldirs [-h] [--help] [-m mode] dir ..." +Usage: mkinstalldirs [-h] [--help] [--version] [-m MODE] DIR ... + +Create each directory DIR (with mode MODE, if specified), including all +leading file name components. + +Report bugs to ." # process command line arguments while test $# -gt 0 ; do case $1 in -h | --help | --h*) # -h for help - echo "$usage" 1>&2 - exit 0 + echo "$usage" + exit $? ;; -m) # -m PERM arg shift @@ -23,6 +38,10 @@ while test $# -gt 0 ; do dirmode=$1 shift ;; + --version) + echo "$0 $scriptversion" + exit $? + ;; --) # stop option processing shift break @@ -50,30 +69,58 @@ case $# in 0) exit 0 ;; esac +# Solaris 8's mkdir -p isn't thread-safe. If you mkdir -p a/b and +# mkdir -p a/c at the same time, both will detect that a is missing, +# one will create a, then the other will try to create a and die with +# a "File exists" error. This is a problem when calling mkinstalldirs +# from a parallel make. We use --version in the probe to restrict +# ourselves to GNU mkdir, which is thread-safe. case $dirmode in '') - if mkdir -p -- . 2>/dev/null; then + if mkdir -p --version . >/dev/null 2>&1 && test ! -d ./--version; then echo "mkdir -p -- $*" exec mkdir -p -- "$@" + else + # On NextStep and OpenStep, the `mkdir' command does not + # recognize any option. It will interpret all options as + # directories to create, and then abort because `.' already + # exists. + test -d ./-p && rmdir ./-p + test -d ./--version && rmdir ./--version fi ;; *) - if mkdir -m "$dirmode" -p -- . 2>/dev/null; then + if mkdir -m "$dirmode" -p --version . >/dev/null 2>&1 && + test ! -d ./--version; then echo "mkdir -m $dirmode -p -- $*" exec mkdir -m "$dirmode" -p -- "$@" + else + # Clean up after NextStep and OpenStep mkdir. + for d in ./-m ./-p ./--version "./$dirmode"; + do + test -d $d && rmdir $d + done fi ;; esac for file do - set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'` + case $file in + /*) pathcomp=/ ;; + *) pathcomp= ;; + esac + oIFS=$IFS + IFS=/ + set fnord $file shift + IFS=$oIFS - pathcomp= for d do - pathcomp="$pathcomp$d" + test "x$d" = x && continue + + pathcomp=$pathcomp$d case $pathcomp in -*) pathcomp=./$pathcomp ;; esac @@ -84,21 +131,21 @@ do mkdir "$pathcomp" || lasterr=$? if test ! -d "$pathcomp"; then - errstatus=$lasterr + errstatus=$lasterr else - if test ! -z "$dirmode"; then + if test ! -z "$dirmode"; then echo "chmod $dirmode $pathcomp" - lasterr="" - chmod "$dirmode" "$pathcomp" || lasterr=$? + lasterr= + chmod "$dirmode" "$pathcomp" || lasterr=$? - if test ! -z "$lasterr"; then - errstatus=$lasterr - fi - fi + if test ! -z "$lasterr"; then + errstatus=$lasterr + fi + fi fi fi - pathcomp="$pathcomp/" + pathcomp=$pathcomp/ done done @@ -107,5 +154,9 @@ exit $errstatus # Local Variables: # mode: shell-script # sh-indentation: 2 +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "scriptversion=" +# time-stamp-format: "%:y-%02m-%02d.%02H" +# time-stamp-time-zone: "UTC" +# time-stamp-end: "; # UTC" # End: -# mkinstalldirs ends here diff --git a/po/es.po b/po/es.po index 922fc4426..f5a29829d 100644 --- a/po/es.po +++ b/po/es.po @@ -6,15 +6,16 @@ # Germán Poo Caamaño , 2002. # Francisco Javier F. Serrador , 2004, 2005, 2006. # Jorge González , 2007, 2008, 2009, 2010. +# Daniel Mustieles , 2010. # msgid "" msgstr "" "Project-Id-Version: glib.master\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?" "product=glib&component=general\n" -"POT-Creation-Date: 2010-11-29 15:49+0000\n" -"PO-Revision-Date: 2010-11-30 23:40+0100\n" -"Last-Translator: Jorge González \n" +"POT-Creation-Date: 2010-12-21 12:55+0000\n" +"PO-Revision-Date: 2010-12-22 17:00+0100\n" +"Last-Translator: Daniel Mustieles \n" "Language-Team: Español \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -393,134 +394,134 @@ msgstr "Dom" msgid "Error opening directory '%s': %s" msgstr "Falló al abrir el directorio «%s»: %s" -#: ../glib/gfileutils.c:536 ../glib/gfileutils.c:624 +#: ../glib/gfileutils.c:540 ../glib/gfileutils.c:628 #, c-format msgid "Could not allocate %lu bytes to read file \"%s\"" msgstr "No se pueden asignar %lu bytes para leer el archivo «%s»" -#: ../glib/gfileutils.c:551 +#: ../glib/gfileutils.c:555 #, c-format msgid "Error reading file '%s': %s" msgstr "Falló al leer el archivo «%s»: %s" -#: ../glib/gfileutils.c:565 +#: ../glib/gfileutils.c:569 #, c-format msgid "File \"%s\" is too large" msgstr "El archivo «%s» es demasiado grande" -#: ../glib/gfileutils.c:648 +#: ../glib/gfileutils.c:652 #, c-format msgid "Failed to read from file '%s': %s" msgstr "Falló al leer del archivo «%s»: %s" -#: ../glib/gfileutils.c:699 ../glib/gfileutils.c:786 +#: ../glib/gfileutils.c:703 ../glib/gfileutils.c:790 #, c-format msgid "Failed to open file '%s': %s" msgstr "Falló al abrir el archivo «%s»: %s" -#: ../glib/gfileutils.c:716 ../glib/gmappedfile.c:169 +#: ../glib/gfileutils.c:720 ../glib/gmappedfile.c:169 #, c-format msgid "Failed to get attributes of file '%s': fstat() failed: %s" msgstr "Falló al obtener los atributos del archivo «%s»: fstat() falló: %s" -#: ../glib/gfileutils.c:750 +#: ../glib/gfileutils.c:754 #, c-format msgid "Failed to open file '%s': fdopen() failed: %s" msgstr "Falló al abrir el archivo «%s»: fdopen() falló: %s" -#: ../glib/gfileutils.c:858 +#: ../glib/gfileutils.c:862 #, c-format msgid "Failed to rename file '%s' to '%s': g_rename() failed: %s" msgstr "Falló al renombrar el archivo «%s» a «%s»: g_rename() falló: %s" -#: ../glib/gfileutils.c:900 ../glib/gfileutils.c:1369 +#: ../glib/gfileutils.c:904 ../glib/gfileutils.c:1388 #, c-format msgid "Failed to create file '%s': %s" msgstr "Falló al crear el archivo «%s»: %s" -#: ../glib/gfileutils.c:914 +#: ../glib/gfileutils.c:918 #, c-format msgid "Failed to open file '%s' for writing: fdopen() failed: %s" msgstr "Falló al abrir el archivo «%s» para escritura: fdopen() falló: %s" -#: ../glib/gfileutils.c:939 +#: ../glib/gfileutils.c:943 #, c-format msgid "Failed to write file '%s': fwrite() failed: %s" msgstr "Falló al escribir el archivo «%s»: falló fwrite(): %s" -#: ../glib/gfileutils.c:958 +#: ../glib/gfileutils.c:962 #, c-format msgid "Failed to write file '%s': fflush() failed: %s" msgstr "Falló al escribir el archivo «%s»: falló fflush(): %s" -#: ../glib/gfileutils.c:987 +#: ../glib/gfileutils.c:1005 #, c-format msgid "Failed to write file '%s': fsync() failed: %s" msgstr "Falló al escribir el archivo «%s»: falló fsync(): %s" -#: ../glib/gfileutils.c:1006 +#: ../glib/gfileutils.c:1025 #, c-format msgid "Failed to close file '%s': fclose() failed: %s" msgstr "Falló al cerrar el archivo «%s»: falló fclose(): %s" -#: ../glib/gfileutils.c:1127 +#: ../glib/gfileutils.c:1146 #, c-format msgid "Existing file '%s' could not be removed: g_unlink() failed: %s" msgstr "El archivo existente «%s» no se pudo eliminar: g_unlink() falló: %s" -#: ../glib/gfileutils.c:1331 +#: ../glib/gfileutils.c:1350 #, c-format msgid "Template '%s' invalid, should not contain a '%s'" msgstr "La plantilla «%s» es inválida, no debería contener un «%s»" -#: ../glib/gfileutils.c:1344 +#: ../glib/gfileutils.c:1363 #, c-format msgid "Template '%s' doesn't contain XXXXXX" msgstr "La plantilla «%s» no contiene XXXXXX" -#: ../glib/gfileutils.c:1777 +#: ../glib/gfileutils.c:1796 #, c-format msgid "%u byte" msgid_plural "%u bytes" msgstr[0] "%u byte" msgstr[1] "%u bytes" -#: ../glib/gfileutils.c:1785 +#: ../glib/gfileutils.c:1804 #, c-format msgid "%.1f KB" msgstr "%.1f KiB" -#: ../glib/gfileutils.c:1790 +#: ../glib/gfileutils.c:1809 #, c-format msgid "%.1f MB" msgstr "%.1f MiB" -#: ../glib/gfileutils.c:1795 +#: ../glib/gfileutils.c:1814 #, c-format msgid "%.1f GB" msgstr "%.1f GiB" -#: ../glib/gfileutils.c:1800 +#: ../glib/gfileutils.c:1819 #, c-format msgid "%.1f TB" msgstr "%.1f TiB" -#: ../glib/gfileutils.c:1805 +#: ../glib/gfileutils.c:1824 #, c-format msgid "%.1f PB" msgstr "%.1f PiB" -#: ../glib/gfileutils.c:1810 +#: ../glib/gfileutils.c:1829 #, c-format msgid "%.1f EB" msgstr "%.1f EiB" -#: ../glib/gfileutils.c:1853 +#: ../glib/gfileutils.c:1872 #, c-format msgid "Failed to read the symbolic link '%s': %s" msgstr "Falló al leer el enlace simbólico «%s»: %s" -#: ../glib/gfileutils.c:1874 +#: ../glib/gfileutils.c:1893 msgid "Symbolic links not supported" msgstr "Enlaces simbólicos no soportados" @@ -645,11 +646,11 @@ msgstr "" #: ../glib/gmarkup.c:1126 #, 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 "" -"Carácter «%s» impropio, se esperaba un carácter «>» para terminar la " -"etiqueta vacía del elemento «%s»" +"Carácter «%s» impropio, se esperaba un carácter «>» para terminar la etiqueta " +"vacía del elemento «%s»" #: ../glib/gmarkup.c:1210 #, c-format @@ -676,8 +677,8 @@ msgid "" "Odd character '%s', expected an open quote mark after the equals sign when " "giving value for attribute '%s' of element '%s'" msgstr "" -"Carácter «%s» impropio, se esperaba una marca de apertura de comillas " -"después del signo igual al darle valor al atributo «%s» del elemento «%s»" +"Carácter «%s» impropio, se esperaba una marca de apertura de comillas después " +"del signo igual al darle valor al atributo «%s» del elemento «%s»" #: ../glib/gmarkup.c:1429 #, c-format @@ -685,8 +686,8 @@ msgid "" "'%s' is not a valid character following the characters '" msgstr "" -"se debe especificar exactamente uno de «type», «enum» o «flags» como " -"atributo para " +"se debe especificar exactamente uno de «type», «enum» o «flags» como atributo " +"para " #: ../gio/glib-compile-schemas.c:915 #, c-format @@ -2627,8 +2622,8 @@ msgid "" " extends but '%s' " "does not extend '%s'" msgstr "" -" extiende pero " -"«%s» no extiende «%s»" +" extiende pero «%" +"s» no extiende «%s»" #: ../gio/glib-compile-schemas.c:1135 #, c-format @@ -2681,8 +2676,8 @@ msgstr "Ignorando este archivo.\n" #, c-format msgid "No such key `%s' in schema `%s' as specified in override file `%s'" msgstr "" -"No existe la clave «%s» en el esquema «%s» como se especificó en el archivo " -"de sobreescitura «%s»" +"No existe la clave «%s» en el esquema «%s» como se especificó en el archivo de " +"sobreescitura «%s»" #: ../gio/glib-compile-schemas.c:1767 ../gio/glib-compile-schemas.c:1825 #: ../gio/glib-compile-schemas.c:1853 @@ -2699,8 +2694,8 @@ msgstr "y se especificó --strict; saliendo.\n" #: ../gio/glib-compile-schemas.c:1787 #, c-format msgid "" -"error parsing key `%s' in schema `%s' as specified in override file `%s': " -"%s. " +"error parsing key `%s' in schema `%s' as specified in override file `%s': %" +"s. " msgstr "" "error al analizar la clave «%s» en el esquema «%s» como se especificó en el " "archivo de sobreescritura «%s»: %s." @@ -3240,66 +3235,66 @@ msgstr "La ruta no debe contener dos barras adyacentes (//)\n" msgid "No such key '%s'\n" msgstr "No existe la clave «%s»\n" -#: ../gio/gsettings-tool.c:427 +#: ../gio/gsettings-tool.c:429 #, c-format msgid "The provided value is outside of the valid range\n" msgstr "El valor proporcionado está fuera del rango válido\n" -#: ../gio/gsettings-tool.c:456 +#: ../gio/gsettings-tool.c:458 msgid "List the installed (non-relocatable) schemas" msgstr "Listar los esquemas instalados (no reubicables)" -#: ../gio/gsettings-tool.c:462 +#: ../gio/gsettings-tool.c:464 msgid "List the installed relocatable schemas" msgstr "Listar los esquemas reubicables instalados" -#: ../gio/gsettings-tool.c:468 +#: ../gio/gsettings-tool.c:470 msgid "Lists the keys in SCHEMA" msgstr "Lista las claves en el ESQUEMA" -#: ../gio/gsettings-tool.c:469 ../gio/gsettings-tool.c:475 -#: ../gio/gsettings-tool.c:481 +#: ../gio/gsettings-tool.c:471 ../gio/gsettings-tool.c:477 +#: ../gio/gsettings-tool.c:483 msgid "SCHEMA[:PATH]" msgstr "ESQUEMA[:RUTA]" -#: ../gio/gsettings-tool.c:474 +#: ../gio/gsettings-tool.c:476 msgid "Lists the children of SCHEMA" msgstr "Lista los hijos del ESQUEMA" -#: ../gio/gsettings-tool.c:480 +#: ../gio/gsettings-tool.c:482 msgid "List keys and values, recursively" msgstr "Listar las claves y valores recursivamente" -#: ../gio/gsettings-tool.c:486 +#: ../gio/gsettings-tool.c:488 msgid "Gets the value of KEY" msgstr "Obtiene el valor de la CLAVE" -#: ../gio/gsettings-tool.c:487 ../gio/gsettings-tool.c:493 -#: ../gio/gsettings-tool.c:505 ../gio/gsettings-tool.c:511 +#: ../gio/gsettings-tool.c:489 ../gio/gsettings-tool.c:495 +#: ../gio/gsettings-tool.c:507 ../gio/gsettings-tool.c:513 msgid "SCHEMA[:PATH] KEY" msgstr "ESQUEMA[:RUTA] CLAVE" -#: ../gio/gsettings-tool.c:492 +#: ../gio/gsettings-tool.c:494 msgid "Queries the range of valid values for KEY" msgstr "Consulta el rango de valores válidos para la CLAVE" -#: ../gio/gsettings-tool.c:498 +#: ../gio/gsettings-tool.c:500 msgid "Sets the value of KEY to VALUE" msgstr "Establece el valor de la CLAVE a VALOR" -#: ../gio/gsettings-tool.c:499 +#: ../gio/gsettings-tool.c:501 msgid "SCHEMA[:PATH] KEY VALUE" msgstr "ESQUEMA[:RUTA] CLAVE VALOR" -#: ../gio/gsettings-tool.c:504 +#: ../gio/gsettings-tool.c:506 msgid "Resets KEY to its default value" msgstr "Restablece la CLAVE a su valor predeterminado" -#: ../gio/gsettings-tool.c:510 +#: ../gio/gsettings-tool.c:512 msgid "Checks if KEY is writable" msgstr "Comprueba si la CLAVE se puede escribir" -#: ../gio/gsettings-tool.c:516 +#: ../gio/gsettings-tool.c:518 msgid "" "Monitors KEY for changes.\n" "If no KEY is specified, monitor all keys in SCHEMA.\n" @@ -3309,11 +3304,11 @@ msgstr "" "Si no se especifica una CLAVE, monitoriza todas las claves en el ESQUEMA.\n" "Use ^C para detener la monitorización.\n" -#: ../gio/gsettings-tool.c:519 +#: ../gio/gsettings-tool.c:521 msgid "SCHEMA[:PATH] [KEY]" msgstr "ESQUEMA[:RUTA] [CLAVE]" -#: ../gio/gsettings-tool.c:523 +#: ../gio/gsettings-tool.c:525 #, c-format msgid "" "Unknown command %s\n" @@ -3322,7 +3317,7 @@ msgstr "" "Comando «%s» desconocido\n" "\n" -#: ../gio/gsettings-tool.c:531 +#: ../gio/gsettings-tool.c:533 msgid "" "Usage:\n" " gsettings COMMAND [ARGS...]\n" @@ -3364,7 +3359,7 @@ msgstr "" "Use «gsettings help COMANDO» para obtener una ayuda detallada.\n" "\n" -#: ../gio/gsettings-tool.c:552 +#: ../gio/gsettings-tool.c:554 #, c-format msgid "" "Usage:\n" @@ -3379,11 +3374,11 @@ msgstr "" "%s\n" "\n" -#: ../gio/gsettings-tool.c:557 +#: ../gio/gsettings-tool.c:559 msgid "Arguments:\n" msgstr "Argumentos:\n" -#: ../gio/gsettings-tool.c:561 +#: ../gio/gsettings-tool.c:563 msgid "" " SCHEMA The name of the schema\n" " PATH The path, for relocatable schemas\n" @@ -3391,19 +3386,19 @@ msgstr "" " SCHEMA El nombre del esquema\n" " RUTA La ruta, para esquemas reubicables\n" -#: ../gio/gsettings-tool.c:566 +#: ../gio/gsettings-tool.c:568 msgid " KEY The (optional) key within the schema\n" msgstr " CLAVE La clave (opcional) para el esquema\n" -#: ../gio/gsettings-tool.c:570 +#: ../gio/gsettings-tool.c:572 msgid " KEY The key within the schema\n" msgstr " CLAVE La clave para el esquema\n" -#: ../gio/gsettings-tool.c:574 +#: ../gio/gsettings-tool.c:576 msgid " VALUE The value to set\n" msgstr " VALOR El valor para establecer\n" -#: ../gio/gsettings-tool.c:650 +#: ../gio/gsettings-tool.c:652 #, c-format msgid "Empty schema name given" msgstr "Se proporcionó un nombre de esquema vacío" @@ -3515,16 +3510,16 @@ msgstr "Error al recibir el mensaje: %s" msgid "g_socket_get_credentials not implemented for this OS" msgstr "g_socket_get_credentials no está implementado en este SO" -#: ../gio/gsocketclient.c:798 ../gio/gsocketclient.c:1364 +#: ../gio/gsocketclient.c:798 ../gio/gsocketclient.c:1368 msgid "Unknown error on connect" msgstr "Error desconocido al conectar" -#: ../gio/gsocketclient.c:836 ../gio/gsocketclient.c:1248 +#: ../gio/gsocketclient.c:836 ../gio/gsocketclient.c:1252 msgid "Trying to proxy over non-TCP connection is not supported." msgstr "" "No se soporta intentar hacer de proxy sobre una conexión que no es TCP." -#: ../gio/gsocketclient.c:858 ../gio/gsocketclient.c:1273 +#: ../gio/gsocketclient.c:858 ../gio/gsocketclient.c:1277 #, c-format msgid "Proxy protocol '%s' is not supported." msgstr "El protocolo del proxy «%s» no está soportado." @@ -3631,23 +3626,24 @@ msgid "SOCKSv5 proxy does not support provided address type." msgstr "El proxy SOCKSv5 no soporta el tipo de dirección proporcionado." #: ../gio/gsocks5proxy.c:402 -msgid "Unkown SOCKSv5 proxy error." -msgstr "Error desconocido del servidor proxy SOCKSv5." +#| msgid "Unkown SOCKSv5 proxy error." +msgid "Unknown SOCKSv5 proxy error." +msgstr "Error desconocido del proxy SOCKSv5." #: ../gio/gthemedicon.c:498 #, c-format msgid "Can't handle version %d of GThemedIcon encoding" msgstr "No se puede manejar la versión %d de la codificación GThemedIcon" -#: ../gio/gtlscertificate.c:270 +#: ../gio/gtlscertificate.c:228 msgid "No PEM-encoded certificate found" msgstr "No se encontró ningún certificado codificado con PEM" -#: ../gio/gtlscertificate.c:279 +#: ../gio/gtlscertificate.c:237 msgid "Could not parse PEM-encoded certificate" msgstr "No se pudo analizar el certificado codificado con PEM" -#: ../gio/gtlscertificate.c:300 +#: ../gio/gtlscertificate.c:258 msgid "Could not parse PEM-encoded private key" msgstr "No se pudo analizar la clave privada codificada con PEM" @@ -3797,8 +3793,7 @@ msgstr "Datos comprimidos no válidos" #~ msgid "No such schema `%s' specified in override file `%s'" #~ msgstr "" -#~ "No existe el esquema «%s» especificado en el archivo de sobreescritura " -#~ "«%s»" +#~ "No existe el esquema «%s» especificado en el archivo de sobreescritura «%s»" #~ msgid "" #~ "Commands:\n" @@ -3943,8 +3938,8 @@ msgstr "Datos comprimidos no válidos" #~ "characters. Ignores names after the first if multiple names are given." #~ msgstr "" #~ "Indica si se debe usar los valores de reserva encontrados al acortar el " -#~ "nombre en los caracteres «-». Si se proporcionan varios nombres los " -#~ "ignora después del primero." +#~ "nombre en los caracteres «-». Si se proporcionan varios nombres los ignora " +#~ "después del primero." #~ msgid "File descriptor" #~ msgstr "Descriptor del archivo" diff --git a/po/et.po b/po/et.po index dded40fab..7a26e9504 100644 --- a/po/et.po +++ b/po/et.po @@ -2,11 +2,11 @@ # Estonian translation of GLib. # # Copyright (C) 2002, 2005, 2006 Free Software Foundation, Inc. -# Copyright (C) 2007-2010 The GNOME Project. +# Copyright (C) 2007–2011 The GNOME Project. # This file is distributed under the same license as the GLib package. # # Allan Sims , 2002. -# Ivar Smolin , 2005-2010. +# Ivar Smolin , 2005–2011. # Priit Laes , 2005, 2007, 2009 # Mattias Põldaru , 2009. # @@ -15,13 +15,14 @@ msgstr "" "Project-Id-Version: glib MASTER\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?" "product=glib&component=general\n" -"POT-Creation-Date: 2010-09-02 19:40+0000\n" -"PO-Revision-Date: 2010-09-19 14:51+0300\n" -"Last-Translator: Mattias Põldaru \n" +"POT-Creation-Date: 2010-12-17 16:41+0000\n" +"PO-Revision-Date: 2011-01-11 10:37+0200\n" +"Last-Translator: Ivar Smolin \n" "Language-Team: Estonian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"Language: et\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #, c-format @@ -120,18 +121,22 @@ msgstr "Rajanimi '%s' ei ole absoluutne rada" msgid "Invalid hostname" msgstr "Vigane hostinimi" +#. Translators: 'before midday' indicator msgctxt "GDateTime" msgid "am" msgstr "el" +#. Translators: 'before midday' indicator msgctxt "GDateTime" msgid "AM" msgstr "EL" +#. Translators: 'after midday' indicator msgctxt "GDateTime" msgid "pm" msgstr "pl" +#. Translators: 'after midday' indicator msgctxt "GDateTime" msgid "PM" msgstr "PL" @@ -146,151 +151,155 @@ msgctxt "GDateTime" msgid "%H:%M:%S" msgstr "%H:%M:%S" -msgctxt "GDateTime" +msgctxt "full month name" msgid "January" msgstr "Jaanuar" -msgctxt "GDateTime" +msgctxt "full month name" msgid "February" msgstr "Veebruar" -msgctxt "GDateTime" +msgctxt "full month name" msgid "March" msgstr "Märts" -msgctxt "GDateTime" +msgctxt "full month name" msgid "April" msgstr "Aprill" -msgctxt "GDateTime" +msgctxt "full month name" msgid "May" msgstr "Mai" -msgctxt "GDateTime" +msgctxt "full month name" msgid "June" msgstr "Juuni" -msgctxt "GDateTime" +msgctxt "full month name" msgid "July" msgstr "Juuli" -msgctxt "GDateTime" +msgctxt "full month name" msgid "August" msgstr "August" -msgctxt "GDateTime" +msgctxt "full month name" msgid "September" msgstr "September" -msgctxt "GDateTime" +msgctxt "full month name" msgid "October" msgstr "Oktoober" -msgctxt "GDateTime" +msgctxt "full month name" msgid "November" msgstr "November" -msgctxt "GDateTime" +msgctxt "full month name" msgid "December" msgstr "Detsember" -msgctxt "GDateTime" +msgctxt "abbreviated month name" msgid "Jan" msgstr "Jaan" -msgctxt "GDateTime" +msgctxt "abbreviated month name" msgid "Feb" msgstr "Veebr" -msgctxt "GDateTime" +msgctxt "abbreviated month name" msgid "Mar" msgstr "Märts" -msgctxt "GDateTime" +msgctxt "abbreviated month name" msgid "Apr" msgstr "Apr" -msgctxt "GDateTime" +msgctxt "abbreviated month name" +msgid "May" +msgstr "Mai" + +msgctxt "abbreviated month name" msgid "Jun" msgstr "Juun" -msgctxt "GDateTime" +msgctxt "abbreviated month name" msgid "Jul" msgstr "Juul" -msgctxt "GDateTime" +msgctxt "abbreviated month name" msgid "Aug" msgstr "Aug" -msgctxt "GDateTime" +msgctxt "abbreviated month name" msgid "Sep" msgstr "Sept" -msgctxt "GDateTime" +msgctxt "abbreviated month name" msgid "Oct" msgstr "Okt" -msgctxt "GDateTime" +msgctxt "abbreviated month name" msgid "Nov" msgstr "Nov" -msgctxt "GDateTime" +msgctxt "abbreviated month name" msgid "Dec" msgstr "Dets" -msgctxt "GDateTime" +msgctxt "full weekday name" msgid "Monday" msgstr "Esmaspäev" -msgctxt "GDateTime" +msgctxt "full weekday name" msgid "Tuesday" msgstr "Teisipäev" -msgctxt "GDateTime" +msgctxt "full weekday name" msgid "Wednesday" msgstr "Kolmapäev" -msgctxt "GDateTime" +msgctxt "full weekday name" msgid "Thursday" msgstr "Neljapäev" -msgctxt "GDateTime" +msgctxt "full weekday name" msgid "Friday" msgstr "Reede" -msgctxt "GDateTime" +msgctxt "full weekday name" msgid "Saturday" msgstr "Laupäev" -msgctxt "GDateTime" +msgctxt "full weekday name" msgid "Sunday" msgstr "Pühapäev" -msgctxt "GDateTime" +msgctxt "abbreviated weekday name" msgid "Mon" msgstr "E" -msgctxt "GDateTime" +msgctxt "abbreviated weekday name" msgid "Tue" msgstr "T" -msgctxt "GDateTime" +msgctxt "abbreviated weekday name" msgid "Wed" msgstr "K" -msgctxt "GDateTime" +msgctxt "abbreviated weekday name" msgid "Thu" msgstr "N" -msgctxt "GDateTime" +msgctxt "abbreviated weekday name" msgid "Fri" msgstr "R" -msgctxt "GDateTime" +msgctxt "abbreviated weekday name" msgid "Sat" msgstr "L" -msgctxt "GDateTime" +msgctxt "abbreviated weekday name" msgid "Sun" msgstr "P" @@ -1273,21 +1282,21 @@ msgstr "" msgid "Didn't find cookie with id %d in the keyring at `%s'" msgstr "Küpsist id-ga %d võtmerõngas kohas '%s' ei leitud" -#, fuzzy, c-format +#, c-format msgid "Error deleting stale lock file `%s': %s" -msgstr "Viga failist '%s' lugemisel: %s" +msgstr "Viga iganenud lukufaili '%s' kustutamisel: %s" -#, fuzzy, c-format +#, c-format msgid "Error creating lock file `%s': %s" -msgstr "Viga likufaili '%s' loomisel: %s" +msgstr "Viga lukufaili '%s' loomisel: %s" -#, fuzzy, c-format +#, c-format msgid "Error closing (unlinked) lock file `%s': %s" -msgstr "Viga faili '%s' avamisel: %s" +msgstr "Viga (kustutatud) lukufaili '%s' sulgemisel: %s" -#, fuzzy, c-format +#, c-format msgid "Error unlinking lock file `%s': %s" -msgstr "Viga faili '%s' avamisel: %s" +msgstr "Viga lukufaili '%s' kustutamisel: %s" #, c-format msgid "Error opening keyring `%s' for writing: " @@ -1548,9 +1557,9 @@ msgstr "" msgid "Error: %s\n" msgstr "Viga: %s\n" -#, fuzzy, c-format +#, c-format msgid "Error parsing introspection XML: %s\n" -msgstr "Viga võtme parsimisel: %s" +msgstr "" msgid "Connect to the system bus" msgstr "" @@ -1558,13 +1567,11 @@ msgstr "" msgid "Connect to the session bus" msgstr "" -#, fuzzy msgid "Connect to given D-Bus address" -msgstr "Ühendumise edenemine" +msgstr "Ühendumine määratud D-Bus aadressiga" -#, fuzzy msgid "Connection Endpoint Options:" -msgstr "Ühendumise edenemine" +msgstr "" msgid "Options specifying the connection endpoint" msgstr "" @@ -1841,6 +1848,215 @@ msgstr "Sokliaadressi jaoks ei ole piisavalt vaba ruumi" msgid "Unsupported socket address" msgstr "Toetamata sokliaadress" +msgid "empty names are not permitted" +msgstr "tühjad nimed pole lubatud" + +#, c-format +msgid "invalid name '%s': names must begin with a lowercase letter" +msgstr "" + +#, c-format +msgid "" +"invalid name '%s': invalid character '%c'; only lowercase letters, numbers " +"and dash ('-') are permitted." +msgstr "" + +#, c-format +msgid "invalid name '%s': two successive dashes ('--') are not permitted." +msgstr "" + +#, c-format +msgid "invalid name '%s': the last character may not be a dash ('-')." +msgstr "" + +#, c-format +msgid "invalid name '%s': maximum length is 32" +msgstr "" + +#, c-format +msgid " already specified" +msgstr "" + +msgid "can not add keys to a 'list-of' schema" +msgstr "" + +#, c-format +msgid " already specified" +msgstr "" + +#, c-format +msgid "" +" shadows in ; use " +"to modify value" +msgstr "" + +#, c-format +msgid "" +"exactly one of 'type', 'enum' or 'flags' must be specified as an attribute " +"to " +msgstr "" + +#, c-format +msgid "<%s id='%s'> not (yet) defined." +msgstr "" + +#, fuzzy, c-format +msgid "invalid GVariant type string '%s'" +msgstr "Vigane rekvisiidi tüüp (oodatakse stringi)" + +msgid " given but schema isn't extending anything" +msgstr "" + +#, c-format +msgid "no to override" +msgstr "" + +#, c-format +msgid " already specified" +msgstr "" + +#, c-format +msgid " already specified" +msgstr "" + +#, c-format +msgid " extends not yet existing schema '%s'" +msgstr "" + +#, c-format +msgid " is list of not yet existing schema '%s'" +msgstr "" + +#, c-format +msgid "Can not be a list of a schema with a path" +msgstr "" + +#, c-format +msgid "Can not extend a schema with a path" +msgstr "" + +#, c-format +msgid "" +" is a list, extending which is not a list" +msgstr "" + +#, c-format +msgid "" +" extends but '%s' " +"does not extend '%s'" +msgstr "" + +#, c-format +msgid "a path, if given, must begin and end with a slash" +msgstr "" + +#, c-format +msgid "the path of a list must end with ':/'" +msgstr "" + +#, c-format +msgid "<%s id='%s'> already specified" +msgstr "" + +#, c-format +msgid "Element <%s> not allowed inside <%s>" +msgstr "" + +#, c-format +msgid "Element <%s> not allowed at toplevel" +msgstr "" + +#, c-format +msgid "text may not appear inside <%s>" +msgstr "" + +#. Translators: Do not translate "--strict". +#, c-format +msgid "--strict was specified; exiting.\n" +msgstr "" + +#, c-format +msgid "This entire file has been ignored.\n" +msgstr "" + +#, c-format +msgid "Ignoring this file.\n" +msgstr "" + +#, c-format +msgid "No such key `%s' in schema `%s' as specified in override file `%s'" +msgstr "" + +#, c-format +msgid "; ignoring override for this key.\n" +msgstr "" + +#, c-format +msgid " and --strict was specified; exiting.\n" +msgstr "" + +#, c-format +msgid "" +"error parsing key `%s' in schema `%s' as specified in override file `%s': " +"%s. " +msgstr "" + +#, c-format +msgid "Ignoring override for this key.\n" +msgstr "" + +#, c-format +msgid "" +"override for key `%s' in schema `%s' in override file `%s' is out of the " +"range given in the schema" +msgstr "" + +#, c-format +msgid "" +"override for key `%s' in schema `%s' in override file `%s' is not in the " +"list of valid choices" +msgstr "" + +msgid "where to store the gschemas.compiled file" +msgstr "" + +msgid "DIRECTORY" +msgstr "" + +msgid "Abort on any errors in schemas" +msgstr "" + +msgid "Do not write the gschema.compiled file" +msgstr "" + +msgid "This option will be removed soon." +msgstr "" + +msgid "Do not enforce key name restrictions" +msgstr "" + +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 "" + +#, c-format +msgid "You should give exactly one directory name\n" +msgstr "" + +#, c-format +msgid "No schema files found: " +msgstr "" + +#, c-format +msgid "doing nothing.\n" +msgstr "" + +#, c-format +msgid "removed existing output file.\n" +msgstr "" + msgid "Unable to find default local directory monitor type" msgstr "Vaikimisi kohaliku kataloogimonitori liiki pole võimalik leida" @@ -2155,236 +2371,149 @@ msgstr "Ajutiselt pole võimalik '%s' lahendada" msgid "Error resolving '%s'" msgstr "Viga '%s' lahendamisel" -#, fuzzy -msgid "empty names are not permitted" -msgstr "Abstraktne nimeruum pole toetatud" - #, c-format -msgid "invalid name '%s': names must begin with a lowercase letter" -msgstr "" - -#, c-format -msgid "" -"invalid name '%s': invalid character '%c'; only lowercase letters, numbers " -"and dash ('-') are permitted." -msgstr "" - -#, c-format -msgid "invalid name '%s': two successive dashes ('--') are not permitted." -msgstr "" - -#, c-format -msgid "invalid name '%s': the last character may not be a dash ('-')." -msgstr "" - -#, c-format -msgid "invalid name '%s': maximum length is 32" -msgstr "" - -#, c-format -msgid " already specified" -msgstr "" - -msgid "can not add keys to a 'list-of' schema" -msgstr "" - -#, c-format -msgid " already specified" -msgstr "" - -#, c-format -msgid "" -" shadows in ; use " -"to modify value" -msgstr "" - -#, c-format -msgid "" -"exactly one of 'type', 'enum' or 'flags' must be specified as an attribute " -"to " -msgstr "" - -#, c-format -msgid "<%s id='%s'> not (yet) defined." +msgid "Schema '%s' is not relocatable (path must not be specified)\n" msgstr "" #, fuzzy, c-format -msgid "invalid GVariant type string '%s'" -msgstr "Vigane rekvisiidi tüüp (oodatakse stringi)" +msgid "No such schema '%s'\n" +msgstr "Liidest '%s' pole" -msgid " given but schema isn't extending anything" +#, c-format +msgid "Schema '%s' is relocatable (path must be specified)\n" msgstr "" #, c-format -msgid "no to override" +msgid "Empty path given.\n" msgstr "" #, c-format -msgid " already specified" +msgid "Path must begin with a slash (/)\n" msgstr "" #, c-format -msgid " already specified" +msgid "Path must end with a slash (/)\n" msgstr "" #, c-format -msgid " extends not yet existing schema '%s'" +msgid "Path must not contain two adjacent slashes (//)\n" msgstr "" +#, fuzzy, c-format +msgid "No such key '%s'\n" +msgstr "Omadust '%s' pole" + #, c-format -msgid " is list of not yet existing schema '%s'" +msgid "The provided value is outside of the valid range\n" +msgstr "" + +msgid "List the installed (non-relocatable) schemas" +msgstr "" + +msgid "List the installed relocatable schemas" +msgstr "" + +msgid "Lists the keys in SCHEMA" +msgstr "" + +msgid "SCHEMA[:PATH]" +msgstr "" + +msgid "Lists the children of SCHEMA" +msgstr "" + +msgid "List keys and values, recursively" +msgstr "" + +msgid "Gets the value of KEY" +msgstr "" + +msgid "SCHEMA[:PATH] KEY" +msgstr "" + +msgid "Queries the range of valid values for KEY" +msgstr "" + +msgid "Sets the value of KEY to VALUE" +msgstr "" + +msgid "SCHEMA[:PATH] KEY VALUE" +msgstr "" + +msgid "Resets KEY to its default value" +msgstr "" + +msgid "Checks if KEY is writable" +msgstr "" + +msgid "" +"Monitors KEY for changes.\n" +"If no KEY is specified, monitor all keys in SCHEMA.\n" +"Use ^C to stop monitoring.\n" +msgstr "" + +msgid "SCHEMA[:PATH] [KEY]" msgstr "" #, c-format msgid "" -" is a list, extending which is not a list" -msgstr "" - -#, c-format -msgid "" -" extends but '%s' " -"does not extend '%s'" -msgstr "" - -#, c-format -msgid "a path, if given, must begin and end with a slash" -msgstr "" - -#, c-format -msgid "<%s id='%s'> already specified" -msgstr "" - -#, c-format -msgid "Element <%s> not allowed inside <%s>" -msgstr "" - -#, c-format -msgid "Element <%s> not allowed at toplevel" -msgstr "" - -#, c-format -msgid "text may not appear inside <%s>" -msgstr "" - -#, c-format -msgid "No such schema `%s' specified in override file `%s'" -msgstr "" - -#, c-format -msgid "No such key `%s' in schema `%s' as specified in override file `%s'" -msgstr "" - -#, c-format -msgid "" -"override for key `%s' in schema `%s' in override file `%s' is out of the " -"range given in the schema" -msgstr "" - -#, c-format -msgid "" -"override for key `%s' in schema `%s' in override file `%s' is not in the " -"list of valid choices" -msgstr "" - -msgid "where to store the gschemas.compiled file" -msgstr "" - -msgid "DIRECTORY" -msgstr "" - -msgid "Do not write the gschema.compiled file" -msgstr "" - -msgid "This option will be removed soon." -msgstr "" - -msgid "Do not enforce key name restrictions" -msgstr "" - -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 "" - -#, c-format -msgid "You should give exactly one directory name\n" -msgstr "" - -#, c-format -msgid "No schema files found: " -msgstr "" - -#, c-format -msgid "doing nothing.\n" -msgstr "" - -#, c-format -msgid "removed existing output file.\n" -msgstr "" - -#, c-format -msgid "" -"Commands:\n" -" help Show this information\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" -" monitor Monitor a key for changes\n" -" writable Check if a key is writable\n" +"Unknown command %s\n" "\n" -"Use '%s COMMAND --help' to get help for individual commands.\n" -msgstr "" - -msgid "Specify the path for the schema" -msgstr "" - -msgid "PATH" -msgstr "" - -msgid "SCHEMA KEY" -msgstr "" - -msgid "Get the value of KEY" msgstr "" +"Tundmatu käsk '%s'\n" +"\n" msgid "" -"Arguments:\n" -" SCHEMA The id of the schema\n" -" KEY The name of the key\n" -msgstr "" - -msgid "SCHEMA KEY VALUE" -msgstr "" - -msgid "Set the value of KEY" -msgstr "" - -msgid "" -"Arguments:\n" -" SCHEMA The id of the schema\n" -" KEY The name of the key\n" -" VALUE The value to set key to, as a serialized GVariant\n" +"Usage:\n" +" gsettings 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" +" get Get the value of a key\n" +" set Set the value of a key\n" +" reset Reset the value of a key\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 "" #, c-format -msgid "Key %s is not writable\n" -msgstr "Võti %s pole kirjutatav\n" - -msgid "Sets KEY to its default value" +msgid "" +"Usage:\n" +" gsettings %s %s\n" +"\n" +"%s\n" +"\n" msgstr "" -msgid "Find out whether KEY is writable" +msgid "Arguments:\n" msgstr "" msgid "" -"Monitor KEY for changes and print the changed values.\n" -"Monitoring will continue until the process is terminated." +" SCHEMA The name of the schema\n" +" PATH The path, for relocatable schemas\n" +msgstr "" + +msgid " KEY The (optional) key within the schema\n" +msgstr "" + +msgid " KEY The key within the schema\n" +msgstr "" + +msgid " VALUE The value to set\n" msgstr "" #, c-format -msgid "Unknown command '%s'\n" -msgstr "Tundmatu käsk '%s'\n" +msgid "Empty schema name given" +msgstr "" msgid "Invalid socket, not initialized" msgstr "Vigane sokkel, käivitamata" @@ -2476,9 +2605,9 @@ msgstr "Tundmatu viga ühendumisel" msgid "Trying to proxy over non-TCP connection is not supported." msgstr "" -#, fuzzy, c-format +#, c-format msgid "Proxy protocol '%s' is not supported." -msgstr "Omadus `%s' pole loetav" +msgstr "Proksi protokoll `%s' pole toetatud." msgid "Listener is already closed" msgstr "Kuulaja on juba suletud" @@ -2488,31 +2617,32 @@ msgstr "Lisatud sokkel on suletud" #, c-format msgid "SOCKSv4 does not support IPv6 address '%s'" -msgstr "" +msgstr "SOCKSv4 ei toeta IPv6-aadressi '%s'" #, c-format msgid "SOCKSv4 implementation limits username to %i characters" -msgstr "" +msgstr "SOCKSv4 implementatsioon piirab kasutajanime pikkuse %i märgiga" #, c-format msgid "SOCKSv4a implementation limits hostname to %i characters" -msgstr "" +msgstr "SOCKSv4 implementatsioon piirab hostinime pikkuse %i märgiga" msgid "The server is not a SOCKSv4 proxy server." -msgstr "" +msgstr "Server ei ole SOCKSv4 proksiserver." msgid "Connection through SOCKSv4 server was rejected" -msgstr "" +msgstr "Ühendus läbi SOCKSv4-serveri lükati tagasi" msgid "The server is not a SOCKSv5 proxy server." -msgstr "" +msgstr "Server ei ole SOCKSv5 proksiserver." msgid "The SOCKSv5 proxy requires authentication." -msgstr "" +msgstr "SOCKSv5 proksi nõuab autentimist." msgid "" -"The SOCKSv5 proxy requires an authentication method that is not supported by GLib." -msgstr "" +"The SOCKSv5 proxy requires an authentication method that is not supported by " +"GLib." +msgstr "SOCKSv5 proksi nõuab GLibi poolt toetamata autentimismeetodit." #, c-format msgid "Username or password is too long for SOCKSv5 protocol (max. is %i)." @@ -2549,13 +2679,22 @@ msgstr "" msgid "SOCKSv5 proxy does not support provided address type." msgstr "" -msgid "Unkown SOCKSv5 proxy error." -msgstr "" +msgid "Unknown SOCKSv5 proxy error." +msgstr "SOCKSv5 proksi tundmatu viga." #, c-format msgid "Can't handle version %d of GThemedIcon encoding" msgstr "GThemedIcon kodeeringu versiooni %d pole võimalik käsitseda" +msgid "No PEM-encoded certificate found" +msgstr "PEM-kodeeritud sertifikaati ei leitud" + +msgid "Could not parse PEM-encoded certificate" +msgstr "PEM-kodeeritud sertifikaati pole võimalik analüüsida" + +msgid "Could not parse PEM-encoded private key" +msgstr "PEM-kodeeritud privaatvõtit pole võimalik analüüsida" + #, c-format msgid "Expecting 1 control message, got %d" msgstr "Eeldati ühte kontrollsõnumit, aga saadi %d" @@ -2570,9 +2709,8 @@ msgstr "Eeldati ühte fd-d, aga saadi %d\n" msgid "Received invalid fd" msgstr "Saadi vigane fd" -#, fuzzy msgid "Error sending credentials: " -msgstr "Viga andmete saatmisel: %s" +msgstr "Viga tõendite saatmisel: " #, c-format msgid "Error checking if SO_PASSCRED is enabled for socket: %s" @@ -2584,9 +2722,9 @@ msgid "" "socket. Expected %d bytes, got %d" msgstr "" -#, fuzzy, c-format +#, c-format msgid "Error enabling SO_PASSCRED: %s" -msgstr "Viga faili nime muutmisel: %s" +msgstr "Viga SO_PASSCRED lubamisel: %s" msgid "" "Expecting to read a single byte for receiving credentials but read zero bytes" @@ -2594,7 +2732,7 @@ msgstr "" #, c-format msgid "Error while disabling SO_PASSCRED: %s" -msgstr "" +msgstr "Viga SO_PASSCRED keelamisel: %s" #, c-format msgid "Error reading from unix: %s" @@ -2664,7 +2802,3 @@ msgstr "Vaja on rohkem sisendit" msgid "Invalid compressed data" msgstr "Vigaselt pakitud andmed" - -#, fuzzy -#~ msgid "Do not give error for empty directory" -#~ msgstr "Kataloogi pole võimalik kataloogi peale liigutada" diff --git a/po/gl.po b/po/gl.po index 09b0d11a2..e068ab91d 100644 --- a/po/gl.po +++ b/po/gl.po @@ -11,14 +11,14 @@ # Suso Baleato ,2009. # Antón Méixome , 2009. # Fran Dieguez , 2010. -# Fran Diéguez , 2009, 2010. +# Fran Diéguez , 2009, 2010, 2011. # msgid "" msgstr "" "Project-Id-Version: glib.master\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-11-29 17:34+0100\n" -"PO-Revision-Date: 2010-11-29 17:35+0100\n" +"POT-Creation-Date: 2011-01-09 16:35+0100\n" +"PO-Revision-Date: 2011-01-09 16:35+0100\n" "Last-Translator: Fran Diéguez \n" "Language-Team: Galician \n" "Language: gl\n" @@ -113,13 +113,13 @@ msgid "Could not open converter from '%s' to '%s'" msgstr "Non foi posíbel abrir o conversor de «%s» a «%s»" #: ../glib/gconvert.c:768 ../glib/gconvert.c:1161 ../glib/giochannel.c:1575 -#: ../glib/giochannel.c:1617 ../glib/giochannel.c:2461 ../glib/gutf8.c:992 +#: ../glib/giochannel.c:1617 ../glib/giochannel.c:2460 ../glib/gutf8.c:992 #: ../glib/gutf8.c:1447 ../gio/gcharsetconverter.c:345 msgid "Invalid byte sequence in conversion input" msgstr "A secuencia de bytes non é válida na entrada da conversión" #: ../glib/gconvert.c:776 ../glib/gconvert.c:1086 ../glib/giochannel.c:1582 -#: ../glib/giochannel.c:2473 ../gio/gcharsetconverter.c:350 +#: ../glib/giochannel.c:2472 ../gio/gcharsetconverter.c:350 #, c-format msgid "Error during conversion: %s" msgstr "Erro durante a conversión: %s" @@ -401,141 +401,141 @@ msgstr "Dom" msgid "Error opening directory '%s': %s" msgstr "Produciuse un erro ao abrir o directorio «%s»: %s" -#: ../glib/gfileutils.c:536 ../glib/gfileutils.c:624 +#: ../glib/gfileutils.c:540 ../glib/gfileutils.c:628 #, c-format msgid "Could not allocate %lu bytes to read file \"%s\"" msgstr "Non foi posíbel asignar %lu bytes para ler o ficheiro «%s»" -#: ../glib/gfileutils.c:551 +#: ../glib/gfileutils.c:555 #, c-format msgid "Error reading file '%s': %s" msgstr "Produciuse un erro ao ler o ficheiro «%s»: %s" -#: ../glib/gfileutils.c:565 +#: ../glib/gfileutils.c:569 #, c-format msgid "File \"%s\" is too large" msgstr "O ficheiro «%s» é demasiado grande" -#: ../glib/gfileutils.c:648 +#: ../glib/gfileutils.c:652 #, c-format msgid "Failed to read from file '%s': %s" msgstr "Produciuse un fallo ao ler desde o ficheiro «%s»: %s" -#: ../glib/gfileutils.c:699 ../glib/gfileutils.c:786 +#: ../glib/gfileutils.c:703 ../glib/gfileutils.c:790 #, c-format msgid "Failed to open file '%s': %s" msgstr "Produciuse un fallo ao abrir o ficheiro «%s»: %s" -#: ../glib/gfileutils.c:716 ../glib/gmappedfile.c:169 +#: ../glib/gfileutils.c:720 ../glib/gmappedfile.c:169 #, c-format msgid "Failed to get attributes of file '%s': fstat() failed: %s" msgstr "" "Produciuse un fallo ao obter os atributos do ficheiro «%s»: fstat() fallou: " "%s" -#: ../glib/gfileutils.c:750 +#: ../glib/gfileutils.c:754 #, c-format msgid "Failed to open file '%s': fdopen() failed: %s" msgstr "Produciuse un fallo ao abrir o ficheiro «%s»: fdopen() fallou: %s" -#: ../glib/gfileutils.c:858 +#: ../glib/gfileutils.c:862 #, c-format msgid "Failed to rename file '%s' to '%s': g_rename() failed: %s" msgstr "" "Produciuse un fallo ao renomear o ficheiro «%s» como «%s»: g_rename() " "fallou: %s" -#: ../glib/gfileutils.c:900 ../glib/gfileutils.c:1369 +#: ../glib/gfileutils.c:904 ../glib/gfileutils.c:1388 #, c-format msgid "Failed to create file '%s': %s" msgstr "Produciuse un fallo ao crear o ficheiro «%s»: %s" -#: ../glib/gfileutils.c:914 +#: ../glib/gfileutils.c:918 #, c-format msgid "Failed to open file '%s' for writing: fdopen() failed: %s" msgstr "" "Produciuse un fallo ao abrir o ficheiro «%s» para escritura: fdopen() " "fallou: %s" -#: ../glib/gfileutils.c:939 +#: ../glib/gfileutils.c:943 #, c-format msgid "Failed to write file '%s': fwrite() failed: %s" msgstr "Produciuse un fallo ao escribir o ficheiro «%s»: fwrite() fallou: %s" -#: ../glib/gfileutils.c:958 +#: ../glib/gfileutils.c:962 #, c-format msgid "Failed to write file '%s': fflush() failed: %s" msgstr "Produciuse un fallo ao escribir o ficheiro «%s»: fflush() fallou: %s" -#: ../glib/gfileutils.c:987 +#: ../glib/gfileutils.c:1005 #, c-format msgid "Failed to write file '%s': fsync() failed: %s" msgstr "Produciuse un fallo ao escribir o ficheiro «%s»: fsync() fallou: %s" -#: ../glib/gfileutils.c:1006 +#: ../glib/gfileutils.c:1025 #, c-format msgid "Failed to close file '%s': fclose() failed: %s" msgstr "Produciuse un fallo ao pechar o ficheiro «%s»: fclose() fallou: %s" -#: ../glib/gfileutils.c:1127 +#: ../glib/gfileutils.c:1146 #, c-format msgid "Existing file '%s' could not be removed: g_unlink() failed: %s" msgstr "" "Non foi posíbel eliminar o ficheiro existente «%s»: g_unlink() fallou: %s" -#: ../glib/gfileutils.c:1331 +#: ../glib/gfileutils.c:1350 #, c-format msgid "Template '%s' invalid, should not contain a '%s'" msgstr "O modelo «%s» non é válido, non debería conter «%s»" -#: ../glib/gfileutils.c:1344 +#: ../glib/gfileutils.c:1363 #, c-format msgid "Template '%s' doesn't contain XXXXXX" msgstr "O modelo «%s» non contén XXXXXX" -#: ../glib/gfileutils.c:1777 +#: ../glib/gfileutils.c:1796 #, c-format msgid "%u byte" msgid_plural "%u bytes" msgstr[0] "%u byte" msgstr[1] "%u bytes" -#: ../glib/gfileutils.c:1785 +#: ../glib/gfileutils.c:1804 #, c-format msgid "%.1f KB" msgstr "%.1f KB" -#: ../glib/gfileutils.c:1790 +#: ../glib/gfileutils.c:1809 #, c-format msgid "%.1f MB" msgstr "%.1f MB" -#: ../glib/gfileutils.c:1795 +#: ../glib/gfileutils.c:1814 #, c-format msgid "%.1f GB" msgstr "%.1f GB" -#: ../glib/gfileutils.c:1800 +#: ../glib/gfileutils.c:1819 #, c-format msgid "%.1f TB" msgstr "%.1f TB" -#: ../glib/gfileutils.c:1805 +#: ../glib/gfileutils.c:1824 #, c-format msgid "%.1f PB" msgstr "%.1f PB" -#: ../glib/gfileutils.c:1810 +#: ../glib/gfileutils.c:1829 #, c-format msgid "%.1f EB" msgstr "%.1f EB" -#: ../glib/gfileutils.c:1853 +#: ../glib/gfileutils.c:1872 #, c-format msgid "Failed to read the symbolic link '%s': %s" msgstr "Produciuse un fallo ao ler a ligazón simbólica «%s»: %s" -#: ../glib/gfileutils.c:1874 +#: ../glib/gfileutils.c:1893 msgid "Symbolic links not supported" msgstr "As ligazóns simbólicas non se admiten" @@ -549,8 +549,8 @@ msgid "Can't do a raw read in g_io_channel_read_line_string" msgstr "" "Non é posíbel facer unha lectura en bruto en g_io_channel_read_line_string" -#: ../glib/giochannel.c:1799 ../glib/giochannel.c:2057 -#: ../glib/giochannel.c:2144 +#: ../glib/giochannel.c:1799 ../glib/giochannel.c:2056 +#: ../glib/giochannel.c:2143 msgid "Leftover unconverted data in read buffer" msgstr "Datos restantes non convertidos no búfer de lectura" @@ -805,7 +805,7 @@ msgstr "alcanzouse o límite de \"backtracking\"" msgid "the pattern contains items not supported for partial matching" msgstr "o patrón contén elementos non permitidos na coincidencia parcial" -#: ../glib/gregex.c:211 ../gio/glocalfile.c:2109 +#: ../glib/gregex.c:211 ../gio/glocalfile.c:2111 msgid "internal error" msgstr "erro interno" @@ -1298,21 +1298,21 @@ msgstr "Argumento que falta para %s" msgid "Unknown option %s" msgstr "Opción %s descoñecida" -#: ../glib/gkeyfile.c:362 +#: ../glib/gkeyfile.c:363 msgid "Valid key file could not be found in search dirs" msgstr "" "Non é posíbel encontrar unha chave de ficheiro válida nos directorios de " "busca" -#: ../glib/gkeyfile.c:397 +#: ../glib/gkeyfile.c:398 msgid "Not a regular file" msgstr "Non é un ficheiro normal" -#: ../glib/gkeyfile.c:405 +#: ../glib/gkeyfile.c:406 msgid "File is empty" msgstr "O ficheiro está baleiro" -#: ../glib/gkeyfile.c:764 +#: ../glib/gkeyfile.c:765 #, c-format msgid "" "Key file contains line '%s' which is not a key-value pair, group, or comment" @@ -1320,50 +1320,50 @@ msgstr "" "O ficheiro chave contén a liña «%s» que non é un par valor-chave, grupo ou " "comentario" -#: ../glib/gkeyfile.c:824 +#: ../glib/gkeyfile.c:825 #, c-format msgid "Invalid group name: %s" msgstr "Nome de grupo non válido: %s" -#: ../glib/gkeyfile.c:846 +#: ../glib/gkeyfile.c:847 msgid "Key file does not start with a group" msgstr "O ficheiro chave non comeza cun grupo" -#: ../glib/gkeyfile.c:872 +#: ../glib/gkeyfile.c:873 #, c-format msgid "Invalid key name: %s" msgstr "Nome de chave non válido: %s" -#: ../glib/gkeyfile.c:899 +#: ../glib/gkeyfile.c:900 #, c-format msgid "Key file contains unsupported encoding '%s'" msgstr "O ficheiro chave contén unha codificación non permitida «%s»" -#: ../glib/gkeyfile.c:1115 ../glib/gkeyfile.c:1277 ../glib/gkeyfile.c:2656 -#: ../glib/gkeyfile.c:2722 ../glib/gkeyfile.c:2857 ../glib/gkeyfile.c:2990 -#: ../glib/gkeyfile.c:3143 ../glib/gkeyfile.c:3330 ../glib/gkeyfile.c:3391 +#: ../glib/gkeyfile.c:1116 ../glib/gkeyfile.c:1278 ../glib/gkeyfile.c:2646 +#: ../glib/gkeyfile.c:2712 ../glib/gkeyfile.c:2847 ../glib/gkeyfile.c:2980 +#: ../glib/gkeyfile.c:3133 ../glib/gkeyfile.c:3320 ../glib/gkeyfile.c:3381 #, c-format msgid "Key file does not have group '%s'" msgstr "O ficheiro chave non ten un grupo «%s»" -#: ../glib/gkeyfile.c:1289 +#: ../glib/gkeyfile.c:1290 #, c-format msgid "Key file does not have key '%s'" msgstr "O ficheiro chave non ten a chave «%s»" -#: ../glib/gkeyfile.c:1396 ../glib/gkeyfile.c:1511 +#: ../glib/gkeyfile.c:1397 ../glib/gkeyfile.c:1512 #, c-format msgid "Key file contains key '%s' with value '%s' which is not UTF-8" msgstr "O ficheiro chave contén a chave «%s» co valor «%s» que non é UTF-8" -#: ../glib/gkeyfile.c:1416 ../glib/gkeyfile.c:1910 +#: ../glib/gkeyfile.c:1417 ../glib/gkeyfile.c:1900 #, c-format msgid "Key file contains key '%s' which has value that cannot be interpreted." msgstr "" "O ficheiro chave contén a chave «%s» que ten un valor que non pode ser " "interpretado." -#: ../glib/gkeyfile.c:1531 +#: ../glib/gkeyfile.c:1532 #, c-format msgid "" "Key file contains key '%s' which has a value that cannot be interpreted." @@ -1371,7 +1371,7 @@ msgstr "" "O ficheiro chave contén a chave «%s» que ten un valor que non pode ser " "interpretado." -#: ../glib/gkeyfile.c:2125 ../glib/gkeyfile.c:2487 +#: ../glib/gkeyfile.c:2115 ../glib/gkeyfile.c:2477 #, c-format msgid "" "Key file contains key '%s' in group '%s' which has value that cannot be " @@ -1380,36 +1380,36 @@ msgstr "" "O ficheiro chave contén a chave «%s» no grupo «%s» que ten un valor que non " "pode ser interpretado." -#: ../glib/gkeyfile.c:2671 ../glib/gkeyfile.c:2872 ../glib/gkeyfile.c:3402 +#: ../glib/gkeyfile.c:2661 ../glib/gkeyfile.c:2862 ../glib/gkeyfile.c:3392 #, c-format msgid "Key file does not have key '%s' in group '%s'" msgstr "O ficheiro chave non ten a chave «%s» no grupo «%s»" -#: ../glib/gkeyfile.c:3636 +#: ../glib/gkeyfile.c:3626 msgid "Key file contains escape character at end of line" msgstr "O ficheiro chave contén un carácter de escape ao final da liña" -#: ../glib/gkeyfile.c:3658 +#: ../glib/gkeyfile.c:3648 #, c-format msgid "Key file contains invalid escape sequence '%s'" msgstr "O ficheiro chave contén a secuencia de escape non válida «%s»" -#: ../glib/gkeyfile.c:3800 +#: ../glib/gkeyfile.c:3790 #, c-format msgid "Value '%s' cannot be interpreted as a number." msgstr "Non é posíbel interpretar o valor «%s» como un número." -#: ../glib/gkeyfile.c:3814 +#: ../glib/gkeyfile.c:3804 #, c-format msgid "Integer value '%s' out of range" msgstr "O valor enteiro «%s» está fóra do intervalo" -#: ../glib/gkeyfile.c:3847 +#: ../glib/gkeyfile.c:3837 #, c-format msgid "Value '%s' cannot be interpreted as a float number." msgstr "Non é posíbel interpretar o valor «%s» como un número flotante." -#: ../glib/gkeyfile.c:3871 +#: ../glib/gkeyfile.c:3861 #, c-format msgid "Value '%s' cannot be interpreted as a boolean." msgstr "Non é posíbel interpretar o valor «%s» como un booleano." @@ -1422,15 +1422,15 @@ msgstr "Non é posíbel interpretar o valor «%s» como un booleano." msgid "Too large count value passed to %s" msgstr "O valor de conta pasado a %s é demasiado longo" -#: ../gio/gbufferedinputstream.c:880 ../gio/ginputstream.c:888 +#: ../gio/gbufferedinputstream.c:881 ../gio/ginputstream.c:888 #: ../gio/giostream.c:306 ../gio/goutputstream.c:1197 msgid "Stream is already closed" msgstr "O fluxo xa se pechou" -#: ../gio/gcancellable.c:433 ../gio/gdbusconnection.c:1636 -#: ../gio/gdbusconnection.c:1725 ../gio/gdbusconnection.c:1911 -#: ../gio/glocalfile.c:2102 ../gio/gsimpleasyncresult.c:811 -#: ../gio/gsimpleasyncresult.c:837 +#: ../gio/gcancellable.c:433 ../gio/gdbusconnection.c:1637 +#: ../gio/gdbusconnection.c:1726 ../gio/gdbusconnection.c:1912 +#: ../gio/glocalfile.c:2104 ../gio/gsimpleasyncresult.c:810 +#: ../gio/gsimpleasyncresult.c:836 msgid "Operation was cancelled" msgstr "A operación foi cancelada" @@ -1619,7 +1619,7 @@ msgstr "" "Non é posíbel determinar o enderezo do bus de sesión (non está implementado " "para este SO)" -#: ../gio/gdbusaddress.c:1242 ../gio/gdbusconnection.c:6167 +#: ../gio/gdbusaddress.c:1242 ../gio/gdbusconnection.c:6168 #, c-format msgid "" "Cannot determine bus address from DBUS_STARTER_BUS_TYPE environment variable " @@ -1628,7 +1628,7 @@ msgstr "" "Non é posíbel determinar o enderezo do bus desde a variábel de contorno " "DBUS_STARTER_BUS_TYPE - valor descoñecido «%s»" -#: ../gio/gdbusaddress.c:1251 ../gio/gdbusconnection.c:6176 +#: ../gio/gdbusaddress.c:1251 ../gio/gdbusconnection.c:6177 msgid "" "Cannot determine bus address because the DBUS_STARTER_BUS_TYPE environment " "variable is not set" @@ -1741,22 +1741,22 @@ msgid "(Additionally, releasing the lock for `%s' also failed: %s) " msgstr "(Ademais, a liberación do bloqueo para «%s» tamén fallou: %s) " #: ../gio/gdbusconnection.c:1148 ../gio/gdbusconnection.c:1374 -#: ../gio/gdbusconnection.c:1413 ../gio/gdbusconnection.c:1736 +#: ../gio/gdbusconnection.c:1413 ../gio/gdbusconnection.c:1737 msgid "The connection is closed" msgstr "O socket engadido está pechado" -#: ../gio/gdbusconnection.c:1680 +#: ../gio/gdbusconnection.c:1681 msgid "Timeout was reached" msgstr "Tempo de espera máximo alcanzado" -#: ../gio/gdbusconnection.c:2299 +#: ../gio/gdbusconnection.c:2300 msgid "" "Unsupported flags encountered when constructing a client-side connection" msgstr "" "Encontraronse bandeiras non compatíbeis ao construír a conexión da parte " "cliente" -#: ../gio/gdbusconnection.c:3751 ../gio/gdbusconnection.c:4069 +#: ../gio/gdbusconnection.c:3752 ../gio/gdbusconnection.c:4070 #, c-format msgid "" "No such interface `org.freedesktop.DBus.Properties' on object at path %s" @@ -1764,68 +1764,68 @@ msgstr "" "Non existe a interface «org.freedesktop.DBus.Properties» no obxecto co " "camiño %s" -#: ../gio/gdbusconnection.c:3823 +#: ../gio/gdbusconnection.c:3824 #, c-format msgid "Error setting property `%s': Expected type `%s' but got `%s'" msgstr "" "Produciuse un erro ao estabelecer a propiedade «%s»: Esperábase o tipo «%s» " "pero obtívose «%s»" -#: ../gio/gdbusconnection.c:3918 +#: ../gio/gdbusconnection.c:3919 #, c-format msgid "No such property `%s'" msgstr "Non existe a propiedade «%s»" -#: ../gio/gdbusconnection.c:3930 +#: ../gio/gdbusconnection.c:3931 #, c-format msgid "Property `%s' is not readable" msgstr "Non é posíbel escribir a chave %s" -#: ../gio/gdbusconnection.c:3941 +#: ../gio/gdbusconnection.c:3942 #, c-format msgid "Property `%s' is not writable" msgstr "Non é posíbel escribir a chave %s" -#: ../gio/gdbusconnection.c:4011 ../gio/gdbusconnection.c:5601 +#: ../gio/gdbusconnection.c:4012 ../gio/gdbusconnection.c:5602 #, c-format msgid "No such interface `%s'" msgstr "Non existe a interface «%s»" -#: ../gio/gdbusconnection.c:4199 +#: ../gio/gdbusconnection.c:4200 msgid "No such interface" msgstr "Non existe a interface" -#: ../gio/gdbusconnection.c:4415 ../gio/gdbusconnection.c:6117 +#: ../gio/gdbusconnection.c:4416 ../gio/gdbusconnection.c:6118 #, c-format msgid "No such interface `%s' on object at path %s" msgstr "Non existe a interface «%s» no obxecto co camiño %s" -#: ../gio/gdbusconnection.c:4467 +#: ../gio/gdbusconnection.c:4468 #, c-format msgid "No such method `%s'" msgstr "Non existe o método «%s»" -#: ../gio/gdbusconnection.c:4498 +#: ../gio/gdbusconnection.c:4499 #, c-format msgid "Type of message, `%s', does not match expected type `%s'" msgstr "O tipo da mensaxe, «%s», non coincide co tipo «%s» esperado" -#: ../gio/gdbusconnection.c:4717 +#: ../gio/gdbusconnection.c:4718 #, c-format msgid "An object is already exported for the interface %s at %s" msgstr "Xa hai un obxecto exportado para a interface %s en %s" -#: ../gio/gdbusconnection.c:4911 +#: ../gio/gdbusconnection.c:4912 #, c-format msgid "Method `%s' returned type `%s', but expected `%s'" msgstr "O método «%s» devolveu un tipo «%s» máis esperábase «%s»" -#: ../gio/gdbusconnection.c:5712 +#: ../gio/gdbusconnection.c:5713 #, c-format msgid "Method `%s' on interface `%s' with signature `%s' does not exist" msgstr "O método «%s» na interface «%s» coa sinatura «%s» non existe" -#: ../gio/gdbusconnection.c:5830 +#: ../gio/gdbusconnection.c:5831 #, c-format msgid "A subtree is already exported for %s" msgstr "Xa se exportou un subárbore para %s" @@ -2012,13 +2012,13 @@ msgid "Type of return value is incorrect, got `%s', expected `%s'" msgstr "" "O tipo do valor de retorno é incorrecto, obtívose «%s» e esperábase «%s»" -#: ../gio/gdbusmethodinvocation.c:406 ../gio/gsocket.c:3023 -#: ../gio/gsocket.c:3104 +#: ../gio/gdbusmethodinvocation.c:406 ../gio/gsocket.c:3027 +#: ../gio/gsocket.c:3108 #, c-format msgid "Error sending message: %s" msgstr "Produciuse un erro ao enviar a mensaxe: %s" -#: ../gio/gdbusprivate.c:1756 +#: ../gio/gdbusprivate.c:1768 msgid "Unable to load /var/lib/dbus/machine-id: " msgstr "Non é posíbel ler /var/lib/dbus/machine-id: " @@ -2237,36 +2237,36 @@ msgstr "Camiño do obxecto a monitorizar" msgid "Monitor a remote object." msgstr "Monitoriza un obxecto remoto." -#: ../gio/gdesktopappinfo.c:471 ../gio/gwin32appinfo.c:221 +#: ../gio/gdesktopappinfo.c:480 ../gio/gwin32appinfo.c:221 msgid "Unnamed" msgstr "Sen nome" -#: ../gio/gdesktopappinfo.c:755 +#: ../gio/gdesktopappinfo.c:764 msgid "Desktop file didn't specify Exec field" msgstr "O ficheiro de escritorio non especificou o campo Exec" -#: ../gio/gdesktopappinfo.c:948 +#: ../gio/gdesktopappinfo.c:1031 msgid "Unable to find terminal required for application" msgstr "Non é posíbel encontrar o terminal requirido polo aplicativo" -#: ../gio/gdesktopappinfo.c:1157 +#: ../gio/gdesktopappinfo.c:1323 #, c-format msgid "Can't create user application configuration folder %s: %s" msgstr "" "Non é posíbel crear o cartafol de configuración do aplicativo de usuario %s: " "%s" -#: ../gio/gdesktopappinfo.c:1161 +#: ../gio/gdesktopappinfo.c:1327 #, c-format msgid "Can't create user MIME configuration folder %s: %s" msgstr "Non é posíbel crear o cartafol de configuración MIME %s do usuario: %s" -#: ../gio/gdesktopappinfo.c:1569 +#: ../gio/gdesktopappinfo.c:1820 #, c-format msgid "Can't create user desktop file %s" msgstr "Non é posíbel crear o ficheiro de escritorio %s do usuario" -#: ../gio/gdesktopappinfo.c:1683 +#: ../gio/gdesktopappinfo.c:1936 #, c-format msgid "Custom definition for %s" msgstr "Definición personalizada para %s" @@ -2278,19 +2278,19 @@ msgstr "a unidade non implementa a expulsión" #. Translators: This is an error #. * message for drive objects that #. * don't implement any of eject or eject_with_operation. -#: ../gio/gdrive.c:443 +#: ../gio/gdrive.c:444 msgid "drive doesn't implement eject or eject_with_operation" msgstr "a unidade non implementa a expulsión ou operación_de_expulsión" -#: ../gio/gdrive.c:520 +#: ../gio/gdrive.c:521 msgid "drive doesn't implement polling for media" msgstr "a unidade non implementa a consulta para medios" -#: ../gio/gdrive.c:725 +#: ../gio/gdrive.c:728 msgid "drive doesn't implement start" msgstr "a unidade non implementa o inicio" -#: ../gio/gdrive.c:827 +#: ../gio/gdrive.c:831 msgid "drive doesn't implement stop" msgstr "a unidade non implementa a detención" @@ -2305,31 +2305,31 @@ msgid "Malformed number of tokens (%d) in GEmblem encoding" msgstr "" "Número formado incorrectamente de tokens (%d) na codificación de GEmblem" -#: ../gio/gemblemedicon.c:293 +#: ../gio/gemblemedicon.c:368 #, c-format msgid "Can't handle version %d of GEmblemedIcon encoding" msgstr "Non é posíbel manipular a versión %d da codificación de GEmblemedicon" -#: ../gio/gemblemedicon.c:303 +#: ../gio/gemblemedicon.c:378 #, c-format msgid "Malformed number of tokens (%d) in GEmblemedIcon encoding" msgstr "" "Número formado incorrectamente de tokens (%d) na codificación de " "GEmblemedicon" -#: ../gio/gemblemedicon.c:326 +#: ../gio/gemblemedicon.c:401 msgid "Expected a GEmblem for GEmblemedIcon" msgstr "Esperábase un GEmblem para o GEmblemedIcon" -#: ../gio/gfile.c:872 ../gio/gfile.c:1102 ../gio/gfile.c:1237 -#: ../gio/gfile.c:1474 ../gio/gfile.c:1528 ../gio/gfile.c:1585 -#: ../gio/gfile.c:1668 ../gio/gfile.c:1723 ../gio/gfile.c:1783 -#: ../gio/gfile.c:1837 ../gio/gfile.c:3307 ../gio/gfile.c:3361 -#: ../gio/gfile.c:3493 ../gio/gfile.c:3534 ../gio/gfile.c:3861 -#: ../gio/gfile.c:4263 ../gio/gfile.c:4349 ../gio/gfile.c:4438 -#: ../gio/gfile.c:4536 ../gio/gfile.c:4623 ../gio/gfile.c:4717 -#: ../gio/gfile.c:5038 ../gio/gfile.c:5305 ../gio/gfile.c:5370 -#: ../gio/gfile.c:6944 ../gio/gfile.c:7034 ../gio/gfile.c:7120 +#: ../gio/gfile.c:872 ../gio/gfile.c:1103 ../gio/gfile.c:1238 +#: ../gio/gfile.c:1475 ../gio/gfile.c:1529 ../gio/gfile.c:1586 +#: ../gio/gfile.c:1669 ../gio/gfile.c:1724 ../gio/gfile.c:1784 +#: ../gio/gfile.c:1838 ../gio/gfile.c:3308 ../gio/gfile.c:3362 +#: ../gio/gfile.c:3494 ../gio/gfile.c:3535 ../gio/gfile.c:3862 +#: ../gio/gfile.c:4264 ../gio/gfile.c:4350 ../gio/gfile.c:4439 +#: ../gio/gfile.c:4537 ../gio/gfile.c:4624 ../gio/gfile.c:4718 +#: ../gio/gfile.c:5039 ../gio/gfile.c:5306 ../gio/gfile.c:5371 +#: ../gio/gfile.c:6945 ../gio/gfile.c:7035 ../gio/gfile.c:7121 #: ../gio/win32/gwinhttpfile.c:439 msgid "Operation not supported" msgstr "Operación non permitida" @@ -2342,58 +2342,58 @@ msgstr "Operación non permitida" #. Translators: This is an error message when trying to find #. * the enclosing (user visible) mount of a file, but none #. * exists. -#: ../gio/gfile.c:1358 ../gio/glocalfile.c:1059 ../gio/glocalfile.c:1070 -#: ../gio/glocalfile.c:1083 +#: ../gio/gfile.c:1359 ../gio/glocalfile.c:1061 ../gio/glocalfile.c:1072 +#: ../gio/glocalfile.c:1085 msgid "Containing mount does not exist" msgstr "O punto de montaxe contido non existe" -#: ../gio/gfile.c:2411 ../gio/glocalfile.c:2258 +#: ../gio/gfile.c:2412 ../gio/glocalfile.c:2260 msgid "Can't copy over directory" msgstr "Non é posíbel copiar sobre o directorio" -#: ../gio/gfile.c:2472 +#: ../gio/gfile.c:2473 msgid "Can't copy directory over directory" msgstr "Non é posíbel copiar un directorio sobre o directorio" -#: ../gio/gfile.c:2480 ../gio/glocalfile.c:2267 +#: ../gio/gfile.c:2481 ../gio/glocalfile.c:2269 msgid "Target file exists" msgstr "O ficheiro de destino xa existe" -#: ../gio/gfile.c:2498 +#: ../gio/gfile.c:2499 msgid "Can't recursively copy directory" msgstr "Non é posíbel copiar o directorio recursivamente" -#: ../gio/gfile.c:2758 +#: ../gio/gfile.c:2759 msgid "Splice not supported" msgstr "Non se admite a unión" -#: ../gio/gfile.c:2762 +#: ../gio/gfile.c:2763 #, c-format msgid "Error splicing file: %s" msgstr "Produciuse un erro ao empalmar o ficheiro: %s" -#: ../gio/gfile.c:2909 +#: ../gio/gfile.c:2910 msgid "Can't copy special file" msgstr "Non é posíbel copiar o ficheiro especial" -#: ../gio/gfile.c:3483 +#: ../gio/gfile.c:3484 msgid "Invalid symlink value given" msgstr "O valor da ligazón simbólica dada non é válido" -#: ../gio/gfile.c:3577 +#: ../gio/gfile.c:3578 msgid "Trash not supported" msgstr "Non se asiste o Lixo" -#: ../gio/gfile.c:3626 +#: ../gio/gfile.c:3627 #, c-format msgid "File names cannot contain '%c'" msgstr "Os nomes de ficheiro non poden conter '%c'" -#: ../gio/gfile.c:6003 ../gio/gvolume.c:332 +#: ../gio/gfile.c:6004 ../gio/gvolume.c:332 msgid "volume doesn't implement mount" msgstr "o volume non implementa o montado" -#: ../gio/gfile.c:6114 +#: ../gio/gfile.c:6115 msgid "No application is registered as handling this file" msgstr "Non hai ningún aplicativo rexistrado para manexar este ficheiro" @@ -2790,110 +2790,110 @@ msgstr "" msgid "Invalid filename %s" msgstr "O nome do ficheiro non é válido %s" -#: ../gio/glocalfile.c:967 +#: ../gio/glocalfile.c:969 #, c-format msgid "Error getting filesystem info: %s" msgstr "Produciuse un erro ao obter a información do sistema de ficheiros: %s" -#: ../gio/glocalfile.c:1105 +#: ../gio/glocalfile.c:1107 msgid "Can't rename root directory" msgstr "Non é posíbel renomear o directorio raíz" -#: ../gio/glocalfile.c:1125 ../gio/glocalfile.c:1151 +#: ../gio/glocalfile.c:1127 ../gio/glocalfile.c:1153 #, c-format msgid "Error renaming file: %s" msgstr "Produciuse un erro ao renomear o ficheiro: %s" -#: ../gio/glocalfile.c:1134 +#: ../gio/glocalfile.c:1136 msgid "Can't rename file, filename already exist" msgstr "Non é posíbel renomear o ficheiro; o ficheiro xa existe" -#: ../gio/glocalfile.c:1147 ../gio/glocalfile.c:2131 ../gio/glocalfile.c:2160 -#: ../gio/glocalfile.c:2320 ../gio/glocalfileoutputstream.c:571 +#: ../gio/glocalfile.c:1149 ../gio/glocalfile.c:2133 ../gio/glocalfile.c:2162 +#: ../gio/glocalfile.c:2322 ../gio/glocalfileoutputstream.c:571 #: ../gio/glocalfileoutputstream.c:624 ../gio/glocalfileoutputstream.c:669 #: ../gio/glocalfileoutputstream.c:1151 msgid "Invalid filename" msgstr "O nome do ficheiro non é válido" -#: ../gio/glocalfile.c:1308 +#: ../gio/glocalfile.c:1310 #, c-format msgid "Error opening file: %s" msgstr "Produciuse un erro ao abrir o ficheiro: %s" -#: ../gio/glocalfile.c:1318 +#: ../gio/glocalfile.c:1320 msgid "Can't open directory" msgstr "Non é posíbel abrir o directorio" -#: ../gio/glocalfile.c:1443 +#: ../gio/glocalfile.c:1445 #, c-format msgid "Error removing file: %s" msgstr "Produciuse un erro ao eliminar o ficheiro: %s" -#: ../gio/glocalfile.c:1810 +#: ../gio/glocalfile.c:1812 #, c-format msgid "Error trashing file: %s" msgstr "Produciuse un erro ao mover ao lixo o ficheiro: %s" -#: ../gio/glocalfile.c:1833 +#: ../gio/glocalfile.c:1835 #, c-format msgid "Unable to create trash dir %s: %s" msgstr "Non é posíbel crear o directorio do lixo %s: %s" -#: ../gio/glocalfile.c:1854 +#: ../gio/glocalfile.c:1856 msgid "Unable to find toplevel directory for trash" msgstr "Non é posíbel encontrar o directorio de nivel superior para o lixo" -#: ../gio/glocalfile.c:1933 ../gio/glocalfile.c:1953 +#: ../gio/glocalfile.c:1935 ../gio/glocalfile.c:1955 msgid "Unable to find or create trash directory" msgstr "Non é posíbel encontrar ou crear o directorio do lixo" -#: ../gio/glocalfile.c:1987 +#: ../gio/glocalfile.c:1989 #, c-format msgid "Unable to create trashing info file: %s" msgstr "Non é posíbel crear a información de lixo para o ficheiro: %s" -#: ../gio/glocalfile.c:2016 ../gio/glocalfile.c:2021 ../gio/glocalfile.c:2101 -#: ../gio/glocalfile.c:2108 +#: ../gio/glocalfile.c:2018 ../gio/glocalfile.c:2023 ../gio/glocalfile.c:2103 +#: ../gio/glocalfile.c:2110 #, c-format msgid "Unable to trash file: %s" msgstr "Non é posíbel mover ao lixo o ficheiro: %s" -#: ../gio/glocalfile.c:2135 +#: ../gio/glocalfile.c:2137 #, c-format msgid "Error creating directory: %s" msgstr "Produciuse un erro ao crear o directorio: %s" -#: ../gio/glocalfile.c:2164 +#: ../gio/glocalfile.c:2166 #, c-format msgid "Filesystem does not support symbolic links" msgstr "O sistema de ficheiros non é compatíbel coas ligazóns simbólicas" -#: ../gio/glocalfile.c:2168 +#: ../gio/glocalfile.c:2170 #, c-format msgid "Error making symbolic link: %s" msgstr "Produciuse un erro ao crear a ligazón simbolica: %s" -#: ../gio/glocalfile.c:2230 ../gio/glocalfile.c:2324 +#: ../gio/glocalfile.c:2232 ../gio/glocalfile.c:2326 #, c-format msgid "Error moving file: %s" msgstr "Produciuse un erro ao mover o ficheiro: %s" -#: ../gio/glocalfile.c:2253 +#: ../gio/glocalfile.c:2255 msgid "Can't move directory over directory" msgstr "Non é posíbel mover o directorio sobre un directorio" -#: ../gio/glocalfile.c:2280 ../gio/glocalfileoutputstream.c:949 +#: ../gio/glocalfile.c:2282 ../gio/glocalfileoutputstream.c:949 #: ../gio/glocalfileoutputstream.c:963 ../gio/glocalfileoutputstream.c:978 #: ../gio/glocalfileoutputstream.c:994 ../gio/glocalfileoutputstream.c:1008 msgid "Backup file creation failed" msgstr "Fallou a creación do ficheiro de seguranza" -#: ../gio/glocalfile.c:2299 +#: ../gio/glocalfile.c:2301 #, c-format msgid "Error removing target file: %s" msgstr "Produciuse un erro ao eliminar o ficheiro obxectivo: %s" -#: ../gio/glocalfile.c:2313 +#: ../gio/glocalfile.c:2315 msgid "Move between mounts not supported" msgstr "Non se permite mover entre puntos de montaxe" @@ -3122,7 +3122,7 @@ msgstr "mount non implementa \"extraer\"" #. Translators: This is an error #. * message for mount objects that #. * don't implement any of unmount or unmount_with_operation. -#: ../gio/gmount.c:522 +#: ../gio/gmount.c:523 msgid "mount doesn't implement \"unmount\" or \"unmount_with_operation\"" msgstr "" "a montaxe non implementa o \"desmontado\" ou a \"operación_con_desmontado\"" @@ -3130,28 +3130,28 @@ msgstr "" #. Translators: This is an error #. * message for mount objects that #. * don't implement any of eject or eject_with_operation. -#: ../gio/gmount.c:609 +#: ../gio/gmount.c:611 msgid "mount doesn't implement \"eject\" or \"eject_with_operation\"" msgstr "a montaxe non implementa a expulsión ou a \"operación_con_expulsión\"" #. Translators: This is an error #. * message for mount objects that #. * don't implement remount. -#: ../gio/gmount.c:698 +#: ../gio/gmount.c:701 msgid "mount doesn't implement \"remount\"" msgstr "a montaxe non implementa a \"remontaxe\"" #. Translators: This is an error #. * message for mount objects that #. * don't implement content type guessing. -#: ../gio/gmount.c:782 +#: ../gio/gmount.c:785 msgid "mount doesn't implement content type guessing" msgstr "a montaxe non implementa a averiguación do tipo de contido" #. Translators: This is an error #. * message for mount objects that #. * don't implement content type guessing. -#: ../gio/gmount.c:871 +#: ../gio/gmount.c:874 msgid "mount doesn't implement synchronous content type guessing" msgstr "a montaxe non implementa a averiguación síncrona do tipo de contido" @@ -3233,66 +3233,66 @@ msgstr "A ruta non debe conter dúas barras adxacentes (//)\n" msgid "No such key '%s'\n" msgstr "Non existe a chave «%s»\n" -#: ../gio/gsettings-tool.c:427 +#: ../gio/gsettings-tool.c:429 #, c-format msgid "The provided value is outside of the valid range\n" msgstr "O valor fornecido está fora do rango válido\n" -#: ../gio/gsettings-tool.c:456 +#: ../gio/gsettings-tool.c:458 msgid "List the installed (non-relocatable) schemas" msgstr "Lista dos esquemas instalados (non reposicionábeis)" -#: ../gio/gsettings-tool.c:462 +#: ../gio/gsettings-tool.c:464 msgid "List the installed relocatable schemas" msgstr "Lista dos esquemas instalados reposicionábeis" -#: ../gio/gsettings-tool.c:468 +#: ../gio/gsettings-tool.c:470 msgid "Lists the keys in SCHEMA" msgstr "Lista das chaves en ESQUEMA" -#: ../gio/gsettings-tool.c:469 ../gio/gsettings-tool.c:475 -#: ../gio/gsettings-tool.c:481 +#: ../gio/gsettings-tool.c:471 ../gio/gsettings-tool.c:477 +#: ../gio/gsettings-tool.c:483 msgid "SCHEMA[:PATH]" msgstr "ESQUEMA[:RUTA]" -#: ../gio/gsettings-tool.c:474 +#: ../gio/gsettings-tool.c:476 msgid "Lists the children of SCHEMA" msgstr "Lista dos fillos de SCHEMA" -#: ../gio/gsettings-tool.c:480 +#: ../gio/gsettings-tool.c:482 msgid "List keys and values, recursively" msgstr "Lista das chaves e valores, recursivo" -#: ../gio/gsettings-tool.c:486 +#: ../gio/gsettings-tool.c:488 msgid "Gets the value of KEY" msgstr "Obtén o valor de CHAVE" -#: ../gio/gsettings-tool.c:487 ../gio/gsettings-tool.c:493 -#: ../gio/gsettings-tool.c:505 ../gio/gsettings-tool.c:511 +#: ../gio/gsettings-tool.c:489 ../gio/gsettings-tool.c:495 +#: ../gio/gsettings-tool.c:507 ../gio/gsettings-tool.c:513 msgid "SCHEMA[:PATH] KEY" msgstr "ESQUEMA[:RUTA] CHAVE" -#: ../gio/gsettings-tool.c:492 +#: ../gio/gsettings-tool.c:494 msgid "Queries the range of valid values for KEY" msgstr "Consulta o rango de valores válidos de CHAVE" -#: ../gio/gsettings-tool.c:498 +#: ../gio/gsettings-tool.c:500 msgid "Sets the value of KEY to VALUE" msgstr "Estabelece o valor de CHAVE a VALOR" -#: ../gio/gsettings-tool.c:499 +#: ../gio/gsettings-tool.c:501 msgid "SCHEMA[:PATH] KEY VALUE" msgstr "ESQUEMA[:RUTA] CHAVE VALOR" -#: ../gio/gsettings-tool.c:504 +#: ../gio/gsettings-tool.c:506 msgid "Resets KEY to its default value" msgstr "Estabelece a CHAVE ao seu valor predeterminado" -#: ../gio/gsettings-tool.c:510 +#: ../gio/gsettings-tool.c:512 msgid "Checks if KEY is writable" msgstr "Comproba se a CHAVE é escribíbel" -#: ../gio/gsettings-tool.c:516 +#: ../gio/gsettings-tool.c:518 msgid "" "Monitors KEY for changes.\n" "If no KEY is specified, monitor all keys in SCHEMA.\n" @@ -3302,11 +3302,11 @@ msgstr "" "Se non se especifica a CHAVE, monitoriza todos os cambios en ESQUEMA.\n" "Use ^C para deter a monitorización.\n" -#: ../gio/gsettings-tool.c:519 +#: ../gio/gsettings-tool.c:521 msgid "SCHEMA[:PATH] [KEY]" msgstr "ESQUEMA[:RUTA] [CHAVE]" -#: ../gio/gsettings-tool.c:523 +#: ../gio/gsettings-tool.c:525 #, c-format msgid "" "Unknown command %s\n" @@ -3315,7 +3315,7 @@ msgstr "" "Orde «%s» descoñecida\n" "\n" -#: ../gio/gsettings-tool.c:531 +#: ../gio/gsettings-tool.c:533 msgid "" "Usage:\n" " gsettings COMMAND [ARGS...]\n" @@ -3357,7 +3357,7 @@ msgstr "" "Use 'gsettings help ORDE' para obter axuda máis extensa.\n" "\n" -#: ../gio/gsettings-tool.c:552 +#: ../gio/gsettings-tool.c:554 #, c-format msgid "" "Usage:\n" @@ -3372,11 +3372,11 @@ msgstr "" "%s\n" "\n" -#: ../gio/gsettings-tool.c:557 +#: ../gio/gsettings-tool.c:559 msgid "Arguments:\n" msgstr "Argumentos:\n" -#: ../gio/gsettings-tool.c:561 +#: ../gio/gsettings-tool.c:563 msgid "" " SCHEMA The name of the schema\n" " PATH The path, for relocatable schemas\n" @@ -3384,19 +3384,19 @@ msgstr "" " SCHEMA O nome do esquema\n" " KEY A ruta, para os esquemas reposicionábeis\n" -#: ../gio/gsettings-tool.c:566 +#: ../gio/gsettings-tool.c:568 msgid " KEY The (optional) key within the schema\n" msgstr " KEY A chave (opcional) no esquema\n" -#: ../gio/gsettings-tool.c:570 +#: ../gio/gsettings-tool.c:572 msgid " KEY The key within the schema\n" msgstr " KEY A chave nun esquema\n" -#: ../gio/gsettings-tool.c:574 +#: ../gio/gsettings-tool.c:576 msgid " VALUE The value to set\n" msgstr " VALUE O valor a estabelecer\n" -#: ../gio/gsettings-tool.c:650 +#: ../gio/gsettings-tool.c:652 #, c-format msgid "Empty schema name given" msgstr "Forneceuse un nome de esquema baleiros" @@ -3414,7 +3414,7 @@ msgstr "O socket non é correcto, a inicialización fallou debido a: %s" msgid "Socket is already closed" msgstr "O fluxo de orixe xa está pechado" -#: ../gio/gsocket.c:300 ../gio/gsocket.c:2765 ../gio/gsocket.c:2809 +#: ../gio/gsocket.c:300 ../gio/gsocket.c:2769 ../gio/gsocket.c:2813 msgid "Socket I/O timed out" msgstr "Tempo de espera do Socket de E/S superado" @@ -3470,7 +3470,7 @@ msgstr "Conexión en marcha" msgid "Error connecting: %s" msgstr "Produciuse un erro ao conectar: %s" -#: ../gio/gsocket.c:1716 ../gio/gsocket.c:3528 +#: ../gio/gsocket.c:1716 ../gio/gsocket.c:3532 #, c-format msgid "Unable to get pending error: %s" msgstr "Non é posíbel obter o erro pendente: %s" @@ -3490,35 +3490,35 @@ msgstr "Produciuse un erro ao enviar datos: %s" msgid "Error closing socket: %s" msgstr "Produciuse un erro ao pechar o socket: %s" -#: ../gio/gsocket.c:2758 +#: ../gio/gsocket.c:2762 #, c-format msgid "Waiting for socket condition: %s" msgstr "Agardando pola situación do socket: %s" -#: ../gio/gsocket.c:3048 +#: ../gio/gsocket.c:3052 msgid "GSocketControlMessage not supported on windows" msgstr "O GSocketControlMessage non está permitido en windows" -#: ../gio/gsocket.c:3307 ../gio/gsocket.c:3448 +#: ../gio/gsocket.c:3311 ../gio/gsocket.c:3452 #, c-format msgid "Error receiving message: %s" msgstr "Produciuse un erro ao recibir a mensaxe: %s" -#: ../gio/gsocket.c:3543 +#: ../gio/gsocket.c:3547 msgid "g_socket_get_credentials not implemented for this OS" msgstr "" "g_socket_get_credentials non está implementado para este sistema operativo" -#: ../gio/gsocketclient.c:798 ../gio/gsocketclient.c:1364 +#: ../gio/gsocketclient.c:798 ../gio/gsocketclient.c:1368 msgid "Unknown error on connect" msgstr "Erro descoñecido ao conectar" -#: ../gio/gsocketclient.c:836 ../gio/gsocketclient.c:1248 +#: ../gio/gsocketclient.c:836 ../gio/gsocketclient.c:1252 msgid "Trying to proxy over non-TCP connection is not supported." msgstr "" "Non se permite a conexión ao proxy mediante unha conexión que non sexa TCP." -#: ../gio/gsocketclient.c:858 ../gio/gsocketclient.c:1273 +#: ../gio/gsocketclient.c:858 ../gio/gsocketclient.c:1277 #, c-format msgid "Proxy protocol '%s' is not supported." msgstr "Non é posíbel usar o proxy co protocolo «%s»" @@ -3624,23 +3624,23 @@ msgid "SOCKSv5 proxy does not support provided address type." msgstr "O proxy SOCKSv5 non é compatíbel co tipo de enderezo fornecido." #: ../gio/gsocks5proxy.c:402 -msgid "Unkown SOCKSv5 proxy error." -msgstr "Produciuse un erro no proxy SOCKSv5 descoñecido." +msgid "Unknown SOCKSv5 proxy error." +msgstr "Erro no proxy SOCKSv5 descoñecido." #: ../gio/gthemedicon.c:498 #, c-format msgid "Can't handle version %d of GThemedIcon encoding" msgstr "Non é posíbel manipular a versión %d da codificación de GThemedIcon" -#: ../gio/gtlscertificate.c:270 +#: ../gio/gtlscertificate.c:228 msgid "No PEM-encoded certificate found" msgstr "Non se encontrou ningún certificado PEM codificado" -#: ../gio/gtlscertificate.c:279 +#: ../gio/gtlscertificate.c:237 msgid "Could not parse PEM-encoded certificate" msgstr "Non foi posíbel analizar o certificado PEM codificado" -#: ../gio/gtlscertificate.c:300 +#: ../gio/gtlscertificate.c:258 msgid "Could not parse PEM-encoded private key" msgstr "Non foi posíbel analizar a chave privada PEM codificada" @@ -3710,7 +3710,7 @@ msgstr "Produciuse un erro ao ler de unix: %s" msgid "Error closing unix: %s" msgstr "Produciuse un erro ao pechar unix: %s" -#: ../gio/gunixmounts.c:1846 ../gio/gunixmounts.c:1883 +#: ../gio/gunixmounts.c:1848 ../gio/gunixmounts.c:1885 msgid "Filesystem root" msgstr "Raíz do sistema de ficheiros" @@ -3733,7 +3733,7 @@ msgstr "o volume non implementa a expulsión" #. Translators: This is an error #. * message for volume objects that #. * don't implement any of eject or eject_with_operation. -#: ../gio/gvolume.c:487 +#: ../gio/gvolume.c:488 msgid "volume doesn't implement eject or eject_with_operation" msgstr "o volume non implementa a expulsión ou a operación_de_expulsión" diff --git a/po/he.po b/po/he.po index 0b099c277..1eef99370 100644 --- a/po/he.po +++ b/po/he.po @@ -12,8 +12,8 @@ msgid "" msgstr "" "Project-Id-Version: glib.HEAD.he\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-12-05 13:17+0200\n" -"PO-Revision-Date: 2010-12-05 13:18+0200\n" +"POT-Creation-Date: 2010-12-23 17:19+0200\n" +"PO-Revision-Date: 2010-12-23 17:20+0200\n" "Last-Translator: Yaron Shahrabani \n" "Language-Team: Gezer (Hebrew)\n" "MIME-Version: 1.0\n" @@ -394,134 +394,134 @@ msgstr "א׳" msgid "Error opening directory '%s': %s" msgstr "Error opening directory '%s': %s" -#: ../glib/gfileutils.c:536 ../glib/gfileutils.c:624 +#: ../glib/gfileutils.c:540 ../glib/gfileutils.c:628 #, c-format msgid "Could not allocate %lu bytes to read file \"%s\"" msgstr "Could not allocate %lu bytes to read file \"%s\"" -#: ../glib/gfileutils.c:551 +#: ../glib/gfileutils.c:555 #, c-format msgid "Error reading file '%s': %s" msgstr "Error reading file '%s': %s" -#: ../glib/gfileutils.c:565 +#: ../glib/gfileutils.c:569 #, c-format msgid "File \"%s\" is too large" msgstr "File \"%s\" is too large" -#: ../glib/gfileutils.c:648 +#: ../glib/gfileutils.c:652 #, c-format msgid "Failed to read from file '%s': %s" msgstr "Failed to read from file '%s': %s" -#: ../glib/gfileutils.c:699 ../glib/gfileutils.c:786 +#: ../glib/gfileutils.c:703 ../glib/gfileutils.c:790 #, c-format msgid "Failed to open file '%s': %s" msgstr "Failed to open file '%s': %s" -#: ../glib/gfileutils.c:716 ../glib/gmappedfile.c:169 +#: ../glib/gfileutils.c:720 ../glib/gmappedfile.c:169 #, c-format msgid "Failed to get attributes of file '%s': fstat() failed: %s" msgstr "Failed to get attributes of file '%s': fstat() failed: %s" -#: ../glib/gfileutils.c:750 +#: ../glib/gfileutils.c:754 #, c-format msgid "Failed to open file '%s': fdopen() failed: %s" msgstr "Failed to open file '%s': fdopen() failed: %s" -#: ../glib/gfileutils.c:858 +#: ../glib/gfileutils.c:862 #, c-format msgid "Failed to rename file '%s' to '%s': g_rename() failed: %s" msgstr "Failed to rename file '%s' to '%s': g_rename() failed: %s" -#: ../glib/gfileutils.c:900 ../glib/gfileutils.c:1369 +#: ../glib/gfileutils.c:904 ../glib/gfileutils.c:1388 #, c-format msgid "Failed to create file '%s': %s" msgstr "Failed to create file '%s': %s" -#: ../glib/gfileutils.c:914 +#: ../glib/gfileutils.c:918 #, c-format msgid "Failed to open file '%s' for writing: fdopen() failed: %s" msgstr "Failed to open file '%s' for writing: fdopen() failed: %s" -#: ../glib/gfileutils.c:939 +#: ../glib/gfileutils.c:943 #, c-format msgid "Failed to write file '%s': fwrite() failed: %s" msgstr "Failed to write file '%s': fwrite() failed: %s" -#: ../glib/gfileutils.c:958 +#: ../glib/gfileutils.c:962 #, c-format msgid "Failed to write file '%s': fflush() failed: %s" msgstr "Failed to write file '%s': fflush() failed: %s" -#: ../glib/gfileutils.c:987 +#: ../glib/gfileutils.c:1005 #, c-format msgid "Failed to write file '%s': fsync() failed: %s" msgstr "Failed to write file '%s': fsync() failed: %s" -#: ../glib/gfileutils.c:1006 +#: ../glib/gfileutils.c:1025 #, c-format msgid "Failed to close file '%s': fclose() failed: %s" msgstr "Failed to close file '%s': fclose() failed: %s" -#: ../glib/gfileutils.c:1127 +#: ../glib/gfileutils.c:1146 #, c-format msgid "Existing file '%s' could not be removed: g_unlink() failed: %s" msgstr "Existing file '%s' could not be removed: g_unlink() failed: %s" -#: ../glib/gfileutils.c:1331 +#: ../glib/gfileutils.c:1350 #, c-format msgid "Template '%s' invalid, should not contain a '%s'" msgstr "Template '%s' invalid, should not contain a '%s'" -#: ../glib/gfileutils.c:1344 +#: ../glib/gfileutils.c:1363 #, c-format msgid "Template '%s' doesn't contain XXXXXX" msgstr "Template '%s' doesn't contain XXXXXX" -#: ../glib/gfileutils.c:1777 +#: ../glib/gfileutils.c:1796 #, c-format msgid "%u byte" msgid_plural "%u bytes" msgstr[0] "בית אחד" msgstr[1] "%u בתים" -#: ../glib/gfileutils.c:1785 +#: ../glib/gfileutils.c:1804 #, c-format msgid "%.1f KB" msgstr "%.1f ק״ב" -#: ../glib/gfileutils.c:1790 +#: ../glib/gfileutils.c:1809 #, c-format msgid "%.1f MB" msgstr "%.1f מ״ב" -#: ../glib/gfileutils.c:1795 +#: ../glib/gfileutils.c:1814 #, c-format msgid "%.1f GB" msgstr "%.1f ג״ב" -#: ../glib/gfileutils.c:1800 +#: ../glib/gfileutils.c:1819 #, c-format msgid "%.1f TB" msgstr "%.1f ט״ב" -#: ../glib/gfileutils.c:1805 +#: ../glib/gfileutils.c:1824 #, c-format msgid "%.1f PB" msgstr "%.1f פ״ב" -#: ../glib/gfileutils.c:1810 +#: ../glib/gfileutils.c:1829 #, c-format msgid "%.1f EB" msgstr "%.1f א״ב" -#: ../glib/gfileutils.c:1853 +#: ../glib/gfileutils.c:1872 #, c-format msgid "Failed to read the symbolic link '%s': %s" msgstr "Failed to read the symbolic link '%s': %s" -#: ../glib/gfileutils.c:1874 +#: ../glib/gfileutils.c:1893 msgid "Symbolic links not supported" msgstr "Symbolic links not supported" @@ -1375,15 +1375,15 @@ msgstr "Value '%s' cannot be interpreted as a boolean." msgid "Too large count value passed to %s" msgstr "Too large count value passed to %s" -#: ../gio/gbufferedinputstream.c:880 ../gio/ginputstream.c:888 +#: ../gio/gbufferedinputstream.c:881 ../gio/ginputstream.c:888 #: ../gio/giostream.c:306 ../gio/goutputstream.c:1197 msgid "Stream is already closed" msgstr "Stream is already closed" -#: ../gio/gcancellable.c:433 ../gio/gdbusconnection.c:1636 -#: ../gio/gdbusconnection.c:1725 ../gio/gdbusconnection.c:1911 -#: ../gio/glocalfile.c:2102 ../gio/gsimpleasyncresult.c:811 -#: ../gio/gsimpleasyncresult.c:837 +#: ../gio/gcancellable.c:433 ../gio/gdbusconnection.c:1637 +#: ../gio/gdbusconnection.c:1726 ../gio/gdbusconnection.c:1912 +#: ../gio/glocalfile.c:2102 ../gio/gsimpleasyncresult.c:810 +#: ../gio/gsimpleasyncresult.c:836 msgid "Operation was cancelled" msgstr "Operation was cancelled" @@ -1562,7 +1562,7 @@ msgstr "Command line `%s' exited with non-zero exit status %d: %s" msgid "Cannot determine session bus address (not implemented for this OS)" msgstr "Cannot determine session bus address (not implemented for this OS)" -#: ../gio/gdbusaddress.c:1242 ../gio/gdbusconnection.c:6167 +#: ../gio/gdbusaddress.c:1242 ../gio/gdbusconnection.c:6168 #, c-format msgid "" "Cannot determine bus address from DBUS_STARTER_BUS_TYPE environment variable " @@ -1571,7 +1571,7 @@ msgstr "" "Cannot determine bus address from DBUS_STARTER_BUS_TYPE environment variable " "- unknown value `%s'" -#: ../gio/gdbusaddress.c:1251 ../gio/gdbusconnection.c:6176 +#: ../gio/gdbusaddress.c:1251 ../gio/gdbusconnection.c:6177 msgid "" "Cannot determine bus address because the DBUS_STARTER_BUS_TYPE environment " "variable is not set" @@ -1680,87 +1680,87 @@ msgid "(Additionally, releasing the lock for `%s' also failed: %s) " msgstr "(Additionally, releasing the lock for `%s' also failed: %s) " #: ../gio/gdbusconnection.c:1148 ../gio/gdbusconnection.c:1374 -#: ../gio/gdbusconnection.c:1413 ../gio/gdbusconnection.c:1736 +#: ../gio/gdbusconnection.c:1413 ../gio/gdbusconnection.c:1737 msgid "The connection is closed" msgstr "The connection is closed" -#: ../gio/gdbusconnection.c:1680 +#: ../gio/gdbusconnection.c:1681 msgid "Timeout was reached" msgstr "Timeout was reached" -#: ../gio/gdbusconnection.c:2299 +#: ../gio/gdbusconnection.c:2300 msgid "" "Unsupported flags encountered when constructing a client-side connection" msgstr "" "Unsupported flags encountered when constructing a client-side connection" -#: ../gio/gdbusconnection.c:3751 ../gio/gdbusconnection.c:4069 +#: ../gio/gdbusconnection.c:3752 ../gio/gdbusconnection.c:4070 #, c-format msgid "" "No such interface `org.freedesktop.DBus.Properties' on object at path %s" msgstr "" "No such interface `org.freedesktop.DBus.Properties' on object at path %s" -#: ../gio/gdbusconnection.c:3823 +#: ../gio/gdbusconnection.c:3824 #, c-format msgid "Error setting property `%s': Expected type `%s' but got `%s'" msgstr "Error setting property `%s': Expected type `%s' but got `%s'" -#: ../gio/gdbusconnection.c:3918 +#: ../gio/gdbusconnection.c:3919 #, c-format msgid "No such property `%s'" msgstr "No such property `%s'" -#: ../gio/gdbusconnection.c:3930 +#: ../gio/gdbusconnection.c:3931 #, c-format msgid "Property `%s' is not readable" msgstr "Property `%s' is not readable" -#: ../gio/gdbusconnection.c:3941 +#: ../gio/gdbusconnection.c:3942 #, c-format msgid "Property `%s' is not writable" msgstr "Property `%s' is not writable" -#: ../gio/gdbusconnection.c:4011 ../gio/gdbusconnection.c:5601 +#: ../gio/gdbusconnection.c:4012 ../gio/gdbusconnection.c:5602 #, c-format msgid "No such interface `%s'" msgstr "No such interface `%s'" -#: ../gio/gdbusconnection.c:4199 +#: ../gio/gdbusconnection.c:4200 msgid "No such interface" msgstr "No such interface" -#: ../gio/gdbusconnection.c:4415 ../gio/gdbusconnection.c:6117 +#: ../gio/gdbusconnection.c:4416 ../gio/gdbusconnection.c:6118 #, c-format msgid "No such interface `%s' on object at path %s" msgstr "No such interface `%s' on object at path %s" -#: ../gio/gdbusconnection.c:4467 +#: ../gio/gdbusconnection.c:4468 #, c-format msgid "No such method `%s'" msgstr "No such method `%s'" -#: ../gio/gdbusconnection.c:4498 +#: ../gio/gdbusconnection.c:4499 #, c-format msgid "Type of message, `%s', does not match expected type `%s'" msgstr "Type of message, `%s', does not match expected type `%s'" -#: ../gio/gdbusconnection.c:4717 +#: ../gio/gdbusconnection.c:4718 #, c-format msgid "An object is already exported for the interface %s at %s" msgstr "An object is already exported for the interface %s at %s" -#: ../gio/gdbusconnection.c:4911 +#: ../gio/gdbusconnection.c:4912 #, c-format msgid "Method `%s' returned type `%s', but expected `%s'" msgstr "Method `%s' returned type `%s', but expected `%s'" -#: ../gio/gdbusconnection.c:5712 +#: ../gio/gdbusconnection.c:5713 #, c-format msgid "Method `%s' on interface `%s' with signature `%s' does not exist" msgstr "Method `%s' on interface `%s' with signature `%s' does not exist" -#: ../gio/gdbusconnection.c:5830 +#: ../gio/gdbusconnection.c:5831 #, c-format msgid "A subtree is already exported for %s" msgstr "A subtree is already exported for %s" @@ -1937,7 +1937,7 @@ msgstr "Type of return value is incorrect, got `%s', expected `%s'" msgid "Error sending message: %s" msgstr "Error sending message: %s" -#: ../gio/gdbusprivate.c:1756 +#: ../gio/gdbusprivate.c:1768 msgid "Unable to load /var/lib/dbus/machine-id: " msgstr "Unable to load /var/lib/dbus/machine-id: " @@ -2155,34 +2155,34 @@ msgstr "Object path to monitor" msgid "Monitor a remote object." msgstr "corrupted object" -#: ../gio/gdesktopappinfo.c:471 ../gio/gwin32appinfo.c:221 +#: ../gio/gdesktopappinfo.c:480 ../gio/gwin32appinfo.c:221 msgid "Unnamed" msgstr "Unnamed" -#: ../gio/gdesktopappinfo.c:755 +#: ../gio/gdesktopappinfo.c:764 msgid "Desktop file didn't specify Exec field" msgstr "Desktop file didn't specify Exec field" -#: ../gio/gdesktopappinfo.c:948 +#: ../gio/gdesktopappinfo.c:957 msgid "Unable to find terminal required for application" msgstr "Unable to find terminal required for application" -#: ../gio/gdesktopappinfo.c:1157 +#: ../gio/gdesktopappinfo.c:1166 #, c-format msgid "Can't create user application configuration folder %s: %s" msgstr "Can't create user application configuration folder %s: %s" -#: ../gio/gdesktopappinfo.c:1161 +#: ../gio/gdesktopappinfo.c:1170 #, c-format msgid "Can't create user MIME configuration folder %s: %s" msgstr "Can't create user MIME configuration folder %s: %s" -#: ../gio/gdesktopappinfo.c:1569 +#: ../gio/gdesktopappinfo.c:1663 #, c-format msgid "Can't create user desktop file %s" msgstr "Can't create user desktop file %s" -#: ../gio/gdesktopappinfo.c:1683 +#: ../gio/gdesktopappinfo.c:1779 #, c-format msgid "Custom definition for %s" msgstr "Custom definition for %s" @@ -2220,29 +2220,29 @@ msgstr "Can't handle version %d of GEmblem encoding" msgid "Malformed number of tokens (%d) in GEmblem encoding" msgstr "Malformed number of tokens (%d) in GEmblem encoding" -#: ../gio/gemblemedicon.c:293 +#: ../gio/gemblemedicon.c:368 #, c-format msgid "Can't handle version %d of GEmblemedIcon encoding" msgstr "Can't handle version %d of GEmblemedIcon encoding" -#: ../gio/gemblemedicon.c:303 +#: ../gio/gemblemedicon.c:378 #, c-format msgid "Malformed number of tokens (%d) in GEmblemedIcon encoding" msgstr "Malformed number of tokens (%d) in GEmblemedIcon encoding" -#: ../gio/gemblemedicon.c:326 +#: ../gio/gemblemedicon.c:401 msgid "Expected a GEmblem for GEmblemedIcon" msgstr "Expected a GEmblem for GEmblemedIcon" -#: ../gio/gfile.c:872 ../gio/gfile.c:1102 ../gio/gfile.c:1237 -#: ../gio/gfile.c:1474 ../gio/gfile.c:1528 ../gio/gfile.c:1585 -#: ../gio/gfile.c:1668 ../gio/gfile.c:1723 ../gio/gfile.c:1783 -#: ../gio/gfile.c:1837 ../gio/gfile.c:3307 ../gio/gfile.c:3361 -#: ../gio/gfile.c:3493 ../gio/gfile.c:3534 ../gio/gfile.c:3861 -#: ../gio/gfile.c:4263 ../gio/gfile.c:4349 ../gio/gfile.c:4438 -#: ../gio/gfile.c:4536 ../gio/gfile.c:4623 ../gio/gfile.c:4717 -#: ../gio/gfile.c:5038 ../gio/gfile.c:5305 ../gio/gfile.c:5370 -#: ../gio/gfile.c:6944 ../gio/gfile.c:7034 ../gio/gfile.c:7120 +#: ../gio/gfile.c:872 ../gio/gfile.c:1103 ../gio/gfile.c:1238 +#: ../gio/gfile.c:1475 ../gio/gfile.c:1529 ../gio/gfile.c:1586 +#: ../gio/gfile.c:1669 ../gio/gfile.c:1724 ../gio/gfile.c:1784 +#: ../gio/gfile.c:1838 ../gio/gfile.c:3308 ../gio/gfile.c:3362 +#: ../gio/gfile.c:3494 ../gio/gfile.c:3535 ../gio/gfile.c:3862 +#: ../gio/gfile.c:4264 ../gio/gfile.c:4350 ../gio/gfile.c:4439 +#: ../gio/gfile.c:4537 ../gio/gfile.c:4624 ../gio/gfile.c:4718 +#: ../gio/gfile.c:5039 ../gio/gfile.c:5306 ../gio/gfile.c:5371 +#: ../gio/gfile.c:6945 ../gio/gfile.c:7035 ../gio/gfile.c:7121 #: ../gio/win32/gwinhttpfile.c:439 msgid "Operation not supported" msgstr "Operation not supported" @@ -2255,58 +2255,58 @@ msgstr "Operation not supported" #. Translators: This is an error message when trying to find #. * the enclosing (user visible) mount of a file, but none #. * exists. -#: ../gio/gfile.c:1358 ../gio/glocalfile.c:1059 ../gio/glocalfile.c:1070 +#: ../gio/gfile.c:1359 ../gio/glocalfile.c:1059 ../gio/glocalfile.c:1070 #: ../gio/glocalfile.c:1083 msgid "Containing mount does not exist" msgstr "Containing mount does not exist" -#: ../gio/gfile.c:2411 ../gio/glocalfile.c:2258 +#: ../gio/gfile.c:2412 ../gio/glocalfile.c:2258 msgid "Can't copy over directory" msgstr "Can't copy over directory" -#: ../gio/gfile.c:2472 +#: ../gio/gfile.c:2473 msgid "Can't copy directory over directory" msgstr "Can't copy directory over directory" -#: ../gio/gfile.c:2480 ../gio/glocalfile.c:2267 +#: ../gio/gfile.c:2481 ../gio/glocalfile.c:2267 msgid "Target file exists" msgstr "Target file exists" -#: ../gio/gfile.c:2498 +#: ../gio/gfile.c:2499 msgid "Can't recursively copy directory" msgstr "Can't recursively copy directory" -#: ../gio/gfile.c:2758 +#: ../gio/gfile.c:2759 msgid "Splice not supported" msgstr "Symbolic links not supported" -#: ../gio/gfile.c:2762 +#: ../gio/gfile.c:2763 #, c-format msgid "Error splicing file: %s" msgstr "Error opening file: %s" -#: ../gio/gfile.c:2909 +#: ../gio/gfile.c:2910 msgid "Can't copy special file" msgstr "Can't copy special file" -#: ../gio/gfile.c:3483 +#: ../gio/gfile.c:3484 msgid "Invalid symlink value given" msgstr "Invalid symlink value given" -#: ../gio/gfile.c:3577 +#: ../gio/gfile.c:3578 msgid "Trash not supported" msgstr "Trash not supported" -#: ../gio/gfile.c:3626 +#: ../gio/gfile.c:3627 #, c-format msgid "File names cannot contain '%c'" msgstr "File names cannot contain '%c'" -#: ../gio/gfile.c:6003 ../gio/gvolume.c:332 +#: ../gio/gfile.c:6004 ../gio/gvolume.c:332 msgid "volume doesn't implement mount" msgstr "volume doesn't implement mount" -#: ../gio/gfile.c:6114 +#: ../gio/gfile.c:6115 msgid "No application is registered as handling this file" msgstr "No application is registered as handling this file" @@ -3135,66 +3135,66 @@ msgstr "Path must not contain two adjacent slashes (//)\n" msgid "No such key '%s'\n" msgstr "No such key '%s'\n" -#: ../gio/gsettings-tool.c:427 +#: ../gio/gsettings-tool.c:429 #, c-format msgid "The provided value is outside of the valid range\n" msgstr "The provided value is outside of the valid range\n" -#: ../gio/gsettings-tool.c:456 +#: ../gio/gsettings-tool.c:458 msgid "List the installed (non-relocatable) schemas" msgstr "List the installed (non-relocatable) schemas" -#: ../gio/gsettings-tool.c:462 +#: ../gio/gsettings-tool.c:464 msgid "List the installed relocatable schemas" msgstr "List the installed relocatable schemas" -#: ../gio/gsettings-tool.c:468 +#: ../gio/gsettings-tool.c:470 msgid "Lists the keys in SCHEMA" msgstr "Lists the keys in SCHEMA" -#: ../gio/gsettings-tool.c:469 ../gio/gsettings-tool.c:475 -#: ../gio/gsettings-tool.c:481 +#: ../gio/gsettings-tool.c:471 ../gio/gsettings-tool.c:477 +#: ../gio/gsettings-tool.c:483 msgid "SCHEMA[:PATH]" msgstr "SCHEMA[:PATH]" -#: ../gio/gsettings-tool.c:474 +#: ../gio/gsettings-tool.c:476 msgid "Lists the children of SCHEMA" msgstr "Lists the children of SCHEMA" -#: ../gio/gsettings-tool.c:480 +#: ../gio/gsettings-tool.c:482 msgid "List keys and values, recursively" msgstr "List keys and values, recursively" -#: ../gio/gsettings-tool.c:486 +#: ../gio/gsettings-tool.c:488 msgid "Gets the value of KEY" msgstr "Gets the value of KEY" -#: ../gio/gsettings-tool.c:487 ../gio/gsettings-tool.c:493 -#: ../gio/gsettings-tool.c:505 ../gio/gsettings-tool.c:511 +#: ../gio/gsettings-tool.c:489 ../gio/gsettings-tool.c:495 +#: ../gio/gsettings-tool.c:507 ../gio/gsettings-tool.c:513 msgid "SCHEMA[:PATH] KEY" msgstr "SCHEMA[:PATH] KEY" -#: ../gio/gsettings-tool.c:492 +#: ../gio/gsettings-tool.c:494 msgid "Queries the range of valid values for KEY" msgstr "Queries the range of valid values for KEY" -#: ../gio/gsettings-tool.c:498 +#: ../gio/gsettings-tool.c:500 msgid "Sets the value of KEY to VALUE" msgstr "Sets the value of KEY to VALUE" -#: ../gio/gsettings-tool.c:499 +#: ../gio/gsettings-tool.c:501 msgid "SCHEMA[:PATH] KEY VALUE" msgstr "SCHEMA[:PATH] KEY VALUE" -#: ../gio/gsettings-tool.c:504 +#: ../gio/gsettings-tool.c:506 msgid "Resets KEY to its default value" msgstr "Resets KEY to its default value" -#: ../gio/gsettings-tool.c:510 +#: ../gio/gsettings-tool.c:512 msgid "Checks if KEY is writable" msgstr "Checks if KEY is writable" -#: ../gio/gsettings-tool.c:516 +#: ../gio/gsettings-tool.c:518 msgid "" "Monitors KEY for changes.\n" "If no KEY is specified, monitor all keys in SCHEMA.\n" @@ -3204,11 +3204,11 @@ msgstr "" "If no KEY is specified, monitor all keys in SCHEMA.\n" "Use ^C to stop monitoring.\n" -#: ../gio/gsettings-tool.c:519 +#: ../gio/gsettings-tool.c:521 msgid "SCHEMA[:PATH] [KEY]" msgstr "SCHEMA[:PATH] [KEY]" -#: ../gio/gsettings-tool.c:523 +#: ../gio/gsettings-tool.c:525 #, c-format msgid "" "Unknown command %s\n" @@ -3217,7 +3217,7 @@ msgstr "" "Unknown command %s\n" "\n" -#: ../gio/gsettings-tool.c:531 +#: ../gio/gsettings-tool.c:533 msgid "" "Usage:\n" " gsettings COMMAND [ARGS...]\n" @@ -3259,7 +3259,7 @@ msgstr "" "Use 'gsettings help COMMAND' to get detailed help.\n" "\n" -#: ../gio/gsettings-tool.c:552 +#: ../gio/gsettings-tool.c:554 #, c-format msgid "" "Usage:\n" @@ -3274,11 +3274,11 @@ msgstr "" "%s\n" "\n" -#: ../gio/gsettings-tool.c:557 +#: ../gio/gsettings-tool.c:559 msgid "Arguments:\n" msgstr "Arguments:\n" -#: ../gio/gsettings-tool.c:561 +#: ../gio/gsettings-tool.c:563 msgid "" " SCHEMA The name of the schema\n" " PATH The path, for relocatable schemas\n" @@ -3286,19 +3286,19 @@ msgstr "" " SCHEMA The name of the schema\n" " PATH The path, for relocatable schemas\n" -#: ../gio/gsettings-tool.c:566 +#: ../gio/gsettings-tool.c:568 msgid " KEY The (optional) key within the schema\n" msgstr " KEY The (optional) key within the schema\n" -#: ../gio/gsettings-tool.c:570 +#: ../gio/gsettings-tool.c:572 msgid " KEY The key within the schema\n" msgstr " KEY The key within the schema\n" -#: ../gio/gsettings-tool.c:574 +#: ../gio/gsettings-tool.c:576 msgid " VALUE The value to set\n" msgstr " VALUE The value to set\n" -#: ../gio/gsettings-tool.c:650 +#: ../gio/gsettings-tool.c:652 #, c-format msgid "Empty schema name given" msgstr "Empty schema name given" @@ -3410,15 +3410,15 @@ msgstr "Error receiving message: %s" msgid "g_socket_get_credentials not implemented for this OS" msgstr "g_socket_get_credentials not implemented for this OS" -#: ../gio/gsocketclient.c:798 ../gio/gsocketclient.c:1364 +#: ../gio/gsocketclient.c:798 ../gio/gsocketclient.c:1368 msgid "Unknown error on connect" msgstr "Unknown error on connect" -#: ../gio/gsocketclient.c:836 ../gio/gsocketclient.c:1248 +#: ../gio/gsocketclient.c:836 ../gio/gsocketclient.c:1252 msgid "Trying to proxy over non-TCP connection is not supported." msgstr "Trying to proxy over non-TCP connection is not supported." -#: ../gio/gsocketclient.c:858 ../gio/gsocketclient.c:1273 +#: ../gio/gsocketclient.c:858 ../gio/gsocketclient.c:1277 #, c-format msgid "Proxy protocol '%s' is not supported." msgstr "Proxy protocol '%s' is not supported." @@ -3518,23 +3518,23 @@ msgid "SOCKSv5 proxy does not support provided address type." msgstr "SOCKSv5 proxy does not support provided address type." #: ../gio/gsocks5proxy.c:402 -msgid "Unkown SOCKSv5 proxy error." -msgstr "Unkown SOCKSv5 proxy error." +msgid "Unknown SOCKSv5 proxy error." +msgstr "Unknown SOCKSv5 proxy error." #: ../gio/gthemedicon.c:498 #, c-format msgid "Can't handle version %d of GThemedIcon encoding" msgstr "Can't handle version %d of GThemedIcon encoding" -#: ../gio/gtlscertificate.c:270 +#: ../gio/gtlscertificate.c:228 msgid "No PEM-encoded certificate found" msgstr "No PEM-encoded certificate found" -#: ../gio/gtlscertificate.c:279 +#: ../gio/gtlscertificate.c:237 msgid "Could not parse PEM-encoded certificate" msgstr "Could not parse PEM-encoded certificate" -#: ../gio/gtlscertificate.c:300 +#: ../gio/gtlscertificate.c:258 msgid "Could not parse PEM-encoded private key" msgstr "Could not parse PEM-encoded private key" diff --git a/po/id.po b/po/id.po index be6451616..cc1558e32 100644 --- a/po/id.po +++ b/po/id.po @@ -8,10 +8,9 @@ msgid "" msgstr "" "Project-Id-Version: glib master\n" -"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?" -"product=glib&component=general\n" -"POT-Creation-Date: 2010-10-17 03:32+0000\n" -"PO-Revision-Date: 2010-10-25 22:10+0700\n" +"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=glib&component=general\n" +"POT-Creation-Date: 2011-01-04 14:39+0000\n" +"PO-Revision-Date: 2011-01-07 11:37+0700\n" "Last-Translator: Andika Triwidada \n" "Language-Team: GNOME Indonesian Translation Team \n" "MIME-Version: 1.0\n" @@ -27,20 +26,26 @@ msgstr "" msgid "Unexpected attribute '%s' for element '%s'" msgstr "Atribut '%s' yang tak diduga bagi elemen '%s'" -#: ../glib/gbookmarkfile.c:791 ../glib/gbookmarkfile.c:862 -#: ../glib/gbookmarkfile.c:872 ../glib/gbookmarkfile.c:979 +#: ../glib/gbookmarkfile.c:791 +#: ../glib/gbookmarkfile.c:862 +#: ../glib/gbookmarkfile.c:872 +#: ../glib/gbookmarkfile.c:979 #, c-format msgid "Attribute '%s' of element '%s' not found" msgstr "Atribut '%s' dari elemen '%s' tak ditemukan" -#: ../glib/gbookmarkfile.c:1149 ../glib/gbookmarkfile.c:1214 -#: ../glib/gbookmarkfile.c:1278 ../glib/gbookmarkfile.c:1288 +#: ../glib/gbookmarkfile.c:1149 +#: ../glib/gbookmarkfile.c:1214 +#: ../glib/gbookmarkfile.c:1278 +#: ../glib/gbookmarkfile.c:1288 #, c-format msgid "Unexpected tag '%s', tag '%s' expected" msgstr "Tag '%s' yang tak diduga, diharapkan tag '%s'" -#: ../glib/gbookmarkfile.c:1174 ../glib/gbookmarkfile.c:1188 -#: ../glib/gbookmarkfile.c:1256 ../glib/gbookmarkfile.c:1308 +#: ../glib/gbookmarkfile.c:1174 +#: ../glib/gbookmarkfile.c:1188 +#: ../glib/gbookmarkfile.c:1256 +#: ../glib/gbookmarkfile.c:1308 #, c-format msgid "Unexpected tag '%s' inside '%s'" msgstr "Tag '%s' yang tak diduga di dalam '%s'" @@ -54,14 +59,22 @@ msgstr "Tak ditemukan penanda buku yang valid di direktori data" msgid "A bookmark for URI '%s' already exists" msgstr "Penanda buku bagi URI '%s' telah ada" -#: ../glib/gbookmarkfile.c:2081 ../glib/gbookmarkfile.c:2239 -#: ../glib/gbookmarkfile.c:2324 ../glib/gbookmarkfile.c:2404 -#: ../glib/gbookmarkfile.c:2489 ../glib/gbookmarkfile.c:2572 -#: ../glib/gbookmarkfile.c:2650 ../glib/gbookmarkfile.c:2729 -#: ../glib/gbookmarkfile.c:2771 ../glib/gbookmarkfile.c:2868 -#: ../glib/gbookmarkfile.c:2994 ../glib/gbookmarkfile.c:3184 -#: ../glib/gbookmarkfile.c:3260 ../glib/gbookmarkfile.c:3425 -#: ../glib/gbookmarkfile.c:3514 ../glib/gbookmarkfile.c:3604 +#: ../glib/gbookmarkfile.c:2081 +#: ../glib/gbookmarkfile.c:2239 +#: ../glib/gbookmarkfile.c:2324 +#: ../glib/gbookmarkfile.c:2404 +#: ../glib/gbookmarkfile.c:2489 +#: ../glib/gbookmarkfile.c:2572 +#: ../glib/gbookmarkfile.c:2650 +#: ../glib/gbookmarkfile.c:2729 +#: ../glib/gbookmarkfile.c:2771 +#: ../glib/gbookmarkfile.c:2868 +#: ../glib/gbookmarkfile.c:2994 +#: ../glib/gbookmarkfile.c:3184 +#: ../glib/gbookmarkfile.c:3260 +#: ../glib/gbookmarkfile.c:3425 +#: ../glib/gbookmarkfile.c:3514 +#: ../glib/gbookmarkfile.c:3604 #: ../glib/gbookmarkfile.c:3732 #, c-format msgid "No bookmark found for URI '%s'" @@ -82,7 +95,8 @@ msgstr "Flag privat tak didefinisikan di penanda buku bagi URI '%s'" msgid "No groups set in bookmark for URI '%s'" msgstr "Grup tak ditata di penanda buku bagi URI '%s'" -#: ../glib/gbookmarkfile.c:3278 ../glib/gbookmarkfile.c:3435 +#: ../glib/gbookmarkfile.c:3278 +#: ../glib/gbookmarkfile.c:3435 #, c-format msgid "No application with name '%s' registered a bookmark for '%s'" msgstr "Tak ada aplikasi dengan nama '%s' mendaftarkan penanda buku bagi '%s'" @@ -92,32 +106,46 @@ msgstr "Tak ada aplikasi dengan nama '%s' mendaftarkan penanda buku bagi '%s'" msgid "Failed to expand exec line '%s' with URI '%s'" msgstr "Gagal mengembangkan baris eksekusi '%s' dengan URI '%s'" -#: ../glib/gconvert.c:567 ../glib/gconvert.c:645 ../glib/giochannel.c:1403 +#: ../glib/gconvert.c:567 +#: ../glib/gconvert.c:645 +#: ../glib/giochannel.c:1403 #: ../gio/gcharsetconverter.c:458 #, c-format msgid "Conversion from character set '%s' to '%s' is not supported" msgstr "Konversi dari gugus karakter '%s' ke '%s' tak didukung" -#: ../glib/gconvert.c:571 ../glib/gconvert.c:649 +#: ../glib/gconvert.c:571 +#: ../glib/gconvert.c:649 #: ../gio/gcharsetconverter.c:462 #, c-format msgid "Could not open converter from '%s' to '%s'" msgstr "Tidak dapat membuka pengubah dari '%s' ke '%s'" -#: ../glib/gconvert.c:768 ../glib/gconvert.c:1161 ../glib/giochannel.c:1575 -#: ../glib/giochannel.c:1617 ../glib/giochannel.c:2461 ../glib/gutf8.c:992 -#: ../glib/gutf8.c:1447 ../gio/gcharsetconverter.c:345 +#: ../glib/gconvert.c:768 +#: ../glib/gconvert.c:1161 +#: ../glib/giochannel.c:1575 +#: ../glib/giochannel.c:1617 +#: ../glib/giochannel.c:2460 +#: ../glib/gutf8.c:992 +#: ../glib/gutf8.c:1447 +#: ../gio/gcharsetconverter.c:345 msgid "Invalid byte sequence in conversion input" msgstr "Rangkaian byte dalam input konversi tidak benar" -#: ../glib/gconvert.c:776 ../glib/gconvert.c:1086 ../glib/giochannel.c:1582 -#: ../glib/giochannel.c:2473 ../gio/gcharsetconverter.c:350 +#: ../glib/gconvert.c:776 +#: ../glib/gconvert.c:1086 +#: ../glib/giochannel.c:1582 +#: ../glib/giochannel.c:2472 +#: ../gio/gcharsetconverter.c:350 #, c-format msgid "Error during conversion: %s" msgstr "Galat ketika konversi: %s" -#: ../glib/gconvert.c:808 ../glib/gutf8.c:988 ../glib/gutf8.c:1198 -#: ../glib/gutf8.c:1339 ../glib/gutf8.c:1443 +#: ../glib/gconvert.c:808 +#: ../glib/gutf8.c:988 +#: ../glib/gutf8.c:1198 +#: ../glib/gutf8.c:1339 +#: ../glib/gutf8.c:1443 msgid "Partial character sequence at end of input" msgstr "Rangkaian karakter sebagian pada akhir input" @@ -386,139 +414,143 @@ msgctxt "abbreviated weekday name" msgid "Sun" msgstr "Min" -#: ../glib/gdir.c:115 ../glib/gdir.c:138 +#: ../glib/gdir.c:115 +#: ../glib/gdir.c:138 #, c-format msgid "Error opening directory '%s': %s" msgstr "Galat ketika membuka direktori '%s': %s" -#: ../glib/gfileutils.c:536 ../glib/gfileutils.c:624 +#: ../glib/gfileutils.c:540 +#: ../glib/gfileutils.c:628 #, c-format msgid "Could not allocate %lu bytes to read file \"%s\"" msgstr "Tidak dapat mengalokasikan %lu byte untuk membaca berkas \"%s\"" -#: ../glib/gfileutils.c:551 +#: ../glib/gfileutils.c:555 #, c-format msgid "Error reading file '%s': %s" msgstr "Galat ketika membaca berkas '%s': %s" -#: ../glib/gfileutils.c:565 +#: ../glib/gfileutils.c:569 #, c-format msgid "File \"%s\" is too large" msgstr "Berkas \"%s\" terlalu besar" -#: ../glib/gfileutils.c:648 +#: ../glib/gfileutils.c:652 #, c-format msgid "Failed to read from file '%s': %s" msgstr "Gagal membaca dari berkas '%s': %s" -#: ../glib/gfileutils.c:699 ../glib/gfileutils.c:786 +#: ../glib/gfileutils.c:703 +#: ../glib/gfileutils.c:790 #, c-format msgid "Failed to open file '%s': %s" msgstr "Gagal membuka berkas '%s': %s" -#: ../glib/gfileutils.c:716 ../glib/gmappedfile.c:169 +#: ../glib/gfileutils.c:720 +#: ../glib/gmappedfile.c:169 #, c-format msgid "Failed to get attributes of file '%s': fstat() failed: %s" msgstr "Gagal saat mengambil atribut berkas '%s': fstat() gagal: %s" -#: ../glib/gfileutils.c:750 +#: ../glib/gfileutils.c:754 #, c-format msgid "Failed to open file '%s': fdopen() failed: %s" msgstr "Gagal saat membuka berkas '%s': fdopen() gagal: %s" -#: ../glib/gfileutils.c:858 +#: ../glib/gfileutils.c:862 #, c-format msgid "Failed to rename file '%s' to '%s': g_rename() failed: %s" -msgstr "" -"Gagal untuk mengubah nama berkas '%s' menjadi '%s': g_rename() gagal: %s" +msgstr "Gagal untuk mengubah nama berkas '%s' menjadi '%s': g_rename() gagal: %s" -#: ../glib/gfileutils.c:900 ../glib/gfileutils.c:1369 +#: ../glib/gfileutils.c:904 +#: ../glib/gfileutils.c:1388 #, c-format msgid "Failed to create file '%s': %s" msgstr "Gagal membuat berkas '%s': %s" -#: ../glib/gfileutils.c:914 +#: ../glib/gfileutils.c:918 #, c-format msgid "Failed to open file '%s' for writing: fdopen() failed: %s" msgstr "Gagal untuk membuka berkas '%s' untuk menulis: fdopen() gagal: %s" -#: ../glib/gfileutils.c:939 +#: ../glib/gfileutils.c:943 #, c-format msgid "Failed to write file '%s': fwrite() failed: %s" msgstr "Gagal untuk menulis berkas '%s': fwrite() gagal: %s" -#: ../glib/gfileutils.c:958 +#: ../glib/gfileutils.c:962 #, c-format msgid "Failed to write file '%s': fflush() failed: %s" msgstr "Gagal untuk menulis berkas '%s': fflush() gagal: %s" -#: ../glib/gfileutils.c:987 +#: ../glib/gfileutils.c:1005 #, c-format msgid "Failed to write file '%s': fsync() failed: %s" msgstr "Gagal untuk menulis berkas '%s': fsync() gagal: %s" -#: ../glib/gfileutils.c:1006 +#: ../glib/gfileutils.c:1025 #, c-format msgid "Failed to close file '%s': fclose() failed: %s" msgstr "Gagal untuk menutup berkas '%s': fclose() gagal: '%s'" -#: ../glib/gfileutils.c:1127 +#: ../glib/gfileutils.c:1146 #, c-format msgid "Existing file '%s' could not be removed: g_unlink() failed: %s" msgstr "Berkas '%s' tidak dapat dibuang: g_unlink() gagal: %s" -#: ../glib/gfileutils.c:1331 +#: ../glib/gfileutils.c:1350 #, c-format msgid "Template '%s' invalid, should not contain a '%s'" msgstr "Palet '%s' tidak sah, seharusnya tidak mengandung '%s'" -#: ../glib/gfileutils.c:1344 +#: ../glib/gfileutils.c:1363 #, c-format msgid "Template '%s' doesn't contain XXXXXX" msgstr "Palet '%s' tidak memuat XXXXXX" -#: ../glib/gfileutils.c:1777 +#: ../glib/gfileutils.c:1796 #, c-format msgid "%u byte" msgid_plural "%u bytes" msgstr[0] "%u bita" -#: ../glib/gfileutils.c:1785 +#: ../glib/gfileutils.c:1804 #, c-format msgid "%.1f KB" msgstr "%.1f KB" -#: ../glib/gfileutils.c:1790 +#: ../glib/gfileutils.c:1809 #, c-format msgid "%.1f MB" msgstr "%.1f MB" -#: ../glib/gfileutils.c:1795 +#: ../glib/gfileutils.c:1814 #, c-format msgid "%.1f GB" msgstr "%.1f GB" -#: ../glib/gfileutils.c:1800 +#: ../glib/gfileutils.c:1819 #, c-format msgid "%.1f TB" msgstr "%.1f TB" -#: ../glib/gfileutils.c:1805 +#: ../glib/gfileutils.c:1824 #, c-format msgid "%.1f PB" msgstr "%.1f PB" -#: ../glib/gfileutils.c:1810 +#: ../glib/gfileutils.c:1829 #, c-format msgid "%.1f EB" msgstr "%.1f EB" -#: ../glib/gfileutils.c:1853 +#: ../glib/gfileutils.c:1872 #, c-format msgid "Failed to read the symbolic link '%s': %s" msgstr "Gagal saat membaca taut simbolik '%s': %s" -#: ../glib/gfileutils.c:1874 +#: ../glib/gfileutils.c:1893 msgid "Symbolic links not supported" msgstr "Taut simbolik tidak didukung" @@ -529,15 +561,16 @@ msgstr "Tidak dapat membuka konverter dari '%s' menjadi '%s': %s" #: ../glib/giochannel.c:1752 msgid "Can't do a raw read in g_io_channel_read_line_string" -msgstr "" -"Tidak dapat melakukan proses baca mentah di g_io_channel_read_line_string" +msgstr "Tidak dapat melakukan proses baca mentah di g_io_channel_read_line_string" -#: ../glib/giochannel.c:1799 ../glib/giochannel.c:2057 -#: ../glib/giochannel.c:2144 +#: ../glib/giochannel.c:1799 +#: ../glib/giochannel.c:2056 +#: ../glib/giochannel.c:2143 msgid "Leftover unconverted data in read buffer" msgstr "Ada data tersisa yang belum dikonversi pada penyangga read" -#: ../glib/giochannel.c:1880 ../glib/giochannel.c:1957 +#: ../glib/giochannel.c:1880 +#: ../glib/giochannel.c:1957 msgid "Channel terminates in a partial character" msgstr "Kanal terputus pada karakter sebagian" @@ -555,12 +588,14 @@ msgstr "Gagal saat membuka berkas '%s': open() gagal: %s" msgid "Failed to map file '%s': mmap() failed: %s" msgstr "Gagal saat memetakan berkas '%s': mmap() gagal: %s" -#: ../glib/gmarkup.c:307 ../glib/gmarkup.c:347 +#: ../glib/gmarkup.c:307 +#: ../glib/gmarkup.c:347 #, c-format msgid "Error on line %d char %d: " msgstr "Galat pada baris %d karakter ke-%d: " -#: ../glib/gmarkup.c:367 ../glib/gmarkup.c:445 +#: ../glib/gmarkup.c:367 +#: ../glib/gmarkup.c:445 #, c-format msgid "Invalid UTF-8 encoded text in name - not valid '%s'" msgstr "Teks UTF-8 dalam nama tak valid - bukan '%s' yang valid" @@ -582,35 +617,21 @@ msgstr "Galat pada baris ke-%d: %s" #: ../glib/gmarkup.c:582 #, 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 "" -"Gagal saat mengurai '%-.*s'. yang seharusnya sebuah digit dalam referensi " -"karakter (misalnya ê) - mungkin digitnya terlalu besar" +msgid "Failed to parse '%-.*s', which should have been a digit inside a character reference (ê for example) - perhaps the digit is too large" +msgstr "Gagal saat mengurai '%-.*s'. yang seharusnya sebuah digit dalam referensi karakter (misalnya ê) - mungkin digitnya terlalu besar" #: ../glib/gmarkup.c:594 -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 "" -"Referensi karakter tidak diakhiri dengan titik koma; Mungkin Anda sedang " -"menggunakan karakter ampersand tanpa bermaksud menjadikannya sebagai " -"entitas. Silakan gunakan & saja" +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 "Referensi karakter tidak diakhiri dengan titik koma; Mungkin Anda sedang menggunakan karakter ampersand tanpa bermaksud menjadikannya sebagai entitas. Silakan gunakan & saja" #: ../glib/gmarkup.c:620 #, c-format msgid "Character reference '%-.*s' does not encode a permitted character" -msgstr "" -"Referensi karakter '%-.*s' tidak mengencodekan karakter yang diperbolehkan" +msgstr "Referensi karakter '%-.*s' tidak mengencodekan karakter yang diperbolehkan" #: ../glib/gmarkup.c:658 -msgid "" -"Empty entity '&;' seen; valid entities are: & " < > '" -msgstr "" -"Ada entitas '&;' yang kosong; Entitas yang benar antara lain adalah: & " -"" < > '" +msgid "Empty entity '&;' seen; valid entities are: & " < > '" +msgstr "Ada entitas '&;' yang kosong; Entitas yang benar antara lain adalah: & " < > '" #: ../glib/gmarkup.c:666 #, c-format @@ -618,13 +639,8 @@ msgid "Entity name '%-.*s' is not known" msgstr "Nama entitas '%-.*s' tak dikenal" #: ../glib/gmarkup.c:671 -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 "" -"Entitas tidak diakhiri dengan titik koma. Mungkin Anda menggunakan karakter " -"ampersand tanpa bermaksud menjadikannya sebagai entitas - silakan pakai " -"& saja" +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 "Entitas tidak diakhiri dengan titik koma. Mungkin Anda menggunakan karakter ampersand tanpa bermaksud menjadikannya sebagai entitas - silakan pakai & saja" #: ../glib/gmarkup.c:1018 msgid "Document must begin with an element (e.g. )" @@ -632,67 +648,38 @@ msgstr "Dokumen harus dimulai dengan elemen (misalnya )" #: ../glib/gmarkup.c:1058 #, c-format -msgid "" -"'%s' is not a valid character following a '<' character; it may not begin an " -"element name" -msgstr "" -"'%s' bukanlah karakter yang benar bila diikuti dengan karakter '<'. Ini " -"tidak boleh menjadi nama elemen" +msgid "'%s' is not a valid character following a '<' character; it may not begin an element name" +msgstr "'%s' bukanlah karakter yang benar bila diikuti dengan karakter '<'. Ini tidak boleh menjadi nama elemen" #: ../glib/gmarkup.c:1126 #, c-format -msgid "" -"Odd character '%s', expected a '>' character to end the empty-element tag '%" -"s'" -msgstr "" -"Ada karakter aneh '%s', seharusnya ada '>' untuk mengakhiri tag elemen " -"kosong '%s'" +msgid "Odd character '%s', expected a '>' character to end the empty-element tag '%s'" +msgstr "Ada karakter aneh '%s', seharusnya ada '>' untuk mengakhiri tag elemen kosong '%s'" #: ../glib/gmarkup.c:1210 #, c-format -msgid "" -"Odd character '%s', expected a '=' after attribute name '%s' of element '%s'" -msgstr "" -"Ada karakter aneh '%s'. Seharusnya ada karakter '=' setelah nama atribut '%" -"s' pada elemen '%s'" +msgid "Odd character '%s', expected a '=' after attribute name '%s' of element '%s'" +msgstr "Ada karakter aneh '%s'. Seharusnya ada karakter '=' setelah nama atribut '%s' pada elemen '%s'" #: ../glib/gmarkup.c:1251 #, 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 "" -"Ada karakter aneh '%s'. Seharusnya ada '>' atau '/' untuk mengakhiri tag " -"padaelemen '%s', atau bisa juga ada atribut lain. Mungkin Anda menggunakan " -"karakter yang tidak diperbolehkan pada nama atribut." +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 "Ada karakter aneh '%s'. Seharusnya ada '>' atau '/' untuk mengakhiri tag padaelemen '%s', atau bisa juga ada atribut lain. Mungkin Anda menggunakan karakter yang tidak diperbolehkan pada nama atribut." #: ../glib/gmarkup.c:1295 #, 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 "" -"Ada karakter aneh '%s'. Seharusnya ada tanda kutip buka setelah tanda sama " -"dengan saat memberikan nilai atribut '%s' pada elemen '%s'" +msgid "Odd character '%s', expected an open quote mark after the equals sign when giving value for attribute '%s' of element '%s'" +msgstr "Ada karakter aneh '%s'. Seharusnya ada tanda kutip buka setelah tanda sama dengan saat memberikan nilai atribut '%s' pada elemen '%s'" #: ../glib/gmarkup.c:1429 #, c-format -msgid "" -"'%s' is not a valid character following the characters ''" -msgstr "" -"'%s' bukan karakter yang benar bila diikuti elemen penutup '%s'. Karakter " -"yang diperbolehkan adalah '>'" +msgid "'%s' is not a valid character following the close element name '%s'; the allowed character is '>'" +msgstr "'%s' bukan karakter yang benar bila diikuti elemen penutup '%s'. Karakter yang diperbolehkan adalah '>'" #: ../glib/gmarkup.c:1476 #, c-format @@ -710,26 +697,18 @@ msgstr "Dokumen kosong atau berisi whitespace saja" #: ../glib/gmarkup.c:1666 msgid "Document ended unexpectedly just after an open angle bracket '<'" -msgstr "" -"Dokumen terpotong tidak sempurna sesaat setelah membuka kurung siku '<'" +msgstr "Dokumen terpotong tidak sempurna sesaat setelah membuka kurung siku '<'" -#: ../glib/gmarkup.c:1674 ../glib/gmarkup.c:1719 +#: ../glib/gmarkup.c:1674 +#: ../glib/gmarkup.c:1719 #, c-format -msgid "" -"Document ended unexpectedly with elements still open - '%s' was the last " -"element opened" -msgstr "" -"Dokumen terpotong tidak sempurna dengan elemen yang masih terbuka - '%s' " -"adalah elemen terakhir yang dibuka" +msgid "Document ended unexpectedly with elements still open - '%s' was the last element opened" +msgstr "Dokumen terpotong tidak sempurna dengan elemen yang masih terbuka - '%s' adalah elemen terakhir yang dibuka" #: ../glib/gmarkup.c:1682 #, c-format -msgid "" -"Document ended unexpectedly, expected to see a close angle bracket ending " -"the tag <%s/>" -msgstr "" -"Dokumen terpotong tidak sempurna, seharusnya ada kurung siku penutup untuk " -"mengakhiri tag <%s/>" +msgid "Document ended unexpectedly, expected to see a close angle bracket ending the tag <%s/>" +msgstr "Dokumen terpotong tidak sempurna, seharusnya ada kurung siku penutup untuk mengakhiri tag <%s/>" #: ../glib/gmarkup.c:1688 msgid "Document ended unexpectedly inside an element name" @@ -744,12 +723,8 @@ msgid "Document ended unexpectedly inside an element-opening tag." msgstr "Dokumen terpotong tidak sempurna di dalam tag pembukaan elemen." #: ../glib/gmarkup.c:1705 -msgid "" -"Document ended unexpectedly after the equals sign following an attribute " -"name; no attribute value" -msgstr "" -"Dokumen terpotong tidak sempurna setelah tanda sama dengan mengikuti nama " -"atribut. Tidak ada nilai atribut yang diperoleh" +msgid "Document ended unexpectedly after the equals sign following an attribute name; no attribute value" +msgstr "Dokumen terpotong tidak sempurna setelah tanda sama dengan mengikuti nama atribut. Tidak ada nilai atribut yang diperoleh" #: ../glib/gmarkup.c:1712 msgid "Document ended unexpectedly while inside an attribute value" @@ -762,9 +737,7 @@ msgstr "Dokumen terpotong tidak sempurna di dalam tag penutup elemen '%s'" #: ../glib/gmarkup.c:1734 msgid "Document ended unexpectedly inside a comment or processing instruction" -msgstr "" -"Dokumen terpotong tidak sempurna di dalam keterangan atau instruksi " -"pemrosesan" +msgstr "Dokumen terpotong tidak sempurna di dalam keterangan atau instruksi pemrosesan" #: ../glib/gregex.c:188 msgid "corrupted object" @@ -782,11 +755,13 @@ msgstr "kehabisan memori" msgid "backtracking limit reached" msgstr "batas pelacakan balik tercapai" -#: ../glib/gregex.c:209 ../glib/gregex.c:217 +#: ../glib/gregex.c:209 +#: ../glib/gregex.c:217 msgid "the pattern contains items not supported for partial matching" msgstr "pola memuat butir yang tak didukung bagi pencocokan sebagian" -#: ../glib/gregex.c:211 ../gio/glocalfile.c:2109 +#: ../glib/gregex.c:211 +#: ../gio/glocalfile.c:2109 msgid "internal error" msgstr "kesalahan internal" @@ -824,8 +799,7 @@ msgstr "karakter tak dikenal mengikuti \\" #: ../glib/gregex.c:269 msgid "case-changing escapes (\\l, \\L, \\u, \\U) are not allowed here" -msgstr "" -"escape pengubah huruf besar kecil (\\l, \\L, \\u, \\U) tak diijinkan di sini" +msgstr "escape pengubah huruf besar kecil (\\l, \\L, \\u, \\U) tak diijinkan di sini" #: ../glib/gregex.c:272 msgid "numbers out of order in {} quantifier" @@ -979,11 +953,8 @@ msgid "inconsistent NEWLINE options" msgstr "opsi NEWLINE tak konsisten" #: ../glib/gregex.c:390 -msgid "" -"\\g is not followed by a braced name or an optionally braced non-zero number" -msgstr "" -"\\g tak diikuti oleh nama dalam kurung atau tambahan angka bukan nol dalam " -"kurung" +msgid "\\g is not followed by a braced name or an optionally braced non-zero number" +msgstr "\\g tak diikuti oleh nama dalam kurung atau tambahan angka bukan nol dalam kurung" #: ../glib/gregex.c:395 msgid "unexpected repeat" @@ -1001,7 +972,8 @@ msgstr "menimpa ruang kerja kompilasi" msgid "previously-checked referenced subpattern not found" msgstr "sub pola yang diacu yang sebelumnya diperiksa tak ditemukan" -#: ../glib/gregex.c:579 ../glib/gregex.c:1700 +#: ../glib/gregex.c:579 +#: ../glib/gregex.c:1700 #, c-format msgid "Error while matching regular expression %s: %s" msgstr "Galat saat mencocokkan ekspresi reguler %s: %s" @@ -1071,22 +1043,17 @@ msgstr "Teks yang dikutip tidak dimulai dengan tanda kutip" #: ../glib/gshell.c:181 msgid "Unmatched quotation mark in command line or other shell-quoted text" -msgstr "" -"Tanda kutip kurang satu pada perintah atau pada teks yang dikutip dari shell " -"lain" +msgstr "Tanda kutip kurang satu pada perintah atau pada teks yang dikutip dari shell lain" #: ../glib/gshell.c:559 #, c-format msgid "Text ended just after a '\\' character. (The text was '%s')" -msgstr "" -"Teks berakhir saat setelah karakter '\\' dijumpai. (Teksnya adalah '%s')" +msgstr "Teks berakhir saat setelah karakter '\\' dijumpai. (Teksnya adalah '%s')" #: ../glib/gshell.c:566 #, c-format msgid "Text ended before matching quote was found for %c. (The text was '%s')" -msgstr "" -"Teks berakhir sebelum tanda kutip pasangannya ditemukan untuk %c. (Tesknya " -"adalah '%s')" +msgstr "Teks berakhir sebelum tanda kutip pasangannya ditemukan untuk %c. (Tesknya adalah '%s')" #: ../glib/gshell.c:578 msgid "Text was empty (or contained only whitespace)" @@ -1096,23 +1063,27 @@ msgstr "Teksnya kosong (atau hanya berisi whitespace)" msgid "Failed to read data from child process" msgstr "Gagal untuk membaca data dari proses child" -#: ../glib/gspawn-win32.c:299 ../glib/gspawn.c:1486 +#: ../glib/gspawn-win32.c:299 +#: ../glib/gspawn.c:1486 #, c-format msgid "Failed to create pipe for communicating with child process (%s)" -msgstr "" -"Gagal saat membuat pipe untuk sarana komunikasi dengan proses child (%s)" +msgstr "Gagal saat membuat pipe untuk sarana komunikasi dengan proses child (%s)" -#: ../glib/gspawn-win32.c:338 ../glib/gspawn-win32.c:346 ../glib/gspawn.c:1145 +#: ../glib/gspawn-win32.c:338 +#: ../glib/gspawn-win32.c:346 +#: ../glib/gspawn.c:1145 #, c-format msgid "Failed to read from child pipe (%s)" msgstr "Gagal saat membaca dari pipe child (%s)" -#: ../glib/gspawn-win32.c:369 ../glib/gspawn.c:1352 +#: ../glib/gspawn-win32.c:369 +#: ../glib/gspawn.c:1352 #, c-format msgid "Failed to change to directory '%s' (%s)" msgstr "Gagal saat mengganti direktori ke '%s' (%s)" -#: ../glib/gspawn-win32.c:375 ../glib/gspawn-win32.c:494 +#: ../glib/gspawn-win32.c:375 +#: ../glib/gspawn-win32.c:494 #, c-format msgid "Failed to execute child process (%s)" msgstr "Gagal saat menjalankan proses child (%s)" @@ -1122,19 +1093,22 @@ msgstr "Gagal saat menjalankan proses child (%s)" msgid "Invalid program name: %s" msgstr "Nama program salah: %s" -#: ../glib/gspawn-win32.c:454 ../glib/gspawn-win32.c:722 +#: ../glib/gspawn-win32.c:454 +#: ../glib/gspawn-win32.c:722 #: ../glib/gspawn-win32.c:1278 #, c-format msgid "Invalid string in argument vector at %d: %s" msgstr "String tidak benar pada vektor argumen pada %d: %s" -#: ../glib/gspawn-win32.c:465 ../glib/gspawn-win32.c:737 +#: ../glib/gspawn-win32.c:465 +#: ../glib/gspawn-win32.c:737 #: ../glib/gspawn-win32.c:1311 #, c-format msgid "Invalid string in environment: %s" msgstr "String tidak benar pada variabel lingkungan: %s" -#: ../glib/gspawn-win32.c:718 ../glib/gspawn-win32.c:1259 +#: ../glib/gspawn-win32.c:718 +#: ../glib/gspawn-win32.c:1259 #, c-format msgid "Invalid working directory: %s" msgstr "Direktori aktif salah: %s" @@ -1145,12 +1119,8 @@ msgid "Failed to execute helper program (%s)" msgstr "Gagal saat menjalankan program bantuan (%s)" #: ../glib/gspawn-win32.c:997 -msgid "" -"Unexpected error in g_io_channel_win32_poll() reading data from a child " -"process" -msgstr "" -"Terjadi galat pada g_io_channel_win32_poll() ketika membaca data dari anak " -"proses" +msgid "Unexpected error in g_io_channel_win32_poll() reading data from a child process" +msgstr "Terjadi galat pada g_io_channel_win32_poll() ketika membaca data dari anak proses" #: ../glib/gspawn.c:196 #, c-format @@ -1160,8 +1130,7 @@ msgstr "Gagal saat membaca data dari proses child (%s)" #: ../glib/gspawn.c:335 #, c-format msgid "Unexpected error in select() reading data from a child process (%s)" -msgstr "" -"Terjadi galat pada fungsi select() ketika membaca data dari anak proses (%s)" +msgstr "Terjadi galat pada fungsi select() ketika membaca data dari anak proses (%s)" #: ../glib/gspawn.c:420 #, c-format @@ -1202,12 +1171,17 @@ msgstr "Gagal saat membaca data yang dibutuhkan dai pipe pid child (%s)" msgid "Character out of range for UTF-8" msgstr "Karakter di luar jangkauan UTF-8" -#: ../glib/gutf8.c:1166 ../glib/gutf8.c:1175 ../glib/gutf8.c:1307 -#: ../glib/gutf8.c:1316 ../glib/gutf8.c:1457 ../glib/gutf8.c:1553 +#: ../glib/gutf8.c:1166 +#: ../glib/gutf8.c:1175 +#: ../glib/gutf8.c:1307 +#: ../glib/gutf8.c:1316 +#: ../glib/gutf8.c:1457 +#: ../glib/gutf8.c:1553 msgid "Invalid sequence in conversion input" msgstr "Rangkaian input konversi salah" -#: ../glib/gutf8.c:1468 ../glib/gutf8.c:1564 +#: ../glib/gutf8.c:1468 +#: ../glib/gutf8.c:1564 msgid "Character out of range for UTF-16" msgstr "Karakter di luar jangkauan UTF-16" @@ -1235,12 +1209,14 @@ msgstr "Menampilkan semua opsi bantuan" msgid "Application Options:" msgstr "Opsi Aplikasi:" -#: ../glib/goption.c:997 ../glib/goption.c:1067 +#: ../glib/goption.c:997 +#: ../glib/goption.c:1067 #, c-format msgid "Cannot parse integer value '%s' for %s" msgstr "Tidak dapat menguraikan nilai integer '%s' untuk %s" -#: ../glib/goption.c:1007 ../glib/goption.c:1075 +#: ../glib/goption.c:1007 +#: ../glib/goption.c:1075 #, c-format msgid "Integer value '%s' for %s out of range" msgstr "Nilai integer '%s' untuk %s di luar jangkauan" @@ -1255,12 +1231,14 @@ msgstr "Tidak dapat mengurai nilai ganda '%s' untuk %s" msgid "Double value '%s' for %s out of range" msgstr "Nilai double '%s' untuk %s di luar jangkauan" -#: ../glib/goption.c:1303 ../glib/goption.c:1382 +#: ../glib/goption.c:1303 +#: ../glib/goption.c:1382 #, c-format msgid "Error parsing option %s" msgstr "Galat saat mengurai opsi %s" -#: ../glib/goption.c:1413 ../glib/goption.c:1527 +#: ../glib/goption.c:1413 +#: ../glib/goption.c:1527 #, c-format msgid "Missing argument for %s" msgstr "Argumen untuk %s tidak lengkap" @@ -1284,11 +1262,8 @@ msgstr "Filenya kosong" #: ../glib/gkeyfile.c:764 #, c-format -msgid "" -"Key file contains line '%s' which is not a key-value pair, group, or comment" -msgstr "" -"Berkas kunci berisi baris '%s' yang bukan pasangan nilai kunci, kelompok " -"atau komentar" +msgid "Key file contains line '%s' which is not a key-value pair, group, or comment" +msgstr "Berkas kunci berisi baris '%s' yang bukan pasangan nilai kunci, kelompok atau komentar" #: ../glib/gkeyfile.c:824 #, c-format @@ -1309,9 +1284,15 @@ msgstr "Nama kunci tak valid: %s" msgid "Key file contains unsupported encoding '%s'" msgstr "Berkas kunci mengadung encoding yang tidak didukung '%s'" -#: ../glib/gkeyfile.c:1115 ../glib/gkeyfile.c:1277 ../glib/gkeyfile.c:2656 -#: ../glib/gkeyfile.c:2722 ../glib/gkeyfile.c:2857 ../glib/gkeyfile.c:2990 -#: ../glib/gkeyfile.c:3143 ../glib/gkeyfile.c:3330 ../glib/gkeyfile.c:3391 +#: ../glib/gkeyfile.c:1115 +#: ../glib/gkeyfile.c:1277 +#: ../glib/gkeyfile.c:2656 +#: ../glib/gkeyfile.c:2722 +#: ../glib/gkeyfile.c:2857 +#: ../glib/gkeyfile.c:2990 +#: ../glib/gkeyfile.c:3143 +#: ../glib/gkeyfile.c:3330 +#: ../glib/gkeyfile.c:3391 #, c-format msgid "Key file does not have group '%s'" msgstr "Berkas kunci tidak memiliki kelompok '%s'" @@ -1321,35 +1302,32 @@ msgstr "Berkas kunci tidak memiliki kelompok '%s'" msgid "Key file does not have key '%s'" msgstr "Berkas kunci tidak memiliki kunci '%s'" -#: ../glib/gkeyfile.c:1396 ../glib/gkeyfile.c:1511 +#: ../glib/gkeyfile.c:1396 +#: ../glib/gkeyfile.c:1511 #, c-format msgid "Key file contains key '%s' with value '%s' which is not UTF-8" msgstr "Berkas kunci mengandung kunci '%s' dengan nilai '%s' yang bukan UTF-8" -#: ../glib/gkeyfile.c:1416 ../glib/gkeyfile.c:1910 +#: ../glib/gkeyfile.c:1416 +#: ../glib/gkeyfile.c:1910 #, c-format msgid "Key file contains key '%s' which has value that cannot be interpreted." -msgstr "" -"Berkas kunci mengandung kunci '%s' yang memiliki nilai yang tidak dapat " -"diterjemahkan." +msgstr "Berkas kunci mengandung kunci '%s' yang memiliki nilai yang tidak dapat diterjemahkan." #: ../glib/gkeyfile.c:1531 #, c-format -msgid "" -"Key file contains key '%s' which has a value that cannot be interpreted." -msgstr "" -"Berkas kunci mengandung kunci '%s' yang nilainya tidak dapat diterjemahkan." +msgid "Key file contains key '%s' which has a value that cannot be interpreted." +msgstr "Berkas kunci mengandung kunci '%s' yang nilainya tidak dapat diterjemahkan." -#: ../glib/gkeyfile.c:2125 ../glib/gkeyfile.c:2487 +#: ../glib/gkeyfile.c:2125 +#: ../glib/gkeyfile.c:2487 #, c-format -msgid "" -"Key file contains key '%s' in group '%s' which has value that cannot be " -"interpreted." -msgstr "" -"Berkas kunci mengandung kunci '%s' dalam kelompok '%s' yang memiliki nilai " -"yang tidak dapat diterjemahkan." +msgid "Key file contains key '%s' in group '%s' which has value that cannot be interpreted." +msgstr "Berkas kunci mengandung kunci '%s' dalam kelompok '%s' yang memiliki nilai yang tidak dapat diterjemahkan." -#: ../glib/gkeyfile.c:2671 ../glib/gkeyfile.c:2872 ../glib/gkeyfile.c:3402 +#: ../glib/gkeyfile.c:2671 +#: ../glib/gkeyfile.c:2872 +#: ../glib/gkeyfile.c:3402 #, c-format msgid "Key file does not have key '%s' in group '%s'" msgstr "Berkas kunci tidak memiliki kunci '%s' pada kelompok '%s'" @@ -1383,23 +1361,32 @@ msgstr "Nilai '%s' tidak dapat diterjemahkan sebagai angka pecahan." msgid "Value '%s' cannot be interpreted as a boolean." msgstr "Nilai '%s' tidak dapat diterjemahkan sebagai suatu nilai boolean." -#: ../gio/gbufferedinputstream.c:411 ../gio/gbufferedinputstream.c:492 -#: ../gio/ginputstream.c:185 ../gio/ginputstream.c:317 -#: ../gio/ginputstream.c:556 ../gio/ginputstream.c:681 -#: ../gio/goutputstream.c:198 ../gio/goutputstream.c:725 +#: ../gio/gbufferedinputstream.c:411 +#: ../gio/gbufferedinputstream.c:492 +#: ../gio/ginputstream.c:185 +#: ../gio/ginputstream.c:317 +#: ../gio/ginputstream.c:556 +#: ../gio/ginputstream.c:680 +#: ../gio/goutputstream.c:198 +#: ../gio/goutputstream.c:726 #, c-format msgid "Too large count value passed to %s" msgstr "Nilai cacah yang dilewatkan ke %s terlalu besar" -#: ../gio/gbufferedinputstream.c:881 ../gio/ginputstream.c:891 -#: ../gio/giostream.c:306 ../gio/goutputstream.c:1200 +#: ../gio/gbufferedinputstream.c:881 +#: ../gio/ginputstream.c:888 +#: ../gio/giostream.c:306 +#: ../gio/goutputstream.c:1197 msgid "Stream is already closed" msgstr "Stream telah ditutup" -#: ../gio/gcancellable.c:432 ../gio/gdbusconnection.c:1642 -#: ../gio/gdbusconnection.c:1731 ../gio/gdbusconnection.c:1913 -#: ../gio/glocalfile.c:2102 ../gio/gsimpleasyncresult.c:755 -#: ../gio/gsimpleasyncresult.c:781 +#: ../gio/gcancellable.c:433 +#: ../gio/gdbusconnection.c:1637 +#: ../gio/gdbusconnection.c:1726 +#: ../gio/gdbusconnection.c:1912 +#: ../gio/glocalfile.c:2102 +#: ../gio/gsimpleasyncresult.c:810 +#: ../gio/gsimpleasyncresult.c:836 msgid "Operation was cancelled" msgstr "Operasi dibatalkan" @@ -1407,15 +1394,18 @@ msgstr "Operasi dibatalkan" msgid "Invalid object, not initialized" msgstr "Objek tak valid, tak diinisialisasi" -#: ../gio/gcharsetconverter.c:284 ../gio/gcharsetconverter.c:312 +#: ../gio/gcharsetconverter.c:284 +#: ../gio/gcharsetconverter.c:312 msgid "Incomplete multibyte sequence in input" msgstr "Rangkaian byte tak lengkap dalam input" -#: ../gio/gcharsetconverter.c:318 ../gio/gcharsetconverter.c:327 +#: ../gio/gcharsetconverter.c:318 +#: ../gio/gcharsetconverter.c:327 msgid "Not enough space in destination" msgstr "Tak cukup ruang di tujuan" -#: ../gio/gcharsetconverter.c:447 ../gio/gsocket.c:810 +#: ../gio/gcharsetconverter.c:447 +#: ../gio/gsocket.c:832 msgid "Cancellable initialization not supported" msgstr "Inisialisasi yang dapat dibatalkan tak didukung" @@ -1433,7 +1423,8 @@ msgstr "jenis berkas %s" msgid "%s type" msgstr "tipe %s" -#: ../gio/gcredentials.c:246 ../gio/gcredentials.c:441 +#: ../gio/gcredentials.c:246 +#: ../gio/gcredentials.c:441 msgid "GCredentials is not implemented on this OS" msgstr "GCredentials tak diimplementasikan di OS ini" @@ -1445,7 +1436,8 @@ msgstr "Tidak ada dukungan GCredentials bagi platform Anda" msgid "Unexpected early end-of-stream" msgstr "Akhir stream terlalu dini, tak diharapkan" -#: ../gio/gdbusaddress.c:142 ../gio/gdbusaddress.c:230 +#: ../gio/gdbusaddress.c:142 +#: ../gio/gdbusaddress.c:230 #: ../gio/gdbusaddress.c:304 #, c-format msgid "Unsupported key `%s' in address entry `%s'" @@ -1453,23 +1445,22 @@ msgstr "Kunci '%s' tak didukung pada entri alamat '%s'" #: ../gio/gdbusaddress.c:169 #, c-format -msgid "" -"Address `%s' is invalid (need exactly one of path, tmpdir or abstract keys)" -msgstr "" -"Alamat '%s' tak valid (perlu hanya salah satu dari path, tmpdir, atau kunci " -"abstrak)" +msgid "Address `%s' is invalid (need exactly one of path, tmpdir or abstract keys)" +msgstr "Alamat '%s' tak valid (perlu hanya salah satu dari path, tmpdir, atau kunci abstrak)" #: ../gio/gdbusaddress.c:182 #, c-format msgid "Meaningless key/value pair combination in address entry `%s'" msgstr "Kombinasi pasangan kunci/nilai tanpa arti di entri alamat '%s'" -#: ../gio/gdbusaddress.c:245 ../gio/gdbusaddress.c:319 +#: ../gio/gdbusaddress.c:245 +#: ../gio/gdbusaddress.c:319 #, c-format msgid "Error in address `%s' - the port attribute is malformed" msgstr "Galat di alamat '%s' - atribut port salah bentuk" -#: ../gio/gdbusaddress.c:256 ../gio/gdbusaddress.c:330 +#: ../gio/gdbusaddress.c:256 +#: ../gio/gdbusaddress.c:330 #, c-format msgid "Error in address `%s' - the family attribute is malformed" msgstr "Galat di alamat '%s' - atribut family salah bentuk" @@ -1481,30 +1472,18 @@ msgstr "Elemen alamat '%s' tak memuat titik dua (:)" #: ../gio/gdbusaddress.c:455 #, c-format -msgid "" -"Key/Value pair %d, `%s', in address element `%s', does not contain an equal " -"sign" -msgstr "" -"Pasangan kunci/nilai %d, '%s', di elemen alamat '%s' tak memuat tanda sama " -"dengan" +msgid "Key/Value pair %d, `%s', in address element `%s', does not contain an equal sign" +msgstr "Pasangan kunci/nilai %d, '%s', di elemen alamat '%s' tak memuat tanda sama dengan" #: ../gio/gdbusaddress.c:469 #, c-format -msgid "" -"Error unescaping key or value in Key/Value pair %d, `%s', in address element " -"`%s'" -msgstr "" -"Galat saat membongkar kunci atau nilai dalam pasangan Key/Value %d, '%s', " -"dalam elemen alamat '%s'" +msgid "Error unescaping key or value in Key/Value pair %d, `%s', in address element `%s'" +msgstr "Galat saat membongkar kunci atau nilai dalam pasangan Key/Value %d, '%s', dalam elemen alamat '%s'" #: ../gio/gdbusaddress.c:547 #, c-format -msgid "" -"Error in address `%s' - the unix transport requires exactly one of the keys " -"`path' or `abstract' to be set" -msgstr "" -"Galat di alamat '%s' - transport unix memerlukan hanya satu dari kunci " -"`path' atau `abstract' untuk ditata" +msgid "Error in address `%s' - the unix transport requires exactly one of the keys `path' or `abstract' to be set" +msgstr "Galat di alamat '%s' - transport unix memerlukan hanya satu dari kunci `path' atau `abstract' untuk ditata" #: ../gio/gdbusaddress.c:583 #, c-format @@ -1550,53 +1529,46 @@ msgstr "Galat saat membaca berkas nonce '%s', berharap 16 byte, mendapat %d" msgid "Error writing contents of nonce file `%s' to stream:" msgstr "Galat saat menulis isi dari berkas nonce '%s' ke stream:" -#: ../gio/gdbusaddress.c:942 +#: ../gio/gdbusaddress.c:939 msgid "The given address is empty" msgstr "Tidak ada alamat yang diberikan" -#: ../gio/gdbusaddress.c:1011 +#: ../gio/gdbusaddress.c:1008 msgid "Cannot spawn a message bus without a machine-id: " msgstr "Tidak bisa spawn suatu bus pesan tanpa id-mesin:" -#: ../gio/gdbusaddress.c:1048 +#: ../gio/gdbusaddress.c:1045 #, c-format msgid "Error spawning command line `%s': " msgstr "Galat saat membaca berkas nonce '%s':" -#: ../gio/gdbusaddress.c:1059 +#: ../gio/gdbusaddress.c:1056 #, c-format msgid "Abnormal program termination spawning command line `%s': %s" msgstr "Akhir program tidak normal saat spawn perintah baris '%s': %s" -#: ../gio/gdbusaddress.c:1073 +#: ../gio/gdbusaddress.c:1070 #, c-format msgid "Command line `%s' exited with non-zero exit status %d: %s" msgstr "Baris perintah `%s' berakhir dengan status tidak nol %d: %s" -#: ../gio/gdbusaddress.c:1146 +#: ../gio/gdbusaddress.c:1143 #, c-format msgid "Cannot determine session bus address (not implemented for this OS)" -msgstr "" -"Tidak bisa menentukan alamat bus sesi (tidak diimplementasi bagi OS ini)" +msgstr "Tidak bisa menentukan alamat bus sesi (tidak diimplementasi bagi OS ini)" -#: ../gio/gdbusaddress.c:1245 ../gio/gdbusconnection.c:6151 +#: ../gio/gdbusaddress.c:1242 +#: ../gio/gdbusconnection.c:6168 #, c-format -msgid "" -"Cannot determine bus address from DBUS_STARTER_BUS_TYPE environment variable " -"- unknown value `%s'" -msgstr "" -"Tak bisa menentukan alamat bus dari variabel lingkungan " -"DBUS_STARTER_BUS_TYPE - nilai tak dikenal '%s'" +msgid "Cannot determine bus address from DBUS_STARTER_BUS_TYPE environment variable - unknown value `%s'" +msgstr "Tak bisa menentukan alamat bus dari variabel lingkungan DBUS_STARTER_BUS_TYPE - nilai tak dikenal '%s'" -#: ../gio/gdbusaddress.c:1254 ../gio/gdbusconnection.c:6160 -msgid "" -"Cannot determine bus address because the DBUS_STARTER_BUS_TYPE environment " -"variable is not set" -msgstr "" -"Tak bisa menentukan alamat bus karena variabel lingkungan " -"DBUS_STARTER_BUS_TYPE tak diisi" +#: ../gio/gdbusaddress.c:1251 +#: ../gio/gdbusconnection.c:6177 +msgid "Cannot determine bus address because the DBUS_STARTER_BUS_TYPE environment variable is not set" +msgstr "Tak bisa menentukan alamat bus karena variabel lingkungan DBUS_STARTER_BUS_TYPE tak diisi" -#: ../gio/gdbusaddress.c:1264 +#: ../gio/gdbusaddress.c:1261 #, c-format msgid "Unknown bus type %d" msgstr "Tipe bus %d tak dikenal" @@ -1607,16 +1579,12 @@ msgstr "Ketiadaan isi yang tak diharapkan ketika membaca suatu baris" #: ../gio/gdbusauth.c:332 msgid "Unexpected lack of content trying to (safely) read a line" -msgstr "" -"Ketiadaan isi yang tak diharapkan ketika membaca suatu baris (secara aman)" +msgstr "Ketiadaan isi yang tak diharapkan ketika membaca suatu baris (secara aman)" #: ../gio/gdbusauth.c:503 #, c-format -msgid "" -"Exhausted all available authentication mechanisms (tried: %s) (available: %s)" -msgstr "" -"Menghabiskan semua mekanisme otentikasi yang tersedia (dicoba: %s) " -"(tersedia: %s)" +msgid "Exhausted all available authentication mechanisms (tried: %s) (available: %s)" +msgstr "Menghabiskan semua mekanisme otentikasi yang tersedia (dicoba: %s) (tersedia: %s)" #: ../gio/gdbusauth.c:1150 msgid "Cancelled via GDBusAuthObserver::authorize-authenticated-peer" @@ -1629,10 +1597,8 @@ msgstr "Galat ketika memeriksa status direktori `%s': %s" #: ../gio/gdbusauthmechanismsha1.c:278 #, c-format -msgid "" -"Permissions on directory `%s' are malformed. Expected mode 0700, got 0%o" -msgstr "" -"Ijin pada direktori '%s' salah bentuk. Diharapkan mode 0700, diperoleh 0%o" +msgid "Permissions on directory `%s' are malformed. Expected mode 0700, got 0%o" +msgstr "Ijin pada direktori '%s' salah bentuk. Diharapkan mode 0700, diperoleh 0%o" #: ../gio/gdbusauthmechanismsha1.c:299 #, c-format @@ -1644,26 +1610,23 @@ msgstr "Galat membuat direktori '%s': %s" msgid "Error opening keyring `%s' for reading: " msgstr "Galat saat membuka gantungan kunci '%s' untuk dibaca:" -#: ../gio/gdbusauthmechanismsha1.c:406 ../gio/gdbusauthmechanismsha1.c:715 +#: ../gio/gdbusauthmechanismsha1.c:406 +#: ../gio/gdbusauthmechanismsha1.c:715 #, c-format msgid "Line %d of the keyring at `%s' with content `%s' is malformed" msgstr "Baris %d dari gantungan kunci pada '%s' dengan isi '%s' salah bentuk" -#: ../gio/gdbusauthmechanismsha1.c:420 ../gio/gdbusauthmechanismsha1.c:729 +#: ../gio/gdbusauthmechanismsha1.c:420 +#: ../gio/gdbusauthmechanismsha1.c:729 #, c-format -msgid "" -"First token of line %d of the keyring at `%s' with content `%s' is malformed" -msgstr "" -"Token pertama dari baris %d dari gantungan kunci pada '%s' dengan isi '%s' " -"salah bentuk" +msgid "First token of line %d of the keyring at `%s' with content `%s' is malformed" +msgstr "Token pertama dari baris %d dari gantungan kunci pada '%s' dengan isi '%s' salah bentuk" -#: ../gio/gdbusauthmechanismsha1.c:434 ../gio/gdbusauthmechanismsha1.c:743 +#: ../gio/gdbusauthmechanismsha1.c:434 +#: ../gio/gdbusauthmechanismsha1.c:743 #, c-format -msgid "" -"Second token of line %d of the keyring at `%s' with content `%s' is malformed" -msgstr "" -"Token kedua dari baris %d dari gantungan kunci pada '%s' dengan isi '%s' " -"salah bentuk" +msgid "Second token of line %d of the keyring at `%s' with content `%s' is malformed" +msgstr "Token kedua dari baris %d dari gantungan kunci pada '%s' dengan isi '%s' salah bentuk" #: ../gio/gdbusauthmechanismsha1.c:458 #, c-format @@ -1700,89 +1663,89 @@ msgstr "Galat saat membuka gantungan kunci '%s' untuk ditulisi:" msgid "(Additionally, releasing the lock for `%s' also failed: %s) " msgstr "(Selain itu, melepas kunci bagi '%s' juga gagal: %s)" -#: ../gio/gdbusconnection.c:1151 ../gio/gdbusconnection.c:1380 -#: ../gio/gdbusconnection.c:1419 ../gio/gdbusconnection.c:1742 +#: ../gio/gdbusconnection.c:1148 +#: ../gio/gdbusconnection.c:1374 +#: ../gio/gdbusconnection.c:1413 +#: ../gio/gdbusconnection.c:1737 msgid "The connection is closed" msgstr "Sambungan tertutup" -#: ../gio/gdbusconnection.c:1686 +#: ../gio/gdbusconnection.c:1681 msgid "Timeout was reached" msgstr "Kehabisan waktu" #: ../gio/gdbusconnection.c:2300 -msgid "" -"Unsupported flags encountered when constructing a client-side connection" -msgstr "" -"Ditemui flag yang tak didukung ketika membangun sambungan di sisi klien" +msgid "Unsupported flags encountered when constructing a client-side connection" +msgstr "Ditemui flag yang tak didukung ketika membangun sambungan di sisi klien" -#: ../gio/gdbusconnection.c:3734 ../gio/gdbusconnection.c:4052 +#: ../gio/gdbusconnection.c:3752 +#: ../gio/gdbusconnection.c:4070 #, c-format -msgid "" -"No such interface `org.freedesktop.DBus.Properties' on object at path %s" -msgstr "" -"Tidak ada antarmuka `org.freedesktop.DBus.Properties' pada objek di lokasi %s" +msgid "No such interface `org.freedesktop.DBus.Properties' on object at path %s" +msgstr "Tidak ada antarmuka `org.freedesktop.DBus.Properties' pada objek di lokasi %s" -#: ../gio/gdbusconnection.c:3806 +#: ../gio/gdbusconnection.c:3824 #, c-format msgid "Error setting property `%s': Expected type `%s' but got `%s'" -msgstr "" -"Galat menata properti '%s': Tipe yang diharapkan '%s' tapi diperoleh '%s'" +msgstr "Galat menata properti '%s': Tipe yang diharapkan '%s' tapi diperoleh '%s'" -#: ../gio/gdbusconnection.c:3901 +#: ../gio/gdbusconnection.c:3919 #, c-format msgid "No such property `%s'" msgstr "Tak ada properti '%s'" -#: ../gio/gdbusconnection.c:3913 +#: ../gio/gdbusconnection.c:3931 #, c-format msgid "Property `%s' is not readable" msgstr "Properti '%s' tidak dapat dibaca" -#: ../gio/gdbusconnection.c:3924 +#: ../gio/gdbusconnection.c:3942 #, c-format msgid "Property `%s' is not writable" msgstr "Properti '%s' tidak dapat ditulisi" -#: ../gio/gdbusconnection.c:3994 ../gio/gdbusconnection.c:5585 +#: ../gio/gdbusconnection.c:4012 +#: ../gio/gdbusconnection.c:5602 #, c-format msgid "No such interface `%s'" msgstr "Tak ada antar muka '%s'" -#: ../gio/gdbusconnection.c:4182 +#: ../gio/gdbusconnection.c:4200 msgid "No such interface" msgstr "Tak ada antar muka begitu" -#: ../gio/gdbusconnection.c:4398 ../gio/gdbusconnection.c:6101 +#: ../gio/gdbusconnection.c:4416 +#: ../gio/gdbusconnection.c:6118 #, c-format msgid "No such interface `%s' on object at path %s" msgstr "Tak ada antar muka '%s' pada objek di lokasi %s" -#: ../gio/gdbusconnection.c:4450 +#: ../gio/gdbusconnection.c:4468 #, c-format msgid "No such method `%s'" msgstr "Tak ada metoda '%s'" -#: ../gio/gdbusconnection.c:4481 +#: ../gio/gdbusconnection.c:4499 #, c-format msgid "Type of message, `%s', does not match expected type `%s'" msgstr "Tipe pesan '%s' tak cocok dengan tipe yang diharapkan '%s'" -#: ../gio/gdbusconnection.c:4700 +#: ../gio/gdbusconnection.c:4718 #, c-format msgid "An object is already exported for the interface %s at %s" msgstr "Suatu objek telah diekspor bagi antar muka %s pada %s" -#: ../gio/gdbusconnection.c:4894 +#: ../gio/gdbusconnection.c:4912 #, c-format msgid "Method `%s' returned type `%s', but expected `%s'" msgstr "Metoda '%s' mengembalikan tipe '%s', tapi yang diharapkan '%s'" -#: ../gio/gdbusconnection.c:5696 +#: ../gio/gdbusconnection.c:5713 #, c-format msgid "Method `%s' on interface `%s' with signature `%s' does not exist" msgstr "Metoda '%s' pada antar muka '%s' dengan tanda tangan '%s' tak ada" -#: ../gio/gdbusconnection.c:5814 +#: ../gio/gdbusconnection.c:5831 #, c-format msgid "A subtree is already exported for %s" msgstr "Subtree telah diekspor bagi %s" @@ -1808,20 +1771,12 @@ msgid "SIGNAL message: PATH, INTERFACE or MEMBER header field is missing" msgstr "Pesan SIGNAL: ruas header PATH, INTERFACE, atau MEMBER hilang" #: ../gio/gdbusmessage.c:911 -msgid "" -"SIGNAL message: The PATH header field is using the reserved value /org/" -"freedesktop/DBus/Local" -msgstr "" -"Pesan SIGNAL: ruas header PATH memakai nilai khusus /org/freedesktop/DBus/" -"Local" +msgid "SIGNAL message: The PATH header field is using the reserved value /org/freedesktop/DBus/Local" +msgstr "Pesan SIGNAL: ruas header PATH memakai nilai khusus /org/freedesktop/DBus/Local" #: ../gio/gdbusmessage.c:919 -msgid "" -"SIGNAL message: The INTERFACE header field is using the reserved value org." -"freedesktop.DBus.Local" -msgstr "" -"Pesan SIGNAL: ruas header INTERFACE memakai nilai khusus org.freedesktop." -"DBus.Local" +msgid "SIGNAL message: The INTERFACE header field is using the reserved value org.freedesktop.DBus.Local" +msgstr "Pesan SIGNAL: ruas header INTERFACE memakai nilai khusus org.freedesktop.DBus.Local" #: ../gio/gdbusmessage.c:994 #, c-format @@ -1830,13 +1785,8 @@ msgstr "Ingin membaca %lu byte tapi memperoleh EOF" #: ../gio/gdbusmessage.c:1019 #, 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 "" -"Berharap string UTF-8 yang valid tapi menjumpai byte tak valid pada ofset %d " -"(panjang string adalah %d). String UTF-8 yang valid sampai titik itu adalah " -"'%s'" +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 "Berharap string UTF-8 yang valid tapi menjumpai byte tak valid pada ofset %d (panjang string adalah %d). String UTF-8 yang valid sampai titik itu adalah '%s'" #: ../gio/gdbusmessage.c:1032 #, c-format @@ -1855,11 +1805,8 @@ msgstr "Nilai terurai '%s' bukan tanda tangan D-Bus yang valid" #: ../gio/gdbusmessage.c:1311 #, c-format -msgid "" -"Encountered array of length %u bytes. Maximum length is 2<<26 bytes (64 MiB)." -msgstr "" -"Menjumpai larik dengan panjang %u byte. Panjang maksimum adalah 2<<26 byte " -"(64 MiB). " +msgid "Encountered array of length %u bytes. Maximum length is 2<<26 bytes (64 MiB)." +msgstr "Menjumpai larik dengan panjang %u byte. Panjang maksimum adalah 2<<26 byte (64 MiB). " #: ../gio/gdbusmessage.c:1472 #, c-format @@ -1868,20 +1815,13 @@ msgstr "Nilai terurai '%s' bagi varian bukan tanda tangan D-Bus yang valid" #: ../gio/gdbusmessage.c:1499 #, c-format -msgid "" -"Error deserializing GVariant with type string `%s' from the D-Bus wire format" -msgstr "" -"Galat saat deserialisasi GVariant dengan type string '%s' dari format kabel " -"D-Bus" +msgid "Error deserializing GVariant with type string `%s' from the D-Bus wire format" +msgstr "Galat saat deserialisasi GVariant dengan type string '%s' dari format kabel D-Bus" #: ../gio/gdbusmessage.c:1683 #, c-format -msgid "" -"Invalid endianness value. Expected 0x6c ('l') or 0x42 ('B') but found value " -"0x%02x" -msgstr "" -"Nilai ke-endian-an tak valid. Berharap 0x6c ('l') atau (0x42) 'B' tapi " -"menemui 0x%02x" +msgid "Invalid endianness value. Expected 0x6c ('l') or 0x42 ('B') but found value 0x%02x" +msgstr "Nilai ke-endian-an tak valid. Berharap 0x6c ('l') atau (0x42) 'B' tapi menemui 0x%02x" #: ../gio/gdbusmessage.c:1697 #, c-format @@ -1891,8 +1831,7 @@ msgstr "Versi protokol mayor tak valid. Berharap 1 tapi menemui %d" #: ../gio/gdbusmessage.c:1754 #, c-format msgid "Signature header with signature `%s' found but message body is empty" -msgstr "" -"Header tanda tangan dengan tanda tangan '%s' ditemukan tapi body pesan kosong" +msgstr "Header tanda tangan dengan tanda tangan '%s' ditemukan tapi body pesan kosong" #: ../gio/gdbusmessage.c:1768 #, c-format @@ -1910,10 +1849,8 @@ msgstr "Tidak bisa men-deserialisasi pesan:" #: ../gio/gdbusmessage.c:2131 #, c-format -msgid "" -"Error serializing GVariant with type string `%s' to the D-Bus wire format" -msgstr "" -"Kesalahan serialisasi GVariant dengan type string '%s' ke format kabel D-Bus" +msgid "Error serializing GVariant with type string `%s' to the D-Bus wire format" +msgstr "Kesalahan serialisasi GVariant dengan type string '%s' ke format kabel D-Bus" #: ../gio/gdbusmessage.c:2272 #, c-format @@ -1931,12 +1868,8 @@ msgstr "Body pesan punya tanda tangan '%s' tapi tak ada header tanda tangan" #: ../gio/gdbusmessage.c:2334 #, c-format -msgid "" -"Message body has type signature `%s' but signature in the header field is `%" -"s'" -msgstr "" -"Body pesan memiliki tanda tangan tipe '%s' tapi tanda tangan di ruas header " -"adalah '(%s)'" +msgid "Message body has type signature `%s' but signature in the header field is `%s'" +msgstr "Body pesan memiliki tanda tangan tipe '%s' tapi tanda tangan di ruas header adalah '(%s)'" #: ../gio/gdbusmessage.c:2350 #, c-format @@ -1957,42 +1890,36 @@ msgstr "Galat balikan dengan body kosong" msgid "Type of return value is incorrect, got `%s', expected `%s'" msgstr "Tipe nilai balikan salah, mendapat '%s', mengharapkan '%s'" -#: ../gio/gdbusmethodinvocation.c:406 ../gio/gsocket.c:2974 -#: ../gio/gsocket.c:3055 +#: ../gio/gdbusmethodinvocation.c:406 +#: ../gio/gsocket.c:3027 +#: ../gio/gsocket.c:3108 #, c-format msgid "Error sending message: %s" msgstr "Galat saat menerima pesan: %s" -#: ../gio/gdbusprivate.c:1759 +#: ../gio/gdbusprivate.c:1768 msgid "Unable to load /var/lib/dbus/machine-id: " msgstr "Tidak dapat memuat /var/lib/dbus/machine-id: " #: ../gio/gdbusproxy.c:714 #, c-format -msgid "" -"Trying to set property %s of type %s but according to the expected interface " -"the type is %s" -msgstr "" -"Mencoba menata properti %s bertipe %s tetapi menurut antar muka yang " -"diharapkan tipenya adalah %s" +msgid "Trying to set property %s of type %s but according to the expected interface the type is %s" +msgstr "Mencoba menata properti %s bertipe %s tetapi menurut antar muka yang diharapkan tipenya adalah %s" -#: ../gio/gdbusproxy.c:1235 +#: ../gio/gdbusproxy.c:1234 #, c-format msgid "Error calling StartServiceByName for %s: " msgstr "Galat sewaktu memanggil StartServiceByName untuk %s: " -#: ../gio/gdbusproxy.c:1256 +#: ../gio/gdbusproxy.c:1255 #, c-format msgid "Unexpected reply %d from StartServiceByName(\"%s\") method" msgstr "Balasan tak diharapkan %d dari metode StartServiceByName(\"%s\")" -#: ../gio/gdbusproxy.c:2315 ../gio/gdbusproxy.c:2472 -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" -msgstr "" -"Tidak bisa menjalankan metoda; proksi adalah nama terkenal tanpa pemilik dan " -"proksi dibangun dengan flag G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START" +#: ../gio/gdbusproxy.c:2311 +#: ../gio/gdbusproxy.c:2469 +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" +msgstr "Tidak bisa menjalankan metoda; proksi adalah nama terkenal tanpa pemilik dan proksi dibangun dengan flag G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START" #: ../gio/gdbusserver.c:715 msgid "Abstract name space not supported" @@ -2038,16 +1965,21 @@ msgstr "" " monitor Pantau suatu objek jauh\n" " call Jalankan suatu metode pada suatu objek jauh\n" "\n" -"Gunakan \"%s PERINTAH --help\" untuk memperoleh bantuan pada setiap " -"perintah.\n" +"Gunakan \"%s PERINTAH --help\" untuk memperoleh bantuan pada setiap perintah.\n" -#: ../gio/gdbus-tool.c:160 ../gio/gdbus-tool.c:216 ../gio/gdbus-tool.c:288 -#: ../gio/gdbus-tool.c:312 ../gio/gdbus-tool.c:814 ../gio/gdbus-tool.c:1324 +#: ../gio/gdbus-tool.c:160 +#: ../gio/gdbus-tool.c:216 +#: ../gio/gdbus-tool.c:288 +#: ../gio/gdbus-tool.c:312 +#: ../gio/gdbus-tool.c:814 +#: ../gio/gdbus-tool.c:1324 #, c-format msgid "Error: %s\n" msgstr "Galat: %s\n" -#: ../gio/gdbus-tool.c:171 ../gio/gdbus-tool.c:229 ../gio/gdbus-tool.c:1340 +#: ../gio/gdbus-tool.c:171 +#: ../gio/gdbus-tool.c:229 +#: ../gio/gdbus-tool.c:1340 #, c-format msgid "Error parsing introspection XML: %s\n" msgstr "Galat saat mengurai XML introspeksi: %s\n" @@ -2084,18 +2016,13 @@ msgstr "Telah dinyatakan titik ujung sambungan berganda" #: ../gio/gdbus-tool.c:459 #, c-format -msgid "" -"Warning: According to introspection data, interface `%s' does not exist\n" +msgid "Warning: According to introspection data, interface `%s' does not exist\n" msgstr "Peringatan: Menurut data introspeksi, antar muka '%s' tak ada\n" #: ../gio/gdbus-tool.c:468 #, c-format -msgid "" -"Warning: According to introspection data, method `%s' does not exist on " -"interface `%s'\n" -msgstr "" -"Peringatan: Menurut data introspeksi, metoda '%s' tak ada pada antar muka '%" -"s'\n" +msgid "Warning: According to introspection data, method `%s' does not exist on interface `%s'\n" +msgstr "Peringatan: Menurut data introspeksi, metoda '%s' tak ada pada antar muka '%s'\n" #: ../gio/gdbus-tool.c:530 msgid "Destination name to invoke method on" @@ -2113,22 +2040,29 @@ msgstr "Nama metoda dan antar muka" msgid "Invoke a method on a remote object." msgstr "Jalankan suatu metoda pada suatu objek jauh." -#: ../gio/gdbus-tool.c:626 ../gio/gdbus-tool.c:1245 ../gio/gdbus-tool.c:1505 +#: ../gio/gdbus-tool.c:626 +#: ../gio/gdbus-tool.c:1245 +#: ../gio/gdbus-tool.c:1505 #, c-format msgid "Error connecting: %s\n" msgstr "Galat saat menyambung: %s\n" -#: ../gio/gdbus-tool.c:646 ../gio/gdbus-tool.c:1264 ../gio/gdbus-tool.c:1524 +#: ../gio/gdbus-tool.c:646 +#: ../gio/gdbus-tool.c:1264 +#: ../gio/gdbus-tool.c:1524 #, c-format msgid "Error: Destination is not specified\n" msgstr "Galat: Tujuan tak dinyatakan\n" -#: ../gio/gdbus-tool.c:667 ../gio/gdbus-tool.c:1283 +#: ../gio/gdbus-tool.c:667 +#: ../gio/gdbus-tool.c:1283 #, c-format msgid "Error: Object path is not specified\n" msgstr "Galat: Lokasi objek tak dinyatakan\n" -#: ../gio/gdbus-tool.c:687 ../gio/gdbus-tool.c:1303 ../gio/gdbus-tool.c:1564 +#: ../gio/gdbus-tool.c:687 +#: ../gio/gdbus-tool.c:1303 +#: ../gio/gdbus-tool.c:1564 #, c-format msgid "Error: %s is not a valid object path\n" msgstr "Galat: '%s' bukan suatu lokasi objek yang valid\n" @@ -2181,35 +2115,35 @@ msgstr "Lokasi objek untuk dipantau" msgid "Monitor a remote object." msgstr "Memantau suatu objek jauh" -#: ../gio/gdesktopappinfo.c:467 ../gio/gwin32appinfo.c:221 +#: ../gio/gdesktopappinfo.c:480 +#: ../gio/gwin32appinfo.c:221 msgid "Unnamed" msgstr "Tanpa nama" -#: ../gio/gdesktopappinfo.c:751 +#: ../gio/gdesktopappinfo.c:764 msgid "Desktop file didn't specify Exec field" msgstr "Berkas desktop tak menyatakan ruas Exec" -#: ../gio/gdesktopappinfo.c:944 +#: ../gio/gdesktopappinfo.c:957 msgid "Unable to find terminal required for application" msgstr "Tak bisa temukan terminal yang diperlukan bagi aplikasi" -#: ../gio/gdesktopappinfo.c:1153 +#: ../gio/gdesktopappinfo.c:1166 #, c-format msgid "Can't create user application configuration folder %s: %s" -msgstr "" -"Tak bisa membuat folder %s untuk konfigurasi aplikasi bagi pengguna: %s" +msgstr "Tak bisa membuat folder %s untuk konfigurasi aplikasi bagi pengguna: %s" -#: ../gio/gdesktopappinfo.c:1157 +#: ../gio/gdesktopappinfo.c:1170 #, c-format msgid "Can't create user MIME configuration folder %s: %s" msgstr "Tak bisa membuat folder %s untuk konfigurasi MIME bagi pengguna: %s" -#: ../gio/gdesktopappinfo.c:1565 +#: ../gio/gdesktopappinfo.c:1663 #, c-format msgid "Can't create user desktop file %s" msgstr "Tak bisa membuat berkas desktop pengguna %s" -#: ../gio/gdesktopappinfo.c:1679 +#: ../gio/gdesktopappinfo.c:1779 #, c-format msgid "Custom definition for %s" msgstr "Definisi gubahan bagi %s" @@ -2247,29 +2181,47 @@ msgstr "Tak bisa menangani pengkodean GEmblem versi %d" msgid "Malformed number of tokens (%d) in GEmblem encoding" msgstr "Cacah token (%d) salah bentuk di pengkodean GEmblem" -#: ../gio/gemblemedicon.c:293 +#: ../gio/gemblemedicon.c:368 #, c-format msgid "Can't handle version %d of GEmblemedIcon encoding" msgstr "Tak bisa menangani pengkodean versi %d dari GEmblemedIcon" -#: ../gio/gemblemedicon.c:303 +#: ../gio/gemblemedicon.c:378 #, c-format msgid "Malformed number of tokens (%d) in GEmblemedIcon encoding" msgstr "Cacah token (%d) salah bentuk di pengkodean GEmblemedIcon" -#: ../gio/gemblemedicon.c:326 +#: ../gio/gemblemedicon.c:401 msgid "Expected a GEmblem for GEmblemedIcon" msgstr "Berharap suatu GEmblem bagi GEmblemedIcon" -#: ../gio/gfile.c:872 ../gio/gfile.c:1102 ../gio/gfile.c:1237 -#: ../gio/gfile.c:1474 ../gio/gfile.c:1528 ../gio/gfile.c:1585 -#: ../gio/gfile.c:1668 ../gio/gfile.c:1723 ../gio/gfile.c:1783 -#: ../gio/gfile.c:1837 ../gio/gfile.c:3307 ../gio/gfile.c:3361 -#: ../gio/gfile.c:3493 ../gio/gfile.c:3534 ../gio/gfile.c:3861 -#: ../gio/gfile.c:4263 ../gio/gfile.c:4349 ../gio/gfile.c:4438 -#: ../gio/gfile.c:4536 ../gio/gfile.c:4623 ../gio/gfile.c:4717 -#: ../gio/gfile.c:5047 ../gio/gfile.c:5327 ../gio/gfile.c:5396 -#: ../gio/gfile.c:6988 ../gio/gfile.c:7078 ../gio/gfile.c:7164 +#: ../gio/gfile.c:872 +#: ../gio/gfile.c:1103 +#: ../gio/gfile.c:1238 +#: ../gio/gfile.c:1475 +#: ../gio/gfile.c:1529 +#: ../gio/gfile.c:1586 +#: ../gio/gfile.c:1669 +#: ../gio/gfile.c:1724 +#: ../gio/gfile.c:1784 +#: ../gio/gfile.c:1838 +#: ../gio/gfile.c:3308 +#: ../gio/gfile.c:3362 +#: ../gio/gfile.c:3494 +#: ../gio/gfile.c:3535 +#: ../gio/gfile.c:3862 +#: ../gio/gfile.c:4264 +#: ../gio/gfile.c:4350 +#: ../gio/gfile.c:4439 +#: ../gio/gfile.c:4537 +#: ../gio/gfile.c:4624 +#: ../gio/gfile.c:4718 +#: ../gio/gfile.c:5039 +#: ../gio/gfile.c:5306 +#: ../gio/gfile.c:5371 +#: ../gio/gfile.c:6945 +#: ../gio/gfile.c:7035 +#: ../gio/gfile.c:7121 #: ../gio/win32/gwinhttpfile.c:439 msgid "Operation not supported" msgstr "Operasi tak didukung" @@ -2282,58 +2234,63 @@ msgstr "Operasi tak didukung" #. Translators: This is an error message when trying to find #. * the enclosing (user visible) mount of a file, but none #. * exists. -#: ../gio/gfile.c:1358 ../gio/glocalfile.c:1059 ../gio/glocalfile.c:1070 +#: ../gio/gfile.c:1359 +#: ../gio/glocalfile.c:1059 +#: ../gio/glocalfile.c:1070 #: ../gio/glocalfile.c:1083 msgid "Containing mount does not exist" msgstr "Kait yang memuat tak ada" -#: ../gio/gfile.c:2411 ../gio/glocalfile.c:2258 +#: ../gio/gfile.c:2412 +#: ../gio/glocalfile.c:2258 msgid "Can't copy over directory" msgstr "Tak bisa menyalin atas direktori" -#: ../gio/gfile.c:2472 +#: ../gio/gfile.c:2473 msgid "Can't copy directory over directory" msgstr "Tak bisa menyalin direktori atas direktori" -#: ../gio/gfile.c:2480 ../gio/glocalfile.c:2267 +#: ../gio/gfile.c:2481 +#: ../gio/glocalfile.c:2267 msgid "Target file exists" msgstr "Berkas tujuan telah ada" -#: ../gio/gfile.c:2498 +#: ../gio/gfile.c:2499 msgid "Can't recursively copy directory" msgstr "Tak bisa menyalin direktori secara rekursif" -#: ../gio/gfile.c:2758 +#: ../gio/gfile.c:2759 msgid "Splice not supported" msgstr "Splice tidak didukung" -#: ../gio/gfile.c:2762 +#: ../gio/gfile.c:2763 #, c-format msgid "Error splicing file: %s" msgstr "Galat saat men-splice berkas: %s" -#: ../gio/gfile.c:2909 +#: ../gio/gfile.c:2910 msgid "Can't copy special file" msgstr "Tak bisa menyalin berkas spesial" -#: ../gio/gfile.c:3483 +#: ../gio/gfile.c:3484 msgid "Invalid symlink value given" msgstr "Diberikan nilai link simbolik yang tak valid" -#: ../gio/gfile.c:3577 +#: ../gio/gfile.c:3578 msgid "Trash not supported" msgstr "Tong sampah tak didukung" -#: ../gio/gfile.c:3626 +#: ../gio/gfile.c:3627 #, c-format msgid "File names cannot contain '%c'" msgstr "Nama berkas tak boleh mengandung '%c'" -#: ../gio/gfile.c:6045 ../gio/gvolume.c:332 +#: ../gio/gfile.c:6004 +#: ../gio/gvolume.c:332 msgid "volume doesn't implement mount" msgstr "volume tak mengimplementasi pengaitan" -#: ../gio/gfile.c:6156 +#: ../gio/gfile.c:6115 msgid "No application is registered as handling this file" msgstr "Tak ada aplikasi terdaftar yang menangani berkas ini" @@ -2341,12 +2298,15 @@ msgstr "Tak ada aplikasi terdaftar yang menangani berkas ini" msgid "Enumerator is closed" msgstr "Enumerator ditutup" -#: ../gio/gfileenumerator.c:212 ../gio/gfileenumerator.c:271 -#: ../gio/gfileenumerator.c:371 ../gio/gfileenumerator.c:480 +#: ../gio/gfileenumerator.c:212 +#: ../gio/gfileenumerator.c:271 +#: ../gio/gfileenumerator.c:371 +#: ../gio/gfileenumerator.c:480 msgid "File enumerator has outstanding operation" msgstr "Enumerator berkas memiliki operasi tertunda" -#: ../gio/gfileenumerator.c:361 ../gio/gfileenumerator.c:470 +#: ../gio/gfileenumerator.c:361 +#: ../gio/gfileenumerator.c:470 msgid "File enumerator is already closed" msgstr "Enumerator berkas telah ditutup" @@ -2359,22 +2319,26 @@ msgstr "Tak bisa menangani pengkodean versi %d dari GFileIcon" msgid "Malformed input data for GFileIcon" msgstr "Data masukan salah bentuk bagi GFileIcon" -#: ../gio/gfileinputstream.c:154 ../gio/gfileinputstream.c:421 -#: ../gio/gfileiostream.c:170 ../gio/gfileoutputstream.c:169 -#: ../gio/gfileoutputstream.c:524 +#: ../gio/gfileinputstream.c:154 +#: ../gio/gfileinputstream.c:420 +#: ../gio/gfileiostream.c:170 +#: ../gio/gfileoutputstream.c:169 +#: ../gio/gfileoutputstream.c:523 msgid "Stream doesn't support query_info" msgstr "Stream tak mendukung query_info" -#: ../gio/gfileinputstream.c:336 ../gio/gfileiostream.c:388 -#: ../gio/gfileoutputstream.c:382 +#: ../gio/gfileinputstream.c:335 +#: ../gio/gfileiostream.c:387 +#: ../gio/gfileoutputstream.c:381 msgid "Seek not supported on stream" msgstr "Seek tak didukung pada stream" -#: ../gio/gfileinputstream.c:380 +#: ../gio/gfileinputstream.c:379 msgid "Truncate not allowed on input stream" msgstr "Pemenggalan tak diijinkan pada stream masukan" -#: ../gio/gfileiostream.c:464 ../gio/gfileoutputstream.c:458 +#: ../gio/gfileiostream.c:463 +#: ../gio/gfileoutputstream.c:457 msgid "Truncate not supported on stream" msgstr "Pemenggalan tak didukung pada stream" @@ -2422,12 +2386,14 @@ msgstr "Stream masukan tak mengimplementasi pembacaan" #. 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:901 ../gio/giostream.c:316 -#: ../gio/goutputstream.c:1210 +#: ../gio/ginputstream.c:898 +#: ../gio/giostream.c:316 +#: ../gio/goutputstream.c:1207 msgid "Stream has outstanding operation" msgstr "Stream memiliki operasi tertunda" -#: ../gio/ginetsocketaddress.c:181 ../gio/ginetsocketaddress.c:198 +#: ../gio/ginetsocketaddress.c:181 +#: ../gio/ginetsocketaddress.c:198 #: ../gio/gunixsocketaddress.c:221 msgid "Not enough space for socket address" msgstr "Tak cukup ruang bagi alamat soket" @@ -2447,12 +2413,8 @@ msgstr "nama '%s' tak valid: nama mesti diawali dengan huruf kecil" #: ../gio/glib-compile-schemas.c:735 #, c-format -msgid "" -"invalid name '%s': invalid character '%c'; only lowercase letters, numbers " -"and dash ('-') are permitted." -msgstr "" -"nama '%s' tak valid: karakter tak valid '%c'; hanya huruf kecil, angka, dan " -"minus yang diijinkan." +msgid "invalid name '%s': invalid character '%c'; only lowercase letters, numbers and dash ('-') are permitted." +msgstr "nama '%s' tak valid: karakter tak valid '%c'; hanya huruf kecil, angka, dan minus yang diijinkan." #: ../gio/glib-compile-schemas.c:744 #, c-format @@ -2485,21 +2447,13 @@ msgstr " telah dinyatakan" #: ../gio/glib-compile-schemas.c:885 #, c-format -msgid "" -" shadows in ; use " -"to modify value" -msgstr "" -" membayangi di ; gunakan " -" untuk mengubah nilai" +msgid " shadows in ; use to modify value" +msgstr " membayangi di ; gunakan untuk mengubah nilai" #: ../gio/glib-compile-schemas.c:896 #, c-format -msgid "" -"exactly one of 'type', 'enum' or 'flags' must be specified as an attribute " -"to " -msgstr "" -"persis satu dari 'type', 'enum', atau 'flags' mesti dinyatakan sebagai " -"atribut dari " +msgid "exactly one of 'type', 'enum' or 'flags' must be specified as an attribute to " +msgstr "persis satu dari 'type', 'enum', atau 'flags' mesti dinyatakan sebagai atribut dari " #: ../gio/glib-compile-schemas.c:915 #, c-format @@ -2552,25 +2506,18 @@ msgstr "Tak bisa memperluas suatu skema dengan path" #: ../gio/glib-compile-schemas.c:1108 #, c-format -msgid "" -" is a list, extending which is not a list" -msgstr "" -" adalah daftar, memperluas yang bukan daftar" +msgid " is a list, extending which is not a list" +msgstr " adalah daftar, memperluas yang bukan daftar" #: ../gio/glib-compile-schemas.c:1118 #, c-format -msgid "" -" extends but '%s' " -"does not extend '%s'" -msgstr "" -" memperluas tapi " -"'%s' tak memperluas '%s'" +msgid " extends but '%s' does not extend '%s'" +msgstr " memperluas tapi '%s' tak memperluas '%s'" #: ../gio/glib-compile-schemas.c:1135 #, c-format msgid "a path, if given, must begin and end with a slash" -msgstr "" -"suatu path, bila diberikan, harus dimulai dan diakhiri dengan garis miring" +msgstr "suatu path, bila diberikan, harus dimulai dan diakhiri dengan garis miring" #: ../gio/glib-compile-schemas.c:1142 #, c-format @@ -2582,115 +2529,104 @@ msgstr "path dari suatu daftar mesti diakhiri dengan ':/'" msgid "<%s id='%s'> already specified" msgstr "<%s id='%s'> sudah ditentukan" -#: ../gio/glib-compile-schemas.c:1385 +#: ../gio/glib-compile-schemas.c:1387 #, c-format msgid "Element <%s> not allowed inside <%s>" msgstr "Elemen <%s> tidak diijinkan di dalam <%s>" -#: ../gio/glib-compile-schemas.c:1389 +#: ../gio/glib-compile-schemas.c:1391 #, c-format msgid "Element <%s> not allowed at toplevel" msgstr "Elemen <%s> tidak diijinkan pada aras puncak" -#: ../gio/glib-compile-schemas.c:1483 +#: ../gio/glib-compile-schemas.c:1485 #, c-format msgid "text may not appear inside <%s>" msgstr "teks tidak boleh muncul di dalam <%s>" #. Translators: Do not translate "--strict". -#: ../gio/glib-compile-schemas.c:1652 ../gio/glib-compile-schemas.c:1723 -#: ../gio/glib-compile-schemas.c:1799 +#: ../gio/glib-compile-schemas.c:1654 +#: ../gio/glib-compile-schemas.c:1725 +#: ../gio/glib-compile-schemas.c:1801 #, c-format msgid "--strict was specified; exiting.\n" msgstr "--strict dinyatakan; keluar.\n" -#: ../gio/glib-compile-schemas.c:1660 +#: ../gio/glib-compile-schemas.c:1662 #, c-format msgid "This entire file has been ignored.\n" msgstr "Seluruh berkas telah diabaikan.\n" -#: ../gio/glib-compile-schemas.c:1719 +#: ../gio/glib-compile-schemas.c:1721 #, c-format msgid "Ignoring this file.\n" msgstr "Mengabaikan berkas ini.\n" -#: ../gio/glib-compile-schemas.c:1759 +#: ../gio/glib-compile-schemas.c:1761 #, c-format msgid "No such key `%s' in schema `%s' as specified in override file `%s'" -msgstr "" -"Tak ada kunci '%s' dalam skema '%s' sebagaimana dinyatakan di berkas penimpa " -"'%s'" +msgstr "Tak ada kunci '%s' dalam skema '%s' sebagaimana dinyatakan di berkas penimpa '%s'" -#: ../gio/glib-compile-schemas.c:1765 ../gio/glib-compile-schemas.c:1823 -#: ../gio/glib-compile-schemas.c:1851 +#: ../gio/glib-compile-schemas.c:1767 +#: ../gio/glib-compile-schemas.c:1825 +#: ../gio/glib-compile-schemas.c:1853 #, c-format msgid "; ignoring override for this key.\n" msgstr "; mengabaikan penimpaan kunci ini.\n" -#: ../gio/glib-compile-schemas.c:1769 ../gio/glib-compile-schemas.c:1827 -#: ../gio/glib-compile-schemas.c:1855 +#: ../gio/glib-compile-schemas.c:1771 +#: ../gio/glib-compile-schemas.c:1829 +#: ../gio/glib-compile-schemas.c:1857 #, c-format msgid " and --strict was specified; exiting.\n" msgstr " dan --strict dinyatakan; keluar.\n" -#: ../gio/glib-compile-schemas.c:1785 +#: ../gio/glib-compile-schemas.c:1787 #, c-format -#| msgid "No such key `%s' in schema `%s' as specified in override file `%s'" -msgid "" -"error parsing key `%s' in schema `%s' as specified in override file `%s': %" -"s. " -msgstr "" -"galat mengurai kunci '%s' dalam skema '%s' sebagaimana dinyatakan di berkas " -"penimpa '%s': %s." +msgid "error parsing key `%s' in schema `%s' as specified in override file `%s': %s. " +msgstr "galat mengurai kunci '%s' dalam skema '%s' sebagaimana dinyatakan di berkas penimpa '%s': %s." -#: ../gio/glib-compile-schemas.c:1795 +#: ../gio/glib-compile-schemas.c:1797 #, c-format msgid "Ignoring override for this key.\n" msgstr "Mengabaikan penimpaan bagi kunci ini.\n" -#: ../gio/glib-compile-schemas.c:1813 +#: ../gio/glib-compile-schemas.c:1815 #, c-format -msgid "" -"override for key `%s' in schema `%s' in override file `%s' is out of the " -"range given in the schema" -msgstr "" -"penimpa bagi kunci '%s' dalam skema '%s' di berkas penimpa '%s' di luar " -"jangkauan yang diberikan di dalam skema" +msgid "override for key `%s' in schema `%s' in override file `%s' is out of the range given in the schema" +msgstr "penimpa bagi kunci '%s' dalam skema '%s' di berkas penimpa '%s' di luar jangkauan yang diberikan di dalam skema" -#: ../gio/glib-compile-schemas.c:1841 +#: ../gio/glib-compile-schemas.c:1843 #, c-format -msgid "" -"override for key `%s' in schema `%s' in override file `%s' is not in the " -"list of valid choices" -msgstr "" -"penimpa bagi kunci '%s' dalam skema '%s' di berkas penimpa '%s' tak ada di " -"dalam daftar pilihan yang valid" +msgid "override for key `%s' in schema `%s' in override file `%s' is not in the list of valid choices" +msgstr "penimpa bagi kunci '%s' dalam skema '%s' di berkas penimpa '%s' tak ada di dalam daftar pilihan yang valid" -#: ../gio/glib-compile-schemas.c:1895 +#: ../gio/glib-compile-schemas.c:1897 msgid "where to store the gschemas.compiled file" msgstr "dimana menyimpan berkas gschemas.compiled" -#: ../gio/glib-compile-schemas.c:1895 ../gio/glib-compile-schemas.c:1908 +#: ../gio/glib-compile-schemas.c:1897 +#: ../gio/glib-compile-schemas.c:1910 msgid "DIRECTORY" msgstr "DIREKTORI" -#: ../gio/glib-compile-schemas.c:1896 +#: ../gio/glib-compile-schemas.c:1898 msgid "Abort on any errors in schemas" msgstr "Gugurkan pada sebarang galat dalam skema" -#: ../gio/glib-compile-schemas.c:1897 +#: ../gio/glib-compile-schemas.c:1899 msgid "Do not write the gschema.compiled file" msgstr "Jangan menulis berkas gschema.compiled" -#: ../gio/glib-compile-schemas.c:1898 +#: ../gio/glib-compile-schemas.c:1900 msgid "This option will be removed soon." msgstr "Opsi ini akan segera dihapus." -#: ../gio/glib-compile-schemas.c:1899 +#: ../gio/glib-compile-schemas.c:1901 msgid "Do not enforce key name restrictions" msgstr "Jangan paksakan pembatasan nama kunci" -#: ../gio/glib-compile-schemas.c:1911 +#: ../gio/glib-compile-schemas.c:1913 msgid "" "Compile all GSettings schema files into a schema cache.\n" "Schema files are required to have the extension .gschema.xml,\n" @@ -2700,22 +2636,22 @@ msgstr "" "Berkas skema diharuskan memiliki ekstensi .gschema.xml,\n" "dan berkas singgahan dinamai gschemas.compiled." -#: ../gio/glib-compile-schemas.c:1927 +#: ../gio/glib-compile-schemas.c:1929 #, c-format msgid "You should give exactly one directory name\n" msgstr "Anda mesti memberikan hanya satu nama direktori\n" -#: ../gio/glib-compile-schemas.c:1966 +#: ../gio/glib-compile-schemas.c:1968 #, c-format msgid "No schema files found: " msgstr "Tidak menemukan berkas skema: " -#: ../gio/glib-compile-schemas.c:1969 +#: ../gio/glib-compile-schemas.c:1971 #, c-format msgid "doing nothing.\n" msgstr "tak melakukan apapun.\n" -#: ../gio/glib-compile-schemas.c:1972 +#: ../gio/glib-compile-schemas.c:1974 #, c-format msgid "removed existing output file.\n" msgstr "menghapus berkas keluaran yang telah ada.\n" @@ -2724,7 +2660,8 @@ msgstr "menghapus berkas keluaran yang telah ada.\n" msgid "Unable to find default local directory monitor type" msgstr "Tak bisa temukan tipe pemantau direktori lokal baku" -#: ../gio/glocalfile.c:593 ../gio/win32/gwinhttpfile.c:422 +#: ../gio/glocalfile.c:593 +#: ../gio/win32/gwinhttpfile.c:422 #, c-format msgid "Invalid filename %s" msgstr "Nama berkas tak valid: %s" @@ -2738,7 +2675,8 @@ msgstr "Galat saat mengambil info sistem berkas: %s" msgid "Can't rename root directory" msgstr "Tak bisa mengubah nama direktori root" -#: ../gio/glocalfile.c:1125 ../gio/glocalfile.c:1151 +#: ../gio/glocalfile.c:1125 +#: ../gio/glocalfile.c:1151 #, c-format msgid "Error renaming file: %s" msgstr "Galat saat mengubah nama berkas: %s" @@ -2747,9 +2685,13 @@ msgstr "Galat saat mengubah nama berkas: %s" msgid "Can't rename file, filename already exist" msgstr "Tak bisa mengubah nama berkas, nama telah dipakai" -#: ../gio/glocalfile.c:1147 ../gio/glocalfile.c:2131 ../gio/glocalfile.c:2160 -#: ../gio/glocalfile.c:2320 ../gio/glocalfileoutputstream.c:571 -#: ../gio/glocalfileoutputstream.c:624 ../gio/glocalfileoutputstream.c:669 +#: ../gio/glocalfile.c:1147 +#: ../gio/glocalfile.c:2131 +#: ../gio/glocalfile.c:2160 +#: ../gio/glocalfile.c:2320 +#: ../gio/glocalfileoutputstream.c:571 +#: ../gio/glocalfileoutputstream.c:624 +#: ../gio/glocalfileoutputstream.c:669 #: ../gio/glocalfileoutputstream.c:1151 msgid "Invalid filename" msgstr "Nama berkas tak valid" @@ -2782,7 +2724,8 @@ msgstr "Tak bisa membuat direktori tong sampah %s: %s" msgid "Unable to find toplevel directory for trash" msgstr "Tak bisa temukan direktori puncak bagi tong sampah" -#: ../gio/glocalfile.c:1933 ../gio/glocalfile.c:1953 +#: ../gio/glocalfile.c:1933 +#: ../gio/glocalfile.c:1953 msgid "Unable to find or create trash directory" msgstr "Tak bisa temukan atau buat direktori tong sampah" @@ -2791,7 +2734,9 @@ msgstr "Tak bisa temukan atau buat direktori tong sampah" msgid "Unable to create trashing info file: %s" msgstr "Tak bis membuat berkas informasi pembuangan ke tong sampah: %s" -#: ../gio/glocalfile.c:2016 ../gio/glocalfile.c:2021 ../gio/glocalfile.c:2101 +#: ../gio/glocalfile.c:2016 +#: ../gio/glocalfile.c:2021 +#: ../gio/glocalfile.c:2101 #: ../gio/glocalfile.c:2108 #, c-format msgid "Unable to trash file: %s" @@ -2812,7 +2757,8 @@ msgstr "Sistem berkas tak mendukung taut simbolik" msgid "Error making symbolic link: %s" msgstr "Galat saat membuat taut simbolis: %s" -#: ../gio/glocalfile.c:2230 ../gio/glocalfile.c:2324 +#: ../gio/glocalfile.c:2230 +#: ../gio/glocalfile.c:2324 #, c-format msgid "Error moving file: %s" msgstr "Galat saat memindah berkas: %s" @@ -2821,9 +2767,12 @@ msgstr "Galat saat memindah berkas: %s" msgid "Can't move directory over directory" msgstr "Tak bisa memindah direktori atas direktori" -#: ../gio/glocalfile.c:2280 ../gio/glocalfileoutputstream.c:949 -#: ../gio/glocalfileoutputstream.c:963 ../gio/glocalfileoutputstream.c:978 -#: ../gio/glocalfileoutputstream.c:994 ../gio/glocalfileoutputstream.c:1008 +#: ../gio/glocalfile.c:2280 +#: ../gio/glocalfileoutputstream.c:949 +#: ../gio/glocalfileoutputstream.c:963 +#: ../gio/glocalfileoutputstream.c:978 +#: ../gio/glocalfileoutputstream.c:994 +#: ../gio/glocalfileoutputstream.c:1008 msgid "Backup file creation failed" msgstr "Pembuatan berkas cadangan gagal" @@ -2853,7 +2802,8 @@ msgstr "Nama atribut tambahan yang tak valid" msgid "Error setting extended attribute '%s': %s" msgstr "Galat saat menata atribut tambahan '%s': %s" -#: ../gio/glocalfileinfo.c:1483 ../gio/glocalfileoutputstream.c:833 +#: ../gio/glocalfileinfo.c:1483 +#: ../gio/glocalfileoutputstream.c:833 #, c-format msgid "Error stating file '%s': %s" msgstr "Galat saat men-stat berkas '%s': %s" @@ -2875,7 +2825,8 @@ msgstr "Tipe atribut tak valid (diharapkan uint32)" msgid "Invalid attribute type (uint64 expected)" msgstr "Tipe atribut tak valid (diharapkan uint64)" -#: ../gio/glocalfileinfo.c:1851 ../gio/glocalfileinfo.c:1870 +#: ../gio/glocalfileinfo.c:1851 +#: ../gio/glocalfileinfo.c:1870 msgid "Invalid attribute type (byte string expected)" msgstr "Tipe atribut tak valid (diharapkan string byte)" @@ -2897,7 +2848,8 @@ msgstr "Galat saat menata pemilik: %s" msgid "symlink must be non-NULL" msgstr "symlink tak boleh NULL" -#: ../gio/glocalfileinfo.c:2005 ../gio/glocalfileinfo.c:2024 +#: ../gio/glocalfileinfo.c:2005 +#: ../gio/glocalfileinfo.c:2024 #: ../gio/glocalfileinfo.c:2035 #, c-format msgid "Error setting symlink: %s" @@ -2930,19 +2882,23 @@ msgstr "SELinux tak diaktifkan di sistem ini" msgid "Setting attribute %s not supported" msgstr "Penataan atribut %s tak didukung" -#: ../gio/glocalfileinputstream.c:185 ../gio/glocalfileoutputstream.c:722 +#: ../gio/glocalfileinputstream.c:185 +#: ../gio/glocalfileoutputstream.c:722 #, c-format msgid "Error reading from file: %s" msgstr "Galat saat membaca dari berkas: %s" -#: ../gio/glocalfileinputstream.c:216 ../gio/glocalfileinputstream.c:228 -#: ../gio/glocalfileinputstream.c:340 ../gio/glocalfileoutputstream.c:470 +#: ../gio/glocalfileinputstream.c:216 +#: ../gio/glocalfileinputstream.c:228 +#: ../gio/glocalfileinputstream.c:340 +#: ../gio/glocalfileoutputstream.c:470 #: ../gio/glocalfileoutputstream.c:1026 #, c-format msgid "Error seeking in file: %s" msgstr "Galat saat men-seek di berkas: %s" -#: ../gio/glocalfileinputstream.c:261 ../gio/glocalfileoutputstream.c:256 +#: ../gio/glocalfileinputstream.c:261 +#: ../gio/glocalfileoutputstream.c:256 #: ../gio/glocalfileoutputstream.c:351 #, c-format msgid "Error closing file: %s" @@ -2952,7 +2908,8 @@ msgstr "Galat saat menutup berkas: %s" msgid "Unable to find default local file monitor type" msgstr "Tak bisa temukan tipe pemantauan berkas lokal baku" -#: ../gio/glocalfileoutputstream.c:202 ../gio/glocalfileoutputstream.c:235 +#: ../gio/glocalfileoutputstream.c:202 +#: ../gio/glocalfileoutputstream.c:235 #: ../gio/glocalfileoutputstream.c:743 #, c-format msgid "Error writing to file: %s" @@ -2963,7 +2920,8 @@ msgstr "Galat saat menulis ke berkas: %s" msgid "Error removing old backup link: %s" msgstr "Galat saat menghapus taut cadangan lama: %s" -#: ../gio/glocalfileoutputstream.c:297 ../gio/glocalfileoutputstream.c:310 +#: ../gio/glocalfileoutputstream.c:297 +#: ../gio/glocalfileoutputstream.c:310 #, c-format msgid "Error creating backup copy: %s" msgstr "Galat saat membuat salinan cadangan: %s" @@ -2973,14 +2931,18 @@ msgstr "Galat saat membuat salinan cadangan: %s" msgid "Error renaming temporary file: %s" msgstr "Galat saat mengubah nama berkas sementara: %s" -#: ../gio/glocalfileoutputstream.c:516 ../gio/glocalfileoutputstream.c:1077 +#: ../gio/glocalfileoutputstream.c:516 +#: ../gio/glocalfileoutputstream.c:1077 #, c-format msgid "Error truncating file: %s" msgstr "Galat saat memenggal berkas: %s" -#: ../gio/glocalfileoutputstream.c:577 ../gio/glocalfileoutputstream.c:630 -#: ../gio/glocalfileoutputstream.c:675 ../gio/glocalfileoutputstream.c:815 -#: ../gio/glocalfileoutputstream.c:1058 ../gio/glocalfileoutputstream.c:1157 +#: ../gio/glocalfileoutputstream.c:577 +#: ../gio/glocalfileoutputstream.c:630 +#: ../gio/glocalfileoutputstream.c:675 +#: ../gio/glocalfileoutputstream.c:815 +#: ../gio/glocalfileoutputstream.c:1058 +#: ../gio/glocalfileoutputstream.c:1157 #, c-format msgid "Error opening file '%s': %s" msgstr "Galat saat membuka berkas '%s': %s" @@ -3002,7 +2964,8 @@ msgstr "Berkas telah diubah secara eksternal" msgid "Error removing old file: %s" msgstr "Galat saat menghapus berkas lama: %s" -#: ../gio/gmemoryinputstream.c:486 ../gio/gmemoryoutputstream.c:746 +#: ../gio/gmemoryinputstream.c:486 +#: ../gio/gmemoryoutputstream.c:746 msgid "Invalid GSeekType supplied" msgstr "GSeekType yang tak valid diberikan" @@ -3023,12 +2986,8 @@ msgid "Failed to resize memory output stream" msgstr "Gagal mengubah ukuran memori stream keluaran" #: ../gio/gmemoryoutputstream.c:600 -msgid "" -"Amount of memory required to process the write is larger than available " -"address space" -msgstr "" -"Banyaknya memori yang diperlukan untuk memroses penulisan lebih besar " -"daripada ruang tersedia" +msgid "Amount of memory required to process the write is larger than available address space" +msgstr "Banyaknya memori yang diperlukan untuk memroses penulisan lebih besar daripada ruang tersedia" #: ../gio/gmemoryoutputstream.c:756 msgid "Requested seek before the beginning of the stream" @@ -3092,11 +3051,13 @@ msgstr "mount tak mengimplementasi penebakan sinkron jenis isi" msgid "Hostname '%s' contains '[' but not ']'" msgstr "Nama host '%s' memuat '[' tapi tanpa ']'" -#: ../gio/goutputstream.c:207 ../gio/goutputstream.c:408 +#: ../gio/goutputstream.c:207 +#: ../gio/goutputstream.c:408 msgid "Output stream doesn't implement write" msgstr "Stream keluaran tak mengimplementasi penulisan" -#: ../gio/goutputstream.c:369 ../gio/goutputstream.c:849 +#: ../gio/goutputstream.c:369 +#: ../gio/goutputstream.c:849 msgid "Source stream is already closed" msgstr "Stream sumber telah ditutup" @@ -3110,137 +3071,377 @@ msgstr "Galat saat menguraikan '%s': %s" msgid "Error reverse-resolving '%s': %s" msgstr "Galat saat mengurai balik '%s': %s" -#: ../gio/gresolver.c:822 ../gio/gresolver.c:900 +#: ../gio/gresolver.c:822 +#: ../gio/gresolver.c:900 #, c-format msgid "No service record for '%s'" msgstr "Tak ada catatan layanan bagi '%s'" -#: ../gio/gresolver.c:827 ../gio/gresolver.c:905 +#: ../gio/gresolver.c:827 +#: ../gio/gresolver.c:905 #, c-format msgid "Temporarily unable to resolve '%s'" msgstr "Sementara tidak dapat menguraikan '%s'" -#: ../gio/gresolver.c:832 ../gio/gresolver.c:910 +#: ../gio/gresolver.c:832 +#: ../gio/gresolver.c:910 #, c-format msgid "Error resolving '%s'" msgstr "Galat saat menguraikan '%s'" -#: ../gio/gsocket.c:276 +#: ../gio/gsettings-tool.c:60 +#, c-format +msgid "Schema '%s' is not relocatable (path must not be specified)\n" +msgstr "Skema '%s' tak dapat dipindahkan (path tak boleh dinyatakan)\n" + +#: ../gio/gsettings-tool.c:65 +#: ../gio/gsettings-tool.c:82 +#, c-format +#| msgid "No such interface `%s'" +msgid "No such schema '%s'\n" +msgstr "Tak ada skema '%s'\n" + +#: ../gio/gsettings-tool.c:77 +#, c-format +msgid "Schema '%s' is relocatable (path must be specified)\n" +msgstr "Skema '%s' dapat dipindahkan (path mesti dinyatakan)\n" + +#: ../gio/gsettings-tool.c:92 +#, c-format +msgid "Empty path given.\n" +msgstr "Path yang diberikan kosong.\n" + +#: ../gio/gsettings-tool.c:98 +#, c-format +#| msgid "a path, if given, must begin and end with a slash" +msgid "Path must begin with a slash (/)\n" +msgstr "Path harus dimulai dengan garis miring (/)\n" + +#: ../gio/gsettings-tool.c:104 +#, c-format +#| msgid "a path, if given, must begin and end with a slash" +msgid "Path must end with a slash (/)\n" +msgstr "Path harus diakhiri dengan garis miring (/)\n" + +#: ../gio/gsettings-tool.c:110 +#, c-format +msgid "Path must not contain two adjacent slashes (//)\n" +msgstr "Path tak boleh memuat dua slash berturutan (//)\n" + +#: ../gio/gsettings-tool.c:131 +#, c-format +#| msgid "No such property `%s'" +msgid "No such key '%s'\n" +msgstr "Tak ada kunci '%s'\n" + +#: ../gio/gsettings-tool.c:429 +#, c-format +msgid "The provided value is outside of the valid range\n" +msgstr "Nilai yang diberikan diluar rentang yang valid\n" + +#: ../gio/gsettings-tool.c:458 +msgid "List the installed (non-relocatable) schemas" +msgstr "Daftar skema (yang tak bisa dipindah) yang terpasang" + +#: ../gio/gsettings-tool.c:464 +msgid "List the installed relocatable schemas" +msgstr "Daftar skema yang dapat dipindah yang terpasang" + +#: ../gio/gsettings-tool.c:470 +msgid "Lists the keys in SCHEMA" +msgstr "Daftar kunci di SKEMA" + +#: ../gio/gsettings-tool.c:471 +#: ../gio/gsettings-tool.c:477 +#: ../gio/gsettings-tool.c:483 +msgid "SCHEMA[:PATH]" +msgstr "SKEMA[:PATH]" + +#: ../gio/gsettings-tool.c:476 +msgid "Lists the children of SCHEMA" +msgstr "Daftar anak dari SKEMA" + +#: ../gio/gsettings-tool.c:482 +msgid "List keys and values, recursively" +msgstr "Daftar kunci dan nilai, secara rekursif" + +#: ../gio/gsettings-tool.c:488 +#| msgid "Get the value of KEY" +msgid "Gets the value of KEY" +msgstr "Ambil nilai dari KUNCI" + +#: ../gio/gsettings-tool.c:489 +#: ../gio/gsettings-tool.c:495 +#: ../gio/gsettings-tool.c:507 +#: ../gio/gsettings-tool.c:513 +#| msgid "SCHEMA KEY" +msgid "SCHEMA[:PATH] KEY" +msgstr "SKEMA[:PATH] KUNCI" + +#: ../gio/gsettings-tool.c:494 +msgid "Queries the range of valid values for KEY" +msgstr "Kueri rentang nilai yang valid bagi KUNCI" + +#: ../gio/gsettings-tool.c:500 +#| msgid "Set the value of KEY" +msgid "Sets the value of KEY to VALUE" +msgstr "Menata nilai KUNCI ke NILAI" + +#: ../gio/gsettings-tool.c:501 +#| msgid "SCHEMA KEY VALUE" +msgid "SCHEMA[:PATH] KEY VALUE" +msgstr "SKEMA[:PATH] KUNCI NILAI" + +#: ../gio/gsettings-tool.c:506 +#| msgid "Sets KEY to its default value" +msgid "Resets KEY to its default value" +msgstr "Menata KUNCI ke nilai bawaannya" + +#: ../gio/gsettings-tool.c:512 +#| msgid "Find out whether KEY is writable" +msgid "Checks if KEY is writable" +msgstr "Periksa apakah KUNCI dapat ditulisi" + +#: ../gio/gsettings-tool.c:518 +msgid "" +"Monitors KEY for changes.\n" +"If no KEY is specified, monitor all keys in SCHEMA.\n" +"Use ^C to stop monitoring.\n" +msgstr "" +"Pantau perubahan atas KUNCI.\n" +"Bila tak ada KUNCI yang dinyatakan, memantau semua kunci dalam SKEMA.\n" +"Gunakan ^C untuk berhenti memantau.\n" + +#: ../gio/gsettings-tool.c:521 +#| msgid "SCHEMA KEY" +msgid "SCHEMA[:PATH] [KEY]" +msgstr "SKEMA[:PATH] [KUNCI]" + +#: ../gio/gsettings-tool.c:525 +#, c-format +#| msgid "Unknown command '%s'\n" +msgid "" +"Unknown command %s\n" +"\n" +msgstr "" +"Perintah tidak dikenal %s\n" +"\n" + +#: ../gio/gsettings-tool.c:533 +msgid "" +"Usage:\n" +" gsettings 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" +" get Get the value of a key\n" +" set Set the value of a key\n" +" reset Reset the value of a key\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 "" +"Cara pakai:\n" +" gsettings PERINTAH [ARG...]\n" +"\n" +"Perintah:\n" +" help Tampilkan informasi ini\n" +" list-schemas Lihat daftar skema terpasang\n" +" list-relocatable-schemas Lihat daftar skema yang dapat dipindah\n" +" list-keys Lihat daftar kunci dalam sebuah skema\n" +" list-children Lihat daftar anak dari sebuah skema\n" +" list-recursively Lihat daftar kunci dan nilai secara rekursif\n" +" range Kueri rentang dari suatu kunci\n" +" get Ambil nilai dari suatu kunci\n" +" set Atur nilai dari suatu kunci\n" +" reset Reset nilai dari suatu kunci\n" +" writable Periksa apakah suatu kunci dapat ditulisi\n" +" monitor Pantau perubahan\n" +"\n" +"Gunakan 'gsettings help PERINTAH' untuk memperoleh bantuan rinci.\n" +"\n" + +#: ../gio/gsettings-tool.c:554 +#, c-format +msgid "" +"Usage:\n" +" gsettings %s %s\n" +"\n" +"%s\n" +"\n" +msgstr "" +"Cara pakai:\n" +" gsettings %s %s\n" +"\n" +"%s\n" +"\n" + +#: ../gio/gsettings-tool.c:559 +msgid "Arguments:\n" +msgstr "Argumen:\n" + +#: ../gio/gsettings-tool.c:563 +#| msgid "" +#| "Arguments:\n" +#| " SCHEMA The id of the schema\n" +#| " KEY The name of the key\n" +msgid "" +" SCHEMA The name of the schema\n" +" PATH The path, for relocatable schemas\n" +msgstr "" +" SKEMA Nama skema\n" +" PATH Path, bagi skema yang dapat dipindah\n" + +#: ../gio/gsettings-tool.c:568 +msgid " KEY The (optional) key within the schema\n" +msgstr " KUNCI Kunci (opsional) dalam skema\n" + +#: ../gio/gsettings-tool.c:572 +msgid " KEY The key within the schema\n" +msgstr " KUNCI Kunci dalam skema\n" + +#: ../gio/gsettings-tool.c:576 +msgid " VALUE The value to set\n" +msgstr " NILAI Tatanan nilai\n" + +#: ../gio/gsettings-tool.c:652 +#, c-format +msgid "Empty schema name given" +msgstr "Nama skema yang diberikan kosong" + +#: ../gio/gsocket.c:277 msgid "Invalid socket, not initialized" msgstr "Soket tak valid, tak diinisialisasi" -#: ../gio/gsocket.c:283 +#: ../gio/gsocket.c:284 #, c-format msgid "Invalid socket, initialization failed due to: %s" msgstr "Soket tak valid, inisialisasi gagal karena: %s" -#: ../gio/gsocket.c:291 +#: ../gio/gsocket.c:292 msgid "Socket is already closed" msgstr "Soket telah ditutup" -#: ../gio/gsocket.c:299 ../gio/gsocket.c:2716 ../gio/gsocket.c:2760 +#: ../gio/gsocket.c:300 +#: ../gio/gsocket.c:2769 +#: ../gio/gsocket.c:2813 msgid "Socket I/O timed out" msgstr "I/O soket kehabisan waktu" -#: ../gio/gsocket.c:421 +#: ../gio/gsocket.c:443 #, c-format msgid "creating GSocket from fd: %s" msgstr "membuat GSocket dari fd: %s" -#: ../gio/gsocket.c:455 ../gio/gsocket.c:471 ../gio/gsocket.c:2113 +#: ../gio/gsocket.c:477 +#: ../gio/gsocket.c:493 +#: ../gio/gsocket.c:2135 #, c-format msgid "Unable to create socket: %s" msgstr "Tak bisa membuat soket: %s" -#: ../gio/gsocket.c:455 +#: ../gio/gsocket.c:477 msgid "Unknown protocol was specified" msgstr "Protokol tak dikenal dinyatakan" -#: ../gio/gsocket.c:1224 +#: ../gio/gsocket.c:1246 #, c-format msgid "could not get local address: %s" msgstr "tak bisa mendapat alamat lokal: %s" -#: ../gio/gsocket.c:1267 +#: ../gio/gsocket.c:1289 #, c-format msgid "could not get remote address: %s" msgstr "tak bisa mendapat alamat jauh: %s" -#: ../gio/gsocket.c:1328 +#: ../gio/gsocket.c:1350 #, c-format msgid "could not listen: %s" msgstr "tak bisa mendengarkan: %s" -#: ../gio/gsocket.c:1402 +#: ../gio/gsocket.c:1424 #, c-format msgid "Error binding to address: %s" msgstr "Galat saat mengikat ke alamat: %s" -#: ../gio/gsocket.c:1522 +#: ../gio/gsocket.c:1544 #, c-format msgid "Error accepting connection: %s" msgstr "Galat saat menerima sambungan: %s" -#: ../gio/gsocket.c:1639 +#: ../gio/gsocket.c:1661 msgid "Error connecting: " msgstr "Galat saat menyambung: " -#: ../gio/gsocket.c:1644 +#: ../gio/gsocket.c:1666 msgid "Connection in progress" msgstr "Penyambungan tengah berlangsung" -#: ../gio/gsocket.c:1651 +#: ../gio/gsocket.c:1673 #, c-format msgid "Error connecting: %s" msgstr "Galat saat menyambung: %s" -#: ../gio/gsocket.c:1694 ../gio/gsocket.c:3479 +#: ../gio/gsocket.c:1716 +#: ../gio/gsocket.c:3532 #, c-format msgid "Unable to get pending error: %s" msgstr "Tak bisa mendapat kesalahan yang tertunda: %s" -#: ../gio/gsocket.c:1826 +#: ../gio/gsocket.c:1848 #, c-format msgid "Error receiving data: %s" msgstr "Galat saat menerima data: %s" -#: ../gio/gsocket.c:2000 +#: ../gio/gsocket.c:2022 #, c-format msgid "Error sending data: %s" msgstr "Galat saat mengirim data: %s" -#: ../gio/gsocket.c:2192 +#: ../gio/gsocket.c:2214 #, c-format msgid "Error closing socket: %s" msgstr "Galat saat menutup soket: %s" -#: ../gio/gsocket.c:2709 +#: ../gio/gsocket.c:2762 #, c-format msgid "Waiting for socket condition: %s" msgstr "Menunggu kondisi soket: %s" -#: ../gio/gsocket.c:2999 +#: ../gio/gsocket.c:3052 msgid "GSocketControlMessage not supported on windows" msgstr "GSocketControlMessage tak didukung pada windows" -#: ../gio/gsocket.c:3258 ../gio/gsocket.c:3399 +#: ../gio/gsocket.c:3311 +#: ../gio/gsocket.c:3452 #, c-format msgid "Error receiving message: %s" msgstr "Galat saat menerima pesan: %s" -#: ../gio/gsocket.c:3494 +#: ../gio/gsocket.c:3547 msgid "g_socket_get_credentials not implemented for this OS" msgstr "g_socket_get_credentials tidak diimplementasikan untuk OS ini" -#: ../gio/gsocketclient.c:674 ../gio/gsocketclient.c:1153 +#: ../gio/gsocketclient.c:798 +#: ../gio/gsocketclient.c:1368 msgid "Unknown error on connect" msgstr "Galat tak dikenal saat hubungan" -#: ../gio/gsocketclient.c:711 ../gio/gsocketclient.c:1038 +#: ../gio/gsocketclient.c:836 +#: ../gio/gsocketclient.c:1252 msgid "Trying to proxy over non-TCP connection is not supported." msgstr "Mencoba proksi melalui koneksi bukan TCP tidak didukung." -#: ../gio/gsocketclient.c:749 ../gio/gsocketclient.c:1061 +#: ../gio/gsocketclient.c:858 +#: ../gio/gsocketclient.c:1277 #, c-format msgid "Proxy protocol '%s' is not supported." msgstr "Protokol proksi '%s' tidak didukung." @@ -3276,7 +3477,8 @@ msgstr "Server bukan server proksi SOCKSv4." msgid "Connection through SOCKSv4 server was rejected" msgstr "Koneksi melalui server SOCKSv4 ditolak" -#: ../gio/gsocks5proxy.c:155 ../gio/gsocks5proxy.c:328 +#: ../gio/gsocks5proxy.c:155 +#: ../gio/gsocks5proxy.c:328 #: ../gio/gsocks5proxy.c:338 msgid "The server is not a SOCKSv5 proxy server." msgstr "Server bukan server proksi SOCKSv5." @@ -3286,16 +3488,13 @@ msgid "The SOCKSv5 proxy requires authentication." msgstr "Proksi SOCKv5 memerlukan otentikasi." #: ../gio/gsocks5proxy.c:179 -msgid "" -"The SOCKSv5 proxy requires an authentication method that is not supported by GLib." +msgid "The SOCKSv5 proxy requires an authentication method that is not supported by GLib." msgstr "SOCKSv5 memerlukan metoda otentikasi yang tidak didukung oleh GLib." #: ../gio/gsocks5proxy.c:208 #, c-format msgid "Username or password is too long for SOCKSv5 protocol (max. is %i)." -msgstr "" -"Nama pengguna atau kata sandi terlalu panjang bagi protokol SOCKSv5 (maks. %" -"i)." +msgstr "Nama pengguna atau kata sandi terlalu panjang bagi protokol SOCKSv5 (maks. %i)." #: ../gio/gsocks5proxy.c:239 msgid "SOCKSv5 authentication failed due to wrong username or password." @@ -3304,8 +3503,7 @@ msgstr "Otentikasi SOCKSv5 gagal karena nama pengguna atau kata sandi salah." #: ../gio/gsocks5proxy.c:289 #, c-format msgid "Hostname '%s' too long for SOCKSv5 protocol (maximum is %i bytes)" -msgstr "" -"Nama host '%s' terlalu panjang untuk protokol SOCKSv5 (maksimal %i bita)" +msgstr "Nama host '%s' terlalu panjang untuk protokol SOCKSv5 (maksimal %i bita)" #: ../gio/gsocks5proxy.c:352 msgid "The SOCKSv5 proxy server uses unkown address type." @@ -3340,7 +3538,8 @@ msgid "SOCKSv5 proxy does not support provided address type." msgstr "Proksi SOCSKv5 tidak mendukung jenis alamat yang diberikan." #: ../gio/gsocks5proxy.c:402 -msgid "Unkown SOCKSv5 proxy error." +#| msgid "Unkown SOCKSv5 proxy error." +msgid "Unknown SOCKSv5 proxy error." msgstr "Galat tak dikenal pada proksi SOCKSv5." #: ../gio/gthemedicon.c:498 @@ -3348,12 +3547,26 @@ msgstr "Galat tak dikenal pada proksi SOCKSv5." msgid "Can't handle version %d of GThemedIcon encoding" msgstr "Tak bisa menangani pengkodean versi %d dari GThemedIcon" -#: ../gio/gunixconnection.c:164 ../gio/gunixconnection.c:505 +#: ../gio/gtlscertificate.c:228 +msgid "No PEM-encoded certificate found" +msgstr "Tak ditemukan sertifika terenkode-PEM" + +#: ../gio/gtlscertificate.c:237 +msgid "Could not parse PEM-encoded certificate" +msgstr "Tak bisa mengurai sertifikat terenkode-PEM" + +#: ../gio/gtlscertificate.c:258 +msgid "Could not parse PEM-encoded private key" +msgstr "Tak bisa mengurai kunci privat terenkode-PEM" + +#: ../gio/gunixconnection.c:164 +#: ../gio/gunixconnection.c:505 #, c-format msgid "Expecting 1 control message, got %d" msgstr "Mengharapkan 1 pesan kendali, memperoleh %d" -#: ../gio/gunixconnection.c:177 ../gio/gunixconnection.c:515 +#: ../gio/gunixconnection.c:177 +#: ../gio/gunixconnection.c:515 msgid "Unexpected type of ancillary data" msgstr "Tipe yang tak diharapkan dari data ancillary" @@ -3377,12 +3590,8 @@ msgstr "Galat ketika memeriksa apakah SO_PASSCRED diaktifkan bagi soket: %s" #: ../gio/gunixconnection.c:448 #, c-format -msgid "" -"Unexpected option length while checking if SO_PASSCRED is enabled for " -"socket. Expected %d bytes, got %d" -msgstr "" -"Panjang opsi yang tak diduga ketika memeriksa apakah SO_PASSCRED diaktifkan " -"bagi soket. Berharap %d byte, mendapat %d" +msgid "Unexpected option length while checking if SO_PASSCRED is enabled for socket. Expected %d bytes, got %d" +msgstr "Panjang opsi yang tak diduga ketika memeriksa apakah SO_PASSCRED diaktifkan bagi soket. Berharap %d byte, mendapat %d" #: ../gio/gunixconnection.c:465 #, c-format @@ -3390,35 +3599,37 @@ msgid "Error enabling SO_PASSCRED: %s" msgstr "Galat saat mengaktifkan SO_PASSCRED: %s" #: ../gio/gunixconnection.c:495 -msgid "" -"Expecting to read a single byte for receiving credentials but read zero bytes" -msgstr "" -"Berharap membaca byte tunggal untuk penerimaan kredensial tapi membaca nol " -"byte" +msgid "Expecting to read a single byte for receiving credentials but read zero bytes" +msgstr "Berharap membaca byte tunggal untuk penerimaan kredensial tapi membaca nol byte" #: ../gio/gunixconnection.c:538 #, c-format msgid "Error while disabling SO_PASSCRED: %s" msgstr "Galat ketika mematikan SO_PASSCRED: %s" -#: ../gio/gunixinputstream.c:353 ../gio/gunixinputstream.c:373 -#: ../gio/gunixinputstream.c:451 +#: ../gio/gunixinputstream.c:368 +#: ../gio/gunixinputstream.c:388 +#: ../gio/gunixinputstream.c:466 #, c-format msgid "Error reading from unix: %s" msgstr "Galat saat membaca dari unix: %s" -#: ../gio/gunixinputstream.c:406 ../gio/gunixinputstream.c:589 -#: ../gio/gunixoutputstream.c:393 ../gio/gunixoutputstream.c:545 +#: ../gio/gunixinputstream.c:421 +#: ../gio/gunixinputstream.c:601 +#: ../gio/gunixoutputstream.c:407 +#: ../gio/gunixoutputstream.c:556 #, c-format msgid "Error closing unix: %s" msgstr "Galat saat menutup unix: %s" -#: ../gio/gunixmounts.c:1846 ../gio/gunixmounts.c:1883 +#: ../gio/gunixmounts.c:1846 +#: ../gio/gunixmounts.c:1883 msgid "Filesystem root" msgstr "Akar sistem berkas" -#: ../gio/gunixoutputstream.c:339 ../gio/gunixoutputstream.c:360 -#: ../gio/gunixoutputstream.c:438 +#: ../gio/gunixoutputstream.c:353 +#: ../gio/gunixoutputstream.c:374 +#: ../gio/gunixoutputstream.c:452 #, c-format msgid "Error writing to unix: %s" msgstr "Galat saat menulis ke unix: %s" @@ -3464,7 +3675,8 @@ msgstr "Pembuatan asosiasi tak didukung pada win32" msgid "Error reading from handle: %s" msgstr "Galat saat membaca dari handle: %s" -#: ../gio/gwin32inputstream.c:348 ../gio/gwin32outputstream.c:348 +#: ../gio/gwin32inputstream.c:348 +#: ../gio/gwin32outputstream.c:348 #, c-format msgid "Error closing handle: %s" msgstr "Galat saat menutup handle: %s" @@ -3474,16 +3686,19 @@ msgstr "Galat saat menutup handle: %s" msgid "Error writing to handle: %s" msgstr "Galat saat menulis ke handle: %s" -#: ../gio/gzlibcompressor.c:396 ../gio/gzlibdecompressor.c:349 +#: ../gio/gzlibcompressor.c:396 +#: ../gio/gzlibdecompressor.c:349 msgid "Not enough memory" msgstr "Tidak cukup memori" -#: ../gio/gzlibcompressor.c:403 ../gio/gzlibdecompressor.c:356 +#: ../gio/gzlibcompressor.c:403 +#: ../gio/gzlibdecompressor.c:356 #, c-format msgid "Internal error: %s" msgstr "Galat internal: %s" -#: ../gio/gzlibcompressor.c:416 ../gio/gzlibdecompressor.c:370 +#: ../gio/gzlibcompressor.c:416 +#: ../gio/gzlibdecompressor.c:370 msgid "Need more input" msgstr "Perlu masukan lagi" @@ -3522,27 +3737,6 @@ msgstr "Data terkompresi tak valid" #~ msgid "PATH" #~ msgstr "LOKASI" -#~ msgid "SCHEMA KEY" -#~ msgstr "KUNCI SKEMA" - -#~ msgid "Get the value of KEY" -#~ msgstr "Ambil nilai dari KEY" - -#~ msgid "" -#~ "Arguments:\n" -#~ " SCHEMA The id of the schema\n" -#~ " KEY The name of the key\n" -#~ msgstr "" -#~ "Argumen:\n" -#~ " SKEMA Id dari skema\n" -#~ " KUNCI Nama kunci\n" - -#~ msgid "SCHEMA KEY VALUE" -#~ msgstr "SKEMA KUNCI NILAI" - -#~ msgid "Set the value of KEY" -#~ msgstr "Menentukan nilai KUNCI" - #~ msgid "" #~ "Arguments:\n" #~ " SCHEMA The id of the schema\n" @@ -3558,18 +3752,9 @@ msgstr "Data terkompresi tak valid" #~ msgid "Key %s is not writable\n" #~ msgstr "Kunci %s tidak dapat ditulisi\n" -#~ msgid "Sets KEY to its default value" -#~ msgstr "Menata KEY ke nilai bawaannya" - -#~ msgid "Find out whether KEY is writable" -#~ msgstr "Cari tahu apakah KEY dapat ditulisi" - #~ msgid "" #~ "Monitor KEY for changes and print the changed values.\n" #~ "Monitoring will continue until the process is terminated." #~ msgstr "" #~ "Memantau perubahan KUNCI dan mencetak nilai yang berubah.\n" #~ "Pemantauan akan terus berlanjut hingga proses dihentikan." - -#~ msgid "Unknown command '%s'\n" -#~ msgstr "Perintah tidak dikenal '%s'\n" diff --git a/po/nb.po b/po/nb.po index 88eaba266..d6ead5ff0 100644 --- a/po/nb.po +++ b/po/nb.po @@ -1,23 +1,26 @@ # translation of nb.po to Norwegian Bokmal # Norwegian (bokmål) translation of glib. # Copyright (C) 2001-2003, 2005 Free Software Foundation, Inc. +# +# # Kjartan Maraas , 2001-2010. # Terance Edward Sola , 2005. -# -# +# Torstein Adolf Winterseth , 2010. msgid "" msgstr "" "Project-Id-Version: glib 2.26.x\n" -"Report-Msgid-Bugs-To:\n" -"POT-Creation-Date: 2010-11-18 14:05+0100\n" -"PO-Revision-Date: 2010-11-18 14:08+0100\n" -"Last-Translator: Kjartan Maraas \n" -"Language-Team: Norwegian bokmål \n" -"Language:\n" +"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug." +"cgi?product=glib&component=general\n" +"POT-Creation-Date: 2010-12-21 12:55+0000\n" +"PO-Revision-Date: 2010-12-30 21:24+0100\n" +"Last-Translator: Torstein Adolf Winterseth \n" +"Language-Team: Norwegian Bokmål \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"Language:\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Lokalize 1.1\n" #: ../glib/gbookmarkfile.c:780 #, c-format @@ -388,135 +391,134 @@ msgstr "Søn" msgid "Error opening directory '%s': %s" msgstr "Feil under åpning av katalog «%s»: %s" -#: ../glib/gfileutils.c:536 ../glib/gfileutils.c:624 +#: ../glib/gfileutils.c:540 ../glib/gfileutils.c:628 #, c-format msgid "Could not allocate %lu bytes to read file \"%s\"" msgstr "Kunne ikke allokere %lu bytes til lest fil «%s»" -#: ../glib/gfileutils.c:551 +#: ../glib/gfileutils.c:555 #, c-format msgid "Error reading file '%s': %s" msgstr "Feil under lesing av fil «%s»: %s" -#: ../glib/gfileutils.c:565 +#: ../glib/gfileutils.c:569 #, c-format msgid "File \"%s\" is too large" msgstr "Fil «%s» er for stor" -#: ../glib/gfileutils.c:648 +#: ../glib/gfileutils.c:652 #, c-format msgid "Failed to read from file '%s': %s" msgstr "Feil under lesing fra fil «%s»: %s" -#: ../glib/gfileutils.c:699 ../glib/gfileutils.c:786 +#: ../glib/gfileutils.c:703 ../glib/gfileutils.c:790 #, c-format msgid "Failed to open file '%s': %s" msgstr "Feil under åpning av fil «%s»: %s" -#: ../glib/gfileutils.c:716 ../glib/gmappedfile.c:169 +#: ../glib/gfileutils.c:720 ../glib/gmappedfile.c:169 #, c-format msgid "Failed to get attributes of file '%s': fstat() failed: %s" msgstr "Feil ved uthenting av attributter for fil «%s»: fstat() feilet: %s" -#: ../glib/gfileutils.c:750 +#: ../glib/gfileutils.c:754 #, c-format msgid "Failed to open file '%s': fdopen() failed: %s" msgstr "Feil under åpning av fil «%s»: fdopen() feilet: %s" -#: ../glib/gfileutils.c:858 +#: ../glib/gfileutils.c:862 #, c-format msgid "Failed to rename file '%s' to '%s': g_rename() failed: %s" -msgstr "" -"Feil under endring av navn på filen «%s» til «%s»: g_rename() feilet: %s" +msgstr "Feil under endring av navn på filen «%s» til «%s»: g_rename() feilet: %s" -#: ../glib/gfileutils.c:900 ../glib/gfileutils.c:1369 +#: ../glib/gfileutils.c:904 ../glib/gfileutils.c:1388 #, c-format msgid "Failed to create file '%s': %s" msgstr "Feil under oppretting av fil «%s»: %s" -#: ../glib/gfileutils.c:914 +#: ../glib/gfileutils.c:918 #, c-format msgid "Failed to open file '%s' for writing: fdopen() failed: %s" msgstr "Feil under åpning av filen «%s» for skriving: fdopen() feilet: %s" -#: ../glib/gfileutils.c:939 +#: ../glib/gfileutils.c:943 #, c-format msgid "Failed to write file '%s': fwrite() failed: %s" msgstr "Kunne ikke skrive fil «%s»: fwrite() feilet: %s" -#: ../glib/gfileutils.c:958 +#: ../glib/gfileutils.c:962 #, c-format msgid "Failed to write file '%s': fflush() failed: %s" msgstr "Kunne ikke skrive fil «%s»: fflush() feilet: %s" -#: ../glib/gfileutils.c:987 +#: ../glib/gfileutils.c:1005 #, c-format msgid "Failed to write file '%s': fsync() failed: %s" msgstr "Kunne ikke skrive fil «%s»: fsync() feilet: %s" -#: ../glib/gfileutils.c:1006 +#: ../glib/gfileutils.c:1025 #, c-format msgid "Failed to close file '%s': fclose() failed: %s" msgstr "Kunne ikke lukke fil «%s»: fclose() feilet: %s" -#: ../glib/gfileutils.c:1127 +#: ../glib/gfileutils.c:1146 #, c-format msgid "Existing file '%s' could not be removed: g_unlink() failed: %s" msgstr "Eksisterende fil «%s» kunne ikke bli fjernet: g_unlink() feilet: %s" -#: ../glib/gfileutils.c:1331 +#: ../glib/gfileutils.c:1350 #, c-format msgid "Template '%s' invalid, should not contain a '%s'" msgstr "Mal «%s» er ugyldig, må ikke inneholde «%s»" -#: ../glib/gfileutils.c:1344 +#: ../glib/gfileutils.c:1363 #, c-format msgid "Template '%s' doesn't contain XXXXXX" msgstr "Mal «%s» inneholder ikke XXXXXX" -#: ../glib/gfileutils.c:1777 +#: ../glib/gfileutils.c:1796 #, c-format msgid "%u byte" msgid_plural "%u bytes" msgstr[0] "%u byte" msgstr[1] "%u bytes" -#: ../glib/gfileutils.c:1785 +#: ../glib/gfileutils.c:1804 #, c-format msgid "%.1f KB" msgstr "%.1f KB" -#: ../glib/gfileutils.c:1790 +#: ../glib/gfileutils.c:1809 #, c-format msgid "%.1f MB" msgstr "%.1f MB" -#: ../glib/gfileutils.c:1795 +#: ../glib/gfileutils.c:1814 #, c-format msgid "%.1f GB" msgstr "%.1f GB" -#: ../glib/gfileutils.c:1800 +#: ../glib/gfileutils.c:1819 #, c-format msgid "%.1f TB" msgstr "%.1f TB" -#: ../glib/gfileutils.c:1805 +#: ../glib/gfileutils.c:1824 #, c-format msgid "%.1f PB" msgstr "%.1f PB" -#: ../glib/gfileutils.c:1810 +#: ../glib/gfileutils.c:1829 #, c-format msgid "%.1f EB" msgstr "%.1f EB" -#: ../glib/gfileutils.c:1853 +#: ../glib/gfileutils.c:1872 #, c-format msgid "Failed to read the symbolic link '%s': %s" msgstr "Feil under lesing av symbolsk lenke «%s»: %s" -#: ../glib/gfileutils.c:1874 +#: ../glib/gfileutils.c:1893 msgid "Symbolic links not supported" msgstr "Symbolske lenker er ikke støttet" @@ -583,8 +585,8 @@ msgid "" "Failed to parse '%-.*s', which should have been a digit inside a character " "reference (ê for example) - perhaps the digit is too large" msgstr "" -"Feil under lesing av «%-.*s», som skulle vært et tall inne i en " -"tegnreferanse (ê for eksempel) - tallet er muligens for stort" +"Feil under lesing av «%-.*s», som skulle vært et tall inne i en tegnreferanse " +"(ê for eksempel) - tallet er muligens for stort" #: ../glib/gmarkup.c:594 msgid "" @@ -602,8 +604,7 @@ msgid "Character reference '%-.*s' does not encode a permitted character" msgstr "Tegnreferanse «%-.*s» koder ikke et tillatt tegn" #: ../glib/gmarkup.c:658 -msgid "" -"Empty entity '&;' seen; valid entities are: & " < > '" +msgid "Empty entity '&;' seen; valid entities are: & " < > '" msgstr "" "Tom entitet «&;» funnet; gyldige entiteter er: & " < > '" @@ -637,8 +638,8 @@ msgstr "" #: ../glib/gmarkup.c:1126 #, 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 "" "Rart tegn «%s», forventet et «>» tegn for å avslutte start-taggen til det " "tomme elementet «%s»" @@ -647,8 +648,7 @@ msgstr "" #, c-format msgid "" "Odd character '%s', expected a '=' after attribute name '%s' of element '%s'" -msgstr "" -"Rart tegn «%s», forventet et «=» etter attributtnavn «%s» for element «%s»" +msgstr "Rart tegn «%s», forventet et «=» etter attributtnavn «%s» for element «%s»" #: ../glib/gmarkup.c:1251 #, c-format @@ -916,7 +916,7 @@ msgstr "POSIX elementer for sammenslåing er ikke støttet" #: ../glib/gregex.c:348 msgid "character value in \\x{...} sequence is too large" -msgstr "tegnverdi i \\x{...} sekvens er for stor" +msgstr "tegnverdi i \\x{…} sekvens er for stor" #: ../glib/gregex.c:351 msgid "invalid condition (?(0)" @@ -1073,8 +1073,7 @@ msgstr "Tekst sluttet rett etter et «\\» tegn. (Teksten var «%s»)" #: ../glib/gshell.c:566 #, c-format msgid "Text ended before matching quote was found for %c. (The text was '%s')" -msgstr "" -"Teksten sluttet før likt sitattegn ble funnet for %c. (Teksten var «%s»)" +msgstr "Teksten sluttet før likt sitattegn ble funnet for %c. (Teksten var «%s»)" #: ../glib/gshell.c:578 msgid "Text was empty (or contained only whitespace)" @@ -1203,7 +1202,7 @@ msgstr "Bruk:" #: ../glib/goption.c:760 msgid "[OPTION...]" -msgstr "[FLAGG...]" +msgstr "[FLAGG …]" #: ../glib/goption.c:866 msgid "Help Options:" @@ -1273,8 +1272,8 @@ msgstr "Filen er tom" msgid "" "Key file contains line '%s' which is not a key-value pair, group, or comment" msgstr "" -"Nøkkelfil inneholder linjen «%s» som ikke er et par med nøkkelverdier, " -"gruppe eller kommentar" +"Nøkkelfil inneholder linjen «%s» som ikke er et par med nøkkelverdier, gruppe " +"eller kommentar" #: ../glib/gkeyfile.c:824 #, c-format @@ -1320,11 +1319,9 @@ msgstr "" #: ../glib/gkeyfile.c:1531 #, c-format -msgid "" -"Key file contains key '%s' which has a value that cannot be interpreted." +msgid "Key file contains key '%s' which has a value that cannot be interpreted." msgstr "" -"Nøkkelfilen inneholder nøkkelen «%s» som har en verdi som ikke kan bli " -"tolket." +"Nøkkelfilen inneholder nøkkelen «%s» som har en verdi som ikke kan bli tolket." #: ../glib/gkeyfile.c:2125 ../glib/gkeyfile.c:2487 #, c-format @@ -1332,8 +1329,8 @@ msgid "" "Key file contains key '%s' in group '%s' which has value that cannot be " "interpreted." msgstr "" -"Nøkkelfilen inneholder nøkkelen «%s» i gruppen «%s» som har en verdi som " -"ikke kan bli tolket." +"Nøkkelfilen inneholder nøkkelen «%s» i gruppen «%s» som har en verdi som ikke " +"kan bli tolket." #: ../glib/gkeyfile.c:2671 ../glib/gkeyfile.c:2872 ../glib/gkeyfile.c:3402 #, c-format @@ -1382,10 +1379,10 @@ msgstr "Tellerverdi gitt til %s er for stor" msgid "Stream is already closed" msgstr "Strømmen er allerede lukket" -#: ../gio/gcancellable.c:432 ../gio/gdbusconnection.c:1636 -#: ../gio/gdbusconnection.c:1725 ../gio/gdbusconnection.c:1911 -#: ../gio/glocalfile.c:2102 ../gio/gsimpleasyncresult.c:811 -#: ../gio/gsimpleasyncresult.c:837 +#: ../gio/gcancellable.c:433 ../gio/gdbusconnection.c:1637 +#: ../gio/gdbusconnection.c:1726 ../gio/gdbusconnection.c:1912 +#: ../gio/glocalfile.c:2102 ../gio/gsimpleasyncresult.c:810 +#: ../gio/gsimpleasyncresult.c:836 msgid "Operation was cancelled" msgstr "Operasjonen ble avbrutt" @@ -1401,7 +1398,7 @@ msgstr "Ugyldig multibytesekvens i inndata" msgid "Not enough space in destination" msgstr "Ikke nok plass i mål" -#: ../gio/gcharsetconverter.c:447 ../gio/gsocket.c:831 +#: ../gio/gcharsetconverter.c:447 ../gio/gsocket.c:832 msgid "Cancellable initialization not supported" msgstr "Avbrytbar initiering er ikke støttet" @@ -1439,8 +1436,7 @@ msgstr "Ikke støttet nøkkel «%s» i adresseoppføring «%s»" #: ../gio/gdbusaddress.c:169 #, c-format -msgid "" -"Address `%s' is invalid (need exactly one of path, tmpdir or abstract keys)" +msgid "Address `%s' is invalid (need exactly one of path, tmpdir or abstract keys)" msgstr "" "Adressen «%s» er ugyldig (trenger eksakt en av følgende: sti, tmpdir eller " "abstrakte nøkler)" @@ -1556,17 +1552,16 @@ msgstr "" #: ../gio/gdbusaddress.c:1143 #, c-format msgid "Cannot determine session bus address (not implemented for this OS)" -msgstr "" -"Kan ikke bestemme adresse til sesjonsbussen (ikke implementert på dette OSet)" +msgstr "Kan ikke bestemme adresse til øktbussen (ikke implementert på dette OSet)" -#: ../gio/gdbusaddress.c:1242 ../gio/gdbusconnection.c:6167 +#: ../gio/gdbusaddress.c:1242 ../gio/gdbusconnection.c:6168 #, c-format msgid "" "Cannot determine bus address from DBUS_STARTER_BUS_TYPE environment variable " "- unknown value `%s'" msgstr "" -#: ../gio/gdbusaddress.c:1251 ../gio/gdbusconnection.c:6176 +#: ../gio/gdbusaddress.c:1251 ../gio/gdbusconnection.c:6177 msgid "" "Cannot determine bus address because the DBUS_STARTER_BUS_TYPE environment " "variable is not set" @@ -1602,8 +1597,7 @@ msgstr "Feil under kjøring av stat() på katalog «%s»: %s" #: ../gio/gdbusauthmechanismsha1.c:278 #, c-format -msgid "" -"Permissions on directory `%s' are malformed. Expected mode 0700, got 0%o" +msgid "Permissions on directory `%s' are malformed. Expected mode 0700, got 0%o" msgstr "" #: ../gio/gdbusauthmechanismsha1.c:299 @@ -1669,85 +1663,83 @@ msgid "(Additionally, releasing the lock for `%s' also failed: %s) " msgstr "" #: ../gio/gdbusconnection.c:1148 ../gio/gdbusconnection.c:1374 -#: ../gio/gdbusconnection.c:1413 ../gio/gdbusconnection.c:1736 +#: ../gio/gdbusconnection.c:1413 ../gio/gdbusconnection.c:1737 msgid "The connection is closed" msgstr "Tilkoblingen er lukket" -#: ../gio/gdbusconnection.c:1680 +#: ../gio/gdbusconnection.c:1681 msgid "Timeout was reached" msgstr "Tidsavbrudd ble nådd" -#: ../gio/gdbusconnection.c:2299 -msgid "" -"Unsupported flags encountered when constructing a client-side connection" +#: ../gio/gdbusconnection.c:2300 +msgid "Unsupported flags encountered when constructing a client-side connection" msgstr "" -#: ../gio/gdbusconnection.c:3751 ../gio/gdbusconnection.c:4069 +#: ../gio/gdbusconnection.c:3752 ../gio/gdbusconnection.c:4070 #, c-format -msgid "" -"No such interface `org.freedesktop.DBus.Properties' on object at path %s" +msgid "No such interface `org.freedesktop.DBus.Properties' on object at path %s" msgstr "" -#: ../gio/gdbusconnection.c:3823 +#: ../gio/gdbusconnection.c:3824 #, c-format msgid "Error setting property `%s': Expected type `%s' but got `%s'" msgstr "" -#: ../gio/gdbusconnection.c:3918 +#: ../gio/gdbusconnection.c:3919 #, c-format msgid "No such property `%s'" msgstr "Egenskap «%s» finnes ikke" -#: ../gio/gdbusconnection.c:3930 +#: ../gio/gdbusconnection.c:3931 #, c-format msgid "Property `%s' is not readable" msgstr "Egenskap «%s» er er ikke lesbar" -#: ../gio/gdbusconnection.c:3941 +#: ../gio/gdbusconnection.c:3942 #, c-format msgid "Property `%s' is not writable" msgstr "Egenskap «%s» er er ikke skrivbar" -#: ../gio/gdbusconnection.c:4011 ../gio/gdbusconnection.c:5601 +#: ../gio/gdbusconnection.c:4012 ../gio/gdbusconnection.c:5602 #, c-format msgid "No such interface `%s'" msgstr "Grensesnitt «%s» finnes ikke" -#: ../gio/gdbusconnection.c:4199 +#: ../gio/gdbusconnection.c:4200 msgid "No such interface" msgstr "Grensesnittet finnes ikke" -#: ../gio/gdbusconnection.c:4415 ../gio/gdbusconnection.c:6117 +#: ../gio/gdbusconnection.c:4416 ../gio/gdbusconnection.c:6118 #, c-format msgid "No such interface `%s' on object at path %s" msgstr "" -#: ../gio/gdbusconnection.c:4467 +#: ../gio/gdbusconnection.c:4468 #, c-format msgid "No such method `%s'" msgstr "Metoden «%s» finnes ikke" -#: ../gio/gdbusconnection.c:4498 +#: ../gio/gdbusconnection.c:4499 #, c-format msgid "Type of message, `%s', does not match expected type `%s'" msgstr "" -#: ../gio/gdbusconnection.c:4717 +#: ../gio/gdbusconnection.c:4718 #, c-format msgid "An object is already exported for the interface %s at %s" msgstr "" -#: ../gio/gdbusconnection.c:4911 +#: ../gio/gdbusconnection.c:4912 #, c-format msgid "Method `%s' returned type `%s', but expected `%s'" msgstr "" -#: ../gio/gdbusconnection.c:5712 +#: ../gio/gdbusconnection.c:5713 #, c-format msgid "Method `%s' on interface `%s' with signature `%s' does not exist" msgstr "" -#: ../gio/gdbusconnection.c:5830 +#: ../gio/gdbusconnection.c:5831 #, c-format msgid "A subtree is already exported for %s" msgstr "Et undertre er allerede eksportert for %s" @@ -1861,8 +1853,7 @@ msgstr "Kan ikke deserialisere melding: " #: ../gio/gdbusmessage.c:2131 #, c-format -msgid "" -"Error serializing GVariant with type string `%s' to the D-Bus wire format" +msgid "Error serializing GVariant with type string `%s' to the D-Bus wire format" msgstr "" #: ../gio/gdbusmessage.c:2272 @@ -1882,8 +1873,8 @@ msgstr "" #: ../gio/gdbusmessage.c:2334 #, c-format msgid "" -"Message body has type signature `%s' but signature in the header field is `" -"%s'" +"Message body has type signature `%s' but signature in the header field is `%" +"s'" msgstr "" #: ../gio/gdbusmessage.c:2350 @@ -1905,13 +1896,13 @@ msgstr "Feil retur med tom kropp" msgid "Type of return value is incorrect, got `%s', expected `%s'" msgstr "" -#: ../gio/gdbusmethodinvocation.c:406 ../gio/gsocket.c:2992 -#: ../gio/gsocket.c:3073 +#: ../gio/gdbusmethodinvocation.c:406 ../gio/gsocket.c:3023 +#: ../gio/gsocket.c:3104 #, c-format msgid "Error sending message: %s" msgstr "Feil ved sending av melding: %s" -#: ../gio/gdbusprivate.c:1756 +#: ../gio/gdbusprivate.c:1768 msgid "Unable to load /var/lib/dbus/machine-id: " msgstr "Kan ikke laste /var/lib/dbus/machine-id: " @@ -2001,7 +1992,7 @@ msgstr "Koble til systembussen" #: ../gio/gdbus-tool.c:347 msgid "Connect to the session bus" -msgstr "Koble til sesjonsbussen" +msgstr "Koble til øktbussen" #: ../gio/gdbus-tool.c:348 msgid "Connect to given D-Bus address" @@ -2027,8 +2018,7 @@ msgstr "Flere sluttpunkt oppgitt for tilkobling" #: ../gio/gdbus-tool.c:459 #, c-format -msgid "" -"Warning: According to introspection data, interface `%s' does not exist\n" +msgid "Warning: According to introspection data, interface `%s' does not exist\n" msgstr "" #: ../gio/gdbus-tool.c:468 @@ -2122,34 +2112,34 @@ msgstr "Objektsti som skal overvåkes" msgid "Monitor a remote object." msgstr "Overvåk et eksternt objekt." -#: ../gio/gdesktopappinfo.c:469 ../gio/gwin32appinfo.c:221 +#: ../gio/gdesktopappinfo.c:480 ../gio/gwin32appinfo.c:221 msgid "Unnamed" msgstr "Uten navn" -#: ../gio/gdesktopappinfo.c:753 +#: ../gio/gdesktopappinfo.c:764 msgid "Desktop file didn't specify Exec field" msgstr "Desktop-filen hadde ingen verdi i Exec-feltet" -#: ../gio/gdesktopappinfo.c:946 +#: ../gio/gdesktopappinfo.c:957 msgid "Unable to find terminal required for application" msgstr "Kan ikke finne terminalen som kreves for programmet" -#: ../gio/gdesktopappinfo.c:1155 +#: ../gio/gdesktopappinfo.c:1166 #, c-format msgid "Can't create user application configuration folder %s: %s" msgstr "Kan ikke opprette konfigurasjonsmappe %s for brukers program: %s" -#: ../gio/gdesktopappinfo.c:1159 +#: ../gio/gdesktopappinfo.c:1170 #, c-format msgid "Can't create user MIME configuration folder %s: %s" msgstr "Kan ikke opprette brukers konfigurasjonsmappe %s for MIME: %s" -#: ../gio/gdesktopappinfo.c:1567 +#: ../gio/gdesktopappinfo.c:1663 #, c-format msgid "Can't create user desktop file %s" msgstr "Kan ikke opprette brukers desktop-fil %s" -#: ../gio/gdesktopappinfo.c:1681 +#: ../gio/gdesktopappinfo.c:1779 #, c-format msgid "Custom definition for %s" msgstr "Egendefinert definisjon for %s" @@ -2187,29 +2177,29 @@ msgstr "Kan ikke håndtere versjon %d av GEmblem-koding" msgid "Malformed number of tokens (%d) in GEmblem encoding" msgstr "Feil antall tegn (%d) i GEmblem-koding" -#: ../gio/gemblemedicon.c:293 +#: ../gio/gemblemedicon.c:368 #, c-format msgid "Can't handle version %d of GEmblemedIcon encoding" msgstr "Kan ikke håndtere versjon %d av GEmblemedIcon-koding" -#: ../gio/gemblemedicon.c:303 +#: ../gio/gemblemedicon.c:378 #, c-format msgid "Malformed number of tokens (%d) in GEmblemedIcon encoding" msgstr "Feil antall tegn (%d) i GEmblemedIcon-koding" -#: ../gio/gemblemedicon.c:326 +#: ../gio/gemblemedicon.c:401 msgid "Expected a GEmblem for GEmblemedIcon" msgstr "Ventet et GEmblem for GEmblemedIcon" -#: ../gio/gfile.c:872 ../gio/gfile.c:1102 ../gio/gfile.c:1237 -#: ../gio/gfile.c:1474 ../gio/gfile.c:1528 ../gio/gfile.c:1585 -#: ../gio/gfile.c:1668 ../gio/gfile.c:1723 ../gio/gfile.c:1783 -#: ../gio/gfile.c:1837 ../gio/gfile.c:3307 ../gio/gfile.c:3361 -#: ../gio/gfile.c:3493 ../gio/gfile.c:3534 ../gio/gfile.c:3861 -#: ../gio/gfile.c:4263 ../gio/gfile.c:4349 ../gio/gfile.c:4438 -#: ../gio/gfile.c:4536 ../gio/gfile.c:4623 ../gio/gfile.c:4717 -#: ../gio/gfile.c:5038 ../gio/gfile.c:5305 ../gio/gfile.c:5370 -#: ../gio/gfile.c:6944 ../gio/gfile.c:7034 ../gio/gfile.c:7120 +#: ../gio/gfile.c:872 ../gio/gfile.c:1103 ../gio/gfile.c:1238 +#: ../gio/gfile.c:1475 ../gio/gfile.c:1529 ../gio/gfile.c:1586 +#: ../gio/gfile.c:1669 ../gio/gfile.c:1724 ../gio/gfile.c:1784 +#: ../gio/gfile.c:1838 ../gio/gfile.c:3308 ../gio/gfile.c:3362 +#: ../gio/gfile.c:3494 ../gio/gfile.c:3535 ../gio/gfile.c:3862 +#: ../gio/gfile.c:4264 ../gio/gfile.c:4350 ../gio/gfile.c:4439 +#: ../gio/gfile.c:4537 ../gio/gfile.c:4624 ../gio/gfile.c:4718 +#: ../gio/gfile.c:5039 ../gio/gfile.c:5306 ../gio/gfile.c:5371 +#: ../gio/gfile.c:6945 ../gio/gfile.c:7035 ../gio/gfile.c:7121 #: ../gio/win32/gwinhttpfile.c:439 msgid "Operation not supported" msgstr "Operasjonen er ikke støttet" @@ -2222,58 +2212,58 @@ msgstr "Operasjonen er ikke støttet" #. Translators: This is an error message when trying to find #. * the enclosing (user visible) mount of a file, but none #. * exists. -#: ../gio/gfile.c:1358 ../gio/glocalfile.c:1059 ../gio/glocalfile.c:1070 +#: ../gio/gfile.c:1359 ../gio/glocalfile.c:1059 ../gio/glocalfile.c:1070 #: ../gio/glocalfile.c:1083 msgid "Containing mount does not exist" msgstr "Omsluttende monteringspunkt finnes ikke" -#: ../gio/gfile.c:2411 ../gio/glocalfile.c:2258 +#: ../gio/gfile.c:2412 ../gio/glocalfile.c:2258 msgid "Can't copy over directory" msgstr "Kan ikke kopiere over katalog" -#: ../gio/gfile.c:2472 +#: ../gio/gfile.c:2473 msgid "Can't copy directory over directory" msgstr "Kan ikke kopiere katalog over katalog" -#: ../gio/gfile.c:2480 ../gio/glocalfile.c:2267 +#: ../gio/gfile.c:2481 ../gio/glocalfile.c:2267 msgid "Target file exists" msgstr "Målfilen eksisterer" -#: ../gio/gfile.c:2498 +#: ../gio/gfile.c:2499 msgid "Can't recursively copy directory" msgstr "Kan ikke kopiere katalog rekursivt" -#: ../gio/gfile.c:2758 +#: ../gio/gfile.c:2759 msgid "Splice not supported" msgstr "Splice er ikke støttet" -#: ../gio/gfile.c:2762 +#: ../gio/gfile.c:2763 #, c-format msgid "Error splicing file: %s" msgstr "Feil ved bruk av splice(2) på fil: %s" -#: ../gio/gfile.c:2909 +#: ../gio/gfile.c:2910 msgid "Can't copy special file" msgstr "Kan ikke kopiere spesiell fil" -#: ../gio/gfile.c:3483 +#: ../gio/gfile.c:3484 msgid "Invalid symlink value given" msgstr "Ugyldig verdi oppgitt for symbolsk lenke" -#: ../gio/gfile.c:3577 +#: ../gio/gfile.c:3578 msgid "Trash not supported" msgstr "Papirkurv er ikke støttet" -#: ../gio/gfile.c:3626 +#: ../gio/gfile.c:3627 #, c-format msgid "File names cannot contain '%c'" msgstr "Filnavn kan ikke inneholde «%c»" -#: ../gio/gfile.c:6003 ../gio/gvolume.c:332 +#: ../gio/gfile.c:6004 ../gio/gvolume.c:332 msgid "volume doesn't implement mount" msgstr "volumet implementerer ikke montering" -#: ../gio/gfile.c:6114 +#: ../gio/gfile.c:6115 msgid "No application is registered as handling this file" msgstr "Ingen program registrert for å håndtere denne filen" @@ -2486,8 +2476,7 @@ msgstr "" #: ../gio/glib-compile-schemas.c:1108 #, c-format -msgid "" -" is a list, extending which is not a list" +msgid " is a list, extending which is not a list" msgstr "" #: ../gio/glib-compile-schemas.c:1118 @@ -2512,128 +2501,128 @@ msgstr "" msgid "<%s id='%s'> already specified" msgstr "<%s id=«%s»> er allerede spesifisert" -#: ../gio/glib-compile-schemas.c:1385 +#: ../gio/glib-compile-schemas.c:1387 #, c-format msgid "Element <%s> not allowed inside <%s>" msgstr "Element <%s> er ikke tillatt inne i <%s>" -#: ../gio/glib-compile-schemas.c:1389 +#: ../gio/glib-compile-schemas.c:1391 #, c-format msgid "Element <%s> not allowed at toplevel" msgstr "Element <%s> er ikke tillatt på toppnivå" -#: ../gio/glib-compile-schemas.c:1483 +#: ../gio/glib-compile-schemas.c:1485 #, c-format msgid "text may not appear inside <%s>" msgstr "tekst kan ikke forekomme inne i <%s>" #. Translators: Do not translate "--strict". -#: ../gio/glib-compile-schemas.c:1652 ../gio/glib-compile-schemas.c:1723 -#: ../gio/glib-compile-schemas.c:1799 +#: ../gio/glib-compile-schemas.c:1654 ../gio/glib-compile-schemas.c:1725 +#: ../gio/glib-compile-schemas.c:1801 #, c-format msgid "--strict was specified; exiting.\n" msgstr "" -#: ../gio/glib-compile-schemas.c:1660 +#: ../gio/glib-compile-schemas.c:1662 #, c-format msgid "This entire file has been ignored.\n" msgstr "" -#: ../gio/glib-compile-schemas.c:1719 +#: ../gio/glib-compile-schemas.c:1721 #, c-format msgid "Ignoring this file.\n" msgstr "" -#: ../gio/glib-compile-schemas.c:1759 +#: ../gio/glib-compile-schemas.c:1761 #, c-format msgid "No such key `%s' in schema `%s' as specified in override file `%s'" msgstr "" -#: ../gio/glib-compile-schemas.c:1765 ../gio/glib-compile-schemas.c:1823 -#: ../gio/glib-compile-schemas.c:1851 +#: ../gio/glib-compile-schemas.c:1767 ../gio/glib-compile-schemas.c:1825 +#: ../gio/glib-compile-schemas.c:1853 #, c-format msgid "; ignoring override for this key.\n" msgstr "" -#: ../gio/glib-compile-schemas.c:1769 ../gio/glib-compile-schemas.c:1827 -#: ../gio/glib-compile-schemas.c:1855 +#: ../gio/glib-compile-schemas.c:1771 ../gio/glib-compile-schemas.c:1829 +#: ../gio/glib-compile-schemas.c:1857 #, c-format msgid " and --strict was specified; exiting.\n" msgstr "" -#: ../gio/glib-compile-schemas.c:1785 +#: ../gio/glib-compile-schemas.c:1787 #, c-format msgid "" -"error parsing key `%s' in schema `%s' as specified in override file `%s': " -"%s. " +"error parsing key `%s' in schema `%s' as specified in override file `%s': %" +"s. " msgstr "" -#: ../gio/glib-compile-schemas.c:1795 +#: ../gio/glib-compile-schemas.c:1797 #, c-format msgid "Ignoring override for this key.\n" msgstr "" -#: ../gio/glib-compile-schemas.c:1813 +#: ../gio/glib-compile-schemas.c:1815 #, c-format msgid "" "override for key `%s' in schema `%s' in override file `%s' is out of the " "range given in the schema" msgstr "" -#: ../gio/glib-compile-schemas.c:1841 +#: ../gio/glib-compile-schemas.c:1843 #, c-format msgid "" "override for key `%s' in schema `%s' in override file `%s' is not in the " "list of valid choices" msgstr "" -#: ../gio/glib-compile-schemas.c:1895 +#: ../gio/glib-compile-schemas.c:1897 msgid "where to store the gschemas.compiled file" msgstr "gschemas.compiled filen lagres her" -#: ../gio/glib-compile-schemas.c:1895 ../gio/glib-compile-schemas.c:1908 +#: ../gio/glib-compile-schemas.c:1897 ../gio/glib-compile-schemas.c:1910 msgid "DIRECTORY" msgstr "KATALOG" -#: ../gio/glib-compile-schemas.c:1896 +#: ../gio/glib-compile-schemas.c:1898 msgid "Abort on any errors in schemas" msgstr "" -#: ../gio/glib-compile-schemas.c:1897 +#: ../gio/glib-compile-schemas.c:1899 msgid "Do not write the gschema.compiled file" msgstr "Ikke skriv filen gschema.compiled" -#: ../gio/glib-compile-schemas.c:1898 +#: ../gio/glib-compile-schemas.c:1900 msgid "This option will be removed soon." msgstr "Dette alternativet vil bli fjernet snart." -#: ../gio/glib-compile-schemas.c:1899 +#: ../gio/glib-compile-schemas.c:1901 msgid "Do not enforce key name restrictions" msgstr "Ikke sett restriksjoner på navn på nøkler" -#: ../gio/glib-compile-schemas.c:1911 +#: ../gio/glib-compile-schemas.c:1913 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:1927 +#: ../gio/glib-compile-schemas.c:1929 #, c-format msgid "You should give exactly one directory name\n" msgstr "Du må kun oppgi navn på én katalog\n" -#: ../gio/glib-compile-schemas.c:1966 +#: ../gio/glib-compile-schemas.c:1968 #, c-format msgid "No schema files found: " msgstr "Ingen schema-filer funnet: " -#: ../gio/glib-compile-schemas.c:1969 +#: ../gio/glib-compile-schemas.c:1971 #, c-format msgid "doing nothing.\n" msgstr "gjør ingenting.\n" -#: ../gio/glib-compile-schemas.c:1972 +#: ../gio/glib-compile-schemas.c:1974 #, c-format msgid "removed existing output file.\n" msgstr "fjernet eksisterende utdatafil.\n" @@ -3083,85 +3072,86 @@ msgstr "" msgid "No such key '%s'\n" msgstr "Nøkkel «%s» finnes ikke\n" -#: ../gio/gsettings-tool.c:427 +#: ../gio/gsettings-tool.c:429 #, c-format msgid "The provided value is outside of the valid range\n" msgstr "" -#: ../gio/gsettings-tool.c:456 +#: ../gio/gsettings-tool.c:458 msgid "List the installed (non-relocatable) schemas" msgstr "" -#: ../gio/gsettings-tool.c:462 +#: ../gio/gsettings-tool.c:464 msgid "List the installed relocatable schemas" msgstr "" -#: ../gio/gsettings-tool.c:468 +#: ../gio/gsettings-tool.c:470 msgid "Lists the keys in SCHEMA" msgstr "" -#: ../gio/gsettings-tool.c:469 ../gio/gsettings-tool.c:475 -#: ../gio/gsettings-tool.c:481 +#: ../gio/gsettings-tool.c:471 ../gio/gsettings-tool.c:477 +#: ../gio/gsettings-tool.c:483 msgid "SCHEMA[:PATH]" msgstr "SKJEMA[:STI]" -#: ../gio/gsettings-tool.c:474 +#: ../gio/gsettings-tool.c:476 msgid "Lists the children of SCHEMA" msgstr "" -#: ../gio/gsettings-tool.c:480 +#: ../gio/gsettings-tool.c:482 msgid "List keys and values, recursively" msgstr "" -#: ../gio/gsettings-tool.c:486 +#: ../gio/gsettings-tool.c:488 msgid "Gets the value of KEY" msgstr "Henter verdien for NØKKEL" -#: ../gio/gsettings-tool.c:487 ../gio/gsettings-tool.c:493 -#: ../gio/gsettings-tool.c:505 ../gio/gsettings-tool.c:511 +#: ../gio/gsettings-tool.c:489 ../gio/gsettings-tool.c:495 +#: ../gio/gsettings-tool.c:507 ../gio/gsettings-tool.c:513 msgid "SCHEMA[:PATH] KEY" msgstr "SKJEMA[:STI] NØKKEL" -#: ../gio/gsettings-tool.c:492 +#: ../gio/gsettings-tool.c:494 msgid "Queries the range of valid values for KEY" msgstr "" -#: ../gio/gsettings-tool.c:498 +#: ../gio/gsettings-tool.c:500 msgid "Sets the value of KEY to VALUE" msgstr "Sett verdien for NØKKEL til VERDI" -#: ../gio/gsettings-tool.c:499 +#: ../gio/gsettings-tool.c:501 msgid "SCHEMA[:PATH] KEY VALUE" msgstr "SKJEMA[:STI] NØKKEL VERDI" -#: ../gio/gsettings-tool.c:504 -#, fuzzy +#: ../gio/gsettings-tool.c:506 msgid "Resets KEY to its default value" -msgstr "Setter NØKKEL til forvalgt verdi" +msgstr "Nullstiller NØKKEL til forvalgt verdi" -#: ../gio/gsettings-tool.c:510 +#: ../gio/gsettings-tool.c:512 msgid "Checks if KEY is writable" msgstr "Sjekker om NØKKEL er skrivbar" -#: ../gio/gsettings-tool.c:516 +#: ../gio/gsettings-tool.c:518 msgid "" "Monitors 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:519 +#: ../gio/gsettings-tool.c:521 msgid "SCHEMA[:PATH] [KEY]" msgstr "SCHEMA[:STI] [NØKKEL]" -#: ../gio/gsettings-tool.c:523 +#: ../gio/gsettings-tool.c:525 #, c-format msgid "" "Unknown command %s\n" "\n" -msgstr "Ukjent kommando «%s»\n\n" +msgstr "" +"Ukjent kommando «%s»\n" +"\n" -#: ../gio/gsettings-tool.c:531 +#: ../gio/gsettings-tool.c:533 msgid "" "Usage:\n" " gsettings COMMAND [ARGS...]\n" @@ -3184,7 +3174,7 @@ msgid "" "\n" msgstr "" -#: ../gio/gsettings-tool.c:552 +#: ../gio/gsettings-tool.c:554 #, c-format msgid "" "Usage:\n" @@ -3194,153 +3184,152 @@ msgid "" "\n" msgstr "" -#: ../gio/gsettings-tool.c:557 +#: ../gio/gsettings-tool.c:559 msgid "Arguments:\n" msgstr "Argumenter:\n" -#: ../gio/gsettings-tool.c:561 -#, fuzzy +#: ../gio/gsettings-tool.c:563 msgid "" " SCHEMA The name of the schema\n" " PATH The path, for relocatable schemas\n" msgstr "" "Argumenter:\n" " SCHEMA Id for schema\n" -" NØKKEL Navn på nøkkelen\n" +" PATH Sti, for schema som kan relokeres\n" -#: ../gio/gsettings-tool.c:566 +#: ../gio/gsettings-tool.c:568 msgid " KEY The (optional) key within the schema\n" -msgstr "" +msgstr " NØKKEL Valgfri nøkkel i schema\n" -#: ../gio/gsettings-tool.c:570 +#: ../gio/gsettings-tool.c:572 msgid " KEY The key within the schema\n" msgstr "" -#: ../gio/gsettings-tool.c:574 +#: ../gio/gsettings-tool.c:576 msgid " VALUE The value to set\n" msgstr "" -#: ../gio/gsettings-tool.c:650 +#: ../gio/gsettings-tool.c:652 #, c-format msgid "Empty schema name given" -msgstr "" +msgstr "Tomt navn på schema oppgitt" -#: ../gio/gsocket.c:276 +#: ../gio/gsocket.c:277 msgid "Invalid socket, not initialized" msgstr "Ugyldig plugg, ikke initiert" -#: ../gio/gsocket.c:283 +#: ../gio/gsocket.c:284 #, c-format msgid "Invalid socket, initialization failed due to: %s" msgstr "Ugyldig plugg, initiering feilet pga: %s" -#: ../gio/gsocket.c:291 +#: ../gio/gsocket.c:292 msgid "Socket is already closed" msgstr "Pluggen er allerede lukket" -#: ../gio/gsocket.c:299 ../gio/gsocket.c:2734 ../gio/gsocket.c:2778 +#: ../gio/gsocket.c:300 ../gio/gsocket.c:2765 ../gio/gsocket.c:2809 msgid "Socket I/O timed out" msgstr "Tidsavbrudd for I/U mot plugg" -#: ../gio/gsocket.c:442 +#: ../gio/gsocket.c:443 #, c-format msgid "creating GSocket from fd: %s" msgstr "lager GSocket fra fd: %s" -#: ../gio/gsocket.c:476 ../gio/gsocket.c:492 ../gio/gsocket.c:2134 +#: ../gio/gsocket.c:477 ../gio/gsocket.c:493 ../gio/gsocket.c:2135 #, c-format msgid "Unable to create socket: %s" msgstr "Kunne ikke lage plugg: %s" -#: ../gio/gsocket.c:476 +#: ../gio/gsocket.c:477 msgid "Unknown protocol was specified" msgstr "Ukjent protokoll ble oppgitt" -#: ../gio/gsocket.c:1245 +#: ../gio/gsocket.c:1246 #, c-format msgid "could not get local address: %s" msgstr "kunne ikke hente lokal adresse: %s" -#: ../gio/gsocket.c:1288 +#: ../gio/gsocket.c:1289 #, c-format msgid "could not get remote address: %s" msgstr "kunne ikke hente ekstern adresse: %s" -#: ../gio/gsocket.c:1349 +#: ../gio/gsocket.c:1350 #, c-format msgid "could not listen: %s" msgstr "kunne ikke lytte: %s" -#: ../gio/gsocket.c:1423 +#: ../gio/gsocket.c:1424 #, c-format msgid "Error binding to address: %s" msgstr "Feil ved binding til adresse: %s" -#: ../gio/gsocket.c:1543 +#: ../gio/gsocket.c:1544 #, c-format msgid "Error accepting connection: %s" msgstr "Feil ved godkjenning av tilkobling: %s" -#: ../gio/gsocket.c:1660 +#: ../gio/gsocket.c:1661 msgid "Error connecting: " msgstr "Feil under tilkobling: " -#: ../gio/gsocket.c:1665 +#: ../gio/gsocket.c:1666 msgid "Connection in progress" msgstr "Tilkobling pågår" -#: ../gio/gsocket.c:1672 +#: ../gio/gsocket.c:1673 #, c-format msgid "Error connecting: %s" msgstr "Feil under tilkobling: %s" -#: ../gio/gsocket.c:1715 ../gio/gsocket.c:3497 +#: ../gio/gsocket.c:1716 ../gio/gsocket.c:3528 #, c-format msgid "Unable to get pending error: %s" msgstr "Kan ikke hente utestående feil: %s" -#: ../gio/gsocket.c:1847 +#: ../gio/gsocket.c:1848 #, c-format msgid "Error receiving data: %s" msgstr "Feil ved mottak av data: %s" -#: ../gio/gsocket.c:2021 +#: ../gio/gsocket.c:2022 #, c-format msgid "Error sending data: %s" msgstr "Feil ved sending av data: %s" -#: ../gio/gsocket.c:2213 +#: ../gio/gsocket.c:2214 #, c-format msgid "Error closing socket: %s" msgstr "Feil ved lukking av plugg: %s" -#: ../gio/gsocket.c:2727 +#: ../gio/gsocket.c:2758 #, c-format msgid "Waiting for socket condition: %s" msgstr "Venter på tilstand for plugg: %s" -#: ../gio/gsocket.c:3017 +#: ../gio/gsocket.c:3048 msgid "GSocketControlMessage not supported on windows" msgstr "GSocketControlMessage er ikke støttet på windows" -#: ../gio/gsocket.c:3276 ../gio/gsocket.c:3417 +#: ../gio/gsocket.c:3307 ../gio/gsocket.c:3448 #, c-format msgid "Error receiving message: %s" msgstr "Feil ved mottak av melding: %s" -#: ../gio/gsocket.c:3512 +#: ../gio/gsocket.c:3543 msgid "g_socket_get_credentials not implemented for this OS" msgstr "g_socket_get_credentials ikke implementert for dette OSet" -#: ../gio/gsocketclient.c:674 ../gio/gsocketclient.c:1152 +#: ../gio/gsocketclient.c:798 ../gio/gsocketclient.c:1368 msgid "Unknown error on connect" msgstr "Ukjent feil ved tilkobling" -#: ../gio/gsocketclient.c:711 ../gio/gsocketclient.c:1037 +#: ../gio/gsocketclient.c:836 ../gio/gsocketclient.c:1252 msgid "Trying to proxy over non-TCP connection is not supported." msgstr "" -#: ../gio/gsocketclient.c:749 ../gio/gsocketclient.c:1060 +#: ../gio/gsocketclient.c:858 ../gio/gsocketclient.c:1277 #, c-format msgid "Proxy protocol '%s' is not supported." msgstr "Protokoll «%s» er er ikke støttet" @@ -3387,7 +3376,8 @@ msgstr "SOCSv5-proxy krever autentisering." #: ../gio/gsocks5proxy.c:179 msgid "" -"The SOCKSv5 proxy requires an authentication method that is not supported by GLib." +"The SOCKSv5 proxy requires an authentication method that is not supported by " +"GLib." msgstr "" #: ../gio/gsocks5proxy.c:208 @@ -3437,7 +3427,9 @@ msgid "SOCKSv5 proxy does not support provided address type." msgstr "SOCKSv5-proxy støtter ikke oppgitt type adresse." #: ../gio/gsocks5proxy.c:402 -msgid "Unkown SOCKSv5 proxy error." +#, fuzzy +#| msgid "Unkown SOCKSv5 proxy error." +msgid "Unknown SOCKSv5 proxy error." msgstr "Ukjent feil i SOCKSv5-proxy." #: ../gio/gthemedicon.c:498 @@ -3445,6 +3437,18 @@ msgstr "Ukjent feil i SOCKSv5-proxy." msgid "Can't handle version %d of GThemedIcon encoding" msgstr "Kan ikke håndtere versjon %d av GThemedIcon-koding" +#: ../gio/gtlscertificate.c:228 +msgid "No PEM-encoded certificate found" +msgstr "" + +#: ../gio/gtlscertificate.c:237 +msgid "Could not parse PEM-encoded certificate" +msgstr "" + +#: ../gio/gtlscertificate.c:258 +msgid "Could not parse PEM-encoded private key" +msgstr "" + #: ../gio/gunixconnection.c:164 ../gio/gunixconnection.c:505 #, c-format msgid "Expecting 1 control message, got %d" @@ -3494,14 +3498,14 @@ msgstr "" msgid "Error while disabling SO_PASSCRED: %s" msgstr "Feil ved forsøk på å slå av SO_PASSCRED: %s" -#: ../gio/gunixinputstream.c:353 ../gio/gunixinputstream.c:373 -#: ../gio/gunixinputstream.c:451 +#: ../gio/gunixinputstream.c:368 ../gio/gunixinputstream.c:388 +#: ../gio/gunixinputstream.c:466 #, c-format msgid "Error reading from unix: %s" msgstr "Feil under lesing fra unix: %s" -#: ../gio/gunixinputstream.c:406 ../gio/gunixinputstream.c:586 -#: ../gio/gunixoutputstream.c:393 ../gio/gunixoutputstream.c:542 +#: ../gio/gunixinputstream.c:421 ../gio/gunixinputstream.c:601 +#: ../gio/gunixoutputstream.c:407 ../gio/gunixoutputstream.c:556 #, c-format msgid "Error closing unix: %s" msgstr "Feil ved lukking av unix: %s" @@ -3510,8 +3514,8 @@ msgstr "Feil ved lukking av unix: %s" msgid "Filesystem root" msgstr "Filsystemrot" -#: ../gio/gunixoutputstream.c:339 ../gio/gunixoutputstream.c:360 -#: ../gio/gunixoutputstream.c:438 +#: ../gio/gunixoutputstream.c:353 ../gio/gunixoutputstream.c:374 +#: ../gio/gunixoutputstream.c:452 #, c-format msgid "Error writing to unix: %s" msgstr "Feil ved skriving til unix: %s" @@ -3583,3 +3587,4 @@ msgstr "Trenger med inndata" #: ../gio/gzlibdecompressor.c:342 msgid "Invalid compressed data" msgstr "Ugyldige komprimerte data" + diff --git a/po/sv.po b/po/sv.po index bd2d9ad6f..2aee3714b 100644 --- a/po/sv.po +++ b/po/sv.po @@ -7,10 +7,11 @@ msgid "" msgstr "" "Project-Id-Version: glib\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-09-12 20:16+0200\n" -"PO-Revision-Date: 2010-09-12 20:25+0100\n" +"POT-Creation-Date: 2010-12-31 15:11+0100\n" +"PO-Revision-Date: 2010-12-31 15:22+0100\n" "Last-Translator: Daniel Nylander \n" "Language-Team: Swedish \n" +"Language: sv\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -120,7 +121,7 @@ msgstr "Kunde inte öppna konverteraren från \"%s\" till \"%s\"" #: ../glib/gconvert.c:1161 #: ../glib/giochannel.c:1575 #: ../glib/giochannel.c:1617 -#: ../glib/giochannel.c:2461 +#: ../glib/giochannel.c:2460 #: ../glib/gutf8.c:992 #: ../glib/gutf8.c:1447 #: ../gio/gcharsetconverter.c:345 @@ -130,7 +131,7 @@ msgstr "Ogiltig bytesekvens i konverteringsindata" #: ../glib/gconvert.c:776 #: ../glib/gconvert.c:1086 #: ../glib/giochannel.c:1582 -#: ../glib/giochannel.c:2473 +#: ../glib/giochannel.c:2472 #: ../gio/gcharsetconverter.c:350 #, c-format msgid "Error during conversion: %s" @@ -184,362 +185,370 @@ msgstr "Sökvägen \"%s\" är ingen absolut sökväg" msgid "Invalid hostname" msgstr "Ogiltigt värdnamn" -#: ../glib/gdatetime.c:104 +#. Translators: 'before midday' indicator +#: ../glib/gdatetime.c:149 msgctxt "GDateTime" msgid "am" msgstr "am" -#: ../glib/gdatetime.c:104 +#. Translators: 'before midday' indicator +#: ../glib/gdatetime.c:151 msgctxt "GDateTime" msgid "AM" msgstr "AM" -#: ../glib/gdatetime.c:105 +#. Translators: 'after midday' indicator +#: ../glib/gdatetime.c:153 msgctxt "GDateTime" msgid "pm" msgstr "pm" -#: ../glib/gdatetime.c:105 +#. Translators: 'after midday' indicator +#: ../glib/gdatetime.c:155 msgctxt "GDateTime" msgid "PM" msgstr "PM" #. Translators: this is the preferred format for expressing the date -#: ../glib/gdatetime.c:114 +#: ../glib/gdatetime.c:164 msgctxt "GDateTime" msgid "%m/%d/%y" msgstr "%y-%m-%d" #. Translators: this is the preferred format for expressing the time -#: ../glib/gdatetime.c:117 +#: ../glib/gdatetime.c:167 msgctxt "GDateTime" msgid "%H:%M:%S" msgstr "%H.%M.%S" -#: ../glib/gdatetime.c:162 +#: ../glib/gdatetime.c:193 msgctxt "full month name" msgid "January" msgstr "Januari" -#: ../glib/gdatetime.c:164 +#: ../glib/gdatetime.c:195 msgctxt "full month name" msgid "February" msgstr "Februari" -#: ../glib/gdatetime.c:166 +#: ../glib/gdatetime.c:197 msgctxt "full month name" msgid "March" msgstr "Mars" -#: ../glib/gdatetime.c:168 +#: ../glib/gdatetime.c:199 msgctxt "full month name" msgid "April" msgstr "April" -#: ../glib/gdatetime.c:170 -#: ../glib/gdatetime.c:207 +#: ../glib/gdatetime.c:201 msgctxt "full month name" msgid "May" msgstr "Maj" -#: ../glib/gdatetime.c:172 +#: ../glib/gdatetime.c:203 msgctxt "full month name" msgid "June" msgstr "Juni" -#: ../glib/gdatetime.c:174 +#: ../glib/gdatetime.c:205 msgctxt "full month name" msgid "July" msgstr "Juli" -#: ../glib/gdatetime.c:176 +#: ../glib/gdatetime.c:207 msgctxt "full month name" msgid "August" msgstr "Augusti" -#: ../glib/gdatetime.c:178 +#: ../glib/gdatetime.c:209 msgctxt "full month name" msgid "September" msgstr "September" -#: ../glib/gdatetime.c:180 +#: ../glib/gdatetime.c:211 msgctxt "full month name" msgid "October" msgstr "Oktober" -#: ../glib/gdatetime.c:182 +#: ../glib/gdatetime.c:213 msgctxt "full month name" msgid "November" msgstr "November" -#: ../glib/gdatetime.c:184 +#: ../glib/gdatetime.c:215 msgctxt "full month name" msgid "December" msgstr "December" -#: ../glib/gdatetime.c:199 +#: ../glib/gdatetime.c:230 msgctxt "abbreviated month name" msgid "Jan" msgstr "Jan" -#: ../glib/gdatetime.c:201 +#: ../glib/gdatetime.c:232 msgctxt "abbreviated month name" msgid "Feb" msgstr "Feb" -#: ../glib/gdatetime.c:203 +#: ../glib/gdatetime.c:234 msgctxt "abbreviated month name" msgid "Mar" msgstr "Mar" -#: ../glib/gdatetime.c:205 +#: ../glib/gdatetime.c:236 msgctxt "abbreviated month name" msgid "Apr" msgstr "Apr" -#: ../glib/gdatetime.c:209 +#: ../glib/gdatetime.c:238 +msgctxt "abbreviated month name" +msgid "May" +msgstr "Maj" + +#: ../glib/gdatetime.c:240 msgctxt "abbreviated month name" msgid "Jun" msgstr "Jun" -#: ../glib/gdatetime.c:211 +#: ../glib/gdatetime.c:242 msgctxt "abbreviated month name" msgid "Jul" msgstr "Jul" -#: ../glib/gdatetime.c:213 +#: ../glib/gdatetime.c:244 msgctxt "abbreviated month name" msgid "Aug" msgstr "Aug" -#: ../glib/gdatetime.c:215 +#: ../glib/gdatetime.c:246 msgctxt "abbreviated month name" msgid "Sep" msgstr "Sep" -#: ../glib/gdatetime.c:217 +#: ../glib/gdatetime.c:248 msgctxt "abbreviated month name" msgid "Oct" msgstr "Okt" -#: ../glib/gdatetime.c:219 +#: ../glib/gdatetime.c:250 msgctxt "abbreviated month name" msgid "Nov" msgstr "Nov" -#: ../glib/gdatetime.c:221 +#: ../glib/gdatetime.c:252 msgctxt "abbreviated month name" msgid "Dec" msgstr "Dec" -#: ../glib/gdatetime.c:236 +#: ../glib/gdatetime.c:267 msgctxt "full weekday name" msgid "Monday" msgstr "Måndag" -#: ../glib/gdatetime.c:238 +#: ../glib/gdatetime.c:269 msgctxt "full weekday name" msgid "Tuesday" msgstr "Tisdag" -#: ../glib/gdatetime.c:240 +#: ../glib/gdatetime.c:271 msgctxt "full weekday name" msgid "Wednesday" msgstr "Onsdag" -#: ../glib/gdatetime.c:242 +#: ../glib/gdatetime.c:273 msgctxt "full weekday name" msgid "Thursday" msgstr "Torsdag" -#: ../glib/gdatetime.c:244 +#: ../glib/gdatetime.c:275 msgctxt "full weekday name" msgid "Friday" msgstr "Fredag" -#: ../glib/gdatetime.c:246 +#: ../glib/gdatetime.c:277 msgctxt "full weekday name" msgid "Saturday" msgstr "Lördag" -#: ../glib/gdatetime.c:248 +#: ../glib/gdatetime.c:279 msgctxt "full weekday name" msgid "Sunday" msgstr "Söndag" -#: ../glib/gdatetime.c:263 +#: ../glib/gdatetime.c:294 msgctxt "abbreviated weekday name" msgid "Mon" msgstr "Mån" -#: ../glib/gdatetime.c:265 +#: ../glib/gdatetime.c:296 msgctxt "abbreviated weekday name" msgid "Tue" msgstr "Tis" -#: ../glib/gdatetime.c:267 +#: ../glib/gdatetime.c:298 msgctxt "abbreviated weekday name" msgid "Wed" msgstr "Ons" -#: ../glib/gdatetime.c:269 +#: ../glib/gdatetime.c:300 msgctxt "abbreviated weekday name" msgid "Thu" msgstr "Tor" -#: ../glib/gdatetime.c:271 +#: ../glib/gdatetime.c:302 msgctxt "abbreviated weekday name" msgid "Fri" msgstr "Fre" -#: ../glib/gdatetime.c:273 +#: ../glib/gdatetime.c:304 msgctxt "abbreviated weekday name" msgid "Sat" msgstr "Lör" -#: ../glib/gdatetime.c:275 +#: ../glib/gdatetime.c:306 msgctxt "abbreviated weekday name" msgid "Sun" msgstr "Sön" -#: ../glib/gdir.c:114 -#: ../glib/gdir.c:137 +#: ../glib/gdir.c:115 +#: ../glib/gdir.c:138 #, c-format msgid "Error opening directory '%s': %s" msgstr "Fel vid öppning av katalogen \"%s\": %s" -#: ../glib/gfileutils.c:536 -#: ../glib/gfileutils.c:624 +#: ../glib/gfileutils.c:540 +#: ../glib/gfileutils.c:628 #, c-format msgid "Could not allocate %lu bytes to read file \"%s\"" msgstr "Kunde inte allokera %lu byte för att läsa filen \"%s\"" -#: ../glib/gfileutils.c:551 +#: ../glib/gfileutils.c:555 #, c-format msgid "Error reading file '%s': %s" msgstr "Fel vid läsning av filen \"%s\": %s" -#: ../glib/gfileutils.c:565 +#: ../glib/gfileutils.c:569 #, c-format msgid "File \"%s\" is too large" msgstr "Filen \"%s\" är för stor" -#: ../glib/gfileutils.c:648 +#: ../glib/gfileutils.c:652 #, c-format msgid "Failed to read from file '%s': %s" msgstr "Misslyckades med att läsa från filen \"%s\": %s" -#: ../glib/gfileutils.c:699 -#: ../glib/gfileutils.c:786 +#: ../glib/gfileutils.c:703 +#: ../glib/gfileutils.c:790 #, c-format msgid "Failed to open file '%s': %s" msgstr "Misslyckades med att öppna filen \"%s\": %s" -#: ../glib/gfileutils.c:716 +#: ../glib/gfileutils.c:720 #: ../glib/gmappedfile.c:169 #, c-format msgid "Failed to get attributes of file '%s': fstat() failed: %s" msgstr "Misslyckades med att få tag på attributen på filen \"%s\": fstat() misslyckades: %s" -#: ../glib/gfileutils.c:750 +#: ../glib/gfileutils.c:754 #, c-format msgid "Failed to open file '%s': fdopen() failed: %s" msgstr "Misslyckades med att öppna filen \"%s\": fdopen() misslyckades: %s" -#: ../glib/gfileutils.c:858 +#: ../glib/gfileutils.c:862 #, c-format msgid "Failed to rename file '%s' to '%s': g_rename() failed: %s" msgstr "Misslyckades med att byta namn på filen \"%s\" till \"%s\": g_rename() misslyckades: %s" -#: ../glib/gfileutils.c:900 -#: ../glib/gfileutils.c:1369 +#: ../glib/gfileutils.c:904 +#: ../glib/gfileutils.c:1388 #, c-format msgid "Failed to create file '%s': %s" msgstr "Misslyckades med att skapa filen \"%s\": %s" -#: ../glib/gfileutils.c:914 +#: ../glib/gfileutils.c:918 #, c-format msgid "Failed to open file '%s' for writing: fdopen() failed: %s" msgstr "Misslyckades med att öppna filen \"%s\" för skrivning: fdopen() misslyckades: %s" -#: ../glib/gfileutils.c:939 +#: ../glib/gfileutils.c:943 #, c-format msgid "Failed to write file '%s': fwrite() failed: %s" msgstr "Misslyckades med att skriva filen \"%s\": fwrite() misslyckades: %s" -#: ../glib/gfileutils.c:958 +#: ../glib/gfileutils.c:962 #, c-format msgid "Failed to write file '%s': fflush() failed: %s" msgstr "Misslyckades med att skriva filen \"%s\": fflush() misslyckades: %s" -#: ../glib/gfileutils.c:987 +#: ../glib/gfileutils.c:1005 #, c-format msgid "Failed to write file '%s': fsync() failed: %s" msgstr "Misslyckades med att skriva filen \"%s\": fsync() misslyckades: %s" -#: ../glib/gfileutils.c:1006 +#: ../glib/gfileutils.c:1025 #, c-format msgid "Failed to close file '%s': fclose() failed: %s" msgstr "Misslyckades med att stänga filen \"%s\": fclose() misslyckades: %s" -#: ../glib/gfileutils.c:1127 +#: ../glib/gfileutils.c:1146 #, c-format msgid "Existing file '%s' could not be removed: g_unlink() failed: %s" msgstr "Befintliga filen \"%s\" kunde inte tas bort: g_unlink() misslyckades: %s" -#: ../glib/gfileutils.c:1331 +#: ../glib/gfileutils.c:1350 #, c-format msgid "Template '%s' invalid, should not contain a '%s'" msgstr "Mallen \"%s\" är ogiltig, den får inte innehålla ett \"%s\"" -#: ../glib/gfileutils.c:1344 +#: ../glib/gfileutils.c:1363 #, c-format msgid "Template '%s' doesn't contain XXXXXX" msgstr "Mallen \"%s\" innehåller inte XXXXXX" -#: ../glib/gfileutils.c:1777 +#: ../glib/gfileutils.c:1796 #, c-format msgid "%u byte" msgid_plural "%u bytes" msgstr[0] "%u byte" msgstr[1] "%u byte" -#: ../glib/gfileutils.c:1785 +#: ../glib/gfileutils.c:1804 #, c-format msgid "%.1f KB" msgstr "%.1f KB" -#: ../glib/gfileutils.c:1790 +#: ../glib/gfileutils.c:1809 #, c-format msgid "%.1f MB" msgstr "%.1f MB" -#: ../glib/gfileutils.c:1795 +#: ../glib/gfileutils.c:1814 #, c-format msgid "%.1f GB" msgstr "%.1f GB" -#: ../glib/gfileutils.c:1800 +#: ../glib/gfileutils.c:1819 #, c-format msgid "%.1f TB" msgstr "%.1f TB" -#: ../glib/gfileutils.c:1805 +#: ../glib/gfileutils.c:1824 #, c-format msgid "%.1f PB" msgstr "%.1f PB" -#: ../glib/gfileutils.c:1810 +#: ../glib/gfileutils.c:1829 #, c-format msgid "%.1f EB" msgstr "%.1f EB" -#: ../glib/gfileutils.c:1853 +#: ../glib/gfileutils.c:1872 #, c-format msgid "Failed to read the symbolic link '%s': %s" msgstr "Misslyckades med att läsa den symboliska länken \"%s\": %s" -#: ../glib/gfileutils.c:1874 +#: ../glib/gfileutils.c:1893 msgid "Symbolic links not supported" msgstr "Symboliska länkar stöds inte" @@ -553,8 +562,8 @@ msgid "Can't do a raw read in g_io_channel_read_line_string" msgstr "Kan inte göra en rå läsning i g_io_channel_read_line_string" #: ../glib/giochannel.c:1799 -#: ../glib/giochannel.c:2057 -#: ../glib/giochannel.c:2144 +#: ../glib/giochannel.c:2056 +#: ../glib/giochannel.c:2143 msgid "Leftover unconverted data in read buffer" msgstr "Överbliven okonverterad data i läsbufferten" @@ -728,300 +737,300 @@ msgstr "Dokumentet tog oväntat slut inuti stängningstaggen för elementet \"%s msgid "Document ended unexpectedly inside a comment or processing instruction" msgstr "Dokumentet tog oväntat slut inuti en kommentar eller behandlingsinstruktion" -#: ../glib/gregex.c:184 +#: ../glib/gregex.c:188 msgid "corrupted object" msgstr "skadat objekt" -#: ../glib/gregex.c:186 +#: ../glib/gregex.c:190 msgid "internal error or corrupted object" msgstr "internt fel eller skadat objekt" -#: ../glib/gregex.c:188 +#: ../glib/gregex.c:192 msgid "out of memory" msgstr "slut på minne" -#: ../glib/gregex.c:193 +#: ../glib/gregex.c:197 msgid "backtracking limit reached" msgstr "bakåtspårningsgräns nådd" -#: ../glib/gregex.c:205 -#: ../glib/gregex.c:213 +#: ../glib/gregex.c:209 +#: ../glib/gregex.c:217 msgid "the pattern contains items not supported for partial matching" msgstr "mönstret innehåller objekt som inte stöds för delvis matchning" -#: ../glib/gregex.c:207 +#: ../glib/gregex.c:211 #: ../gio/glocalfile.c:2109 msgid "internal error" msgstr "internt fel" -#: ../glib/gregex.c:215 +#: ../glib/gregex.c:219 msgid "back references as conditions are not supported for partial matching" msgstr "bakreferenser som villkor stöds inte för delvis matchning" -#: ../glib/gregex.c:224 +#: ../glib/gregex.c:228 msgid "recursion limit reached" msgstr "rekursionsgräns nådd" -#: ../glib/gregex.c:226 +#: ../glib/gregex.c:230 msgid "workspace limit for empty substrings reached" msgstr "arbetsytans gräns för tomma understrängar nådd" -#: ../glib/gregex.c:228 +#: ../glib/gregex.c:232 msgid "invalid combination of newline flags" msgstr "ogiltig kombination av nyradsflaggor" -#: ../glib/gregex.c:232 +#: ../glib/gregex.c:236 msgid "unknown error" msgstr "okänt fel" -#: ../glib/gregex.c:252 +#: ../glib/gregex.c:256 msgid "\\ at end of pattern" msgstr "\\ på slutet av mönster" -#: ../glib/gregex.c:255 +#: ../glib/gregex.c:259 msgid "\\c at end of pattern" msgstr "\\c på slutet av mönster" -#: ../glib/gregex.c:258 +#: ../glib/gregex.c:262 msgid "unrecognized character follows \\" msgstr "okänt tecken efter \\" -#: ../glib/gregex.c:265 +#: ../glib/gregex.c:269 msgid "case-changing escapes (\\l, \\L, \\u, \\U) are not allowed here" msgstr "skiftlägesändrade escape-tecken (\\l, \\L, \\u, \\U) tillåts inte här" -#: ../glib/gregex.c:268 +#: ../glib/gregex.c:272 msgid "numbers out of order in {} quantifier" msgstr "tal är inte i ordning i {}-kvantifierare" -#: ../glib/gregex.c:271 +#: ../glib/gregex.c:275 msgid "number too big in {} quantifier" msgstr "tal för stort i {}-kvantifierare" -#: ../glib/gregex.c:274 +#: ../glib/gregex.c:278 msgid "missing terminating ] for character class" msgstr "saknar avslutande ] för teckenklass" -#: ../glib/gregex.c:277 +#: ../glib/gregex.c:281 msgid "invalid escape sequence in character class" msgstr "ogiltig escape-sekvens i teckenklass" -#: ../glib/gregex.c:280 +#: ../glib/gregex.c:284 msgid "range out of order in character class" msgstr "intervall är inte i ordning i teckenklass" -#: ../glib/gregex.c:283 +#: ../glib/gregex.c:287 msgid "nothing to repeat" msgstr "ingenting att upprepa" -#: ../glib/gregex.c:286 +#: ../glib/gregex.c:290 msgid "unrecognized character after (?" msgstr "okänt tecken efter (?" -#: ../glib/gregex.c:290 +#: ../glib/gregex.c:294 msgid "unrecognized character after (?<" msgstr "okänt tecken efter (?<" -#: ../glib/gregex.c:294 +#: ../glib/gregex.c:298 msgid "unrecognized character after (?P" msgstr "okänt tecken efter (?P" -#: ../glib/gregex.c:297 +#: ../glib/gregex.c:301 msgid "POSIX named classes are supported only within a class" msgstr "POSIX-namngivna klasser stöds endast inom en klass" -#: ../glib/gregex.c:300 +#: ../glib/gregex.c:304 msgid "missing terminating )" msgstr "saknar avslutande )" -#: ../glib/gregex.c:304 +#: ../glib/gregex.c:308 msgid ") without opening (" msgstr ") utan öppnande (" #. translators: '(?R' and '(?[+-]digits' are both meant as (groups of) #. * sequences here, '(?-54' would be an example for the second group. #. -#: ../glib/gregex.c:311 +#: ../glib/gregex.c:315 msgid "(?R or (?[+-]digits must be followed by )" msgstr "(?R eller (?[+-]siffror måste efterföljas av )" -#: ../glib/gregex.c:314 +#: ../glib/gregex.c:318 msgid "reference to non-existent subpattern" msgstr "referens till icke-existerande undermönster" -#: ../glib/gregex.c:317 +#: ../glib/gregex.c:321 msgid "missing ) after comment" msgstr "saknar ) efter kommentar" -#: ../glib/gregex.c:320 +#: ../glib/gregex.c:324 msgid "regular expression too large" msgstr "reguljärt uttryck för stort" -#: ../glib/gregex.c:323 +#: ../glib/gregex.c:327 msgid "failed to get memory" msgstr "misslyckades med att få minne" -#: ../glib/gregex.c:326 +#: ../glib/gregex.c:330 msgid "lookbehind assertion is not fixed length" msgstr "lookbehind-assertion är inte av fast längd" -#: ../glib/gregex.c:329 +#: ../glib/gregex.c:333 msgid "malformed number or name after (?(" msgstr "felformulerat tal eller namn efter (?(" -#: ../glib/gregex.c:332 +#: ../glib/gregex.c:336 msgid "conditional group contains more than two branches" msgstr "villkorsgrupp innehåller fler än två grenar" -#: ../glib/gregex.c:335 +#: ../glib/gregex.c:339 msgid "assertion expected after (?(" msgstr "assertion förväntades efter (?(" -#: ../glib/gregex.c:338 +#: ../glib/gregex.c:342 msgid "unknown POSIX class name" msgstr "okänt POSIX-klassnamn" -#: ../glib/gregex.c:341 +#: ../glib/gregex.c:345 msgid "POSIX collating elements are not supported" msgstr "POSIX-sorteringselement stöds inte" -#: ../glib/gregex.c:344 +#: ../glib/gregex.c:348 msgid "character value in \\x{...} sequence is too large" msgstr "teckenvärde i \\x{...}-sekvens är för stort" -#: ../glib/gregex.c:347 +#: ../glib/gregex.c:351 msgid "invalid condition (?(0)" msgstr "ogiltigt tillstånd (?(0)" -#: ../glib/gregex.c:350 +#: ../glib/gregex.c:354 msgid "\\C not allowed in lookbehind assertion" msgstr "\\C tillåts inte i lookbehind-assertion" -#: ../glib/gregex.c:353 +#: ../glib/gregex.c:357 msgid "recursive call could loop indefinitely" msgstr "rekursivt anrop kan gå in i en oändlig slinga" -#: ../glib/gregex.c:356 +#: ../glib/gregex.c:360 msgid "missing terminator in subpattern name" msgstr "saknar avslutstecken i undermönstrets namn" -#: ../glib/gregex.c:359 +#: ../glib/gregex.c:363 msgid "two named subpatterns have the same name" msgstr "två namngivna undermönster har samma namn" -#: ../glib/gregex.c:362 +#: ../glib/gregex.c:366 msgid "malformed \\P or \\p sequence" msgstr "felformulerad \\P eller \\p-sekvens" -#: ../glib/gregex.c:365 +#: ../glib/gregex.c:369 msgid "unknown property name after \\P or \\p" msgstr "okänt egenskapsnamn efter \\P eller \\p" -#: ../glib/gregex.c:368 +#: ../glib/gregex.c:372 msgid "subpattern name is too long (maximum 32 characters)" msgstr "undermönstrets namn är för långt (maximalt 32 tecken)" -#: ../glib/gregex.c:371 +#: ../glib/gregex.c:375 msgid "too many named subpatterns (maximum 10,000)" msgstr "för många namngivna undermönster (maximalt 10,000)" -#: ../glib/gregex.c:374 +#: ../glib/gregex.c:378 msgid "octal value is greater than \\377" msgstr "oktalt värde är större än \\377" -#: ../glib/gregex.c:377 +#: ../glib/gregex.c:381 msgid "DEFINE group contains more than one branch" msgstr "DEFINE-grupp innehåller fler än en gren" -#: ../glib/gregex.c:380 +#: ../glib/gregex.c:384 msgid "repeating a DEFINE group is not allowed" msgstr "upprepning av en DEFINE-grupp tillåts inte" -#: ../glib/gregex.c:383 +#: ../glib/gregex.c:387 msgid "inconsistent NEWLINE options" msgstr "inkonsistenta NEWLINE-flaggor" -#: ../glib/gregex.c:386 +#: ../glib/gregex.c:390 msgid "\\g is not followed by a braced name or an optionally braced non-zero number" msgstr "\\g följs inte av ett namn inom klamrar eller ett valfri (icke-noll) tal inom klamrar" -#: ../glib/gregex.c:391 +#: ../glib/gregex.c:395 msgid "unexpected repeat" msgstr "oväntad upprepning" -#: ../glib/gregex.c:395 +#: ../glib/gregex.c:399 msgid "code overflow" msgstr "överflöde i kod" -#: ../glib/gregex.c:399 +#: ../glib/gregex.c:403 msgid "overran compiling workspace" msgstr "fyllde över kompileringsutrymme" -#: ../glib/gregex.c:403 +#: ../glib/gregex.c:407 msgid "previously-checked referenced subpattern not found" msgstr "tidigare kontrollerad refererande undermönster hittades inte" -#: ../glib/gregex.c:575 -#: ../glib/gregex.c:1696 +#: ../glib/gregex.c:579 +#: ../glib/gregex.c:1700 #, c-format msgid "Error while matching regular expression %s: %s" msgstr "Fel vid matchning av reguljära uttrycket %s: %s" -#: ../glib/gregex.c:1151 +#: ../glib/gregex.c:1155 msgid "PCRE library is compiled without UTF8 support" msgstr "PCRE-biblioteket är byggt utan stöd för UTF8" -#: ../glib/gregex.c:1160 +#: ../glib/gregex.c:1164 msgid "PCRE library is compiled without UTF8 properties support" msgstr "PCRE-biblioteket är byggt utan stöd för UTF8-egenskaper" -#: ../glib/gregex.c:1214 +#: ../glib/gregex.c:1218 #, c-format msgid "Error while compiling regular expression %s at char %d: %s" msgstr "Fel vid kompilering av reguljära uttrycket %s vid tecknet %d: %s" -#: ../glib/gregex.c:1250 +#: ../glib/gregex.c:1254 #, c-format msgid "Error while optimizing regular expression %s: %s" msgstr "Fel vid optimering av reguljära uttrycket %s: %s" -#: ../glib/gregex.c:2124 +#: ../glib/gregex.c:2128 msgid "hexadecimal digit or '}' expected" msgstr "hexadecimal siffra eller \"}\" förväntades" -#: ../glib/gregex.c:2140 +#: ../glib/gregex.c:2144 msgid "hexadecimal digit expected" msgstr "hexadecimal siffra förväntades" -#: ../glib/gregex.c:2180 +#: ../glib/gregex.c:2184 msgid "missing '<' in symbolic reference" msgstr "saknar \"<\" i symbolisk referens" -#: ../glib/gregex.c:2189 +#: ../glib/gregex.c:2193 msgid "unfinished symbolic reference" msgstr "oavslutad symbolisk referens" -#: ../glib/gregex.c:2196 +#: ../glib/gregex.c:2200 msgid "zero-length symbolic reference" msgstr "symbolisk referens med noll-längd" -#: ../glib/gregex.c:2207 +#: ../glib/gregex.c:2211 msgid "digit expected" msgstr "siffra förväntades" -#: ../glib/gregex.c:2225 +#: ../glib/gregex.c:2229 msgid "illegal symbolic reference" msgstr "otillåten symbolisk referens" -#: ../glib/gregex.c:2287 +#: ../glib/gregex.c:2291 msgid "stray final '\\'" msgstr "felplacerad avslutande \"\\\"" -#: ../glib/gregex.c:2291 +#: ../glib/gregex.c:2295 msgid "unknown escape sequence" msgstr "okänd escape-sekvens" -#: ../glib/gregex.c:2301 +#: ../glib/gregex.c:2305 #, c-format msgid "Error while parsing replacement text \"%s\" at char %lu: %s" msgstr "Fel vid tolkning av ersättningstexten \"%s\" vid tecknet %lu: %s" @@ -1355,27 +1364,27 @@ msgstr "Värdet \"%s\" kan inte tolkas som ett booleskt värde." #: ../gio/ginputstream.c:185 #: ../gio/ginputstream.c:317 #: ../gio/ginputstream.c:556 -#: ../gio/ginputstream.c:681 -#: ../gio/goutputstream.c:197 -#: ../gio/goutputstream.c:724 +#: ../gio/ginputstream.c:680 +#: ../gio/goutputstream.c:198 +#: ../gio/goutputstream.c:726 #, c-format msgid "Too large count value passed to %s" msgstr "För stort räknevärde skickat till %s" #: ../gio/gbufferedinputstream.c:881 -#: ../gio/ginputstream.c:891 +#: ../gio/ginputstream.c:888 #: ../gio/giostream.c:306 -#: ../gio/goutputstream.c:1199 +#: ../gio/goutputstream.c:1197 msgid "Stream is already closed" msgstr "Strömmen är redan stängd" -#: ../gio/gcancellable.c:432 -#: ../gio/gdbusconnection.c:1549 -#: ../gio/gdbusconnection.c:1638 -#: ../gio/gdbusconnection.c:1820 +#: ../gio/gcancellable.c:433 +#: ../gio/gdbusconnection.c:1637 +#: ../gio/gdbusconnection.c:1726 +#: ../gio/gdbusconnection.c:1912 #: ../gio/glocalfile.c:2102 -#: ../gio/gsimpleasyncresult.c:755 -#: ../gio/gsimpleasyncresult.c:781 +#: ../gio/gsimpleasyncresult.c:810 +#: ../gio/gsimpleasyncresult.c:836 msgid "Operation was cancelled" msgstr "Åtgärden avbröts" @@ -1394,7 +1403,7 @@ msgid "Not enough space in destination" msgstr "Inte tillräckligt med utrymme i målet" #: ../gio/gcharsetconverter.c:447 -#: ../gio/gsocket.c:810 +#: ../gio/gsocket.c:832 msgid "Cancellable initialization not supported" msgstr "Avbrytningsbar initiering stöds inte" @@ -1421,7 +1430,7 @@ msgstr "GCredentials har inte implementerats för detta operativsystem" msgid "There is no GCredentials support for your platform" msgstr "Det finns inget stöd för GCredentials för din plattform" -#: ../gio/gdatainputstream.c:310 +#: ../gio/gdatainputstream.c:311 msgid "Unexpected early end-of-stream" msgstr "Oväntat tidig end-of-stream" @@ -1519,46 +1528,46 @@ msgstr "Fel vid läsning av filen \"%s\": %s" msgid "Error writing contents of nonce file `%s' to stream:" msgstr "Fel vid skrivning till fil: %s" -#: ../gio/gdbusaddress.c:942 +#: ../gio/gdbusaddress.c:939 msgid "The given address is empty" msgstr "Angivna adressen är tom" -#: ../gio/gdbusaddress.c:1011 +#: ../gio/gdbusaddress.c:1008 msgid "Cannot spawn a message bus without a machine-id: " msgstr "" -#: ../gio/gdbusaddress.c:1048 +#: ../gio/gdbusaddress.c:1045 #, fuzzy, c-format msgid "Error spawning command line `%s': " msgstr "Fel vid läsning av filen \"%s\": %s" -#: ../gio/gdbusaddress.c:1059 +#: ../gio/gdbusaddress.c:1056 #, c-format msgid "Abnormal program termination spawning command line `%s': %s" msgstr "Onormal programterminering startar kommandoraden \"%s\": %s" -#: ../gio/gdbusaddress.c:1073 +#: ../gio/gdbusaddress.c:1070 #, c-format msgid "Command line `%s' exited with non-zero exit status %d: %s" msgstr "Kommandoraden \"%s\" avslutades med icke-noll-status %d: %s" -#: ../gio/gdbusaddress.c:1146 +#: ../gio/gdbusaddress.c:1143 #, c-format msgid "Cannot determine session bus address (not implemented for this OS)" msgstr "" -#: ../gio/gdbusaddress.c:1245 -#: ../gio/gdbusconnection.c:6013 +#: ../gio/gdbusaddress.c:1242 +#: ../gio/gdbusconnection.c:6168 #, c-format msgid "Cannot determine bus address from DBUS_STARTER_BUS_TYPE environment variable - unknown value `%s'" msgstr "" -#: ../gio/gdbusaddress.c:1254 -#: ../gio/gdbusconnection.c:6022 +#: ../gio/gdbusaddress.c:1251 +#: ../gio/gdbusconnection.c:6177 msgid "Cannot determine bus address because the DBUS_STARTER_BUS_TYPE environment variable is not set" msgstr "" -#: ../gio/gdbusaddress.c:1264 +#: ../gio/gdbusaddress.c:1261 #, c-format msgid "Unknown bus type %d" msgstr "Okänd busstyp %d" @@ -1653,89 +1662,89 @@ msgstr "Fel vid öppning av nyckelringen \"%s\" för skrivning: " msgid "(Additionally, releasing the lock for `%s' also failed: %s) " msgstr "" -#: ../gio/gdbusconnection.c:1058 -#: ../gio/gdbusconnection.c:1287 -#: ../gio/gdbusconnection.c:1326 -#: ../gio/gdbusconnection.c:1649 +#: ../gio/gdbusconnection.c:1148 +#: ../gio/gdbusconnection.c:1374 +#: ../gio/gdbusconnection.c:1413 +#: ../gio/gdbusconnection.c:1737 msgid "The connection is closed" msgstr "Anslutningen är stängd" -#: ../gio/gdbusconnection.c:1593 +#: ../gio/gdbusconnection.c:1681 msgid "Timeout was reached" msgstr "Tidsgränsen uppnåddes" -#: ../gio/gdbusconnection.c:2170 +#: ../gio/gdbusconnection.c:2300 msgid "Unsupported flags encountered when constructing a client-side connection" msgstr "" -#: ../gio/gdbusconnection.c:3596 -#: ../gio/gdbusconnection.c:3914 +#: ../gio/gdbusconnection.c:3752 +#: ../gio/gdbusconnection.c:4070 #, c-format msgid "No such interface `org.freedesktop.DBus.Properties' on object at path %s" msgstr "" -#: ../gio/gdbusconnection.c:3668 +#: ../gio/gdbusconnection.c:3824 #, c-format msgid "Error setting property `%s': Expected type `%s' but got `%s'" msgstr "" -#: ../gio/gdbusconnection.c:3763 +#: ../gio/gdbusconnection.c:3919 #, c-format msgid "No such property `%s'" msgstr "Ingen sådan egenskap \"%s\"" -#: ../gio/gdbusconnection.c:3775 +#: ../gio/gdbusconnection.c:3931 #, c-format msgid "Property `%s' is not readable" msgstr "Egenskapen \"%s\" är inte läsbar" -#: ../gio/gdbusconnection.c:3786 +#: ../gio/gdbusconnection.c:3942 #, c-format msgid "Property `%s' is not writable" msgstr "Egenskapen \"%s\" är inte skrivbar" -#: ../gio/gdbusconnection.c:3856 -#: ../gio/gdbusconnection.c:5447 +#: ../gio/gdbusconnection.c:4012 +#: ../gio/gdbusconnection.c:5602 #, c-format msgid "No such interface `%s'" msgstr "Inget sådan gränssnitt \"%s\"" -#: ../gio/gdbusconnection.c:4044 +#: ../gio/gdbusconnection.c:4200 msgid "No such interface" msgstr "Inget sådant gränssnitt" -#: ../gio/gdbusconnection.c:4260 -#: ../gio/gdbusconnection.c:5963 +#: ../gio/gdbusconnection.c:4416 +#: ../gio/gdbusconnection.c:6118 #, c-format msgid "No such interface `%s' on object at path %s" msgstr "" -#: ../gio/gdbusconnection.c:4312 +#: ../gio/gdbusconnection.c:4468 #, c-format msgid "No such method `%s'" msgstr "Ingen sådan metod \"%s\"" -#: ../gio/gdbusconnection.c:4343 +#: ../gio/gdbusconnection.c:4499 #, c-format msgid "Type of message, `%s', does not match expected type `%s'" msgstr "" -#: ../gio/gdbusconnection.c:4562 +#: ../gio/gdbusconnection.c:4718 #, c-format msgid "An object is already exported for the interface %s at %s" msgstr "" -#: ../gio/gdbusconnection.c:4756 +#: ../gio/gdbusconnection.c:4912 #, c-format msgid "Method `%s' returned type `%s', but expected `%s'" -msgstr "" +msgstr "Metoden \"%s\" returnerade typen \"%s\", men förväntade \"%s\"" -#: ../gio/gdbusconnection.c:5558 +#: ../gio/gdbusconnection.c:5713 #, c-format msgid "Method `%s' on interface `%s' with signature `%s' does not exist" -msgstr "" +msgstr "Metoden \"%s\" på gränssnittet \"%s\" med signaturen \"%s\" finns inte" -#: ../gio/gdbusconnection.c:5676 +#: ../gio/gdbusconnection.c:5831 #, c-format msgid "A subtree is already exported for %s" msgstr "Ett underträd har redan exporterats för %s" @@ -1881,13 +1890,13 @@ msgid "Type of return value is incorrect, got `%s', expected `%s'" msgstr "" #: ../gio/gdbusmethodinvocation.c:406 -#: ../gio/gsocket.c:2974 -#: ../gio/gsocket.c:3055 +#: ../gio/gsocket.c:3023 +#: ../gio/gsocket.c:3104 #, c-format msgid "Error sending message: %s" msgstr "Fel vid sändning av meddelande: %s" -#: ../gio/gdbusprivate.c:1766 +#: ../gio/gdbusprivate.c:1768 msgid "Unable to load /var/lib/dbus/machine-id: " msgstr "Kunde inte läsa in /var/lib/dbus/machine-id: " @@ -1896,18 +1905,18 @@ msgstr "Kunde inte läsa in /var/lib/dbus/machine-id: " msgid "Trying to set property %s of type %s but according to the expected interface the type is %s" msgstr "" -#: ../gio/gdbusproxy.c:1235 +#: ../gio/gdbusproxy.c:1234 #, c-format msgid "Error calling StartServiceByName for %s: " msgstr "" -#: ../gio/gdbusproxy.c:1256 +#: ../gio/gdbusproxy.c:1255 #, c-format msgid "Unexpected reply %d from StartServiceByName(\"%s\") method" msgstr "" -#: ../gio/gdbusproxy.c:2315 -#: ../gio/gdbusproxy.c:2472 +#: ../gio/gdbusproxy.c:2311 +#: ../gio/gdbusproxy.c:2469 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" msgstr "" @@ -1936,7 +1945,6 @@ msgid "Cannot listen on unsupported transport `%s'" msgstr "Kan inte lyssna på transport som inte stöds \"%s\"" #: ../gio/gdbus-tool.c:87 -#: ../gio/gsettings-tool.c:76 msgid "COMMAND" msgstr "KOMMANDO" @@ -2108,35 +2116,35 @@ msgstr "Objektsökväg att övervaka" msgid "Monitor a remote object." msgstr "Övervaka ett fjärrobjekt." -#: ../gio/gdesktopappinfo.c:467 +#: ../gio/gdesktopappinfo.c:480 #: ../gio/gwin32appinfo.c:221 msgid "Unnamed" msgstr "Namnlös" -#: ../gio/gdesktopappinfo.c:751 +#: ../gio/gdesktopappinfo.c:764 msgid "Desktop file didn't specify Exec field" msgstr "Skrivbordsfilen angav inget Exec-fält" -#: ../gio/gdesktopappinfo.c:944 +#: ../gio/gdesktopappinfo.c:957 msgid "Unable to find terminal required for application" msgstr "Kunde inte hitta terminal som krävs för programmet" -#: ../gio/gdesktopappinfo.c:1153 +#: ../gio/gdesktopappinfo.c:1166 #, c-format msgid "Can't create user application configuration folder %s: %s" msgstr "Kan inte skapa programkonfigurationsmapp för användare %s: %s" -#: ../gio/gdesktopappinfo.c:1157 +#: ../gio/gdesktopappinfo.c:1170 #, c-format msgid "Can't create user MIME configuration folder %s: %s" msgstr "Kan inte skapa MIME-konfigurationsmapp för användare %s: %s" -#: ../gio/gdesktopappinfo.c:1565 +#: ../gio/gdesktopappinfo.c:1663 #, c-format msgid "Can't create user desktop file %s" msgstr "Kan inte skapa skrivbordsfil för användare %s" -#: ../gio/gdesktopappinfo.c:1679 +#: ../gio/gdesktopappinfo.c:1779 #, c-format msgid "Custom definition for %s" msgstr "Anpassad definition för %s" @@ -2174,47 +2182,47 @@ msgstr "Kan inte hantera version %d av GEmblem-kodning" msgid "Malformed number of tokens (%d) in GEmblem encoding" msgstr "Felformaterat antal token (%d) i GEmblem-kodning" -#: ../gio/gemblemedicon.c:292 +#: ../gio/gemblemedicon.c:368 #, c-format msgid "Can't handle version %d of GEmblemedIcon encoding" msgstr "Kan inte hantera version %d av GEmblemedIcon-kodning" -#: ../gio/gemblemedicon.c:302 +#: ../gio/gemblemedicon.c:378 #, c-format msgid "Malformed number of tokens (%d) in GEmblemedIcon encoding" msgstr "Felformaterat antal token (%d) i GEmblemedIcon-kodning" -#: ../gio/gemblemedicon.c:325 +#: ../gio/gemblemedicon.c:401 msgid "Expected a GEmblem for GEmblemedIcon" msgstr "Förväntade en GEmblem för GEmblemedIcon" -#: ../gio/gfile.c:870 -#: ../gio/gfile.c:1100 -#: ../gio/gfile.c:1235 -#: ../gio/gfile.c:1471 -#: ../gio/gfile.c:1525 -#: ../gio/gfile.c:1582 -#: ../gio/gfile.c:1665 -#: ../gio/gfile.c:1720 -#: ../gio/gfile.c:1780 -#: ../gio/gfile.c:1834 -#: ../gio/gfile.c:3304 -#: ../gio/gfile.c:3358 -#: ../gio/gfile.c:3490 -#: ../gio/gfile.c:3530 -#: ../gio/gfile.c:3857 -#: ../gio/gfile.c:4259 -#: ../gio/gfile.c:4345 -#: ../gio/gfile.c:4434 -#: ../gio/gfile.c:4532 -#: ../gio/gfile.c:4619 -#: ../gio/gfile.c:4712 -#: ../gio/gfile.c:5042 -#: ../gio/gfile.c:5322 -#: ../gio/gfile.c:5391 -#: ../gio/gfile.c:6983 -#: ../gio/gfile.c:7073 -#: ../gio/gfile.c:7159 +#: ../gio/gfile.c:872 +#: ../gio/gfile.c:1103 +#: ../gio/gfile.c:1238 +#: ../gio/gfile.c:1475 +#: ../gio/gfile.c:1529 +#: ../gio/gfile.c:1586 +#: ../gio/gfile.c:1669 +#: ../gio/gfile.c:1724 +#: ../gio/gfile.c:1784 +#: ../gio/gfile.c:1838 +#: ../gio/gfile.c:3308 +#: ../gio/gfile.c:3362 +#: ../gio/gfile.c:3494 +#: ../gio/gfile.c:3535 +#: ../gio/gfile.c:3862 +#: ../gio/gfile.c:4264 +#: ../gio/gfile.c:4350 +#: ../gio/gfile.c:4439 +#: ../gio/gfile.c:4537 +#: ../gio/gfile.c:4624 +#: ../gio/gfile.c:4718 +#: ../gio/gfile.c:5039 +#: ../gio/gfile.c:5306 +#: ../gio/gfile.c:5371 +#: ../gio/gfile.c:6945 +#: ../gio/gfile.c:7035 +#: ../gio/gfile.c:7121 #: ../gio/win32/gwinhttpfile.c:439 msgid "Operation not supported" msgstr "Åtgärden stöds inte" @@ -2227,63 +2235,63 @@ msgstr "Åtgärden stöds inte" #. Translators: This is an error message when trying to find #. * the enclosing (user visible) mount of a file, but none #. * exists. -#: ../gio/gfile.c:1356 +#: ../gio/gfile.c:1359 #: ../gio/glocalfile.c:1059 #: ../gio/glocalfile.c:1070 #: ../gio/glocalfile.c:1083 msgid "Containing mount does not exist" msgstr "Infattande montering finns inte" -#: ../gio/gfile.c:2408 +#: ../gio/gfile.c:2412 #: ../gio/glocalfile.c:2258 msgid "Can't copy over directory" msgstr "Kan inte kopiera över katalog" -#: ../gio/gfile.c:2469 +#: ../gio/gfile.c:2473 msgid "Can't copy directory over directory" msgstr "Kan inte kopiera katalog över katalog" -#: ../gio/gfile.c:2477 +#: ../gio/gfile.c:2481 #: ../gio/glocalfile.c:2267 msgid "Target file exists" msgstr "Målfilen finns" -#: ../gio/gfile.c:2495 +#: ../gio/gfile.c:2499 msgid "Can't recursively copy directory" msgstr "Kan inte kopiera katalogen rekursivt" -#: ../gio/gfile.c:2755 +#: ../gio/gfile.c:2759 msgid "Splice not supported" msgstr "Splice stöds inte" -#: ../gio/gfile.c:2759 +#: ../gio/gfile.c:2763 #, c-format msgid "Error splicing file: %s" msgstr "Fel vid splice av fil: %s" -#: ../gio/gfile.c:2906 +#: ../gio/gfile.c:2910 msgid "Can't copy special file" msgstr "Kan inte kopiera specialfil" -#: ../gio/gfile.c:3480 +#: ../gio/gfile.c:3484 msgid "Invalid symlink value given" msgstr "Ogiltigt värde för symbolisk länk angivet" -#: ../gio/gfile.c:3573 +#: ../gio/gfile.c:3578 msgid "Trash not supported" msgstr "Papperskorgen stöds inte" -#: ../gio/gfile.c:3622 +#: ../gio/gfile.c:3627 #, c-format msgid "File names cannot contain '%c'" msgstr "Filnamn får inte innehålla \"%c\"" -#: ../gio/gfile.c:6040 -#: ../gio/gvolume.c:330 +#: ../gio/gfile.c:6004 +#: ../gio/gvolume.c:332 msgid "volume doesn't implement mount" msgstr "volymen har inte implementerat montering" -#: ../gio/gfile.c:6151 +#: ../gio/gfile.c:6115 msgid "No application is registered as handling this file" msgstr "Inget program är registrerat för hantering av denna fil" @@ -2313,59 +2321,59 @@ msgid "Malformed input data for GFileIcon" msgstr "Felformaterad inmatningsdata för GFileIcon" #: ../gio/gfileinputstream.c:154 -#: ../gio/gfileinputstream.c:421 +#: ../gio/gfileinputstream.c:420 #: ../gio/gfileiostream.c:170 #: ../gio/gfileoutputstream.c:169 -#: ../gio/gfileoutputstream.c:524 +#: ../gio/gfileoutputstream.c:523 msgid "Stream doesn't support query_info" msgstr "Strömmen saknar stöd för query_info" -#: ../gio/gfileinputstream.c:336 -#: ../gio/gfileiostream.c:388 -#: ../gio/gfileoutputstream.c:382 +#: ../gio/gfileinputstream.c:335 +#: ../gio/gfileiostream.c:387 +#: ../gio/gfileoutputstream.c:381 msgid "Seek not supported on stream" msgstr "Sökning stöds inte på strömmen" -#: ../gio/gfileinputstream.c:380 +#: ../gio/gfileinputstream.c:379 msgid "Truncate not allowed on input stream" msgstr "Kapning tillåts inte på inmatningsströmmen" -#: ../gio/gfileiostream.c:464 -#: ../gio/gfileoutputstream.c:458 +#: ../gio/gfileiostream.c:463 +#: ../gio/gfileoutputstream.c:457 msgid "Truncate not supported on stream" msgstr "Kapning stöds inte på strömmen" -#: ../gio/gicon.c:285 +#: ../gio/gicon.c:287 #, c-format msgid "Wrong number of tokens (%d)" msgstr "Fel antal token (%d)" -#: ../gio/gicon.c:305 +#: ../gio/gicon.c:307 #, c-format msgid "No type for class name %s" msgstr "Ingen typ för klassnamnet %s" -#: ../gio/gicon.c:315 +#: ../gio/gicon.c:317 #, c-format msgid "Type %s does not implement the GIcon interface" msgstr "Typen %s implementerar inte GIcon-gränssnittet" -#: ../gio/gicon.c:326 +#: ../gio/gicon.c:328 #, c-format msgid "Type %s is not classed" msgstr "Typen %s är inte klassad" -#: ../gio/gicon.c:340 +#: ../gio/gicon.c:342 #, c-format msgid "Malformed version number: %s" msgstr "Felformaterat versionsnummer: %s" -#: ../gio/gicon.c:354 +#: ../gio/gicon.c:356 #, c-format msgid "Type %s does not implement from_tokens() on the GIcon interface" msgstr "Typen %s implementerar inte from_tokens() på GIcon-gränssnittet" -#: ../gio/gicon.c:430 +#: ../gio/gicon.c:432 msgid "Can't handle the supplied version the icon encoding" msgstr "Kan inte hantera angiven version för ikonkodningen" @@ -2379,9 +2387,9 @@ msgstr "Inmatningsströmmen har inte implementerat läsning" #. 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:901 +#: ../gio/ginputstream.c:898 #: ../gio/giostream.c:316 -#: ../gio/goutputstream.c:1209 +#: ../gio/goutputstream.c:1207 msgid "Stream has outstanding operation" msgstr "Strömmen har kvarstående åtgärd" @@ -2395,6 +2403,257 @@ msgstr "Inte tillräckligt med utrymme för uttagsadress" msgid "Unsupported socket address" msgstr "Uttagsadressen stöds inte" +#: ../gio/glib-compile-schemas.c:713 +msgid "empty names are not permitted" +msgstr "tomma namn tillåts inte" + +#: ../gio/glib-compile-schemas.c:723 +#, c-format +msgid "invalid name '%s': names must begin with a lowercase letter" +msgstr "ogiltigt namn \"%s\": namn måste börja med en liten bokstav" + +#: ../gio/glib-compile-schemas.c:735 +#, c-format +msgid "invalid name '%s': invalid character '%c'; only lowercase letters, numbers and dash ('-') are permitted." +msgstr "" + +#: ../gio/glib-compile-schemas.c:744 +#, c-format +msgid "invalid name '%s': two successive dashes ('--') are not permitted." +msgstr "" + +#: ../gio/glib-compile-schemas.c:753 +#, c-format +msgid "invalid name '%s': the last character may not be a dash ('-')." +msgstr "" + +#: ../gio/glib-compile-schemas.c:761 +#, c-format +msgid "invalid name '%s': maximum length is 32" +msgstr "ogiltigt namn \"%s\": maximal längd är 32" + +#: ../gio/glib-compile-schemas.c:830 +#, c-format +msgid " already specified" +msgstr " redan angiven" + +#: ../gio/glib-compile-schemas.c:856 +msgid "can not add keys to a 'list-of' schema" +msgstr "" + +#: ../gio/glib-compile-schemas.c:867 +#, c-format +msgid " already specified" +msgstr " redan angiven" + +#: ../gio/glib-compile-schemas.c:885 +#, c-format +msgid " shadows in ; use to modify value" +msgstr " skuggar i ; använd för att ändra värdet" + +#: ../gio/glib-compile-schemas.c:896 +#, c-format +msgid "exactly one of 'type', 'enum' or 'flags' must be specified as an attribute to " +msgstr "" + +#: ../gio/glib-compile-schemas.c:915 +#, c-format +msgid "<%s id='%s'> not (yet) defined." +msgstr "<%s id='%s'> inte (ännu) angiven." + +#: ../gio/glib-compile-schemas.c:930 +#, c-format +msgid "invalid GVariant type string '%s'" +msgstr "ogiltig GVariant-typsträng \"%s\"" + +#: ../gio/glib-compile-schemas.c:960 +msgid " given but schema isn't extending anything" +msgstr "" + +#: ../gio/glib-compile-schemas.c:973 +#, c-format +msgid "no to override" +msgstr "ingen att åsidosätta" + +#: ../gio/glib-compile-schemas.c:981 +#, c-format +msgid " already specified" +msgstr " redan angiven" + +#: ../gio/glib-compile-schemas.c:1052 +#, c-format +msgid " already specified" +msgstr " redan angiven" + +#: ../gio/glib-compile-schemas.c:1064 +#, c-format +msgid " extends not yet existing schema '%s'" +msgstr "" + +#: ../gio/glib-compile-schemas.c:1080 +#, c-format +msgid " is list of not yet existing schema '%s'" +msgstr "" + +#: ../gio/glib-compile-schemas.c:1088 +#, c-format +msgid "Can not be a list of a schema with a path" +msgstr "Kan inte vara en lista för ett schema med en sökväg" + +#: ../gio/glib-compile-schemas.c:1098 +#, c-format +msgid "Can not extend a schema with a path" +msgstr "Kan inte utöka ett schema med en sökväg" + +#: ../gio/glib-compile-schemas.c:1108 +#, c-format +msgid " is a list, extending which is not a list" +msgstr "" + +#: ../gio/glib-compile-schemas.c:1118 +#, c-format +msgid " extends but '%s' does not extend '%s'" +msgstr " utökar men \"%s\" utökar inte \"%s\"" + +#: ../gio/glib-compile-schemas.c:1135 +#, c-format +msgid "a path, if given, must begin and end with a slash" +msgstr "en sökväg, om angiven, måste börja och sluta med ett snedstreck" + +#: ../gio/glib-compile-schemas.c:1142 +#, c-format +msgid "the path of a list must end with ':/'" +msgstr "sökvägen för en lista måste sluta med \":/\"" + +#: ../gio/glib-compile-schemas.c:1168 +#, c-format +msgid "<%s id='%s'> already specified" +msgstr "<%s id='%s'> redan angiven" + +#: ../gio/glib-compile-schemas.c:1387 +#, c-format +msgid "Element <%s> not allowed inside <%s>" +msgstr "Elementet <%s> tillåts inte inuti <%s>" + +#: ../gio/glib-compile-schemas.c:1391 +#, c-format +msgid "Element <%s> not allowed at toplevel" +msgstr "Elementet <%s> tillåts inte på toppnivå" + +#: ../gio/glib-compile-schemas.c:1485 +#, c-format +msgid "text may not appear inside <%s>" +msgstr "text får inte vara inuti <%s>" + +#. Translators: Do not translate "--strict". +#: ../gio/glib-compile-schemas.c:1654 +#: ../gio/glib-compile-schemas.c:1725 +#: ../gio/glib-compile-schemas.c:1801 +#, c-format +msgid "--strict was specified; exiting.\n" +msgstr "--strict angavs; avslutar.\n" + +#: ../gio/glib-compile-schemas.c:1662 +#, c-format +msgid "This entire file has been ignored.\n" +msgstr "Hela denna filen har ignorerats.\n" + +#: ../gio/glib-compile-schemas.c:1721 +#, c-format +msgid "Ignoring this file.\n" +msgstr "Ignorerar denna fil.\n" + +#: ../gio/glib-compile-schemas.c:1761 +#, c-format +msgid "No such key `%s' in schema `%s' as specified in override file `%s'" +msgstr "" + +#: ../gio/glib-compile-schemas.c:1767 +#: ../gio/glib-compile-schemas.c:1825 +#: ../gio/glib-compile-schemas.c:1853 +#, c-format +msgid "; ignoring override for this key.\n" +msgstr "" + +#: ../gio/glib-compile-schemas.c:1771 +#: ../gio/glib-compile-schemas.c:1829 +#: ../gio/glib-compile-schemas.c:1857 +#, c-format +msgid " and --strict was specified; exiting.\n" +msgstr " och --strict angavs; avslutar.\n" + +#: ../gio/glib-compile-schemas.c:1787 +#, c-format +msgid "error parsing key `%s' in schema `%s' as specified in override file `%s': %s. " +msgstr "" + +#: ../gio/glib-compile-schemas.c:1797 +#, c-format +msgid "Ignoring override for this key.\n" +msgstr "" + +#: ../gio/glib-compile-schemas.c:1815 +#, c-format +msgid "override for key `%s' in schema `%s' in override file `%s' is out of the range given in the schema" +msgstr "" + +#: ../gio/glib-compile-schemas.c:1843 +#, c-format +msgid "override for key `%s' in schema `%s' in override file `%s' is not in the list of valid choices" +msgstr "" + +#: ../gio/glib-compile-schemas.c:1897 +msgid "where to store the gschemas.compiled file" +msgstr "var filen gschemas.compiled ska lagras" + +#: ../gio/glib-compile-schemas.c:1897 +#: ../gio/glib-compile-schemas.c:1910 +msgid "DIRECTORY" +msgstr "KATALOG" + +#: ../gio/glib-compile-schemas.c:1898 +msgid "Abort on any errors in schemas" +msgstr "Avbryt vid alla möjliga fel i scheman" + +#: ../gio/glib-compile-schemas.c:1899 +msgid "Do not write the gschema.compiled file" +msgstr "Skriv inte filen gschema.compiled" + +#: ../gio/glib-compile-schemas.c:1900 +msgid "This option will be removed soon." +msgstr "Denna flagga kommer snart att försvinna." + +#: ../gio/glib-compile-schemas.c:1901 +msgid "Do not enforce key name restrictions" +msgstr "" + +#: ../gio/glib-compile-schemas.c:1913 +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:1929 +#, c-format +msgid "You should give exactly one directory name\n" +msgstr "Du bör ange exakt ett katalognamn\n" + +#: ../gio/glib-compile-schemas.c:1968 +#, c-format +msgid "No schema files found: " +msgstr "Inga schemafiler hittades: " + +#: ../gio/glib-compile-schemas.c:1971 +#, c-format +msgid "doing nothing.\n" +msgstr "gör ingenting.\n" + +#: ../gio/glib-compile-schemas.c:1974 +#, c-format +msgid "removed existing output file.\n" +msgstr "" + #: ../gio/glocaldirectorymonitor.c:287 msgid "Unable to find default local directory monitor type" msgstr "Kunde inte hitta standardtyp för lokal katalogövervakare" @@ -2790,260 +3049,357 @@ msgstr "mount har inte implementerat synkron estimering av innehållstyp" msgid "Hostname '%s' contains '[' but not ']'" msgstr "Värdnamnet \"%s\" innehåller \"[\" men inte \"]\"" -#: ../gio/goutputstream.c:206 -#: ../gio/goutputstream.c:407 +#: ../gio/goutputstream.c:207 +#: ../gio/goutputstream.c:408 msgid "Output stream doesn't implement write" msgstr "Utmatningsström har inte implementerat skrivning" -#: ../gio/goutputstream.c:368 -#: ../gio/goutputstream.c:848 +#: ../gio/goutputstream.c:369 +#: ../gio/goutputstream.c:849 msgid "Source stream is already closed" msgstr "Källströmmen är redan stängd" -#: ../gio/gresolver.c:735 +#: ../gio/gresolver.c:737 #, c-format msgid "Error resolving '%s': %s" msgstr "Fel vid uppslag av \"%s\": %s" -#: ../gio/gresolver.c:785 +#: ../gio/gresolver.c:787 #, c-format msgid "Error reverse-resolving '%s': %s" msgstr "Fel vid omvänt uppslag av \"%s\": %s" -#: ../gio/gresolver.c:820 -#: ../gio/gresolver.c:898 +#: ../gio/gresolver.c:822 +#: ../gio/gresolver.c:900 #, c-format msgid "No service record for '%s'" msgstr "Ingen tjänstepost för \"%s\"" -#: ../gio/gresolver.c:825 -#: ../gio/gresolver.c:903 +#: ../gio/gresolver.c:827 +#: ../gio/gresolver.c:905 #, c-format msgid "Temporarily unable to resolve '%s'" msgstr "Kan för tillfället inte slå upp \"%s\"" -#: ../gio/gresolver.c:830 -#: ../gio/gresolver.c:908 +#: ../gio/gresolver.c:832 +#: ../gio/gresolver.c:910 #, c-format msgid "Error resolving '%s'" msgstr "Fel vid uppslag av \"%s\"" -#: ../gio/gsettings-tool.c:79 +#: ../gio/gsettings-tool.c:60 +#, c-format +msgid "Schema '%s' is not relocatable (path must not be specified)\n" +msgstr "" + +#: ../gio/gsettings-tool.c:65 +#: ../gio/gsettings-tool.c:82 +#, c-format +msgid "No such schema '%s'\n" +msgstr "Inget sådant schema \"%s\"\n" + +#: ../gio/gsettings-tool.c:77 +#, c-format +msgid "Schema '%s' is relocatable (path must be specified)\n" +msgstr "" + +#: ../gio/gsettings-tool.c:92 +#, c-format +msgid "Empty path given.\n" +msgstr "Tom sökväg angavs.\n" + +#: ../gio/gsettings-tool.c:98 +#, fuzzy, c-format +msgid "Path must begin with a slash (/)\n" +msgstr "en sökväg, om angiven, måste börja och sluta med ett snedstreck" + +#: ../gio/gsettings-tool.c:104 +#, fuzzy, c-format +msgid "Path must end with a slash (/)\n" +msgstr "en sökväg, om angiven, måste börja och sluta med ett snedstreck" + +#: ../gio/gsettings-tool.c:110 +#, c-format +msgid "Path must not contain two adjacent slashes (//)\n" +msgstr "" + +#: ../gio/gsettings-tool.c:131 +#, c-format +msgid "No such key '%s'\n" +msgstr "Ingen sådan nyckel \"%s\"\n" + +#: ../gio/gsettings-tool.c:429 +#, c-format +msgid "The provided value is outside of the valid range\n" +msgstr "" + +#: ../gio/gsettings-tool.c:458 +msgid "List the installed (non-relocatable) schemas" +msgstr "" + +#: ../gio/gsettings-tool.c:464 +msgid "List the installed relocatable schemas" +msgstr "" + +#: ../gio/gsettings-tool.c:470 +msgid "Lists the keys in SCHEMA" +msgstr "Listar nycklarna i SCHEMA" + +#: ../gio/gsettings-tool.c:471 +#: ../gio/gsettings-tool.c:477 +#: ../gio/gsettings-tool.c:483 +msgid "SCHEMA[:PATH]" +msgstr "SCHEMA[:SÖKVÄG]" + +#: ../gio/gsettings-tool.c:476 +msgid "Lists the children of SCHEMA" +msgstr "" + +#: ../gio/gsettings-tool.c:482 +msgid "List keys and values, recursively" +msgstr "" + +#: ../gio/gsettings-tool.c:488 +msgid "Gets the value of KEY" +msgstr "Hämtar värdet för NYCKEL" + +#: ../gio/gsettings-tool.c:489 +#: ../gio/gsettings-tool.c:495 +#: ../gio/gsettings-tool.c:507 +#: ../gio/gsettings-tool.c:513 +msgid "SCHEMA[:PATH] KEY" +msgstr "SCHEMA[:SÖKVÄG] NYCKEL" + +#: ../gio/gsettings-tool.c:494 +msgid "Queries the range of valid values for KEY" +msgstr "" + +#: ../gio/gsettings-tool.c:500 +msgid "Sets the value of KEY to VALUE" +msgstr "Ställer in värdet för NYCKEL till VÄRDE" + +#: ../gio/gsettings-tool.c:501 +msgid "SCHEMA[:PATH] KEY VALUE" +msgstr "SCHEMA[:SÖKVÄG] NYCKELVÄRDE" + +#: ../gio/gsettings-tool.c:506 +msgid "Resets KEY to its default value" +msgstr "Återställer NYCKEL till dess standardvärde" + +#: ../gio/gsettings-tool.c:512 +msgid "Checks if KEY is writable" +msgstr "Kontrollerar om NYCKEL är skrivbar" + +#: ../gio/gsettings-tool.c:518 +msgid "" +"Monitors 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:521 +msgid "SCHEMA[:PATH] [KEY]" +msgstr "SCHEMA[:SÖKVÄG] [NYCKEL]" + +#: ../gio/gsettings-tool.c:525 #, c-format msgid "" -"Commands:\n" -" help Show this information\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" -" monitor Monitor a key for changes\n" -" writable Check if a key is writable\n" +"Unknown command %s\n" +"\n" +msgstr "" +"Okänt kommando %s\n" +"\n" + +#: ../gio/gsettings-tool.c:533 +msgid "" +"Usage:\n" +" gsettings 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" +" get Get the value of a key\n" +" set Set the value of a key\n" +" reset Reset the value of a key\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" -"Use '%s COMMAND --help' to get help for individual commands.\n" msgstr "" -#: ../gio/gsettings-tool.c:220 -#: ../gio/gsettings-tool.c:320 -#: ../gio/gsettings-tool.c:436 -#: ../gio/gsettings-tool.c:531 -#: ../gio/gsettings-tool.c:644 -msgid "Specify the path for the schema" -msgstr "Ange sökvägen för schemat" +#: ../gio/gsettings-tool.c:554 +#, c-format +msgid "" +"Usage:\n" +" gsettings %s %s\n" +"\n" +"%s\n" +"\n" +msgstr "" +"Användning:\n" +" gsettings %s %s\n" +"\n" +"%s\n" +"\n" -#: ../gio/gsettings-tool.c:220 -#: ../gio/gsettings-tool.c:320 -#: ../gio/gsettings-tool.c:436 -#: ../gio/gsettings-tool.c:531 -#: ../gio/gsettings-tool.c:644 -msgid "PATH" -msgstr "SÖKVÄG" +#: ../gio/gsettings-tool.c:559 +msgid "Arguments:\n" +msgstr "Argument:\n" + +#: ../gio/gsettings-tool.c:563 +msgid "" +" SCHEMA The name of the schema\n" +" PATH The path, for relocatable schemas\n" +msgstr "" + +#: ../gio/gsettings-tool.c:568 +msgid " KEY The (optional) key within the schema\n" +msgstr "" + +#: ../gio/gsettings-tool.c:572 +msgid " KEY The key within the schema\n" +msgstr "" + +#: ../gio/gsettings-tool.c:576 +msgid " VALUE The value to set\n" +msgstr " VÄRDE Värdet att ställa in\n" -#: ../gio/gsettings-tool.c:228 -#: ../gio/gsettings-tool.c:539 #: ../gio/gsettings-tool.c:652 -msgid "SCHEMA KEY" -msgstr "SCHEMANYCKEL" - -#: ../gio/gsettings-tool.c:230 -msgid "Get the value of KEY" -msgstr "Hämta värdet för NYCKEL" - -#: ../gio/gsettings-tool.c:232 -#: ../gio/gsettings-tool.c:448 -#: ../gio/gsettings-tool.c:543 -#: ../gio/gsettings-tool.c:659 -msgid "" -"Arguments:\n" -" SCHEMA The id of the schema\n" -" KEY The name of the key\n" -msgstr "" - -#: ../gio/gsettings-tool.c:328 -#: ../gio/gsettings-tool.c:444 -msgid "SCHEMA KEY VALUE" -msgstr "" - -#: ../gio/gsettings-tool.c:330 -msgid "Set the value of KEY" -msgstr "Ställ in värdet för NYCKEL" - -#: ../gio/gsettings-tool.c:332 -msgid "" -"Arguments:\n" -" SCHEMA The id of the schema\n" -" KEY The name of the key\n" -" VALUE The value to set key to, as a serialized GVariant\n" -msgstr "" - -#: ../gio/gsettings-tool.c:405 #, c-format -msgid "Key %s is not writable\n" -msgstr "Nyckeln %s är inte skrivbar\n" - -#: ../gio/gsettings-tool.c:446 -msgid "Sets KEY to its default value" -msgstr "Ställer in NYCKEL till dess standardvärde" - -#: ../gio/gsettings-tool.c:541 -msgid "Find out whether KEY is writable" -msgstr "Ta reda på huruvida NYCKEL är skrivbar" - -#: ../gio/gsettings-tool.c:655 -msgid "" -"Monitor KEY for changes and print the changed values.\n" -"Monitoring will continue until the process is terminated." +msgid "Empty schema name given" msgstr "" -#: ../gio/gsettings-tool.c:831 -#, c-format -msgid "Unknown command '%s'\n" -msgstr "Okänt kommando \"%s\"\n" - -#: ../gio/gsocket.c:276 +#: ../gio/gsocket.c:277 msgid "Invalid socket, not initialized" msgstr "Ogiltigt uttag, inte initierat" -#: ../gio/gsocket.c:283 +#: ../gio/gsocket.c:284 #, c-format msgid "Invalid socket, initialization failed due to: %s" msgstr "Ogiltigt uttag, initiering misslyckades på grund av: %s" -#: ../gio/gsocket.c:291 +#: ../gio/gsocket.c:292 msgid "Socket is already closed" msgstr "Uttaget är redan stängt" -#: ../gio/gsocket.c:299 -#: ../gio/gsocket.c:2716 -#: ../gio/gsocket.c:2760 +#: ../gio/gsocket.c:300 +#: ../gio/gsocket.c:2765 +#: ../gio/gsocket.c:2809 msgid "Socket I/O timed out" msgstr "" -#: ../gio/gsocket.c:421 +#: ../gio/gsocket.c:443 #, c-format msgid "creating GSocket from fd: %s" msgstr "skapar GSocket från fd: %s" -#: ../gio/gsocket.c:455 -#: ../gio/gsocket.c:471 -#: ../gio/gsocket.c:2113 +#: ../gio/gsocket.c:477 +#: ../gio/gsocket.c:493 +#: ../gio/gsocket.c:2135 #, c-format msgid "Unable to create socket: %s" msgstr "Kunde inte skapa uttag: %s" -#: ../gio/gsocket.c:455 +#: ../gio/gsocket.c:477 msgid "Unknown protocol was specified" msgstr "Okänt protokoll angavs" -#: ../gio/gsocket.c:1224 +#: ../gio/gsocket.c:1246 #, c-format msgid "could not get local address: %s" msgstr "kunde inte få lokal adress: %s" -#: ../gio/gsocket.c:1267 +#: ../gio/gsocket.c:1289 #, c-format msgid "could not get remote address: %s" msgstr "Kunde inte få fjärradress: %s" -#: ../gio/gsocket.c:1328 +#: ../gio/gsocket.c:1350 #, c-format msgid "could not listen: %s" msgstr "kunde inte lyssna: %s" -#: ../gio/gsocket.c:1402 +#: ../gio/gsocket.c:1424 #, c-format msgid "Error binding to address: %s" msgstr "Fel vid bindning till adress: %s" -#: ../gio/gsocket.c:1522 +#: ../gio/gsocket.c:1544 #, c-format msgid "Error accepting connection: %s" msgstr "Fel vid godkännande av anslutning: %s" -#: ../gio/gsocket.c:1639 +#: ../gio/gsocket.c:1661 msgid "Error connecting: " msgstr "Fel vid anslutning: " -#: ../gio/gsocket.c:1644 +#: ../gio/gsocket.c:1666 msgid "Connection in progress" msgstr "Anslutningsförsök pågår" -#: ../gio/gsocket.c:1651 +#: ../gio/gsocket.c:1673 #, c-format msgid "Error connecting: %s" msgstr "Fel vid anslutning: %s" -#: ../gio/gsocket.c:1694 -#: ../gio/gsocket.c:3479 +#: ../gio/gsocket.c:1716 +#: ../gio/gsocket.c:3528 #, c-format msgid "Unable to get pending error: %s" msgstr "Kunde inte få tag på väntande fel: %s" -#: ../gio/gsocket.c:1826 +#: ../gio/gsocket.c:1848 #, c-format msgid "Error receiving data: %s" msgstr "Fel vid mottagning av data: %s" -#: ../gio/gsocket.c:2000 +#: ../gio/gsocket.c:2022 #, c-format msgid "Error sending data: %s" msgstr "Fel vid sändning av data: %s" -#: ../gio/gsocket.c:2192 +#: ../gio/gsocket.c:2214 #, c-format msgid "Error closing socket: %s" msgstr "Fel vid stängning av uttag: %s" -#: ../gio/gsocket.c:2709 +#: ../gio/gsocket.c:2758 #, c-format msgid "Waiting for socket condition: %s" msgstr "Väntar på uttagstillstånd: %s" -#: ../gio/gsocket.c:2999 +#: ../gio/gsocket.c:3048 msgid "GSocketControlMessage not supported on windows" msgstr "GSocketControlMessage stöds inte på Windows" -#: ../gio/gsocket.c:3258 -#: ../gio/gsocket.c:3399 +#: ../gio/gsocket.c:3307 +#: ../gio/gsocket.c:3448 #, c-format msgid "Error receiving message: %s" msgstr "Fel vid mottagning av meddelande: %s" -#: ../gio/gsocket.c:3494 +#: ../gio/gsocket.c:3543 msgid "g_socket_get_credentials not implemented for this OS" msgstr "g_socket_get_credentials har inte implementerats för detta operativsystem" -#: ../gio/gsocketclient.c:674 -#: ../gio/gsocketclient.c:1153 +#: ../gio/gsocketclient.c:798 +#: ../gio/gsocketclient.c:1368 msgid "Unknown error on connect" msgstr "Okänt fel inträffade vid anslutning" -#: ../gio/gsocketclient.c:711 -#: ../gio/gsocketclient.c:1038 +#: ../gio/gsocketclient.c:836 +#: ../gio/gsocketclient.c:1252 msgid "Trying to proxy over non-TCP connection is not supported." msgstr "Försök att skicka via proxy över en icke-TCP-anslutning stöds inte." -#: ../gio/gsocketclient.c:749 -#: ../gio/gsocketclient.c:1061 +#: ../gio/gsocketclient.c:858 +#: ../gio/gsocketclient.c:1277 #, c-format msgid "Proxy protocol '%s' is not supported." msgstr "Proxyprotokollet \"%s\" stöds inte." @@ -3140,7 +3496,7 @@ msgid "SOCKSv5 proxy does not support provided address type." msgstr "SOCKSv5-proxyservern saknar stöd för angiven adresstyp." #: ../gio/gsocks5proxy.c:402 -msgid "Unkown SOCKSv5 proxy error." +msgid "Unknown SOCKSv5 proxy error." msgstr "Okänt fel i SOCKSv5-proxyserver." #: ../gio/gthemedicon.c:498 @@ -3148,6 +3504,18 @@ msgstr "Okänt fel i SOCKSv5-proxyserver." msgid "Can't handle version %d of GThemedIcon encoding" msgstr "Kan inte hantera version %d av GThemedIcon-kodning" +#: ../gio/gtlscertificate.c:228 +msgid "No PEM-encoded certificate found" +msgstr "" + +#: ../gio/gtlscertificate.c:237 +msgid "Could not parse PEM-encoded certificate" +msgstr "" + +#: ../gio/gtlscertificate.c:258 +msgid "Could not parse PEM-encoded private key" +msgstr "" + #: ../gio/gunixconnection.c:164 #: ../gio/gunixconnection.c:505 #, c-format @@ -3197,18 +3565,17 @@ msgstr "" msgid "Error while disabling SO_PASSCRED: %s" msgstr "Fel vid inaktivning av SO_PASSCRED: %s" -#: ../gio/gunixinputstream.c:353 -#: ../gio/gunixinputstream.c:373 -#: ../gio/gunixinputstream.c:451 -#: ../gio/gunixoutputstream.c:438 +#: ../gio/gunixinputstream.c:368 +#: ../gio/gunixinputstream.c:388 +#: ../gio/gunixinputstream.c:466 #, c-format msgid "Error reading from unix: %s" msgstr "Fel vid läsning från unix: %s" -#: ../gio/gunixinputstream.c:406 -#: ../gio/gunixinputstream.c:589 -#: ../gio/gunixoutputstream.c:393 -#: ../gio/gunixoutputstream.c:545 +#: ../gio/gunixinputstream.c:421 +#: ../gio/gunixinputstream.c:601 +#: ../gio/gunixoutputstream.c:407 +#: ../gio/gunixoutputstream.c:556 #, c-format msgid "Error closing unix: %s" msgstr "Fel vid stängning av unix: %s" @@ -3218,8 +3585,9 @@ msgstr "Fel vid stängning av unix: %s" msgid "Filesystem root" msgstr "Filsystemsrot" -#: ../gio/gunixoutputstream.c:339 -#: ../gio/gunixoutputstream.c:360 +#: ../gio/gunixoutputstream.c:353 +#: ../gio/gunixoutputstream.c:374 +#: ../gio/gunixoutputstream.c:452 #, c-format msgid "Error writing to unix: %s" msgstr "Fel vid skrivning till unix: %s" @@ -3228,14 +3596,14 @@ msgstr "Fel vid skrivning till unix: %s" msgid "Abstract unix domain socket addresses not supported on this system" msgstr "Abstrakta Unix-domänuttagsadresser stöds inte på detta system" -#: ../gio/gvolume.c:406 +#: ../gio/gvolume.c:408 msgid "volume doesn't implement eject" msgstr "volymen har inte implementerat eject" #. Translators: This is an error #. * message for volume objects that #. * don't implement any of eject or eject_with_operation. -#: ../gio/gvolume.c:485 +#: ../gio/gvolume.c:487 msgid "volume doesn't implement eject or eject_with_operation" msgstr "volume har inte implementerat eject eller eject_with_operation" @@ -3296,215 +3664,12 @@ msgstr "Behöver mer inmatning" msgid "Invalid compressed data" msgstr "Ogiltigt komprimerat data" -#: ../gio/glib-compile-schemas.c:702 -msgid "empty names are not permitted" -msgstr "tomma namn tillåts inte" - -#: ../gio/glib-compile-schemas.c:712 -#, c-format -msgid "invalid name '%s': names must begin with a lowercase letter" -msgstr "ogiltigt namn \"%s\": namn måste börja med en liten bokstav" - -#: ../gio/glib-compile-schemas.c:724 -#, c-format -msgid "invalid name '%s': invalid character '%c'; only lowercase letters, numbers and dash ('-') are permitted." -msgstr "" - -#: ../gio/glib-compile-schemas.c:733 -#, c-format -msgid "invalid name '%s': two successive dashes ('--') are not permitted." -msgstr "" - -#: ../gio/glib-compile-schemas.c:742 -#, c-format -msgid "invalid name '%s': the last character may not be a dash ('-')." -msgstr "" - -#: ../gio/glib-compile-schemas.c:750 -#, c-format -msgid "invalid name '%s': maximum length is 32" -msgstr "ogiltigt namn \"%s\": maximal längd är 32" - -#: ../gio/glib-compile-schemas.c:819 -#, c-format -msgid " already specified" -msgstr " redan angiven" - -#: ../gio/glib-compile-schemas.c:845 -msgid "can not add keys to a 'list-of' schema" -msgstr "" - -#: ../gio/glib-compile-schemas.c:856 -#, c-format -msgid " already specified" -msgstr " redan angiven" - -#: ../gio/glib-compile-schemas.c:874 -#, c-format -msgid " shadows in ; use to modify value" -msgstr "" - -#: ../gio/glib-compile-schemas.c:885 -#, c-format -msgid "exactly one of 'type', 'enum' or 'flags' must be specified as an attribute to " -msgstr "" - -#: ../gio/glib-compile-schemas.c:904 -#, c-format -msgid "<%s id='%s'> not (yet) defined." -msgstr "<%s id='%s'> inte (ännu) angiven." - -#: ../gio/glib-compile-schemas.c:919 -#, c-format -msgid "invalid GVariant type string '%s'" -msgstr "ogiltig GVariant-typsträng \"%s\"" - -#: ../gio/glib-compile-schemas.c:949 -msgid " given but schema isn't extending anything" -msgstr "" - -#: ../gio/glib-compile-schemas.c:962 -#, c-format -msgid "no to override" -msgstr "ingen att åsidosätta" - -#: ../gio/glib-compile-schemas.c:970 -#, c-format -msgid " already specified" -msgstr " redan angiven" - -#: ../gio/glib-compile-schemas.c:1036 -#, c-format -msgid " already specified" -msgstr " redan angiven" - -#: ../gio/glib-compile-schemas.c:1048 -#, c-format -msgid " extends not yet existing schema '%s'" -msgstr "" - -#: ../gio/glib-compile-schemas.c:1064 -#, c-format -msgid " is list of not yet existing schema '%s'" -msgstr "" - -#: ../gio/glib-compile-schemas.c:1072 -#, c-format -msgid "Can not be a list of a schema with a path" -msgstr "Kan inte vara en lista för ett schema med en sökväg" - -#: ../gio/glib-compile-schemas.c:1082 -#, c-format -msgid "Can not extend a schema with a path" -msgstr "Kan inte utöka ett schema med en sökväg" - -#: ../gio/glib-compile-schemas.c:1092 -#, c-format -msgid " is a list, extending which is not a list" -msgstr "" - -#: ../gio/glib-compile-schemas.c:1102 -#, c-format -msgid " extends but '%s' does not extend '%s'" -msgstr " utökar men \"%s\" utökar inte \"%s\"" - -#: ../gio/glib-compile-schemas.c:1119 -#, c-format -msgid "a path, if given, must begin and end with a slash" -msgstr "en sökväg, om angiven, måste börja och sluta med ett snedstreck" - -#: ../gio/glib-compile-schemas.c:1126 -#, c-format -msgid "the path of a list must end with ':/'" -msgstr "sökvägen för en lista måste sluta med \":/\"" - -#: ../gio/glib-compile-schemas.c:1148 -#, c-format -msgid "<%s id='%s'> already specified" -msgstr "<%s id='%s'> redan angiven" - -#: ../gio/glib-compile-schemas.c:1362 -#, c-format -msgid "Element <%s> not allowed inside <%s>" -msgstr "Elementet <%s> tillåts inte inuti <%s>" - -#: ../gio/glib-compile-schemas.c:1366 -#, c-format -msgid "Element <%s> not allowed at toplevel" -msgstr "Elementet <%s> tillåts inte på toppnivå" - -#: ../gio/glib-compile-schemas.c:1460 -#, c-format -msgid "text may not appear inside <%s>" -msgstr "text får inte vara inuti <%s>" - -#: ../gio/glib-compile-schemas.c:1674 -#, c-format -msgid "No such schema `%s' specified in override file `%s'" -msgstr "" - -#: ../gio/glib-compile-schemas.c:1698 -#, c-format -msgid "No such key `%s' in schema `%s' as specified in override file `%s'" -msgstr "" - -#: ../gio/glib-compile-schemas.c:1731 -#, c-format -msgid "override for key `%s' in schema `%s' in override file `%s' is out of the range given in the schema" -msgstr "" - -#: ../gio/glib-compile-schemas.c:1752 -#, c-format -msgid "override for key `%s' in schema `%s' in override file `%s' is not in the list of valid choices" -msgstr "" - -#: ../gio/glib-compile-schemas.c:1797 -msgid "where to store the gschemas.compiled file" -msgstr "var filen gschemas.compiled ska lagras" - -#: ../gio/glib-compile-schemas.c:1797 -#: ../gio/glib-compile-schemas.c:1809 -msgid "DIRECTORY" -msgstr "KATALOG" - -#: ../gio/glib-compile-schemas.c:1798 -msgid "Do not write the gschema.compiled file" -msgstr "Skriv inte filen gschema.compiled" - -#: ../gio/glib-compile-schemas.c:1799 -msgid "This option will be removed soon." -msgstr "Denna flagga kommer snart att försvinna." - -#: ../gio/glib-compile-schemas.c:1800 -msgid "Do not enforce key name restrictions" -msgstr "" - -#: ../gio/glib-compile-schemas.c:1812 -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:1828 -#, c-format -msgid "You should give exactly one directory name\n" -msgstr "" - -#: ../gio/glib-compile-schemas.c:1867 -#, c-format -msgid "No schema files found: " -msgstr "Inga schemafiler hittades: " - -#: ../gio/glib-compile-schemas.c:1870 -#, c-format -msgid "doing nothing.\n" -msgstr "gör ingenting.\n" - -#: ../gio/glib-compile-schemas.c:1873 -#, c-format -msgid "removed existing output file.\n" -msgstr "" +#~ msgid "Specify the path for the schema" +#~ msgstr "Ange sökvägen för schemat" +#~ msgid "PATH" +#~ msgstr "SÖKVÄG" +#~ msgid "Key %s is not writable\n" +#~ msgstr "Nyckeln %s är inte skrivbar\n" #, fuzzy #~ msgid "Do not give error for empty directory" diff --git a/po/ug.po b/po/ug.po index ba697d4bb..a95dea4c9 100644 --- a/po/ug.po +++ b/po/ug.po @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: glib\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=glib&component=general\n" -"POT-Creation-Date: 2010-11-16 13:41+0000\n" +"POT-Creation-Date: 2010-12-21 12:55+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Gheyret Kenji\n" "Language-Team: Uyghur Computer Science Association \n" @@ -110,7 +110,7 @@ msgstr "" #: ../glib/giochannel.c:2473 ../gio/gcharsetconverter.c:350 #, c-format msgid "Error during conversion: %s" -msgstr "" +msgstr "پاراڭلىشىۋاتقاندا خاتالىق كۆرۈلدى: %s" #: ../glib/gconvert.c:808 ../glib/gutf8.c:988 ../glib/gutf8.c:1198 #: ../glib/gutf8.c:1339 ../glib/gutf8.c:1443 @@ -154,7 +154,7 @@ msgstr "" #: ../glib/gconvert.c:2041 msgid "Invalid hostname" -msgstr "" +msgstr "باش ماشىنا ئاتى ئىناۋەتسىز" #. Translators: 'before midday' indicator #: ../glib/gdatetime.c:149 @@ -385,135 +385,135 @@ msgstr "قۇياش" #: ../glib/gdir.c:115 ../glib/gdir.c:138 #, c-format msgid "Error opening directory '%s': %s" -msgstr "" +msgstr "مۇندەرىجە '%s' نى ئېچىۋاتقاندا خاتالىق كۆرۈلدى: %s" -#: ../glib/gfileutils.c:536 ../glib/gfileutils.c:624 +#: ../glib/gfileutils.c:540 ../glib/gfileutils.c:628 #, c-format msgid "Could not allocate %lu bytes to read file \"%s\"" -msgstr "" +msgstr "%lu بايت تەقسىملىيەلمىدى(ھۆججەت «%s» نى ئوقۇش ئۈچۈن)" -#: ../glib/gfileutils.c:551 +#: ../glib/gfileutils.c:555 #, c-format msgid "Error reading file '%s': %s" msgstr "ھۆججەت '%s' ئوقۇشتا خاتالىق كۆرۈلدى: %s" -#: ../glib/gfileutils.c:565 +#: ../glib/gfileutils.c:569 #, c-format msgid "File \"%s\" is too large" -msgstr "" +msgstr "ھۆججەت «%s» بەك چوڭ" -#: ../glib/gfileutils.c:648 +#: ../glib/gfileutils.c:652 #, c-format msgid "Failed to read from file '%s': %s" -msgstr "" +msgstr "ھۆججەت '%s' دىن ئوقۇش مەغلۇپ بولدى: %s" -#: ../glib/gfileutils.c:699 ../glib/gfileutils.c:786 +#: ../glib/gfileutils.c:703 ../glib/gfileutils.c:790 #, c-format msgid "Failed to open file '%s': %s" msgstr "ھۆججەت «%s» نى ئاچالمىدى: %s" -#: ../glib/gfileutils.c:716 ../glib/gmappedfile.c:169 +#: ../glib/gfileutils.c:720 ../glib/gmappedfile.c:169 #, c-format msgid "Failed to get attributes of file '%s': fstat() failed: %s" -msgstr "" +msgstr "ھۆججەت '%s' نىڭ خاسلىقلىرىغا ئېرىشىش مەغلۇپ بولدى:fstat() مەغلۇپ بولدى: %s" -#: ../glib/gfileutils.c:750 +#: ../glib/gfileutils.c:754 #, c-format msgid "Failed to open file '%s': fdopen() failed: %s" -msgstr "" +msgstr "ھۆججەت '%s' نى ئېچىش مەغلۇپ بولدى: fdopen() مەغلۇپ بولدى: %s" -#: ../glib/gfileutils.c:858 +#: ../glib/gfileutils.c:862 #, c-format msgid "Failed to rename file '%s' to '%s': g_rename() failed: %s" -msgstr "" +msgstr "ئاتىنى '%s' دىن '%s' غا ئۆزگەرتىش مەغلۇپ بولدى: g_rename() مەغلۇپ بولدى: %s" -#: ../glib/gfileutils.c:900 ../glib/gfileutils.c:1369 +#: ../glib/gfileutils.c:904 ../glib/gfileutils.c:1388 #, c-format msgid "Failed to create file '%s': %s" -msgstr "" +msgstr "ھۆججەت '%s' قۇرۇش مەغلۇپ بولدى: %s" -#: ../glib/gfileutils.c:914 +#: ../glib/gfileutils.c:918 #, c-format msgid "Failed to open file '%s' for writing: fdopen() failed: %s" msgstr "" -#: ../glib/gfileutils.c:939 +#: ../glib/gfileutils.c:943 #, c-format msgid "Failed to write file '%s': fwrite() failed: %s" -msgstr "" +msgstr "ھۆججەت '%s' نى يېزىش مەغلۇپ بولدى: fwrite() مەغلۇپ بولدى: %s" -#: ../glib/gfileutils.c:958 +#: ../glib/gfileutils.c:962 #, c-format msgid "Failed to write file '%s': fflush() failed: %s" -msgstr "" +msgstr "ھۆججەت '%s' نى يېزىش مەغلۇپ بولدى: fflush() مەغلۇپ بولدى: %s" -#: ../glib/gfileutils.c:987 +#: ../glib/gfileutils.c:1005 #, c-format msgid "Failed to write file '%s': fsync() failed: %s" -msgstr "" +msgstr "ھۆججەت '%s' نى يېزىش مەغلۇپ بولدى: fsync() مەغلۇپ بولدى: %s" -#: ../glib/gfileutils.c:1006 +#: ../glib/gfileutils.c:1025 #, c-format msgid "Failed to close file '%s': fclose() failed: %s" -msgstr "" +msgstr "ھۆججەت '%s' نى يېپىش مەغلۇپ بولدى: fclose() مەغلۇپ بولدى: %s" -#: ../glib/gfileutils.c:1127 +#: ../glib/gfileutils.c:1146 #, c-format msgid "Existing file '%s' could not be removed: g_unlink() failed: %s" msgstr "" -#: ../glib/gfileutils.c:1331 +#: ../glib/gfileutils.c:1350 #, c-format msgid "Template '%s' invalid, should not contain a '%s'" msgstr "" -#: ../glib/gfileutils.c:1344 +#: ../glib/gfileutils.c:1363 #, c-format msgid "Template '%s' doesn't contain XXXXXX" msgstr "" -#: ../glib/gfileutils.c:1777 +#: ../glib/gfileutils.c:1796 #, c-format msgid "%u byte" msgid_plural "%u bytes" -msgstr[0] "بايت %u" +msgstr[0] "%u بايت" -#: ../glib/gfileutils.c:1785 +#: ../glib/gfileutils.c:1804 #, c-format msgid "%.1f KB" msgstr "%.1f KB" -#: ../glib/gfileutils.c:1790 +#: ../glib/gfileutils.c:1809 #, c-format msgid "%.1f MB" msgstr "%.1f MB" -#: ../glib/gfileutils.c:1795 +#: ../glib/gfileutils.c:1814 #, c-format msgid "%.1f GB" msgstr "%.1f GB" -#: ../glib/gfileutils.c:1800 +#: ../glib/gfileutils.c:1819 #, c-format msgid "%.1f TB" msgstr "%.1f TB" -#: ../glib/gfileutils.c:1805 +#: ../glib/gfileutils.c:1824 #, c-format msgid "%.1f PB" msgstr "%.1f PB" -#: ../glib/gfileutils.c:1810 +#: ../glib/gfileutils.c:1829 #, c-format msgid "%.1f EB" msgstr "%.1f EB" -#: ../glib/gfileutils.c:1853 +#: ../glib/gfileutils.c:1872 #, c-format msgid "Failed to read the symbolic link '%s': %s" msgstr "" -#: ../glib/gfileutils.c:1874 +#: ../glib/gfileutils.c:1893 msgid "Symbolic links not supported" msgstr "" @@ -542,7 +542,7 @@ msgstr "" #: ../glib/gmappedfile.c:150 #, c-format msgid "Failed to open file '%s': open() failed: %s" -msgstr "" +msgstr "ھۆججەت '%s' نى ئېچىش مەغلۇپ بولدى: open() مەغلۇپ بولدى: %s" #: ../glib/gmappedfile.c:229 #, c-format @@ -552,7 +552,7 @@ msgstr "" #: ../glib/gmarkup.c:307 ../glib/gmarkup.c:347 #, c-format msgid "Error on line %d char %d: " -msgstr "" +msgstr "قۇر %d ھەرپ %d دىكى خاتالىق: " #: ../glib/gmarkup.c:367 ../glib/gmarkup.c:445 #, c-format @@ -572,7 +572,7 @@ msgstr "'%s' ئىناۋەتلىك ئات ئەمەس: '%c' " #: ../glib/gmarkup.c:498 #, c-format msgid "Error on line %d: %s" -msgstr "" +msgstr "قۇر %d دىكى خاتالىق:%s" #: ../glib/gmarkup.c:582 #, c-format @@ -611,7 +611,7 @@ msgstr "" #: ../glib/gmarkup.c:1018 msgid "Document must begin with an element (e.g. )" -msgstr "" +msgstr "پۈتۈك چوقۇم بىر ئېلېمېنت بىلەن باشلىنىشى كېرەك(مەسىلەن دېگەندەك)" #: ../glib/gmarkup.c:1058 #, c-format @@ -665,16 +665,16 @@ msgstr "" #: ../glib/gmarkup.c:1476 #, c-format msgid "Element '%s' was closed, no element is currently open" -msgstr "" +msgstr "ئېلېمېنت '%s' يېپىلدى، بىراق ھازىر ھېچقانداق ئېلېمېنت ئېچىلمىغان" #: ../glib/gmarkup.c:1485 #, c-format msgid "Element '%s' was closed, but the currently open element is '%s'" -msgstr "" +msgstr "ئېلېمېنت '%s' يېپىلدى، بىراق ھازىر ئېلېمېنت '%s' ئېچىلغان ئىدى" #: ../glib/gmarkup.c:1652 msgid "Document was empty or contained only whitespace" -msgstr "" +msgstr "پۈتۈك قۇرۇق ياكى ئۇنىڭدا بوشلۇق بەلگىلىرىلا بار" #: ../glib/gmarkup.c:1666 msgid "Document ended unexpectedly just after an open angle bracket '<'" @@ -850,7 +850,7 @@ msgstr "" #: ../glib/gregex.c:324 msgid "regular expression too large" -msgstr "" +msgstr "مۇنتىزىم ئىپادە بەك چوڭ" #: ../glib/gregex.c:327 msgid "failed to get memory" @@ -1060,7 +1060,7 @@ msgstr "" #: ../glib/gspawn-win32.c:369 ../glib/gspawn.c:1352 #, c-format msgid "Failed to change to directory '%s' (%s)" -msgstr "" +msgstr "مۇندەرىجە '%s' (%s) نى ئۆزگەرتىش مەغلۇپ بولدى" #: ../glib/gspawn-win32.c:375 ../glib/gspawn-win32.c:494 #, c-format @@ -1070,7 +1070,7 @@ msgstr "" #: ../glib/gspawn-win32.c:444 #, c-format msgid "Invalid program name: %s" -msgstr "" +msgstr "پروگرامما ئاتى ئىناۋەتسىز: %s" #: ../glib/gspawn-win32.c:454 ../glib/gspawn-win32.c:722 #: ../glib/gspawn-win32.c:1278 @@ -1082,7 +1082,7 @@ msgstr "" #: ../glib/gspawn-win32.c:1311 #, c-format msgid "Invalid string in environment: %s" -msgstr "" +msgstr "مۇھىتتىكى تېكىست ئىناۋەتسىز: %s" #: ../glib/gspawn-win32.c:718 ../glib/gspawn-win32.c:1259 #, c-format @@ -1108,12 +1108,12 @@ msgstr "" #: ../glib/gspawn.c:335 #, c-format msgid "Unexpected error in select() reading data from a child process (%s)" -msgstr "" +msgstr "جەريان (%s) دىن سانلىق مەلۇمات ئوقۇۋاتقاندا select() دا تاسادىپىي خاتالىق كۆرۈلدى" #: ../glib/gspawn.c:420 #, c-format msgid "Unexpected error in waitpid() (%s)" -msgstr "" +msgstr "waitpid() دا تاسادىپىي خاتالىق كۆرۈلدى (%s)" #: ../glib/gspawn.c:1212 #, c-format @@ -1168,7 +1168,7 @@ msgstr "" #: ../glib/goption.c:866 msgid "Help Options:" -msgstr "" +msgstr "ياردەم تاللانمىسى:" #: ../glib/goption.c:867 msgid "Show help options" @@ -1205,7 +1205,7 @@ msgstr "" #: ../glib/goption.c:1303 ../glib/goption.c:1382 #, c-format msgid "Error parsing option %s" -msgstr "" +msgstr "تاللانما %s نى تەھلىل قىلىۋاتقاندا خاتالىق كۆرۈلدى" #: ../glib/goption.c:1413 ../glib/goption.c:1527 #, c-format @@ -1238,7 +1238,7 @@ msgstr "" #: ../glib/gkeyfile.c:824 #, c-format msgid "Invalid group name: %s" -msgstr "" +msgstr "ئىناۋەتسىز گۇرۇپپا ئاتى: %s" #: ../glib/gkeyfile.c:846 msgid "Key file does not start with a group" @@ -1247,7 +1247,7 @@ msgstr "" #: ../glib/gkeyfile.c:872 #, c-format msgid "Invalid key name: %s" -msgstr "" +msgstr "ئاچقۇچ ئاتى ئىناۋەتسىز: %s" #: ../glib/gkeyfile.c:899 #, c-format @@ -1311,7 +1311,7 @@ msgstr "" #: ../glib/gkeyfile.c:3814 #, c-format msgid "Integer value '%s' out of range" -msgstr "" +msgstr "پۈتۈن سان قىممىتى '%s' چەكتىن ئېشىپ كەتتى" #: ../glib/gkeyfile.c:3847 #, c-format @@ -1336,16 +1336,16 @@ msgstr "" msgid "Stream is already closed" msgstr "" -#: ../gio/gcancellable.c:432 ../gio/gdbusconnection.c:1636 -#: ../gio/gdbusconnection.c:1725 ../gio/gdbusconnection.c:1911 -#: ../gio/glocalfile.c:2102 ../gio/gsimpleasyncresult.c:811 -#: ../gio/gsimpleasyncresult.c:837 +#: ../gio/gcancellable.c:433 ../gio/gdbusconnection.c:1637 +#: ../gio/gdbusconnection.c:1726 ../gio/gdbusconnection.c:1912 +#: ../gio/glocalfile.c:2102 ../gio/gsimpleasyncresult.c:810 +#: ../gio/gsimpleasyncresult.c:836 msgid "Operation was cancelled" msgstr "مەشغۇلات بىكار قىلىندى" #: ../gio/gcharsetconverter.c:263 msgid "Invalid object, not initialized" -msgstr "" +msgstr "ئىناۋەتسىز نەڭ. دەسلەپلەشتۈرۈلمىگەن" #: ../gio/gcharsetconverter.c:284 ../gio/gcharsetconverter.c:312 msgid "Incomplete multibyte sequence in input" @@ -1353,9 +1353,9 @@ msgstr "" #: ../gio/gcharsetconverter.c:318 ../gio/gcharsetconverter.c:327 msgid "Not enough space in destination" -msgstr "" +msgstr "نىشاندا يېتەرلىك بوشلۇق يوق" -#: ../gio/gcharsetconverter.c:447 ../gio/gsocket.c:831 +#: ../gio/gcharsetconverter.c:447 ../gio/gsocket.c:832 msgid "Cancellable initialization not supported" msgstr "فورماتلاشنى ئىناۋەتسىز قىلىشقا بولمايدۇ" @@ -1375,7 +1375,7 @@ msgstr "%s تىپ" #: ../gio/gcredentials.c:246 ../gio/gcredentials.c:441 msgid "GCredentials is not implemented on this OS" -msgstr "" +msgstr "GCredentials نى بۇ OS دا ئىشلەتكىلى بولمايدۇ" #: ../gio/gcredentials.c:396 msgid "There is no GCredentials support for your platform" @@ -1455,7 +1455,7 @@ msgstr "" #: ../gio/gdbusaddress.c:632 msgid "Error auto-launching: " -msgstr "" +msgstr "ئاپتوماتىك ئىجرا قىلىشتا خاتالىق كۆرۈلدى: " #: ../gio/gdbusaddress.c:640 #, c-format @@ -1510,14 +1510,14 @@ msgstr "" msgid "Cannot determine session bus address (not implemented for this OS)" msgstr "" -#: ../gio/gdbusaddress.c:1242 ../gio/gdbusconnection.c:6167 +#: ../gio/gdbusaddress.c:1242 ../gio/gdbusconnection.c:6168 #, c-format msgid "" "Cannot determine bus address from DBUS_STARTER_BUS_TYPE environment variable " "- unknown value `%s'" msgstr "" -#: ../gio/gdbusaddress.c:1251 ../gio/gdbusconnection.c:6176 +#: ../gio/gdbusaddress.c:1251 ../gio/gdbusconnection.c:6177 msgid "" "Cannot determine bus address because the DBUS_STARTER_BUS_TYPE environment " "variable is not set" @@ -1560,7 +1560,7 @@ msgstr "" #: ../gio/gdbusauthmechanismsha1.c:299 #, c-format msgid "Error creating directory `%s': %s" -msgstr "" +msgstr "مۇندەرىجە `%s' نى قۇرۇۋاتقاندا خاتالىق كۆرۈلدى: %s" #: ../gio/gdbusauthmechanismsha1.c:382 #, c-format @@ -1597,7 +1597,7 @@ msgstr "" #: ../gio/gdbusauthmechanismsha1.c:566 #, c-format msgid "Error creating lock file `%s': %s" -msgstr "" +msgstr "قۇلۇپ ھۆججىتى `%s' نى قۇرۇۋاتقاندا خاتالىق كۆرۈلدى: %s" #: ../gio/gdbusauthmechanismsha1.c:596 #, c-format @@ -1620,85 +1620,85 @@ msgid "(Additionally, releasing the lock for `%s' also failed: %s) " msgstr "" #: ../gio/gdbusconnection.c:1148 ../gio/gdbusconnection.c:1374 -#: ../gio/gdbusconnection.c:1413 ../gio/gdbusconnection.c:1736 +#: ../gio/gdbusconnection.c:1413 ../gio/gdbusconnection.c:1737 msgid "The connection is closed" msgstr "" -#: ../gio/gdbusconnection.c:1680 +#: ../gio/gdbusconnection.c:1681 msgid "Timeout was reached" msgstr "" -#: ../gio/gdbusconnection.c:2299 +#: ../gio/gdbusconnection.c:2300 msgid "" "Unsupported flags encountered when constructing a client-side connection" msgstr "" -#: ../gio/gdbusconnection.c:3751 ../gio/gdbusconnection.c:4069 +#: ../gio/gdbusconnection.c:3752 ../gio/gdbusconnection.c:4070 #, c-format msgid "" "No such interface `org.freedesktop.DBus.Properties' on object at path %s" msgstr "" -#: ../gio/gdbusconnection.c:3823 +#: ../gio/gdbusconnection.c:3824 #, c-format msgid "Error setting property `%s': Expected type `%s' but got `%s'" msgstr "" -#: ../gio/gdbusconnection.c:3918 +#: ../gio/gdbusconnection.c:3919 #, c-format msgid "No such property `%s'" -msgstr "" +msgstr "`%s' بۇنداق خاسلىق يوق" -#: ../gio/gdbusconnection.c:3930 +#: ../gio/gdbusconnection.c:3931 #, c-format msgid "Property `%s' is not readable" msgstr "" -#: ../gio/gdbusconnection.c:3941 +#: ../gio/gdbusconnection.c:3942 #, c-format msgid "Property `%s' is not writable" msgstr "" -#: ../gio/gdbusconnection.c:4011 ../gio/gdbusconnection.c:5601 +#: ../gio/gdbusconnection.c:4012 ../gio/gdbusconnection.c:5602 #, c-format msgid "No such interface `%s'" -msgstr "" +msgstr "`%s' بۇنداق ئارايۈز يوق" -#: ../gio/gdbusconnection.c:4199 +#: ../gio/gdbusconnection.c:4200 msgid "No such interface" -msgstr "" +msgstr "بۇنداق ئارايۈز يوق" -#: ../gio/gdbusconnection.c:4415 ../gio/gdbusconnection.c:6117 +#: ../gio/gdbusconnection.c:4416 ../gio/gdbusconnection.c:6118 #, c-format msgid "No such interface `%s' on object at path %s" msgstr "" -#: ../gio/gdbusconnection.c:4467 +#: ../gio/gdbusconnection.c:4468 #, c-format msgid "No such method `%s'" msgstr "" -#: ../gio/gdbusconnection.c:4498 +#: ../gio/gdbusconnection.c:4499 #, c-format msgid "Type of message, `%s', does not match expected type `%s'" msgstr "" -#: ../gio/gdbusconnection.c:4717 +#: ../gio/gdbusconnection.c:4718 #, c-format msgid "An object is already exported for the interface %s at %s" msgstr "" -#: ../gio/gdbusconnection.c:4911 +#: ../gio/gdbusconnection.c:4912 #, c-format msgid "Method `%s' returned type `%s', but expected `%s'" msgstr "" -#: ../gio/gdbusconnection.c:5712 +#: ../gio/gdbusconnection.c:5713 #, c-format msgid "Method `%s' on interface `%s' with signature `%s' does not exist" msgstr "" -#: ../gio/gdbusconnection.c:5830 +#: ../gio/gdbusconnection.c:5831 #, c-format msgid "A subtree is already exported for %s" msgstr "" @@ -1856,13 +1856,13 @@ msgstr "" msgid "Type of return value is incorrect, got `%s', expected `%s'" msgstr "" -#: ../gio/gdbusmethodinvocation.c:406 ../gio/gsocket.c:2992 -#: ../gio/gsocket.c:3073 +#: ../gio/gdbusmethodinvocation.c:406 ../gio/gsocket.c:3023 +#: ../gio/gsocket.c:3104 #, c-format msgid "Error sending message: %s" -msgstr "" +msgstr "ئۇچۇر يوللاۋاتقاندا خاتالىق كۆرۈلدى: %s" -#: ../gio/gdbusprivate.c:1756 +#: ../gio/gdbusprivate.c:1768 msgid "Unable to load /var/lib/dbus/machine-id: " msgstr "" @@ -2006,12 +2006,12 @@ msgstr "باغلىنىشتا خاتالىق كۆرۈلدى: %s\n" #: ../gio/gdbus-tool.c:646 ../gio/gdbus-tool.c:1264 ../gio/gdbus-tool.c:1524 #, c-format msgid "Error: Destination is not specified\n" -msgstr "" +msgstr "خاتالىق: نىشان بەلگىلەنمىگەن\n" #: ../gio/gdbus-tool.c:667 ../gio/gdbus-tool.c:1283 #, c-format msgid "Error: Object path is not specified\n" -msgstr "" +msgstr "خاتالىق: نەڭ يولى بەلگىلەنمىگەن\n" #: ../gio/gdbus-tool.c:687 ../gio/gdbus-tool.c:1303 ../gio/gdbus-tool.c:1564 #, c-format @@ -2021,7 +2021,7 @@ msgstr "" #: ../gio/gdbus-tool.c:702 #, c-format msgid "Error: Method name is not specified\n" -msgstr "" +msgstr "خاتالىق: Method ئاتى بەلگىلەنمىگەن\n" #: ../gio/gdbus-tool.c:713 #, c-format @@ -2036,7 +2036,7 @@ msgstr "" #: ../gio/gdbus-tool.c:786 #, c-format msgid "Error parsing parameter %d: %s\n" -msgstr "" +msgstr "پارامېتىر %d تەھلىل قىلىۋاتقاندا خاتالىق كۆرۈلدى: %s\n" #: ../gio/gdbus-tool.c:1162 msgid "Destination name to introspect" @@ -2060,40 +2060,40 @@ msgstr "" #: ../gio/gdbus-tool.c:1424 msgid "Object path to monitor" -msgstr "" +msgstr "كۆزىتىدىغان نەڭنىڭ يولى" #: ../gio/gdbus-tool.c:1457 msgid "Monitor a remote object." -msgstr "" +msgstr "يىراقتىكى نەڭنى كۆزىتىدۇ." -#: ../gio/gdesktopappinfo.c:469 ../gio/gwin32appinfo.c:221 +#: ../gio/gdesktopappinfo.c:480 ../gio/gwin32appinfo.c:221 msgid "Unnamed" msgstr "ئاتسىز" -#: ../gio/gdesktopappinfo.c:753 +#: ../gio/gdesktopappinfo.c:764 msgid "Desktop file didn't specify Exec field" msgstr "" -#: ../gio/gdesktopappinfo.c:946 +#: ../gio/gdesktopappinfo.c:957 msgid "Unable to find terminal required for application" msgstr "" -#: ../gio/gdesktopappinfo.c:1155 +#: ../gio/gdesktopappinfo.c:1166 #, c-format msgid "Can't create user application configuration folder %s: %s" msgstr "" -#: ../gio/gdesktopappinfo.c:1159 +#: ../gio/gdesktopappinfo.c:1170 #, c-format msgid "Can't create user MIME configuration folder %s: %s" msgstr "" -#: ../gio/gdesktopappinfo.c:1567 +#: ../gio/gdesktopappinfo.c:1663 #, c-format msgid "Can't create user desktop file %s" msgstr "" -#: ../gio/gdesktopappinfo.c:1681 +#: ../gio/gdesktopappinfo.c:1779 #, c-format msgid "Custom definition for %s" msgstr "" @@ -2131,29 +2131,29 @@ msgstr "" msgid "Malformed number of tokens (%d) in GEmblem encoding" msgstr "" -#: ../gio/gemblemedicon.c:293 +#: ../gio/gemblemedicon.c:368 #, c-format msgid "Can't handle version %d of GEmblemedIcon encoding" msgstr "" -#: ../gio/gemblemedicon.c:303 +#: ../gio/gemblemedicon.c:378 #, c-format msgid "Malformed number of tokens (%d) in GEmblemedIcon encoding" msgstr "" -#: ../gio/gemblemedicon.c:326 +#: ../gio/gemblemedicon.c:401 msgid "Expected a GEmblem for GEmblemedIcon" msgstr "" -#: ../gio/gfile.c:872 ../gio/gfile.c:1102 ../gio/gfile.c:1237 -#: ../gio/gfile.c:1474 ../gio/gfile.c:1528 ../gio/gfile.c:1585 -#: ../gio/gfile.c:1668 ../gio/gfile.c:1723 ../gio/gfile.c:1783 -#: ../gio/gfile.c:1837 ../gio/gfile.c:3307 ../gio/gfile.c:3361 -#: ../gio/gfile.c:3493 ../gio/gfile.c:3534 ../gio/gfile.c:3861 -#: ../gio/gfile.c:4263 ../gio/gfile.c:4349 ../gio/gfile.c:4438 -#: ../gio/gfile.c:4536 ../gio/gfile.c:4623 ../gio/gfile.c:4717 -#: ../gio/gfile.c:5038 ../gio/gfile.c:5305 ../gio/gfile.c:5370 -#: ../gio/gfile.c:6944 ../gio/gfile.c:7034 ../gio/gfile.c:7120 +#: ../gio/gfile.c:872 ../gio/gfile.c:1103 ../gio/gfile.c:1238 +#: ../gio/gfile.c:1475 ../gio/gfile.c:1529 ../gio/gfile.c:1586 +#: ../gio/gfile.c:1669 ../gio/gfile.c:1724 ../gio/gfile.c:1784 +#: ../gio/gfile.c:1838 ../gio/gfile.c:3308 ../gio/gfile.c:3362 +#: ../gio/gfile.c:3494 ../gio/gfile.c:3535 ../gio/gfile.c:3862 +#: ../gio/gfile.c:4264 ../gio/gfile.c:4350 ../gio/gfile.c:4439 +#: ../gio/gfile.c:4537 ../gio/gfile.c:4624 ../gio/gfile.c:4718 +#: ../gio/gfile.c:5039 ../gio/gfile.c:5306 ../gio/gfile.c:5371 +#: ../gio/gfile.c:6945 ../gio/gfile.c:7035 ../gio/gfile.c:7121 #: ../gio/win32/gwinhttpfile.c:439 msgid "Operation not supported" msgstr "مەشغۇلاتنى قوللىمايدۇ" @@ -2166,58 +2166,58 @@ msgstr "مەشغۇلاتنى قوللىمايدۇ" #. Translators: This is an error message when trying to find #. * the enclosing (user visible) mount of a file, but none #. * exists. -#: ../gio/gfile.c:1358 ../gio/glocalfile.c:1059 ../gio/glocalfile.c:1070 +#: ../gio/gfile.c:1359 ../gio/glocalfile.c:1059 ../gio/glocalfile.c:1070 #: ../gio/glocalfile.c:1083 msgid "Containing mount does not exist" msgstr "" -#: ../gio/gfile.c:2411 ../gio/glocalfile.c:2258 +#: ../gio/gfile.c:2412 ../gio/glocalfile.c:2258 msgid "Can't copy over directory" msgstr "" -#: ../gio/gfile.c:2472 +#: ../gio/gfile.c:2473 msgid "Can't copy directory over directory" msgstr "مۇندەرىجىنى مۇندەرىجىگە كۆچۈرەلمىدى" -#: ../gio/gfile.c:2480 ../gio/glocalfile.c:2267 +#: ../gio/gfile.c:2481 ../gio/glocalfile.c:2267 msgid "Target file exists" msgstr "نىشان ھۆججەت مەۋجۇت" -#: ../gio/gfile.c:2498 +#: ../gio/gfile.c:2499 msgid "Can't recursively copy directory" msgstr "مۇندەرىجىنى قايتىلانما كۆچۈرەلمەيدۇ" -#: ../gio/gfile.c:2758 +#: ../gio/gfile.c:2759 msgid "Splice not supported" msgstr "" -#: ../gio/gfile.c:2762 +#: ../gio/gfile.c:2763 #, c-format msgid "Error splicing file: %s" msgstr "" -#: ../gio/gfile.c:2909 +#: ../gio/gfile.c:2910 msgid "Can't copy special file" msgstr "" -#: ../gio/gfile.c:3483 +#: ../gio/gfile.c:3484 msgid "Invalid symlink value given" msgstr "" -#: ../gio/gfile.c:3577 +#: ../gio/gfile.c:3578 msgid "Trash not supported" msgstr "" -#: ../gio/gfile.c:3626 +#: ../gio/gfile.c:3627 #, c-format msgid "File names cannot contain '%c'" -msgstr "" +msgstr "ھۆججەت ئاتىدا '%c' بولسا بولمايدۇ" -#: ../gio/gfile.c:6003 ../gio/gvolume.c:332 +#: ../gio/gfile.c:6004 ../gio/gvolume.c:332 msgid "volume doesn't implement mount" msgstr "" -#: ../gio/gfile.c:6114 +#: ../gio/gfile.c:6115 msgid "No application is registered as handling this file" msgstr "" @@ -2285,7 +2285,7 @@ msgstr "" #: ../gio/gicon.c:342 #, c-format msgid "Malformed version number: %s" -msgstr "" +msgstr "قۇرۇلمىسى خاتا نەشر نومۇرى: %s" #: ../gio/gicon.c:356 #, c-format @@ -2314,7 +2314,7 @@ msgstr "" #: ../gio/ginetsocketaddress.c:181 ../gio/ginetsocketaddress.c:198 #: ../gio/gunixsocketaddress.c:221 msgid "Not enough space for socket address" -msgstr "" +msgstr "socket ئادرېسى ئۈچۈن يېتەرلىك بوشلۇق يوق" #: ../gio/ginetsocketaddress.c:211 msgid "Unsupported socket address" @@ -2456,128 +2456,128 @@ msgstr "" msgid "<%s id='%s'> already specified" msgstr "<%s id='%s'> ئاللىقاچان بەلگىلەنگەن" -#: ../gio/glib-compile-schemas.c:1385 +#: ../gio/glib-compile-schemas.c:1387 #, c-format msgid "Element <%s> not allowed inside <%s>" -msgstr "" +msgstr "ئېلېمېنت <%s> نى <%s> نىڭ ئىچىدە ئىشلەتكىلى بولمايدۇ" -#: ../gio/glib-compile-schemas.c:1389 +#: ../gio/glib-compile-schemas.c:1391 #, c-format msgid "Element <%s> not allowed at toplevel" msgstr "" -#: ../gio/glib-compile-schemas.c:1483 +#: ../gio/glib-compile-schemas.c:1485 #, c-format msgid "text may not appear inside <%s>" msgstr "" #. Translators: Do not translate "--strict". -#: ../gio/glib-compile-schemas.c:1652 ../gio/glib-compile-schemas.c:1723 -#: ../gio/glib-compile-schemas.c:1799 +#: ../gio/glib-compile-schemas.c:1654 ../gio/glib-compile-schemas.c:1725 +#: ../gio/glib-compile-schemas.c:1801 #, c-format msgid "--strict was specified; exiting.\n" msgstr "" -#: ../gio/glib-compile-schemas.c:1660 +#: ../gio/glib-compile-schemas.c:1662 #, c-format msgid "This entire file has been ignored.\n" msgstr "" -#: ../gio/glib-compile-schemas.c:1719 +#: ../gio/glib-compile-schemas.c:1721 #, c-format msgid "Ignoring this file.\n" -msgstr "" +msgstr "بۇ ھۆججەتكە پەرۋا قىلمايدۇ.\n" -#: ../gio/glib-compile-schemas.c:1759 +#: ../gio/glib-compile-schemas.c:1761 #, c-format msgid "No such key `%s' in schema `%s' as specified in override file `%s'" msgstr "" -#: ../gio/glib-compile-schemas.c:1765 ../gio/glib-compile-schemas.c:1823 -#: ../gio/glib-compile-schemas.c:1851 +#: ../gio/glib-compile-schemas.c:1767 ../gio/glib-compile-schemas.c:1825 +#: ../gio/glib-compile-schemas.c:1853 #, c-format msgid "; ignoring override for this key.\n" msgstr "" -#: ../gio/glib-compile-schemas.c:1769 ../gio/glib-compile-schemas.c:1827 -#: ../gio/glib-compile-schemas.c:1855 +#: ../gio/glib-compile-schemas.c:1771 ../gio/glib-compile-schemas.c:1829 +#: ../gio/glib-compile-schemas.c:1857 #, c-format msgid " and --strict was specified; exiting.\n" msgstr "" -#: ../gio/glib-compile-schemas.c:1785 +#: ../gio/glib-compile-schemas.c:1787 #, c-format msgid "" "error parsing key `%s' in schema `%s' as specified in override file `%s': %" "s. " msgstr "" -#: ../gio/glib-compile-schemas.c:1795 +#: ../gio/glib-compile-schemas.c:1797 #, c-format msgid "Ignoring override for this key.\n" msgstr "" -#: ../gio/glib-compile-schemas.c:1813 +#: ../gio/glib-compile-schemas.c:1815 #, c-format msgid "" "override for key `%s' in schema `%s' in override file `%s' is out of the " "range given in the schema" msgstr "" -#: ../gio/glib-compile-schemas.c:1841 +#: ../gio/glib-compile-schemas.c:1843 #, c-format msgid "" "override for key `%s' in schema `%s' in override file `%s' is not in the " "list of valid choices" msgstr "" -#: ../gio/glib-compile-schemas.c:1895 +#: ../gio/glib-compile-schemas.c:1897 msgid "where to store the gschemas.compiled file" msgstr "" -#: ../gio/glib-compile-schemas.c:1895 ../gio/glib-compile-schemas.c:1908 +#: ../gio/glib-compile-schemas.c:1897 ../gio/glib-compile-schemas.c:1910 msgid "DIRECTORY" msgstr "DIRECTORY" -#: ../gio/glib-compile-schemas.c:1896 +#: ../gio/glib-compile-schemas.c:1898 msgid "Abort on any errors in schemas" msgstr "" -#: ../gio/glib-compile-schemas.c:1897 +#: ../gio/glib-compile-schemas.c:1899 msgid "Do not write the gschema.compiled file" msgstr "" -#: ../gio/glib-compile-schemas.c:1898 +#: ../gio/glib-compile-schemas.c:1900 msgid "This option will be removed soon." msgstr "" -#: ../gio/glib-compile-schemas.c:1899 +#: ../gio/glib-compile-schemas.c:1901 msgid "Do not enforce key name restrictions" msgstr "" -#: ../gio/glib-compile-schemas.c:1911 +#: ../gio/glib-compile-schemas.c:1913 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:1927 +#: ../gio/glib-compile-schemas.c:1929 #, c-format msgid "You should give exactly one directory name\n" msgstr "" -#: ../gio/glib-compile-schemas.c:1966 +#: ../gio/glib-compile-schemas.c:1968 #, c-format msgid "No schema files found: " msgstr "" -#: ../gio/glib-compile-schemas.c:1969 +#: ../gio/glib-compile-schemas.c:1971 #, c-format msgid "doing nothing.\n" msgstr "" -#: ../gio/glib-compile-schemas.c:1972 +#: ../gio/glib-compile-schemas.c:1974 #, c-format msgid "removed existing output file.\n" msgstr "" @@ -2594,7 +2594,7 @@ msgstr "ئىناۋەتسىز ھۆججەت ئاتى %s" #: ../gio/glocalfile.c:967 #, c-format msgid "Error getting filesystem info: %s" -msgstr "" +msgstr "ھۆججەت سىستېمىسى ئۇچۇرلىرىنى ئېلىۋاتقاندا خاتالىق كۆرۈلدى: %s" #: ../gio/glocalfile.c:1105 msgid "Can't rename root directory" @@ -2603,7 +2603,7 @@ msgstr "غول مۇندەرىجە ئاتىنى ئۆزگەرتكىلى بولما #: ../gio/glocalfile.c:1125 ../gio/glocalfile.c:1151 #, c-format msgid "Error renaming file: %s" -msgstr "" +msgstr "ھۆججەت ئاتىنى ئۆزگەرتىۋاتقاندا خاتالىق كۆرۈلدى: %s" #: ../gio/glocalfile.c:1134 msgid "Can't rename file, filename already exist" @@ -2628,7 +2628,7 @@ msgstr "مۇندەرىجە ئاچالمىدى" #: ../gio/glocalfile.c:1443 #, c-format msgid "Error removing file: %s" -msgstr "" +msgstr "ھۆججەتنى ئۆچۈرۈۋاتقاندا خاتالىق كۆرۈلدى: %s" #: ../gio/glocalfile.c:1810 #, c-format @@ -2748,12 +2748,12 @@ msgstr "" #: ../gio/glocalfileinfo.c:1921 #, c-format msgid "Error setting permissions: %s" -msgstr "" +msgstr "ھوقۇقلىرىنى بېكىتىۋاتقاندا خاتالىق كۆرۈلدى: %s" #: ../gio/glocalfileinfo.c:1972 #, c-format msgid "Error setting owner: %s" -msgstr "" +msgstr "ئىگىسىنى بېكىتىۋاتقاندا خاتالىق كۆرۈلدى: %s" #: ../gio/glocalfileinfo.c:1995 msgid "symlink must be non-NULL" @@ -2763,11 +2763,11 @@ msgstr "" #: ../gio/glocalfileinfo.c:2035 #, c-format msgid "Error setting symlink: %s" -msgstr "" +msgstr "symlink نى بېكىتىۋاتقاندا خاتالىق كۆرۈلدى: %s" #: ../gio/glocalfileinfo.c:2014 msgid "Error setting symlink: file is not a symlink" -msgstr "" +msgstr "symlink نى بېكىتىۋاتقاندا خاتالىق كۆرۈلدى: ھۆججەت symlink ئەمەس" #: ../gio/glocalfileinfo.c:2140 #, c-format @@ -2795,7 +2795,7 @@ msgstr "" #: ../gio/glocalfileinputstream.c:185 ../gio/glocalfileoutputstream.c:722 #, c-format msgid "Error reading from file: %s" -msgstr "" +msgstr "ھۆججەتتىن ئوقۇۋاتقاندا خاتالىق كۆرۈلدى: %s" #: ../gio/glocalfileinputstream.c:216 ../gio/glocalfileinputstream.c:228 #: ../gio/glocalfileinputstream.c:340 ../gio/glocalfileoutputstream.c:470 @@ -2808,7 +2808,7 @@ msgstr "" #: ../gio/glocalfileoutputstream.c:351 #, c-format msgid "Error closing file: %s" -msgstr "" +msgstr "ھۆججەتنى يېپىۋاتقاندا خاتالىق كۆرۈلدى: %s" #: ../gio/glocalfilemonitor.c:212 msgid "Unable to find default local file monitor type" @@ -2818,12 +2818,12 @@ msgstr "" #: ../gio/glocalfileoutputstream.c:743 #, c-format msgid "Error writing to file: %s" -msgstr "" +msgstr "ھۆججەتكە يېزىۋاتقاندا خاتالىق كۆرۈلدى: %s" #: ../gio/glocalfileoutputstream.c:283 #, c-format msgid "Error removing old backup link: %s" -msgstr "" +msgstr "كونا زاپاسنىڭ ئۇلانمىسىنى ئۆچۈرۈۋاتقاندا خاتالىق كۆرۈلدى: %s" #: ../gio/glocalfileoutputstream.c:297 ../gio/glocalfileoutputstream.c:310 #, c-format @@ -2833,7 +2833,7 @@ msgstr "" #: ../gio/glocalfileoutputstream.c:328 #, c-format msgid "Error renaming temporary file: %s" -msgstr "" +msgstr "ۋاقىتلىق ھۆججەت ئاتىنى ئۆزگەرتىۋاتقاندا خاتالىق كۆرۈلدى: %s" #: ../gio/glocalfileoutputstream.c:516 ../gio/glocalfileoutputstream.c:1077 #, c-format @@ -2845,7 +2845,7 @@ msgstr "" #: ../gio/glocalfileoutputstream.c:1058 ../gio/glocalfileoutputstream.c:1157 #, c-format msgid "Error opening file '%s': %s" -msgstr "" +msgstr "ھۆججەت '%s' نى ئېچىۋاتقاندا خاتالىق كۆرۈلدى: %s" #: ../gio/glocalfileoutputstream.c:846 msgid "Target file is a directory" @@ -2862,7 +2862,7 @@ msgstr "ھۆججەتنى باشقا پروگرامما ئۆزگەرتكەن" #: ../gio/glocalfileoutputstream.c:1042 #, c-format msgid "Error removing old file: %s" -msgstr "" +msgstr "كونا ھۆججەتنى ئۆچۈرۈۋاتقاندا خاتالىق كۆرۈلدى: %s" #: ../gio/gmemoryinputstream.c:486 ../gio/gmemoryoutputstream.c:746 msgid "Invalid GSeekType supplied" @@ -2878,7 +2878,7 @@ msgstr "" #: ../gio/gmemoryoutputstream.c:496 msgid "Memory output stream not resizable" -msgstr "" +msgstr "ئەسلەك چىقىرىش ئېقىمىنىڭ چوڭلۇقىنى ئۆزگەرتكىلى بولمايدۇ" #: ../gio/gmemoryoutputstream.c:512 msgid "Failed to resize memory output stream" @@ -2954,7 +2954,7 @@ msgstr "" #: ../gio/goutputstream.c:207 ../gio/goutputstream.c:408 msgid "Output stream doesn't implement write" -msgstr "" +msgstr "چىقىرىش ئېقىمىدا يېزىشنى ئىشلەتكىلى بولمايدۇ" #: ../gio/goutputstream.c:369 ../gio/goutputstream.c:849 msgid "Source stream is already closed" @@ -3003,7 +3003,7 @@ msgstr "" #: ../gio/gsettings-tool.c:92 #, c-format msgid "Empty path given.\n" -msgstr "" +msgstr "بېرىلگەن يول قۇرۇق.\n" #: ../gio/gsettings-tool.c:98 #, c-format @@ -3025,84 +3025,84 @@ msgstr "" msgid "No such key '%s'\n" msgstr "" -#: ../gio/gsettings-tool.c:427 +#: ../gio/gsettings-tool.c:429 #, c-format msgid "The provided value is outside of the valid range\n" msgstr "" -#: ../gio/gsettings-tool.c:456 +#: ../gio/gsettings-tool.c:458 msgid "List the installed (non-relocatable) schemas" msgstr "" -#: ../gio/gsettings-tool.c:462 +#: ../gio/gsettings-tool.c:464 msgid "List the installed relocatable schemas" msgstr "" -#: ../gio/gsettings-tool.c:468 +#: ../gio/gsettings-tool.c:470 msgid "Lists the keys in SCHEMA" msgstr "" -#: ../gio/gsettings-tool.c:469 ../gio/gsettings-tool.c:475 -#: ../gio/gsettings-tool.c:481 +#: ../gio/gsettings-tool.c:471 ../gio/gsettings-tool.c:477 +#: ../gio/gsettings-tool.c:483 msgid "SCHEMA[:PATH]" msgstr "" -#: ../gio/gsettings-tool.c:474 +#: ../gio/gsettings-tool.c:476 msgid "Lists the children of SCHEMA" msgstr "" -#: ../gio/gsettings-tool.c:480 +#: ../gio/gsettings-tool.c:482 msgid "List keys and values, recursively" msgstr "" -#: ../gio/gsettings-tool.c:486 +#: ../gio/gsettings-tool.c:488 msgid "Gets the value of KEY" msgstr "" -#: ../gio/gsettings-tool.c:487 ../gio/gsettings-tool.c:493 -#: ../gio/gsettings-tool.c:505 ../gio/gsettings-tool.c:511 +#: ../gio/gsettings-tool.c:489 ../gio/gsettings-tool.c:495 +#: ../gio/gsettings-tool.c:507 ../gio/gsettings-tool.c:513 msgid "SCHEMA[:PATH] KEY" msgstr "" -#: ../gio/gsettings-tool.c:492 +#: ../gio/gsettings-tool.c:494 msgid "Queries the range of valid values for KEY" msgstr "" -#: ../gio/gsettings-tool.c:498 +#: ../gio/gsettings-tool.c:500 msgid "Sets the value of KEY to VALUE" msgstr "" -#: ../gio/gsettings-tool.c:499 +#: ../gio/gsettings-tool.c:501 msgid "SCHEMA[:PATH] KEY VALUE" msgstr "" -#: ../gio/gsettings-tool.c:504 +#: ../gio/gsettings-tool.c:506 msgid "Resets KEY to its default value" msgstr "" -#: ../gio/gsettings-tool.c:510 +#: ../gio/gsettings-tool.c:512 msgid "Checks if KEY is writable" msgstr "" -#: ../gio/gsettings-tool.c:516 +#: ../gio/gsettings-tool.c:518 msgid "" "Monitors 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:519 +#: ../gio/gsettings-tool.c:521 msgid "SCHEMA[:PATH] [KEY]" msgstr "" -#: ../gio/gsettings-tool.c:523 +#: ../gio/gsettings-tool.c:525 #, c-format msgid "" "Unknown command %s\n" "\n" msgstr "" -#: ../gio/gsettings-tool.c:531 +#: ../gio/gsettings-tool.c:533 msgid "" "Usage:\n" " gsettings COMMAND [ARGS...]\n" @@ -3125,7 +3125,7 @@ msgid "" "\n" msgstr "" -#: ../gio/gsettings-tool.c:552 +#: ../gio/gsettings-tool.c:554 #, c-format msgid "" "Usage:\n" @@ -3135,149 +3135,149 @@ msgid "" "\n" msgstr "" -#: ../gio/gsettings-tool.c:557 +#: ../gio/gsettings-tool.c:559 msgid "Arguments:\n" msgstr "ئەركىن ئۆزگەرگۈچى:\n" -#: ../gio/gsettings-tool.c:561 +#: ../gio/gsettings-tool.c:563 msgid "" " SCHEMA The name of the schema\n" " PATH The path, for relocatable schemas\n" msgstr "" -#: ../gio/gsettings-tool.c:566 +#: ../gio/gsettings-tool.c:568 msgid " KEY The (optional) key within the schema\n" msgstr "" -#: ../gio/gsettings-tool.c:570 +#: ../gio/gsettings-tool.c:572 msgid " KEY The key within the schema\n" msgstr "" -#: ../gio/gsettings-tool.c:574 +#: ../gio/gsettings-tool.c:576 msgid " VALUE The value to set\n" msgstr "" -#: ../gio/gsettings-tool.c:650 +#: ../gio/gsettings-tool.c:652 #, c-format msgid "Empty schema name given" msgstr "" -#: ../gio/gsocket.c:276 +#: ../gio/gsocket.c:277 msgid "Invalid socket, not initialized" -msgstr "" +msgstr "socket ئىناۋەتسىز، دەسلەپلەشتۈرۈلمىگەن" -#: ../gio/gsocket.c:283 +#: ../gio/gsocket.c:284 #, c-format msgid "Invalid socket, initialization failed due to: %s" msgstr "" -#: ../gio/gsocket.c:291 +#: ../gio/gsocket.c:292 msgid "Socket is already closed" msgstr "" -#: ../gio/gsocket.c:299 ../gio/gsocket.c:2734 ../gio/gsocket.c:2778 +#: ../gio/gsocket.c:300 ../gio/gsocket.c:2765 ../gio/gsocket.c:2809 msgid "Socket I/O timed out" msgstr "" -#: ../gio/gsocket.c:442 +#: ../gio/gsocket.c:443 #, c-format msgid "creating GSocket from fd: %s" msgstr "" -#: ../gio/gsocket.c:476 ../gio/gsocket.c:492 ../gio/gsocket.c:2134 +#: ../gio/gsocket.c:477 ../gio/gsocket.c:493 ../gio/gsocket.c:2135 #, c-format msgid "Unable to create socket: %s" msgstr "" -#: ../gio/gsocket.c:476 +#: ../gio/gsocket.c:477 msgid "Unknown protocol was specified" msgstr "" -#: ../gio/gsocket.c:1245 +#: ../gio/gsocket.c:1246 #, c-format msgid "could not get local address: %s" msgstr "" -#: ../gio/gsocket.c:1288 +#: ../gio/gsocket.c:1289 #, c-format msgid "could not get remote address: %s" msgstr "" -#: ../gio/gsocket.c:1349 +#: ../gio/gsocket.c:1350 #, c-format msgid "could not listen: %s" msgstr "" -#: ../gio/gsocket.c:1423 +#: ../gio/gsocket.c:1424 #, c-format msgid "Error binding to address: %s" -msgstr "" +msgstr "ئادرېسقا باغلاۋاتقاندا خاتالىق كۆرۈلدى: %s" -#: ../gio/gsocket.c:1543 +#: ../gio/gsocket.c:1544 #, c-format msgid "Error accepting connection: %s" -msgstr "" +msgstr "باغلىنىشنى قوبۇل قىلىۋاتقاندا خاتالىق كۆرۈلدى: %s" -#: ../gio/gsocket.c:1660 +#: ../gio/gsocket.c:1661 msgid "Error connecting: " -msgstr "" +msgstr "باغلىنىۋاتقاندا خاتالىق كۆرۈلدى: " -#: ../gio/gsocket.c:1665 +#: ../gio/gsocket.c:1666 msgid "Connection in progress" msgstr "" -#: ../gio/gsocket.c:1672 +#: ../gio/gsocket.c:1673 #, c-format msgid "Error connecting: %s" msgstr "باغلىنىشتا خاتالىق كۆرۈلدى: %s" -#: ../gio/gsocket.c:1715 ../gio/gsocket.c:3497 +#: ../gio/gsocket.c:1716 ../gio/gsocket.c:3528 #, c-format msgid "Unable to get pending error: %s" msgstr "" -#: ../gio/gsocket.c:1847 +#: ../gio/gsocket.c:1848 #, c-format msgid "Error receiving data: %s" -msgstr "" +msgstr "سانلىق-مەلۇمات قوبۇل قىلىۋاتقاندا خاتالىق كۆرۈلدى: %s" -#: ../gio/gsocket.c:2021 +#: ../gio/gsocket.c:2022 #, c-format msgid "Error sending data: %s" -msgstr "" +msgstr "سانلىق-مەلۇمات يوللاۋاتقاندا خاتالىق كۆرۈلدى: %s" -#: ../gio/gsocket.c:2213 +#: ../gio/gsocket.c:2214 #, c-format msgid "Error closing socket: %s" -msgstr "" +msgstr "سوكەتنى يېپىۋاتقاندا خاتالىق كۆرۈلدى: %s" -#: ../gio/gsocket.c:2727 +#: ../gio/gsocket.c:2758 #, c-format msgid "Waiting for socket condition: %s" msgstr "" -#: ../gio/gsocket.c:3017 +#: ../gio/gsocket.c:3048 msgid "GSocketControlMessage not supported on windows" msgstr "" -#: ../gio/gsocket.c:3276 ../gio/gsocket.c:3417 +#: ../gio/gsocket.c:3307 ../gio/gsocket.c:3448 #, c-format msgid "Error receiving message: %s" -msgstr "" +msgstr "ئۇچۇر قوبۇل قىلىۋاتقاندا خاتالىق كۆرۈلدى: %s" -#: ../gio/gsocket.c:3512 +#: ../gio/gsocket.c:3543 msgid "g_socket_get_credentials not implemented for this OS" msgstr "" -#: ../gio/gsocketclient.c:674 ../gio/gsocketclient.c:1152 +#: ../gio/gsocketclient.c:798 ../gio/gsocketclient.c:1368 msgid "Unknown error on connect" msgstr "" -#: ../gio/gsocketclient.c:711 ../gio/gsocketclient.c:1037 +#: ../gio/gsocketclient.c:836 ../gio/gsocketclient.c:1252 msgid "Trying to proxy over non-TCP connection is not supported." msgstr "" -#: ../gio/gsocketclient.c:749 ../gio/gsocketclient.c:1060 +#: ../gio/gsocketclient.c:858 ../gio/gsocketclient.c:1277 #, c-format msgid "Proxy protocol '%s' is not supported." msgstr "" @@ -3324,7 +3324,8 @@ msgstr "" #: ../gio/gsocks5proxy.c:179 msgid "" -"The SOCKSv5 require an authentication method that is not supported by GLib." +"The SOCKSv5 proxy requires an authentication method that is not supported by " +"GLib." msgstr "" #: ../gio/gsocks5proxy.c:208 @@ -3339,7 +3340,7 @@ msgstr "" #: ../gio/gsocks5proxy.c:289 #, c-format msgid "Hostname '%s' too long for SOCKSv5 protocol (maximum is %i bytes)" -msgstr "" +msgstr "باش ئاپپارات ئاتى '%s' بەك ئۇزۇن، SOCKSv5 كېلىشىمىدە ئىشلەتكىلى بولمايدۇ(ئەڭ چوڭ بولغاندا %i بولىدۇ)" #: ../gio/gsocks5proxy.c:352 msgid "The SOCKSv5 proxy server uses unkown address type." @@ -3347,7 +3348,7 @@ msgstr "" #: ../gio/gsocks5proxy.c:359 msgid "Internal SOCKSv5 proxy server error." -msgstr "" +msgstr "ئىچكى SOCKSv5 ۋاكالەتچى مۇلازىمېتىر خاتا." #: ../gio/gsocks5proxy.c:365 msgid "SOCKSv5 connection not allowed by ruleset." @@ -3355,11 +3356,11 @@ msgstr "" #: ../gio/gsocks5proxy.c:372 msgid "Host unreachable through SOCKSv5 server." -msgstr "" +msgstr "SOCKSv5 مۇلازىمېتىرىدىن باش ئاپپاراتنى كۆرگىلى بولمايدۇ" #: ../gio/gsocks5proxy.c:378 msgid "Network unreachable through SOCKSv5 proxy." -msgstr "" +msgstr "SOCKSv5 ۋاكالەتچى مۇلازىمېتىرىدىن تور كۆرۈنمىدى." #: ../gio/gsocks5proxy.c:384 msgid "Connection refused through SOCKSv5 proxy." @@ -3374,7 +3375,7 @@ msgid "SOCKSv5 proxy does not support provided address type." msgstr "" #: ../gio/gsocks5proxy.c:402 -msgid "Unkown SOCKSv5 proxy error." +msgid "Unknown SOCKSv5 proxy error." msgstr "" #: ../gio/gthemedicon.c:498 @@ -3382,6 +3383,18 @@ msgstr "" msgid "Can't handle version %d of GThemedIcon encoding" msgstr "" +#: ../gio/gtlscertificate.c:228 +msgid "No PEM-encoded certificate found" +msgstr "" + +#: ../gio/gtlscertificate.c:237 +msgid "Could not parse PEM-encoded certificate" +msgstr "" + +#: ../gio/gtlscertificate.c:258 +msgid "Could not parse PEM-encoded private key" +msgstr "" + #: ../gio/gunixconnection.c:164 ../gio/gunixconnection.c:505 #, c-format msgid "Expecting 1 control message, got %d" @@ -3398,7 +3411,7 @@ msgstr "" #: ../gio/gunixconnection.c:211 msgid "Received invalid fd" -msgstr "" +msgstr "ئىناۋەتسىز fd تاپشۇرۇۋالدى" #: ../gio/gunixconnection.c:359 msgid "Error sending credentials: " @@ -3419,7 +3432,7 @@ msgstr "" #: ../gio/gunixconnection.c:465 #, c-format msgid "Error enabling SO_PASSCRED: %s" -msgstr "" +msgstr "SO_PASSCRED نى قوزغىتىۋاتقاندا(ئىناۋەتلىك قىلىۋاتقاندا)خاتالىق كۆرۈلدى: %s" #: ../gio/gunixconnection.c:495 msgid "" @@ -3429,29 +3442,29 @@ msgstr "" #: ../gio/gunixconnection.c:538 #, c-format msgid "Error while disabling SO_PASSCRED: %s" -msgstr "" +msgstr "SO_PASSCRED نى چەكلەۋاتقاندا خاتالىق كۆرۈلدى: %s" -#: ../gio/gunixinputstream.c:353 ../gio/gunixinputstream.c:373 -#: ../gio/gunixinputstream.c:451 +#: ../gio/gunixinputstream.c:368 ../gio/gunixinputstream.c:388 +#: ../gio/gunixinputstream.c:466 #, c-format msgid "Error reading from unix: %s" -msgstr "" +msgstr "unix دىن ئوقۇۋاتقاندا خاتالىق كۆرۈلدى: %s" -#: ../gio/gunixinputstream.c:406 ../gio/gunixinputstream.c:586 -#: ../gio/gunixoutputstream.c:393 ../gio/gunixoutputstream.c:542 +#: ../gio/gunixinputstream.c:421 ../gio/gunixinputstream.c:601 +#: ../gio/gunixoutputstream.c:407 ../gio/gunixoutputstream.c:556 #, c-format msgid "Error closing unix: %s" -msgstr "" +msgstr "unix نى يېپىۋاتقاندا خاتالىق كۆرۈلدى: %s" #: ../gio/gunixmounts.c:1846 ../gio/gunixmounts.c:1883 msgid "Filesystem root" -msgstr "" +msgstr "ھۆججەت سىستېمىسى غولى" -#: ../gio/gunixoutputstream.c:339 ../gio/gunixoutputstream.c:360 -#: ../gio/gunixoutputstream.c:438 +#: ../gio/gunixoutputstream.c:353 ../gio/gunixoutputstream.c:374 +#: ../gio/gunixoutputstream.c:452 #, c-format msgid "Error writing to unix: %s" -msgstr "" +msgstr "unix قا يېزىۋاتقاندا خاتالىق كۆرۈلدى: %s" #: ../gio/gunixsocketaddress.c:244 msgid "Abstract unix domain socket addresses not supported on this system" @@ -3475,7 +3488,7 @@ msgstr "پروگراممىنى تاپقىلى بولمىدى" #: ../gio/gwin32appinfo.c:299 #, c-format msgid "Error launching application: %s" -msgstr "" +msgstr "پروگراممىنى ئىجرا قىلىۋاتقاندا خاتالىق كۆرۈلدى: %s" #: ../gio/gwin32appinfo.c:335 msgid "URIs not supported" @@ -3492,7 +3505,7 @@ msgstr "" #: ../gio/gwin32inputstream.c:318 #, c-format msgid "Error reading from handle: %s" -msgstr "" +msgstr "handle دىن ئوقۇۋاتقاندا خاتالىق كۆرۈلدى: %s" #: ../gio/gwin32inputstream.c:348 ../gio/gwin32outputstream.c:348 #, c-format @@ -3506,7 +3519,7 @@ msgstr "" #: ../gio/gzlibcompressor.c:396 ../gio/gzlibdecompressor.c:349 msgid "Not enough memory" -msgstr "يېتەرلىك ئەسلەك يوق" +msgstr "يېتەرلىك ئەسلەك يوق" #: ../gio/gzlibcompressor.c:403 ../gio/gzlibdecompressor.c:356 #, c-format diff --git a/po/vi.po b/po/vi.po index 7f1bdc81f..74c144508 100644 --- a/po/vi.po +++ b/po/vi.po @@ -2,14 +2,15 @@ # Copyright © 2010 GNOME i18n Project for Vietnamese. # T.M.Thanh , 2002. # Clytie Siddall , 2005-2010. -# Nguyễn Thái Ngọc Duy , 2009. +# Nguyễn Thái Ngọc Duy , 2009-2010. # msgid "" msgstr "" "Project-Id-Version: glib 2.19.6\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-06-07 21:37-0400\n" -"PO-Revision-Date: 2010-03-22 21:32+0930\n" +"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?" +"product=glib&component=general\n" +"POT-Creation-Date: 2010-12-20 10:27+0000\n" +"PO-Revision-Date: 2010-12-21 19:51+0700\n" "Last-Translator: Clytie Siddall \n" "Language-Team: Vietnamese \n" "MIME-Version: 1.0\n" @@ -18,394 +19,621 @@ msgstr "" "Plural-Forms: nplurals=1; plural=0;\n" "X-Generator: LocFactoryEditor 1.8\n" -#: glib/gbookmarkfile.c:737 +#: ../glib/gbookmarkfile.c:780 #, c-format msgid "Unexpected attribute '%s' for element '%s'" msgstr "Thuộc tính bất thường '%s' cho yếu tố '%s'" -#: glib/gbookmarkfile.c:748 glib/gbookmarkfile.c:819 glib/gbookmarkfile.c:829 -#: glib/gbookmarkfile.c:936 +#: ../glib/gbookmarkfile.c:791 ../glib/gbookmarkfile.c:862 +#: ../glib/gbookmarkfile.c:872 ../glib/gbookmarkfile.c:979 #, c-format msgid "Attribute '%s' of element '%s' not found" msgstr "Không tìm thấy thuộc tính '%s' của yếu tố '%s'" -#: glib/gbookmarkfile.c:1106 glib/gbookmarkfile.c:1171 -#: glib/gbookmarkfile.c:1235 glib/gbookmarkfile.c:1245 +#: ../glib/gbookmarkfile.c:1149 ../glib/gbookmarkfile.c:1214 +#: ../glib/gbookmarkfile.c:1278 ../glib/gbookmarkfile.c:1288 #, c-format msgid "Unexpected tag '%s', tag '%s' expected" msgstr "Thẻ bất thường '%s', mong đợi thẻ '%s'" -#: glib/gbookmarkfile.c:1131 glib/gbookmarkfile.c:1145 -#: glib/gbookmarkfile.c:1213 glib/gbookmarkfile.c:1265 +#: ../glib/gbookmarkfile.c:1174 ../glib/gbookmarkfile.c:1188 +#: ../glib/gbookmarkfile.c:1256 ../glib/gbookmarkfile.c:1308 #, c-format msgid "Unexpected tag '%s' inside '%s'" msgstr "Thẻ bất thường '%s' bên trong '%s'" -#: glib/gbookmarkfile.c:1793 +#: ../glib/gbookmarkfile.c:1834 msgid "No valid bookmark file found in data dirs" msgstr "Không tìm thấy tập tin liên kết lưu hợp lệ trong các thư mục dữ liệu" -#: glib/gbookmarkfile.c:1994 +#: ../glib/gbookmarkfile.c:2035 #, c-format msgid "A bookmark for URI '%s' already exists" msgstr "Một liên kết lưu URI '%s' đã có" -#: glib/gbookmarkfile.c:2040 glib/gbookmarkfile.c:2198 -#: glib/gbookmarkfile.c:2283 glib/gbookmarkfile.c:2363 -#: glib/gbookmarkfile.c:2448 glib/gbookmarkfile.c:2531 -#: glib/gbookmarkfile.c:2609 glib/gbookmarkfile.c:2688 -#: glib/gbookmarkfile.c:2730 glib/gbookmarkfile.c:2827 -#: glib/gbookmarkfile.c:2953 glib/gbookmarkfile.c:3143 -#: glib/gbookmarkfile.c:3219 glib/gbookmarkfile.c:3384 -#: glib/gbookmarkfile.c:3473 glib/gbookmarkfile.c:3563 -#: glib/gbookmarkfile.c:3691 +#: ../glib/gbookmarkfile.c:2081 ../glib/gbookmarkfile.c:2239 +#: ../glib/gbookmarkfile.c:2324 ../glib/gbookmarkfile.c:2404 +#: ../glib/gbookmarkfile.c:2489 ../glib/gbookmarkfile.c:2572 +#: ../glib/gbookmarkfile.c:2650 ../glib/gbookmarkfile.c:2729 +#: ../glib/gbookmarkfile.c:2771 ../glib/gbookmarkfile.c:2868 +#: ../glib/gbookmarkfile.c:2994 ../glib/gbookmarkfile.c:3184 +#: ../glib/gbookmarkfile.c:3260 ../glib/gbookmarkfile.c:3425 +#: ../glib/gbookmarkfile.c:3514 ../glib/gbookmarkfile.c:3604 +#: ../glib/gbookmarkfile.c:3732 #, c-format msgid "No bookmark found for URI '%s'" msgstr "Không tìm thấy liên kết lưu URI '%s'" -#: glib/gbookmarkfile.c:2372 +#: ../glib/gbookmarkfile.c:2413 #, c-format msgid "No MIME type defined in the bookmark for URI '%s'" msgstr "Chưa xác định kiểu MIME trong liên kết lưu URI '%s'" -#: glib/gbookmarkfile.c:2457 +#: ../glib/gbookmarkfile.c:2498 #, c-format msgid "No private flag has been defined in bookmark for URI '%s'" msgstr "Chưa xác định cờ riêng trong liên kết lưu URI '%s'" -#: glib/gbookmarkfile.c:2836 +#: ../glib/gbookmarkfile.c:2877 #, c-format msgid "No groups set in bookmark for URI '%s'" msgstr "Chưa đặt nhóm trong liên kết lưu URI '%s'" -#: glib/gbookmarkfile.c:3237 glib/gbookmarkfile.c:3394 +#: ../glib/gbookmarkfile.c:3278 ../glib/gbookmarkfile.c:3435 #, c-format msgid "No application with name '%s' registered a bookmark for '%s'" msgstr "Không có ứng dụng tên '%s' đã đăng ký một liên kết lưu '%s'" -#: glib/gbookmarkfile.c:3417 +#: ../glib/gbookmarkfile.c:3458 #, c-format msgid "Failed to expand exec line '%s' with URI '%s'" msgstr "Lỗi mở rộng dòng thực hiện '%s' bằng URI '%s'" -#: glib/gconvert.c:437 glib/gconvert.c:515 glib/giochannel.c:1404 -#: gio/gcharsetconverter.c:459 +#: ../glib/gconvert.c:567 ../glib/gconvert.c:645 ../glib/giochannel.c:1403 +#: ../gio/gcharsetconverter.c:458 #, c-format msgid "Conversion from character set '%s' to '%s' is not supported" -msgstr "Không hỗ trợ khả năng chuyển đổi từ bộ ký tự '%s' sang '%s'" +msgstr "Không hỗ trợ việc chuyển từ đặt ký tự '%s' thành '%s'" -#: glib/gconvert.c:441 glib/gconvert.c:519 gio/gcharsetconverter.c:463 +#: ../glib/gconvert.c:571 ../glib/gconvert.c:649 +#: ../gio/gcharsetconverter.c:462 #, c-format msgid "Could not open converter from '%s' to '%s'" -msgstr "Không thể mở bộ chuyển đổi từ '%s' sang '%s'" +msgstr "Không thể mở trình chuyển đổi từ '%s' sang '%s'" -#: glib/gconvert.c:638 glib/gconvert.c:1031 glib/giochannel.c:1576 -#: glib/giochannel.c:1618 glib/giochannel.c:2462 glib/gutf8.c:989 -#: glib/gutf8.c:1444 gio/gcharsetconverter.c:346 +#: ../glib/gconvert.c:768 ../glib/gconvert.c:1161 ../glib/giochannel.c:1575 +#: ../glib/giochannel.c:1617 ../glib/giochannel.c:2461 ../glib/gutf8.c:992 +#: ../glib/gutf8.c:1447 ../gio/gcharsetconverter.c:345 msgid "Invalid byte sequence in conversion input" -msgstr "Gặp dây byte không hợp lệ trong dữ liệu nhập chuyển đổi" +msgstr "Byte sequence không hợp lệ trong phần nhập chuyển đổi" -#: glib/gconvert.c:646 glib/gconvert.c:956 glib/giochannel.c:1583 -#: glib/giochannel.c:2474 gio/gcharsetconverter.c:351 +#: ../glib/gconvert.c:776 ../glib/gconvert.c:1086 ../glib/giochannel.c:1582 +#: ../glib/giochannel.c:2473 ../gio/gcharsetconverter.c:350 #, c-format msgid "Error during conversion: %s" -msgstr "Gặp lỗi khi chuyển đổi: %s" +msgstr "Lỗi khi chuyển đổi: %s" -#: glib/gconvert.c:678 glib/gutf8.c:985 glib/gutf8.c:1195 glib/gutf8.c:1336 -#: glib/gutf8.c:1440 +#: ../glib/gconvert.c:808 ../glib/gutf8.c:988 ../glib/gutf8.c:1198 +#: ../glib/gutf8.c:1339 ../glib/gutf8.c:1443 msgid "Partial character sequence at end of input" -msgstr "Dây ký tự riêng phần ở cuối dữ liệu nhập" +msgstr "Character sequence riêng phần ở cuối đầu vào" -#: glib/gconvert.c:928 +#: ../glib/gconvert.c:1058 #, c-format msgid "Cannot convert fallback '%s' to codeset '%s'" -msgstr "Không thể chuyển đổi đồ dữ trữ '%s' thành bộ mã '%s'" +msgstr "Không thể chuyển đổi fallback '%s' thành codeset '%s'" -#: glib/gconvert.c:1751 +#: ../glib/gconvert.c:1881 #, c-format msgid "The URI '%s' is not an absolute URI using the \"file\" scheme" -msgstr "" -"URI '%s' không phải là một URI tuyệt đối sử dụng lược đồ 'file' (tập tin)" +msgstr "URI '%s' không phải URI tuyệt đối sử dụng lược đồ tập tin" -#: glib/gconvert.c:1761 +#: ../glib/gconvert.c:1891 #, c-format msgid "The local file URI '%s' may not include a '#'" -msgstr "Không cho phép URI tập tin cục bộ '%s' chứa dấu thăng '#'" +msgstr "URI tập tin cục bộ '%s' có thể không bao gồm '#'" -#: glib/gconvert.c:1778 +#: ../glib/gconvert.c:1908 #, c-format msgid "The URI '%s' is invalid" msgstr "URI '%s' không hợp lệ" -#: glib/gconvert.c:1790 +#: ../glib/gconvert.c:1920 #, c-format msgid "The hostname of the URI '%s' is invalid" -msgstr "Tên máy của URI '%s' không hợp lệ" +msgstr "Tên chủ của URI '%s' không hợp lệ" -#: glib/gconvert.c:1806 +#: ../glib/gconvert.c:1936 #, c-format msgid "The URI '%s' contains invalidly escaped characters" -msgstr "URI '%s' chứa một số ký tự đã thoát không hợp lệ" +msgstr "URI '%s' chứa không hợp lệ các ký tự thoát" -#: glib/gconvert.c:1901 +#: ../glib/gconvert.c:2031 #, c-format msgid "The pathname '%s' is not an absolute path" -msgstr "Tên đường dẫn '%s' không phải là một đường dẫn tuyệt đối" +msgstr "Tên đường dẫn '%s' không phải một đường dẫn tuyệt đối" -#: glib/gconvert.c:1911 +#: ../glib/gconvert.c:2041 msgid "Invalid hostname" -msgstr "Tên máy không hợp lệ" +msgstr "Tên chủ không hợp lệ" -#: glib/gdir.c:112 glib/gdir.c:135 +#. Translators: 'before midday' indicator +#: ../glib/gdatetime.c:149 +msgctxt "GDateTime" +msgid "am" +msgstr "am" + +#. Translators: 'before midday' indicator +#: ../glib/gdatetime.c:151 +msgctxt "GDateTime" +msgid "AM" +msgstr "AM" + +#. Translators: 'after midday' indicator +#: ../glib/gdatetime.c:153 +msgctxt "GDateTime" +msgid "pm" +msgstr "pm" + +#. Translators: 'after midday' indicator +#: ../glib/gdatetime.c:155 +msgctxt "GDateTime" +msgid "PM" +msgstr "PM" + +#. Translators: this is the preferred format for expressing the date +#: ../glib/gdatetime.c:164 +msgctxt "GDateTime" +msgid "%m/%d/%y" +msgstr "%d/%m/%y" + +#. Translators: this is the preferred format for expressing the time +#: ../glib/gdatetime.c:167 +msgctxt "GDateTime" +msgid "%H:%M:%S" +msgstr "%H:%M:%S" + +#: ../glib/gdatetime.c:193 +msgctxt "full month name" +msgid "January" +msgstr "Tháng giêng" + +#: ../glib/gdatetime.c:195 +msgctxt "full month name" +msgid "February" +msgstr "Tháng hai" + +#: ../glib/gdatetime.c:197 +msgctxt "full month name" +msgid "March" +msgstr "Tháng ba" + +#: ../glib/gdatetime.c:199 +msgctxt "full month name" +msgid "April" +msgstr "Tháng tư" + +#: ../glib/gdatetime.c:201 +msgctxt "full month name" +msgid "May" +msgstr "Tháng năm" + +#: ../glib/gdatetime.c:203 +msgctxt "full month name" +msgid "June" +msgstr "Tháng sáu" + +#: ../glib/gdatetime.c:205 +msgctxt "full month name" +msgid "July" +msgstr "Tháng bảy" + +#: ../glib/gdatetime.c:207 +msgctxt "full month name" +msgid "August" +msgstr "Tháng tám" + +#: ../glib/gdatetime.c:209 +msgctxt "full month name" +msgid "September" +msgstr "Tháng chín" + +#: ../glib/gdatetime.c:211 +msgctxt "full month name" +msgid "October" +msgstr "Tháng mười" + +#: ../glib/gdatetime.c:213 +msgctxt "full month name" +msgid "November" +msgstr "Tháng mười một" + +#: ../glib/gdatetime.c:215 +msgctxt "full month name" +msgid "December" +msgstr "Tháng mười hai" + +#: ../glib/gdatetime.c:230 +msgctxt "abbreviated month name" +msgid "Jan" +msgstr "Th1" + +#: ../glib/gdatetime.c:232 +msgctxt "abbreviated month name" +msgid "Feb" +msgstr "Th2" + +#: ../glib/gdatetime.c:234 +msgctxt "abbreviated month name" +msgid "Mar" +msgstr "Th3" + +#: ../glib/gdatetime.c:236 +msgctxt "abbreviated month name" +msgid "Apr" +msgstr "Th4" + +#: ../glib/gdatetime.c:238 +msgctxt "abbreviated month name" +msgid "May" +msgstr "Th5" + +#: ../glib/gdatetime.c:240 +msgctxt "abbreviated month name" +msgid "Jun" +msgstr "Th6" + +#: ../glib/gdatetime.c:242 +msgctxt "abbreviated month name" +msgid "Jul" +msgstr "Th7" + +#: ../glib/gdatetime.c:244 +msgctxt "abbreviated month name" +msgid "Aug" +msgstr "Th8" + +#: ../glib/gdatetime.c:246 +msgctxt "abbreviated month name" +msgid "Sep" +msgstr "Th9" + +#: ../glib/gdatetime.c:248 +msgctxt "abbreviated month name" +msgid "Oct" +msgstr "Th10" + +#: ../glib/gdatetime.c:250 +msgctxt "abbreviated month name" +msgid "Nov" +msgstr "Th11" + +#: ../glib/gdatetime.c:252 +msgctxt "abbreviated month name" +msgid "Dec" +msgstr "Th12" + +#: ../glib/gdatetime.c:267 +msgctxt "full weekday name" +msgid "Monday" +msgstr "Thứ hai" + +#: ../glib/gdatetime.c:269 +msgctxt "full weekday name" +msgid "Tuesday" +msgstr "Thứ ba" + +#: ../glib/gdatetime.c:271 +msgctxt "full weekday name" +msgid "Wednesday" +msgstr "Thứ tư" + +#: ../glib/gdatetime.c:273 +msgctxt "full weekday name" +msgid "Thursday" +msgstr "Thứ năm" + +#: ../glib/gdatetime.c:275 +msgctxt "full weekday name" +msgid "Friday" +msgstr "Thứ sáu" + +#: ../glib/gdatetime.c:277 +msgctxt "full weekday name" +msgid "Saturday" +msgstr "Thứ bảy" + +#: ../glib/gdatetime.c:279 +msgctxt "full weekday name" +msgid "Sunday" +msgstr "Chủ Nhật" + +#: ../glib/gdatetime.c:294 +msgctxt "abbreviated weekday name" +msgid "Mon" +msgstr "T2" + +#: ../glib/gdatetime.c:296 +msgctxt "abbreviated weekday name" +msgid "Tue" +msgstr "T3" + +#: ../glib/gdatetime.c:298 +msgctxt "abbreviated weekday name" +msgid "Wed" +msgstr "T4" + +#: ../glib/gdatetime.c:300 +msgctxt "abbreviated weekday name" +msgid "Thu" +msgstr "T5" + +#: ../glib/gdatetime.c:302 +msgctxt "abbreviated weekday name" +msgid "Fri" +msgstr "T6" + +#: ../glib/gdatetime.c:304 +msgctxt "abbreviated weekday name" +msgid "Sat" +msgstr "T7" + +#: ../glib/gdatetime.c:306 +msgctxt "abbreviated weekday name" +msgid "Sun" +msgstr "CN" + +#: ../glib/gdir.c:115 ../glib/gdir.c:138 #, c-format msgid "Error opening directory '%s': %s" -msgstr "Gặp lỗi khi mở thư mục '%s': %s" +msgstr "Lỗi khi mở thư mục '%s': %s" -#: glib/gfileutils.c:536 glib/gfileutils.c:624 +#: ../glib/gfileutils.c:536 ../glib/gfileutils.c:624 #, c-format msgid "Could not allocate %lu bytes to read file \"%s\"" -msgstr "Không thẻ cấp phát %lu byte để đọc tập tin '%s'" +msgstr "Không thẻ cấp phát %lu bytes để đọc tập tin \"%s\"" -#: glib/gfileutils.c:551 +#: ../glib/gfileutils.c:551 #, c-format msgid "Error reading file '%s': %s" -msgstr "Gặp lỗi khi đọc tập tin '%s': %s" +msgstr "Lỗi khi đọc tập tin '%s': %s" -#: glib/gfileutils.c:565 +#: ../glib/gfileutils.c:565 #, c-format msgid "File \"%s\" is too large" msgstr "Tập tin \"%s\" quá lớn" -#: glib/gfileutils.c:648 +#: ../glib/gfileutils.c:648 #, c-format msgid "Failed to read from file '%s': %s" -msgstr "Lỗi đọc từ tập tin '%s': %s" +msgstr "Không đọc được từ tập tin '%s': %s" -#: glib/gfileutils.c:699 glib/gfileutils.c:786 +#: ../glib/gfileutils.c:699 ../glib/gfileutils.c:786 #, c-format msgid "Failed to open file '%s': %s" -msgstr "Lỗi mở tập tin '%s': %s" +msgstr "Lỗi khi mở tập tin '%s': %s" -#: glib/gfileutils.c:716 glib/gmappedfile.c:170 +#: ../glib/gfileutils.c:716 ../glib/gmappedfile.c:169 #, c-format msgid "Failed to get attributes of file '%s': fstat() failed: %s" -msgstr "Lỗi lấy các thuộc tính của tập tin '%s': lỗi 'fstat()': %s" +msgstr "Không lấy được các thuộc tính của tập tin '%s': fstat() không được: %s" -#: glib/gfileutils.c:750 +#: ../glib/gfileutils.c:750 #, c-format msgid "Failed to open file '%s': fdopen() failed: %s" -msgstr "Lỗi mở tập tin '%s': lỗi 'fdopen()': %s" +msgstr "Không mở được tập tin '%s': fdopen() không được: %s" -#: glib/gfileutils.c:858 +#: ../glib/gfileutils.c:858 #, c-format msgid "Failed to rename file '%s' to '%s': g_rename() failed: %s" -msgstr "Lỗi thay đổi tên tập tin '%s' thành '%s': lỗi 'g_rename()': %s" +msgstr "" +"Không đổi tên tập tin « %s » thành « %s » được: « g_rename() » không được: %s" -#: glib/gfileutils.c:900 glib/gfileutils.c:1366 +#: ../glib/gfileutils.c:900 ../glib/gfileutils.c:1369 #, c-format msgid "Failed to create file '%s': %s" -msgstr "Lỗi tạo tập tin '%s': %s" +msgstr "Không tạo được tập tin '%s': %s" -#: glib/gfileutils.c:914 +#: ../glib/gfileutils.c:914 #, c-format msgid "Failed to open file '%s' for writing: fdopen() failed: %s" -msgstr "Lỗi mở tập tin '%s': lỗi 'fdopen()': %s" +msgstr "Không mở được tập tin '%s': fdopen() không được: %s" -#: glib/gfileutils.c:939 +#: ../glib/gfileutils.c:939 #, c-format msgid "Failed to write file '%s': fwrite() failed: %s" -msgstr "Lỗi ghi tập tin '%s': lỗi 'fdopen()': %s" +msgstr "Không mở được tập tin '%s': fdopen() không được: %s" -#: glib/gfileutils.c:958 +#: ../glib/gfileutils.c:958 #, c-format msgid "Failed to write file '%s': fflush() failed: %s" msgstr "Lỗi ghi tập tin '%s': lỗi fflush(): %s" -#: glib/gfileutils.c:987 +#: ../glib/gfileutils.c:987 #, c-format msgid "Failed to write file '%s': fsync() failed: %s" msgstr "Lỗi ghi tập tin '%s': lỗi fsync(): %s" -#: glib/gfileutils.c:1006 +#: ../glib/gfileutils.c:1006 #, c-format msgid "Failed to close file '%s': fclose() failed: %s" -msgstr "Lỗi đóng tập tin '%s': lỗi 'fclose()': %s" +msgstr "Không mở được tập tin '%s': fdopen() không được: %s" -#: glib/gfileutils.c:1124 +#: ../glib/gfileutils.c:1127 #, c-format msgid "Existing file '%s' could not be removed: g_unlink() failed: %s" -msgstr "Không thể gỡ bỏ tập tin tồn tại '%s': lỗi 'g_unlink()': %s" +msgstr "Không thể gỡ bỏ tập tin tồn tại « %s »: « g_unlink() » thất bại: %s" -#: glib/gfileutils.c:1328 +#: ../glib/gfileutils.c:1331 #, c-format msgid "Template '%s' invalid, should not contain a '%s'" -msgstr "Biểu mẫu '%s' không hợp lệ, không nên chứa '%s'" +msgstr "Template '%s' không hợp lệ, không nên chứa '%s'" -#: glib/gfileutils.c:1341 +#: ../glib/gfileutils.c:1344 #, c-format msgid "Template '%s' doesn't contain XXXXXX" msgstr "Biểu mẫu '%s' không chứa XXXXXX" -#: glib/gfileutils.c:1774 +#: ../glib/gfileutils.c:1777 #, c-format msgid "%u byte" msgid_plural "%u bytes" -msgstr[0] "" +msgstr[0] "%u byte" -#: glib/gfileutils.c:1782 +#: ../glib/gfileutils.c:1785 #, c-format msgid "%.1f KB" msgstr "%.1f KB" -#: glib/gfileutils.c:1787 +#: ../glib/gfileutils.c:1790 #, c-format msgid "%.1f MB" msgstr "%.1f MB" -#: glib/gfileutils.c:1792 +#: ../glib/gfileutils.c:1795 #, c-format msgid "%.1f GB" msgstr "%.1f GB" -#: glib/gfileutils.c:1797 +#: ../glib/gfileutils.c:1800 #, c-format msgid "%.1f TB" msgstr "%.1f TB" -#: glib/gfileutils.c:1802 +#: ../glib/gfileutils.c:1805 #, c-format msgid "%.1f PB" msgstr "%.1f PB" -#: glib/gfileutils.c:1807 +#: ../glib/gfileutils.c:1810 #, c-format msgid "%.1f EB" msgstr "%.1f EB" -#: glib/gfileutils.c:1850 +#: ../glib/gfileutils.c:1853 #, c-format msgid "Failed to read the symbolic link '%s': %s" msgstr "Lỗi đọc liên kết tượng trưng '%s': %s" -#: glib/gfileutils.c:1871 +#: ../glib/gfileutils.c:1874 msgid "Symbolic links not supported" -msgstr "Không hỗ trợ khả năng sử dụng liên kết tượng trưng" +msgstr "Không hỗ trợ liên kết tượng trưng" -#: glib/giochannel.c:1408 +#: ../glib/giochannel.c:1407 #, c-format msgid "Could not open converter from '%s' to '%s': %s" msgstr "Không thể mở bộ chuyển đổi từ '%s' sang '%s': %s" -#: glib/giochannel.c:1753 +#: ../glib/giochannel.c:1752 msgid "Can't do a raw read in g_io_channel_read_line_string" -msgstr "" -"Không thể thực hiện tiến trình đọc thô trong 'g_io_channel_read_line_string'" +msgstr "Không thể thực hiện đọc thô trong g_io_channel_read_line_string" -#: glib/giochannel.c:1800 glib/giochannel.c:2058 glib/giochannel.c:2145 +#: ../glib/giochannel.c:1799 ../glib/giochannel.c:2057 +#: ../glib/giochannel.c:2144 msgid "Leftover unconverted data in read buffer" -msgstr "Có dữ liệu chưa được chuyển đổi còn lại nằm trong bộ đệm đọc" +msgstr "Để lại dữ liệu chưa được chuyển đổi trong buffer đọc" -#: glib/giochannel.c:1881 glib/giochannel.c:1958 +#: ../glib/giochannel.c:1880 ../glib/giochannel.c:1957 msgid "Channel terminates in a partial character" msgstr "Kênh tận hết trong ký tự riêng phần" -#: glib/giochannel.c:1944 +#: ../glib/giochannel.c:1943 msgid "Can't do a raw read in g_io_channel_read_to_end" -msgstr "" -"Không thể thực hiện tiến trình đọc thô trong 'g_io_channel_read_to_end'" +msgstr "Không thể thực hiện đọc thô trong g_io_channel_read_to_end" -#: glib/gmappedfile.c:151 +#: ../glib/gmappedfile.c:150 #, c-format msgid "Failed to open file '%s': open() failed: %s" -msgstr "Lỗi mở tập tin '%s': lỗi 'fdopen()': %s" +msgstr "Không mở được tập tin '%s': fdopen() không được: %s" -#: glib/gmappedfile.c:230 +#: ../glib/gmappedfile.c:229 #, c-format msgid "Failed to map file '%s': mmap() failed: %s" -msgstr "Lỗi ánh xạ tập tin '%s': lỗi 'mmap()': %s" +msgstr "Không mở được tập tin '%s': fdopen() không được: %s" -#: glib/gmarkup.c:303 glib/gmarkup.c:343 +#: ../glib/gmarkup.c:307 ../glib/gmarkup.c:347 #, c-format msgid "Error on line %d char %d: " msgstr "Lỗi trên dòng %d ký tự %d: " -#: glib/gmarkup.c:363 glib/gmarkup.c:441 +#: ../glib/gmarkup.c:367 ../glib/gmarkup.c:445 #, c-format msgid "Invalid UTF-8 encoded text in name - not valid '%s'" msgstr "Văn bản được mã hoá UTF-8 không hợp lệ '%s'" -#: glib/gmarkup.c:374 +#: ../glib/gmarkup.c:378 #, c-format msgid "'%s' is not a valid name " msgstr "'%s' không phải là tên hợp lệ" -#: glib/gmarkup.c:390 +#: ../glib/gmarkup.c:394 #, c-format msgid "'%s' is not a valid name: '%c' " msgstr "'%s' không phải là tên hợp lệ: '%c'" -#: glib/gmarkup.c:494 +#: ../glib/gmarkup.c:498 #, c-format msgid "Error on line %d: %s" msgstr "Lỗi trên dòng %d: %s" -#: glib/gmarkup.c:578 +#: ../glib/gmarkup.c:582 #, 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 "" -"Lỗi phân tách '%-.*s', nó nên là một chữ số bên trong một tham chiếu ký tự " -"(v.d. 'ê') — có lẽ chư số quá lớn." +"Không phân tách được « %-.*s », nó nên là một con số bên trong một tham chiếu " +"ký tự (v.d. « ê ») — có lẽ con số quá lớn." -#: glib/gmarkup.c:590 +#: ../glib/gmarkup.c:594 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 "" -"Tham chiếu ký tự không có dấu chấm phẩy cuối cùng; dường như bạn đã dùng một " -"dấu và mà không định bắt đầu một thực thể — hãy thoát dấu và như là '&'" +"Tham chiếu ký tự đã không kết thúc bằng dấu chấm phẩy; dường như bạn đã dùng " +"một ký tự (và) mà không phải để bắt đầu một thự thể - thoát dấu (và) như là " +"&" -#: glib/gmarkup.c:616 +#: ../glib/gmarkup.c:620 #, c-format msgid "Character reference '%-.*s' does not encode a permitted character" -msgstr "Tham chiếu ký tự '%-.*s' không mã hóa một ký tự được phép." +msgstr "Tham chiếu ký tự « %-.*s » không mã hóa một ký tự cho phép." -#: glib/gmarkup.c:654 +#: ../glib/gmarkup.c:658 msgid "" "Empty entity '&;' seen; valid entities are: & " < > '" msgstr "" -"Thấy thực thể rỗng '&;'; những thực thể hợp lệ là: & " < > " -"'" +"Thực thể trống '&;' được thấy; những mục nhập hợp lệ là: & " < " +"> '" -#: glib/gmarkup.c:662 +#: ../glib/gmarkup.c:666 #, c-format msgid "Entity name '%-.*s' is not known" msgstr "Thực thể lạ '%-.*s'" -#: glib/gmarkup.c:667 +#: ../glib/gmarkup.c:671 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 "" -"Thực thể không có dấu chấm phẩy cuối cùng; dường như bạn đã dùng dấu và mà " -"không định bắt đầu một thực thể — hãy thoát dấu và như là '&'" +"Thực thể đã không kết thúc bằng dấu chấm phẩy; dường như bạn đã dùng ký tự " +"(và) mà không phải để bắt đầu một thự thể - thoát khỏi dấu (và) như là &" -#: glib/gmarkup.c:1014 +#: ../glib/gmarkup.c:1018 msgid "Document must begin with an element (e.g. )" -msgstr "Tài liệu phải bắt đầu bằng một yếu tố (v.d. [quyển sách])" +msgstr "Tài liệu phải bắt đầu bằng một phần tử (vd: )" -#: glib/gmarkup.c:1054 +#: ../glib/gmarkup.c:1058 #, c-format msgid "" "'%s' is not a valid character following a '<' character; it may not begin an " "element name" msgstr "" -"'%s' không phải là một ký tự hợp lệ đi theo một dấu ngoặc nhọn mở '<' ; " -"không cho phép nó bắt đầu một tên yếu tố" +"'%s' không phải một ký tự hợp lệ đi theo ký tự '<' ; nó có thể không bắt đầu " +"tên phần tử" -#: glib/gmarkup.c:1122 +#: ../glib/gmarkup.c:1126 #, c-format msgid "" "Odd character '%s', expected a '>' character to end the empty-element tag '%" @@ -413,1217 +641,1369 @@ msgid "" msgstr "" "Ký tự lạ '%s', mong đợi một dấu ngoặc nhọn đóng '>' để kết thúc thẻ rỗng '%s'" -#: glib/gmarkup.c:1206 +#: ../glib/gmarkup.c:1210 #, c-format msgid "" "Odd character '%s', expected a '=' after attribute name '%s' of element '%s'" -msgstr "" -"Ký tự lạ '%s', mong đợi một dấu bằng '=' nằm sau tên thuộc tính '%s' của yếu " -"tố '%s'" +msgstr "Ký tự lẻ '%s', mong muốn '=' sau tên thuộc tính '%s' của phần tử '%s'" -#: glib/gmarkup.c:1247 +#: ../glib/gmarkup.c:1251 #, 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 "" -"Ký tự lạ '%s', mong đợi một dấu ngoặc nhọn đóng '>' hay dấu xuyệc '/' để kết " -"thúc thẻ khởi đầu của yếu tố '%s', hay tùy ý một thuộc tính; có lẽ bạn đã " -"dùng một ký tự không hợp lệ trong một tên thuộc tính." +"Ký tự lẻ '%s', mong muốn một ký tự '>' hay '/' để kết thúc tag khởi đầu của " +"phần ỷư '%s', hay tùy ý một thuộc tính; có lẽ bạn đã dùng một ký tự bát hợp " +"lệ trong một tên thuộc tính" -#: glib/gmarkup.c:1291 +#: ../glib/gmarkup.c:1295 #, 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 "" -"Ký tự lạ '%s', mong đợi một dấu nháy kép mở nằm sau dấu bằng khi đưa giá trị " -"cho thuộc tính '%s' của yếu tố '%s'" +"Ký tự lẻ '%s' , mong muốn một dấu ngoặc kép sau dấu bằng khi nhận giá trị " +"cho thuộc tính '%s' của phần tử '%s'" -#: glib/gmarkup.c:1425 +#: ../glib/gmarkup.c:1429 #, c-format msgid "" "'%s' is not a valid character following the characters ''" msgstr "" -"'%s' không phải là một ký tự hợp lệ nằm theo tên yếu tố đóng '%s'; ký tự " -"được phép là '>'." +"'%s' không phải một ký tự hợp lệ đi theo tên phần tử đóng '%s'; ký tự được " +"phép là '>'" -#: glib/gmarkup.c:1472 +#: ../glib/gmarkup.c:1476 #, c-format msgid "Element '%s' was closed, no element is currently open" -msgstr "Yếu tố '%s' đã được đóng, không có yếu tố mở hiện thời" +msgstr "Phần tử '%s' đã được đóng, không có phần tử mở hiện thời" -#: glib/gmarkup.c:1481 +#: ../glib/gmarkup.c:1485 #, c-format msgid "Element '%s' was closed, but the currently open element is '%s'" -msgstr "Yếu tố '%s' đã được đóng, nhưng yếu tố mở hiện thời là '%s'" +msgstr "Phần tử '%s' đã được đóng, nhưng phần tử mở hiện thời là '%s'" -#: glib/gmarkup.c:1648 +#: ../glib/gmarkup.c:1652 msgid "Document was empty or contained only whitespace" -msgstr "Tài liệu rỗng hay chứa chỉ khoảng trắng" +msgstr "Tài liệu trống hay chỉ chứa không gian trống" -#: glib/gmarkup.c:1662 +#: ../glib/gmarkup.c:1666 msgid "Document ended unexpectedly just after an open angle bracket '<'" -msgstr "Tài liệu đã kết thúc bất thường ngay sau một dấu ngoặc nhọn mở '<'" +msgstr "" +"Tài liệu đã kết thúc không mong muốn ngay sau một dấu ngoặc nhọn mở '<'" -#: glib/gmarkup.c:1670 glib/gmarkup.c:1715 +#: ../glib/gmarkup.c:1674 ../glib/gmarkup.c:1719 #, c-format msgid "" "Document ended unexpectedly with elements still open - '%s' was the last " "element opened" msgstr "" -"Tài liệu đã kết thúc bất thường với các yếu tố vẫn còn mở — '%s' là yếu tố " -"đã mở cuối cùng" +"Tài liệu đã kết thúc không mong muốn với các phần tử vẫn còn mở - '%s' là " +"phần tử đã mở cuối cùng" -#: glib/gmarkup.c:1678 +#: ../glib/gmarkup.c:1682 #, c-format msgid "" "Document ended unexpectedly, expected to see a close angle bracket ending " "the tag <%s/>" msgstr "" -"Tài liệu kết thúc bất thường, mong đợi thấy dấu ngoặc nhọn đóng kết thúc thẻ " -"'<%s/>'" +"Tài liệu kết thúc không mong muốn, được cho là thấy dấu ngoặc nhọn kết thúc " +"tag <%s/>" -#: glib/gmarkup.c:1684 +#: ../glib/gmarkup.c:1688 msgid "Document ended unexpectedly inside an element name" -msgstr "Tài liệu đã kết thúc bất thường bên trong một tên yếu tố" +msgstr "Tài liệu được kết thúc không mong muốn bên trong tên phần tử" -#: glib/gmarkup.c:1690 +#: ../glib/gmarkup.c:1694 msgid "Document ended unexpectedly inside an attribute name" -msgstr "Tài liệu đã kết thúc bất thường bên trong một tên thuộc tính" +msgstr "Tài liệu được kết thúc không mong muốn bên trong tên thuộc tính" -#: glib/gmarkup.c:1695 +#: ../glib/gmarkup.c:1699 msgid "Document ended unexpectedly inside an element-opening tag." -msgstr "Tài liệu đã kết thúc bất thường bên trong một thẻ mở yếu tố" +msgstr "Tài liệu được kết thúc không mong muốn bên trong tag của phần tử mở." -#: glib/gmarkup.c:1701 +#: ../glib/gmarkup.c:1705 msgid "" "Document ended unexpectedly after the equals sign following an attribute " "name; no attribute value" msgstr "" -"Tài liệu đã kết thúc bất thường sau dấu bằng nằm sau một tên thuộc tính; " +"Tài liệu kết thúc không mong muốn sau dấu bằng đi theo một tên thuộc tính; " "không có giá trị thuộc tính" -#: glib/gmarkup.c:1708 +#: ../glib/gmarkup.c:1712 msgid "Document ended unexpectedly while inside an attribute value" msgstr "" -"Tài liệu đã kết thúc bất thường trong khi nằm trong một giá trị thuộc tính" +"Tài liệu được kết thúc không mong muốn trong khi nằm trong một giá trị thuộc " +"tính" -#: glib/gmarkup.c:1724 +#: ../glib/gmarkup.c:1728 #, c-format msgid "Document ended unexpectedly inside the close tag for element '%s'" -msgstr "Tài liệu đã kết thúc bất thường bên trong thẻ đóng cho yếu tố '%s'" +msgstr "" +"Tài liệu được kết thúc không mong muốn bên trong tag đóng cho phần tử '%s'" -#: glib/gmarkup.c:1730 +#: ../glib/gmarkup.c:1734 msgid "Document ended unexpectedly inside a comment or processing instruction" msgstr "" -"Tài liệu đã kết thúc bất thường bên trong một chú thích hay hướng dẫn xử lý" +"Tài liệu được kết thúc không mong muốn bên trong một ghi chú hay hướng dẫn " +"tiến trình" -#: glib/gregex.c:131 +#: ../glib/gregex.c:188 msgid "corrupted object" msgstr "đối tượng bị hỏng" -#: glib/gregex.c:133 +#: ../glib/gregex.c:190 msgid "internal error or corrupted object" msgstr "lỗi nội bộ hay đối tượng bị hỏng" -#: glib/gregex.c:135 +#: ../glib/gregex.c:192 msgid "out of memory" msgstr "hết bộ nhớ" -#: glib/gregex.c:140 +#: ../glib/gregex.c:197 msgid "backtracking limit reached" msgstr "không thể rút lùi nữa" -#: glib/gregex.c:152 glib/gregex.c:160 +#: ../glib/gregex.c:209 ../glib/gregex.c:217 msgid "the pattern contains items not supported for partial matching" msgstr "mẫu chứa mục không được hỗ trợ khi khớp bộ phận" -#: glib/gregex.c:154 gio/glocalfile.c:2110 +#: ../glib/gregex.c:211 ../gio/glocalfile.c:2109 msgid "internal error" msgstr "lỗi nội bộ" -#: glib/gregex.c:162 +#: ../glib/gregex.c:219 msgid "back references as conditions are not supported for partial matching" msgstr "khi khớp bộ phận, không hỗ trợ rút lui làm điều kiện" -#: glib/gregex.c:171 +#: ../glib/gregex.c:228 msgid "recursion limit reached" msgstr "không thể đề qui nữa" -#: glib/gregex.c:173 +#: ../glib/gregex.c:230 msgid "workspace limit for empty substrings reached" msgstr "vùng làm việc không thể chứa chuỗi con rỗng nữa" -#: glib/gregex.c:175 +#: ../glib/gregex.c:232 msgid "invalid combination of newline flags" msgstr "kết hợp cờ dòng mới một cách không hợp lệ" -#: glib/gregex.c:179 +#: ../glib/gregex.c:236 msgid "unknown error" msgstr "lỗi lạ" -#: glib/gregex.c:199 +#: ../glib/gregex.c:256 msgid "\\ at end of pattern" msgstr "\\ ở kết thúc của mẫu" -#: glib/gregex.c:202 +#: ../glib/gregex.c:259 msgid "\\c at end of pattern" msgstr "\\c ở kết thúc của mẫu" -#: glib/gregex.c:205 +#: ../glib/gregex.c:262 msgid "unrecognized character follows \\" msgstr "có ký tự lạ phía sau \\" -#: glib/gregex.c:212 +#: ../glib/gregex.c:269 msgid "case-changing escapes (\\l, \\L, \\u, \\U) are not allowed here" msgstr "" "ở đây thì không cho phép ký tự thoát thay đổi chữ hoa/thường (\\l, \\L, \\u, " "\\U)" -#: glib/gregex.c:215 +#: ../glib/gregex.c:272 msgid "numbers out of order in {} quantifier" msgstr "các con số không theo thứ tự đúng trong chuỗi xác định số lượng {}" -#: glib/gregex.c:218 +#: ../glib/gregex.c:275 msgid "number too big in {} quantifier" msgstr "con số quá lớn trong chuỗi xác định số lượng {}" -#: glib/gregex.c:221 +#: ../glib/gregex.c:278 msgid "missing terminating ] for character class" msgstr "thiếu ] chấm dứt cho hạng ký tự" -#: glib/gregex.c:224 +#: ../glib/gregex.c:281 msgid "invalid escape sequence in character class" msgstr "gặp dây thoát không hợp lệ trong hạng ký tự" -#: glib/gregex.c:227 +#: ../glib/gregex.c:284 msgid "range out of order in character class" msgstr "phạm vi không theo thứ tự đúng trong hạng ký tự" -#: glib/gregex.c:230 +#: ../glib/gregex.c:287 msgid "nothing to repeat" msgstr "không có gì cần lặp lại" -#: glib/gregex.c:233 +#: ../glib/gregex.c:290 msgid "unrecognized character after (?" msgstr "không nhận dạng ký tự nằm sau (?" -#: glib/gregex.c:237 +#: ../glib/gregex.c:294 msgid "unrecognized character after (?<" msgstr "không nhận dạng ký tự nằm sau (?<" -#: glib/gregex.c:241 +#: ../glib/gregex.c:298 msgid "unrecognized character after (?P" msgstr "không nhận dạng ký tự nằm sau (?P" -#: glib/gregex.c:244 +#: ../glib/gregex.c:301 msgid "POSIX named classes are supported only within a class" msgstr "Hạng POSIX có tên chỉ được hỗ trợ bên trong hạng" -#: glib/gregex.c:247 +#: ../glib/gregex.c:304 msgid "missing terminating )" msgstr "thiếu ) chấm dứt" -#: glib/gregex.c:251 +#: ../glib/gregex.c:308 msgid ") without opening (" msgstr "có ) không có ( đầu tiên" #. translators: '(?R' and '(?[+-]digits' are both meant as (groups of) #. * sequences here, '(?-54' would be an example for the second group. #. -#: glib/gregex.c:258 +#: ../glib/gregex.c:315 msgid "(?R or (?[+-]digits must be followed by )" msgstr "(?R hay (?[+-]chữ số phải có ) theo sau" -#: glib/gregex.c:261 +#: ../glib/gregex.c:318 msgid "reference to non-existent subpattern" msgstr "tham chiếu đến mẫu phụ không tồn tại" -#: glib/gregex.c:264 +#: ../glib/gregex.c:321 msgid "missing ) after comment" msgstr "thiếu ) nằm sau chú thích" -#: glib/gregex.c:267 +#: ../glib/gregex.c:324 msgid "regular expression too large" msgstr "biểu thức chính quy quá lớn" -#: glib/gregex.c:270 +#: ../glib/gregex.c:327 msgid "failed to get memory" msgstr "không lấy được bộ nhớ" -#: glib/gregex.c:273 +#: ../glib/gregex.c:330 msgid "lookbehind assertion is not fixed length" msgstr "khẳng định lookbehind (thấy ở sau) không có độ dài cố định" -#: glib/gregex.c:276 +#: ../glib/gregex.c:333 msgid "malformed number or name after (?(" msgstr "có con số hay tên dạng sai nằm sau (?(" -#: glib/gregex.c:279 +#: ../glib/gregex.c:336 msgid "conditional group contains more than two branches" msgstr "nhóm điều kiện chứa nhiều hơn hai nhánh" -#: glib/gregex.c:282 +#: ../glib/gregex.c:339 msgid "assertion expected after (?(" msgstr "mong đợi khẳng định nằm sau (?(" -#: glib/gregex.c:285 +#: ../glib/gregex.c:342 msgid "unknown POSIX class name" msgstr "không rõ tên hạng POSIX" -#: glib/gregex.c:288 +#: ../glib/gregex.c:345 msgid "POSIX collating elements are not supported" msgstr "Không hỗ trợ yếu tố đối chiếu POSIX" -#: glib/gregex.c:291 +#: ../glib/gregex.c:348 msgid "character value in \\x{...} sequence is too large" msgstr "dãy \\x{...} chứa giá trị ký tự quá lớn" -#: glib/gregex.c:294 +#: ../glib/gregex.c:351 msgid "invalid condition (?(0)" msgstr "điều kiện không hợp lệ (?(0)" -#: glib/gregex.c:297 +#: ../glib/gregex.c:354 msgid "\\C not allowed in lookbehind assertion" msgstr "\\C không được phép trong khẳng định lookbehind (thấy ở sau)" -#: glib/gregex.c:300 +#: ../glib/gregex.c:357 msgid "recursive call could loop indefinitely" msgstr "lời gọi đệ quy có thể bị lặp vô hạn" -#: glib/gregex.c:303 +#: ../glib/gregex.c:360 msgid "missing terminator in subpattern name" msgstr "thiếu dấu chấm dứt trong tên mẫu phụ" -#: glib/gregex.c:306 +#: ../glib/gregex.c:363 msgid "two named subpatterns have the same name" msgstr "hai mẫu phụ có tên cũng có cùng một tên" -#: glib/gregex.c:309 +#: ../glib/gregex.c:366 msgid "malformed \\P or \\p sequence" msgstr "dãy \\P hay \\p dạng sai" -#: glib/gregex.c:312 +#: ../glib/gregex.c:369 msgid "unknown property name after \\P or \\p" msgstr "có tên thuộc tính không rõ nằm sau \\P hay \\p" -#: glib/gregex.c:315 +#: ../glib/gregex.c:372 msgid "subpattern name is too long (maximum 32 characters)" msgstr "tên mẫu phụ quá dài (tối đa 32 ký tự)" -#: glib/gregex.c:318 +#: ../glib/gregex.c:375 msgid "too many named subpatterns (maximum 10,000)" msgstr "quá nhiều mẫu phụ có tên (tối đa 10 000)" -#: glib/gregex.c:321 +#: ../glib/gregex.c:378 msgid "octal value is greater than \\377" msgstr "giá trị bát phân lớn hơn \\377" -#: glib/gregex.c:324 +#: ../glib/gregex.c:381 msgid "DEFINE group contains more than one branch" msgstr "nhóm DEFINE (định nghĩa) chứa nhiều hơn một nhánh" -#: glib/gregex.c:327 +#: ../glib/gregex.c:384 msgid "repeating a DEFINE group is not allowed" msgstr "không cho phép lặp lại một nhóm DEFINE (định nghĩa)" -#: glib/gregex.c:330 +#: ../glib/gregex.c:387 msgid "inconsistent NEWLINE options" msgstr "các tùy chọn NEWLINE (dòng mới) không thống nhất với nhau" -#: glib/gregex.c:333 +#: ../glib/gregex.c:390 msgid "" "\\g is not followed by a braced name or an optionally braced non-zero number" msgstr "" "\\g không đi trước một tên có dấu ngoặc móc hoặc một con số không phải số " "không có dấu ngoặc móc tùy chọn" -#: glib/gregex.c:338 +#: ../glib/gregex.c:395 msgid "unexpected repeat" msgstr "lặp lại bất thường" -#: glib/gregex.c:342 +#: ../glib/gregex.c:399 msgid "code overflow" msgstr "tràn mã" -#: glib/gregex.c:346 +#: ../glib/gregex.c:403 msgid "overran compiling workspace" msgstr "tràn vùng làm việc biên dịch" -#: glib/gregex.c:350 +#: ../glib/gregex.c:407 msgid "previously-checked referenced subpattern not found" msgstr "không tìm thấy mẫu phụ đã tham chiếu mà đã kiểm tra trước" -#: glib/gregex.c:522 glib/gregex.c:1639 +#: ../glib/gregex.c:579 ../glib/gregex.c:1700 #, c-format msgid "Error while matching regular expression %s: %s" msgstr "Gặp lỗi trong khi khớp biểu thức chính quy %s: %s" -#: glib/gregex.c:1094 +#: ../glib/gregex.c:1155 msgid "PCRE library is compiled without UTF8 support" msgstr "Thư viện PCRE đã biên dịch không có khả năng hỗ trợ UTF-8" -#: glib/gregex.c:1103 +#: ../glib/gregex.c:1164 msgid "PCRE library is compiled without UTF8 properties support" msgstr "Thư viện PCRE đã biên dịch không có khả năng hỗ trợ tài sản UTF-8" -#: glib/gregex.c:1157 +#: ../glib/gregex.c:1218 #, c-format msgid "Error while compiling regular expression %s at char %d: %s" msgstr "Gặp lỗi trong khi biên dịch biểu thức chính quy %s ở ký tự %d: %s" -#: glib/gregex.c:1193 +#: ../glib/gregex.c:1254 #, c-format msgid "Error while optimizing regular expression %s: %s" msgstr "Gặp lỗi trong khi tối hưu hoá biểu thức chính quy %s: %s" -#: glib/gregex.c:2067 +#: ../glib/gregex.c:2128 msgid "hexadecimal digit or '}' expected" msgstr "đợi chữ số thập lục hay dấu ngoặc móc đóng '}'" -#: glib/gregex.c:2083 +#: ../glib/gregex.c:2144 msgid "hexadecimal digit expected" msgstr "đợi chữ số thập lục" -#: glib/gregex.c:2123 +#: ../glib/gregex.c:2184 msgid "missing '<' in symbolic reference" msgstr "thiếu dấu ngoặc nhọn mở '<' trong tham chiếu tượng trưng" -#: glib/gregex.c:2132 +#: ../glib/gregex.c:2193 msgid "unfinished symbolic reference" msgstr "tham chiếu tượng trưng chưa hoàn thành" -#: glib/gregex.c:2139 +#: ../glib/gregex.c:2200 msgid "zero-length symbolic reference" msgstr "tham chiếu tượng trưng có độ dài số không" -#: glib/gregex.c:2150 +#: ../glib/gregex.c:2211 msgid "digit expected" msgstr "đợi chữ số" -#: glib/gregex.c:2168 +#: ../glib/gregex.c:2229 msgid "illegal symbolic reference" msgstr "tham chiếu tượng trưng không cho phép" -#: glib/gregex.c:2230 +#: ../glib/gregex.c:2291 msgid "stray final '\\'" msgstr "dấu xuyệc ngược kết thúc rải rác '\\'" -#: glib/gregex.c:2234 +#: ../glib/gregex.c:2295 msgid "unknown escape sequence" msgstr "dãy thoát lạ" -#: glib/gregex.c:2244 +#: ../glib/gregex.c:2305 #, c-format msgid "Error while parsing replacement text \"%s\" at char %lu: %s" msgstr "Gặp lỗi trong khi phân tách văn bản thay thế '%s' ở ký tự %lu: %s" -#: glib/gshell.c:92 +#: ../glib/gshell.c:91 msgid "Quoted text doesn't begin with a quotation mark" msgstr "Văn bản trích dẫn không bắt đầu bằng một dấu trích dẫn" -#: glib/gshell.c:182 +#: ../glib/gshell.c:181 msgid "Unmatched quotation mark in command line or other shell-quoted text" msgstr "" -"Dấu ngoặc kép không ăn khớp nằm trên dòng lệnh hay trong văn bản khác đã " -"trích dẫn trong trình bao" +"Dấu ngoặc kép không ăn khớp trong dòng lệnh hay một shell-quoted text khác" -#: glib/gshell.c:560 +#: ../glib/gshell.c:559 #, c-format msgid "Text ended just after a '\\' character. (The text was '%s')" -msgstr "Văn bản đã kết thúc ngay sau dấu xuyệc ngược '\\' (văn bản là '%s')" +msgstr "Văn bản được kết thúc ngay sau ký tự '\\'. (văn bản đã là '%s')" -#: glib/gshell.c:567 +#: ../glib/gshell.c:566 #, c-format msgid "Text ended before matching quote was found for %c. (The text was '%s')" msgstr "" -"Văn bản đã kết thúc trước khi tìm dấu ngoặc kép tương ứng với '%c' (văn bản " -"là '%s')" +"Text đã kết thúc trước khi làm khớp dấu ngoặc kép cho %c. (text là '%s')" -#: glib/gshell.c:579 +#: ../glib/gshell.c:578 msgid "Text was empty (or contained only whitespace)" -msgstr "Văn bản rỗng (hay chưa chỉ khoảng trắng)" +msgstr "Văn bản trống (hay chỉ gồm các ký tự trắng)" -#: glib/gspawn-win32.c:283 +#: ../glib/gspawn-win32.c:282 msgid "Failed to read data from child process" -msgstr "Lỗi đọc dữ liệu từ tiến trình con" +msgstr "Không đọc được dữ liệu từ tiến trình con" -#: glib/gspawn-win32.c:300 glib/gspawn.c:1480 +#: ../glib/gspawn-win32.c:299 ../glib/gspawn.c:1486 #, c-format msgid "Failed to create pipe for communicating with child process (%s)" -msgstr "Lỗi tạo ống dẫn để liên lạc với tiến trình con (%s)" +msgstr "Không tạo được pipe để liên lạc với tiến trình con (%s)" -#: glib/gspawn-win32.c:339 glib/gspawn-win32.c:347 glib/gspawn.c:1139 +#: ../glib/gspawn-win32.c:338 ../glib/gspawn-win32.c:346 ../glib/gspawn.c:1145 #, c-format msgid "Failed to read from child pipe (%s)" -msgstr "Lỗi đọc từ ống dẫn con (%s)" +msgstr "Không đọc được từ pipe con (%s)" -#: glib/gspawn-win32.c:370 glib/gspawn.c:1346 +#: ../glib/gspawn-win32.c:369 ../glib/gspawn.c:1352 #, c-format msgid "Failed to change to directory '%s' (%s)" -msgstr "Lỗi chuyển đổi sang thư mục '%s' (%s)" +msgstr "Không thay đổi được thư mục '%s' (%s)" -#: glib/gspawn-win32.c:376 glib/gspawn-win32.c:495 +#: ../glib/gspawn-win32.c:375 ../glib/gspawn-win32.c:494 #, c-format msgid "Failed to execute child process (%s)" -msgstr "Lỗi thực hiện tiến trình con (%s)" +msgstr "Không thực thi được tiến trình con (%s)" -#: glib/gspawn-win32.c:445 +#: ../glib/gspawn-win32.c:444 #, c-format msgid "Invalid program name: %s" msgstr "Tên chương trình không hợp lệ: %s" -#: glib/gspawn-win32.c:455 glib/gspawn-win32.c:723 glib/gspawn-win32.c:1279 +#: ../glib/gspawn-win32.c:454 ../glib/gspawn-win32.c:722 +#: ../glib/gspawn-win32.c:1278 #, c-format msgid "Invalid string in argument vector at %d: %s" -msgstr "Gặp chuỗi không hợp lệ nằm trong véc-tơ đối số tại %d: %s" +msgstr "Gặp chuỗi không hợp lệ trong véc-tơ đối số tại %d: %s" -#: glib/gspawn-win32.c:466 glib/gspawn-win32.c:738 glib/gspawn-win32.c:1312 +#: ../glib/gspawn-win32.c:465 ../glib/gspawn-win32.c:737 +#: ../glib/gspawn-win32.c:1311 #, c-format msgid "Invalid string in environment: %s" -msgstr "Gặp chuỗi không hợp lệ nằm trong môi trường: %s" +msgstr "Gặp chuỗi không hợp lệ trong môi trường: %s" -#: glib/gspawn-win32.c:719 glib/gspawn-win32.c:1260 +#: ../glib/gspawn-win32.c:718 ../glib/gspawn-win32.c:1259 #, c-format msgid "Invalid working directory: %s" msgstr "Thư mục làm việc không hợp lệ: %s" -#: glib/gspawn-win32.c:784 +#: ../glib/gspawn-win32.c:783 #, c-format msgid "Failed to execute helper program (%s)" -msgstr "Lỗi thực hiện chương trình bổ trợ (%s)" +msgstr "Lỗi thực thi chương trình bổ trợ (%s)" -#: glib/gspawn-win32.c:998 +#: ../glib/gspawn-win32.c:997 msgid "" "Unexpected error in g_io_channel_win32_poll() reading data from a child " "process" msgstr "" -"Gặp lỗi bất thường nằm trong 'g_io_channel_win32_poll()' khi đọc dữ liệu từ " -"tiến trình con" +"Lỗi không mong muốn trong g_io_channel_win32_poll() đọc dữ liệu từ tiến " +"trình con" -#: glib/gspawn.c:190 +#: ../glib/gspawn.c:196 #, c-format msgid "Failed to read data from child process (%s)" -msgstr "Lỗi đọc dữ liệu từ tiến trình con (%s)" +msgstr "Không đọc được dữ liệu từ tiến trình con (%s)" -#: glib/gspawn.c:329 +#: ../glib/gspawn.c:335 #, c-format msgid "Unexpected error in select() reading data from a child process (%s)" -msgstr "" -"Gặp lỗi bất thường nằm trong 'select()' khi đọc dữ liệu từ tiến trình con (%" -"s)" +msgstr "Lỗi không mong muốn trong select() đọc dữ liệu từ tiến trình con (%s)" -#: glib/gspawn.c:414 +#: ../glib/gspawn.c:420 #, c-format msgid "Unexpected error in waitpid() (%s)" -msgstr "Gặp lỗi bất thường nằm trong 'waitpid()' (%s)" +msgstr "Lỗi không mong muốn trong waitpid() (%s)" -#: glib/gspawn.c:1206 +#: ../glib/gspawn.c:1212 #, c-format msgid "Failed to fork (%s)" -msgstr "Lỗi tạo tiến trình con (%s)" +msgstr "Không rẽ nhánh được (%s)" -#: glib/gspawn.c:1356 +#: ../glib/gspawn.c:1362 #, c-format msgid "Failed to execute child process \"%s\" (%s)" -msgstr "Lỗi thực hiện tiến trình con '%s' (%s)" +msgstr "Không thự thi được tiến trình con \"%s\" (%s)" -#: glib/gspawn.c:1366 +#: ../glib/gspawn.c:1372 #, c-format msgid "Failed to redirect output or input of child process (%s)" -msgstr "Lỗi chuyển hướng kết nhập hay kết xuất của tiến trình con (%s)" +msgstr "Không gửi được lần nữa đầu ra hay đầu vào của tiến trình con (%s)" -#: glib/gspawn.c:1375 +#: ../glib/gspawn.c:1381 #, c-format msgid "Failed to fork child process (%s)" -msgstr "Lỗi tạo tiến trình con (%s)" +msgstr "Không rẽ nhánh được tiến trình con (%s)" -#: glib/gspawn.c:1383 +#: ../glib/gspawn.c:1389 #, c-format msgid "Unknown error executing child process \"%s\"" -msgstr "Gặp lỗi không rõ khi thực hiện tiến trình con '%s'" +msgstr "Lỗi không xác định khi thực thi tiến trình con \"%s\"" -#: glib/gspawn.c:1407 +#: ../glib/gspawn.c:1413 #, c-format msgid "Failed to read enough data from child pid pipe (%s)" -msgstr "Lỗi đọc đủ dữ liệu từ ống dẫn PID con (%s)" +msgstr "Không đọc được đủ dữ liệu từ pid pipe con(%s)" -#: glib/gutf8.c:1063 +#: ../glib/gutf8.c:1066 msgid "Character out of range for UTF-8" -msgstr "Ký tự ở ngoại phạm vi UTF-8" +msgstr "Ký tự nằm ngoài vùng UTF-8" -#: glib/gutf8.c:1163 glib/gutf8.c:1172 glib/gutf8.c:1304 glib/gutf8.c:1313 -#: glib/gutf8.c:1454 glib/gutf8.c:1550 +#: ../glib/gutf8.c:1166 ../glib/gutf8.c:1175 ../glib/gutf8.c:1307 +#: ../glib/gutf8.c:1316 ../glib/gutf8.c:1457 ../glib/gutf8.c:1553 msgid "Invalid sequence in conversion input" -msgstr "Dãy không hợp lệ nằm trong dữ liệu nhập việc chuyển đổi" +msgstr "Sequence bất hợp lệ trong đầu vào chuyển đổi" -#: glib/gutf8.c:1465 glib/gutf8.c:1561 +#: ../glib/gutf8.c:1468 ../glib/gutf8.c:1564 msgid "Character out of range for UTF-16" -msgstr "Ký tự ở ngoại phạm vi UTF-16" +msgstr "Ký tự nằm ngoài vùng UTF-16" -#: glib/goption.c:755 +#: ../glib/goption.c:760 msgid "Usage:" msgstr "Sử dụng:" -#: glib/goption.c:755 +#: ../glib/goption.c:760 msgid "[OPTION...]" msgstr "[TÙY_CHỌN...]" -#: glib/goption.c:861 +#: ../glib/goption.c:866 msgid "Help Options:" msgstr "Tùy chọn trợ giúp:" -#: glib/goption.c:862 +#: ../glib/goption.c:867 msgid "Show help options" msgstr "Hiển thị các tùy chọn trợ giúp" -#: glib/goption.c:868 +#: ../glib/goption.c:873 msgid "Show all help options" msgstr "Hiển thị mọi tùy chọn trợ giúp" -#: glib/goption.c:930 +#: ../glib/goption.c:935 msgid "Application Options:" msgstr "Tùy chọn ứng dụng:" -#: glib/goption.c:992 glib/goption.c:1062 +#: ../glib/goption.c:997 ../glib/goption.c:1067 #, c-format msgid "Cannot parse integer value '%s' for %s" -msgstr "Không thể phân tách giá trị số nguyên '%s' cho %s" +msgstr "Không phân tách giá trị số nguyên « %s » cho %s." -#: glib/goption.c:1002 glib/goption.c:1070 +#: ../glib/goption.c:1007 ../glib/goption.c:1075 #, c-format msgid "Integer value '%s' for %s out of range" -msgstr "Giá trị số nguyên '%s' cho %s ở ngoại phạm vi" +msgstr "Giá trị số nguyên '%s' cho %s ở ngoài phạm vi." -#: glib/goption.c:1027 +#: ../glib/goption.c:1032 #, c-format msgid "Cannot parse double value '%s' for %s" msgstr "Không thể phân tách giá trị đôi '%s' cho %s" -#: glib/goption.c:1035 +#: ../glib/goption.c:1040 #, c-format msgid "Double value '%s' for %s out of range" -msgstr "Giá trị đôi '%s' cho %s ở ngoại phạm vi" +msgstr "Giá trị đôi '%s' cho %s ở ngoài phạm vi" -#: glib/goption.c:1298 glib/goption.c:1377 +#: ../glib/goption.c:1303 ../glib/goption.c:1382 #, c-format msgid "Error parsing option %s" msgstr "Gặp lỗi khi phân tách tùy chọn %s" -#: glib/goption.c:1408 glib/goption.c:1522 +#: ../glib/goption.c:1413 ../glib/goption.c:1527 #, c-format msgid "Missing argument for %s" msgstr "Thiếu đối số cho %s" -#: glib/goption.c:1917 +#: ../glib/goption.c:1922 #, c-format msgid "Unknown option %s" -msgstr "Không biết tùy chọn %s" +msgstr "Không biết tùy chọn %s." -#: glib/gkeyfile.c:363 +#: ../glib/gkeyfile.c:362 msgid "Valid key file could not be found in search dirs" msgstr "Không tìm thấy tập tin khoá hợp lệ nằm trong thư mục tìm kiếm" -#: glib/gkeyfile.c:398 +#: ../glib/gkeyfile.c:397 msgid "Not a regular file" -msgstr "Không phải là một tập tin chuẩn" +msgstr "Không phải là một tập tin chuẩn." -#: glib/gkeyfile.c:406 +#: ../glib/gkeyfile.c:405 msgid "File is empty" -msgstr "Tập tin rỗng" +msgstr "Tập tin rỗng." -#: glib/gkeyfile.c:765 +#: ../glib/gkeyfile.c:764 #, c-format msgid "" "Key file contains line '%s' which is not a key-value pair, group, or comment" msgstr "" -"Tập tin khóa chứa dòng '%s' mà không phải là một cặp giá trị khóa, nhóm, hay " -"chú thích" +"Tập tin khóa chứa dòng « %s » mà không phải là cặp giá trị khóa, nhóm, hoặc " +"chú thích." -#: glib/gkeyfile.c:825 +#: ../glib/gkeyfile.c:824 #, c-format msgid "Invalid group name: %s" msgstr "Tên nhóm không hợp lệ: %s" -#: glib/gkeyfile.c:847 +#: ../glib/gkeyfile.c:846 msgid "Key file does not start with a group" -msgstr "Tập tin khóa không bắt đầu với nhóm" +msgstr "Tập tin khóa không bắt đầu với nhóm." -#: glib/gkeyfile.c:873 +#: ../glib/gkeyfile.c:872 #, c-format msgid "Invalid key name: %s" msgstr "Tên khoá không hợp lệ: %s" -#: glib/gkeyfile.c:900 +#: ../glib/gkeyfile.c:899 #, c-format msgid "Key file contains unsupported encoding '%s'" -msgstr "Tập tin khóa chứa bảng mã không được hỗ trợ '%s'" +msgstr "Tập tin khóa chứa bảng mã không được hỗ trợ « %s »." -#: glib/gkeyfile.c:1116 glib/gkeyfile.c:1278 glib/gkeyfile.c:2657 -#: glib/gkeyfile.c:2723 glib/gkeyfile.c:2858 glib/gkeyfile.c:2991 -#: glib/gkeyfile.c:3144 glib/gkeyfile.c:3331 glib/gkeyfile.c:3392 +#: ../glib/gkeyfile.c:1115 ../glib/gkeyfile.c:1277 ../glib/gkeyfile.c:2656 +#: ../glib/gkeyfile.c:2722 ../glib/gkeyfile.c:2857 ../glib/gkeyfile.c:2990 +#: ../glib/gkeyfile.c:3143 ../glib/gkeyfile.c:3330 ../glib/gkeyfile.c:3391 #, c-format msgid "Key file does not have group '%s'" -msgstr "Tập tin khóa không có nhóm '%s'" +msgstr "Tập tin khóa không có nhóm « %s »." -#: glib/gkeyfile.c:1290 +#: ../glib/gkeyfile.c:1289 #, c-format msgid "Key file does not have key '%s'" -msgstr "Tập tin khóa không có khóa '%s'" +msgstr "Tập tin khóa không có khóa « %s »." -#: glib/gkeyfile.c:1397 glib/gkeyfile.c:1512 +#: ../glib/gkeyfile.c:1396 ../glib/gkeyfile.c:1511 #, c-format msgid "Key file contains key '%s' with value '%s' which is not UTF-8" -msgstr "Tập tin khóa chứa khóa '%s' với giá trị '%s' mà không phải là UTF-8" +msgstr "Tập tin khóa chứa khóa « %s » có giá trị « %s » không phải là UTF-8." -#: glib/gkeyfile.c:1417 glib/gkeyfile.c:1911 +#: ../glib/gkeyfile.c:1416 ../glib/gkeyfile.c:1910 #, c-format msgid "Key file contains key '%s' which has value that cannot be interpreted." -msgstr "Tập tin khóa chứa khóa '%s' mà có giá trị không có khả năng giải dịch." +msgstr "Tập tin khóa chứa khóa « %s » có giá trị không có khả năng giải dịch." -#: glib/gkeyfile.c:1532 +#: ../glib/gkeyfile.c:1531 #, c-format msgid "" "Key file contains key '%s' which has a value that cannot be interpreted." msgstr "Không thể phân tích giá trị '%s' chứa trong tập tin khoá." -#: glib/gkeyfile.c:2126 glib/gkeyfile.c:2488 +#: ../glib/gkeyfile.c:2125 ../glib/gkeyfile.c:2487 #, c-format msgid "" "Key file contains key '%s' in group '%s' which has value that cannot be " "interpreted." msgstr "" -"Tập tin khóa chứa khóa '%s' trong nhóm '%s' mà có giá trị không có khả năng " +"Tập tin khóa chứa khóa « %s » trong nhóm « %s » có giá trị không có khả năng " "giải dịch." -#: glib/gkeyfile.c:2672 glib/gkeyfile.c:2873 glib/gkeyfile.c:3403 +#: ../glib/gkeyfile.c:2671 ../glib/gkeyfile.c:2872 ../glib/gkeyfile.c:3402 #, c-format msgid "Key file does not have key '%s' in group '%s'" -msgstr "Tập tin khóa không có khóa '%s' trong nhóm '%s'" +msgstr "Tập tin khóa không chứa khóa « %s » trong nhóm « %s »." -#: glib/gkeyfile.c:3637 +#: ../glib/gkeyfile.c:3636 msgid "Key file contains escape character at end of line" -msgstr "Tập tin khóa chứa ký tự thoát tại kết thúc của dòng" +msgstr "Tập tin khóa chứa ký tự thoạt tại kết thức dòng." -#: glib/gkeyfile.c:3659 +#: ../glib/gkeyfile.c:3658 #, c-format msgid "Key file contains invalid escape sequence '%s'" -msgstr "Tập tin khóa chứa dãy thoát không hợp lệ '%s'" +msgstr "URI '%s' chứa không hợp lệ các ký tự thoát" -#: glib/gkeyfile.c:3801 +#: ../glib/gkeyfile.c:3800 #, c-format msgid "Value '%s' cannot be interpreted as a number." msgstr "Không thể giải dịch giá trị '%s' dạng con số." -#: glib/gkeyfile.c:3815 +#: ../glib/gkeyfile.c:3814 #, c-format msgid "Integer value '%s' out of range" -msgstr "Giá trị số nguyên '%s' ở ngoại phạm vi" +msgstr "Giá trị số nguyên '%s' ở ngoài phạm vi" -#: glib/gkeyfile.c:3848 +#: ../glib/gkeyfile.c:3847 #, c-format msgid "Value '%s' cannot be interpreted as a float number." msgstr "Không thể giải dịch giá trị '%s' dạng con số nổi." -#: glib/gkeyfile.c:3872 +#: ../glib/gkeyfile.c:3871 #, c-format msgid "Value '%s' cannot be interpreted as a boolean." msgstr "Không thể giải dịch giá trị '%s' dạng bun (đúng/sai)." -#: gio/gbufferedinputstream.c:415 gio/gbufferedinputstream.c:496 -#: gio/ginputstream.c:186 gio/ginputstream.c:318 gio/ginputstream.c:557 -#: gio/ginputstream.c:682 gio/goutputstream.c:198 gio/goutputstream.c:721 +#: ../gio/gbufferedinputstream.c:411 ../gio/gbufferedinputstream.c:492 +#: ../gio/ginputstream.c:185 ../gio/ginputstream.c:317 +#: ../gio/ginputstream.c:556 ../gio/ginputstream.c:680 +#: ../gio/goutputstream.c:198 ../gio/goutputstream.c:726 #, c-format msgid "Too large count value passed to %s" msgstr "Giá trị đếm quá lớn được gửi cho %s" -#: gio/gbufferedinputstream.c:883 gio/ginputstream.c:892 gio/giostream.c:305 -#: gio/goutputstream.c:1196 +#: ../gio/gbufferedinputstream.c:880 ../gio/ginputstream.c:888 +#: ../gio/giostream.c:306 ../gio/goutputstream.c:1197 msgid "Stream is already closed" msgstr "Luồng đã bị đóng" -#: gio/gcancellable.c:433 gio/gdbusconnection.c:1212 -#: gio/gdbusconnection.c:1300 gio/gdbusconnection.c:1472 gio/glocalfile.c:2103 -#: gio/gsimpleasyncresult.c:651 gio/gsimpleasyncresult.c:677 +#: ../gio/gcancellable.c:433 ../gio/gdbusconnection.c:1637 +#: ../gio/gdbusconnection.c:1726 ../gio/gdbusconnection.c:1912 +#: ../gio/glocalfile.c:2102 ../gio/gsimpleasyncresult.c:810 +#: ../gio/gsimpleasyncresult.c:836 msgid "Operation was cancelled" msgstr "Thao tác bị thôi" -#: gio/gcharsetconverter.c:264 +#: ../gio/gcharsetconverter.c:263 msgid "Invalid object, not initialized" msgstr "Đối tượng không hợp lệ, chưa được sơ khởi" -#: gio/gcharsetconverter.c:285 gio/gcharsetconverter.c:313 +#: ../gio/gcharsetconverter.c:284 ../gio/gcharsetconverter.c:312 msgid "Incomplete multibyte sequence in input" msgstr "Gặp dây byte không hoàn thành trong đầu vào" -#: gio/gcharsetconverter.c:319 gio/gcharsetconverter.c:328 +#: ../gio/gcharsetconverter.c:318 ../gio/gcharsetconverter.c:327 msgid "Not enough space in destination" msgstr "Không đủ không gian trong đích đến" -#: gio/gcharsetconverter.c:448 gio/gsocket.c:804 +#: ../gio/gcharsetconverter.c:447 ../gio/gsocket.c:832 msgid "Cancellable initialization not supported" msgstr "Không hỗ trợ thao tác khởi động có thể huỷ bỏ" -#: gio/gcontenttype.c:180 +#: ../gio/gcontenttype.c:179 msgid "Unknown type" msgstr "Không rõ kiểu" -#: gio/gcontenttype.c:181 +#: ../gio/gcontenttype.c:180 #, c-format msgid "%s filetype" msgstr "kiểu tập tin %s" -#: gio/gcontenttype.c:681 +#: ../gio/gcontenttype.c:679 #, c-format msgid "%s type" msgstr "kiểu %s" -#: gio/gcredentials.c:203 gio/gcredentials.c:338 +#: ../gio/gcredentials.c:246 ../gio/gcredentials.c:441 msgid "GCredentials is not implemented on this OS" -msgstr "" +msgstr "GCredentials không được hỗ trợ trên hệ điều hành này" -#: gio/gcredentials.c:296 +#: ../gio/gcredentials.c:396 msgid "There is no GCredentials support for your platform" -msgstr "" +msgstr "Không có hỗ trợ GCredentials trên hệ điều hành của bạn" -#: gio/gdatainputstream.c:311 +#: ../gio/gdatainputstream.c:311 msgid "Unexpected early end-of-stream" msgstr "Kết thúc luồng sớm bất thường" -#: gio/gdbusaddress.c:135 gio/gdbusaddress.c:226 gio/gdbusaddress.c:300 -#, fuzzy, c-format +#: ../gio/gdbusaddress.c:142 ../gio/gdbusaddress.c:230 +#: ../gio/gdbusaddress.c:304 +#, c-format msgid "Unsupported key `%s' in address entry `%s'" -msgstr "Địa chỉ ổ cắm không hỗ trợ" +msgstr "Khoá không hỗ trợ `%s' ở đầu nhập địa chỉ `%s'" -#: gio/gdbusaddress.c:165 +#: ../gio/gdbusaddress.c:169 #, c-format msgid "" "Address `%s' is invalid (need exactly one of path, tmpdir or abstract keys)" msgstr "" +"Địa chỉ `%s' không hợp lệ (cần chính xác một đường dẫn, tmpdir hoặc khoá " +"tổng quát)" -#: gio/gdbusaddress.c:178 +#: ../gio/gdbusaddress.c:182 #, c-format msgid "Meaningless key/value pair combination in address entry `%s'" -msgstr "" +msgstr "Cặp khoá/giá trị vô nghĩa ở địa chỉ `%s'" -#: gio/gdbusaddress.c:241 gio/gdbusaddress.c:315 +#: ../gio/gdbusaddress.c:245 ../gio/gdbusaddress.c:319 #, c-format msgid "Error in address `%s' - the port attribute is malformed" -msgstr "" +msgstr "Lỗi ở địa chỉ `%s' - thuộc tính cổng bị hư" -#: gio/gdbusaddress.c:252 gio/gdbusaddress.c:326 +#: ../gio/gdbusaddress.c:256 ../gio/gdbusaddress.c:330 #, c-format msgid "Error in address `%s' - the family attribute is malformed" -msgstr "" +msgstr "Lỗi ở địa chỉ `%s' - thuộc tính họ (family) bị hư" -#: gio/gdbusaddress.c:428 +#: ../gio/gdbusaddress.c:434 #, c-format msgid "Address element `%s', does not contain a colon (:)" -msgstr "" +msgstr "Thành phần địa chỉ `%s', không chứ dấu hai chấm (:)" -#: gio/gdbusaddress.c:449 +#: ../gio/gdbusaddress.c:455 #, c-format msgid "" "Key/Value pair %d, `%s', in address element `%s', does not contain an equal " "sign" -msgstr "" +msgstr "Cặp khoá/giá trị %d, `%s', ở địa chỉ `%s', không chứa dấu bằng" -#: gio/gdbusaddress.c:523 +#: ../gio/gdbusaddress.c:469 +#, c-format +msgid "" +"Error unescaping key or value in Key/Value pair %d, `%s', in address element " +"`%s'" +msgstr "Lỗi unescape khoá hoặc giá trị trong cặp khoá/giá trị %d, `%s', ở địa chỉ `%s'" + +#: ../gio/gdbusaddress.c:547 #, c-format msgid "" "Error in address `%s' - the unix transport requires exactly one of the keys " "`path' or `abstract' to be set" msgstr "" +"Lỗi ở địa chỉ `%s' - phương thức vận chuyển unix cần đặt chính xác một trong " +"những khoá `path' hoặc `abstract'" -#: gio/gdbusaddress.c:559 +#: ../gio/gdbusaddress.c:583 #, c-format msgid "Error in address `%s' - the host attribute is missing or malformed" -msgstr "" +msgstr "Lỗi ở địa chỉ `%s' - thuộc tính máy thiếu hoặc bị hư" -#: gio/gdbusaddress.c:573 +#: ../gio/gdbusaddress.c:597 #, c-format msgid "Error in address `%s' - the port attribute is missing or malformed" -msgstr "" +msgstr "Lỗi ở địa chỉ `%s' - thuộc tính cổng thiếu hoặc bị hư" -#: gio/gdbusaddress.c:587 +#: ../gio/gdbusaddress.c:611 #, c-format msgid "Error in address `%s' - the noncefile attribute is missing or malformed" -msgstr "" +msgstr "Lỗi ở địa chỉ `%s' - thuộc tính noncefile thiếu hoặc bị hư" -#: gio/gdbusaddress.c:601 +#: ../gio/gdbusaddress.c:632 +#| msgid "Error connecting: " +msgid "Error auto-launching: " +msgstr "Lỗi tự động khởi động: " + +#: ../gio/gdbusaddress.c:640 #, c-format msgid "Unknown or unsupported transport `%s' for address `%s'" msgstr "" +"Phương thức vận chuyển `%s' cho địa chỉ `%s' không được hỗ trợ, hoặc không " +"nhận ra" -#: gio/gdbusaddress.c:635 -#, fuzzy, c-format -msgid "Error reading nonce file `%s':" -msgstr "Gặp lỗi khi đọc tập tin '%s': %s" - -#: gio/gdbusaddress.c:646 -msgid "The nonce-file `%s' was %" -msgstr "" - -#: gio/gdbusaddress.c:662 +#: ../gio/gdbusaddress.c:676 #, c-format -msgid "Error write contents of nonce file `%s' to stream:" -msgstr "" +#| msgid "Error opening file '%s': %s" +msgid "Error opening nonce file `%s': %s" +msgstr "Gặp lỗi khi mở nonce-file `%s': %s" -#: gio/gdbusaddress.c:978 +#: ../gio/gdbusaddress.c:694 #, c-format -msgid "" -"Cannot determine session bus address (TODO: run dbus-launch to find out)" -msgstr "" +#| msgid "Error reading nonce file `%s':" +msgid "Error reading from nonce file `%s': %s" +msgstr "Gặp lỗi khi đọc nonce-file '%s': %s" -#: gio/gdbusaddress.c:1002 gio/gdbusconnection.c:5309 +#: ../gio/gdbusaddress.c:703 +#, c-format +#| msgid "Error reading nonce file `%s':" +msgid "Error reading from nonce file `%s', expected 16 bytes, got %d" +msgstr "Gặp lỗi khi đọc nonce-file '%s', cần 16 byte, nhận %d" + +#: ../gio/gdbusaddress.c:721 +#, c-format +#| msgid "Error write contents of nonce file `%s' to stream:" +msgid "Error writing contents of nonce file `%s' to stream:" +msgstr "Lỗi ghi nội dung nonce-file `%s' vào luồng:" + +#: ../gio/gdbusaddress.c:939 +msgid "The given address is empty" +msgstr "Địa chỉ rỗng" + +#: ../gio/gdbusaddress.c:1008 +msgid "Cannot spawn a message bus without a machine-id: " +msgstr "Không thể tạo tuyến thông điệp mà không có machine-id: " + +#: ../gio/gdbusaddress.c:1045 +#, c-format +#| msgid "Error reading nonce file `%s':" +msgid "Error spawning command line `%s': " +msgstr "Lỗi chạy dòng lệnh '%s':" + +#: ../gio/gdbusaddress.c:1056 +#, c-format +msgid "Abnormal program termination spawning command line `%s': %s" +msgstr "Chương trình kết thúc bất thường khi chạy lệnh `%s: %s" + +#: ../gio/gdbusaddress.c:1070 +#, c-format +msgid "Command line `%s' exited with non-zero exit status %d: %s" +msgstr "Lệnh `%s' thoát với mã khác không %d: %s" + +#: ../gio/gdbusaddress.c:1143 +#, c-format +#| msgid "" +#| "Cannot determine session bus address (TODO: run dbus-launch to find out)" +msgid "Cannot determine session bus address (not implemented for this OS)" +msgstr "Không thể xác định địa chỉ tuyến phiên làm việc (chưa được hỗ trợ trên hệ điều hành này)" + +#: ../gio/gdbusaddress.c:1242 ../gio/gdbusconnection.c:6168 #, c-format msgid "" "Cannot determine bus address from DBUS_STARTER_BUS_TYPE environment variable " "- unknown value `%s'" msgstr "" +"Không thể xác định địa chỉ tuyến từ biến môi trường DBUS_STARTER_BUS_TYPE - " +"giá trị lạ `%s'" -#: gio/gdbusaddress.c:1011 gio/gdbusconnection.c:5318 +#: ../gio/gdbusaddress.c:1251 ../gio/gdbusconnection.c:6177 msgid "" "Cannot determine bus address because the DBUS_STARTER_BUS_TYPE environment " "variable is not set" msgstr "" +"Không thể xác định địa chỉ tuyến vì không có biến môi trường " +"DBUS_STARTER_BUS_TYPE" -#: gio/gdbusaddress.c:1021 -#, fuzzy, c-format +#: ../gio/gdbusaddress.c:1261 +#, c-format msgid "Unknown bus type %d" -msgstr "Không rõ kiểu" +msgstr "Không rõ kiểu tuyến %d" -#: gio/gdbusauth.c:289 +#: ../gio/gdbusauth.c:288 msgid "Unexpected lack of content trying to read a line" -msgstr "" +msgstr "Nội dung bị thiếu bất thường khi đọc một dòng" -#: gio/gdbusauth.c:333 +#: ../gio/gdbusauth.c:332 msgid "Unexpected lack of content trying to (safely) read a line" -msgstr "" +msgstr "Nội dung bị thiếu bất thường khi đọc (an toàn) một dòng" -#: gio/gdbusauth.c:504 +#: ../gio/gdbusauth.c:503 #, c-format msgid "" "Exhausted all available authentication mechanisms (tried: %s) (available: %s)" -msgstr "" +msgstr "Cạn kiệt các phương thức xác thực hiện có (thử: %s) (còn: %s)" -#: gio/gdbusauth.c:1146 +#: ../gio/gdbusauth.c:1150 msgid "Cancelled via GDBusAuthObserver::authorize-authenticated-peer" -msgstr "" +msgstr "Đã huỷ thông qua GDBusAuthObserver::authorize-authenticated-peer" -#: gio/gdbusauthmechanismsha1.c:264 -#, fuzzy, c-format +#: ../gio/gdbusauthmechanismsha1.c:266 +#, c-format msgid "Error statting directory `%s': %s" -msgstr "Gặp lỗi khi mở thư mục '%s': %s" +msgstr "Gặp lỗi khi stat() thư mục '%s': %s" -#: gio/gdbusauthmechanismsha1.c:276 +#: ../gio/gdbusauthmechanismsha1.c:278 #, c-format msgid "" "Permissions on directory `%s' are malformed. Expected mode 0700, got 0%o" msgstr "" +"Quyền của thư mục `%s' bị hư. Giá trị là 0%o trong khi lẽ ra phải là 0700." -#: gio/gdbusauthmechanismsha1.c:295 -#, fuzzy, c-format +#: ../gio/gdbusauthmechanismsha1.c:299 +#, c-format msgid "Error creating directory `%s': %s" -msgstr "Lỗi tạo thư mục: %s" +msgstr "Lỗi tạo thư mục `%s': %s" -#: gio/gdbusauthmechanismsha1.c:378 -#, fuzzy, c-format +#: ../gio/gdbusauthmechanismsha1.c:382 +#, c-format msgid "Error opening keyring `%s' for reading: " -msgstr "Gặp lỗi khi mở tập tin '%s': %s" +msgstr "Lỗi mở keyring `%s' để đọc: " -#: gio/gdbusauthmechanismsha1.c:402 gio/gdbusauthmechanismsha1.c:711 +#: ../gio/gdbusauthmechanismsha1.c:406 ../gio/gdbusauthmechanismsha1.c:715 #, c-format msgid "Line %d of the keyring at `%s' with content `%s' is malformed" -msgstr "" +msgstr "Dòng %d của keyring tại `%s' với nội dung `%s' bị hư" -#: gio/gdbusauthmechanismsha1.c:416 gio/gdbusauthmechanismsha1.c:725 +#: ../gio/gdbusauthmechanismsha1.c:420 ../gio/gdbusauthmechanismsha1.c:729 #, c-format msgid "" "First token of line %d of the keyring at `%s' with content `%s' is malformed" msgstr "" +"Token đầu tiên của dòng %d của keyring tại `%s' với nội dung `%s' bị hư" -#: gio/gdbusauthmechanismsha1.c:430 gio/gdbusauthmechanismsha1.c:739 +#: ../gio/gdbusauthmechanismsha1.c:434 ../gio/gdbusauthmechanismsha1.c:743 #, c-format msgid "" "Second token of line %d of the keyring at `%s' with content `%s' is malformed" -msgstr "" +msgstr "Token thứ hai của dòng %d của keyring tại `%s' với nội dung `%s' bị hư" -#: gio/gdbusauthmechanismsha1.c:454 +#: ../gio/gdbusauthmechanismsha1.c:458 #, c-format msgid "Didn't find cookie with id %d in the keyring at `%s'" -msgstr "" +msgstr "Không tìm thấy cookie với id %d trong keyring ở `%s'" -#: gio/gdbusauthmechanismsha1.c:531 -#, fuzzy, c-format -msgid "Error deleting stale lock-file `%s': %s" -msgstr "Gặp lỗi khi đọc tập tin '%s': %s" +#: ../gio/gdbusauthmechanismsha1.c:535 +#, c-format +#| msgid "Error deleting stale lock-file `%s': %s" +msgid "Error deleting stale lock file `%s': %s" +msgstr "Lỗi khi xoá tập tin khoá không dùng nữa '%s': %s" -#: gio/gdbusauthmechanismsha1.c:562 -#, fuzzy, c-format -msgid "Error creating lock-file `%s': %s" -msgstr "Gặp lỗi khi đọc tập tin '%s': %s" +#: ../gio/gdbusauthmechanismsha1.c:566 +#, c-format +#| msgid "Error creating lock-file `%s': %s" +msgid "Error creating lock file `%s': %s" +msgstr "Gặp lỗi khi tạo tập tin khoá '%s': %s" -#: gio/gdbusauthmechanismsha1.c:592 -#, fuzzy, c-format -msgid "Error closing (unlinked) lock-file `%s': %s" -msgstr "Gặp lỗi khi đóng tập tin: %s" +#: ../gio/gdbusauthmechanismsha1.c:596 +#, c-format +#| msgid "Error closing (unlinked) lock-file `%s': %s" +msgid "Error closing (unlinked) lock file `%s': %s" +msgstr "Gặp lỗi khi đóng (unlink) tập tin khoá `%s': %s" -#: gio/gdbusauthmechanismsha1.c:602 -#, fuzzy, c-format -msgid "Error unlinking lock-file `%s': %s" -msgstr "Gặp lỗi khi mở tập tin '%s': %s" +#: ../gio/gdbusauthmechanismsha1.c:606 +#, c-format +#| msgid "Error unlinking lock-file `%s': %s" +msgid "Error unlinking lock file `%s': %s" +msgstr "Gặp lỗi xoá tập tin khoá '%s': %s" -#: gio/gdbusauthmechanismsha1.c:678 -#, fuzzy, c-format +#: ../gio/gdbusauthmechanismsha1.c:682 +#, c-format msgid "Error opening keyring `%s' for writing: " -msgstr "Gặp lỗi khi mở tập tin '%s': %s" +msgstr "Gặp lỗi khi mở keyring '%s' để ghi: " -#: gio/gdbusauthmechanismsha1.c:873 +#: ../gio/gdbusauthmechanismsha1.c:877 #, c-format msgid "(Additionally, releasing the lock for `%s' also failed: %s) " -msgstr "" +msgstr "(Ngoài ra, giải phóng khoá cho `%s' cũng thất bại: %s)" -#: gio/gdbusconnection.c:1001 gio/gdbusconnection.c:1311 -#, fuzzy +#: ../gio/gdbusconnection.c:1148 ../gio/gdbusconnection.c:1374 +#: ../gio/gdbusconnection.c:1413 ../gio/gdbusconnection.c:1737 msgid "The connection is closed" -msgstr "Ổ cắm được thêm đã đóng" +msgstr "Kết nối đã đóng" -#: gio/gdbusconnection.c:1256 +#: ../gio/gdbusconnection.c:1681 msgid "Timeout was reached" -msgstr "" +msgstr "Quá hạn" -#: gio/gdbusconnection.c:1757 +#: ../gio/gdbusconnection.c:2300 msgid "" "Unsupported flags encountered when constructing a client-side connection" -msgstr "" +msgstr "Phát hiện cờ không hỗ trợ khi tạo kết nối phía client" -#: gio/gdbusconnection.c:3158 +#: ../gio/gdbusconnection.c:3752 ../gio/gdbusconnection.c:4070 +#, c-format +#| msgid "No such interface `%s' on object at path %s" +msgid "" +"No such interface `org.freedesktop.DBus.Properties' on object at path %s" +msgstr "Không có giao diện `org.freedesktop.DBus.Properties' trên đối tượng tại đường dẫn %s" + +#: ../gio/gdbusconnection.c:3824 #, c-format msgid "Error setting property `%s': Expected type `%s' but got `%s'" -msgstr "" +msgstr "Lỗi đặt thuộc tính `%s': nhận được `%s' trong khi lẽ ra phải là `%s'" -#: gio/gdbusconnection.c:3250 +#: ../gio/gdbusconnection.c:3919 #, c-format msgid "No such property `%s'" -msgstr "" +msgstr "Không có thuộc tính `%s'" -#: gio/gdbusconnection.c:3262 -#, fuzzy, c-format +#: ../gio/gdbusconnection.c:3931 +#, c-format msgid "Property `%s' is not readable" -msgstr "Kiểu %s không được đặt hạng" +msgstr "Thuộc tính `%s' không đọc được" -#: gio/gdbusconnection.c:3273 -#, fuzzy, c-format +#: ../gio/gdbusconnection.c:3942 +#, c-format msgid "Property `%s' is not writable" -msgstr "Kiểu %s không được đặt hạng" +msgstr "Thuộc tính `%s' không ghi được" -#: gio/gdbusconnection.c:3341 gio/gdbusconnection.c:4768 +#: ../gio/gdbusconnection.c:4012 ../gio/gdbusconnection.c:5602 #, c-format msgid "No such interface `%s'" -msgstr "" +msgstr "Không có giao diện `%s'" -#: gio/gdbusconnection.c:3504 +#: ../gio/gdbusconnection.c:4200 msgid "No such interface" -msgstr "" +msgstr "Không có giao diện như vậy" -#: gio/gdbusconnection.c:3748 -#, c-format -msgid "No such method `%s'" -msgstr "" - -#: gio/gdbusconnection.c:3779 -#, c-format -msgid "Type of message, `%s', does not match expected type `%s'" -msgstr "" - -#: gio/gdbusconnection.c:3993 -#, c-format -msgid "An object is already exported for the interface %s at %s" -msgstr "" - -#: gio/gdbusconnection.c:4173 -#, c-format -msgid "Method `%s' returned type `%s', but expected `%s'" -msgstr "" - -#: gio/gdbusconnection.c:4866 -#, c-format -msgid "Method `%s' on interface `%s' with signature `%s' does not exist" -msgstr "" - -#: gio/gdbusconnection.c:4981 -#, fuzzy, c-format -msgid "A subtree is already exported for %s" -msgstr "Bên lắng nghe đã đóng" - -#: gio/gdbusconnection.c:5089 -#, c-format -msgid "Unable to load /var/lib/dbus/machine-id: %s" -msgstr "" - -#: gio/gdbusconnection.c:5259 +#: ../gio/gdbusconnection.c:4416 ../gio/gdbusconnection.c:6118 #, c-format msgid "No such interface `%s' on object at path %s" -msgstr "" +msgstr "Không có giao diện `%s' trên đối tượng tại đường dẫn %s" -#: gio/gdbusmessage.c:723 -msgid "Wanted to read %" -msgstr "" - -#: gio/gdbusmessage.c:744 +#: ../gio/gdbusconnection.c:4468 #, c-format -msgid "Expected NUL byte after the string `%s' but found `%c' (%d)" -msgstr "" +msgid "No such method `%s'" +msgstr "Không có phương thức `%s'" -#: gio/gdbusmessage.c:927 +#: ../gio/gdbusconnection.c:4499 +#, c-format +msgid "Type of message, `%s', does not match expected type `%s'" +msgstr "Kiểu thông điệp, `%s', không khớp với kiểu đang cần `%s'" + +#: ../gio/gdbusconnection.c:4718 +#, c-format +msgid "An object is already exported for the interface %s at %s" +msgstr "Đối tượng đã được xuất cho giao diện %s tại %s rồi" + +#: ../gio/gdbusconnection.c:4912 +#, c-format +msgid "Method `%s' returned type `%s', but expected `%s'" +msgstr "Phương thức `%s' trả về kiểu `%s', nhưng đang muốn `%s'" + +#: ../gio/gdbusconnection.c:5713 +#, c-format +msgid "Method `%s' on interface `%s' with signature `%s' does not exist" +msgstr "Phương thức `%s' trên giao diện `%s' với ký hiệu `%s' không tồn tại" + +#: ../gio/gdbusconnection.c:5831 +#, c-format +msgid "A subtree is already exported for %s" +msgstr "Cây con đã được xuất cho %s" + +#: ../gio/gdbusmessage.c:856 +msgid "type is INVALID" +msgstr "kiểu KHÔNG HỢP LỆ" + +#: ../gio/gdbusmessage.c:867 +msgid "METHOD_CALL message: PATH or MEMBER header field is missing" +msgstr "Thông điệp METHOD_CALL: thiếu trường PATH (đường dẫn) hoặc MEMBER (thành viên) trong header" + +#: ../gio/gdbusmessage.c:878 +msgid "METHOD_RETURN message: REPLY_SERIAL header field is missing" +msgstr "Thông điệp METHOD_RETURN: thiếu trường REPLY_SERIAL trong header" + +#: ../gio/gdbusmessage.c:890 +msgid "ERROR message: REPLY_SERIAL or ERROR_NAME header field is missing" +msgstr "Thông điệp ERROR: thiếu trường REPLY_SERIAL hoặc ERROR_NAME trong header" + +#: ../gio/gdbusmessage.c:903 +msgid "SIGNAL message: PATH, INTERFACE or MEMBER header field is missing" +msgstr "Thông điệp SIGNAL: thiếu trường PATH, INTERFACE hoặc MEMBER trong header" + +#: ../gio/gdbusmessage.c:911 +msgid "" +"SIGNAL message: The PATH header field is using the reserved value /org/" +"freedesktop/DBus/Local" +msgstr "Thông điệp SIGNAL: trường PATH dùng giá trị dành riêng /org/freedesktop/DBus/Local" + +#: ../gio/gdbusmessage.c:919 +msgid "" +"SIGNAL message: The INTERFACE header field is using the reserved value org." +"freedesktop.DBus.Local" +msgstr "Thông điệp SIGNAL: trường INTERFACE dùng giá trị dành riêng org.freedesktop.DBus.Local" + +#: ../gio/gdbusmessage.c:994 +#, c-format +#| msgid "Wanted to read %" +msgid "Wanted to read %lu bytes but got EOF" +msgstr "Muốn đọc %lu byte nhưng nhận được EOF" + +#: ../gio/gdbusmessage.c:1019 +#, 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 "Muốn chuỗi UTF-8 hợp lệ nhưng nhận được dãy byte không hợp lệ từ vị trí %d (độ dài chuỗi là %d). Chuỗi UTF-8 hợp lệ dài nhất là `%s'" + +#: ../gio/gdbusmessage.c:1032 +#, c-format +#| msgid "Expected NUL byte after the string `%s' but found `%c' (%d)" +msgid "Expected NUL byte after the string `%s' but found byte %d" +msgstr "Chờ byte NUL sau chuỗi `%s' nhưng lại nhận byte %d" + +#: ../gio/gdbusmessage.c:1231 #, c-format msgid "Parsed value `%s' is not a valid D-Bus object path" msgstr "" +"Giá trị đã phân tích `%s' không phải là đường dẫn đối tượng D-Bus hợp lệ" -#: gio/gdbusmessage.c:953 -#, fuzzy, c-format +#: ../gio/gdbusmessage.c:1257 +#, c-format msgid "Parsed value `%s' is not a valid D-Bus signature" -msgstr "'%s' không phải là tên hợp lệ" +msgstr "Giá trị đã phân tích `%s' không phải là ký hiệu D-Bus hợp lệ" -#: gio/gdbusmessage.c:979 -msgid "Encountered array of length %" -msgstr "" +#: ../gio/gdbusmessage.c:1311 +#, c-format +msgid "" +"Encountered array of length %u bytes. Maximum length is 2<<26 bytes (64 MiB)." +msgstr "Phát hiện mảng dài %u byte. Độ dài tối đa là 2<<26 byte (64 MiB)." -#: gio/gdbusmessage.c:1116 +#: ../gio/gdbusmessage.c:1472 #, c-format msgid "Parsed value `%s' for variant is not a valid D-Bus signature" msgstr "" +"Giá trị đã phân tích `%s' cho biến thể không phải là ký hiệu D-Bus hợp lệ" -#: gio/gdbusmessage.c:1141 +#: ../gio/gdbusmessage.c:1499 #, c-format +#| msgid "" +#| "Error deserializing GVariant with type-string `%s' from the D-Bus wire " +#| "format" msgid "" -"Error deserializing GVariant with type-string `%s' from the D-Bus wire format" -msgstr "" +"Error deserializing GVariant with type string `%s' from the D-Bus wire format" +msgstr "Lỗi thôi tuần tự hoá GVariant với kiểu chuỗi `%s' từ định dạng D-Bus" -#: gio/gdbusmessage.c:1286 +#: ../gio/gdbusmessage.c:1683 #, c-format -msgid "Invalid endianness value. Expected 'l' or 'B' but found '%c' (%d)" -msgstr "" +#| msgid "Invalid endianness value. Expected 'l' or 'B' but found '%c' (%d)" +msgid "" +"Invalid endianness value. Expected 0x6c ('l') or 0x42 ('B') but found value " +"0x%02x" +msgstr "Giá trị endianness không hợp lệ. Chờ 0x6c ('l') hoặc 0x42 ('B') nhưng nhận được 0x%02x" -#: gio/gdbusmessage.c:1300 +#: ../gio/gdbusmessage.c:1697 #, c-format msgid "Invalid major protocol version. Expected 1 but found %d" -msgstr "" +msgstr "Phiên bản chính của phương thức không hợp lệ. Chờ 1 nhưng nhận %d" -#: gio/gdbusmessage.c:1342 +#: ../gio/gdbusmessage.c:1754 #, c-format msgid "Signature header with signature `%s' found but message body is empty" -msgstr "" +msgstr "Ký hiệu header `%s' nhưng phần thân trống rỗng" -#: gio/gdbusmessage.c:1356 +#: ../gio/gdbusmessage.c:1768 #, c-format msgid "Parsed value `%s' is not a valid D-Bus signature (for body)" msgstr "" +"Giá trị đã phân tích `%s' không phải là ký hiệu D-Bus hợp lệ (cho phần thân)" -#: gio/gdbusmessage.c:1385 -msgid "No signature header in message but the message body is %" -msgstr "" - -#: gio/gdbusmessage.c:1694 +#: ../gio/gdbusmessage.c:1798 #, c-format -msgid "" -"Error serializing GVariant with type-string `%s' to the D-Bus wire format" -msgstr "" +#| msgid "No signature header in message but the message body is %" +msgid "No signature header in message but the message body is %u bytes" +msgstr "Không có header ký hiệu trong thông điệp, nhưng phần thân thông điệp có %u byte" -#: gio/gdbusmessage.c:1823 +#: ../gio/gdbusmessage.c:1806 +msgid "Cannot deserialize message: " +msgstr "Không thể bỏ tuần tự hoá thông điệp: " + +#: ../gio/gdbusmessage.c:2131 +#, c-format +#| msgid "" +#| "Error serializing GVariant with type-string `%s' to the D-Bus wire format" +msgid "" +"Error serializing GVariant with type string `%s' to the D-Bus wire format" +msgstr "Lỗi tuần tự hoá GVariant với kiểu chuỗi `%s' sang định dạng D-Bus" + +#: ../gio/gdbusmessage.c:2272 #, c-format msgid "Message has %d fds but the header field indicates %d fds" -msgstr "" +msgstr "Thông điệp có %d fd nhưng header chỉ ra %d fd" -#: gio/gdbusmessage.c:1869 +#: ../gio/gdbusmessage.c:2280 +msgid "Cannot serialize message: " +msgstr "Không thể tuần tự hoá thông điệp: " + +#: ../gio/gdbusmessage.c:2324 #, c-format msgid "Message body has signature `%s' but there is no signature header" -msgstr "" +msgstr "Phần thân thông điệp có ký hiệu `%s' nhưng không có header ký hiệu" -#: gio/gdbusmessage.c:1879 +#: ../gio/gdbusmessage.c:2334 #, c-format msgid "" "Message body has type signature `%s' but signature in the header field is `%" "s'" -msgstr "" +msgstr "Phần thân thông điệp có ký hiệu `%s' nhưng header lại có ký hiệu `%s'" -#: gio/gdbusmessage.c:1895 +#: ../gio/gdbusmessage.c:2350 #, c-format msgid "Message body is empty but signature in the header field is `(%s)'" -msgstr "" +msgstr "Thân thông điệp trống rỗng như ký hiệu trong header là `(%s)'" -#: gio/gdbusmessage.c:2448 -#, fuzzy, c-format +#: ../gio/gdbusmessage.c:2907 +#, c-format msgid "Error return with body of type `%s'" -msgstr "Gặp lỗi khi ghi vào tập tin: %s" +msgstr "Lỗi tra ề thân của kiểu `%s'" -#: gio/gdbusmessage.c:2456 +#: ../gio/gdbusmessage.c:2915 msgid "Error return with empty body" -msgstr "" +msgstr "Lỗi trả về thân trống rỗng" -#: gio/gdbusmethodinvocation.c:357 +#: ../gio/gdbusmethodinvocation.c:375 #, c-format msgid "Type of return value is incorrect, got `%s', expected `%s'" -msgstr "" +msgstr "Kiểu giá trị trả về không đúng, nhận `%s' nhưng muốn `%s'" -#: gio/gdbusmethodinvocation.c:371 gio/gsocket.c:2859 gio/gsocket.c:2940 +#: ../gio/gdbusmethodinvocation.c:406 ../gio/gsocket.c:3023 +#: ../gio/gsocket.c:3104 #, c-format msgid "Error sending message: %s" msgstr "Lỗi gửi thông điệp: %s" -#: gio/gdbusprivate.c:775 -msgid "Error writing first 16 bytes of message to socket: " -msgstr "" +#: ../gio/gdbusprivate.c:1768 +#| msgid "Unable to load /var/lib/dbus/machine-id: %s" +msgid "Unable to load /var/lib/dbus/machine-id: " +msgstr "Không thể nạp /var/lib/dbus/machine-id: " -#: gio/gdbusproxy.c:633 +#: ../gio/gdbusproxy.c:714 #, c-format msgid "" "Trying to set property %s of type %s but according to the expected interface " "the type is %s" msgstr "" +"Thử đặt thuộc tính %s của kiểu %s nhưng theo giao diện muốn dùng thì kiểu là " +"%s" -#: gio/gdbusserver.c:669 -#, fuzzy +#: ../gio/gdbusproxy.c:1234 +#, c-format +msgid "Error calling StartServiceByName for %s: " +msgstr "Lỗi gọi StartServiceByName cho %s: " + +#: ../gio/gdbusproxy.c:1255 +#, c-format +msgid "Unexpected reply %d from StartServiceByName(\"%s\") method" +msgstr "Trả lời %d không mong đợi từ hàm StartServiceByName(\"%s)" + +#: ../gio/gdbusproxy.c:2311 ../gio/gdbusproxy.c:2469 +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" +msgstr "Không thể gọi hàm; uỷ nhiệm chỉ dành cho nhửng tên đã biết không có sở hữu và uỷ nhiệm được xây dựng với cờ G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START" + +#: ../gio/gdbusserver.c:715 msgid "Abstract name space not supported" -msgstr "Thùng rác không được hỗ trợ" +msgstr "Không hỗ trợ vùng tên tổng quát" -#: gio/gdbusserver.c:759 +#: ../gio/gdbusserver.c:805 msgid "Cannot specify nonce file when creating a server" -msgstr "" +msgstr "Không thể xác định nonce-file khi tạo máy chủ" -#: gio/gdbusserver.c:836 -#, fuzzy, c-format +#: ../gio/gdbusserver.c:882 +#, c-format msgid "Error writing nonce file at `%s': %s" -msgstr "Gặp lỗi khi ghi vào tập tin: %s" +msgstr "Lỗi ghi nonce-file tại `%s': %s" -#: gio/gdbusserver.c:988 -#, fuzzy, c-format +#: ../gio/gdbusserver.c:1044 +#, c-format msgid "The string `%s' is not a valid D-Bus GUID" -msgstr "'%s' không phải là tên hợp lệ" +msgstr "Chuỗi '%s' không phải là D-BUS GUID hợp lệ" -#: gio/gdbusserver.c:1028 +#: ../gio/gdbusserver.c:1084 #, c-format msgid "Cannot listen on unsupported transport `%s'" -msgstr "" +msgstr "Không thể listen trên phương thức vận chuyển không hỗ trợ `%s'" -#: gio/gdbus-tool.c:87 gio/gsettings-tool.c:38 +#: ../gio/gdbus-tool.c:87 msgid "COMMAND" -msgstr "" +msgstr "LỆNH" -#: gio/gdbus-tool.c:92 +#: ../gio/gdbus-tool.c:92 #, c-format msgid "" "Commands:\n" @@ -1634,232 +2014,244 @@ msgid "" "\n" "Use \"%s COMMAND --help\" to get help on each command.\n" msgstr "" +"Lệnh:\n" +" help Hiện những thông tin này\n" +" introspect Xem xét đối tượng từ xa\n" +" monitor Theo dõi đối tượng từ xa\n" +" call Gọi hàm trên đối tượng từ xa\n" +"\n" +"Dùng \"%s LỆNH --help\" để có trợ giúp của từng lệnh.\n" -#: gio/gdbus-tool.c:160 gio/gdbus-tool.c:216 gio/gdbus-tool.c:288 -#: gio/gdbus-tool.c:312 gio/gdbus-tool.c:814 gio/gdbus-tool.c:1322 -#, fuzzy, c-format +#: ../gio/gdbus-tool.c:160 ../gio/gdbus-tool.c:216 ../gio/gdbus-tool.c:288 +#: ../gio/gdbus-tool.c:312 ../gio/gdbus-tool.c:814 ../gio/gdbus-tool.c:1324 +#, c-format msgid "Error: %s\n" -msgstr "Lỗi trên dòng %d: %s" +msgstr "Lỗi: %s\n" -#: gio/gdbus-tool.c:171 gio/gdbus-tool.c:229 gio/gdbus-tool.c:1332 -#, fuzzy, c-format +#: ../gio/gdbus-tool.c:171 ../gio/gdbus-tool.c:229 ../gio/gdbus-tool.c:1340 +#, c-format msgid "Error parsing introspection XML: %s\n" -msgstr "Gặp lỗi khi phân tách tùy chọn %s" +msgstr "Lỗi phân tích introspection XML: %s\n" -#: gio/gdbus-tool.c:346 +#: ../gio/gdbus-tool.c:346 msgid "Connect to the system bus" -msgstr "" +msgstr "Không thể kết nối vào tuyến hệ thống" -#: gio/gdbus-tool.c:347 +#: ../gio/gdbus-tool.c:347 msgid "Connect to the session bus" -msgstr "" +msgstr "Không thể kết nối vào tuyến phiên làm việc" -#: gio/gdbus-tool.c:348 -#, fuzzy +#: ../gio/gdbus-tool.c:348 msgid "Connect to given D-Bus address" -msgstr "Kết nối đang hình thành" +msgstr "Kết nối đến địa chỉ D-Bus đã cho" -#: gio/gdbus-tool.c:358 -#, fuzzy +#: ../gio/gdbus-tool.c:358 msgid "Connection Endpoint Options:" -msgstr "Kết nối đang hình thành" +msgstr "Tuỳ chọn đầu kết nối:" -#: gio/gdbus-tool.c:359 +#: ../gio/gdbus-tool.c:359 msgid "Options specifying the connection endpoint" -msgstr "" +msgstr "Tuỳ chọn xác định đầu nối" -#: gio/gdbus-tool.c:379 +#: ../gio/gdbus-tool.c:379 #, c-format msgid "No connection endpoint specified" -msgstr "" +msgstr "Chưa xác định đầu nối" -#: gio/gdbus-tool.c:389 +#: ../gio/gdbus-tool.c:389 #, c-format msgid "Multiple connection endpoints specified" -msgstr "" +msgstr "Xác định nhiều đầu nối" -#: gio/gdbus-tool.c:459 +#: ../gio/gdbus-tool.c:459 #, c-format msgid "" "Warning: According to introspection data, interface `%s' does not exist\n" -msgstr "" +msgstr "Chú ý: theo dữ liệu introspection, giao diện `%s' không tồn tại\n" -#: gio/gdbus-tool.c:468 +#: ../gio/gdbus-tool.c:468 #, c-format msgid "" "Warning: According to introspection data, method `%s' does not exist on " "interface `%s'\n" msgstr "" +"Chú ý: theo dữ liệu introspection, phương thức `%s' không tồn tại trên giao " +"diện `%s'\n" -#: gio/gdbus-tool.c:530 +#: ../gio/gdbus-tool.c:530 msgid "Destination name to invoke method on" -msgstr "" +msgstr "Tên dích để gọi hàm" -#: gio/gdbus-tool.c:531 +#: ../gio/gdbus-tool.c:531 msgid "Object path to invoke method on" -msgstr "" +msgstr "Đường dẫn đối tượng để gọi hàm" -#: gio/gdbus-tool.c:532 +#: ../gio/gdbus-tool.c:532 msgid "Method and interface name" -msgstr "" +msgstr "Tên phương thức vào giao diện" -#: gio/gdbus-tool.c:571 +#: ../gio/gdbus-tool.c:571 msgid "Invoke a method on a remote object." -msgstr "" +msgstr "Gọi hàm trên đối tượng từ xa." -#: gio/gdbus-tool.c:626 gio/gdbus-tool.c:1243 gio/gdbus-tool.c:1495 -#, fuzzy, c-format +#: ../gio/gdbus-tool.c:626 ../gio/gdbus-tool.c:1245 ../gio/gdbus-tool.c:1505 +#, c-format msgid "Error connecting: %s\n" -msgstr "Lỗi kết nối: %s" +msgstr "Lỗi kết nối: %s\n" -#: gio/gdbus-tool.c:646 gio/gdbus-tool.c:1262 gio/gdbus-tool.c:1514 +#: ../gio/gdbus-tool.c:646 ../gio/gdbus-tool.c:1264 ../gio/gdbus-tool.c:1524 #, c-format msgid "Error: Destination is not specified\n" -msgstr "" +msgstr "Lỗi: chưa xác định đích\n" -#: gio/gdbus-tool.c:667 gio/gdbus-tool.c:1281 +#: ../gio/gdbus-tool.c:667 ../gio/gdbus-tool.c:1283 #, c-format msgid "Error: Object path is not specified\n" -msgstr "" +msgstr "Lỗi: chưa xác định đường dẫn đối tượng\n" -#: gio/gdbus-tool.c:687 gio/gdbus-tool.c:1301 gio/gdbus-tool.c:1554 -#, fuzzy, c-format +#: ../gio/gdbus-tool.c:687 ../gio/gdbus-tool.c:1303 ../gio/gdbus-tool.c:1564 +#, c-format msgid "Error: %s is not a valid object path\n" -msgstr "'%s' không phải là tên hợp lệ" +msgstr "Lỗi: '%s' không phải là đường dẫn đối tượng hợp lệ\n" -#: gio/gdbus-tool.c:702 +#: ../gio/gdbus-tool.c:702 #, c-format msgid "Error: Method name is not specified\n" -msgstr "" +msgstr "Lỗi: chưa xác định tên phương thức\n" -#: gio/gdbus-tool.c:713 +#: ../gio/gdbus-tool.c:713 #, c-format msgid "Error: Method name `%s' is invalid\n" -msgstr "" +msgstr "Lỗi: tên phương thức `%s' không hợp lệ\n" -#: gio/gdbus-tool.c:778 -#, fuzzy, c-format +#: ../gio/gdbus-tool.c:778 +#, c-format msgid "Error parsing parameter %d of type `%s': %s\n" -msgstr "Gặp lỗi khi mở thư mục '%s': %s" +msgstr "Lỗi phân tích tham số %d kiểu `%s': %s\n" -#: gio/gdbus-tool.c:786 -#, fuzzy, c-format +#: ../gio/gdbus-tool.c:786 +#, c-format msgid "Error parsing parameter %d: %s\n" -msgstr "Gặp lỗi khi phân tách tùy chọn %s" +msgstr "Lỗi phân tích tham số %d: %s\n" -#: gio/gdbus-tool.c:1161 +#: ../gio/gdbus-tool.c:1162 msgid "Destination name to introspect" -msgstr "" +msgstr "Tên đích cần xem xét" -#: gio/gdbus-tool.c:1162 +#: ../gio/gdbus-tool.c:1163 msgid "Object path to introspect" -msgstr "" +msgstr "Đường dẫn đối tượng cần xem xét" -#: gio/gdbus-tool.c:1195 +#: ../gio/gdbus-tool.c:1164 +msgid "Print XML" +msgstr "In XML" + +#: ../gio/gdbus-tool.c:1197 msgid "Introspect a remote object." -msgstr "" +msgstr "Xem xét đối tượng từ xa." -#: gio/gdbus-tool.c:1413 +#: ../gio/gdbus-tool.c:1423 msgid "Destination name to monitor" -msgstr "" +msgstr "Tên đích cần theo dõi" -#: gio/gdbus-tool.c:1414 +#: ../gio/gdbus-tool.c:1424 msgid "Object path to monitor" -msgstr "" +msgstr "Đường dẫn đối tượng cần theo dõi" -#: gio/gdbus-tool.c:1447 -#, fuzzy +#: ../gio/gdbus-tool.c:1457 msgid "Monitor a remote object." -msgstr "đối tượng bị hỏng" +msgstr "Theo dõi đối tượng từ xa." -#: gio/gdesktopappinfo.c:468 gio/gwin32appinfo.c:222 +#: ../gio/gdesktopappinfo.c:471 ../gio/gwin32appinfo.c:221 msgid "Unnamed" msgstr "Không có tên" -#: gio/gdesktopappinfo.c:742 +#: ../gio/gdesktopappinfo.c:755 msgid "Desktop file didn't specify Exec field" msgstr "Tập tin Desktop không ghi rõ trường Exec (thực hiện)" -#: gio/gdesktopappinfo.c:935 +#: ../gio/gdesktopappinfo.c:948 msgid "Unable to find terminal required for application" msgstr "Không tìm thấy thiết bị cuối cần thiết cho ứng dụng" -#: gio/gdesktopappinfo.c:1144 +#: ../gio/gdesktopappinfo.c:1157 #, c-format msgid "Can't create user application configuration folder %s: %s" msgstr "Không thể tạo thư mục cấu hình ứng dụng người dùng %s: %s" -#: gio/gdesktopappinfo.c:1148 +#: ../gio/gdesktopappinfo.c:1161 #, c-format msgid "Can't create user MIME configuration folder %s: %s" msgstr "Không thể tạo thư mục cấu hình MIME người dùng %s: %s" -#: gio/gdesktopappinfo.c:1556 +#: ../gio/gdesktopappinfo.c:1569 #, c-format msgid "Can't create user desktop file %s" msgstr "Không thể tạo tập tin desktop %s" -#: gio/gdesktopappinfo.c:1670 +#: ../gio/gdesktopappinfo.c:1683 #, c-format msgid "Custom definition for %s" msgstr "Lời định nghĩa riêng cho %s" -#: gio/gdrive.c:364 +#: ../gio/gdrive.c:363 msgid "drive doesn't implement eject" msgstr "ổ đĩa không thực hiện chức năng đẩy ra" #. Translators: This is an error #. * message for drive objects that #. * don't implement any of eject or eject_with_operation. -#: gio/gdrive.c:444 +#: ../gio/gdrive.c:443 msgid "drive doesn't implement eject or eject_with_operation" msgstr "" "ổ đĩa không thực hiện chức năng đẩy ra (eject hoặc eject_with_operation)" -#: gio/gdrive.c:521 +#: ../gio/gdrive.c:520 msgid "drive doesn't implement polling for media" msgstr "ổ đĩa không thực hiện chức năng thăm dò có phương tiện không" -#: gio/gdrive.c:726 +#: ../gio/gdrive.c:725 msgid "drive doesn't implement start" msgstr "ổ đĩa không thực hiện chức năng chạy (start)" -#: gio/gdrive.c:828 +#: ../gio/gdrive.c:827 msgid "drive doesn't implement stop" msgstr "ổ đĩa không thực hiện chức năng dừng (stop)" -#: gio/gemblem.c:325 +#: ../gio/gemblem.c:324 #, c-format msgid "Can't handle version %d of GEmblem encoding" msgstr "Không thể quản lý phiên bản %d của bảng mã GEmblem" -#: gio/gemblem.c:335 +#: ../gio/gemblem.c:334 #, c-format msgid "Malformed number of tokens (%d) in GEmblem encoding" msgstr "Bảng mã GEmblem chứa số các hiệu bài dạng sai (%d)" -#: gio/gemblemedicon.c:296 +#: ../gio/gemblemedicon.c:313 #, c-format msgid "Can't handle version %d of GEmblemedIcon encoding" msgstr "Không thể quản lý phiên bản %d của bảng mã GEmblemedIcon" -#: gio/gemblemedicon.c:306 +#: ../gio/gemblemedicon.c:323 #, c-format msgid "Malformed number of tokens (%d) in GEmblemedIcon encoding" msgstr "Bảng mã GEmblemedIcon chứa số các hiệu bài dạng sai (%d)" -#: gio/gemblemedicon.c:329 +#: ../gio/gemblemedicon.c:346 msgid "Expected a GEmblem for GEmblemedIcon" msgstr "Mong đợi một GEmblem cho GEmblemedIcon" -#: gio/gfile.c:871 gio/gfile.c:1101 gio/gfile.c:1236 gio/gfile.c:1472 -#: gio/gfile.c:1526 gio/gfile.c:1583 gio/gfile.c:1666 gio/gfile.c:1721 -#: gio/gfile.c:1781 gio/gfile.c:1835 gio/gfile.c:3304 gio/gfile.c:3358 -#: gio/gfile.c:3490 gio/gfile.c:3530 gio/gfile.c:3857 gio/gfile.c:4259 -#: gio/gfile.c:4345 gio/gfile.c:4434 gio/gfile.c:4532 gio/gfile.c:4619 -#: gio/gfile.c:4712 gio/gfile.c:5042 gio/gfile.c:5322 gio/gfile.c:5391 -#: gio/gfile.c:6982 gio/gfile.c:7072 gio/gfile.c:7158 -#: gio/win32/gwinhttpfile.c:441 +#: ../gio/gfile.c:872 ../gio/gfile.c:1103 ../gio/gfile.c:1238 +#: ../gio/gfile.c:1475 ../gio/gfile.c:1529 ../gio/gfile.c:1586 +#: ../gio/gfile.c:1669 ../gio/gfile.c:1724 ../gio/gfile.c:1784 +#: ../gio/gfile.c:1838 ../gio/gfile.c:3308 ../gio/gfile.c:3362 +#: ../gio/gfile.c:3494 ../gio/gfile.c:3535 ../gio/gfile.c:3862 +#: ../gio/gfile.c:4264 ../gio/gfile.c:4350 ../gio/gfile.c:4439 +#: ../gio/gfile.c:4537 ../gio/gfile.c:4624 ../gio/gfile.c:4718 +#: ../gio/gfile.c:5039 ../gio/gfile.c:5306 ../gio/gfile.c:5371 +#: ../gio/gfile.c:6945 ../gio/gfile.c:7035 ../gio/gfile.c:7121 +#: ../gio/win32/gwinhttpfile.c:439 msgid "Operation not supported" msgstr "Thao tác không được hỗ trợ" @@ -1871,137 +2263,137 @@ msgstr "Thao tác không được hỗ trợ" #. Translators: This is an error message when trying to find #. * the enclosing (user visible) mount of a file, but none #. * exists. -#: gio/gfile.c:1357 gio/glocalfile.c:1060 gio/glocalfile.c:1071 -#: gio/glocalfile.c:1084 +#: ../gio/gfile.c:1359 ../gio/glocalfile.c:1059 ../gio/glocalfile.c:1070 +#: ../gio/glocalfile.c:1083 msgid "Containing mount does not exist" msgstr "Bộ lắp chứa không tồn tại" -#: gio/gfile.c:2409 gio/glocalfile.c:2259 +#: ../gio/gfile.c:2412 ../gio/glocalfile.c:2258 msgid "Can't copy over directory" msgstr "Không thể sao chép đè lên thư mục" -#: gio/gfile.c:2469 +#: ../gio/gfile.c:2473 msgid "Can't copy directory over directory" msgstr "Không thể sao chép thư mục đè lên thư mục" -#: gio/gfile.c:2477 gio/glocalfile.c:2268 +#: ../gio/gfile.c:2481 ../gio/glocalfile.c:2267 msgid "Target file exists" msgstr "Tập tin đích đã có" -#: gio/gfile.c:2495 +#: ../gio/gfile.c:2499 msgid "Can't recursively copy directory" msgstr "Không thể sao chép đệ quy thư mục" -#: gio/gfile.c:2755 +#: ../gio/gfile.c:2759 msgid "Splice not supported" msgstr "Chức năng nối bện không được hỗ trợ" -#: gio/gfile.c:2759 +#: ../gio/gfile.c:2763 #, c-format msgid "Error splicing file: %s" msgstr "Gặp lỗi khi nối bện tập tin: %s" -#: gio/gfile.c:2906 +#: ../gio/gfile.c:2910 msgid "Can't copy special file" msgstr "Không thể sao chép tập tin đặc biệt" -#: gio/gfile.c:3480 +#: ../gio/gfile.c:3484 msgid "Invalid symlink value given" msgstr "Đưa ra giá trị liên kết tượng trưng không hợp lệ" -#: gio/gfile.c:3573 +#: ../gio/gfile.c:3578 msgid "Trash not supported" msgstr "Thùng rác không được hỗ trợ" -#: gio/gfile.c:3622 +#: ../gio/gfile.c:3627 #, c-format msgid "File names cannot contain '%c'" msgstr "Tên tập tin không thể chứa '%c'" -#: gio/gfile.c:6039 gio/gvolume.c:331 +#: ../gio/gfile.c:6004 ../gio/gvolume.c:332 msgid "volume doesn't implement mount" msgstr "hàm volume (khối tin) không thực hiện chức năng mount (lắp)" -#: gio/gfile.c:6150 +#: ../gio/gfile.c:6115 msgid "No application is registered as handling this file" msgstr "Không có ứng dụng đăng ký xử lý tập tin này" -#: gio/gfileenumerator.c:206 +#: ../gio/gfileenumerator.c:205 msgid "Enumerator is closed" msgstr "Bộ đếm bị đóng" -#: gio/gfileenumerator.c:213 gio/gfileenumerator.c:272 -#: gio/gfileenumerator.c:372 gio/gfileenumerator.c:481 +#: ../gio/gfileenumerator.c:212 ../gio/gfileenumerator.c:271 +#: ../gio/gfileenumerator.c:371 ../gio/gfileenumerator.c:480 msgid "File enumerator has outstanding operation" msgstr "Bộ đếm tập tin có thao tác còn chạy" -#: gio/gfileenumerator.c:362 gio/gfileenumerator.c:471 +#: ../gio/gfileenumerator.c:361 ../gio/gfileenumerator.c:470 msgid "File enumerator is already closed" msgstr "Bộ đếm tập tin đã bị đóng" -#: gio/gfileicon.c:237 +#: ../gio/gfileicon.c:236 #, c-format msgid "Can't handle version %d of GFileIcon encoding" msgstr "Không thể quản lý phiên bản %d của bảng mã GFileIcon" -#: gio/gfileicon.c:247 +#: ../gio/gfileicon.c:246 msgid "Malformed input data for GFileIcon" msgstr "Dữ liệu nhập dạng sai cho GFileIcon" -#: gio/gfileinputstream.c:155 gio/gfileinputstream.c:422 -#: gio/gfileiostream.c:171 gio/gfileoutputstream.c:170 -#: gio/gfileoutputstream.c:525 +#: ../gio/gfileinputstream.c:154 ../gio/gfileinputstream.c:420 +#: ../gio/gfileiostream.c:170 ../gio/gfileoutputstream.c:169 +#: ../gio/gfileoutputstream.c:523 msgid "Stream doesn't support query_info" msgstr "Luồng không hỗ trợ hàm 'query_info'" -#: gio/gfileinputstream.c:337 gio/gfileiostream.c:389 -#: gio/gfileoutputstream.c:383 +#: ../gio/gfileinputstream.c:335 ../gio/gfileiostream.c:387 +#: ../gio/gfileoutputstream.c:381 msgid "Seek not supported on stream" msgstr "Chức năng seek (tìm nơi) không được hỗ trợ trên luồng" -#: gio/gfileinputstream.c:381 +#: ../gio/gfileinputstream.c:379 msgid "Truncate not allowed on input stream" msgstr "Không cho phép cắt ngắn luồng nhập vào" -#: gio/gfileiostream.c:465 gio/gfileoutputstream.c:459 +#: ../gio/gfileiostream.c:463 ../gio/gfileoutputstream.c:457 msgid "Truncate not supported on stream" msgstr "Không cho phép cắt ngắn luồng" -#: gio/gicon.c:286 +#: ../gio/gicon.c:287 #, c-format msgid "Wrong number of tokens (%d)" msgstr "Số các hiệu bài không đúng (%d)" -#: gio/gicon.c:306 +#: ../gio/gicon.c:307 #, c-format msgid "No type for class name %s" msgstr "Không có kiểu cho tên hạng %s" -#: gio/gicon.c:316 +#: ../gio/gicon.c:317 #, c-format msgid "Type %s does not implement the GIcon interface" msgstr "Kiểu %s không thực hiện giao diện GIcon" -#: gio/gicon.c:327 +#: ../gio/gicon.c:328 #, c-format msgid "Type %s is not classed" msgstr "Kiểu %s không được đặt hạng" -#: gio/gicon.c:341 +#: ../gio/gicon.c:342 #, c-format msgid "Malformed version number: %s" msgstr "Số thứ tự phiên bản dạng sai: %s" -#: gio/gicon.c:355 +#: ../gio/gicon.c:356 #, c-format msgid "Type %s does not implement from_tokens() on the GIcon interface" msgstr "Kiểu %s không thực hiện 'from_tokens()' trên giao diện GIcon" -#: gio/gicon.c:431 +#: ../gio/gicon.c:432 msgid "Can't handle the supplied version the icon encoding" msgstr "Không thể quản lý phiên bản đã cung cấp của bảng mã biểu tượng" -#: gio/ginputstream.c:195 +#: ../gio/ginputstream.c:194 msgid "Input stream doesn't implement read" msgstr "Luồng nhập vào không thực hiện chức năng đọc" @@ -2011,356 +2403,625 @@ msgstr "Luồng nhập vào không thực hiện chức năng đọc" #. 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:902 gio/giostream.c:315 gio/goutputstream.c:1206 +#: ../gio/ginputstream.c:898 ../gio/giostream.c:316 +#: ../gio/goutputstream.c:1207 msgid "Stream has outstanding operation" msgstr "Luồng có thao tác còn chạy" -#: gio/ginetsocketaddress.c:182 gio/ginetsocketaddress.c:199 -#: gio/gunixsocketaddress.c:222 +#: ../gio/ginetsocketaddress.c:181 ../gio/ginetsocketaddress.c:198 +#: ../gio/gunixsocketaddress.c:221 msgid "Not enough space for socket address" msgstr "Không đủ không gian cho địa chỉ ổ cắm" -#: gio/ginetsocketaddress.c:212 +#: ../gio/ginetsocketaddress.c:211 msgid "Unsupported socket address" msgstr "Địa chỉ ổ cắm không hỗ trợ" -#: gio/glocaldirectorymonitor.c:288 +#: ../gio/glib-compile-schemas.c:713 +#| msgid "Abstract name space not supported" +msgid "empty names are not permitted" +msgstr "không cho phép tên rỗng" + +#: ../gio/glib-compile-schemas.c:723 +#, c-format +msgid "invalid name '%s': names must begin with a lowercase letter" +msgstr "tên không hợp lệ '%s': tên phải bắt đầu bằng chữ thường" + +#: ../gio/glib-compile-schemas.c:735 +#, c-format +msgid "" +"invalid name '%s': invalid character '%c'; only lowercase letters, numbers " +"and dash ('-') are permitted." +msgstr "tên không hợp lệ '%s': ký tự không hợp lệ '%c'; chỉ được dùng chữ thường, số hoặc dấu gạch ngang ('-')." + +#: ../gio/glib-compile-schemas.c:744 +#, c-format +msgid "invalid name '%s': two successive dashes ('--') are not permitted." +msgstr "tên không hợp lệ '%s': không được dùng hai gạch ngang liên tiếp ('--')." + +#: ../gio/glib-compile-schemas.c:753 +#, c-format +msgid "invalid name '%s': the last character may not be a dash ('-')." +msgstr "tên không hợp lệ '%s': ký tự cuối không thể là gạch ngang ('-')." + +#: ../gio/glib-compile-schemas.c:761 +#, c-format +msgid "invalid name '%s': maximum length is 32" +msgstr "tên không hợp lệ '%s': độ dài tối đa là 32" + +#: ../gio/glib-compile-schemas.c:830 +#, c-format +msgid " already specified" +msgstr " đã được xác định rồi" + +#: ../gio/glib-compile-schemas.c:856 +msgid "can not add keys to a 'list-of' schema" +msgstr "không thể thêm khoá vào schema 'list-of'" + +#: ../gio/glib-compile-schemas.c:867 +#, c-format +msgid " already specified" +msgstr " đã được xác định rồi" + +#: ../gio/glib-compile-schemas.c:885 +#, c-format +msgid "" +" shadows in ; use " +"to modify value" +msgstr " che trong ; dùng để thay đổi giá trị" + +#: ../gio/glib-compile-schemas.c:896 +#, c-format +msgid "" +"exactly one of 'type', 'enum' or 'flags' must be specified as an attribute " +"to " +msgstr "thuộc tính của chỉ có thể là duy nhất một trong 'type', 'enum' hoặc 'flags'" + +#: ../gio/glib-compile-schemas.c:915 +#, c-format +msgid "<%s id='%s'> not (yet) defined." +msgstr "<%s id='%s'> chưa định nghĩa." + +#: ../gio/glib-compile-schemas.c:930 +#, c-format +#| msgid "Invalid attribute type (string expected)" +msgid "invalid GVariant type string '%s'" +msgstr "kiểu chuỗi GVariant không hợp lệ '%s'" + +#: ../gio/glib-compile-schemas.c:960 +msgid " given but schema isn't extending anything" +msgstr " được ghi nhưng schema không có gì để mở rộng" + +#: ../gio/glib-compile-schemas.c:973 +#, c-format +msgid "no to override" +msgstr "không có để ghi đè" + +#: ../gio/glib-compile-schemas.c:981 +#, c-format +msgid " already specified" +msgstr " đã được xác định rồi" + +#: ../gio/glib-compile-schemas.c:1052 +#, c-format +msgid " already specified" +msgstr " đã được xác định rồi" + +#: ../gio/glib-compile-schemas.c:1064 +#, c-format +msgid " extends not yet existing schema '%s'" +msgstr " mở rộng schema chưa tồn tại '%s'" + +#: ../gio/glib-compile-schemas.c:1080 +#, c-format +msgid " is list of not yet existing schema '%s'" +msgstr " là danh sách của schema chưa tồn tại '%s'" + +#: ../gio/glib-compile-schemas.c:1088 +#, c-format +msgid "Can not be a list of a schema with a path" +msgstr "Không thể là danh sách của schema hoặc đường dẫn" + +#: ../gio/glib-compile-schemas.c:1098 +#, c-format +msgid "Can not extend a schema with a path" +msgstr "Không thể mở rộng schema với một đường dẫn" + +#: ../gio/glib-compile-schemas.c:1108 +#, c-format +msgid "" +" is a list, extending which is not a list" +msgstr " là danh sách, mở rộng không phải là một danh sách" + +#: ../gio/glib-compile-schemas.c:1118 +#, c-format +msgid "" +" extends but '%s' " +"does not extend '%s'" +msgstr " mở rộng nhưng '%s' không mở rộng '%s'" + +#: ../gio/glib-compile-schemas.c:1135 +#, c-format +msgid "a path, if given, must begin and end with a slash" +msgstr "đường dẫn nếu có phải bắt đầu bằng dấu '/'" + +#: ../gio/glib-compile-schemas.c:1142 +#, c-format +msgid "the path of a list must end with ':/'" +msgstr "đường dẫn danh sách phải bắt đầu bằng ':/'" + +#: ../gio/glib-compile-schemas.c:1168 +#, c-format +msgid "<%s id='%s'> already specified" +msgstr "<%s id='%s'> đã được xác định rồi" + +#: ../gio/glib-compile-schemas.c:1387 +#, c-format +msgid "Element <%s> not allowed inside <%s>" +msgstr "Không cho phép phần tử <%s> bên trong <%s>" + +#: ../gio/glib-compile-schemas.c:1391 +#, c-format +msgid "Element <%s> not allowed at toplevel" +msgstr "Không cho phép phần tử <%s> ở cấp cao nhất" + +#: ../gio/glib-compile-schemas.c:1485 +#, c-format +msgid "text may not appear inside <%s>" +msgstr "văn bản không thể xuất hiện bên trong <%s>" + +#. Translators: Do not translate "--strict". +#: ../gio/glib-compile-schemas.c:1654 ../gio/glib-compile-schemas.c:1725 +#: ../gio/glib-compile-schemas.c:1801 +#, c-format +msgid "--strict was specified; exiting.\n" +msgstr "--strict được dùng; thoát.\n" + +#: ../gio/glib-compile-schemas.c:1662 +#, c-format +msgid "This entire file has been ignored.\n" +msgstr "Toàn bộ tập tin này bị bỏ qua.\n" + +#: ../gio/glib-compile-schemas.c:1721 +#, c-format +msgid "Ignoring this file.\n" +msgstr "Bỏ qua tập tin này.\n" + +#: ../gio/glib-compile-schemas.c:1761 +#, c-format +msgid "No such key `%s' in schema `%s' as specified in override file `%s'" +msgstr "Không có khoá `%s' trong schema `%s' như được xác định trong tập tin ghi đè `%s'" + +#: ../gio/glib-compile-schemas.c:1767 ../gio/glib-compile-schemas.c:1825 +#: ../gio/glib-compile-schemas.c:1853 +#, c-format +msgid "; ignoring override for this key.\n" +msgstr "; bỏ qua ghi đè cho khoá này.\n" + +#: ../gio/glib-compile-schemas.c:1771 ../gio/glib-compile-schemas.c:1829 +#: ../gio/glib-compile-schemas.c:1857 +#, c-format +msgid " and --strict was specified; exiting.\n" +msgstr "và có dùng --strict; thoát.\n" + +#: ../gio/glib-compile-schemas.c:1787 +#, c-format +msgid "" +"error parsing key `%s' in schema `%s' as specified in override file `%s': %" +"s. " +msgstr "lỗi phân tích khoá `%s' trong schema `%s' như xác định trong tập tin ghi đè `%s': %s. " + +#: ../gio/glib-compile-schemas.c:1797 +#, c-format +msgid "Ignoring override for this key.\n" +msgstr "Bỏ qua ghi đè khoá này.\n" + +#: ../gio/glib-compile-schemas.c:1815 +#, c-format +msgid "" +"override for key `%s' in schema `%s' in override file `%s' is out of the " +"range given in the schema" +msgstr "ghi đè khoá `%s' trong schema `%s' trong tập tin ghi đè `%s' ngoài phạm vi schema" + +#: ../gio/glib-compile-schemas.c:1843 +#, c-format +msgid "" +"override for key `%s' in schema `%s' in override file `%s' is not in the " +"list of valid choices" +msgstr "ghi đè khoá `%s' trong schema `%s' trong tập tin ghi đè `%s' không nằm trong danh sách lựa chọn hợp lệ" + +#: ../gio/glib-compile-schemas.c:1897 +msgid "where to store the gschemas.compiled file" +msgstr "nơi lưu tập tin gschemas.compiled" + +#: ../gio/glib-compile-schemas.c:1897 ../gio/glib-compile-schemas.c:1910 +msgid "DIRECTORY" +msgstr "THƯ MỤC" + +#: ../gio/glib-compile-schemas.c:1898 +msgid "Abort on any errors in schemas" +msgstr "Buộc huỷ nếu gặp bất cứ lỗi gì trong schema" + +#: ../gio/glib-compile-schemas.c:1899 +msgid "Do not write the gschema.compiled file" +msgstr "Không ghi tập tin gschemas.compiled" + +#: ../gio/glib-compile-schemas.c:1900 +msgid "This option will be removed soon." +msgstr "Tuỳ chọn này sẽ sớm bị bỏ." + +#: ../gio/glib-compile-schemas.c:1901 +msgid "Do not enforce key name restrictions" +msgstr "Không áp đặt ràng buộc tên khoá" + +#: ../gio/glib-compile-schemas.c:1913 +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 "" +"Biên dịch tất cả tập tin GSettings schema thành schema cache.\n" +"Tập tin schema cần có phần mở rộng .gschema.xml,\n" +"và tập tin cache tên là gschemas.compiled." + +#: ../gio/glib-compile-schemas.c:1929 +#, c-format +msgid "You should give exactly one directory name\n" +msgstr "Bạn nên đưa chính xác một tên thư mục\n" + +#: ../gio/glib-compile-schemas.c:1968 +#, c-format +#| msgid "No schema files found\n" +msgid "No schema files found: " +msgstr "Không tìm thấy tập tin schema: " + +#: ../gio/glib-compile-schemas.c:1971 +#, c-format +msgid "doing nothing.\n" +msgstr "không làm gì cả.\n" + +#: ../gio/glib-compile-schemas.c:1974 +#, c-format +msgid "removed existing output file.\n" +msgstr "đã xoá tập tin kết xuất hiện có.\n" + +#: ../gio/glocaldirectorymonitor.c:287 msgid "Unable to find default local directory monitor type" msgstr "Không tìm thấy kiểu theo dõi thư mục cục bộ mặc định" -#: gio/glocalfile.c:594 gio/win32/gwinhttpfile.c:424 +#: ../gio/glocalfile.c:593 ../gio/win32/gwinhttpfile.c:422 #, c-format msgid "Invalid filename %s" msgstr "Tên tập tin không hợp lệ: %s" -#: gio/glocalfile.c:968 +#: ../gio/glocalfile.c:967 #, c-format msgid "Error getting filesystem info: %s" msgstr "Gặp lỗi khi lấy tập tin về hệ thống tập tin: %s" -#: gio/glocalfile.c:1106 +#: ../gio/glocalfile.c:1105 msgid "Can't rename root directory" msgstr "Không thể thay đổi tên của thư mục gốc" -#: gio/glocalfile.c:1126 gio/glocalfile.c:1152 +#: ../gio/glocalfile.c:1125 ../gio/glocalfile.c:1151 #, c-format msgid "Error renaming file: %s" msgstr "Gặp lỗi khi thay đổi tên của tập tin: %s" -#: gio/glocalfile.c:1135 +#: ../gio/glocalfile.c:1134 msgid "Can't rename file, filename already exist" msgstr "Không thể thay đổi tên của tập tin, vì tên tập tin đã có" -#: gio/glocalfile.c:1148 gio/glocalfile.c:2132 gio/glocalfile.c:2161 -#: gio/glocalfile.c:2321 gio/glocalfileoutputstream.c:570 -#: gio/glocalfileoutputstream.c:623 gio/glocalfileoutputstream.c:668 -#: gio/glocalfileoutputstream.c:1150 +#: ../gio/glocalfile.c:1147 ../gio/glocalfile.c:2131 ../gio/glocalfile.c:2160 +#: ../gio/glocalfile.c:2320 ../gio/glocalfileoutputstream.c:571 +#: ../gio/glocalfileoutputstream.c:624 ../gio/glocalfileoutputstream.c:669 +#: ../gio/glocalfileoutputstream.c:1151 msgid "Invalid filename" msgstr "Tên tập tin không hợp lệ" -#: gio/glocalfile.c:1309 +#: ../gio/glocalfile.c:1308 #, c-format msgid "Error opening file: %s" msgstr "Gặp lỗi khi mở tập tin: %s" -#: gio/glocalfile.c:1319 +#: ../gio/glocalfile.c:1318 msgid "Can't open directory" msgstr "Không thể mở thư mục" -#: gio/glocalfile.c:1444 +#: ../gio/glocalfile.c:1443 #, c-format msgid "Error removing file: %s" msgstr "Gặp lỗi khi gỡ bỏ tập tin: %s" -#: gio/glocalfile.c:1811 +#: ../gio/glocalfile.c:1810 #, c-format msgid "Error trashing file: %s" msgstr "Gặp lỗi khi chuyển tập tin vào sọt rác: %s" -#: gio/glocalfile.c:1834 +#: ../gio/glocalfile.c:1833 #, c-format msgid "Unable to create trash dir %s: %s" msgstr "Không thể tạo thư mục sọt rác %s: %s" -#: gio/glocalfile.c:1855 +#: ../gio/glocalfile.c:1854 msgid "Unable to find toplevel directory for trash" msgstr "Không tìm thấy thư mục cấp đầu cho sọt rác" -#: gio/glocalfile.c:1934 gio/glocalfile.c:1954 +#: ../gio/glocalfile.c:1933 ../gio/glocalfile.c:1953 msgid "Unable to find or create trash directory" msgstr "Không tìm thấy hay không thể tạo thư mục sọt rác" -#: gio/glocalfile.c:1988 +#: ../gio/glocalfile.c:1987 #, c-format msgid "Unable to create trashing info file: %s" msgstr "Không thể tạo tập tin thông tin sọt rác: %s" -#: gio/glocalfile.c:2017 gio/glocalfile.c:2022 gio/glocalfile.c:2102 -#: gio/glocalfile.c:2109 +#: ../gio/glocalfile.c:2016 ../gio/glocalfile.c:2021 ../gio/glocalfile.c:2101 +#: ../gio/glocalfile.c:2108 #, c-format msgid "Unable to trash file: %s" msgstr "Không thể chuyển tập tin vào sọt rác: %s" -#: gio/glocalfile.c:2136 +#: ../gio/glocalfile.c:2135 #, c-format msgid "Error creating directory: %s" msgstr "Lỗi tạo thư mục: %s" -#: gio/glocalfile.c:2165 +#: ../gio/glocalfile.c:2164 #, c-format msgid "Filesystem does not support symbolic links" msgstr "Hệ tậo tin không hỗ trợ liên kết biểu tượng" -#: gio/glocalfile.c:2169 +#: ../gio/glocalfile.c:2168 #, c-format msgid "Error making symbolic link: %s" msgstr "Gặp lỗi khi tạo liên kết tượng trưng: %s" -#: gio/glocalfile.c:2231 gio/glocalfile.c:2325 +#: ../gio/glocalfile.c:2230 ../gio/glocalfile.c:2324 #, c-format msgid "Error moving file: %s" msgstr "Gặp lỗi khi di chuyển tập tin: %s" -#: gio/glocalfile.c:2254 +#: ../gio/glocalfile.c:2253 msgid "Can't move directory over directory" msgstr "Không thể di chuyển thư mục đè lên thư mục" -#: gio/glocalfile.c:2281 gio/glocalfileoutputstream.c:948 -#: gio/glocalfileoutputstream.c:962 gio/glocalfileoutputstream.c:977 -#: gio/glocalfileoutputstream.c:993 gio/glocalfileoutputstream.c:1007 +#: ../gio/glocalfile.c:2280 ../gio/glocalfileoutputstream.c:949 +#: ../gio/glocalfileoutputstream.c:963 ../gio/glocalfileoutputstream.c:978 +#: ../gio/glocalfileoutputstream.c:994 ../gio/glocalfileoutputstream.c:1008 msgid "Backup file creation failed" msgstr "Lỗi tạo tập tin sao lưu" -#: gio/glocalfile.c:2300 +#: ../gio/glocalfile.c:2299 #, c-format msgid "Error removing target file: %s" msgstr "Gặp lỗi khi gỡ bỏ tập tin đích: %s" -#: gio/glocalfile.c:2314 +#: ../gio/glocalfile.c:2313 msgid "Move between mounts not supported" msgstr "Không hỗ trợ chức năng di chuyển giữa các bộ lắp" -#: gio/glocalfileinfo.c:721 +#: ../gio/glocalfileinfo.c:720 msgid "Attribute value must be non-NULL" msgstr "Giá trị thuộc tính phải có giá trị" -#: gio/glocalfileinfo.c:728 +#: ../gio/glocalfileinfo.c:727 msgid "Invalid attribute type (string expected)" msgstr "Kiểu thuộc tính không hợp lệ (mong đợi chuỗi)" -#: gio/glocalfileinfo.c:735 +#: ../gio/glocalfileinfo.c:734 msgid "Invalid extended attribute name" msgstr "Tên thuộc tính đã mở rộng không hợp lệ" -#: gio/glocalfileinfo.c:775 +#: ../gio/glocalfileinfo.c:774 #, c-format msgid "Error setting extended attribute '%s': %s" msgstr "Gặp lỗi khi đặt thuộc tính đã mở rộng '%s': %s" -#: gio/glocalfileinfo.c:1479 gio/glocalfileoutputstream.c:832 +#: ../gio/glocalfileinfo.c:1483 ../gio/glocalfileoutputstream.c:833 #, c-format msgid "Error stating file '%s': %s" msgstr "Gặp lỗi khi lấy trạng thái về tập tin '%s': %s" -#: gio/glocalfileinfo.c:1552 +#: ../gio/glocalfileinfo.c:1567 msgid " (invalid encoding)" msgstr " (bảng mã không hợp lệ)" -#: gio/glocalfileinfo.c:1750 +#: ../gio/glocalfileinfo.c:1769 #, c-format msgid "Error stating file descriptor: %s" msgstr "Gặp lỗi khi lấy trạng thái về mô tả tập tin: %s" -#: gio/glocalfileinfo.c:1795 +#: ../gio/glocalfileinfo.c:1814 msgid "Invalid attribute type (uint32 expected)" msgstr "Kiểu thuộc tính không hợp lệ (mong đợi uint32)" -#: gio/glocalfileinfo.c:1813 +#: ../gio/glocalfileinfo.c:1832 msgid "Invalid attribute type (uint64 expected)" msgstr "Kiểu thuộc tính không hợp lệ (mong đợi uint64)" -#: gio/glocalfileinfo.c:1832 gio/glocalfileinfo.c:1851 +#: ../gio/glocalfileinfo.c:1851 ../gio/glocalfileinfo.c:1870 msgid "Invalid attribute type (byte string expected)" msgstr "Kiểu thuộc tính không hợp lệ (mong đợi chuỗi byte)" -#: gio/glocalfileinfo.c:1886 +#: ../gio/glocalfileinfo.c:1905 msgid "Cannot set permissions on symlinks" msgstr "Gặp lỗi khi đặt quyền hạn cho liên kết biểu tượng" -#: gio/glocalfileinfo.c:1902 +#: ../gio/glocalfileinfo.c:1921 #, c-format msgid "Error setting permissions: %s" msgstr "Gặp lỗi khi đặt quyền hạn: %s" -#: gio/glocalfileinfo.c:1953 +#: ../gio/glocalfileinfo.c:1972 #, c-format msgid "Error setting owner: %s" msgstr "Gặp lỗi khi đặt người sở hữu : %s" -#: gio/glocalfileinfo.c:1976 +#: ../gio/glocalfileinfo.c:1995 msgid "symlink must be non-NULL" msgstr "liên kết tượng trưng phải có giá trị" -#: gio/glocalfileinfo.c:1986 gio/glocalfileinfo.c:2005 -#: gio/glocalfileinfo.c:2016 +#: ../gio/glocalfileinfo.c:2005 ../gio/glocalfileinfo.c:2024 +#: ../gio/glocalfileinfo.c:2035 #, c-format msgid "Error setting symlink: %s" msgstr "Gặp lỗi khi đặt liên kết tượng trưng: %s" -#: gio/glocalfileinfo.c:1995 +#: ../gio/glocalfileinfo.c:2014 msgid "Error setting symlink: file is not a symlink" msgstr "" "Gặp lỗi khi đặt liên kết tượng trưng: tập tin không phải là liên kết tượng " "trưng" -#: gio/glocalfileinfo.c:2121 +#: ../gio/glocalfileinfo.c:2140 #, c-format msgid "Error setting modification or access time: %s" msgstr "Gặp lỗi khi đặt thời gian sửa đổi hoặc truy cập: %s" -#: gio/glocalfileinfo.c:2144 +#: ../gio/glocalfileinfo.c:2163 msgid "SELinux context must be non-NULL" msgstr "Ngữ cảnh SELinux phải khác NULL" -#: gio/glocalfileinfo.c:2159 +#: ../gio/glocalfileinfo.c:2178 #, c-format msgid "Error setting SELinux context: %s" msgstr "Lỗi đặt ngữ cảnh SELinux: %s" -#: gio/glocalfileinfo.c:2166 +#: ../gio/glocalfileinfo.c:2185 msgid "SELinux is not enabled on this system" msgstr "SELinux chưa được bật trên hệ thống này" -#: gio/glocalfileinfo.c:2258 +#: ../gio/glocalfileinfo.c:2277 #, c-format msgid "Setting attribute %s not supported" msgstr "Không hỗ trợ chức năng đặt thuộc tính %s" -#: gio/glocalfileinputstream.c:184 gio/glocalfileoutputstream.c:721 +#: ../gio/glocalfileinputstream.c:185 ../gio/glocalfileoutputstream.c:722 #, c-format msgid "Error reading from file: %s" msgstr "Gặp lỗi khi đọc từ tập tin: %s" -#: gio/glocalfileinputstream.c:215 gio/glocalfileinputstream.c:227 -#: gio/glocalfileinputstream.c:339 gio/glocalfileoutputstream.c:469 -#: gio/glocalfileoutputstream.c:1025 +#: ../gio/glocalfileinputstream.c:216 ../gio/glocalfileinputstream.c:228 +#: ../gio/glocalfileinputstream.c:340 ../gio/glocalfileoutputstream.c:470 +#: ../gio/glocalfileoutputstream.c:1026 #, c-format msgid "Error seeking in file: %s" msgstr "Gặp lỗi khi tìm nơi trong tập tin: %s" -#: gio/glocalfileinputstream.c:260 gio/glocalfileoutputstream.c:255 -#: gio/glocalfileoutputstream.c:350 +#: ../gio/glocalfileinputstream.c:261 ../gio/glocalfileoutputstream.c:256 +#: ../gio/glocalfileoutputstream.c:351 #, c-format msgid "Error closing file: %s" msgstr "Gặp lỗi khi đóng tập tin: %s" -#: gio/glocalfilemonitor.c:213 +#: ../gio/glocalfilemonitor.c:212 msgid "Unable to find default local file monitor type" msgstr "Không tìm thấy kiểu theo dõi tập tin cục bộ mặc định" -#: gio/glocalfileoutputstream.c:201 gio/glocalfileoutputstream.c:234 -#: gio/glocalfileoutputstream.c:742 +#: ../gio/glocalfileoutputstream.c:202 ../gio/glocalfileoutputstream.c:235 +#: ../gio/glocalfileoutputstream.c:743 #, c-format msgid "Error writing to file: %s" msgstr "Gặp lỗi khi ghi vào tập tin: %s" -#: gio/glocalfileoutputstream.c:282 +#: ../gio/glocalfileoutputstream.c:283 #, c-format msgid "Error removing old backup link: %s" msgstr "Gặp lỗi khi gỡ bỏ liên kết sao lưu cũ : %s" -#: gio/glocalfileoutputstream.c:296 gio/glocalfileoutputstream.c:309 +#: ../gio/glocalfileoutputstream.c:297 ../gio/glocalfileoutputstream.c:310 #, c-format msgid "Error creating backup copy: %s" msgstr "Gặp lỗi khi tạo bản sao lưu : %s" -#: gio/glocalfileoutputstream.c:327 +#: ../gio/glocalfileoutputstream.c:328 #, c-format msgid "Error renaming temporary file: %s" msgstr "Gặp lỗi khi thay đổi tên của tập tin tạm thời: %s" -#: gio/glocalfileoutputstream.c:515 gio/glocalfileoutputstream.c:1076 +#: ../gio/glocalfileoutputstream.c:516 ../gio/glocalfileoutputstream.c:1077 #, c-format msgid "Error truncating file: %s" msgstr "Gặp lỗi khi cắt ngắn tập tin: %s" -#: gio/glocalfileoutputstream.c:576 gio/glocalfileoutputstream.c:629 -#: gio/glocalfileoutputstream.c:674 gio/glocalfileoutputstream.c:814 -#: gio/glocalfileoutputstream.c:1057 gio/glocalfileoutputstream.c:1156 +#: ../gio/glocalfileoutputstream.c:577 ../gio/glocalfileoutputstream.c:630 +#: ../gio/glocalfileoutputstream.c:675 ../gio/glocalfileoutputstream.c:815 +#: ../gio/glocalfileoutputstream.c:1058 ../gio/glocalfileoutputstream.c:1157 #, c-format msgid "Error opening file '%s': %s" msgstr "Gặp lỗi khi mở tập tin '%s': %s" -#: gio/glocalfileoutputstream.c:845 +#: ../gio/glocalfileoutputstream.c:846 msgid "Target file is a directory" msgstr "Tập tin đích là một thư mục" -#: gio/glocalfileoutputstream.c:850 +#: ../gio/glocalfileoutputstream.c:851 msgid "Target file is not a regular file" msgstr "Tập tin đích không phải là một tập tin bình thường" -#: gio/glocalfileoutputstream.c:862 +#: ../gio/glocalfileoutputstream.c:863 msgid "The file was externally modified" msgstr "Tập tin đã bị sửa đổi bên ngoài" -#: gio/glocalfileoutputstream.c:1041 +#: ../gio/glocalfileoutputstream.c:1042 #, c-format msgid "Error removing old file: %s" msgstr "Lỗi xoá tập tin cũ: %s" -#: gio/gmemoryinputstream.c:487 gio/gmemoryoutputstream.c:718 +#: ../gio/gmemoryinputstream.c:486 ../gio/gmemoryoutputstream.c:746 msgid "Invalid GSeekType supplied" msgstr "GSeekType được cung cấp không hợp lệ" -#: gio/gmemoryinputstream.c:497 +#: ../gio/gmemoryinputstream.c:496 msgid "Invalid seek request" msgstr "Yêu cầu tìm không hợp lệ" -#: gio/gmemoryinputstream.c:521 +#: ../gio/gmemoryinputstream.c:520 msgid "Cannot truncate GMemoryInputStream" msgstr "Không thể cắt GMemoryInputStream" -#: gio/gmemoryoutputstream.c:468 +#: ../gio/gmemoryoutputstream.c:496 msgid "Memory output stream not resizable" msgstr "Luồng ra bộ nhớ không thể thay đổi kích thước" -#: gio/gmemoryoutputstream.c:484 +#: ../gio/gmemoryoutputstream.c:512 msgid "Failed to resize memory output stream" msgstr "Lỗi thay đổi kích thước luồng ra bộ nhớ" -#: gio/gmemoryoutputstream.c:572 +#: ../gio/gmemoryoutputstream.c:600 msgid "" "Amount of memory required to process the write is larger than available " "address space" msgstr "" "Việc ghi này yêu cầu một vùng nhớ lớn hơn sức chứa địa chỉ sẵn sàng hiện thời" -#: gio/gmemoryoutputstream.c:728 +#: ../gio/gmemoryoutputstream.c:756 msgid "Requested seek before the beginning of the stream" msgstr "Đã yêu cầu tìm nơi đằng trước đầu của luồng" -#: gio/gmemoryoutputstream.c:737 +#: ../gio/gmemoryoutputstream.c:765 msgid "Requested seek beyond the end of the stream" msgstr "Đã yêu cầu tìm nơi đằng sau cuối của luồng" #. Translators: This is an error #. * message for mount objects that #. * don't implement unmount. -#: gio/gmount.c:364 +#: ../gio/gmount.c:363 msgid "mount doesn't implement \"unmount\"" msgstr "hàm mount (lắp) không thực hiện hàm \"unmount\" (bỏ lắp)" #. Translators: This is an error #. * message for mount objects that #. * don't implement eject. -#: gio/gmount.c:443 +#: ../gio/gmount.c:442 msgid "mount doesn't implement \"eject\"" msgstr "hàm mount (lắp) không thực hiện hàm \"eject\" (đầy ra)" #. Translators: This is an error #. * message for mount objects that #. * don't implement any of unmount or unmount_with_operation. -#: gio/gmount.c:523 +#: ../gio/gmount.c:522 msgid "mount doesn't implement \"unmount\" or \"unmount_with_operation\"" msgstr "" "hàm mount (lắp) không thực hiện hàm \"unmount\" hoặc \"unmount_with_operation" @@ -2369,7 +3030,7 @@ msgstr "" #. Translators: This is an error #. * message for mount objects that #. * don't implement any of eject or eject_with_operation. -#: gio/gmount.c:610 +#: ../gio/gmount.c:609 msgid "mount doesn't implement \"eject\" or \"eject_with_operation\"" msgstr "" "hàm mount (lắp) không thực hiện hàm \"eject\" hoặc \"eject_with_operation" @@ -2378,431 +3039,714 @@ msgstr "" #. Translators: This is an error #. * message for mount objects that #. * don't implement remount. -#: gio/gmount.c:699 +#: ../gio/gmount.c:698 msgid "mount doesn't implement \"remount\"" msgstr "hàm mount (lắp) không thực hiện hàm \"remount\" (lắp lại)" #. Translators: This is an error #. * message for mount objects that #. * don't implement content type guessing. -#: gio/gmount.c:783 +#: ../gio/gmount.c:782 msgid "mount doesn't implement content type guessing" msgstr "hàm mount (lắp) không thực hiện đoán nội dung" #. Translators: This is an error #. * message for mount objects that #. * don't implement content type guessing. -#: gio/gmount.c:872 +#: ../gio/gmount.c:871 msgid "mount doesn't implement synchronous content type guessing" msgstr "hàm mount (lắp) không thực hiện đoán nội dung đồng bộ" -#: gio/gnetworkaddress.c:295 +#: ../gio/gnetworkaddress.c:318 #, c-format msgid "Hostname '%s' contains '[' but not ']'" msgstr "Tên máy '%s' có '[' nhưng không có ']'" -#: gio/goutputstream.c:207 gio/goutputstream.c:408 +#: ../gio/goutputstream.c:207 ../gio/goutputstream.c:408 msgid "Output stream doesn't implement write" msgstr "Luồng xuất không thực hiện hàm write (ghi)" -#: gio/goutputstream.c:369 gio/goutputstream.c:845 +#: ../gio/goutputstream.c:369 ../gio/goutputstream.c:849 msgid "Source stream is already closed" msgstr "Luồng nguồn đã bị đóng" -#: gio/gresolver.c:736 +#: ../gio/gresolver.c:737 #, c-format msgid "Error resolving '%s': %s" msgstr "Lỗi phân giải '%s': %s" -#: gio/gresolver.c:786 +#: ../gio/gresolver.c:787 #, c-format msgid "Error reverse-resolving '%s': %s" msgstr "Lỗi phân giải ngược '%s': %s" -#: gio/gresolver.c:821 gio/gresolver.c:899 +#: ../gio/gresolver.c:822 ../gio/gresolver.c:900 #, c-format msgid "No service record for '%s'" msgstr "Không có bản ghi dịch vụ (service record) cho '%s'" -#: gio/gresolver.c:826 gio/gresolver.c:904 +#: ../gio/gresolver.c:827 ../gio/gresolver.c:905 #, c-format msgid "Temporarily unable to resolve '%s'" msgstr "Tạm thời không thể phân giải '%s'" -#: gio/gresolver.c:831 gio/gresolver.c:909 +#: ../gio/gresolver.c:832 ../gio/gresolver.c:910 #, c-format msgid "Error resolving '%s'" msgstr "Lỗi phân giải '%s'" -#: gio/gschema-compile.c:659 -msgid "where to store the gschemas.compiled file" -msgstr "" +#: ../gio/gsettings-tool.c:60 +#, c-format +msgid "Schema '%s' is not relocatable (path must not be specified)\n" +msgstr "Schema '%s' không thể tái định vị (không cần xác định đường dấn)\n" -#: gio/gschema-compile.c:659 gio/gschema-compile.c:671 -msgid "DIRECTORY" -msgstr "" +#: ../gio/gsettings-tool.c:65 ../gio/gsettings-tool.c:82 +#, c-format +#| msgid "No such interface `%s'" +msgid "No such schema '%s'\n" +msgstr "Không có schema '%s'\n" -#: gio/gschema-compile.c:660 -msgid "Do not write the gschema.compiled file" -msgstr "" +#: ../gio/gsettings-tool.c:77 +#, c-format +msgid "Schema '%s' is relocatable (path must be specified)\n" +msgstr "Schema '%s' có thể tái định vị (cần xác định đường dẫn)\n" -#: gio/gschema-compile.c:661 -#, fuzzy -msgid "Do not give error for empty directory" -msgstr "Không thể di chuyển thư mục đè lên thư mục" +#: ../gio/gsettings-tool.c:92 +#, c-format +msgid "Empty path given.\n" +msgstr "Đường dẫn rỗng.\n" -#: gio/gschema-compile.c:662 -msgid "Do not enforce key name restrictions" -msgstr "" +#: ../gio/gsettings-tool.c:98 +#, c-format +msgid "Path must begin with a slash (/)\n" +msgstr "Đường dẫn phải bắt đầu bằng dấu '/'\n" -#: gio/gschema-compile.c:674 +#: ../gio/gsettings-tool.c:104 +#, c-format +msgid "Path must end with a slash (/)\n" +msgstr "Đường dẫn phải kết thúc bằng dấu '/'\n" + +#: ../gio/gsettings-tool.c:110 +#, c-format +msgid "Path must not contain two adjacent slashes (//)\n" +msgstr "Đường dẫn không được chứa hai dấu gạch chéo liên tiếp (//)\n" + +#: ../gio/gsettings-tool.c:131 +#, c-format +#| msgid "No such property `%s'" +msgid "No such key '%s'\n" +msgstr "Không có khoá '%s'\n" + +#: ../gio/gsettings-tool.c:429 +#, c-format +msgid "The provided value is outside of the valid range\n" +msgstr "Giá trị cung cấp ngoài phạm vi hợp lệ\n" + +#: ../gio/gsettings-tool.c:458 +msgid "List the installed (non-relocatable) schemas" +msgstr "Danh sách schema (không thể tái định vị) đã cài đặt" + +#: ../gio/gsettings-tool.c:464 +msgid "List the installed relocatable schemas" +msgstr "Danh sách schema (có thể thể tái định vị) đã cài đặt" + +#: ../gio/gsettings-tool.c:470 +msgid "Lists the keys in SCHEMA" +msgstr "Danh sách khoá trong SCHEMA" + +#: ../gio/gsettings-tool.c:471 ../gio/gsettings-tool.c:477 +#: ../gio/gsettings-tool.c:483 +msgid "SCHEMA[:PATH]" +msgstr "SCHEMA[:ĐƯỜNG DẪN]" + +#: ../gio/gsettings-tool.c:476 +msgid "Lists the children of SCHEMA" +msgstr "Danh sách con của SCHEMA" + +#: ../gio/gsettings-tool.c:482 +msgid "List keys and values, recursively" +msgstr "Danh sách khoá và giá trị, đệ quy" + +#: ../gio/gsettings-tool.c:488 +#| msgid "Get the value of KEY" +msgid "Gets the value of KEY" +msgstr "Lấy giá trị của KHOÁ" + +#: ../gio/gsettings-tool.c:489 ../gio/gsettings-tool.c:495 +#: ../gio/gsettings-tool.c:507 ../gio/gsettings-tool.c:513 +#| msgid "SCHEMA KEY" +msgid "SCHEMA[:PATH] KEY" +msgstr "SCHEMA[:ĐƯỜNG DẪN] KHOÁ" + +#: ../gio/gsettings-tool.c:494 +msgid "Queries the range of valid values for KEY" +msgstr "Truy vấn khoảng giá trị hợp lệ cho KHOÁ" + +#: ../gio/gsettings-tool.c:500 +#| msgid "Set the value of KEY" +msgid "Sets the value of KEY to VALUE" +msgstr "Đặt giá trị GIÁ TRỊ cho KHOÁ" + +#: ../gio/gsettings-tool.c:501 +#| msgid "SCHEMA KEY VALUE" +msgid "SCHEMA[:PATH] KEY VALUE" +msgstr "SCHEMA[:ĐƯỜNG DẪN] KHOÁ GIÁ-TRỊ" + +#: ../gio/gsettings-tool.c:506 +msgid "Resets KEY to its default value" +msgstr "Phục hồi KHOÁ về giá trị mặc định" + +#: ../gio/gsettings-tool.c:512 +#| msgid "Find out whether KEY is writable" +msgid "Checks if KEY is writable" +msgstr "Tìm xem KHOÁ ghi được không" + +#: ../gio/gsettings-tool.c:518 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." +"Monitors KEY for changes.\n" +"If no KEY is specified, monitor all keys in SCHEMA.\n" +"Use ^C to stop monitoring.\n" msgstr "" +"Theo dõi thay đổi của KHOÁ.\n" +"Nếu không xác định KHOÁ, theo dõi mọi khoá trong SCHEMA.\n" +"Dùng ^c để ngưng.\n" -#: gio/gschema-compile.c:690 -#, c-format -msgid "You should give exactly one directory name\n" -msgstr "" +#: ../gio/gsettings-tool.c:521 +#| msgid "SCHEMA KEY" +msgid "SCHEMA[:PATH] [KEY]" +msgstr "SCHEMA[:ĐƯỜNG DẪN] [KHOÁ]" -#: gio/gschema-compile.c:729 -#, c-format -msgid "No schema files found\n" -msgstr "" - -#: gio/gsettings-tool.c:41 +#: ../gio/gsettings-tool.c:525 #, c-format +#| msgid "Unknown command '%s'\n" msgid "" -"Commands:\n" -" help Show this information\n" -" get Get the value of a key\n" -" set Set the value of a key\n" -" monitor Monitor a key for changes\n" -" writable Check if a key is writable\n" +"Unknown command %s\n" "\n" -"Use '%s COMMAND --help' to get help for individual commands.\n" -msgstr "" +msgstr "Lệnh lạ '%s'\n\n" -#: gio/gsettings-tool.c:102 gio/gsettings-tool.c:161 gio/gsettings-tool.c:252 -#: gio/gsettings-tool.c:325 -msgid "Specify the path for the schema" -msgstr "" - -#: gio/gsettings-tool.c:102 gio/gsettings-tool.c:161 gio/gsettings-tool.c:252 -#: gio/gsettings-tool.c:325 -msgid "PATH" -msgstr "" - -#: gio/gsettings-tool.c:110 gio/gsettings-tool.c:260 gio/gsettings-tool.c:333 -msgid "SCHEMA KEY" -msgstr "" - -#: gio/gsettings-tool.c:112 -msgid "Get the value of KEY" -msgstr "" - -#: gio/gsettings-tool.c:114 gio/gsettings-tool.c:264 gio/gsettings-tool.c:340 +#: ../gio/gsettings-tool.c:533 msgid "" -"Arguments:\n" -" SCHEMA The id of the schema\n" -" KEY The name of the key\n" +"Usage:\n" +" gsettings 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" +" get Get the value of a key\n" +" set Set the value of a key\n" +" reset Reset the value of a key\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 "" +"Cách dùng:\n" +" gsettings LỆNH [ĐỐI SỐ...]\n" +"\n" +"Commands:\n" +" help Hiện thông tin này\n" +" list-schemas Liệt kê schema đã cài đặt\n" +" list-relocatable-schemas Liệt kê schema có thể tái định vị\n" +" list-keys Liệt kê khoá trong schema\n" +" list-children Liệt kê khoá con trong schema\n" +" list-recursively Liệt kê khoá và giá trị đệ quy\n" +" range Truy vấn một vùng khoá\n" +" get Lấy giá trị khoá\n" +" set Đặt giá trị khoá\n" +" reset Phục hồi giá trị khoá\n" +" writable Kiểm tra khoá có ghi được không\n" +" monitor Theo dõi thay đổi\n" +"\n" +"Dùng 'gsettings help LỆNH' để biết chi tiết.\n" +"\n" -#: gio/gsettings-tool.c:169 -msgid "SCHEMA KEY VALUE" -msgstr "" - -#: gio/gsettings-tool.c:171 -msgid "Set the value of KEY" -msgstr "" - -#: gio/gsettings-tool.c:173 +#: ../gio/gsettings-tool.c:554 +#, c-format msgid "" -"Arguments:\n" -" SCHEMA The id of the schema\n" -" KEY The name of the key\n" -" VALUE The value to set key to, as a serialized GVariant\n" +"Usage:\n" +" gsettings %s %s\n" +"\n" +"%s\n" +"\n" msgstr "" +"Cách dùng:\n" +" gsettings %s %s\n" +"\n" +"%s\n" +"\n" -#: gio/gsettings-tool.c:212 -#, fuzzy, c-format -msgid "Key %s is not writable\n" -msgstr "Kiểu %s không được đặt hạng" +#: ../gio/gsettings-tool.c:559 +msgid "Arguments:\n" +msgstr "Đối số:\n" -#: gio/gsettings-tool.c:262 -msgid "Find out whether KEY is writable" -msgstr "" - -#: gio/gsettings-tool.c:336 +#: ../gio/gsettings-tool.c:563 +#| msgid "" +#| "Arguments:\n" +#| " SCHEMA The id of the schema\n" +#| " KEY The name of the key\n" msgid "" -"Monitor KEY for changes and print the changed values.\n" -"Monitoring will continue until the process is terminated." +" SCHEMA The name of the schema\n" +" PATH The path, for relocatable schemas\n" msgstr "" +" SCHEMA Tên schema\n" +" PATH Đường dẫn, cho schema tái định vị\n" -#: gio/gsettings-tool.c:399 -#, fuzzy, c-format -msgid "Unknown command '%s'\n" -msgstr "Không biết tùy chọn %s" +#: ../gio/gsettings-tool.c:568 +msgid " KEY The (optional) key within the schema\n" +msgstr " KEY Khoá trong schema (tuỳ chọn)\n" -#: gio/gsocket.c:275 +#: ../gio/gsettings-tool.c:572 +msgid " KEY The key within the schema\n" +msgstr " KEY Khoá trong schema\n" + +#: ../gio/gsettings-tool.c:576 +msgid " VALUE The value to set\n" +msgstr " VALUE Giá trị cần đặt\n" + +#: ../gio/gsettings-tool.c:652 +#, c-format +msgid "Empty schema name given" +msgstr "Tên schema rỗng" + +#: ../gio/gsocket.c:277 msgid "Invalid socket, not initialized" msgstr "Ổ cắm không hợp lệ, chưa được sơ khởi" -#: gio/gsocket.c:282 +#: ../gio/gsocket.c:284 #, c-format msgid "Invalid socket, initialization failed due to: %s" msgstr "Ổ cắm không hợp lệ, khởi động thất bại vì: %s" -#: gio/gsocket.c:290 +#: ../gio/gsocket.c:292 msgid "Socket is already closed" msgstr "Ổ cắm đã được đóng" -#: gio/gsocket.c:298 gio/gsocket.c:2609 gio/gsocket.c:2653 +#: ../gio/gsocket.c:300 ../gio/gsocket.c:2765 ../gio/gsocket.c:2809 msgid "Socket I/O timed out" -msgstr "" +msgstr "Hết giờ Socket I/O" -#: gio/gsocket.c:420 +#: ../gio/gsocket.c:443 #, c-format msgid "creating GSocket from fd: %s" msgstr "tạo GSocket từ fd: %s" -#: gio/gsocket.c:454 gio/gsocket.c:468 gio/gsocket.c:2020 +#: ../gio/gsocket.c:477 ../gio/gsocket.c:493 ../gio/gsocket.c:2135 #, c-format msgid "Unable to create socket: %s" msgstr "Không thể tạo ổ cắm: %s" -#: gio/gsocket.c:454 +#: ../gio/gsocket.c:477 msgid "Unknown protocol was specified" msgstr "Lỗi giao thức không xác định" -#: gio/gsocket.c:1218 +#: ../gio/gsocket.c:1246 #, c-format msgid "could not get local address: %s" msgstr "không thể lấy địa chỉ cục bộ: %s" -#: gio/gsocket.c:1251 +#: ../gio/gsocket.c:1289 #, c-format msgid "could not get remote address: %s" msgstr "không thể lấy địa chỉ ở xa: %s" -#: gio/gsocket.c:1309 +#: ../gio/gsocket.c:1350 #, c-format msgid "could not listen: %s" msgstr "không thể lắng nghe: %s" -#: gio/gsocket.c:1383 +#: ../gio/gsocket.c:1424 #, c-format msgid "Error binding to address: %s" msgstr "Lỗi liên kết địa chỉ: %s" -#: gio/gsocket.c:1503 +#: ../gio/gsocket.c:1544 #, c-format msgid "Error accepting connection: %s" msgstr "Lỗi chấp nhận kết nối: %s" -#: gio/gsocket.c:1616 +#: ../gio/gsocket.c:1661 msgid "Error connecting: " msgstr "Lỗi kết nối: " -#: gio/gsocket.c:1620 +#: ../gio/gsocket.c:1666 msgid "Connection in progress" msgstr "Kết nối đang hình thành" -#: gio/gsocket.c:1625 +#: ../gio/gsocket.c:1673 #, c-format msgid "Error connecting: %s" msgstr "Lỗi kết nối: %s" -#: gio/gsocket.c:1668 +#: ../gio/gsocket.c:1716 ../gio/gsocket.c:3528 #, c-format msgid "Unable to get pending error: %s" msgstr "Không thể lấy lỗi đang chờ: %s" -#: gio/gsocket.c:1764 +#: ../gio/gsocket.c:1848 #, c-format msgid "Error receiving data: %s" msgstr "Lỗi nhận dữ liệu: %s" -#: gio/gsocket.c:1907 +#: ../gio/gsocket.c:2022 #, c-format msgid "Error sending data: %s" msgstr "Lỗi gửi dữ liệu: %s" -#: gio/gsocket.c:2099 +#: ../gio/gsocket.c:2214 #, c-format msgid "Error closing socket: %s" msgstr "Lỗi đóng ổ cắm: %s" -#: gio/gsocket.c:2602 +#: ../gio/gsocket.c:2758 #, c-format msgid "Waiting for socket condition: %s" msgstr "Đang chờ ổ cắm: %s" -#: gio/gsocket.c:2884 +#: ../gio/gsocket.c:3048 msgid "GSocketControlMessage not supported on windows" msgstr "GSocketControlMessage không được hỗ trợ trên Windows" -#: gio/gsocket.c:3143 gio/gsocket.c:3284 +#: ../gio/gsocket.c:3307 ../gio/gsocket.c:3448 #, c-format msgid "Error receiving message: %s" msgstr "Lỗi nhận thông điệp: %s" -#: gio/gsocketclient.c:521 gio/gsocketclient.c:770 +#: ../gio/gsocket.c:3543 +#| msgid "GCredentials is not implemented on this OS" +msgid "g_socket_get_credentials not implemented for this OS" +msgstr "g_socket_get_credentials không được hỗ trợ trên hệ điều hành này" + +#: ../gio/gsocketclient.c:798 ../gio/gsocketclient.c:1368 msgid "Unknown error on connect" msgstr "Lỗi lạ khi kết nối" -#: gio/gsocketlistener.c:192 +#: ../gio/gsocketclient.c:836 ../gio/gsocketclient.c:1252 +msgid "Trying to proxy over non-TCP connection is not supported." +msgstr "Không hỗ trợ uỷ nhiệm thông qua kết nối không phải TCP." + +#: ../gio/gsocketclient.c:858 ../gio/gsocketclient.c:1277 +#, c-format +#| msgid "Property `%s' is not readable" +msgid "Proxy protocol '%s' is not supported." +msgstr "Không hỗ trợ giao thức uỷ nhiệm '%s'." + +#: ../gio/gsocketlistener.c:191 msgid "Listener is already closed" msgstr "Bên lắng nghe đã đóng" -#: gio/gsocketlistener.c:233 +#: ../gio/gsocketlistener.c:232 msgid "Added socket is closed" msgstr "Ổ cắm được thêm đã đóng" -#: gio/gthemedicon.c:499 +#: ../gio/gsocks4aproxy.c:121 +#, c-format +msgid "SOCKSv4 does not support IPv6 address '%s'" +msgstr "SOCKSv4 không hỗ trợ địa chỉ IPv6 '%s'" + +#: ../gio/gsocks4aproxy.c:139 +#, c-format +msgid "SOCKSv4 implementation limits username to %i characters" +msgstr "Bản SOCKSv4 giới hạn tên người dùng trong %i ký tự" + +#: ../gio/gsocks4aproxy.c:157 +#, c-format +msgid "SOCKSv4a implementation limits hostname to %i characters" +msgstr "Bản SOCKSv4 giới hạn tên máy trong %i ký tự" + +#: ../gio/gsocks4aproxy.c:183 +msgid "The server is not a SOCKSv4 proxy server." +msgstr "Máy chủ không phải là máy uỷ nhiệm SOCKSv4." + +#: ../gio/gsocks4aproxy.c:190 +msgid "Connection through SOCKSv4 server was rejected" +msgstr "Kết nối qua máy chủ SOCKSv4 bị từ chối" + +#: ../gio/gsocks5proxy.c:155 ../gio/gsocks5proxy.c:328 +#: ../gio/gsocks5proxy.c:338 +msgid "The server is not a SOCKSv5 proxy server." +msgstr "Máy chủ không phải máy SOCKSv5." + +#: ../gio/gsocks5proxy.c:169 +msgid "The SOCKSv5 proxy requires authentication." +msgstr "Máy uỷ nhiệm SOCKSv5 cần xác thực." + +#: ../gio/gsocks5proxy.c:179 +msgid "" +"The SOCKSv5 proxy requires an authentication method that is not supported by " +"GLib." +msgstr "Máy uỷ nhiệm SOCKSv5 cần dùng phương thức xác thực không được hỗ trợ bởi GLib." + +#: ../gio/gsocks5proxy.c:208 +#, c-format +msgid "Username or password is too long for SOCKSv5 protocol (max. is %i)." +msgstr "Tên người dùng hoặc mật khẩu quá dài so với đặc tả giao thức SOCKSv5 (tối đa %i)." + +#: ../gio/gsocks5proxy.c:239 +msgid "SOCKSv5 authentication failed due to wrong username or password." +msgstr "Xác thực SOCKSv5 thất bại vì sai tên người dùng hoặc mật khẩu." + +#: ../gio/gsocks5proxy.c:289 +#, c-format +msgid "Hostname '%s' too long for SOCKSv5 protocol (maximum is %i bytes)" +msgstr "Tên máy '%s' quá dài đối với đặc tả giao thức SOCKSv5 (tối đa %i byte)" + +#: ../gio/gsocks5proxy.c:352 +msgid "The SOCKSv5 proxy server uses unkown address type." +msgstr "Máy chủ uỷ nhiệm SOCKSv5 dùng kiểu địa chỉ lại." + +#: ../gio/gsocks5proxy.c:359 +msgid "Internal SOCKSv5 proxy server error." +msgstr "Lỗi nội bộ máy chủ SOCKSv5." + +#: ../gio/gsocks5proxy.c:365 +msgid "SOCKSv5 connection not allowed by ruleset." +msgstr "Không cho phép kết nối SOCKSv5 dựa theo tập quy tắc." + +#: ../gio/gsocks5proxy.c:372 +msgid "Host unreachable through SOCKSv5 server." +msgstr "Không thể tiếp cận thông qua máy chủ SOCKSv5." + +#: ../gio/gsocks5proxy.c:378 +msgid "Network unreachable through SOCKSv5 proxy." +msgstr "Không thể tiếp cận mạng thông qua máy chủ SOCKSv5." + +#: ../gio/gsocks5proxy.c:384 +msgid "Connection refused through SOCKSv5 proxy." +msgstr "Kết nối bị từ chối thông qua máy chủ SOCKSv5." + +#: ../gio/gsocks5proxy.c:390 +msgid "SOCKSv5 proxy does not support 'connect' command." +msgstr "Uỷ nhiệm SOCKSv5 không hỗ trợ lệnh 'connect' (kết nối)." + +#: ../gio/gsocks5proxy.c:396 +msgid "SOCKSv5 proxy does not support provided address type." +msgstr "Uỷ nhiệm SOCKSv5 không hỗ trợ kiểu địa chỉ cung cấp." + +#: ../gio/gsocks5proxy.c:402 +msgid "Unkown SOCKSv5 proxy error." +msgstr "Lỗi SOCKSv5 lạ." + +#: ../gio/gthemedicon.c:498 #, c-format msgid "Can't handle version %d of GThemedIcon encoding" msgstr "Không thể quản lý phiên bản %d của bảng mã GThemedIcon" -#: gio/gunixconnection.c:165 gio/gunixconnection.c:502 +#: ../gio/gtlscertificate.c:228 +msgid "No PEM-encoded certificate found" +msgstr "Không tìm thấy chứng nhận mã hoá dạng PEM" + +#: ../gio/gtlscertificate.c:237 +msgid "Could not parse PEM-encoded certificate" +msgstr "Không thể phân tích chứng nhận mã hoá dạng PEM" + +#: ../gio/gtlscertificate.c:258 +msgid "Could not parse PEM-encoded private key" +msgstr "Không thể phân tích khoá riêng mã hoá dạng PEM" + +#: ../gio/gunixconnection.c:164 ../gio/gunixconnection.c:505 #, c-format msgid "Expecting 1 control message, got %d" msgstr "Chờ 1 thông điệp điều khiển, nhận được %d" -#: gio/gunixconnection.c:178 gio/gunixconnection.c:512 +#: ../gio/gunixconnection.c:177 ../gio/gunixconnection.c:515 msgid "Unexpected type of ancillary data" msgstr "Gặp dữ liệu bổ sung kiểu bất thường" -#: gio/gunixconnection.c:196 +#: ../gio/gunixconnection.c:195 #, c-format msgid "Expecting one fd, but got %d\n" msgstr "Chờ 1 fd, nhận được %d\n" -#: gio/gunixconnection.c:212 +#: ../gio/gunixconnection.c:211 msgid "Received invalid fd" msgstr "Nhận fd không hợp lệ" -#: gio/gunixconnection.c:359 -#, fuzzy +#: ../gio/gunixconnection.c:359 msgid "Error sending credentials: " -msgstr "Lỗi gửi dữ liệu: %s" +msgstr "Lỗi gửi giấy uỷ nhiệm: " -#: gio/gunixconnection.c:436 +#: ../gio/gunixconnection.c:439 #, c-format msgid "Error checking if SO_PASSCRED is enabled for socket: %s" -msgstr "" +msgstr "Lỗi kiểm tra nếu SO_PASSCRED được bật cho socket: %s" -#: gio/gunixconnection.c:445 +#: ../gio/gunixconnection.c:448 #, c-format msgid "" "Unexpected option length while checking if SO_PASSCRED is enabled for " "socket. Expected %d bytes, got %d" msgstr "" +"Chiều dài tuỳ chọn bất thường khi kiểm tra SO_PASSCRED có được bật cho " +"socket. Chờ %d byte, nhận %d" -#: gio/gunixconnection.c:462 -#, fuzzy, c-format +#: ../gio/gunixconnection.c:465 +#, c-format msgid "Error enabling SO_PASSCRED: %s" -msgstr "Gặp lỗi khi thay đổi tên của tập tin: %s" +msgstr "Lỗi bật SO_PASSCRED: %s" -#: gio/gunixconnection.c:492 +#: ../gio/gunixconnection.c:495 msgid "" "Expecting to read a single byte for receiving credentials but read zero bytes" msgstr "" +"Cần đọc một byte duy nhất để nhận giấy uỷ nhiệm nhưng không đọc được byte nào" -#: gio/gunixconnection.c:535 +#: ../gio/gunixconnection.c:538 #, c-format msgid "Error while disabling SO_PASSCRED: %s" -msgstr "" +msgstr "Lỗi khi tắt SO_PASSCRED: %s" -#: gio/gunixinputstream.c:354 gio/gunixinputstream.c:374 -#: gio/gunixinputstream.c:452 gio/gunixoutputstream.c:439 +#: ../gio/gunixinputstream.c:368 ../gio/gunixinputstream.c:388 +#: ../gio/gunixinputstream.c:466 #, c-format msgid "Error reading from unix: %s" msgstr "Gặp lỗi khi đọc từ UNIX: %s" -#: gio/gunixinputstream.c:407 gio/gunixinputstream.c:589 -#: gio/gunixoutputstream.c:394 gio/gunixoutputstream.c:545 +#: ../gio/gunixinputstream.c:421 ../gio/gunixinputstream.c:601 +#: ../gio/gunixoutputstream.c:407 ../gio/gunixoutputstream.c:556 #, c-format msgid "Error closing unix: %s" msgstr "Gặp lỗi khi đóng UNIX: %s" -#: gio/gunixmounts.c:1846 gio/gunixmounts.c:1883 +#: ../gio/gunixmounts.c:1846 ../gio/gunixmounts.c:1883 msgid "Filesystem root" msgstr "Gốc hệ thống tập tin" -#: gio/gunixoutputstream.c:340 gio/gunixoutputstream.c:361 +#: ../gio/gunixoutputstream.c:353 ../gio/gunixoutputstream.c:374 +#: ../gio/gunixoutputstream.c:452 #, c-format msgid "Error writing to unix: %s" msgstr "Gặp lỗi khi ghi vào UNIX: %s" -#: gio/gunixsocketaddress.c:245 +#: ../gio/gunixsocketaddress.c:244 msgid "Abstract unix domain socket addresses not supported on this system" msgstr "Địa chỉ ổ cắm UNIX trừu tượng không được hỗ trợ trên hệ thống này" -#: gio/gvolume.c:407 +#: ../gio/gvolume.c:408 msgid "volume doesn't implement eject" msgstr "hàm volume (khối tin) không thực hiện hàm eject (đầy ra)" #. Translators: This is an error #. * message for volume objects that #. * don't implement any of eject or eject_with_operation. -#: gio/gvolume.c:486 +#: ../gio/gvolume.c:487 msgid "volume doesn't implement eject or eject_with_operation" msgstr "" "hàm volume (khối tin) không thực hiện hàm \"eject\" hoặc " "\"eject_with_operation\" (đầy ra)" -#: gio/gwin32appinfo.c:277 +#: ../gio/gwin32appinfo.c:276 msgid "Can't find application" msgstr "Không tìm thấy ứng dụng" -#: gio/gwin32appinfo.c:300 +#: ../gio/gwin32appinfo.c:299 #, c-format msgid "Error launching application: %s" msgstr "Gặp lỗi khi khởi chạy ứng dụng: %s" -#: gio/gwin32appinfo.c:336 +#: ../gio/gwin32appinfo.c:335 msgid "URIs not supported" msgstr "Không hỗ trợ địa chỉ URI" -#: gio/gwin32appinfo.c:358 +#: ../gio/gwin32appinfo.c:357 msgid "association changes not supported on win32" msgstr "các thay đổi liên quan không được hỗ trợ trên win32" -#: gio/gwin32appinfo.c:370 +#: ../gio/gwin32appinfo.c:369 msgid "Association creation not supported on win32" msgstr "chức năng tạo sự liên quan không được hỗ trợ trên win32" -#: gio/gwin32inputstream.c:319 -#, fuzzy, c-format +#: ../gio/gwin32inputstream.c:318 +#, c-format msgid "Error reading from handle: %s" -msgstr "Gặp lỗi khi đọc từ tập tin: %s" +msgstr "Gặp lỗi khi đọc từ handle: %s" -#: gio/gwin32inputstream.c:349 gio/gwin32outputstream.c:349 -#, fuzzy, c-format +#: ../gio/gwin32inputstream.c:348 ../gio/gwin32outputstream.c:348 +#, c-format msgid "Error closing handle: %s" -msgstr "Gặp lỗi khi đóng tập tin: %s" +msgstr "Gặp lỗi khi đóng handle: %s" -#: gio/gwin32outputstream.c:319 -#, fuzzy, c-format +#: ../gio/gwin32outputstream.c:318 +#, c-format msgid "Error writing to handle: %s" -msgstr "Gặp lỗi khi ghi vào tập tin: %s" +msgstr "Gặp lỗi khi ghi vào handle: %s" -#: gio/gzlibcompressor.c:279 gio/gzlibdecompressor.c:250 +#: ../gio/gzlibcompressor.c:396 ../gio/gzlibdecompressor.c:349 msgid "Not enough memory" msgstr "Không đủ bộ nhớ" -#: gio/gzlibcompressor.c:286 gio/gzlibdecompressor.c:257 +#: ../gio/gzlibcompressor.c:403 ../gio/gzlibdecompressor.c:356 #, c-format msgid "Internal error: %s" msgstr "Lỗi nội bộ : %s" -#: gio/gzlibcompressor.c:299 gio/gzlibdecompressor.c:271 +#: ../gio/gzlibcompressor.c:416 ../gio/gzlibdecompressor.c:370 msgid "Need more input" msgstr "Cần thêm đầu vào" -#: gio/gzlibdecompressor.c:243 +#: ../gio/gzlibdecompressor.c:342 msgid "Invalid compressed data" msgstr "Sai nén dữ liệu" + +#~ msgid "The nonce-file `%s' was %" +#~ msgstr "nonce-file `%s' là %" + +#~ msgid "Encountered array of length %" +#~ msgstr "Bắt gặp mảng dài %" + +#~ msgid "Error writing first 16 bytes of message to socket: " +#~ msgstr "Lỗi ghi 16 byte đầu tiên của thông điệp vào socket: " + +#~ msgid "Do not give error for empty directory" +#~ msgstr "Không thông báo lỗi với thư mục rỗng" + +#~ msgid "" +#~ "Commands:\n" +#~ " help Show this information\n" +#~ " get Get the value of a key\n" +#~ " set Set the value of a key\n" +#~ " monitor Monitor a key for changes\n" +#~ " writable Check if a key is writable\n" +#~ "\n" +#~ "Use '%s COMMAND --help' to get help for individual commands.\n" +#~ msgstr "" +#~ "Lệnh:\n" +#~ " help Hiện những thông tin này\n" +#~ " get Lấy giá trị của khoá\n" +#~ " set Đặt giá trị cho khoá\n" +#~ " monitor Theo dõi thay đổi của khoá\n" +#~ " writable Kiểm tra khoá ghi được không\n" +#~ "\n" +#~ "Dùng '%s LỆNH --help' để biết thêm chi tiết.\n" + +#~ msgid "Specify the path for the schema" +#~ msgstr "Xác định đường dẫn cho schema" + +#~ msgid "PATH" +#~ msgstr "ĐƯỜNG DẪN" + +#~ msgid "" +#~ "Arguments:\n" +#~ " SCHEMA The id of the schema\n" +#~ " KEY The name of the key\n" +#~ " VALUE The value to set key to, as a serialized GVariant\n" +#~ msgstr "" +#~ "Đối số:\n" +#~ " SCHEMA id của schema\n" +#~ " KEY Tên khoá\n" +#~ " VALUE Giá trị cần đặt, theo kiểu GVariant tuần tự hoá\n" + +#~ msgid "Key %s is not writable\n" +#~ msgstr "Khoá %s không ghi được\n" + +#~ msgid "" +#~ "Monitor KEY for changes and print the changed values.\n" +#~ "Monitoring will continue until the process is terminated." +#~ msgstr "" +#~ "Theo dõi các thay đổi trên KHOÁ và in ra.\n" +#~ "Theo dõi sẽ tiếp tục đến khi tiến trình kết thúc." diff --git a/po/zh_CN.po b/po/zh_CN.po index fb86758f5..324510f2a 100644 --- a/po/zh_CN.po +++ b/po/zh_CN.po @@ -17,10 +17,11 @@ msgstr "" "Project-Id-Version: glib master\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?" "product=glib&component=general\n" -"POT-Creation-Date: 2010-11-29 15:49+0000\n" -"PO-Revision-Date: 2010-12-06 20:42+0800\n" +"POT-Creation-Date: 2010-12-23 18:58+0000\n" +"PO-Revision-Date: 2010-12-26 00:49+0800\n" "Last-Translator: Aron Xu \n" "Language-Team: Chinese (simplified) \n" +"Language: zh_CN\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -395,133 +396,133 @@ msgstr "日" msgid "Error opening directory '%s': %s" msgstr "打开目录“%s”时发生错误:%s" -#: ../glib/gfileutils.c:536 ../glib/gfileutils.c:624 +#: ../glib/gfileutils.c:540 ../glib/gfileutils.c:628 #, c-format msgid "Could not allocate %lu bytes to read file \"%s\"" msgstr "无法分配 %lu 字节以读取文件“%s”" -#: ../glib/gfileutils.c:551 +#: ../glib/gfileutils.c:555 #, c-format msgid "Error reading file '%s': %s" msgstr "读取文件“%s”出错:%s" -#: ../glib/gfileutils.c:565 +#: ../glib/gfileutils.c:569 #, c-format msgid "File \"%s\" is too large" msgstr "文件“%s”太大" -#: ../glib/gfileutils.c:648 +#: ../glib/gfileutils.c:652 #, c-format msgid "Failed to read from file '%s': %s" msgstr "读取文件“%s”失败:%s" -#: ../glib/gfileutils.c:699 ../glib/gfileutils.c:786 +#: ../glib/gfileutils.c:703 ../glib/gfileutils.c:790 #, c-format msgid "Failed to open file '%s': %s" msgstr "打开文件“%s”失败:%s" -#: ../glib/gfileutils.c:716 ../glib/gmappedfile.c:169 +#: ../glib/gfileutils.c:720 ../glib/gmappedfile.c:169 #, c-format msgid "Failed to get attributes of file '%s': fstat() failed: %s" msgstr "获得文件“%s”的属性失败:fstat() 失败:%s" -#: ../glib/gfileutils.c:750 +#: ../glib/gfileutils.c:754 #, c-format msgid "Failed to open file '%s': fdopen() failed: %s" msgstr "打开文件“%s”失败:fdopen() 失败:%s" -#: ../glib/gfileutils.c:858 +#: ../glib/gfileutils.c:862 #, c-format msgid "Failed to rename file '%s' to '%s': g_rename() failed: %s" msgstr "将文件“%s”重命名为“%s”失败:g_rename() 失败:%s" -#: ../glib/gfileutils.c:900 ../glib/gfileutils.c:1369 +#: ../glib/gfileutils.c:904 ../glib/gfileutils.c:1388 #, c-format msgid "Failed to create file '%s': %s" msgstr "创建文件“%s”失败:%s" -#: ../glib/gfileutils.c:914 +#: ../glib/gfileutils.c:918 #, c-format msgid "Failed to open file '%s' for writing: fdopen() failed: %s" msgstr "打开文件“%s”写入失败:fdopen() 失败:%s" -#: ../glib/gfileutils.c:939 +#: ../glib/gfileutils.c:943 #, c-format msgid "Failed to write file '%s': fwrite() failed: %s" msgstr "写入文件“%s”失败:fwrite() 失败:%s" -#: ../glib/gfileutils.c:958 +#: ../glib/gfileutils.c:962 #, c-format msgid "Failed to write file '%s': fflush() failed: %s" msgstr "写入文件“%s”失败:fflush() 失败:%s" -#: ../glib/gfileutils.c:987 +#: ../glib/gfileutils.c:1005 #, c-format msgid "Failed to write file '%s': fsync() failed: %s" msgstr "写入文件“%s”失败:fsync() 失败:%s" -#: ../glib/gfileutils.c:1006 +#: ../glib/gfileutils.c:1025 #, c-format msgid "Failed to close file '%s': fclose() failed: %s" msgstr "关闭文件“%s”失败:fclose() 失败:%s" -#: ../glib/gfileutils.c:1127 +#: ../glib/gfileutils.c:1146 #, c-format msgid "Existing file '%s' could not be removed: g_unlink() failed: %s" msgstr "无法删除已有文件“%s”:g_unlink() 失败:%s" -#: ../glib/gfileutils.c:1331 +#: ../glib/gfileutils.c:1350 #, c-format msgid "Template '%s' invalid, should not contain a '%s'" msgstr "模板“%s”无效,不应该包含“%s”" -#: ../glib/gfileutils.c:1344 +#: ../glib/gfileutils.c:1363 #, c-format msgid "Template '%s' doesn't contain XXXXXX" msgstr "模板“%s”不包含 XXXXXX" -#: ../glib/gfileutils.c:1777 +#: ../glib/gfileutils.c:1796 #, c-format msgid "%u byte" msgid_plural "%u bytes" msgstr[0] "%u 字节" -#: ../glib/gfileutils.c:1785 +#: ../glib/gfileutils.c:1804 #, c-format msgid "%.1f KB" msgstr "%.1f KB" -#: ../glib/gfileutils.c:1790 +#: ../glib/gfileutils.c:1809 #, c-format msgid "%.1f MB" msgstr "%.1f MB" -#: ../glib/gfileutils.c:1795 +#: ../glib/gfileutils.c:1814 #, c-format msgid "%.1f GB" msgstr "%.1f GB" -#: ../glib/gfileutils.c:1800 +#: ../glib/gfileutils.c:1819 #, c-format msgid "%.1f TB" msgstr "%.1f TB" -#: ../glib/gfileutils.c:1805 +#: ../glib/gfileutils.c:1824 #, c-format msgid "%.1f PB" msgstr "%.1f PB" -#: ../glib/gfileutils.c:1810 +#: ../glib/gfileutils.c:1829 #, c-format msgid "%.1f EB" msgstr "%.1f EB" -#: ../glib/gfileutils.c:1853 +#: ../glib/gfileutils.c:1872 #, c-format msgid "Failed to read the symbolic link '%s': %s" msgstr "读取符号链接“%s”失败:%s" -#: ../glib/gfileutils.c:1874 +#: ../glib/gfileutils.c:1893 msgid "Symbolic links not supported" msgstr "不支持符号链接" @@ -636,8 +637,8 @@ msgstr "“%s”出现在字符“<”后是无效字符;它不能作为元素 #: ../glib/gmarkup.c:1126 #, 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:1210 @@ -1346,15 +1347,15 @@ msgstr "无法将值“%s”解释为布尔值。" msgid "Too large count value passed to %s" msgstr "传递给 %s 的计数值太大了" -#: ../gio/gbufferedinputstream.c:880 ../gio/ginputstream.c:888 +#: ../gio/gbufferedinputstream.c:881 ../gio/ginputstream.c:888 #: ../gio/giostream.c:306 ../gio/goutputstream.c:1197 msgid "Stream is already closed" msgstr "流已经关闭" -#: ../gio/gcancellable.c:433 ../gio/gdbusconnection.c:1636 -#: ../gio/gdbusconnection.c:1725 ../gio/gdbusconnection.c:1911 -#: ../gio/glocalfile.c:2102 ../gio/gsimpleasyncresult.c:811 -#: ../gio/gsimpleasyncresult.c:837 +#: ../gio/gcancellable.c:433 ../gio/gdbusconnection.c:1637 +#: ../gio/gdbusconnection.c:1726 ../gio/gdbusconnection.c:1912 +#: ../gio/glocalfile.c:2102 ../gio/gsimpleasyncresult.c:810 +#: ../gio/gsimpleasyncresult.c:836 msgid "Operation was cancelled" msgstr "操作被取消" @@ -1525,14 +1526,14 @@ msgstr "命令 %s 以非零状态数 %d 退出:%s" msgid "Cannot determine session bus address (not implemented for this OS)" msgstr "无法确定会话总线地址(尚未在此操作系统上实现)" -#: ../gio/gdbusaddress.c:1242 ../gio/gdbusconnection.c:6167 +#: ../gio/gdbusaddress.c:1242 ../gio/gdbusconnection.c:6168 #, c-format msgid "" "Cannot determine bus address from DBUS_STARTER_BUS_TYPE environment variable " "- unknown value `%s'" msgstr "无法从 DBUS_STARTER_BUS_TYPE 环境变量确定总线地址 - 未知的值“%s”" -#: ../gio/gdbusaddress.c:1251 ../gio/gdbusconnection.c:6176 +#: ../gio/gdbusaddress.c:1251 ../gio/gdbusconnection.c:6177 msgid "" "Cannot determine bus address because the DBUS_STARTER_BUS_TYPE environment " "variable is not set" @@ -1635,85 +1636,85 @@ msgid "(Additionally, releasing the lock for `%s' also failed: %s) " msgstr "(此外,释放 %s 的锁失败:%s)" #: ../gio/gdbusconnection.c:1148 ../gio/gdbusconnection.c:1374 -#: ../gio/gdbusconnection.c:1413 ../gio/gdbusconnection.c:1736 +#: ../gio/gdbusconnection.c:1413 ../gio/gdbusconnection.c:1737 msgid "The connection is closed" msgstr "连接已关闭" -#: ../gio/gdbusconnection.c:1680 +#: ../gio/gdbusconnection.c:1681 msgid "Timeout was reached" msgstr "已到超时限制" -#: ../gio/gdbusconnection.c:2299 +#: ../gio/gdbusconnection.c:2300 msgid "" "Unsupported flags encountered when constructing a client-side connection" msgstr "构建客户端连接时遇到不支持的标志" -#: ../gio/gdbusconnection.c:3751 ../gio/gdbusconnection.c:4069 +#: ../gio/gdbusconnection.c:3752 ../gio/gdbusconnection.c:4070 #, c-format msgid "" "No such interface `org.freedesktop.DBus.Properties' on object at path %s" msgstr "路径 %s 的对象上没有 org.freedesktop.DBus.Properties 接口" -#: ../gio/gdbusconnection.c:3823 +#: ../gio/gdbusconnection.c:3824 #, c-format msgid "Error setting property `%s': Expected type `%s' but got `%s'" msgstr "设置属性 %s 出错:期望 %s 类型但得到 %s 类型" -#: ../gio/gdbusconnection.c:3918 +#: ../gio/gdbusconnection.c:3919 #, c-format msgid "No such property `%s'" msgstr "无此属性:%s" -#: ../gio/gdbusconnection.c:3930 +#: ../gio/gdbusconnection.c:3931 #, c-format msgid "Property `%s' is not readable" msgstr "属性 %s 不可读" -#: ../gio/gdbusconnection.c:3941 +#: ../gio/gdbusconnection.c:3942 #, c-format msgid "Property `%s' is not writable" msgstr "属性 %s 不可写" -#: ../gio/gdbusconnection.c:4011 ../gio/gdbusconnection.c:5601 +#: ../gio/gdbusconnection.c:4012 ../gio/gdbusconnection.c:5602 #, c-format msgid "No such interface `%s'" msgstr "无此接口:%s" -#: ../gio/gdbusconnection.c:4199 +#: ../gio/gdbusconnection.c:4200 msgid "No such interface" msgstr "无此接口" -#: ../gio/gdbusconnection.c:4415 ../gio/gdbusconnection.c:6117 +#: ../gio/gdbusconnection.c:4416 ../gio/gdbusconnection.c:6118 #, c-format msgid "No such interface `%s' on object at path %s" msgstr "在路径 %s 的对象上没有 %s 接口" -#: ../gio/gdbusconnection.c:4467 +#: ../gio/gdbusconnection.c:4468 #, c-format msgid "No such method `%s'" msgstr "无此方法:%s" -#: ../gio/gdbusconnection.c:4498 +#: ../gio/gdbusconnection.c:4499 #, c-format msgid "Type of message, `%s', does not match expected type `%s'" msgstr "消息的类型“%s”,与预期的类型“%s”不匹配" -#: ../gio/gdbusconnection.c:4717 +#: ../gio/gdbusconnection.c:4718 #, c-format msgid "An object is already exported for the interface %s at %s" msgstr "%2$s 处的接口 %1$s 已经导出了一个对象" -#: ../gio/gdbusconnection.c:4911 +#: ../gio/gdbusconnection.c:4912 #, c-format msgid "Method `%s' returned type `%s', but expected `%s'" msgstr "方法“%s”返回类型“%s”,但预期的是“%s”" -#: ../gio/gdbusconnection.c:5712 +#: ../gio/gdbusconnection.c:5713 #, c-format msgid "Method `%s' on interface `%s' with signature `%s' does not exist" msgstr "带有 %3$s 签名的接口 %2$s 上不存在 %1$s 方法" -#: ../gio/gdbusconnection.c:5830 +#: ../gio/gdbusconnection.c:5831 #, c-format msgid "A subtree is already exported for %s" msgstr "已经为 %s 导出一个子树" @@ -1850,8 +1851,8 @@ msgstr "消息主体有签名 %s 但头部没有签名" #: ../gio/gdbusmessage.c:2334 #, c-format msgid "" -"Message body has type signature `%s' but signature in the header field is `%" -"s'" +"Message body has type signature `%s' but signature in the header field is `" +"%s'" msgstr "消息主体有类型签名 %s 但头部的签名为 %s" #: ../gio/gdbusmessage.c:2350 @@ -1879,7 +1880,7 @@ msgstr "返回值类型不正确,获得了“%s”,但是期望“%s”" msgid "Error sending message: %s" msgstr "发送信息出错:%s" -#: ../gio/gdbusprivate.c:1756 +#: ../gio/gdbusprivate.c:1768 msgid "Unable to load /var/lib/dbus/machine-id: " msgstr "无法加载 /var/lib/dbus/machine-id:" @@ -2092,34 +2093,34 @@ msgstr "要监视的对象路径" msgid "Monitor a remote object." msgstr "监视一个远程对象。" -#: ../gio/gdesktopappinfo.c:471 ../gio/gwin32appinfo.c:221 +#: ../gio/gdesktopappinfo.c:480 ../gio/gwin32appinfo.c:221 msgid "Unnamed" msgstr "未命名" -#: ../gio/gdesktopappinfo.c:755 +#: ../gio/gdesktopappinfo.c:764 msgid "Desktop file didn't specify Exec field" msgstr "桌面文件未指定 Exec 区域" -#: ../gio/gdesktopappinfo.c:948 +#: ../gio/gdesktopappinfo.c:957 msgid "Unable to find terminal required for application" msgstr "无法找到应用程序需要的终端" -#: ../gio/gdesktopappinfo.c:1157 +#: ../gio/gdesktopappinfo.c:1166 #, c-format msgid "Can't create user application configuration folder %s: %s" msgstr "无法创建用户应用程序配置文件夹 %s:%s" -#: ../gio/gdesktopappinfo.c:1161 +#: ../gio/gdesktopappinfo.c:1170 #, c-format msgid "Can't create user MIME configuration folder %s: %s" msgstr "无法创建用户 MIME 配置文件夹 %s:%s" -#: ../gio/gdesktopappinfo.c:1569 +#: ../gio/gdesktopappinfo.c:1663 #, c-format msgid "Can't create user desktop file %s" msgstr "无法创建用户桌面文件 %s" -#: ../gio/gdesktopappinfo.c:1683 +#: ../gio/gdesktopappinfo.c:1779 #, c-format msgid "Custom definition for %s" msgstr "%s 的自定义定义" @@ -2157,29 +2158,29 @@ msgstr "无法处理 GEmblem 编码的版本 %d " msgid "Malformed number of tokens (%d) in GEmblem encoding" msgstr "GEmblem 编码中有不正确的符号数量(%d)" -#: ../gio/gemblemedicon.c:293 +#: ../gio/gemblemedicon.c:368 #, c-format msgid "Can't handle version %d of GEmblemedIcon encoding" msgstr "无法处理 GEmblemedIcon 编码的版本 %d" -#: ../gio/gemblemedicon.c:303 +#: ../gio/gemblemedicon.c:378 #, c-format msgid "Malformed number of tokens (%d) in GEmblemedIcon encoding" msgstr "GEmblemedIcon 编码中有不正确的符号数量(%d)" -#: ../gio/gemblemedicon.c:326 +#: ../gio/gemblemedicon.c:401 msgid "Expected a GEmblem for GEmblemedIcon" msgstr "GEmblemedIcon 中应为 GEmblem" -#: ../gio/gfile.c:872 ../gio/gfile.c:1102 ../gio/gfile.c:1237 -#: ../gio/gfile.c:1474 ../gio/gfile.c:1528 ../gio/gfile.c:1585 -#: ../gio/gfile.c:1668 ../gio/gfile.c:1723 ../gio/gfile.c:1783 -#: ../gio/gfile.c:1837 ../gio/gfile.c:3307 ../gio/gfile.c:3361 -#: ../gio/gfile.c:3493 ../gio/gfile.c:3534 ../gio/gfile.c:3861 -#: ../gio/gfile.c:4263 ../gio/gfile.c:4349 ../gio/gfile.c:4438 -#: ../gio/gfile.c:4536 ../gio/gfile.c:4623 ../gio/gfile.c:4717 -#: ../gio/gfile.c:5038 ../gio/gfile.c:5305 ../gio/gfile.c:5370 -#: ../gio/gfile.c:6944 ../gio/gfile.c:7034 ../gio/gfile.c:7120 +#: ../gio/gfile.c:872 ../gio/gfile.c:1103 ../gio/gfile.c:1238 +#: ../gio/gfile.c:1475 ../gio/gfile.c:1529 ../gio/gfile.c:1586 +#: ../gio/gfile.c:1669 ../gio/gfile.c:1724 ../gio/gfile.c:1784 +#: ../gio/gfile.c:1838 ../gio/gfile.c:3308 ../gio/gfile.c:3362 +#: ../gio/gfile.c:3494 ../gio/gfile.c:3535 ../gio/gfile.c:3862 +#: ../gio/gfile.c:4264 ../gio/gfile.c:4350 ../gio/gfile.c:4439 +#: ../gio/gfile.c:4537 ../gio/gfile.c:4624 ../gio/gfile.c:4718 +#: ../gio/gfile.c:5039 ../gio/gfile.c:5306 ../gio/gfile.c:5371 +#: ../gio/gfile.c:6945 ../gio/gfile.c:7035 ../gio/gfile.c:7121 #: ../gio/win32/gwinhttpfile.c:439 msgid "Operation not supported" msgstr "不支持该操作" @@ -2192,58 +2193,58 @@ msgstr "不支持该操作" #. Translators: This is an error message when trying to find #. * the enclosing (user visible) mount of a file, but none #. * exists. -#: ../gio/gfile.c:1358 ../gio/glocalfile.c:1059 ../gio/glocalfile.c:1070 +#: ../gio/gfile.c:1359 ../gio/glocalfile.c:1059 ../gio/glocalfile.c:1070 #: ../gio/glocalfile.c:1083 msgid "Containing mount does not exist" msgstr "包含的挂载不存在" -#: ../gio/gfile.c:2411 ../gio/glocalfile.c:2258 +#: ../gio/gfile.c:2412 ../gio/glocalfile.c:2258 msgid "Can't copy over directory" msgstr "无法跨目录复制" -#: ../gio/gfile.c:2472 +#: ../gio/gfile.c:2473 msgid "Can't copy directory over directory" msgstr "无法跨目录复制到目录" -#: ../gio/gfile.c:2480 ../gio/glocalfile.c:2267 +#: ../gio/gfile.c:2481 ../gio/glocalfile.c:2267 msgid "Target file exists" msgstr "目标文件已存在" -#: ../gio/gfile.c:2498 +#: ../gio/gfile.c:2499 msgid "Can't recursively copy directory" msgstr "无法递归复制目录" -#: ../gio/gfile.c:2758 +#: ../gio/gfile.c:2759 msgid "Splice not supported" msgstr "不支持拼接" -#: ../gio/gfile.c:2762 +#: ../gio/gfile.c:2763 #, c-format msgid "Error splicing file: %s" msgstr "拼接文件出错:%s" -#: ../gio/gfile.c:2909 +#: ../gio/gfile.c:2910 msgid "Can't copy special file" msgstr "无法复制特殊文件" -#: ../gio/gfile.c:3483 +#: ../gio/gfile.c:3484 msgid "Invalid symlink value given" msgstr "给出的符号链接值无效" -#: ../gio/gfile.c:3577 +#: ../gio/gfile.c:3578 msgid "Trash not supported" msgstr "不支持回收站" -#: ../gio/gfile.c:3626 +#: ../gio/gfile.c:3627 #, c-format msgid "File names cannot contain '%c'" msgstr "文件名不能包含“%c”" -#: ../gio/gfile.c:6003 ../gio/gvolume.c:332 +#: ../gio/gfile.c:6004 ../gio/gvolume.c:332 msgid "volume doesn't implement mount" msgstr "卷未实现挂载" -#: ../gio/gfile.c:6114 +#: ../gio/gfile.c:6115 msgid "No application is registered as handling this file" msgstr "没有为此类型文件注册相应的处理程序" @@ -2538,8 +2539,8 @@ msgstr "并且指定了 --strict;退出。\n" #: ../gio/glib-compile-schemas.c:1787 #, c-format msgid "" -"error parsing key `%s' in schema `%s' as specified in override file `%s': %" -"s. " +"error parsing key `%s' in schema `%s' as specified in override file `%s': " +"%s. " msgstr "解析覆盖文件 %3$s 中指定的 %2$s 中的键 %1$s 出错:%4$s。" #: ../gio/glib-compile-schemas.c:1797 @@ -3058,66 +3059,66 @@ msgstr "路径中不能包含连续两个斜杠(//)\n" msgid "No such key '%s'\n" msgstr "没有“%s”这个键\n" -#: ../gio/gsettings-tool.c:427 +#: ../gio/gsettings-tool.c:429 #, c-format msgid "The provided value is outside of the valid range\n" msgstr "提供的值不在有效范围内\n" -#: ../gio/gsettings-tool.c:456 +#: ../gio/gsettings-tool.c:458 msgid "List the installed (non-relocatable) schemas" msgstr "列出安装的(不可重定向的)方案" -#: ../gio/gsettings-tool.c:462 +#: ../gio/gsettings-tool.c:464 msgid "List the installed relocatable schemas" msgstr "列出安装的可重定向方案" -#: ../gio/gsettings-tool.c:468 +#: ../gio/gsettings-tool.c:470 msgid "Lists the keys in SCHEMA" msgstr "列出 SCHEMA 中的键" -#: ../gio/gsettings-tool.c:469 ../gio/gsettings-tool.c:475 -#: ../gio/gsettings-tool.c:481 +#: ../gio/gsettings-tool.c:471 ../gio/gsettings-tool.c:477 +#: ../gio/gsettings-tool.c:483 msgid "SCHEMA[:PATH]" msgstr "SCHEMA[:PATH]" -#: ../gio/gsettings-tool.c:474 +#: ../gio/gsettings-tool.c:476 msgid "Lists the children of SCHEMA" msgstr "列出 SCHEMA 的子对象" -#: ../gio/gsettings-tool.c:480 +#: ../gio/gsettings-tool.c:482 msgid "List keys and values, recursively" msgstr "递归地列出键和值" -#: ../gio/gsettings-tool.c:486 +#: ../gio/gsettings-tool.c:488 msgid "Gets the value of KEY" msgstr "获取 KEY 的值" -#: ../gio/gsettings-tool.c:487 ../gio/gsettings-tool.c:493 -#: ../gio/gsettings-tool.c:505 ../gio/gsettings-tool.c:511 +#: ../gio/gsettings-tool.c:489 ../gio/gsettings-tool.c:495 +#: ../gio/gsettings-tool.c:507 ../gio/gsettings-tool.c:513 msgid "SCHEMA[:PATH] KEY" msgstr "SCHEMA[:PATH] KEY" -#: ../gio/gsettings-tool.c:492 +#: ../gio/gsettings-tool.c:494 msgid "Queries the range of valid values for KEY" msgstr "查询 KEY 的有效值范围" -#: ../gio/gsettings-tool.c:498 +#: ../gio/gsettings-tool.c:500 msgid "Sets the value of KEY to VALUE" msgstr "将 KEY 的值设为 VALUE" -#: ../gio/gsettings-tool.c:499 +#: ../gio/gsettings-tool.c:501 msgid "SCHEMA[:PATH] KEY VALUE" msgstr "SCHEMA[:PATH] KEY VALUE" -#: ../gio/gsettings-tool.c:504 +#: ../gio/gsettings-tool.c:506 msgid "Resets KEY to its default value" msgstr "将 KEY 重设为默认值" -#: ../gio/gsettings-tool.c:510 +#: ../gio/gsettings-tool.c:512 msgid "Checks if KEY is writable" msgstr "查看 KEY 是否可写" -#: ../gio/gsettings-tool.c:516 +#: ../gio/gsettings-tool.c:518 msgid "" "Monitors KEY for changes.\n" "If no KEY is specified, monitor all keys in SCHEMA.\n" @@ -3127,11 +3128,11 @@ msgstr "" "如果没有指定 KEY,则监视 SCHEMA 中的所有键。\n" "使用 ^C 停止监视。\n" -#: ../gio/gsettings-tool.c:519 +#: ../gio/gsettings-tool.c:521 msgid "SCHEMA[:PATH] [KEY]" msgstr "SCHEMA[:PATH] [KEY]" -#: ../gio/gsettings-tool.c:523 +#: ../gio/gsettings-tool.c:525 #, c-format msgid "" "Unknown command %s\n" @@ -3140,7 +3141,7 @@ msgstr "" "未知命令 %s\n" "\n" -#: ../gio/gsettings-tool.c:531 +#: ../gio/gsettings-tool.c:533 msgid "" "Usage:\n" " gsettings COMMAND [ARGS...]\n" @@ -3182,7 +3183,7 @@ msgstr "" "使用 'gsettings help 命令' 查询详细的帮助。\n" "\n" -#: ../gio/gsettings-tool.c:552 +#: ../gio/gsettings-tool.c:554 #, c-format msgid "" "Usage:\n" @@ -3197,11 +3198,11 @@ msgstr "" "%s\n" "\n" -#: ../gio/gsettings-tool.c:557 +#: ../gio/gsettings-tool.c:559 msgid "Arguments:\n" msgstr "参数:\n" -#: ../gio/gsettings-tool.c:561 +#: ../gio/gsettings-tool.c:563 msgid "" " SCHEMA The name of the schema\n" " PATH The path, for relocatable schemas\n" @@ -3209,19 +3210,19 @@ msgstr "" " SCHEMA 方案的名称\n" " PATH 可重定向方案的路径\n" -#: ../gio/gsettings-tool.c:566 +#: ../gio/gsettings-tool.c:568 msgid " KEY The (optional) key within the schema\n" msgstr " KEY 方案中(可选)的键\n" -#: ../gio/gsettings-tool.c:570 +#: ../gio/gsettings-tool.c:572 msgid " KEY The key within the schema\n" msgstr " KEY 方案中的键\n" -#: ../gio/gsettings-tool.c:574 +#: ../gio/gsettings-tool.c:576 msgid " VALUE The value to set\n" msgstr " VALUE 要设的值\n" -#: ../gio/gsettings-tool.c:650 +#: ../gio/gsettings-tool.c:652 #, c-format msgid "Empty schema name given" msgstr "给出的方案名称为空" @@ -3333,15 +3334,15 @@ msgstr "接受信息出错:%s" msgid "g_socket_get_credentials not implemented for this OS" msgstr "此操作系统上没有实现 g_socket_get_credentials" -#: ../gio/gsocketclient.c:798 ../gio/gsocketclient.c:1364 +#: ../gio/gsocketclient.c:798 ../gio/gsocketclient.c:1368 msgid "Unknown error on connect" msgstr "连接时出现未知错误" -#: ../gio/gsocketclient.c:836 ../gio/gsocketclient.c:1248 +#: ../gio/gsocketclient.c:836 ../gio/gsocketclient.c:1252 msgid "Trying to proxy over non-TCP connection is not supported." msgstr "不支持通过非 TCP 连接的代理。" -#: ../gio/gsocketclient.c:858 ../gio/gsocketclient.c:1273 +#: ../gio/gsocketclient.c:858 ../gio/gsocketclient.c:1277 #, c-format msgid "Proxy protocol '%s' is not supported." msgstr "不支持 %s 代理协议。" @@ -3439,7 +3440,7 @@ msgid "SOCKSv5 proxy does not support provided address type." msgstr "SOCKSv5 代理不支持提供的地址类型。" #: ../gio/gsocks5proxy.c:402 -msgid "Unkown SOCKSv5 proxy error." +msgid "Unknown SOCKSv5 proxy error." msgstr "未知 SOCKSv5 代理错误。" #: ../gio/gthemedicon.c:498 @@ -3447,15 +3448,15 @@ msgstr "未知 SOCKSv5 代理错误。" msgid "Can't handle version %d of GThemedIcon encoding" msgstr "无法处理 GThemedIcon 编码的版本 %d" -#: ../gio/gtlscertificate.c:270 +#: ../gio/gtlscertificate.c:228 msgid "No PEM-encoded certificate found" msgstr "未找到 PEM 加密的证书" -#: ../gio/gtlscertificate.c:279 +#: ../gio/gtlscertificate.c:237 msgid "Could not parse PEM-encoded certificate" msgstr "无法解析 PEM 加密的证书" -#: ../gio/gtlscertificate.c:300 +#: ../gio/gtlscertificate.c:258 msgid "Could not parse PEM-encoded private key" msgstr "无法解析 PEM 加密的私钥" diff --git a/tests/gobject/Makefile.am b/tests/gobject/Makefile.am index cf97ac3cf..0ab5bf64c 100644 --- a/tests/gobject/Makefile.am +++ b/tests/gobject/Makefile.am @@ -61,7 +61,6 @@ test_programs = \ ifacecheck \ ifaceinit \ ifaceinherit \ - ifaceproperties \ override \ performance \ performance-threaded \ diff --git a/tests/testglib.c b/tests/testglib.c index b4e29f07b..158808a4b 100644 --- a/tests/testglib.c +++ b/tests/testglib.c @@ -1038,6 +1038,7 @@ hash_table_tests (void) g_hash_table_destroy (hash_table); } +#ifndef G_DISABLE_DEPRECATED static void relation_test (void) { @@ -1110,6 +1111,7 @@ relation_test (void) relation = NULL; } +#endif static void gstring_tests (void) @@ -1539,7 +1541,9 @@ main (int argc, g_test_add_func ("/testglib/GTree", binary_tree_test); g_test_add_func ("/testglib/Arrays", test_arrays); g_test_add_func ("/testglib/GHashTable", hash_table_tests); - g_test_add_func ("/testglib/Relation", relation_test); +#ifndef G_DISABLE_DEPRECATED + g_test_add_func ("/testglib/Relation (deprecated)", relation_test); +#endif g_test_add_func ("/testglib/File Paths", test_paths); g_test_add_func ("/testglib/File Functions", test_file_functions); g_test_add_func ("/testglib/Parse Debug Strings", test_g_parse_debug_string);