From 73d6bd8a45429f03706ac96e5d6e045ecee18500 Mon Sep 17 00:00:00 2001 From: Dan Winship Date: Tue, 30 Nov 2010 19:57:16 -0500 Subject: [PATCH 001/130] Add g_tls_certificate_verify() Add a method to verify a certificate against a CA; this can be used for apps that need to test against non-default CAs. Also make the GTlsCertificate::issuer property virtual --- docs/reference/gio/gio-sections.txt | 1 + gio/gio.symbols | 1 + gio/gtlscertificate.c | 92 +++++++++++++++-------------- gio/gtlscertificate.h | 32 ++++++---- 4 files changed, 69 insertions(+), 57 deletions(-) diff --git a/docs/reference/gio/gio-sections.txt b/docs/reference/gio/gio-sections.txt index b49d501b7..3a7893525 100644 --- a/docs/reference/gio/gio-sections.txt +++ b/docs/reference/gio/gio-sections.txt @@ -3038,6 +3038,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 diff --git a/gio/gio.symbols b/gio/gio.symbols index c713d1370..b7077eec3 100644 --- a/gio/gio.symbols +++ b/gio/gio.symbols @@ -2031,6 +2031,7 @@ 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 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 From d6e94070ddb015e73573a620234a8929f8aaac16 Mon Sep 17 00:00:00 2001 From: Dan Winship Date: Wed, 1 Dec 2010 13:49:39 -0500 Subject: [PATCH 002/130] Add GTlsConnection:use-system-certdb This can be set FALSE if you don't want to validate certificates against the system database. --- docs/reference/gio/gio-sections.txt | 2 + gio/gdummytlsbackend.c | 3 +- gio/gio.symbols | 2 + gio/gtlsconnection.c | 70 +++++++++++++++++++++++++++++ gio/gtlsconnection.h | 4 ++ 5 files changed, 80 insertions(+), 1 deletion(-) diff --git a/docs/reference/gio/gio-sections.txt b/docs/reference/gio/gio-sections.txt index 3a7893525..bcff38847 100644 --- a/docs/reference/gio/gio-sections.txt +++ b/docs/reference/gio/gio-sections.txt @@ -3064,6 +3064,8 @@ 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 diff --git a/gio/gdummytlsbackend.c b/gio/gdummytlsbackend.c index fd55aa9e5..f2d71860f 100644 --- a/gio/gdummytlsbackend.c +++ b/gio/gdummytlsbackend.c @@ -184,6 +184,7 @@ enum PROP_BASE_IO_STREAM, PROP_REQUIRE_CLOSE_NOTIFY, PROP_REHANDSHAKE_MODE, + PROP_USE_SYSTEM_CERTDB, PROP_VALIDATION_FLAGS, PROP_SERVER_IDENTITY, PROP_USE_SSL3, @@ -243,12 +244,12 @@ g_dummy_tls_connection_class_init (GDummyTlsConnectionClass *connection_class) 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_USE_SYSTEM_CERTDB, "use-system-certdb"); 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"); - } static void diff --git a/gio/gio.symbols b/gio/gio.symbols index b7077eec3..d5af410a7 100644 --- a/gio/gio.symbols +++ b/gio/gio.symbols @@ -2043,6 +2043,7 @@ g_tls_connection_get_certificate g_tls_connection_get_peer_certificate 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 @@ -2051,6 +2052,7 @@ 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/gtlsconnection.c b/gio/gtlsconnection.c index e55f6f59c..4ea921102 100644 --- a/gio/gtlsconnection.c +++ b/gio/gtlsconnection.c @@ -84,6 +84,7 @@ enum { PROP_BASE_IO_STREAM, PROP_REQUIRE_CLOSE_NOTIFY, PROP_REHANDSHAKE_MODE, + PROP_USE_SYSTEM_CERTDB, PROP_CERTIFICATE, PROP_PEER_CERTIFICATE }; @@ -118,6 +119,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 +150,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 +167,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: @@ -342,6 +362,56 @@ g_tls_connection_set_property (GObject *object, } } +/** + * 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)); + + 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; +} + /** * g_tls_connection_set_certificate: * @conn: a #GTlsConnection diff --git a/gio/gtlsconnection.h b/gio/gtlsconnection.h index 86f1f68f5..4b835a3d2 100644 --- a/gio/gtlsconnection.h +++ b/gio/gtlsconnection.h @@ -85,6 +85,10 @@ struct _GTlsConnectionClass GType g_tls_connection_get_type (void) G_GNUC_CONST; +void g_tls_connection_set_use_system_certdb (GTlsConnection *conn, + gboolean use_system_certdb); +gboolean g_tls_connection_get_use_system_certdb (GTlsConnection *conn); + void g_tls_connection_set_certificate (GTlsConnection *conn, GTlsCertificate *certificate); GTlsCertificate *g_tls_connection_get_certificate (GTlsConnection *conn); From 95cba183494a78ff16924e820c344e8c3fa0e7a6 Mon Sep 17 00:00:00 2001 From: Dan Winship Date: Mon, 6 Dec 2010 11:04:13 +0100 Subject: [PATCH 003/130] Remove GTlsConnection::need-certificate Trying to do this as a signal won't work well with either GTlsCertificateDB (in which case looking up a certificate in the db is a blocking/asynchronous act) or session resumption support (in which case the certificate or lack thereof is part of the session definition and so needs to be known immediately). Make the caller use g_tls_connection_set_certificate() ahead of time (or when retrying) instead. --- docs/reference/gio/gio-sections.txt | 1 - gio/gio.symbols | 1 - gio/gioenums.h | 2 +- gio/gtlsclientconnection.c | 3 +- gio/gtlsconnection.c | 131 +++++++--------------------- gio/gtlsconnection.h | 3 - 6 files changed, 35 insertions(+), 106 deletions(-) diff --git a/docs/reference/gio/gio-sections.txt b/docs/reference/gio/gio-sections.txt index bcff38847..5b27d501b 100644 --- a/docs/reference/gio/gio-sections.txt +++ b/docs/reference/gio/gio-sections.txt @@ -3073,7 +3073,6 @@ 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/gio/gio.symbols b/gio/gio.symbols index d5af410a7..34163ba5e 100644 --- a/gio/gio.symbols +++ b/gio/gio.symbols @@ -2038,7 +2038,6 @@ g_tls_certificate_verify #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_rehandshake_mode diff --git a/gio/gioenums.h b/gio/gioenums.h index 039b5dc50..9ad291c63 100644 --- a/gio/gioenums.h +++ b/gio/gioenums.h @@ -1259,7 +1259,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(). diff --git a/gio/gtlsclientconnection.c b/gio/gtlsclientconnection.c index 1faea96d4..44aa297da 100644 --- a/gio/gtlsclientconnection.c +++ b/gio/gtlsclientconnection.c @@ -131,8 +131,7 @@ 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. * * Since: 2.28 */ diff --git a/gio/gtlsconnection.c b/gio/gtlsconnection.c index 4ea921102..107904eb9 100644 --- a/gio/gtlsconnection.c +++ b/gio/gtlsconnection.c @@ -71,7 +71,6 @@ static gboolean g_tls_connection_certificate_accumulator (GSignalInvocationHint gpointer dummy); enum { - NEED_CERTIFICATE, ACCEPT_CERTIFICATE, LAST_SIGNAL @@ -200,56 +199,6 @@ g_tls_connection_class_init (GTlsConnectionClass *klass) G_PARAM_READABLE | G_PARAM_STATIC_STRINGS)); - /** - * GTlsConnection::need-certificate: - * @conn: a #GTlsConnection - * - * 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. - * - * 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); - /** * GTlsConnection::accept-certificate: * @conn: a #GTlsConnection @@ -275,10 +224,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 @@ -418,9 +377,23 @@ g_tls_connection_get_use_system_certdb (GTlsConnection *conn) * @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 */ @@ -442,8 +415,7 @@ 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 * @@ -628,8 +600,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 @@ -714,42 +685,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 diff --git a/gio/gtlsconnection.h b/gio/gtlsconnection.h index 4b835a3d2..3e549ea75 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); @@ -128,7 +126,6 @@ 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); From 68a3d6b27fec3bdbba27b414c0ed10396c79d3c6 Mon Sep 17 00:00:00 2001 From: Dan Winship Date: Mon, 6 Dec 2010 12:43:59 +0100 Subject: [PATCH 004/130] add G_TLS_ERROR_UNAVAILABLE --- gio/gdummytlsbackend.c | 4 ++-- gio/gioenums.h | 2 ++ 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/gio/gdummytlsbackend.c b/gio/gdummytlsbackend.c index f2d71860f..6a6b8a205 100644 --- a/gio/gdummytlsbackend.c +++ b/gio/gdummytlsbackend.c @@ -150,7 +150,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; } @@ -262,7 +262,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/gioenums.h b/gio/gioenums.h index 9ad291c63..7aaba24e6 100644 --- a/gio/gioenums.h +++ b/gio/gioenums.h @@ -1251,6 +1251,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 @@ -1270,6 +1271,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, From 4f6efb681d7a85d9d04ffdba9a5f692e3d53e41e Mon Sep 17 00:00:00 2001 From: Dan Winship Date: Mon, 6 Dec 2010 13:10:09 +0100 Subject: [PATCH 005/130] Change the semantics of GTlsConnection:require-close-notify We were combining "allow un-notified closes" and "close without notifying" into a single property, which meant that it was impossible to "be liberal in what you accept and conservative in what you send". Change require-close-notify to only be about the peer behavior, and make our connections always close-notify properly when closing (while noting that you can just close the base-io-stream directly if you want to do an unclean close). --- gio/gtlsconnection.c | 32 ++++++++++++++++++++------------ 1 file changed, 20 insertions(+), 12 deletions(-) diff --git a/gio/gtlsconnection.c b/gio/gtlsconnection.c index 107904eb9..8f9fbabb4 100644 --- a/gio/gtlsconnection.c +++ b/gio/gtlsconnection.c @@ -453,13 +453,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 @@ -468,9 +467,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 */ @@ -489,8 +497,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 From b5a707ec90f75aac499c9804592ebb14257cf751 Mon Sep 17 00:00:00 2001 From: Dan Winship Date: Mon, 6 Dec 2010 17:21:16 +0100 Subject: [PATCH 006/130] Clarify that g_socket_client_connect_to_uri() doesn't know about TLS --- gio/gsocketclient.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/gio/gsocketclient.c b/gio/gsocketclient.c index 046432279..e6008a3dd 100644 --- a/gio/gsocketclient.c +++ b/gio/gsocketclient.c @@ -1019,7 +1019,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 From f5c3e0d3d5aeed065fd09293dae6574b4a31568c Mon Sep 17 00:00:00 2001 From: Dan Winship Date: Tue, 7 Dec 2010 14:58:42 +0100 Subject: [PATCH 007/130] Change the handling of the peer certificate in GTlsConnection Make the certificate and peer-certificate properties virtual, and add peer-certificate-errors as well. Change the documentation on peer-certificate to say that it's not set until after the handshake succeeds (which means notify::peer-certificate can be used to tell when a handshake has completed). --- docs/reference/gio/gio-sections.txt | 2 +- gio/gio.symbols | 2 +- gio/gtlsconnection.c | 162 +++++++++++++--------------- gio/gtlsconnection.h | 60 +++++------ 4 files changed, 105 insertions(+), 121 deletions(-) diff --git a/docs/reference/gio/gio-sections.txt b/docs/reference/gio/gio-sections.txt index 5b27d501b..a9efdd37a 100644 --- a/docs/reference/gio/gio-sections.txt +++ b/docs/reference/gio/gio-sections.txt @@ -3059,6 +3059,7 @@ 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 @@ -3071,7 +3072,6 @@ 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 GTlsConnectionClass diff --git a/gio/gio.symbols b/gio/gio.symbols index 34163ba5e..b76cc5c7d 100644 --- a/gio/gio.symbols +++ b/gio/gio.symbols @@ -2040,6 +2040,7 @@ g_tls_certificate_verify g_tls_connection_emit_accept_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 @@ -2048,7 +2049,6 @@ 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 diff --git a/gio/gtlsconnection.c b/gio/gtlsconnection.c index 8f9fbabb4..a652ac3b3 100644 --- a/gio/gtlsconnection.c +++ b/gio/gtlsconnection.c @@ -63,12 +63,6 @@ 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 { ACCEPT_CERTIFICATE, @@ -85,11 +79,8 @@ enum { 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: @@ -186,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 */ @@ -198,6 +191,26 @@ g_tls_connection_class_init (GTlsConnectionClass *klass) G_TYPE_TLS_CERTIFICATE, G_PARAM_READABLE | G_PARAM_STATIC_STRINGS)); + /** + * GTlsConnection:peer-certificate-errors: + * + * 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 + */ + 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: @@ -261,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 @@ -283,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 @@ -307,18 +291,7 @@ g_tls_connection_set_property (GObject *object, const GValue *value, GParamSpec *pspec) { - GTlsConnection *conn = G_TLS_CONNECTION (object); - - switch (prop_id) - { - case PROP_CERTIFICATE: - g_tls_connection_set_certificate (conn, g_value_get_object (value)); - break; - - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); - break; - } + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); } /** @@ -404,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); } /** @@ -417,35 +387,71 @@ g_tls_connection_set_certificate (GTlsConnection *conn, * Gets @conn's certificate, as set by * 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; } /** @@ -718,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 3e549ea75..7786c4302 100644 --- a/gio/gtlsconnection.h +++ b/gio/gtlsconnection.h @@ -81,38 +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_use_system_certdb (GTlsConnection *conn, - gboolean use_system_certdb); -gboolean g_tls_connection_get_use_system_certdb (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); -void g_tls_connection_set_certificate (GTlsConnection *conn, - GTlsCertificate *certificate); -GTlsCertificate *g_tls_connection_get_certificate (GTlsConnection *conn); +void g_tls_connection_set_certificate (GTlsConnection *conn, + GTlsCertificate *certificate); +GTlsCertificate *g_tls_connection_get_certificate (GTlsConnection *conn); -GTlsCertificate *g_tls_connection_get_peer_certificate (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_require_close_notify (GTlsConnection *conn, - gboolean require_close_notify); -gboolean g_tls_connection_get_require_close_notify (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); -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_rehandshake_mode (GTlsConnection *conn, + GTlsRehandshakeMode mode); +GTlsRehandshakeMode g_tls_connection_get_rehandshake_mode (GTlsConnection *conn); -gboolean g_tls_connection_handshake (GTlsConnection *conn, - GCancellable *cancellable, - 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); +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: @@ -126,12 +127,9 @@ GQuark g_tls_error_quark (void); /*< protected >*/ -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 From 85adbc99bfa079df777ca148884e52fead3bfe7b Mon Sep 17 00:00:00 2001 From: Emilio Pozuelo Monfort Date: Tue, 7 Dec 2010 17:45:06 +0100 Subject: [PATCH 008/130] Fix error in GSimpleAsyncResult example --- gio/gsimpleasyncresult.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gio/gsimpleasyncresult.c b/gio/gsimpleasyncresult.c index 2166bea21..db44600a5 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 * From c59ba60fbe0ad4d45b2d84608bece5bb032c3aa9 Mon Sep 17 00:00:00 2001 From: Benjamin Otte Date: Tue, 7 Dec 2010 15:42:10 +0100 Subject: [PATCH 009/130] tls: Clarify docs for g_tls_client_connection_set_validation_flags() And fix a typo in there. --- gio/gtlsclientconnection.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/gio/gtlsclientconnection.c b/gio/gtlsclientconnection.c index 44aa297da..ec50f39e9 100644 --- a/gio/gtlsclientconnection.c +++ b/gio/gtlsclientconnection.c @@ -199,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 */ From 07fd29c3236e479a217a5ad9875075537dfb3173 Mon Sep 17 00:00:00 2001 From: Benjamin Otte Date: Tue, 7 Dec 2010 16:06:38 +0100 Subject: [PATCH 010/130] tls: Make g_tls_{client|server}_connection_new() return a GIOStream The main use case for these objects is as an IO stream, so it makes sense to return them that way from the start. --- gio/gsocketclient.c | 12 +++++++----- gio/gtlsclientconnection.c | 4 ++-- gio/gtlsclientconnection.h | 2 +- gio/gtlsserverconnection.c | 4 ++-- gio/gtlsserverconnection.h | 2 +- gio/tests/socket-client.c | 2 +- gio/tests/socket-server.c | 4 ++-- 7 files changed, 16 insertions(+), 14 deletions(-) diff --git a/gio/gsocketclient.c b/gio/gsocketclient.c index e6008a3dd..f1fe01b0e 100644 --- a/gio/gsocketclient.c +++ b/gio/gsocketclient.c @@ -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)) { @@ -1168,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) { @@ -1181,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, diff --git a/gio/gtlsclientconnection.c b/gio/gtlsclientconnection.c index ec50f39e9..92cd9f573 100644 --- a/gio/gtlsclientconnection.c +++ b/gio/gtlsclientconnection.c @@ -158,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) @@ -172,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); } /** diff --git a/gio/gtlsclientconnection.h b/gio/gtlsclientconnection.h index 2bfa8c451..2aaaa97e8 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); 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/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) From bd227f52195f28460bc96d719d1ff70c28966d26 Mon Sep 17 00:00:00 2001 From: Benjamin Otte Date: Tue, 7 Dec 2010 17:25:01 +0100 Subject: [PATCH 011/130] gio: Make enumerating a GNetworkAddress work more than once Previously, the code only initialized the enumerator if the address hadn't had cached addresses. But creating an enumerator cached the addresses, so the second one failed to work. --- gio/gnetworkaddress.c | 94 +++++++++++++++++++++++-------------------- 1 file changed, 50 insertions(+), 44 deletions(-) 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); } } From ca38bddd6e5dc18db8fd8695d88c4de5183c7fe9 Mon Sep 17 00:00:00 2001 From: Benjamin Otte Date: Tue, 7 Dec 2010 17:55:03 +0100 Subject: [PATCH 012/130] gio: Add a count to the resolver test for number of enumerators This adds the nice stress-test feature of having 5 enumerators running at the same time. Yay! --- gio/tests/resolver.c | 40 ++++++++++++++++++++++++++-------------- 1 file changed, 26 insertions(+), 14 deletions(-) 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) From ad56426bc784ab0979264058444781246e42661f Mon Sep 17 00:00:00 2001 From: Dan Winship Date: Fri, 10 Dec 2010 10:01:01 +0100 Subject: [PATCH 013/130] Add missing property to GDummyTlsCertificate --- gio/gdummytlsbackend.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/gio/gdummytlsbackend.c b/gio/gdummytlsbackend.c index 6a6b8a205..0202f2770 100644 --- a/gio/gdummytlsbackend.c +++ b/gio/gdummytlsbackend.c @@ -95,7 +95,8 @@ enum PROP_CERTIFICATE, PROP_CERTIFICATE_PEM, PROP_PRIVATE_KEY, - PROP_PRIVATE_KEY_PEM + PROP_PRIVATE_KEY_PEM, + PROP_ISSUER }; static void g_dummy_tls_certificate_initable_iface_init (GInitableIface *iface); @@ -138,6 +139,7 @@ g_dummy_tls_certificate_class_init (GDummyTlsCertificateClass *certificate_class 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_ISSUER, "issuer"); } static void From ce50df7e0e744a5a6f3d9e41d2b2f872f6174792 Mon Sep 17 00:00:00 2001 From: Christian Persch Date: Tue, 9 Nov 2010 22:56:28 +0100 Subject: [PATCH 014/130] Better error reporting for g_variant_parse() Add error codes, and use them when setting the GError. Bug #634583. --- gio/gsettings-tool.c | 4 +- glib/gvariant-parser.c | 83 ++++++++++++++++++++++++++++++++++-------- glib/gvariant.h | 19 +++++++++- 3 files changed, 89 insertions(+), 17 deletions(-) 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/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.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 ()) From 78c34bb34f6035e01ee41a57ab4b3f2c2f91cc4d Mon Sep 17 00:00:00 2001 From: Christian Persch Date: Tue, 16 Nov 2010 19:22:10 +0100 Subject: [PATCH 015/130] Fix gsettings enum rule to work with non-srcdir builds Bug #635007. --- m4macros/gsettings.m4 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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) From 69c6e41b54085a7febc769f3b0582abf7c650a5f Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Mon, 13 Dec 2010 09:04:28 -0500 Subject: [PATCH 016/130] Document the GIO_USE_TLS environment variable --- docs/reference/gio/overview.xml | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) 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". From 0a2d47b626d130b0b795f76147c68132ede73b08 Mon Sep 17 00:00:00 2001 From: Xavier Claessens Date: Fri, 13 Aug 2010 10:10:48 +0200 Subject: [PATCH 017/130] Add g_io_stream_splice_async/finish() That function splice the output stream of both GIOStreams to the input stream of the other GIOStream. --- docs/reference/gio/gio-sections.txt | 2 + gio/gioenums.h | 19 +++ gio/giostream.c | 248 ++++++++++++++++++++++++++++ gio/giostream.h | 11 ++ gio/tests/Makefile.am | 4 + gio/tests/io-stream.c | 185 +++++++++++++++++++++ 6 files changed, 469 insertions(+) create mode 100644 gio/tests/io-stream.c diff --git a/docs/reference/gio/gio-sections.txt b/docs/reference/gio/gio-sections.txt index a9efdd37a..57329a525 100644 --- a/docs/reference/gio/gio-sections.txt +++ b/docs/reference/gio/gio-sections.txt @@ -895,6 +895,8 @@ GUnixOutputStreamPrivate 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 diff --git a/gio/gioenums.h b/gio/gioenums.h index 7aaba24e6..c481f5ef9 100644 --- a/gio/gioenums.h +++ b/gio/gioenums.h @@ -571,6 +571,25 @@ 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. + **/ +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 diff --git a/gio/giostream.c b/gio/giostream.c index 7c5bdf02e..137c97628 100644 --- a/gio/giostream.c +++ b/gio/giostream.c @@ -606,3 +606,251 @@ 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: optional #GCancellable object, %NULL to ignore. + * @callback: a #GAsyncReadyCallback. + * @user_data: 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. + **/ +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. + **/ +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/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/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(); +} From e4f25c0fed49acc46de2519837b78db6c12b2df4 Mon Sep 17 00:00:00 2001 From: Xavier Claessens Date: Mon, 13 Dec 2010 17:42:11 +0100 Subject: [PATCH 018/130] Add Since 2.28 in g_io_stream_splice doc --- gio/gioenums.h | 2 ++ gio/giostream.c | 4 ++++ 2 files changed, 6 insertions(+) diff --git a/gio/gioenums.h b/gio/gioenums.h index c481f5ef9..46a4eec9c 100644 --- a/gio/gioenums.h +++ b/gio/gioenums.h @@ -582,6 +582,8 @@ typedef enum { * before calling the callback. * * GIOStreamSpliceFlags determine how streams should be spliced. + * + * Since: 2.28 **/ typedef enum { G_IO_STREAM_SPLICE_NONE = 0, diff --git a/gio/giostream.c b/gio/giostream.c index 137c97628..5ff667455 100644 --- a/gio/giostream.c +++ b/gio/giostream.c @@ -766,6 +766,8 @@ splice_cancelled_cb (GCancellable *cancellable, * 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, @@ -835,6 +837,8 @@ g_io_stream_splice_async (GIOStream *stream1, * Finishes an asynchronous io stream splice operation. * * Returns: %TRUE on success, %FALSE otherwise. + * + * Since: 2.28 **/ gboolean g_io_stream_splice_finish (GAsyncResult *result, From a855f7270066a9268d52e97ad301315d27a6edb7 Mon Sep 17 00:00:00 2001 From: Xavier Claessens Date: Mon, 13 Dec 2010 17:59:47 +0100 Subject: [PATCH 019/130] Add GIOStreamSpliceFlags to doc --- docs/reference/gio/gio-sections.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/reference/gio/gio-sections.txt b/docs/reference/gio/gio-sections.txt index 57329a525..50a8de05d 100644 --- a/docs/reference/gio/gio-sections.txt +++ b/docs/reference/gio/gio-sections.txt @@ -892,6 +892,7 @@ GUnixOutputStreamPrivate
giostream GIOStream +GIOStreamSpliceFlags GIOStream g_io_stream_get_input_stream g_io_stream_get_output_stream From 735fcf918e70035874b50785524d25eda557d51f Mon Sep 17 00:00:00 2001 From: Peng Huang Date: Mon, 13 Dec 2010 13:09:38 -0500 Subject: [PATCH 020/130] =?UTF-8?q?Bug=20632544=20=E2=80=93=20Cannot=20sen?= =?UTF-8?q?d=20a=20locked=20message=20with=20PRESERVE=5FSERIAL=20flag?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit https://bugzilla.gnome.org/show_bug.cgi?id=632544 Signed-off-by: David Zeuthen --- gio/gdbusconnection.c | 3 ++- gio/tests/gdbus-connection.c | 18 +++++++++++++++--- 2 files changed, 17 insertions(+), 4 deletions(-) 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/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)); From 09ce9dc542b26e133bc798f9a0382b642aea4470 Mon Sep 17 00:00:00 2001 From: Ted Gould Date: Mon, 13 Dec 2010 13:33:15 -0500 Subject: [PATCH 021/130] =?UTF-8?q?Bug=20635626=20=E2=80=93=20GDBus=20mess?= =?UTF-8?q?age=20idle=20can=20execute=20while=20flushes=20are=20pending?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit https://bugzilla.gnome.org/show_bug.cgi?id=635626 Signed-off-by: David Zeuthen --- gio/gdbusprivate.c | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) 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 (); From 7ee902a3d05cc74a4edaf0197e076611401c029c Mon Sep 17 00:00:00 2001 From: Dan Winship Date: Fri, 10 Dec 2010 11:42:56 +0100 Subject: [PATCH 022/130] ghostutils: Convert non-ASCII dots to '.' when converting hostnames Also add some test cases to test/hostutils for that and a few other things, and make the test program just act as an ASCII/unicode hostname converter rather than a test program if it's run with an argument. https://bugzilla.gnome.org/show_bug.cgi?id=633350 --- glib/ghostutils.c | 53 ++++++++++++++++++++++++++++-------- glib/tests/hostutils.c | 61 ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 103 insertions(+), 11 deletions(-) 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/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); From 8c742aea720d491fc62eac24dbdab8986a849c2d Mon Sep 17 00:00:00 2001 From: Pavel Holejsovsky Date: Wed, 15 Dec 2010 11:17:00 +0100 Subject: [PATCH 023/130] Add missing annotations to GApplication and GApplicationCommandLine. --- gio/gapplication.c | 8 ++++---- gio/gapplicationcommandline.c | 8 +++++--- 2 files changed, 9 insertions(+), 7 deletions(-) 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 **/ From 056a5d753d14b505c3250ccb4a5de92dbdc67a58 Mon Sep 17 00:00:00 2001 From: Cosimo Cecchi Date: Tue, 14 Dec 2010 17:16:31 +0100 Subject: [PATCH 024/130] gapplication: plug a memory leak https://bugzilla.gnome.org/show_bug.cgi?id=637237 --- gio/gapplicationimpl-dbus.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/gio/gapplicationimpl-dbus.c b/gio/gapplicationimpl-dbus.c index c9f430657..ca072ac02 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) From f53d518a3de99eb8418a35b8f1e163026130687b Mon Sep 17 00:00:00 2001 From: Cosimo Cecchi Date: Thu, 9 Dec 2010 18:16:17 +0100 Subject: [PATCH 025/130] emblemedicon: add g_emblemed_icon_clear_emblems() https://bugzilla.gnome.org/show_bug.cgi?id=637171 --- gio/gemblemedicon.c | 12 ++++++++++++ gio/gemblemedicon.h | 1 + 2 files changed, 13 insertions(+) diff --git a/gio/gemblemedicon.c b/gio/gemblemedicon.c index 0364cbaa0..331f35de7 100644 --- a/gio/gemblemedicon.c +++ b/gio/gemblemedicon.c @@ -160,6 +160,18 @@ g_emblemed_icon_get_emblems (GEmblemedIcon *emblemed) return emblemed->emblems; } +void +g_emblemed_icon_clear_emblems (GEmblemedIcon *emblemed) +{ + g_return_if_fail (G_IS_EMBLEMED_ICON (emblemed)); + + if (emblemed->emblems == NULL) + return; + + g_list_free_full (emblemed->emblems, g_object_unref); + emblemed->emblems = NULL; +} + static gint g_emblem_comp (GEmblem *a, GEmblem *b) diff --git a/gio/gemblemedicon.h b/gio/gemblemedicon.h index 7a5dc4dae..7eb99f06a 100644 --- a/gio/gemblemedicon.h +++ b/gio/gemblemedicon.h @@ -56,6 +56,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 From bfee021cfb24a97b99612f6314e9309f3a70f6db Mon Sep 17 00:00:00 2001 From: Cosimo Cecchi Date: Wed, 15 Dec 2010 12:49:22 +0100 Subject: [PATCH 026/130] emblemedicon: add docs for _clear_emblems() --- docs/reference/gio/gio-sections.txt | 1 + gio/gemblemedicon.c | 8 ++++++++ gio/gio.symbols | 1 + 3 files changed, 10 insertions(+) diff --git a/docs/reference/gio/gio-sections.txt b/docs/reference/gio/gio-sections.txt index 50a8de05d..5fbe1c7a1 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 diff --git a/gio/gemblemedicon.c b/gio/gemblemedicon.c index 331f35de7..01f8abe70 100644 --- a/gio/gemblemedicon.c +++ b/gio/gemblemedicon.c @@ -160,6 +160,14 @@ g_emblemed_icon_get_emblems (GEmblemedIcon *emblemed) return emblemed->emblems; } +/** + * g_emblemed_icon_clear_emblems: + * @emblemed: a #GEmblemedIcon + * + * Remove alls the emblems from @icon. + * + * Since: 2.28 + **/ void g_emblemed_icon_clear_emblems (GEmblemedIcon *emblemed) { diff --git a/gio/gio.symbols b/gio/gio.symbols index b76cc5c7d..e4b6f8a1a 100644 --- a/gio/gio.symbols +++ b/gio/gio.symbols @@ -1081,6 +1081,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 From 9411d0c108d6c5b122f82666467ad9cb42eeccd1 Mon Sep 17 00:00:00 2001 From: Cosimo Cecchi Date: Wed, 15 Dec 2010 12:50:59 +0100 Subject: [PATCH 027/130] docs: fix a typo --- gio/gemblemedicon.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gio/gemblemedicon.c b/gio/gemblemedicon.c index 01f8abe70..b7832c00e 100644 --- a/gio/gemblemedicon.c +++ b/gio/gemblemedicon.c @@ -164,7 +164,7 @@ g_emblemed_icon_get_emblems (GEmblemedIcon *emblemed) * g_emblemed_icon_clear_emblems: * @emblemed: a #GEmblemedIcon * - * Remove alls the emblems from @icon. + * Removes all the emblems from @icon. * * Since: 2.28 **/ From 1bbf4cb87c2a0b028de4b65377d0b21cbb49d8f2 Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Wed, 15 Dec 2010 11:41:05 -0500 Subject: [PATCH 028/130] Remove the dead --disable-visiblity configure option At the same time, document --disable-Bsymbolic. --- configure.ac | 8 -------- docs/reference/glib/building.sgml | 25 ++++++++++++------------- gthread/tests/1bit-mutex.c | 3 --- 3 files changed, 12 insertions(+), 24 deletions(-) diff --git a/configure.ac b/configure.ac index 28a1f3967..791a0c247 100644 --- a/configure.ac +++ b/configure.ac @@ -224,10 +224,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 +292,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/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/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, From 683a5632c89b311111503a03290ff75ad705ac46 Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Wed, 15 Dec 2010 11:56:44 -0500 Subject: [PATCH 029/130] Remove GPeriodic for now The necessary review and integration work has not happened, and we don't want to enshrine it in this unproven state. It will be back when the world is ready for it. --- docs/reference/gio/gio-docs.xml | 4 - docs/reference/gio/gio-sections.txt | 26 - docs/reference/gio/gio.types | 1 - gio/Makefile.am | 2 - gio/gio.h | 1 - gio/gperiodic.c | 765 ---------------------------- gio/gperiodic.h | 88 ---- 7 files changed, 887 deletions(-) delete mode 100644 gio/gperiodic.c delete mode 100644 gio/gperiodic.h 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 5fbe1c7a1..431af131f 100644 --- a/docs/reference/gio/gio-sections.txt +++ b/docs/reference/gio/gio-sections.txt @@ -2936,32 +2936,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 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/gio/Makefile.am b/gio/Makefile.am index 89aa16276..e0b352e5e 100644 --- a/gio/Makefile.am +++ b/gio/Makefile.am @@ -348,7 +348,6 @@ libgio_2_0_la_SOURCES = \ gnetworkingprivate.h \ gnetworkservice.c \ goutputstream.c \ - gperiodic.c \ gpermission.c \ gpollableinputstream.c \ gpollableoutputstream.c \ @@ -510,7 +509,6 @@ gio_headers = \ gnetworkaddress.h \ gnetworkservice.h \ goutputstream.h \ - gperiodic.h \ gpermission.h \ gpollableinputstream.h \ gpollableoutputstream.h \ 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/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__ */ From 274ef35fd44ca272d80966a9f1fd17ecce1bc46f Mon Sep 17 00:00:00 2001 From: Cosimo Cecchi Date: Tue, 14 Dec 2010 18:33:17 +0100 Subject: [PATCH 030/130] tests: remove a bogus assumption --- gio/tests/desktop-app-info.c | 3 --- 1 file changed, 3 deletions(-) diff --git a/gio/tests/desktop-app-info.c b/gio/tests/desktop-app-info.c index 9d9e181de..db9ec70a1 100644 --- a/gio/tests/desktop-app-info.c +++ b/gio/tests/desktop-app-info.c @@ -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); From 2b6c801d10b5ee1ab11cf0612e34db74c6985fbd Mon Sep 17 00:00:00 2001 From: Murray Cumming Date: Thu, 16 Dec 2010 10:57:18 +0100 Subject: [PATCH 031/130] gioenums.h: Remove a trailing comma. --- gio/gioenums.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gio/gioenums.h b/gio/gioenums.h index 46a4eec9c..0b2c5765e 100644 --- a/gio/gioenums.h +++ b/gio/gioenums.h @@ -589,7 +589,7 @@ 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), + G_IO_STREAM_SPLICE_WAIT_FOR_BOTH = (1 << 2) } GIOStreamSpliceFlags; /** From 6f215e477dd91446f64d3ae4a05e47d0138a5d0d Mon Sep 17 00:00:00 2001 From: "John (J5) Palmieri" Date: Thu, 16 Dec 2010 13:44:56 -0500 Subject: [PATCH 032/130] [gi] add annotations for methods which take a gpointer which are really GObjects * bindings need to know how to marshal the pointer otherwise they send in the raw wrapped pointer causing crashes --- gio/gsettings.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gio/gsettings.c b/gio/gsettings.c index d88ad015c..e8c53e0da 100644 --- a/gio/gsettings.c +++ b/gio/gsettings.c @@ -2553,7 +2553,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.GObject): a #GObject * @property: the name of the property to bind * @flags: flags for the binding * @@ -2607,7 +2607,7 @@ g_settings_bind (GSettings *settings, * g_settings_bind_with_mapping: * @settings: a #GSettings object * @key: the key to bind - * @object: a #GObject + * @object: (type GObject.GObject): 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 @@ -2820,7 +2820,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.GObject):a #GObject * @property: the name of a boolean property to bind * @inverted: whether to 'invert' the value * From f33ccd4b41aa4d3bfde71adefef74bb22c6bffcb Mon Sep 17 00:00:00 2001 From: Pavel Holejsovsky Date: Thu, 16 Dec 2010 21:06:51 +0100 Subject: [PATCH 033/130] [gi] Fix GObject.Object annotations. --- gio/gsettings.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gio/gsettings.c b/gio/gsettings.c index e8c53e0da..58fe0fbb7 100644 --- a/gio/gsettings.c +++ b/gio/gsettings.c @@ -2553,7 +2553,7 @@ g_settings_bind_invert_boolean_set_mapping (const GValue *value, * g_settings_bind: * @settings: a #GSettings object * @key: the key to bind - * @object: (type GObject.GObject): a #GObject + * @object: (type GObject.Object): a #GObject * @property: the name of the property to bind * @flags: flags for the binding * @@ -2607,7 +2607,7 @@ g_settings_bind (GSettings *settings, * g_settings_bind_with_mapping: * @settings: a #GSettings object * @key: the key to bind - * @object: (type GObject.GObject): 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 @@ -2820,7 +2820,7 @@ g_settings_binding_writable_changed (GSettings *settings, * g_settings_bind_writable: * @settings: a #GSettings object * @key: the key to bind - * @object: (type GObject.GObject):a #GObject + * @object: (type GObject.Object):a #GObject * @property: the name of a boolean property to bind * @inverted: whether to 'invert' the value * From d3ce12571cf8dc9f925ffa344887c26b16bcbf1e Mon Sep 17 00:00:00 2001 From: Kjartan Maraas Date: Fri, 17 Dec 2010 13:03:18 +0100 Subject: [PATCH 034/130] =?UTF-8?q?Updated=20Norwegian=20bokm=C3=A5l=20tra?= =?UTF-8?q?nslation?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- po/nb.po | 275 +++++++++++++++++++++++++++++-------------------------- 1 file changed, 144 insertions(+), 131 deletions(-) diff --git a/po/nb.po b/po/nb.po index 88eaba266..d4c359b5f 100644 --- a/po/nb.po +++ b/po/nb.po @@ -9,8 +9,8 @@ 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" +"POT-Creation-Date: 2010-12-17 13:00+0100\n" +"PO-Revision-Date: 2010-12-17 13:03+0100\n" "Last-Translator: Kjartan Maraas \n" "Language-Team: Norwegian bokmål \n" "Language:\n" @@ -1382,8 +1382,8 @@ 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/gcancellable.c:433 ../gio/gdbusconnection.c:1637 +#: ../gio/gdbusconnection.c:1726 ../gio/gdbusconnection.c:1912 #: ../gio/glocalfile.c:2102 ../gio/gsimpleasyncresult.c:811 #: ../gio/gsimpleasyncresult.c:837 msgid "Operation was cancelled" @@ -1401,7 +1401,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" @@ -1559,14 +1559,14 @@ msgid "Cannot determine session bus address (not implemented for this OS)" msgstr "" "Kan ikke bestemme adresse til sesjonsbussen (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" @@ -1669,85 +1669,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 "Tilkoblingen er lukket" -#: ../gio/gdbusconnection.c:1680 +#: ../gio/gdbusconnection.c:1681 msgid "Timeout was reached" msgstr "Tidsavbrudd ble nådd" -#: ../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 "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" @@ -1905,13 +1905,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: " @@ -2122,34 +2122,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:471 ../gio/gwin32appinfo.c:221 msgid "Unnamed" msgstr "Uten navn" -#: ../gio/gdesktopappinfo.c:753 +#: ../gio/gdesktopappinfo.c:755 msgid "Desktop file didn't specify Exec field" msgstr "Desktop-filen hadde ingen verdi i Exec-feltet" -#: ../gio/gdesktopappinfo.c:946 +#: ../gio/gdesktopappinfo.c:948 msgid "Unable to find terminal required for application" msgstr "Kan ikke finne terminalen som kreves for programmet" -#: ../gio/gdesktopappinfo.c:1155 +#: ../gio/gdesktopappinfo.c:1157 #, 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:1161 #, 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:1569 #, 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:1683 #, c-format msgid "Custom definition for %s" msgstr "Egendefinert definisjon for %s" @@ -2187,17 +2187,17 @@ 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:313 #, 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:323 #, 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:346 msgid "Expected a GEmblem for GEmblemedIcon" msgstr "Ventet et GEmblem for GEmblemedIcon" @@ -2512,128 +2512,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. " 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 +3083,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 +3185,7 @@ msgid "" "\n" msgstr "" -#: ../gio/gsettings-tool.c:552 +#: ../gio/gsettings-tool.c:554 #, c-format msgid "" "Usage:\n" @@ -3194,153 +3195,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 +3387,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 @@ -3445,6 +3446,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 +3507,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 +3523,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" From ac4722df1c9802b0c78bba31aa9004348eb1813d Mon Sep 17 00:00:00 2001 From: Will Thompson Date: Fri, 17 Dec 2010 12:34:28 +0000 Subject: [PATCH 035/130] g_object_get_property: document that value must be initialized I couldn't tell from reading the documentation whether I had to pass in an uninitialized value, or a value initialized to the exact type, or something else. It turns out (from reading the source) that you have to pass in an initialized value, but you can use any type to which the property's actual type can be transformed. So, let's document this. --- gobject/gobject.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/gobject/gobject.c b/gobject/gobject.c index 8b427fa62..f1fa54d21 100644 --- a/gobject/gobject.c +++ b/gobject/gobject.c @@ -1906,7 +1906,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(). From 101dcecb1f1c53041c228cd4f5c4580743a7362a Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Fri, 17 Dec 2010 08:35:54 -0500 Subject: [PATCH 036/130] Update symbols list for recent changes --- gio/gio.symbols | 18 +++--------------- 1 file changed, 3 insertions(+), 15 deletions(-) diff --git a/gio/gio.symbols b/gio/gio.symbols index e4b6f8a1a..4ae32eca9 100644 --- a/gio/gio.symbols +++ b/gio/gio.symbols @@ -663,6 +663,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 +1035,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 @@ -1967,21 +1970,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 From 89b558077f97c630c5b26b3527a6c7d0515f1f2c Mon Sep 17 00:00:00 2001 From: Pavel Holejsovsky Date: Fri, 17 Dec 2010 16:24:33 +0100 Subject: [PATCH 037/130] [gi] Add annotations for GFile, G[File]{Input|Output|IO}Stream. Also make parameter names in virtual function declarations consistent to silent g-ir-scanner. --- gio/gfile.c | 183 ++++++++++++++++++++-------------------- gio/gfileinputstream.c | 8 +- gio/gfileinputstream.h | 2 +- gio/gfileiostream.c | 8 +- gio/gfileiostream.h | 2 +- gio/gfileoutputstream.h | 2 +- gio/ginputstream.c | 28 +++--- gio/giostream.c | 14 +-- gio/goutputstream.c | 36 ++++---- gio/goutputstream.h | 2 +- 10 files changed, 143 insertions(+), 142 deletions(-) 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/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/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/giostream.c b/gio/giostream.c index 5ff667455..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 @@ -755,9 +755,9 @@ splice_cancelled_cb (GCancellable *cancellable, * @stream2: a #GIOStream. * @flags: a set of #GIOStreamSpliceFlags. * @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. * * 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 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); From f0354ff0590f0350ebdb1ee8eb84e7b6cdd1e850 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Javier=20Jard=C3=B3n?= Date: Fri, 17 Dec 2010 16:12:16 +0000 Subject: [PATCH 038/130] grand: Fix URLs for info on the Mersenne Twister Reported by Allin Cottrell here: http://mail.gnome.org/archives/gtk-devel-list/2010-December/msg00134.html --- glib/grand.c | 4 ++-- glib/grand.h | 2 +- glib/tests/rand.c | 3 ++- 3 files changed, 5 insertions(+), 4 deletions(-) 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/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[] = From ddc126cf2cbbdbc3a98e7bd397f19fb0ac8c27c4 Mon Sep 17 00:00:00 2001 From: Christian Dywan Date: Fri, 10 Dec 2010 15:07:04 +0100 Subject: [PATCH 039/130] g_simple_async_report_error_in_idle with no object Document and allow passing of NULL for the object consistently to _take_error and _report_error functions. Fixes: https://bugzilla.gnome.org/show_bug.cgi?id=636673 --- gio/gsimpleasyncresult.c | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/gio/gsimpleasyncresult.c b/gio/gsimpleasyncresult.c index db44600a5..458cf2e78 100644 --- a/gio/gsimpleasyncresult.c +++ b/gio/gsimpleasyncresult.c @@ -299,8 +299,7 @@ g_simple_async_result_init (GSimpleAsyncResult *simple) /** * g_simple_async_result_new: - * @source_object: a #GObject the asynchronous function was called with, - * or %NULL. + * @source_object: (allow-none): a #GObject, or %NULL. * @callback: a #GAsyncReadyCallback. * @user_data: user data passed to @callback. * @source_tag: the asynchronous function. @@ -333,7 +332,7 @@ g_simple_async_result_new (GObject *source_object, /** * g_simple_async_result_new_from_error: - * @source_object: a #GObject, or %NULL. + * @source_object: (allow-none): a #GObject, or %NULL. * @callback: a #GAsyncReadyCallback. * @user_data: user data passed to @callback. * @error: a #GError @@ -394,7 +393,7 @@ g_simple_async_result_new_take_error (GObject *source_object, /** * g_simple_async_result_new_error: - * @source_object: a #GObject, or %NULL. + * @source_object: (allow-none): a #GObject, or %NULL. * @callback: a #GAsyncReadyCallback. * @user_data: user data passed to @callback. * @domain: a #GQuark. @@ -935,7 +934,7 @@ g_simple_async_result_is_valid (GAsyncResult *result, /** * g_simple_async_report_error_in_idle: - * @object: a #GObject. + * @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); @@ -1006,7 +1005,7 @@ g_simple_async_report_gerror_in_idle (GObject *object, /** * g_simple_async_report_take_gerror_in_idle: - * @object: a #GObject. + * @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, From ea577d60d451bc7102695046fb1c3f80fb3e1769 Mon Sep 17 00:00:00 2001 From: Pavel Holejsovsky Date: Sun, 19 Dec 2010 10:39:36 +0100 Subject: [PATCH 040/130] Add GI annotations to GValue and GValueArray. --- gobject/gboxed.c | 4 ++-- gobject/gobject.c | 6 +++--- gobject/gparam.c | 4 ++-- gobject/gvalue.c | 13 ++++++------- gobject/gvaluearray.c | 29 +++++++++++++++-------------- gobject/gvaluetypes.c | 2 +- 6 files changed, 29 insertions(+), 29 deletions(-) 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/gobject.c b/gobject/gobject.c index f1fa54d21..1bf32b49c 100644 --- a/gobject/gobject.c +++ b/gobject/gobject.c @@ -3181,7 +3181,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) @@ -3198,8 +3198,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) diff --git a/gobject/gparam.c b/gobject/gparam.c index f91e58745..b8ba5bb63 100644 --- a/gobject/gparam.c +++ b/gobject/gparam.c @@ -1474,7 +1474,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 +1485,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/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) From 3264d8d1598916a59775ed07969ff0d20b8790e0 Mon Sep 17 00:00:00 2001 From: Pavel Holejsovsky Date: Sun, 19 Dec 2010 22:15:42 +0100 Subject: [PATCH 041/130] Add GI annotations to GClosure and friends. --- gobject/gclosure.c | 29 +++++++++++++++-------------- gobject/gobject.c | 2 +- 2 files changed, 16 insertions(+), 15 deletions(-) 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 1bf32b49c..5587df94e 100644 --- a/gobject/gobject.c +++ b/gobject/gobject.c @@ -3444,7 +3444,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 * From fef417575c1cac47f9d9a2b386ad386ec4272d45 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nguy=E1=BB=85n=20Th=C3=A1i=20Ng=E1=BB=8Dc=20Duy?= Date: Mon, 20 Dec 2010 17:26:00 +0700 Subject: [PATCH 042/130] Updated Vietnamese translation --- po/vi.po | 621 ++++++++++++++++++++++++++++--------------------------- 1 file changed, 319 insertions(+), 302 deletions(-) diff --git a/po/vi.po b/po/vi.po index 7f1bdc81f..52c49e5fa 100644 --- a/po/vi.po +++ b/po/vi.po @@ -2,14 +2,14 @@ # 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" +"PO-Revision-Date: 2010-12-20 17:25+0700\n" "Last-Translator: Clytie Siddall \n" "Language-Team: Vietnamese \n" "MIME-Version: 1.0\n" @@ -92,45 +92,44 @@ msgstr "Lỗi mở rộng dòng thực hiện '%s' bằng URI '%s'" #: gio/gcharsetconverter.c:459 #, 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 #, 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 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 #, 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 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 #, 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 #, 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 #, 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 #, c-format @@ -140,36 +139,36 @@ msgstr "URI '%s' không hợp lệ" #: glib/gconvert.c:1790 #, 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 #, 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 #, 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 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 #, 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 #, 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 #, 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 #, c-format @@ -179,42 +178,43 @@ msgstr "Tập tin \"%s\" quá lớn" #: 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 #, 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 #, 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 #, 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 #, 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 #, 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 #, 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 #, 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 #, c-format @@ -229,17 +229,17 @@ msgstr "Lỗi ghi tập tin '%s': lỗi fsync(): %s" #: 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 #, 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 #, 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 #, c-format @@ -250,7 +250,7 @@ msgstr "Biểu mẫu '%s' không chứa XXXXXX" #, c-format msgid "%u byte" msgid_plural "%u bytes" -msgstr[0] "" +msgstr[0] "%u byte" #: glib/gfileutils.c:1782 #, c-format @@ -289,7 +289,7 @@ msgstr "Lỗi đọc liên kết tượng trưng '%s': %s" #: glib/gfileutils.c:1871 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 #, c-format @@ -298,12 +298,11 @@ msgstr "Không thể mở bộ chuyển đổi từ '%s' sang '%s': %s" #: glib/giochannel.c:1753 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 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 msgid "Channel terminates in a partial character" @@ -311,18 +310,17 @@ msgstr "Kênh tận hết trong ký tự riêng phần" #: glib/giochannel.c:1944 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 #, 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 #, 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 #, c-format @@ -355,8 +353,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 "" -"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 msgid "" @@ -364,20 +362,21 @@ msgid "" "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 #, 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 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 #, c-format @@ -389,12 +388,12 @@ 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 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 #, c-format @@ -402,8 +401,8 @@ 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 #, c-format @@ -417,9 +416,7 @@ msgstr "" #, 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 #, c-format @@ -428,9 +425,9 @@ msgid "" "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 #, c-format @@ -438,8 +435,8 @@ 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 #, c-format @@ -447,8 +444,8 @@ 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 #, 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 #, 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 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 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 #, c-format @@ -483,8 +481,8 @@ 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 #, c-format @@ -492,43 +490,46 @@ 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 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 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 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 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 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 #, 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 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 msgid "corrupted object" @@ -837,48 +838,46 @@ msgstr "Văn bản trích dẫn không bắt đầu bằng một dấu trích d #: glib/gshell.c:182 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 #, 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 #, 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 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 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 #, 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 #, 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 #, 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 #, 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 #, c-format @@ -888,12 +887,12 @@ 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 #, 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 #, 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 #, c-format @@ -903,75 +902,73 @@ msgstr "Thư mục làm việc không hợp lệ: %s" #: glib/gspawn-win32.c:784 #, 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 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 #, 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 #, 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 #, 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 #, 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 #, 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 #, 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 #, 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 #, 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 #, 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 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 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 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 msgid "Usage:" @@ -1000,12 +997,12 @@ msgstr "Tùy chọn ứng dụng:" #: glib/goption.c:992 glib/goption.c:1062 #, 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 #, 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 #, c-format @@ -1015,7 +1012,7 @@ msgstr "Không thể phân tách giá trị đôi '%s' cho %s" #: glib/goption.c:1035 #, 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 #, c-format @@ -1030,7 +1027,7 @@ msgstr "Thiếu đối số cho %s" #: glib/goption.c:1917 #, 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 msgid "Valid key file could not be found in search dirs" @@ -1038,19 +1035,19 @@ msgstr "Không tìm thấy tập tin khoá hợp lệ nằm trong thư mục tì #: glib/gkeyfile.c:398 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 msgid "File is empty" -msgstr "Tập tin rỗng" +msgstr "Tập tin rỗng." #: glib/gkeyfile.c:765 #, 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 #, c-format @@ -1059,7 +1056,7 @@ msgstr "Tên nhóm không hợp lệ: %s" #: glib/gkeyfile.c:847 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 #, c-format @@ -1069,29 +1066,29 @@ msgstr "Tên khoá không hợp lệ: %s" #: glib/gkeyfile.c:900 #, 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 #, 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 #, 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 #, 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 #, 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 #, c-format @@ -1105,22 +1102,22 @@ 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 #, 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 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 #, 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 #, c-format @@ -1130,7 +1127,7 @@ msgstr "Không thể giải dịch giá trị '%s' dạng con số." #: glib/gkeyfile.c:3815 #, 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 #, c-format @@ -1192,392 +1189,391 @@ msgstr "kiểu %s" #: gio/gcredentials.c:203 gio/gcredentials.c:338 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 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 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 +#, 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 #, c-format msgid "" "Address `%s' is invalid (need exactly one of path, tmpdir or abstract keys)" -msgstr "" +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 #, 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 #, 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 #, 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 #, 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 #, 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 #, c-format msgid "" "Error in address `%s' - the unix transport requires exactly one of the keys " "`path' or `abstract' to be set" -msgstr "" +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 #, 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 #, 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 #, 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 #, c-format msgid "Unknown or unsupported transport `%s' for address `%s'" -msgstr "" +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 +#, c-format msgid "Error reading nonce file `%s':" -msgstr "Gặp lỗi khi đọc tập tin '%s': %s" +msgstr "Gặp lỗi khi đọc tập tin '%s':" #: gio/gdbusaddress.c:646 msgid "The nonce-file `%s' was %" -msgstr "" +msgstr "nonce-file `%s' là %" #: gio/gdbusaddress.c:662 #, c-format msgid "Error write contents of nonce file `%s' to stream:" -msgstr "" +msgstr "Lỗi ghi nội dung nonce-file `%s' vào luồng:" #: gio/gdbusaddress.c:978 #, c-format msgid "" "Cannot determine session bus address (TODO: run dbus-launch to find out)" -msgstr "" +msgstr "Không thể xác định địa chỉ tuyến phiên làm việc (TODO: chạy dbus-launch để tìm ra)" #: gio/gdbusaddress.c:1002 gio/gdbusconnection.c:5309 #, c-format msgid "" "Cannot determine bus address from DBUS_STARTER_BUS_TYPE environment variable " "- unknown value `%s'" -msgstr "" +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 msgid "" "Cannot determine bus address because the DBUS_STARTER_BUS_TYPE environment " "variable is not set" -msgstr "" +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 +#, 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 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 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 #, 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 msgid "Cancelled via GDBusAuthObserver::authorize-authenticated-peer" -msgstr "" +msgstr "Đã huỷ thông qua GDBusAuthObserver::authorize-authenticated-peer" #: gio/gdbusauthmechanismsha1.c:264 -#, fuzzy, c-format +#, 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 #, c-format msgid "" "Permissions on directory `%s' are malformed. Expected mode 0700, got 0%o" -msgstr "" +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 +#, 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 +#, 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 #, 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 #, c-format msgid "" "First token of line %d of the keyring at `%s' with content `%s' is malformed" -msgstr "" +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 #, 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 #, 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 +#, c-format msgid "Error deleting stale lock-file `%s': %s" -msgstr "Gặp lỗi khi đọc tập tin '%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 +#, c-format msgid "Error creating lock-file `%s': %s" -msgstr "Gặp lỗi khi đọc tập tin '%s': %s" +msgstr "Gặp lỗi khi tạo tập tin khoá '%s': %s" #: gio/gdbusauthmechanismsha1.c:592 -#, fuzzy, c-format +#, c-format msgid "Error closing (unlinked) lock-file `%s': %s" -msgstr "Gặp lỗi khi đóng tập tin: %s" +msgstr "Gặp lỗi khi đóng (unlink) tập tin khoá `%s': %s" #: gio/gdbusauthmechanismsha1.c:602 -#, fuzzy, c-format +#, c-format msgid "Error unlinking lock-file `%s': %s" -msgstr "Gặp lỗi khi mở tập tin '%s': %s" +msgstr "Gặp lỗi xoá tập tin khoá '%s': %s" #: gio/gdbusauthmechanismsha1.c:678 -#, fuzzy, c-format +#, 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 #, 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 msgid "The connection is closed" -msgstr "Ổ cắm được thêm đã đóng" +msgstr "Kết nối đã đóng" #: gio/gdbusconnection.c:1256 msgid "Timeout was reached" -msgstr "" +msgstr "Quá hạn" #: gio/gdbusconnection.c:1757 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 #, 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 #, c-format msgid "No such property `%s'" -msgstr "" +msgstr "Không có thuộc tính `%s'" #: gio/gdbusconnection.c:3262 -#, fuzzy, c-format +#, 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 +#, 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 #, c-format msgid "No such interface `%s'" -msgstr "" +msgstr "Không có giao diện `%s'" #: gio/gdbusconnection.c:3504 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 "" +msgstr "Không có phương thức `%s'" #: gio/gdbusconnection.c:3779 #, c-format msgid "Type of message, `%s', does not match expected type `%s'" -msgstr "" +msgstr "Kiểu thông điệp, `%s', không khớp với kiểu đang cần `%s'" #: gio/gdbusconnection.c:3993 #, c-format msgid "An object is already exported for the interface %s at %s" -msgstr "" +msgstr "Đối tượng đã được xuất cho giao diện %s tại %s rồi" #: gio/gdbusconnection.c:4173 #, c-format msgid "Method `%s' returned type `%s', but expected `%s'" -msgstr "" +msgstr "Phương thức `%s' trả về kiểu `%s', nhưng đang muốn `%s'" #: gio/gdbusconnection.c:4866 #, c-format msgid "Method `%s' on interface `%s' with signature `%s' does not exist" -msgstr "" +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:4981 -#, fuzzy, c-format +#, c-format msgid "A subtree is already exported for %s" -msgstr "Bên lắng nghe đã đóng" +msgstr "Cây con đã được xuất cho %s" #: gio/gdbusconnection.c:5089 #, c-format msgid "Unable to load /var/lib/dbus/machine-id: %s" -msgstr "" +msgstr "Không thể nạp /var/lib/dbus/machine-id: %s" #: gio/gdbusconnection.c:5259 #, 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 "" +msgstr "Muốn đọc %s" #: gio/gdbusmessage.c:744 #, c-format msgid "Expected NUL byte after the string `%s' but found `%c' (%d)" -msgstr "" +msgstr "Chờ byte NUL sau chuỗi `%s' nhưng lại nhận `%c' (%d)" #: gio/gdbusmessage.c:927 #, c-format msgid "Parsed value `%s' is not a valid D-Bus object path" -msgstr "" +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 +#, 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 "" +msgstr "Bắt gặp mảng dài %" #: gio/gdbusmessage.c:1116 #, c-format msgid "Parsed value `%s' for variant is not a valid D-Bus signature" -msgstr "" +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 #, c-format msgid "" "Error deserializing GVariant with type-string `%s' from the D-Bus wire format" -msgstr "" +msgstr "Lỗi thôi tuần tự hoá GVariant với kiểu chuỗi `%s' từ D-Bus" #: gio/gdbusmessage.c:1286 #, c-format msgid "Invalid endianness value. Expected 'l' or 'B' but found '%c' (%d)" -msgstr "" +msgstr "Giá trị endianness không hợp lệ. Chờ 'l' hoặc 'B' nhưng nhận được '%c' (%d)" #: gio/gdbusmessage.c:1300 #, 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 #, 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 #, c-format msgid "Parsed value `%s' is not a valid D-Bus signature (for body)" -msgstr "" +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 "" +msgstr "Không có header ký hiệu trong thông điệp, nhưng phần thân thông điệp là %" #: gio/gdbusmessage.c:1694 #, c-format msgid "" "Error serializing GVariant with type-string `%s' to the D-Bus wire format" -msgstr "" +msgstr "Lỗi tuần tự hoá GVariant với kiểu chuỗi `%s' sang định dạng D-Bus" #: gio/gdbusmessage.c:1823 #, 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 #, 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 #, 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 #, 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 +#, 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 msgid "Error return with empty body" -msgstr "" +msgstr "Lỗi trả về thân trống rỗng" #: gio/gdbusmethodinvocation.c:357 #, 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 #, c-format @@ -1586,42 +1582,41 @@ 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 "" +msgstr "Lỗi ghi 16 byte đầu tiên của thông điệp vào socket: " #: gio/gdbusproxy.c:633 #, c-format msgid "" "Trying to set property %s of type %s but according to the expected interface " "the type is %s" -msgstr "" +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 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 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 +#, 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 +#, 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 #, 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 msgid "COMMAND" -msgstr "" +msgstr "LỆNH" #: gio/gdbus-tool.c:92 #, c-format @@ -1634,143 +1629,147 @@ 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 +#, 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 +#, 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 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 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 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 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 msgid "Options specifying the connection endpoint" -msgstr "" +msgstr "Tuỳ chọn xác định đầu nối" #: 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 #, c-format msgid "Multiple connection endpoints specified" -msgstr "" +msgstr "Xác định nhiều đầu nối" #: 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 #, c-format msgid "" "Warning: According to introspection data, method `%s' does not exist on " "interface `%s'\n" -msgstr "" +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 msgid "Destination name to invoke method on" -msgstr "" +msgstr "Tên dích để gọi hàm" #: 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 msgid "Method and interface name" -msgstr "" +msgstr "Tên phương thức vào giao diện" #: 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 +#, 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 #, 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 #, 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 +#, 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 #, 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 #, 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 +#, 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 +#, 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 msgid "Destination name to introspect" -msgstr "" +msgstr "Tên đích cần xem xét" #: gio/gdbus-tool.c:1162 msgid "Object path to introspect" -msgstr "" +msgstr "Đường dẫn đối tượng cần xem xét" #: gio/gdbus-tool.c:1195 msgid "Introspect a remote object." -msgstr "" +msgstr "Xem xét đối tượng từ xa." #: gio/gdbus-tool.c:1413 msgid "Destination name to monitor" -msgstr "" +msgstr "Tên đích cần theo dõi" #: gio/gdbus-tool.c:1414 msgid "Object path to monitor" -msgstr "" +msgstr "Đường dẫn đối tượng cần theo dõi" #: gio/gdbus-tool.c:1447 -#, fuzzy 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 msgid "Unnamed" @@ -2436,24 +2435,23 @@ msgstr "Lỗi phân giải '%s'" #: gio/gschema-compile.c:659 msgid "where to store the gschemas.compiled file" -msgstr "" +msgstr "nơi lưu tập tin gschemas.compiled" #: gio/gschema-compile.c:659 gio/gschema-compile.c:671 msgid "DIRECTORY" -msgstr "" +msgstr "THƯ MỤC" #: gio/gschema-compile.c:660 msgid "Do not write the gschema.compiled file" -msgstr "" +msgstr "Không ghi tập tin gschemas.compiled" #: 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" +msgstr "Không thông báo lỗi với thư mục rỗng" #: gio/gschema-compile.c:662 msgid "Do not enforce key name restrictions" -msgstr "" +msgstr "Không áp đặt ràng buộc tên khoá" #: gio/gschema-compile.c:674 msgid "" @@ -2461,16 +2459,19 @@ msgid "" "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/gschema-compile.c:690 #, c-format msgid "You should give exactly one directory name\n" -msgstr "" +msgstr "Bạn nên đưa chính xác một tên thư mục\n" #: gio/gschema-compile.c:729 #, c-format msgid "No schema files found\n" -msgstr "" +msgstr "Không tìm thấy tập tin schema\n" #: gio/gsettings-tool.c:41 #, c-format @@ -2484,24 +2485,32 @@ msgid "" "\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" #: 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 "" +msgstr "Xác định đường dẫn cho schema" #: gio/gsettings-tool.c:102 gio/gsettings-tool.c:161 gio/gsettings-tool.c:252 #: gio/gsettings-tool.c:325 msgid "PATH" -msgstr "" +msgstr "ĐƯỜNG DẪN" #: gio/gsettings-tool.c:110 gio/gsettings-tool.c:260 gio/gsettings-tool.c:333 msgid "SCHEMA KEY" -msgstr "" +msgstr "KHOÁ SCHEMA" #: gio/gsettings-tool.c:112 msgid "Get the value of KEY" -msgstr "" +msgstr "Lấy giá trị của KHOÁ" #: gio/gsettings-tool.c:114 gio/gsettings-tool.c:264 gio/gsettings-tool.c:340 msgid "" @@ -2509,14 +2518,17 @@ msgid "" " SCHEMA The id of the schema\n" " KEY The name of the key\n" msgstr "" +"Đối số:\n" +" SCHEMA id của schema\n" +" KEY Tên khoá\n" #: gio/gsettings-tool.c:169 msgid "SCHEMA KEY VALUE" -msgstr "" +msgstr "SCHEMA KHOÁ GIÁ TRỊ" #: gio/gsettings-tool.c:171 msgid "Set the value of KEY" -msgstr "" +msgstr "Đặt giá trị cho KHOÁ" #: gio/gsettings-tool.c:173 msgid "" @@ -2525,26 +2537,32 @@ msgid "" " 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" #: gio/gsettings-tool.c:212 -#, fuzzy, c-format +#, c-format msgid "Key %s is not writable\n" -msgstr "Kiểu %s không được đặt hạng" +msgstr "Khoá %s không ghi được\n" #: gio/gsettings-tool.c:262 msgid "Find out whether KEY is writable" -msgstr "" +msgstr "Tìm hiểu xem KHOÁ có ghi được không" #: gio/gsettings-tool.c:336 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." #: gio/gsettings-tool.c:399 -#, fuzzy, c-format +#, c-format msgid "Unknown command '%s'\n" -msgstr "Không biết tùy chọn %s" +msgstr "Lệnh lạ '%s'\n" #: gio/gsocket.c:275 msgid "Invalid socket, not initialized" @@ -2561,7 +2579,7 @@ msgstr "Ổ cắm đã được đóng" #: gio/gsocket.c:298 gio/gsocket.c:2609 gio/gsocket.c:2653 msgid "Socket I/O timed out" -msgstr "" +msgstr "Hết giờ Socket I/O" #: gio/gsocket.c:420 #, c-format @@ -2685,36 +2703,35 @@ msgid "Received invalid fd" msgstr "Nhận fd không hợp lệ" #: gio/gunixconnection.c:359 -#, fuzzy 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 #, 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 #, c-format msgid "" "Unexpected option length while checking if SO_PASSCRED is enabled for " "socket. Expected %d bytes, got %d" -msgstr "" +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 +#, 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 msgid "" "Expecting to read a single byte for receiving credentials but read zero bytes" -msgstr "" +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 #, 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 @@ -2776,19 +2793,19 @@ 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 +#, 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 +#, 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 +#, 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 msgid "Not enough memory" From 21c764cd9fca4d0568258d84cbb82b858d06292a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mattias=20P=C3=B5ldaru?= Date: Mon, 20 Dec 2010 13:55:19 +0200 Subject: [PATCH 043/130] [l10n] Updated Estonian translation --- po/et.po | 607 ++++++++++++++++++++++++++++++++++++------------------- 1 file changed, 394 insertions(+), 213 deletions(-) diff --git a/po/et.po b/po/et.po index dded40fab..c0e4c39af 100644 --- a/po/et.po +++ b/po/et.po @@ -15,10 +15,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-09-02 19:40+0000\n" +"POT-Creation-Date: 2010-12-17 16:41+0000\n" "PO-Revision-Date: 2010-09-19 14:51+0300\n" "Last-Translator: Mattias Põldaru \n" "Language-Team: Estonian \n" +"Language: et\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -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,193 @@ msgctxt "GDateTime" msgid "%H:%M:%S" msgstr "%H:%M:%S" -msgctxt "GDateTime" +#, fuzzy +msgctxt "full month name" msgid "January" msgstr "Jaanuar" -msgctxt "GDateTime" +#, fuzzy +msgctxt "full month name" msgid "February" msgstr "Veebruar" -msgctxt "GDateTime" +#, fuzzy +msgctxt "full month name" msgid "March" msgstr "Märts" -msgctxt "GDateTime" +#, fuzzy +msgctxt "full month name" msgid "April" msgstr "Aprill" -msgctxt "GDateTime" +#, fuzzy +msgctxt "full month name" msgid "May" msgstr "Mai" -msgctxt "GDateTime" +#, fuzzy +msgctxt "full month name" msgid "June" msgstr "Juuni" -msgctxt "GDateTime" +#, fuzzy +msgctxt "full month name" msgid "July" msgstr "Juuli" -msgctxt "GDateTime" +#, fuzzy +msgctxt "full month name" msgid "August" msgstr "August" -msgctxt "GDateTime" +#, fuzzy +msgctxt "full month name" msgid "September" msgstr "September" -msgctxt "GDateTime" +#, fuzzy +msgctxt "full month name" msgid "October" msgstr "Oktoober" -msgctxt "GDateTime" +#, fuzzy +msgctxt "full month name" msgid "November" msgstr "November" -msgctxt "GDateTime" +#, fuzzy +msgctxt "full month name" msgid "December" msgstr "Detsember" -msgctxt "GDateTime" +#, fuzzy +msgctxt "abbreviated month name" msgid "Jan" msgstr "Jaan" -msgctxt "GDateTime" +#, fuzzy +msgctxt "abbreviated month name" msgid "Feb" msgstr "Veebr" -msgctxt "GDateTime" +#, fuzzy +msgctxt "abbreviated month name" msgid "Mar" msgstr "Märts" -msgctxt "GDateTime" +#, fuzzy +msgctxt "abbreviated month name" msgid "Apr" msgstr "Apr" -msgctxt "GDateTime" +#, fuzzy +msgctxt "abbreviated month name" +msgid "May" +msgstr "Mai" + +#, fuzzy +msgctxt "abbreviated month name" msgid "Jun" msgstr "Juun" -msgctxt "GDateTime" +#, fuzzy +msgctxt "abbreviated month name" msgid "Jul" msgstr "Juul" -msgctxt "GDateTime" +#, fuzzy +msgctxt "abbreviated month name" msgid "Aug" msgstr "Aug" -msgctxt "GDateTime" +#, fuzzy +msgctxt "abbreviated month name" msgid "Sep" msgstr "Sept" -msgctxt "GDateTime" +#, fuzzy +msgctxt "abbreviated month name" msgid "Oct" msgstr "Okt" -msgctxt "GDateTime" +#, fuzzy +msgctxt "abbreviated month name" msgid "Nov" msgstr "Nov" -msgctxt "GDateTime" +#, fuzzy +msgctxt "abbreviated month name" msgid "Dec" msgstr "Dets" -msgctxt "GDateTime" +#, fuzzy +msgctxt "full weekday name" msgid "Monday" msgstr "Esmaspäev" -msgctxt "GDateTime" +#, fuzzy +msgctxt "full weekday name" msgid "Tuesday" msgstr "Teisipäev" -msgctxt "GDateTime" +#, fuzzy +msgctxt "full weekday name" msgid "Wednesday" msgstr "Kolmapäev" -msgctxt "GDateTime" +#, fuzzy +msgctxt "full weekday name" msgid "Thursday" msgstr "Neljapäev" -msgctxt "GDateTime" +#, fuzzy +msgctxt "full weekday name" msgid "Friday" msgstr "Reede" -msgctxt "GDateTime" +#, fuzzy +msgctxt "full weekday name" msgid "Saturday" msgstr "Laupäev" -msgctxt "GDateTime" +#, fuzzy +msgctxt "full weekday name" msgid "Sunday" msgstr "Pühapäev" -msgctxt "GDateTime" +#, fuzzy +msgctxt "abbreviated weekday name" msgid "Mon" msgstr "E" -msgctxt "GDateTime" +#, fuzzy +msgctxt "abbreviated weekday name" msgid "Tue" msgstr "T" -msgctxt "GDateTime" +#, fuzzy +msgctxt "abbreviated weekday name" msgid "Wed" msgstr "K" -msgctxt "GDateTime" +#, fuzzy +msgctxt "abbreviated weekday name" msgid "Thu" msgstr "N" -msgctxt "GDateTime" +#, fuzzy +msgctxt "abbreviated weekday name" msgid "Fri" msgstr "R" -msgctxt "GDateTime" +#, fuzzy +msgctxt "abbreviated weekday name" msgid "Sat" msgstr "L" -msgctxt "GDateTime" +#, fuzzy +msgctxt "abbreviated weekday name" msgid "Sun" msgstr "P" @@ -1841,6 +1888,216 @@ msgstr "Sokliaadressi jaoks ei ole piisavalt vaba ruumi" msgid "Unsupported socket address" msgstr "Toetamata sokliaadress" +#, 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." +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,237 +2412,148 @@ 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 "" -#, c-format -msgid "" -" is a list, extending which is not a list" +msgid "List the installed (non-relocatable) schemas" msgstr "" -#, c-format -msgid "" -" extends but '%s' " -"does not extend '%s'" +msgid "List the installed relocatable schemas" msgstr "" -#, c-format -msgid "a path, if given, must begin and end with a slash" +msgid "Lists the keys in SCHEMA" msgstr "" -#, c-format -msgid "<%s id='%s'> already specified" +msgid "SCHEMA[:PATH]" msgstr "" -#, c-format -msgid "Element <%s> not allowed inside <%s>" +msgid "Lists the children of SCHEMA" msgstr "" -#, c-format -msgid "Element <%s> not allowed at toplevel" +msgid "List keys and values, recursively" msgstr "" -#, c-format -msgid "text may not appear inside <%s>" +msgid "Gets the value of KEY" msgstr "" -#, c-format -msgid "No such schema `%s' specified in override file `%s'" +msgid "SCHEMA[:PATH] KEY" msgstr "" -#, c-format -msgid "No such key `%s' in schema `%s' as specified in override file `%s'" +msgid "Queries the range of valid values for KEY" msgstr "" -#, c-format -msgid "" -"override for key `%s' in schema `%s' in override file `%s' is out of the " -"range given in the schema" +msgid "Sets the value of KEY to VALUE" msgstr "" -#, c-format -msgid "" -"override for key `%s' in schema `%s' in override file `%s' is not in the " -"list of valid choices" +msgid "SCHEMA[:PATH] KEY VALUE" msgstr "" -msgid "where to store the gschemas.compiled file" +msgid "Resets KEY to its default value" 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" +msgid "Checks if KEY is writable" 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." +"Monitors KEY for changes.\n" +"If no KEY is specified, monitor all keys in SCHEMA.\n" +"Use ^C to stop monitoring.\n" msgstr "" -#, c-format -msgid "You should give exactly one directory name\n" +msgid "SCHEMA[:PATH] [KEY]" 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 +#, fuzzy, 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 "" - -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" -msgstr "" - -#, c-format -msgid "Key %s is not writable\n" -msgstr "Võti %s pole kirjutatav\n" - -msgid "Sets KEY to its default value" -msgstr "" - -msgid "Find out whether KEY is writable" -msgstr "" - -msgid "" -"Monitor KEY for changes and print the changed values.\n" -"Monitoring will continue until the process is terminated." -msgstr "" - -#, c-format -msgid "Unknown command '%s'\n" msgstr "Tundmatu käsk '%s'\n" +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 "" + +#, c-format +msgid "" +"Usage:\n" +" gsettings %s %s\n" +"\n" +"%s\n" +"\n" +msgstr "" + +msgid "Arguments:\n" +msgstr "" + +msgid "" +" 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 "Empty schema name given" +msgstr "" + msgid "Invalid socket, not initialized" msgstr "Vigane sokkel, käivitamata" @@ -2511,7 +2679,8 @@ msgid "The SOCKSv5 proxy requires authentication." msgstr "" 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 "" #, c-format @@ -2556,6 +2725,15 @@ msgstr "" 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 "" + +msgid "Could not parse PEM-encoded certificate" +msgstr "" + +msgid "Could not parse PEM-encoded private key" +msgstr "" + #, c-format msgid "Expecting 1 control message, got %d" msgstr "Eeldati ühte kontrollsõnumit, aga saadi %d" @@ -2665,6 +2843,9 @@ msgstr "Vaja on rohkem sisendit" msgid "Invalid compressed data" msgstr "Vigaselt pakitud andmed" +#~ msgid "Key %s is not writable\n" +#~ msgstr "Võti %s pole kirjutatav\n" + #, fuzzy #~ msgid "Do not give error for empty directory" #~ msgstr "Kataloogi pole võimalik kataloogi peale liigutada" From bc4e1fc622d0bc61f8978a6c3df98d6c0ab12226 Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Mon, 20 Dec 2010 09:16:05 -0500 Subject: [PATCH 044/130] Add a delay-apply property to GSettings Bug 637147, patch by Matt Barnes. --- gio/gsettings.c | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/gio/gsettings.c b/gio/gsettings.c index 58fe0fbb7..23164b5c7 100644 --- a/gio/gsettings.c +++ b/gio/gsettings.c @@ -222,6 +222,7 @@ enum PROP_BACKEND, PROP_PATH, PROP_HAS_UNAPPLIED, + PROP_DELAY_APPLY }; enum @@ -447,6 +448,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 (); } @@ -696,6 +701,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 */ @@ -1971,6 +1990,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"); } /** From 01ba7bd8e8984609d411b70a8ac9db4e8b64fb06 Mon Sep 17 00:00:00 2001 From: Cosimo Cecchi Date: Thu, 9 Dec 2010 18:31:19 +0100 Subject: [PATCH 045/130] emblemedicon: make GEmblemedIcon subclassable Hiding the object/class structs in the source file makes this class not subclassable. Move them to the public header, and add a property for the icon, so that subclasses can just use g_object_new (DERIVED_TYPE, "gicon", icon, NULL); to create an emblemed icon. https://bugzilla.gnome.org/show_bug.cgi?id=636892 --- gio/gemblemedicon.c | 119 ++++++++++++++++++++++++++++++++------------ gio/gemblemedicon.h | 14 ++++++ 2 files changed, 101 insertions(+), 32 deletions(-) diff --git a/gio/gemblemedicon.c b/gio/gemblemedicon.c index b7832c00e..89be5c320 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; } /** @@ -157,7 +212,7 @@ 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; } /** @@ -173,11 +228,11 @@ g_emblemed_icon_clear_emblems (GEmblemedIcon *emblemed) { g_return_if_fail (G_IS_EMBLEMED_ICON (emblemed)); - if (emblemed->emblems == NULL) + if (emblemed->priv->emblems == NULL) return; - g_list_free_full (emblemed->emblems, g_object_unref); - emblemed->emblems = NULL; + g_list_free_full (emblemed->priv->emblems, g_object_unref); + emblemed->priv->emblems = NULL; } static gint @@ -213,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 @@ -222,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; @@ -238,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) { @@ -274,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); @@ -326,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++) @@ -348,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 7eb99f06a..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; From 678bcad92c2a6350cd5dbf4ea3a567d99cf4c29d Mon Sep 17 00:00:00 2001 From: Cosimo Cecchi Date: Wed, 15 Dec 2010 17:56:22 +0100 Subject: [PATCH 046/130] appinfo: add g_app_info_set_as_last_used_for_type() This commit also changes (maintaining compatibility) the way user-specified default applications are stored (as in, those for which g_app_info_set_as_default_for_type() has been called. We now store the default application for a content type in a new group in the mimeapps.list keyfile, and "Added Associations" tracks only the applications that have been added by the user, following a most-recently-used first order. This is useful in GtkAppChooser-like widgets to pre-select the last used application when constructing a widget. https://bugzilla.gnome.org/show_bug.cgi?id=636311 --- docs/reference/gio/gio-sections.txt | 1 + gio/gappinfo.c | 27 +++ gio/gappinfo.h | 7 + gio/gdesktopappinfo.c | 291 ++++++++++++++++++++++------ gio/gio.symbols | 1 + gio/tests/desktop-app-info.c | 51 +++++ 6 files changed, 314 insertions(+), 64 deletions(-) diff --git a/docs/reference/gio/gio-sections.txt b/docs/reference/gio/gio-sections.txt index 431af131f..2facc2101 100644 --- a/docs/reference/gio/gio-sections.txt +++ b/docs/reference/gio/gio-sections.txt @@ -1256,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 diff --git a/gio/gappinfo.c b/gio/gappinfo.c index 755731e58..6f6375c4c 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: diff --git a/gio/gappinfo.h b/gio/gappinfo.h index a52e21644..11a4dad53 100644 --- a/gio/gappinfo.h +++ b/gio/gappinfo.h @@ -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/gdesktopappinfo.c b/gio/gdesktopappinfo.c index a7648c984..4f1cfe0e9 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)) @@ -1169,25 +1178,23 @@ 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; char **old_list, **list; - GList *system_list, *l; 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 +1218,51 @@ 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); } + 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); + + 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 +1274,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); @@ -1306,7 +1348,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 +1375,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 +1391,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 +1418,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 +1537,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 +1558,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 +1681,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 +1776,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 +1799,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 +1817,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 +1836,7 @@ g_app_info_get_recommended_for_type (const gchar *content_type) } g_list_free (desktop_entries); - + return g_list_reverse (infos); } @@ -1791,7 +1862,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 +1902,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 +1955,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); } /** @@ -1890,13 +1975,40 @@ 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 +2026,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; } @@ -2066,6 +2177,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 +2430,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 +2452,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 +2521,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 +2598,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 +2781,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 +2844,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 +2894,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/gio.symbols b/gio/gio.symbols index 4ae32eca9..dc030662e 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 diff --git a/gio/tests/desktop-app-info.c b/gio/tests/desktop-app-info.c index db9ec70a1..b9ae777a0 100644 --- a/gio/tests/desktop-app-info.c +++ b/gio/tests/desktop-app-info.c @@ -242,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) { @@ -319,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 (); From 1f9e34cab7b474a2b98c52d111a61f596ae33b58 Mon Sep 17 00:00:00 2001 From: Christian Dywan Date: Mon, 20 Dec 2010 17:15:15 +0100 Subject: [PATCH 047/130] Allow null object in g_simple_async_report_gerror_in_idle Follow-up on bug 636673. --- gio/gsimpleasyncresult.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gio/gsimpleasyncresult.c b/gio/gsimpleasyncresult.c index 458cf2e78..30d51237d 100644 --- a/gio/gsimpleasyncresult.c +++ b/gio/gsimpleasyncresult.c @@ -975,7 +975,7 @@ g_simple_async_report_error_in_idle (GObject *object, /** * g_simple_async_report_gerror_in_idle: - * @object: a #GObject. + * @object: (allow-none): a #GObject, or %NULL * @callback: a #GAsyncReadyCallback. * @user_data: user data passed to @callback. * @error: the #GError to report @@ -992,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, From 4e309043311487d66157383991373107eac1f7b9 Mon Sep 17 00:00:00 2001 From: Xavier Claessens Date: Fri, 30 Apr 2010 13:55:53 +0200 Subject: [PATCH 048/130] New API: g_sequence_lookup() and g_sequence_lookup_iter() Fixes bug #617254 --- docs/reference/glib/glib-sections.txt | 2 + glib/gsequence.c | 132 +++++++++++++++++++++++++- glib/gsequence.h | 8 ++ 3 files changed, 141 insertions(+), 1 deletion(-) diff --git a/docs/reference/glib/glib-sections.txt b/docs/reference/glib/glib-sections.txt index 6540fe8fa..05ba4f82a 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 diff --git a/glib/gsequence.c b/glib/gsequence.c index 8b28ce79a..5a55bee0f 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, @@ -779,6 +784,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 @@ -1006,6 +1051,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 +1644,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 +1702,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 */ From 50f96ae79b329154e55ac63b1ab8b0ff650bf871 Mon Sep 17 00:00:00 2001 From: Xavier Claessens Date: Fri, 10 Dec 2010 10:14:06 +0100 Subject: [PATCH 049/130] Add unit test for g_sequence_lookup() and g_sequence_lookup_iter(). --- glib/tests/sequence.c | 76 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 76 insertions(+) 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: From e666a2ed696a9545a23371b53c4a07471b635d5c Mon Sep 17 00:00:00 2001 From: Xavier Claessens Date: Fri, 10 Dec 2010 10:17:44 +0100 Subject: [PATCH 050/130] Add note in g_sequence_search() doc about g_sequence_lookup() --- glib/gsequence.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/glib/gsequence.c b/glib/gsequence.c index 5a55bee0f..40b3294d7 100644 --- a/glib/gsequence.c +++ b/glib/gsequence.c @@ -761,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. * @@ -1015,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. * From 6a10591573a56c5dfe1ac5b8315447f63d29dd39 Mon Sep 17 00:00:00 2001 From: Cosimo Cecchi Date: Mon, 20 Dec 2010 17:44:51 +0100 Subject: [PATCH 051/130] appinfo: avoid overriding the system defaults when adding support We want to be compatible with the following situation: - there's no explicit default set in mimeapps.list - we add support for a content type to a specific application, and that list is empty - the default should be picked from the system list, not overridden by the user-added application. So we make the default explicit in this case, by adding it to the relevant section in mimeapps.list. https://bugzilla.gnome.org/show_bug.cgi?id=637675 --- gio/gdesktopappinfo.c | 47 ++++++++++++++++++++++++++++++++++--------- 1 file changed, 38 insertions(+), 9 deletions(-) diff --git a/gio/gdesktopappinfo.c b/gio/gdesktopappinfo.c index 4f1cfe0e9..a9de892f4 100644 --- a/gio/gdesktopappinfo.c +++ b/gio/gdesktopappinfo.c @@ -1184,8 +1184,9 @@ update_mimeapps_list (const char *desktop_id, { char *dirname, *filename, *string; GKeyFile *key_file; - gboolean load_succeeded, res; + gboolean load_succeeded, res, explicit_default; char **old_list, **list; + GList *system_list; gsize length, data_size; char *data; int i, j, k; @@ -1221,6 +1222,8 @@ update_mimeapps_list (const char *desktop_id, 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 */ @@ -1245,10 +1248,14 @@ update_mimeapps_list (const char *desktop_id, content_types[k], NULL); else - g_key_file_set_string (key_file, - DEFAULT_APPLICATIONS_GROUP, - content_types[k], - string); + { + g_key_file_set_string (key_file, + DEFAULT_APPLICATIONS_GROUP, + content_types[k], + string); + + explicit_default = TRUE; + } g_free (string); } @@ -1319,10 +1326,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); } From 8d272eb662180fe60cfa566b669797a0b57cbf0d Mon Sep 17 00:00:00 2001 From: Xavier Claessens Date: Mon, 20 Dec 2010 18:44:49 +0100 Subject: [PATCH 052/130] Add g_sequence_lookup{_iter} into symbols --- glib/glib.symbols | 2 ++ 1 file changed, 2 insertions(+) diff --git a/glib/glib.symbols b/glib/glib.symbols index 9bb041919..0c4b0d142 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 From 30587a3a602fb0de2540ea220c1484763a18ff47 Mon Sep 17 00:00:00 2001 From: Xavier Claessens Date: Mon, 20 Dec 2010 18:52:44 +0100 Subject: [PATCH 053/130] Add io-stream in gitignore --- gio/tests/.gitignore | 1 + 1 file changed, 1 insertion(+) 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 From 8f5904ccbcd45d30a7ed6da4f0b8b8f0c221bb99 Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Mon, 20 Dec 2010 14:03:45 -0500 Subject: [PATCH 054/130] Update NEWS --- NEWS | 45 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) diff --git a/NEWS b/NEWS index 84cb200dd..dc9dd397f 100644 --- a/NEWS +++ b/NEWS @@ -1,3 +1,48 @@ +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 ============================================== From dce0c1c56388033b37a25f4d065383655ae8d9c9 Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Mon, 20 Dec 2010 16:47:10 -0500 Subject: [PATCH 055/130] Bump version --- configure.ac | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/configure.ac b/configure.ac index 791a0c247..711401485 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], [6]) m4_define([glib_interface_age], [0]) m4_define([glib_binary_age], [m4_eval(100 * glib_minor_version + glib_micro_version)]) From 99fe4b1da7560e1df2d9352ddbd845a5d9a62429 Mon Sep 17 00:00:00 2001 From: Ryan Lortie Date: Sat, 18 Dec 2010 18:52:32 -0500 Subject: [PATCH 056/130] Bug 637544 - Skip fsync() on btrfs For g_file_set_contents() we fsync() before renaming the file over the original in order to ensure that we don't end up with an invalid file. btrfs provides this guarantee for us without the fsync() so skip it there. --- glib/gfileutils.c | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/glib/gfileutils.c b/glib/gfileutils.c index 185a756dc..fff6492a6 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 __linux__ + { + 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) From 12cf4af5bbdfaf5abde1e3eaaba6df85edc7419b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nguy=E1=BB=85n=20Th=C3=A1i=20Ng=E1=BB=8Dc=20Duy?= Date: Tue, 21 Dec 2010 19:50:33 +0700 Subject: [PATCH 057/130] gio: typo fix --- gio/gsocks5proxy.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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; } From 56de8a1ce059adaa5a050d9dc75646c12340f838 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nguy=E1=BB=85n=20Th=C3=A1i=20Ng=E1=BB=8Dc=20Duy?= Date: Mon, 20 Dec 2010 17:39:39 +0700 Subject: [PATCH 058/130] po/vi.po: import from Damned Lies --- po/vi.po | 2934 +++++++++++++++++++++++++++++++++++------------------- 1 file changed, 1925 insertions(+), 1009 deletions(-) diff --git a/po/vi.po b/po/vi.po index 52c49e5fa..1e2c8ff38 100644 --- a/po/vi.po +++ b/po/vi.po @@ -7,8 +7,9 @@ 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" +"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-20 17:25+0700\n" "Last-Translator: Clytie Siddall \n" "Language-Team: Vietnamese \n" @@ -18,336 +19,564 @@ 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ợ 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ở 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 "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 "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 "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 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 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 "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 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 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 một đường dẫn tuyệt đối" -#: glib/gconvert.c:1911 +#: ../glib/gconvert.c:2041 msgid "Invalid hostname" 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 "" + +#. Translators: 'before midday' indicator +#: ../glib/gdatetime.c:151 +msgctxt "GDateTime" +msgid "AM" +msgstr "" + +#. Translators: 'after midday' indicator +#: ../glib/gdatetime.c:153 +msgctxt "GDateTime" +msgid "pm" +msgstr "" + +#. Translators: 'after midday' indicator +#: ../glib/gdatetime.c:155 +msgctxt "GDateTime" +msgid "PM" +msgstr "" + +#. Translators: this is the preferred format for expressing the date +#: ../glib/gdatetime.c:164 +msgctxt "GDateTime" +msgid "%m/%d/%y" +msgstr "" + +#. Translators: this is the preferred format for expressing the time +#: ../glib/gdatetime.c:167 +msgctxt "GDateTime" +msgid "%H:%M:%S" +msgstr "" + +#: ../glib/gdatetime.c:193 +msgctxt "full month name" +msgid "January" +msgstr "" + +#: ../glib/gdatetime.c:195 +msgctxt "full month name" +msgid "February" +msgstr "" + +#: ../glib/gdatetime.c:197 +msgctxt "full month name" +msgid "March" +msgstr "" + +#: ../glib/gdatetime.c:199 +msgctxt "full month name" +msgid "April" +msgstr "" + +#: ../glib/gdatetime.c:201 +msgctxt "full month name" +msgid "May" +msgstr "" + +#: ../glib/gdatetime.c:203 +msgctxt "full month name" +msgid "June" +msgstr "" + +#: ../glib/gdatetime.c:205 +msgctxt "full month name" +msgid "July" +msgstr "" + +#: ../glib/gdatetime.c:207 +msgctxt "full month name" +msgid "August" +msgstr "" + +#: ../glib/gdatetime.c:209 +msgctxt "full month name" +msgid "September" +msgstr "" + +#: ../glib/gdatetime.c:211 +msgctxt "full month name" +msgid "October" +msgstr "" + +#: ../glib/gdatetime.c:213 +msgctxt "full month name" +msgid "November" +msgstr "" + +#: ../glib/gdatetime.c:215 +msgctxt "full month name" +msgid "December" +msgstr "" + +#: ../glib/gdatetime.c:230 +msgctxt "abbreviated month name" +msgid "Jan" +msgstr "" + +#: ../glib/gdatetime.c:232 +msgctxt "abbreviated month name" +msgid "Feb" +msgstr "" + +#: ../glib/gdatetime.c:234 +msgctxt "abbreviated month name" +msgid "Mar" +msgstr "" + +#: ../glib/gdatetime.c:236 +msgctxt "abbreviated month name" +msgid "Apr" +msgstr "" + +#: ../glib/gdatetime.c:238 +msgctxt "abbreviated month name" +msgid "May" +msgstr "" + +#: ../glib/gdatetime.c:240 +msgctxt "abbreviated month name" +msgid "Jun" +msgstr "" + +#: ../glib/gdatetime.c:242 +msgctxt "abbreviated month name" +msgid "Jul" +msgstr "" + +#: ../glib/gdatetime.c:244 +msgctxt "abbreviated month name" +msgid "Aug" +msgstr "" + +#: ../glib/gdatetime.c:246 +msgctxt "abbreviated month name" +msgid "Sep" +msgstr "" + +#: ../glib/gdatetime.c:248 +msgctxt "abbreviated month name" +msgid "Oct" +msgstr "" + +#: ../glib/gdatetime.c:250 +msgctxt "abbreviated month name" +msgid "Nov" +msgstr "" + +#: ../glib/gdatetime.c:252 +msgctxt "abbreviated month name" +msgid "Dec" +msgstr "" + +#: ../glib/gdatetime.c:267 +msgctxt "full weekday name" +msgid "Monday" +msgstr "" + +#: ../glib/gdatetime.c:269 +msgctxt "full weekday name" +msgid "Tuesday" +msgstr "" + +#: ../glib/gdatetime.c:271 +msgctxt "full weekday name" +msgid "Wednesday" +msgstr "" + +#: ../glib/gdatetime.c:273 +msgctxt "full weekday name" +msgid "Thursday" +msgstr "" + +#: ../glib/gdatetime.c:275 +msgctxt "full weekday name" +msgid "Friday" +msgstr "" + +#: ../glib/gdatetime.c:277 +msgctxt "full weekday name" +msgid "Saturday" +msgstr "" + +#: ../glib/gdatetime.c:279 +msgctxt "full weekday name" +msgid "Sunday" +msgstr "" + +#: ../glib/gdatetime.c:294 +msgctxt "abbreviated weekday name" +msgid "Mon" +msgstr "" + +#: ../glib/gdatetime.c:296 +msgctxt "abbreviated weekday name" +msgid "Tue" +msgstr "" + +#: ../glib/gdatetime.c:298 +msgctxt "abbreviated weekday name" +msgid "Wed" +msgstr "" + +#: ../glib/gdatetime.c:300 +msgctxt "abbreviated weekday name" +msgid "Thu" +msgstr "" + +#: ../glib/gdatetime.c:302 +msgctxt "abbreviated weekday name" +msgid "Fri" +msgstr "" + +#: ../glib/gdatetime.c:304 +msgctxt "abbreviated weekday name" +msgid "Sat" +msgstr "" + +#: ../glib/gdatetime.c:306 +msgctxt "abbreviated weekday name" +msgid "Sun" +msgstr "" + +#: ../glib/gdir.c:115 ../glib/gdir.c:138 #, c-format msgid "Error opening directory '%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 bytes để đọc tập tin \"%s\"" -#: glib/gfileutils.c:551 +#: ../glib/gfileutils.c:551 #, c-format msgid "Error reading file '%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 "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 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 "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 "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 "" "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 "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 "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 "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 "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 »: « 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 "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] "%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ợ 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 đọ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 "Để 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 đọ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 "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 "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 " @@ -356,7 +585,7 @@ msgstr "" "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 " @@ -366,24 +595,24 @@ msgstr "" "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ự cho phép." -#: glib/gmarkup.c:654 +#: ../glib/gmarkup.c:658 msgid "" "Empty entity '&;' seen; valid entities are: & " < > '" msgstr "" "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 &" @@ -391,11 +620,11 @@ msgstr "" "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 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 " @@ -404,7 +633,7 @@ msgstr "" "'%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 '%" @@ -412,13 +641,13 @@ 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 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 " @@ -429,7 +658,7 @@ msgstr "" "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 " @@ -438,7 +667,7 @@ msgstr "" "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 ''" -#: glib/gmarkup.c:1472 +#: ../glib/gmarkup.c:1476 #, c-format msgid "Element '%s' was closed, no element is currently open" 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 "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 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 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 " @@ -484,7 +713,7 @@ msgstr "" "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 " @@ -493,19 +722,19 @@ msgstr "" "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 đượ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 đượ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 đượ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" @@ -513,398 +742,400 @@ msgstr "" "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 đượ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 đượ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 đượ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 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 đượ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 "" "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 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 "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 "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 "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 "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 "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ệ 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ệ 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 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" @@ -912,136 +1143,136 @@ msgstr "" "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 "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 "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 "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 "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 "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 "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 "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 "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 "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ự 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 "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ự 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 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." -#: 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" -#: 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." -#: 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." -#: glib/gkeyfile.c:406 +#: ../glib/gkeyfile.c:405 msgid "File is empty" 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" @@ -1049,54 +1280,54 @@ msgstr "" "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." -#: 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 »." -#: 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 »." -#: 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 »." -#: 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 » 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 » 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 " @@ -1105,520 +1336,680 @@ msgstr "" "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 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 dòng." -#: glib/gkeyfile.c:3659 +#: ../glib/gkeyfile.c:3658 #, c-format msgid "Key file contains invalid escape sequence '%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" -#: 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 "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 "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 +#: ../gio/gdbusaddress.c:142 ../gio/gdbusaddress.c:230 +#: ../gio/gdbusaddress.c:304 #, c-format msgid "Unsupported key `%s' in address entry `%s'" 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)" +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 "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 "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 "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 "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 "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 "" + +#: ../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'" +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 "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 "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 "Lỗi ở địa chỉ `%s' - thuộc tính noncefile thiếu hoặc bị hư" -#: gio/gdbusaddress.c:601 +#: ../gio/gdbusaddress.c:632 +#, fuzzy +#| msgid "Error connecting: " +msgid "Error auto-launching: " +msgstr "Lỗi kết nối: " + +#: ../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" +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 -#, c-format -msgid "Error reading nonce file `%s':" +#: ../gio/gdbusaddress.c:676 +#, fuzzy, c-format +#| msgid "Error opening file '%s': %s" +msgid "Error opening nonce file `%s': %s" +msgstr "Gặp lỗi khi mở tập tin '%s': %s" + +#: ../gio/gdbusaddress.c:694 +#, fuzzy, c-format +#| msgid "Error reading nonce file `%s':" +msgid "Error reading from nonce file `%s': %s" msgstr "Gặp lỗi khi đọc tập tin '%s':" -#: gio/gdbusaddress.c:646 -msgid "The nonce-file `%s' was %" -msgstr "nonce-file `%s' là %" +#: ../gio/gdbusaddress.c:703 +#, fuzzy, 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 tập tin '%s':" -#: gio/gdbusaddress.c:662 -#, c-format -msgid "Error write contents of nonce file `%s' to stream:" +#: ../gio/gdbusaddress.c:721 +#, fuzzy, 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:978 -#, c-format -msgid "" -"Cannot determine session bus address (TODO: run dbus-launch to find out)" -msgstr "Không thể xác định địa chỉ tuyến phiên làm việc (TODO: chạy dbus-launch để tìm ra)" +#: ../gio/gdbusaddress.c:939 +msgid "The given address is empty" +msgstr "" -#: gio/gdbusaddress.c:1002 gio/gdbusconnection.c:5309 +#: ../gio/gdbusaddress.c:1008 +msgid "Cannot spawn a message bus without a machine-id: " +msgstr "" + +#: ../gio/gdbusaddress.c:1045 +#, fuzzy, c-format +#| msgid "Error reading nonce file `%s':" +msgid "Error spawning command line `%s': " +msgstr "Gặp lỗi khi đọc tập tin '%s':" + +#: ../gio/gdbusaddress.c:1056 +#, c-format +msgid "Abnormal program termination spawning command line `%s': %s" +msgstr "" + +#: ../gio/gdbusaddress.c:1070 +#, c-format +msgid "Command line `%s' exited with non-zero exit status %d: %s" +msgstr "" + +#: ../gio/gdbusaddress.c:1143 +#, fuzzy, 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 (TODO: chạy dbus-launch để " +"tìm ra)" + +#: ../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'" +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" +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 +#: ../gio/gdbusaddress.c:1261 #, c-format msgid "Unknown bus type %d" 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 "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 "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 "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 "Đã huỷ thông qua GDBusAuthObserver::authorize-authenticated-peer" -#: gio/gdbusauthmechanismsha1.c:264 +#: ../gio/gdbusauthmechanismsha1.c:266 #, c-format msgid "Error statting directory `%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." +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 +#: ../gio/gdbusauthmechanismsha1.c:299 #, c-format msgid "Error creating directory `%s': %s" msgstr "Lỗi tạo thư mục `%s': %s" -#: gio/gdbusauthmechanismsha1.c:378 +#: ../gio/gdbusauthmechanismsha1.c:382 #, c-format msgid "Error opening keyring `%s' for reading: " 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 "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ư" +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 "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 "Không tìm thấy cookie với id %d trong keyring ở `%s'" -#: gio/gdbusauthmechanismsha1.c:531 -#, c-format -msgid "Error deleting stale lock-file `%s': %s" +#: ../gio/gdbusauthmechanismsha1.c:535 +#, fuzzy, 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 -#, c-format -msgid "Error creating lock-file `%s': %s" +#: ../gio/gdbusauthmechanismsha1.c:566 +#, fuzzy, 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 -#, c-format -msgid "Error closing (unlinked) lock-file `%s': %s" +#: ../gio/gdbusauthmechanismsha1.c:596 +#, fuzzy, 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 -#, c-format -msgid "Error unlinking lock-file `%s': %s" +#: ../gio/gdbusauthmechanismsha1.c:606 +#, fuzzy, 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 +#: ../gio/gdbusauthmechanismsha1.c:682 #, c-format msgid "Error opening keyring `%s' for writing: " 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 "(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 +#: ../gio/gdbusconnection.c:1148 ../gio/gdbusconnection.c:1374 +#: ../gio/gdbusconnection.c:1413 ../gio/gdbusconnection.c:1737 msgid "The connection is closed" msgstr "Kết nối đã đóng" -#: gio/gdbusconnection.c:1256 +#: ../gio/gdbusconnection.c:1681 msgid "Timeout was reached" msgstr "Quá hạn" -#: gio/gdbusconnection.c:1757 +#: ../gio/gdbusconnection.c:2300 msgid "" "Unsupported flags encountered when constructing a client-side connection" 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 +#, fuzzy, 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 `%s' 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 "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 "Không có thuộc tính `%s'" -#: gio/gdbusconnection.c:3262 +#: ../gio/gdbusconnection.c:3931 #, c-format msgid "Property `%s' is not readable" msgstr "Thuộc tính `%s' không đọc được" -#: gio/gdbusconnection.c:3273 +#: ../gio/gdbusconnection.c:3942 #, c-format msgid "Property `%s' is not writable" 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 "Không có giao diện `%s'" -#: gio/gdbusconnection.c:3504 +#: ../gio/gdbusconnection.c:4200 msgid "No such interface" msgstr "Không có giao diện như vậy" -#: gio/gdbusconnection.c:3748 -#, c-format -msgid "No such method `%s'" -msgstr "Không có phương thức `%s'" - -#: gio/gdbusconnection.c:3779 -#, 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:3993 -#, 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:4173 -#, 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:4866 -#, 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:4981 -#, c-format -msgid "A subtree is already exported for %s" -msgstr "Cây con đã được xuất cho %s" - -#: gio/gdbusconnection.c:5089 -#, c-format -msgid "Unable to load /var/lib/dbus/machine-id: %s" -msgstr "Không thể nạp /var/lib/dbus/machine-id: %s" - -#: 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 "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 %" +#: ../gio/gdbusconnection.c:4468 +#, c-format +msgid "No such method `%s'" +msgstr "Không có phương thức `%s'" + +#: ../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 "" + +#: ../gio/gdbusmessage.c:867 +msgid "METHOD_CALL message: PATH or MEMBER header field is missing" +msgstr "" + +#: ../gio/gdbusmessage.c:878 +msgid "METHOD_RETURN message: REPLY_SERIAL header field is missing" +msgstr "" + +#: ../gio/gdbusmessage.c:890 +msgid "ERROR message: REPLY_SERIAL or ERROR_NAME header field is missing" +msgstr "" + +#: ../gio/gdbusmessage.c:903 +msgid "SIGNAL message: PATH, INTERFACE or MEMBER header field is missing" +msgstr "" + +#: ../gio/gdbusmessage.c:911 +msgid "" +"SIGNAL message: The PATH header field is using the reserved value /org/" +"freedesktop/DBus/Local" +msgstr "" + +#: ../gio/gdbusmessage.c:919 +msgid "" +"SIGNAL message: The INTERFACE header field is using the reserved value org." +"freedesktop.DBus.Local" +msgstr "" + +#: ../gio/gdbusmessage.c:994 +#, fuzzy, c-format +#| msgid "Wanted to read %" +msgid "Wanted to read %lu bytes but got EOF" msgstr "Muốn đọc %s" -#: gio/gdbusmessage.c:744 +#: ../gio/gdbusmessage.c:1019 #, c-format -msgid "Expected NUL byte after the string `%s' but found `%c' (%d)" +msgid "" +"Expected valid UTF-8 string but found invalid bytes at byte offset %d " +"(length of string is %d). The valid UTF-8 string up until that point was `%s'" +msgstr "" + +#: ../gio/gdbusmessage.c:1032 +#, fuzzy, 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 `%c' (%d)" -#: gio/gdbusmessage.c:927 +#: ../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ệ" +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 +#: ../gio/gdbusmessage.c:1257 #, c-format msgid "Parsed value `%s' is not a valid D-Bus signature" 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 "Bắt gặp mảng dài %" - -#: gio/gdbusmessage.c:1116 -#, 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:1311 #, c-format msgid "" -"Error deserializing GVariant with type-string `%s' from the D-Bus wire format" +"Encountered array of length %u bytes. Maximum length is 2<<26 bytes (64 MiB)." +msgstr "" + +#: ../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:1499 +#, fuzzy, 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 "Lỗi thôi tuần tự hoá GVariant với kiểu chuỗi `%s' từ D-Bus" -#: gio/gdbusmessage.c:1286 -#, c-format -msgid "Invalid endianness value. Expected 'l' or 'B' but found '%c' (%d)" -msgstr "Giá trị endianness không hợp lệ. Chờ 'l' hoặc 'B' nhưng nhận được '%c' (%d)" +#: ../gio/gdbusmessage.c:1683 +#, fuzzy, c-format +#| 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ờ 'l' hoặc 'B' nhưng nhận được '%c' (%d)" -#: gio/gdbusmessage.c:1300 +#: ../gio/gdbusmessage.c:1697 #, c-format msgid "Invalid major protocol version. Expected 1 but found %d" 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 "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)" +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 "Không có header ký hiệu trong thông điệp, nhưng phần thân thông điệp là %" +#: ../gio/gdbusmessage.c:1798 +#, fuzzy, c-format +#| 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 là %" -#: gio/gdbusmessage.c:1694 -#, c-format +#: ../gio/gdbusmessage.c:1806 +msgid "Cannot deserialize message: " +msgstr "" + +#: ../gio/gdbusmessage.c:2131 +#, fuzzy, 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" +"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:1823 +#: ../gio/gdbusmessage.c:2272 #, c-format msgid "Message has %d fds but the header field indicates %d fds" 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 "" + +#: ../gio/gdbusmessage.c:2324 #, c-format msgid "Message body has signature `%s' but there is no signature header" 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 "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 "Thân thông điệp trống rỗng như ký hiệu trong header là `(%s)'" -#: gio/gdbusmessage.c:2448 +#: ../gio/gdbusmessage.c:2907 #, c-format msgid "Error return with body of type `%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 "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 "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 "Lỗi ghi 16 byte đầu tiên của thông điệp vào socket: " +#: ../gio/gdbusprivate.c:1768 +#, fuzzy +#| 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: %s" -#: 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" +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 +#: ../gio/gdbusproxy.c:1234 +#, c-format +msgid "Error calling StartServiceByName for %s: " +msgstr "" + +#: ../gio/gdbusproxy.c:1255 +#, c-format +msgid "Unexpected reply %d from StartServiceByName(\"%s\") method" +msgstr "" + +#: ../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 "" + +#: ../gio/gdbusserver.c:715 msgid "Abstract name space not supported" 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 "Không thể xác định nonce-file khi tạo máy chủ" -#: gio/gdbusserver.c:836 +#: ../gio/gdbusserver.c:882 #, c-format msgid "Error writing nonce file at `%s': %s" msgstr "Lỗi ghi nonce-file tại `%s': %s" -#: gio/gdbusserver.c:988 +#: ../gio/gdbusserver.c:1044 #, c-format msgid "The string `%s' is not a valid D-Bus GUID" 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 "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 "LỆNH" -#: gio/gdbus-tool.c:92 +#: ../gio/gdbus-tool.c:92 #, c-format msgid "" "Commands:\n" @@ -1637,228 +2028,236 @@ msgstr "" "\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 +#: ../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: %s\n" -#: gio/gdbus-tool.c:171 gio/gdbus-tool.c:229 gio/gdbus-tool.c:1332 +#: ../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 "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 "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 "Không thể kết nối vào tuyến phiên làm việc" -#: gio/gdbus-tool.c:348 +#: ../gio/gdbus-tool.c:348 msgid "Connect to given D-Bus address" msgstr "Kết nối đến địa chỉ D-Bus đã cho" -#: gio/gdbus-tool.c:358 +#: ../gio/gdbus-tool.c:358 msgid "Connection Endpoint Options:" 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 "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 "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 "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 "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" +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 "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 "Đườ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 "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 "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 +#: ../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\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 "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 "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 +#: ../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 "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 "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 "Lỗi: tên phương thức `%s' không hợp lệ\n" -#: gio/gdbus-tool.c:778 +#: ../gio/gdbus-tool.c:778 #, c-format msgid "Error parsing parameter %d of type `%s': %s\n" msgstr "Lỗi phân tích tham số %d kiểu `%s': %s\n" -#: gio/gdbus-tool.c:786 +#: ../gio/gdbus-tool.c:786 #, c-format msgid "Error parsing parameter %d: %s\n" 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 "Tên đích cần xem xét" -#: gio/gdbus-tool.c:1162 +#: ../gio/gdbus-tool.c:1163 msgid "Object path to introspect" 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 "" + +#: ../gio/gdbus-tool.c:1197 msgid "Introspect a remote object." 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 "Tên đích cần theo dõi" -#: gio/gdbus-tool.c:1414 +#: ../gio/gdbus-tool.c:1424 msgid "Object path to monitor" msgstr "Đường dẫn đối tượng cần theo dõi" -#: gio/gdbus-tool.c:1447 +#: ../gio/gdbus-tool.c:1457 msgid "Monitor a remote object." 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ợ" @@ -1870,137 +2269,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" @@ -2010,450 +2409,259 @@ 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 -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/glib-compile-schemas.c:713 +#, fuzzy +#| msgid "Abstract name space not supported" +msgid "empty names are not permitted" +msgstr "Không hỗ trợ vùng tên tổng quát" -#: gio/glocalfile.c:594 gio/win32/gwinhttpfile.c:424 +#: ../gio/glib-compile-schemas.c:723 #, c-format -msgid "Invalid filename %s" -msgstr "Tên tập tin không hợp lệ: %s" +msgid "invalid name '%s': names must begin with a lowercase letter" +msgstr "" -#: gio/glocalfile.c:968 +#: ../gio/glib-compile-schemas.c:735 #, 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" +msgid "" +"invalid name '%s': invalid character '%c'; only lowercase letters, numbers " +"and dash ('-') are permitted." +msgstr "" -#: gio/glocalfile.c:1106 -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/glib-compile-schemas.c:744 #, c-format -msgid "Error renaming file: %s" -msgstr "Gặp lỗi khi thay đổi tên của tập tin: %s" +msgid "invalid name '%s': two successive dashes ('--') are not permitted." +msgstr "" -#: gio/glocalfile.c:1135 -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 -msgid "Invalid filename" -msgstr "Tên tập tin không hợp lệ" - -#: gio/glocalfile.c:1309 +#: ../gio/glib-compile-schemas.c:753 #, c-format -msgid "Error opening file: %s" -msgstr "Gặp lỗi khi mở tập tin: %s" +msgid "invalid name '%s': the last character may not be a dash ('-')." +msgstr "" -#: gio/glocalfile.c:1319 -msgid "Can't open directory" -msgstr "Không thể mở thư mục" - -#: gio/glocalfile.c:1444 +#: ../gio/glib-compile-schemas.c:761 #, c-format -msgid "Error removing file: %s" -msgstr "Gặp lỗi khi gỡ bỏ tập tin: %s" +msgid "invalid name '%s': maximum length is 32" +msgstr "" -#: gio/glocalfile.c:1811 +#: ../gio/glib-compile-schemas.c:830 #, 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" +msgid " already specified" +msgstr "" -#: gio/glocalfile.c:1834 +#: ../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 "Unable to create trash dir %s: %s" -msgstr "Không thể tạo thư mục sọt rác %s: %s" +msgid " already specified" +msgstr "" -#: gio/glocalfile.c:1855 -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 -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/glib-compile-schemas.c:885 #, 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" +msgid "" +" shadows in ; use " +"to modify value" +msgstr "" -#: gio/glocalfile.c:2017 gio/glocalfile.c:2022 gio/glocalfile.c:2102 -#: gio/glocalfile.c:2109 +#: ../gio/glib-compile-schemas.c:896 #, c-format -msgid "Unable to trash file: %s" -msgstr "Không thể chuyển tập tin vào sọt rác: %s" +msgid "" +"exactly one of 'type', 'enum' or 'flags' must be specified as an attribute " +"to " +msgstr "" -#: gio/glocalfile.c:2136 +#: ../gio/glib-compile-schemas.c:915 #, c-format -msgid "Error creating directory: %s" -msgstr "Lỗi tạo thư mục: %s" +msgid "<%s id='%s'> not (yet) defined." +msgstr "" -#: gio/glocalfile.c:2165 -#, 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 -#, 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 -#, c-format -msgid "Error moving file: %s" -msgstr "Gặp lỗi khi di chuyển tập tin: %s" - -#: gio/glocalfile.c:2254 -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 -msgid "Backup file creation failed" -msgstr "Lỗi tạo tập tin sao lưu" - -#: gio/glocalfile.c:2300 -#, 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 -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 -msgid "Attribute value must be non-NULL" -msgstr "Giá trị thuộc tính phải có giá trị" - -#: gio/glocalfileinfo.c:728 -msgid "Invalid attribute type (string expected)" +#: ../gio/glib-compile-schemas.c:930 +#, fuzzy, c-format +#| msgid "Invalid attribute type (string expected)" +msgid "invalid GVariant type string '%s'" msgstr "Kiểu thuộc tính không hợp lệ (mong đợi chuỗi)" -#: gio/glocalfileinfo.c:735 -msgid "Invalid extended attribute name" -msgstr "Tên thuộc tính đã mở rộng không hợp lệ" - -#: gio/glocalfileinfo.c:775 -#, 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 -#, 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 -msgid " (invalid encoding)" -msgstr " (bảng mã không hợp lệ)" - -#: gio/glocalfileinfo.c:1750 -#, 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 -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 -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 -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 -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 -#, c-format -msgid "Error setting permissions: %s" -msgstr "Gặp lỗi khi đặt quyền hạn: %s" - -#: gio/glocalfileinfo.c:1953 -#, c-format -msgid "Error setting owner: %s" -msgstr "Gặp lỗi khi đặt người sở hữu : %s" - -#: gio/glocalfileinfo.c:1976 -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 -#, 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 -msgid "Error setting symlink: file is not a symlink" +#: ../gio/glib-compile-schemas.c:960 +msgid " given but schema isn't extending anything" 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/glib-compile-schemas.c:973 #, 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" +msgid "no to override" +msgstr "" -#: gio/glocalfileinfo.c:2144 -msgid "SELinux context must be non-NULL" -msgstr "Ngữ cảnh SELinux phải khác NULL" - -#: gio/glocalfileinfo.c:2159 +#: ../gio/glib-compile-schemas.c:981 #, c-format -msgid "Error setting SELinux context: %s" -msgstr "Lỗi đặt ngữ cảnh SELinux: %s" +msgid " already specified" +msgstr "" -#: gio/glocalfileinfo.c:2166 -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/glib-compile-schemas.c:1052 #, c-format -msgid "Setting attribute %s not supported" -msgstr "Không hỗ trợ chức năng đặt thuộc tính %s" +msgid " already specified" +msgstr "" -#: gio/glocalfileinputstream.c:184 gio/glocalfileoutputstream.c:721 +#: ../gio/glib-compile-schemas.c:1064 #, c-format -msgid "Error reading from file: %s" -msgstr "Gặp lỗi khi đọc từ tập tin: %s" +msgid " extends not yet existing schema '%s'" +msgstr "" -#: gio/glocalfileinputstream.c:215 gio/glocalfileinputstream.c:227 -#: gio/glocalfileinputstream.c:339 gio/glocalfileoutputstream.c:469 -#: gio/glocalfileoutputstream.c:1025 +#: ../gio/glib-compile-schemas.c:1080 #, c-format -msgid "Error seeking in file: %s" -msgstr "Gặp lỗi khi tìm nơi trong tập tin: %s" +msgid " is list of not yet existing schema '%s'" +msgstr "" -#: gio/glocalfileinputstream.c:260 gio/glocalfileoutputstream.c:255 -#: gio/glocalfileoutputstream.c:350 +#: ../gio/glib-compile-schemas.c:1088 #, c-format -msgid "Error closing file: %s" -msgstr "Gặp lỗi khi đóng tập tin: %s" +msgid "Can not be a list of a schema with a path" +msgstr "" -#: gio/glocalfilemonitor.c:213 -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/glib-compile-schemas.c:1098 #, c-format -msgid "Error writing to file: %s" -msgstr "Gặp lỗi khi ghi vào tập tin: %s" +msgid "Can not extend a schema with a path" +msgstr "" -#: gio/glocalfileoutputstream.c:282 +#: ../gio/glib-compile-schemas.c:1108 #, 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 -#, 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 -#, 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 -#, 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 -#, c-format -msgid "Error opening file '%s': %s" -msgstr "Gặp lỗi khi mở tập tin '%s': %s" - -#: gio/glocalfileoutputstream.c:845 -msgid "Target file is a directory" -msgstr "Tập tin đích là một thư mục" - -#: gio/glocalfileoutputstream.c:850 -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 -msgid "The file was externally modified" -msgstr "Tập tin đã bị sửa đổi bên ngoài" - -#: gio/glocalfileoutputstream.c:1041 -#, 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 -msgid "Invalid GSeekType supplied" -msgstr "GSeekType được cung cấp không hợp lệ" - -#: gio/gmemoryinputstream.c:497 -msgid "Invalid seek request" -msgstr "Yêu cầu tìm không hợp lệ" - -#: gio/gmemoryinputstream.c:521 -msgid "Cannot truncate GMemoryInputStream" -msgstr "Không thể cắt GMemoryInputStream" - -#: gio/gmemoryoutputstream.c:468 -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 -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 msgid "" -"Amount of memory required to process the write is larger than available " -"address space" +" is a list, extending which is not a list" 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 -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 -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 -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 -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 -msgid "mount doesn't implement \"unmount\" or \"unmount_with_operation\"" +#: ../gio/glib-compile-schemas.c:1118 +#, c-format +msgid "" +" extends but '%s' " +"does not extend '%s'" msgstr "" -"hàm mount (lắp) không thực hiện hàm \"unmount\" hoặc \"unmount_with_operation" -"\" (bỏ lắp)" -#. Translators: This is an error -#. * message for mount objects that -#. * don't implement any of eject or eject_with_operation. -#: gio/gmount.c:610 -msgid "mount doesn't implement \"eject\" or \"eject_with_operation\"" +#: ../gio/glib-compile-schemas.c:1135 +#, c-format +msgid "a path, if given, must begin and end with a slash" msgstr "" -"hàm mount (lắp) không thực hiện hàm \"eject\" hoặc \"eject_with_operation" -"\" (đầy ra)" -#. Translators: This is an error -#. * message for mount objects that -#. * don't implement remount. -#: gio/gmount.c:699 -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 -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 -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/glib-compile-schemas.c:1142 #, c-format -msgid "Hostname '%s' contains '[' but not ']'" -msgstr "Tên máy '%s' có '[' nhưng không có ']'" +msgid "the path of a list must end with ':/'" +msgstr "" -#: 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 -msgid "Source stream is already closed" -msgstr "Luồng nguồn đã bị đóng" - -#: gio/gresolver.c:736 +#: ../gio/glib-compile-schemas.c:1168 #, c-format -msgid "Error resolving '%s': %s" -msgstr "Lỗi phân giải '%s': %s" +msgid "<%s id='%s'> already specified" +msgstr "" -#: gio/gresolver.c:786 +#: ../gio/glib-compile-schemas.c:1387 #, c-format -msgid "Error reverse-resolving '%s': %s" -msgstr "Lỗi phân giải ngược '%s': %s" +msgid "Element <%s> not allowed inside <%s>" +msgstr "" -#: gio/gresolver.c:821 gio/gresolver.c:899 +#: ../gio/glib-compile-schemas.c:1391 #, c-format -msgid "No service record for '%s'" -msgstr "Không có bản ghi dịch vụ (service record) cho '%s'" +msgid "Element <%s> not allowed at toplevel" +msgstr "" -#: gio/gresolver.c:826 gio/gresolver.c:904 +#: ../gio/glib-compile-schemas.c:1485 #, c-format -msgid "Temporarily unable to resolve '%s'" -msgstr "Tạm thời không thể phân giải '%s'" +msgid "text may not appear inside <%s>" +msgstr "" -#: gio/gresolver.c:831 gio/gresolver.c:909 +#. 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 "Error resolving '%s'" -msgstr "Lỗi phân giải '%s'" +msgid "--strict was specified; exiting.\n" +msgstr "" -#: gio/gschema-compile.c:659 +#: ../gio/glib-compile-schemas.c:1662 +#, c-format +msgid "This entire file has been ignored.\n" +msgstr "" + +#: ../gio/glib-compile-schemas.c:1721 +#, c-format +msgid "Ignoring this file.\n" +msgstr "" + +#: ../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 "" + +#: ../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 "nơi lưu tập tin gschemas.compiled" -#: gio/gschema-compile.c:659 gio/gschema-compile.c:671 +#: ../gio/glib-compile-schemas.c:1897 ../gio/glib-compile-schemas.c:1910 msgid "DIRECTORY" msgstr "THƯ MỤC" -#: gio/gschema-compile.c:660 +#: ../gio/glib-compile-schemas.c:1898 +msgid "Abort on any errors in schemas" +msgstr "" + +#: ../gio/glib-compile-schemas.c:1899 msgid "Do not write the gschema.compiled file" msgstr "Không ghi tập tin gschemas.compiled" -#: gio/gschema-compile.c:661 -msgid "Do not give error for empty directory" -msgstr "Không thông báo lỗi với thư mục rỗng" +#: ../gio/glib-compile-schemas.c:1900 +msgid "This option will be removed soon." +msgstr "" -#: gio/gschema-compile.c:662 +#: ../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/gschema-compile.c:674 +#: ../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" @@ -2463,363 +2671,1071 @@ msgstr "" "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/gschema-compile.c:690 +#: ../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/gschema-compile.c:729 -#, c-format -msgid "No schema files found\n" +#: ../gio/glib-compile-schemas.c:1968 +#, fuzzy, c-format +#| msgid "No schema files found\n" +msgid "No schema files found: " msgstr "Không tìm thấy tập tin schema\n" -#: gio/gsettings-tool.c:41 +#: ../gio/glib-compile-schemas.c:1971 #, 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" -" 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" +msgid "doing nothing.\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" -#: 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 "Xác định đường dẫn cho schema" +#: ../gio/glib-compile-schemas.c:1974 +#, c-format +msgid "removed existing output file.\n" +msgstr "" -#: gio/gsettings-tool.c:102 gio/gsettings-tool.c:161 gio/gsettings-tool.c:252 -#: gio/gsettings-tool.c:325 -msgid "PATH" -msgstr "ĐƯỜNG DẪ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/gsettings-tool.c:110 gio/gsettings-tool.c:260 gio/gsettings-tool.c:333 -msgid "SCHEMA KEY" -msgstr "KHOÁ SCHEMA" +#: ../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/gsettings-tool.c:112 -msgid "Get the value of KEY" +#: ../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: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: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: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: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:1308 +#, c-format +msgid "Error opening file: %s" +msgstr "Gặp lỗi khi mở tập tin: %s" + +#: ../gio/glocalfile.c:1318 +msgid "Can't open directory" +msgstr "Không thể mở thư mục" + +#: ../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: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: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: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: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: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: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:2135 +#, c-format +msgid "Error creating directory: %s" +msgstr "Lỗi tạo thư mục: %s" + +#: ../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: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: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: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: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: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: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:720 +msgid "Attribute value must be non-NULL" +msgstr "Giá trị thuộc tính phải có giá trị" + +#: ../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:734 +msgid "Invalid extended attribute name" +msgstr "Tên thuộc tính đã mở rộng không hợp lệ" + +#: ../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: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:1567 +msgid " (invalid encoding)" +msgstr " (bảng mã không hợp lệ)" + +#: ../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: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: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: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: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:1921 +#, c-format +msgid "Error setting permissions: %s" +msgstr "Gặp lỗi khi đặt quyền hạn: %s" + +#: ../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:1995 +msgid "symlink must be non-NULL" +msgstr "liên kết tượng trưng phải có giá trị" + +#: ../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: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: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:2163 +msgid "SELinux context must be non-NULL" +msgstr "Ngữ cảnh SELinux phải khác NULL" + +#: ../gio/glocalfileinfo.c:2178 +#, c-format +msgid "Error setting SELinux context: %s" +msgstr "Lỗi đặt ngữ cảnh SELinux: %s" + +#: ../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: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: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: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: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: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: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: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: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: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: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: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:846 +msgid "Target file is a directory" +msgstr "Tập tin đích là một thư mục" + +#: ../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:863 +msgid "The file was externally modified" +msgstr "Tập tin đã bị sửa đổi bên ngoài" + +#: ../gio/glocalfileoutputstream.c:1042 +#, c-format +msgid "Error removing old file: %s" +msgstr "Lỗi xoá tập tin cũ: %s" + +#: ../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:496 +msgid "Invalid seek request" +msgstr "Yêu cầu tìm không hợp lệ" + +#: ../gio/gmemoryinputstream.c:520 +msgid "Cannot truncate GMemoryInputStream" +msgstr "Không thể cắt GMemoryInputStream" + +#: ../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: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: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: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: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: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: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: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" +"\" (bỏ lắp)" + +#. Translators: This is an error +#. * message for mount objects that +#. * don't implement any of eject or eject_with_operation. +#: ../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" +"\" (đầy ra)" + +#. Translators: This is an error +#. * message for mount objects that +#. * don't implement remount. +#: ../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: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: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: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 +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:849 +msgid "Source stream is already closed" +msgstr "Luồng nguồn đã bị đóng" + +#: ../gio/gresolver.c:737 +#, c-format +msgid "Error resolving '%s': %s" +msgstr "Lỗi phân giải '%s': %s" + +#: ../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: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: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:832 ../gio/gresolver.c:910 +#, c-format +msgid "Error resolving '%s'" +msgstr "Lỗi phân giải '%s'" + +#: ../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 +#, fuzzy, c-format +#| msgid "No such interface `%s'" +msgid "No such schema '%s'\n" +msgstr "Không có giao diện `%s'" + +#: ../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 "" + +#: ../gio/gsettings-tool.c:98 +#, c-format +msgid "Path must begin with a slash (/)\n" +msgstr "" + +#: ../gio/gsettings-tool.c:104 +#, c-format +msgid "Path must end with a slash (/)\n" +msgstr "" + +#: ../gio/gsettings-tool.c:110 +#, c-format +msgid "Path must not contain two adjacent slashes (//)\n" +msgstr "" + +#: ../gio/gsettings-tool.c:131 +#, fuzzy, c-format +#| msgid "No such property `%s'" +msgid "No such key '%s'\n" +msgstr "Không có thuộc tính `%s'" + +#: ../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 "" + +#: ../gio/gsettings-tool.c:471 ../gio/gsettings-tool.c:477 +#: ../gio/gsettings-tool.c:483 +msgid "SCHEMA[:PATH]" +msgstr "" + +#: ../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 +#, fuzzy +#| msgid "Get the value of KEY" +msgid "Gets the value of KEY" msgstr "Lấy giá trị của KHOÁ" -#: gio/gsettings-tool.c:114 gio/gsettings-tool.c:264 gio/gsettings-tool.c:340 -msgid "" -"Arguments:\n" -" SCHEMA The id of the schema\n" -" KEY The name of the key\n" +#: ../gio/gsettings-tool.c:489 ../gio/gsettings-tool.c:495 +#: ../gio/gsettings-tool.c:507 ../gio/gsettings-tool.c:513 +#, fuzzy +#| msgid "SCHEMA KEY" +msgid "SCHEMA[:PATH] KEY" +msgstr "KHOÁ SCHEMA" + +#: ../gio/gsettings-tool.c:494 +msgid "Queries the range of valid values for KEY" msgstr "" -"Đối số:\n" -" SCHEMA id của schema\n" -" KEY Tên khoá\n" -#: gio/gsettings-tool.c:169 -msgid "SCHEMA KEY VALUE" -msgstr "SCHEMA KHOÁ GIÁ TRỊ" - -#: gio/gsettings-tool.c:171 -msgid "Set the value of KEY" +#: ../gio/gsettings-tool.c:500 +#, fuzzy +#| msgid "Set the value of KEY" +msgid "Sets the value of KEY to VALUE" msgstr "Đặt giá trị cho KHOÁ" -#: gio/gsettings-tool.c:173 +#: ../gio/gsettings-tool.c:501 +#, fuzzy +#| msgid "SCHEMA KEY VALUE" +msgid "SCHEMA[:PATH] KEY VALUE" +msgstr "SCHEMA KHOÁ GIÁ TRỊ" + +#: ../gio/gsettings-tool.c:506 +msgid "Resets KEY to its default value" +msgstr "" + +#: ../gio/gsettings-tool.c:512 +#, fuzzy +#| msgid "Find out whether KEY is writable" +msgid "Checks if KEY is writable" +msgstr "Tìm hiểu xem KHOÁ có ghi được không" + +#: ../gio/gsettings-tool.c:518 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" +"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 +#, fuzzy +#| msgid "SCHEMA KEY" +msgid "SCHEMA[:PATH] [KEY]" +msgstr "KHOÁ SCHEMA" + +#: ../gio/gsettings-tool.c:525 +#, fuzzy, c-format +#| msgid "Unknown command '%s'\n" +msgid "" +"Unknown command %s\n" +"\n" +msgstr "Lệnh lạ '%s'\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 "" + +#: ../gio/gsettings-tool.c:554 +#, c-format +msgid "" +"Usage:\n" +" gsettings %s %s\n" +"\n" +"%s\n" +"\n" +msgstr "" + +#: ../gio/gsettings-tool.c:559 +msgid "Arguments:\n" +msgstr "" + +#: ../gio/gsettings-tool.c:563 +#, fuzzy +#| 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 "" "Đố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" -#: gio/gsettings-tool.c:212 -#, c-format -msgid "Key %s is not writable\n" -msgstr "Khoá %s không ghi được\n" - -#: gio/gsettings-tool.c:262 -msgid "Find out whether KEY is writable" -msgstr "Tìm hiểu xem KHOÁ có ghi được không" - -#: gio/gsettings-tool.c:336 -msgid "" -"Monitor KEY for changes and print the changed values.\n" -"Monitoring will continue until the process is terminated." +#: ../gio/gsettings-tool.c:568 +msgid " KEY The (optional) key within the schema\n" 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." -#: gio/gsettings-tool.c:399 +#: ../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 "" + +#: ../gio/gsettings-tool.c:652 #, c-format -msgid "Unknown command '%s'\n" -msgstr "Lệnh lạ '%s'\n" +msgid "Empty schema name given" +msgstr "" -#: gio/gsocket.c:275 +#: ../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 "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 +#, fuzzy +#| msgid "GCredentials is not implemented on this OS" +msgid "g_socket_get_credentials not implemented for this OS" +msgstr "GCredentials 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 "" + +#: ../gio/gsocketclient.c:858 ../gio/gsocketclient.c:1277 +#, fuzzy, c-format +#| msgid "Property `%s' is not readable" +msgid "Proxy protocol '%s' is not supported." +msgstr "Thuộc tính `%s' không đọc được" + +#: ../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 "" + +#: ../gio/gsocks4aproxy.c:139 +#, c-format +msgid "SOCKSv4 implementation limits username to %i characters" +msgstr "" + +#: ../gio/gsocks4aproxy.c:157 +#, c-format +msgid "SOCKSv4a implementation limits hostname to %i characters" +msgstr "" + +#: ../gio/gsocks4aproxy.c:183 +msgid "The server is not a SOCKSv4 proxy server." +msgstr "" + +#: ../gio/gsocks4aproxy.c:190 +msgid "Connection through SOCKSv4 server was rejected" +msgstr "" + +#: ../gio/gsocks5proxy.c:155 ../gio/gsocks5proxy.c:328 +#: ../gio/gsocks5proxy.c:338 +msgid "The server is not a SOCKSv5 proxy server." +msgstr "" + +#: ../gio/gsocks5proxy.c:169 +msgid "The SOCKSv5 proxy requires authentication." +msgstr "" + +#: ../gio/gsocks5proxy.c:179 +msgid "" +"The SOCKSv5 proxy requires an authentication method that is not supported by " +"GLib." +msgstr "" + +#: ../gio/gsocks5proxy.c:208 +#, c-format +msgid "Username or password is too long for SOCKSv5 protocol (max. is %i)." +msgstr "" + +#: ../gio/gsocks5proxy.c:239 +msgid "SOCKSv5 authentication failed due to wrong username or password." +msgstr "" + +#: ../gio/gsocks5proxy.c:289 +#, c-format +msgid "Hostname '%s' too long for SOCKSv5 protocol (maximum is %i bytes)" +msgstr "" + +#: ../gio/gsocks5proxy.c:352 +msgid "The SOCKSv5 proxy server uses unkown address type." +msgstr "" + +#: ../gio/gsocks5proxy.c:359 +msgid "Internal SOCKSv5 proxy server error." +msgstr "" + +#: ../gio/gsocks5proxy.c:365 +msgid "SOCKSv5 connection not allowed by ruleset." +msgstr "" + +#: ../gio/gsocks5proxy.c:372 +msgid "Host unreachable through SOCKSv5 server." +msgstr "" + +#: ../gio/gsocks5proxy.c:378 +msgid "Network unreachable through SOCKSv5 proxy." +msgstr "" + +#: ../gio/gsocks5proxy.c:384 +msgid "Connection refused through SOCKSv5 proxy." +msgstr "" + +#: ../gio/gsocks5proxy.c:390 +msgid "SOCKSv5 proxy does not support 'connect' command." +msgstr "" + +#: ../gio/gsocks5proxy.c:396 +msgid "SOCKSv5 proxy does not support provided address type." +msgstr "" + +#: ../gio/gsocks5proxy.c:402 +msgid "Unkown SOCKSv5 proxy error." +msgstr "" + +#: ../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 "" + +#: ../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" 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 +#: ../gio/gunixconnection.c:359 msgid "Error sending credentials: " 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 "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" +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 +#: ../gio/gunixconnection.c:465 #, c-format msgid "Error enabling SO_PASSCRED: %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" +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 "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 +#: ../gio/gwin32inputstream.c:318 #, c-format msgid "Error reading from handle: %s" msgstr "Gặp lỗi khi đọc từ handle: %s" -#: gio/gwin32inputstream.c:349 gio/gwin32outputstream.c:349 +#: ../gio/gwin32inputstream.c:348 ../gio/gwin32outputstream.c:348 #, c-format msgid "Error closing handle: %s" msgstr "Gặp lỗi khi đóng handle: %s" -#: gio/gwin32outputstream.c:319 +#: ../gio/gwin32outputstream.c:318 #, c-format msgid "Error writing to handle: %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." From 0165efd6034d1b065be755a01e829028f1329b2c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nguy=E1=BB=85n=20Th=C3=A1i=20Ng=E1=BB=8Dc=20Duy?= Date: Tue, 21 Dec 2010 19:51:54 +0700 Subject: [PATCH 059/130] Updated Vietnamese translation --- po/vi.po | 445 ++++++++++++++++++++++++++++--------------------------- 1 file changed, 228 insertions(+), 217 deletions(-) diff --git a/po/vi.po b/po/vi.po index 1e2c8ff38..74c144508 100644 --- a/po/vi.po +++ b/po/vi.po @@ -10,7 +10,7 @@ msgstr "" "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-20 17:25+0700\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" @@ -161,227 +161,227 @@ msgstr "Tên chủ không hợp lệ" #: ../glib/gdatetime.c:149 msgctxt "GDateTime" msgid "am" -msgstr "" +msgstr "am" #. Translators: 'before midday' indicator #: ../glib/gdatetime.c:151 msgctxt "GDateTime" msgid "AM" -msgstr "" +msgstr "AM" #. Translators: 'after midday' indicator #: ../glib/gdatetime.c:153 msgctxt "GDateTime" msgid "pm" -msgstr "" +msgstr "pm" #. Translators: 'after midday' indicator #: ../glib/gdatetime.c:155 msgctxt "GDateTime" msgid "PM" -msgstr "" +msgstr "PM" #. Translators: this is the preferred format for expressing the date #: ../glib/gdatetime.c:164 msgctxt "GDateTime" msgid "%m/%d/%y" -msgstr "" +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 "" +msgstr "%H:%M:%S" #: ../glib/gdatetime.c:193 msgctxt "full month name" msgid "January" -msgstr "" +msgstr "Tháng giêng" #: ../glib/gdatetime.c:195 msgctxt "full month name" msgid "February" -msgstr "" +msgstr "Tháng hai" #: ../glib/gdatetime.c:197 msgctxt "full month name" msgid "March" -msgstr "" +msgstr "Tháng ba" #: ../glib/gdatetime.c:199 msgctxt "full month name" msgid "April" -msgstr "" +msgstr "Tháng tư" #: ../glib/gdatetime.c:201 msgctxt "full month name" msgid "May" -msgstr "" +msgstr "Tháng năm" #: ../glib/gdatetime.c:203 msgctxt "full month name" msgid "June" -msgstr "" +msgstr "Tháng sáu" #: ../glib/gdatetime.c:205 msgctxt "full month name" msgid "July" -msgstr "" +msgstr "Tháng bảy" #: ../glib/gdatetime.c:207 msgctxt "full month name" msgid "August" -msgstr "" +msgstr "Tháng tám" #: ../glib/gdatetime.c:209 msgctxt "full month name" msgid "September" -msgstr "" +msgstr "Tháng chín" #: ../glib/gdatetime.c:211 msgctxt "full month name" msgid "October" -msgstr "" +msgstr "Tháng mười" #: ../glib/gdatetime.c:213 msgctxt "full month name" msgid "November" -msgstr "" +msgstr "Tháng mười một" #: ../glib/gdatetime.c:215 msgctxt "full month name" msgid "December" -msgstr "" +msgstr "Tháng mười hai" #: ../glib/gdatetime.c:230 msgctxt "abbreviated month name" msgid "Jan" -msgstr "" +msgstr "Th1" #: ../glib/gdatetime.c:232 msgctxt "abbreviated month name" msgid "Feb" -msgstr "" +msgstr "Th2" #: ../glib/gdatetime.c:234 msgctxt "abbreviated month name" msgid "Mar" -msgstr "" +msgstr "Th3" #: ../glib/gdatetime.c:236 msgctxt "abbreviated month name" msgid "Apr" -msgstr "" +msgstr "Th4" #: ../glib/gdatetime.c:238 msgctxt "abbreviated month name" msgid "May" -msgstr "" +msgstr "Th5" #: ../glib/gdatetime.c:240 msgctxt "abbreviated month name" msgid "Jun" -msgstr "" +msgstr "Th6" #: ../glib/gdatetime.c:242 msgctxt "abbreviated month name" msgid "Jul" -msgstr "" +msgstr "Th7" #: ../glib/gdatetime.c:244 msgctxt "abbreviated month name" msgid "Aug" -msgstr "" +msgstr "Th8" #: ../glib/gdatetime.c:246 msgctxt "abbreviated month name" msgid "Sep" -msgstr "" +msgstr "Th9" #: ../glib/gdatetime.c:248 msgctxt "abbreviated month name" msgid "Oct" -msgstr "" +msgstr "Th10" #: ../glib/gdatetime.c:250 msgctxt "abbreviated month name" msgid "Nov" -msgstr "" +msgstr "Th11" #: ../glib/gdatetime.c:252 msgctxt "abbreviated month name" msgid "Dec" -msgstr "" +msgstr "Th12" #: ../glib/gdatetime.c:267 msgctxt "full weekday name" msgid "Monday" -msgstr "" +msgstr "Thứ hai" #: ../glib/gdatetime.c:269 msgctxt "full weekday name" msgid "Tuesday" -msgstr "" +msgstr "Thứ ba" #: ../glib/gdatetime.c:271 msgctxt "full weekday name" msgid "Wednesday" -msgstr "" +msgstr "Thứ tư" #: ../glib/gdatetime.c:273 msgctxt "full weekday name" msgid "Thursday" -msgstr "" +msgstr "Thứ năm" #: ../glib/gdatetime.c:275 msgctxt "full weekday name" msgid "Friday" -msgstr "" +msgstr "Thứ sáu" #: ../glib/gdatetime.c:277 msgctxt "full weekday name" msgid "Saturday" -msgstr "" +msgstr "Thứ bảy" #: ../glib/gdatetime.c:279 msgctxt "full weekday name" msgid "Sunday" -msgstr "" +msgstr "Chủ Nhật" #: ../glib/gdatetime.c:294 msgctxt "abbreviated weekday name" msgid "Mon" -msgstr "" +msgstr "T2" #: ../glib/gdatetime.c:296 msgctxt "abbreviated weekday name" msgid "Tue" -msgstr "" +msgstr "T3" #: ../glib/gdatetime.c:298 msgctxt "abbreviated weekday name" msgid "Wed" -msgstr "" +msgstr "T4" #: ../glib/gdatetime.c:300 msgctxt "abbreviated weekday name" msgid "Thu" -msgstr "" +msgstr "T5" #: ../glib/gdatetime.c:302 msgctxt "abbreviated weekday name" msgid "Fri" -msgstr "" +msgstr "T6" #: ../glib/gdatetime.c:304 msgctxt "abbreviated weekday name" msgid "Sat" -msgstr "" +msgstr "T7" #: ../glib/gdatetime.c:306 msgctxt "abbreviated weekday name" msgid "Sun" -msgstr "" +msgstr "CN" #: ../glib/gdir.c:115 ../glib/gdir.c:138 #, c-format @@ -1478,7 +1478,7 @@ msgstr "Cặp khoá/giá trị %d, `%s', ở địa chỉ `%s', không chứa d msgid "" "Error unescaping key or value in Key/Value pair %d, `%s', in address element " "`%s'" -msgstr "" +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 @@ -1505,10 +1505,9 @@ msgid "Error in address `%s' - the noncefile attribute is missing or malformed" msgstr "Lỗi ở địa chỉ `%s' - thuộc tính noncefile thiếu hoặc bị hư" #: ../gio/gdbusaddress.c:632 -#, fuzzy #| msgid "Error connecting: " msgid "Error auto-launching: " -msgstr "Lỗi kết nối: " +msgstr "Lỗi tự động khởi động: " #: ../gio/gdbusaddress.c:640 #, c-format @@ -1518,61 +1517,59 @@ msgstr "" "nhận ra" #: ../gio/gdbusaddress.c:676 -#, fuzzy, c-format +#, c-format #| msgid "Error opening file '%s': %s" msgid "Error opening nonce file `%s': %s" -msgstr "Gặp lỗi khi mở tập tin '%s': %s" +msgstr "Gặp lỗi khi mở nonce-file `%s': %s" #: ../gio/gdbusaddress.c:694 -#, fuzzy, c-format +#, c-format #| msgid "Error reading nonce file `%s':" msgid "Error reading from nonce file `%s': %s" -msgstr "Gặp lỗi khi đọc tập tin '%s':" +msgstr "Gặp lỗi khi đọc nonce-file '%s': %s" #: ../gio/gdbusaddress.c:703 -#, fuzzy, c-format +#, 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 tập tin '%s':" +msgstr "Gặp lỗi khi đọc nonce-file '%s', cần 16 byte, nhận %d" #: ../gio/gdbusaddress.c:721 -#, fuzzy, c-format +#, 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 "" +msgstr "Địa chỉ rỗng" #: ../gio/gdbusaddress.c:1008 msgid "Cannot spawn a message bus without a machine-id: " -msgstr "" +msgstr "Không thể tạo tuyến thông điệp mà không có machine-id: " #: ../gio/gdbusaddress.c:1045 -#, fuzzy, c-format +#, c-format #| msgid "Error reading nonce file `%s':" msgid "Error spawning command line `%s': " -msgstr "Gặp lỗi khi đọc tập tin '%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 "" +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 "" +msgstr "Lệnh `%s' thoát với mã khác không %d: %s" #: ../gio/gdbusaddress.c:1143 -#, fuzzy, c-format +#, 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 (TODO: chạy dbus-launch để " -"tìm ra)" +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 @@ -1660,25 +1657,25 @@ msgid "Didn't find cookie with id %d in the keyring at `%s'" msgstr "Không tìm thấy cookie với id %d trong keyring ở `%s'" #: ../gio/gdbusauthmechanismsha1.c:535 -#, fuzzy, c-format +#, 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:566 -#, fuzzy, c-format +#, 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:596 -#, fuzzy, c-format +#, 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:606 -#, fuzzy, c-format +#, 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" @@ -1708,11 +1705,11 @@ msgid "" msgstr "Phát hiện cờ không hỗ trợ khi tạo kết nối phía client" #: ../gio/gdbusconnection.c:3752 ../gio/gdbusconnection.c:4070 -#, fuzzy, c-format +#, 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 `%s' trên đối tượng tại đường dẫn %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 @@ -1780,54 +1777,54 @@ msgstr "Cây con đã được xuất cho %s" #: ../gio/gdbusmessage.c:856 msgid "type is INVALID" -msgstr "" +msgstr "kiểu KHÔNG HỢP LỆ" #: ../gio/gdbusmessage.c:867 msgid "METHOD_CALL message: PATH or MEMBER header field is missing" -msgstr "" +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 "" +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 "" +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 "" +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 "" +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 "" +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 -#, fuzzy, c-format +#, c-format #| msgid "Wanted to read %" msgid "Wanted to read %lu bytes but got EOF" -msgstr "Muốn đọc %s" +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 "" +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 -#, fuzzy, c-format +#, 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 `%c' (%d)" +msgstr "Chờ byte NUL sau chuỗi `%s' nhưng lại nhận byte %d" #: ../gio/gdbusmessage.c:1231 #, c-format @@ -1844,7 +1841,7 @@ msgstr "Giá trị đã phân tích `%s' không phải là ký hiệu D-Bus hợ #, c-format msgid "" "Encountered array of length %u bytes. Maximum length is 2<<26 bytes (64 MiB)." -msgstr "" +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:1472 #, c-format @@ -1853,22 +1850,21 @@ 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:1499 -#, fuzzy, c-format +#, 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 "Lỗi thôi tuần tự hoá GVariant với kiểu chuỗi `%s' từ D-Bus" +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:1683 -#, fuzzy, c-format +#, c-format #| 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ờ 'l' hoặc 'B' nhưng nhận được '%c' (%d)" +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:1697 #, c-format @@ -1887,18 +1883,17 @@ 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:1798 -#, fuzzy, c-format +#, c-format #| 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 là %" +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:1806 msgid "Cannot deserialize message: " -msgstr "" +msgstr "Không thể bỏ tuần tự hoá thông điệp: " #: ../gio/gdbusmessage.c:2131 -#, fuzzy, c-format +#, c-format #| msgid "" #| "Error serializing GVariant with type-string `%s' to the D-Bus wire format" msgid "" @@ -1912,7 +1907,7 @@ msgstr "Thông điệp có %d fd nhưng header chỉ ra %d fd" #: ../gio/gdbusmessage.c:2280 msgid "Cannot serialize message: " -msgstr "" +msgstr "Không thể tuần tự hoá thông điệp: " #: ../gio/gdbusmessage.c:2324 #, c-format @@ -1952,10 +1947,9 @@ msgid "Error sending message: %s" msgstr "Lỗi gửi thông điệp: %s" #: ../gio/gdbusprivate.c:1768 -#, fuzzy #| 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: %s" +msgstr "Không thể nạp /var/lib/dbus/machine-id: " #: ../gio/gdbusproxy.c:714 #, c-format @@ -1969,18 +1963,18 @@ msgstr "" #: ../gio/gdbusproxy.c:1234 #, c-format msgid "Error calling StartServiceByName for %s: " -msgstr "" +msgstr "Lỗi gọi StartServiceByName cho %s: " #: ../gio/gdbusproxy.c:1255 #, c-format msgid "Unexpected reply %d from StartServiceByName(\"%s\") method" -msgstr "" +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 "" +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" @@ -2150,7 +2144,7 @@ msgstr "Đường dẫn đối tượng cần xem xét" #: ../gio/gdbus-tool.c:1164 msgid "Print XML" -msgstr "" +msgstr "In XML" #: ../gio/gdbus-tool.c:1197 msgid "Introspect a remote object." @@ -2424,218 +2418,217 @@ msgid "Unsupported socket address" msgstr "Địa chỉ ổ cắm không hỗ trợ" #: ../gio/glib-compile-schemas.c:713 -#, fuzzy #| msgid "Abstract name space not supported" msgid "empty names are not permitted" -msgstr "Không hỗ trợ vùng tên tổng quát" +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 "" +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 "" +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 "" +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 "" +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 "" +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 "" +msgstr " đã được xác định rồi" #: ../gio/glib-compile-schemas.c:856 msgid "can not add keys to a 'list-of' schema" -msgstr "" +msgstr "không thể thêm khoá vào schema 'list-of'" #: ../gio/glib-compile-schemas.c:867 #, c-format msgid " already specified" -msgstr "" +msgstr " đã được xác định rồi" #: ../gio/glib-compile-schemas.c:885 #, c-format msgid "" " shadows in ; use " "to modify value" -msgstr "" +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 "" +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 "" +msgstr "<%s id='%s'> chưa định nghĩa." #: ../gio/glib-compile-schemas.c:930 -#, fuzzy, c-format +#, c-format #| msgid "Invalid attribute type (string expected)" msgid "invalid GVariant type string '%s'" -msgstr "Kiểu thuộc tính không hợp lệ (mong đợi chuỗi)" +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 "" +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 "" +msgstr "không có để ghi đè" #: ../gio/glib-compile-schemas.c:981 #, c-format msgid " already specified" -msgstr "" +msgstr " đã được xác định rồi" #: ../gio/glib-compile-schemas.c:1052 #, c-format msgid " already specified" -msgstr "" +msgstr " đã được xác định rồi" #: ../gio/glib-compile-schemas.c:1064 #, c-format msgid " extends not yet existing schema '%s'" -msgstr "" +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 "" +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 "" +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 "" +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 "" +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 "" +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 "" +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 "" +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 "" +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 "" +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 "" +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 "" +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 "" +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 "" +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 "" +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 "" +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 "" +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 "" +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 "" +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 "" +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 "" +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 "" +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" @@ -2647,7 +2640,7 @@ msgstr "THƯ MỤC" #: ../gio/glib-compile-schemas.c:1898 msgid "Abort on any errors in schemas" -msgstr "" +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" @@ -2655,7 +2648,7 @@ msgstr "Không ghi tập tin gschemas.compiled" #: ../gio/glib-compile-schemas.c:1900 msgid "This option will be removed soon." -msgstr "" +msgstr "Tuỳ chọn này sẽ sớm bị bỏ." #: ../gio/glib-compile-schemas.c:1901 msgid "Do not enforce key name restrictions" @@ -2677,20 +2670,20 @@ 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 -#, fuzzy, c-format +#, c-format #| msgid "No schema files found\n" msgid "No schema files found: " -msgstr "Không tìm thấy tập tin schema\n" +msgstr "Không tìm thấy tập tin schema: " #: ../gio/glib-compile-schemas.c:1971 #, c-format msgid "doing nothing.\n" -msgstr "" +msgstr "không làm gì cả.\n" #: ../gio/glib-compile-schemas.c:1974 #, c-format msgid "removed existing output file.\n" -msgstr "" +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" @@ -3105,113 +3098,108 @@ msgstr "Lỗi phân giải '%s'" #: ../gio/gsettings-tool.c:60 #, c-format msgid "Schema '%s' is not relocatable (path must not be specified)\n" -msgstr "" +msgstr "Schema '%s' không thể tái định vị (không cần xác định đường dấn)\n" #: ../gio/gsettings-tool.c:65 ../gio/gsettings-tool.c:82 -#, fuzzy, c-format +#, c-format #| msgid "No such interface `%s'" msgid "No such schema '%s'\n" -msgstr "Không có giao diện `%s'" +msgstr "Không có schema '%s'\n" #: ../gio/gsettings-tool.c:77 #, c-format msgid "Schema '%s' is relocatable (path must be specified)\n" -msgstr "" +msgstr "Schema '%s' có thể tái định vị (cần xác định đường dẫn)\n" #: ../gio/gsettings-tool.c:92 #, c-format msgid "Empty path given.\n" -msgstr "" +msgstr "Đường dẫn rỗng.\n" #: ../gio/gsettings-tool.c:98 #, c-format msgid "Path must begin with a slash (/)\n" -msgstr "" +msgstr "Đường dẫn phải bắt đầu bằng dấu '/'\n" #: ../gio/gsettings-tool.c:104 #, c-format msgid "Path must end with a slash (/)\n" -msgstr "" +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 "" +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 -#, fuzzy, c-format +#, c-format #| msgid "No such property `%s'" msgid "No such key '%s'\n" -msgstr "Không có thuộc tính `%s'" +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 "" +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 "" +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 "" +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 "" +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 "" +msgstr "SCHEMA[:ĐƯỜNG DẪN]" #: ../gio/gsettings-tool.c:476 msgid "Lists the children of SCHEMA" -msgstr "" +msgstr "Danh sách con của SCHEMA" #: ../gio/gsettings-tool.c:482 msgid "List keys and values, recursively" -msgstr "" +msgstr "Danh sách khoá và giá trị, đệ quy" #: ../gio/gsettings-tool.c:488 -#, fuzzy #| 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 -#, fuzzy #| msgid "SCHEMA KEY" msgid "SCHEMA[:PATH] KEY" -msgstr "KHOÁ SCHEMA" +msgstr "SCHEMA[:ĐƯỜNG DẪN] KHOÁ" #: ../gio/gsettings-tool.c:494 msgid "Queries the range of valid values for KEY" -msgstr "" +msgstr "Truy vấn khoảng giá trị hợp lệ cho KHOÁ" #: ../gio/gsettings-tool.c:500 -#, fuzzy #| msgid "Set the value of KEY" msgid "Sets the value of KEY to VALUE" -msgstr "Đặt giá trị cho KHOÁ" +msgstr "Đặt giá trị GIÁ TRỊ cho KHOÁ" #: ../gio/gsettings-tool.c:501 -#, fuzzy #| msgid "SCHEMA KEY VALUE" msgid "SCHEMA[:PATH] KEY VALUE" -msgstr "SCHEMA KHOÁ GIÁ TRỊ" +msgstr "SCHEMA[:ĐƯỜNG DẪN] KHOÁ GIÁ-TRỊ" #: ../gio/gsettings-tool.c:506 msgid "Resets KEY to its default value" -msgstr "" +msgstr "Phục hồi KHOÁ về giá trị mặc định" #: ../gio/gsettings-tool.c:512 -#, fuzzy #| msgid "Find out whether KEY is writable" msgid "Checks if KEY is writable" -msgstr "Tìm hiểu xem KHOÁ có ghi được không" +msgstr "Tìm xem KHOÁ ghi được không" #: ../gio/gsettings-tool.c:518 msgid "" @@ -3219,20 +3207,22 @@ msgid "" "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/gsettings-tool.c:521 -#, fuzzy #| msgid "SCHEMA KEY" msgid "SCHEMA[:PATH] [KEY]" -msgstr "KHOÁ SCHEMA" +msgstr "SCHEMA[:ĐƯỜNG DẪN] [KHOÁ]" #: ../gio/gsettings-tool.c:525 -#, fuzzy, c-format +#, c-format #| msgid "Unknown command '%s'\n" msgid "" "Unknown command %s\n" "\n" -msgstr "Lệnh lạ '%s'\n" +msgstr "Lệnh lạ '%s'\n\n" #: ../gio/gsettings-tool.c:533 msgid "" @@ -3256,6 +3246,25 @@ msgid "" "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:554 #, c-format @@ -3266,13 +3275,17 @@ msgid "" "%s\n" "\n" msgstr "" +"Cách dùng:\n" +" gsettings %s %s\n" +"\n" +"%s\n" +"\n" #: ../gio/gsettings-tool.c:559 msgid "Arguments:\n" -msgstr "" +msgstr "Đối số:\n" #: ../gio/gsettings-tool.c:563 -#, fuzzy #| msgid "" #| "Arguments:\n" #| " SCHEMA The id of the schema\n" @@ -3281,26 +3294,25 @@ msgid "" " SCHEMA The name of the schema\n" " PATH The path, for relocatable schemas\n" msgstr "" -"Đối số:\n" -" SCHEMA id của schema\n" -" KEY Tên khoá\n" +" SCHEMA Tên schema\n" +" PATH Đường dẫn, cho schema tái định vị\n" #: ../gio/gsettings-tool.c:568 msgid " KEY The (optional) key within the schema\n" -msgstr "" +msgstr " KEY Khoá trong schema (tuỳ chọn)\n" #: ../gio/gsettings-tool.c:572 msgid " KEY The key within the schema\n" -msgstr "" +msgstr " KEY Khoá trong schema\n" #: ../gio/gsettings-tool.c:576 msgid " VALUE The value to set\n" -msgstr "" +msgstr " VALUE Giá trị cần đặt\n" #: ../gio/gsettings-tool.c:652 #, c-format msgid "Empty schema name given" -msgstr "" +msgstr "Tên schema rỗng" #: ../gio/gsocket.c:277 msgid "Invalid socket, not initialized" @@ -3406,10 +3418,9 @@ msgid "Error receiving message: %s" msgstr "Lỗi nhận thông điệp: %s" #: ../gio/gsocket.c:3543 -#, fuzzy #| msgid "GCredentials is not implemented on this OS" msgid "g_socket_get_credentials not implemented for this OS" -msgstr "GCredentials không được hỗ trợ trên hệ điều hành này" +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" @@ -3417,13 +3428,13 @@ msgstr "Lỗi lạ khi kết nối" #: ../gio/gsocketclient.c:836 ../gio/gsocketclient.c:1252 msgid "Trying to proxy over non-TCP connection is not supported." -msgstr "" +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 -#, fuzzy, c-format +#, c-format #| msgid "Property `%s' is not readable" msgid "Proxy protocol '%s' is not supported." -msgstr "Thuộc tính `%s' không đọc được" +msgstr "Không hỗ trợ giao thức uỷ nhiệm '%s'." #: ../gio/gsocketlistener.c:191 msgid "Listener is already closed" @@ -3436,90 +3447,90 @@ msgstr "Ổ cắm được thêm đã đóng" #: ../gio/gsocks4aproxy.c:121 #, c-format msgid "SOCKSv4 does not support IPv6 address '%s'" -msgstr "" +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 "" +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 "" +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 "" +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 "" +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 "" +msgstr "Máy chủ không phải máy SOCKSv5." #: ../gio/gsocks5proxy.c:169 msgid "The SOCKSv5 proxy requires authentication." -msgstr "" +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 "" +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 "" +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 "" +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 "" +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 "" +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 "" +msgstr "Lỗi nội bộ máy chủ SOCKSv5." #: ../gio/gsocks5proxy.c:365 msgid "SOCKSv5 connection not allowed by ruleset." -msgstr "" +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 "" +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 "" +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 "" +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 "" +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 "" +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 "" +msgstr "Lỗi SOCKSv5 lạ." #: ../gio/gthemedicon.c:498 #, c-format @@ -3528,15 +3539,15 @@ msgstr "Không thể quản lý phiên bản %d của bảng mã GThemedIcon" #: ../gio/gtlscertificate.c:228 msgid "No PEM-encoded certificate found" -msgstr "" +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 "" +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 "" +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 From e78c27256a73dcb0651340b9b3481a3fb8df303c Mon Sep 17 00:00:00 2001 From: Pavel Holejsovsky Date: Tue, 21 Dec 2010 17:35:11 +0100 Subject: [PATCH 060/130] Add GI annotations to GSimpleAsyncResult --- gio/gasyncresult.h | 4 ++-- gio/gsimpleasyncresult.c | 40 ++++++++++++++++++++-------------------- 2 files changed, 22 insertions(+), 22 deletions(-) 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/gsimpleasyncresult.c b/gio/gsimpleasyncresult.c index 30d51237d..b58b2e5cd 100644 --- a/gio/gsimpleasyncresult.c +++ b/gio/gsimpleasyncresult.c @@ -300,8 +300,8 @@ g_simple_async_result_init (GSimpleAsyncResult *simple) /** * g_simple_async_result_new: * @source_object: (allow-none): a #GObject, or %NULL. - * @callback: a #GAsyncReadyCallback. - * @user_data: user data passed to @callback. + * @callback: (scope async): a #GAsyncReadyCallback. + * @user_data: (closure): user data passed to @callback. * @source_tag: the asynchronous function. * * Creates a #GSimpleAsyncResult. @@ -333,8 +333,8 @@ g_simple_async_result_new (GObject *source_object, /** * g_simple_async_result_new_from_error: * @source_object: (allow-none): a #GObject, or %NULL. - * @callback: a #GAsyncReadyCallback. - * @user_data: 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. @@ -360,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,8 +394,8 @@ g_simple_async_result_new_take_error (GObject *source_object, /** * g_simple_async_result_new_error: * @source_object: (allow-none): a #GObject, or %NULL. - * @callback: a #GAsyncReadyCallback. - * @user_data: user data passed to @callback. + * @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. @@ -488,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. @@ -512,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. @@ -631,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 * @@ -654,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. @@ -682,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. @@ -850,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 @@ -933,7 +933,7 @@ g_simple_async_result_is_valid (GAsyncResult *result, } /** - * g_simple_async_report_error_in_idle: + * 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. @@ -976,8 +976,8 @@ g_simple_async_report_error_in_idle (GObject *object, /** * g_simple_async_report_gerror_in_idle: * @object: (allow-none): a #GObject, or %NULL - * @callback: a #GAsyncReadyCallback. - * @user_data: user data passed to @callback. + * @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 @@ -1004,7 +1004,7 @@ g_simple_async_report_gerror_in_idle (GObject *object, } /** - * g_simple_async_report_take_gerror_in_idle: + * 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. From 5ea4fa75bd16a255786a37502cd09489055cc22d Mon Sep 17 00:00:00 2001 From: Pavel Holejsovsky Date: Tue, 21 Dec 2010 18:00:48 +0100 Subject: [PATCH 061/130] Add GI annotations to GData{Input|Output}Stream --- gio/gdatainputstream.c | 96 ++++++++++++++++++++++------------------- gio/gdataoutputstream.c | 16 +++---- 2 files changed, 59 insertions(+), 53 deletions(-) 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. From 86b250019afaa572b7badee0f477401251d89ee1 Mon Sep 17 00:00:00 2001 From: Pavel Holejsovsky Date: Tue, 21 Dec 2010 18:19:16 +0100 Subject: [PATCH 062/130] Add GI annotations to GBufferedInputStream --- gio/gbufferedinputstream.c | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) 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 From 37ef8cbba5f8fae5c3f56a16925f68346944548d Mon Sep 17 00:00:00 2001 From: Brian Cameron Date: Wed, 22 Dec 2010 01:37:21 -0600 Subject: [PATCH 063/130] Fix for bug #637720. void functions should not return a value. --- gio/gsimpleactiongroup.c | 4 ++-- gio/gtlsconnection.c | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) 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/gtlsconnection.c b/gio/gtlsconnection.c index a652ac3b3..b3587780b 100644 --- a/gio/gtlsconnection.c +++ b/gio/gtlsconnection.c @@ -654,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); } /** From efd2bf9de4dbb31974fedb5ac4a5f033c7bd092a Mon Sep 17 00:00:00 2001 From: Yaron Shahrabani Date: Thu, 23 Dec 2010 17:20:21 +0200 Subject: [PATCH 064/130] Updated Hebrew translation. --- po/he.po | 240 +++++++++++++++++++++++++++---------------------------- 1 file changed, 120 insertions(+), 120 deletions(-) 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" From bb1d3fe1d3fbc022f541cbadb2caa969ff5efeba Mon Sep 17 00:00:00 2001 From: "Gheyret T.Kenji" Date: Thu, 23 Dec 2010 18:51:06 +0100 Subject: [PATCH 065/130] Added UG translation --- po/ug.po | 547 ++++++++++++++++++++++++++++--------------------------- 1 file changed, 280 insertions(+), 267 deletions(-) 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 From ec6a9e71dbcd5a7a413247738eb8e40f020622ae Mon Sep 17 00:00:00 2001 From: Jorge Gonzalez Date: Thu, 23 Dec 2010 19:57:19 +0100 Subject: [PATCH 066/130] Updated Spanish translation --- po/es.po | 355 +++++++++++++++++++++++++++---------------------------- 1 file changed, 175 insertions(+), 180 deletions(-) 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" From e2b185f97aeba30c8c0f051da2f988b7e45c6a93 Mon Sep 17 00:00:00 2001 From: Aron Xu Date: Sat, 25 Dec 2010 16:50:40 +0000 Subject: [PATCH 067/130] Update Simplified Chinese translation. --- po/zh_CN.po | 251 ++++++++++++++++++++++++++-------------------------- 1 file changed, 126 insertions(+), 125 deletions(-) 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 加密的私钥" From 1f84c5b72f7e5bd096b0f9458ccc9eed7f64ace5 Mon Sep 17 00:00:00 2001 From: Pavel Holejsovsky Date: Mon, 27 Dec 2010 15:40:07 +0100 Subject: [PATCH 068/130] Add GI annotations to GAppInfo and GDesktopAppInfo --- gio/gappinfo.c | 4 ++-- gio/gappinfo.h | 2 +- gio/gdesktopappinfo.c | 5 +++-- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/gio/gappinfo.c b/gio/gappinfo.c index 6f6375c4c..7557ce5c0 100644 --- a/gio/gappinfo.c +++ b/gio/gappinfo.c @@ -575,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 * @@ -632,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 11a4dad53..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); diff --git a/gio/gdesktopappinfo.c b/gio/gdesktopappinfo.c index a9de892f4..61a1a4853 100644 --- a/gio/gdesktopappinfo.c +++ b/gio/gdesktopappinfo.c @@ -1997,7 +1997,8 @@ 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, @@ -2069,7 +2070,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) From 7a1fbcd959ab22d356dbbaa807169089636cac99 Mon Sep 17 00:00:00 2001 From: Pavel Holejsovsky Date: Mon, 27 Dec 2010 15:48:31 +0100 Subject: [PATCH 069/130] Add GI annotations to GFileEnumerator --- gio/gfileenumerator.c | 16 ++++++++-------- gio/gfileenumerator.h | 4 ++-- 2 files changed, 10 insertions(+), 10 deletions(-) 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 >*/ From 5a8d012d296ab6eba4e26c59cfe06d3f8d582e70 Mon Sep 17 00:00:00 2001 From: Pavel Holejsovsky Date: Mon, 27 Dec 2010 16:08:46 +0100 Subject: [PATCH 070/130] Add GI annotations to GIcon and related classes and interfaces --- gio/gemblem.c | 6 +++--- gio/gemblemedicon.c | 4 ++-- gio/gicon.c | 4 ++-- gio/gloadableicon.c | 12 +++++++----- gio/gthemedicon.c | 2 +- 5 files changed, 15 insertions(+), 13 deletions(-) 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 89be5c320..6f7af0e46 100644 --- a/gio/gemblemedicon.c +++ b/gio/gemblemedicon.c @@ -201,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 **/ 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/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/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 * From c8fd3e31caae45988a16442bd39ac4038cc4c510 Mon Sep 17 00:00:00 2001 From: Pavel Holejsovsky Date: Mon, 27 Dec 2010 16:24:21 +0100 Subject: [PATCH 071/130] Add GI annotations to GSeekable --- gio/gseekable.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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. * From 53fee54b4f70d209a93f77effa2e9d2b1c8465e8 Mon Sep 17 00:00:00 2001 From: Pavel Holejsovsky Date: Mon, 27 Dec 2010 16:29:20 +0100 Subject: [PATCH 072/130] Add GI annotations to GConverter --- gio/gconverter.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) 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 From ed5790913e8de1a787f5cd6286542478f21c1afa Mon Sep 17 00:00:00 2001 From: Pavel Holejsovsky Date: Mon, 27 Dec 2010 16:47:26 +0100 Subject: [PATCH 073/130] Add GI annotations to GMemory{Input|Output}Stream --- gio/gmemoryinputstream.c | 8 ++++---- gio/gmemoryoutputstream.c | 12 ++++++------ 2 files changed, 10 insertions(+), 10 deletions(-) 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 From 3955bbfde0080bd15fff07906d011b93a2be2665 Mon Sep 17 00:00:00 2001 From: Pavel Holejsovsky Date: Mon, 27 Dec 2010 20:56:06 +0100 Subject: [PATCH 074/130] Add GI annotations to GType --- gobject/gtype.c | 110 +++++++++++++++++++++++++++--------------------- 1 file changed, 63 insertions(+), 47 deletions(-) diff --git a/gobject/gtype.c b/gobject/gtype.c index 60f850c61..69aa22fe1 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) @@ -3225,9 +3237,10 @@ 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_type_default_interface_unref + * @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. From 282366c32626325ebb9257e500d3d2783e5d3d12 Mon Sep 17 00:00:00 2001 From: Pavel Holejsovsky Date: Wed, 22 Dec 2010 22:09:21 +0100 Subject: [PATCH 075/130] Add GI annotations to GParamSpec --- gobject/gparam.c | 39 +++++++++++++++++++----------------- gobject/gparamspecs.c | 46 +++++++++++++++++++++---------------------- 2 files changed, 44 insertions(+), 41 deletions(-) diff --git a/gobject/gparam.c b/gobject/gparam.c index b8ba5bb63..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 * 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 From 58e36daf29aa1cf042a1141b9bbb91b4e794bfc7 Mon Sep 17 00:00:00 2001 From: Pavel Holejsovsky Date: Mon, 27 Dec 2010 22:07:08 +0100 Subject: [PATCH 076/130] Add GI annotations to GObject --- gobject/gobject.c | 100 ++++++++++++++++++++++++---------------------- 1 file changed, 52 insertions(+), 48 deletions(-) diff --git a/gobject/gobject.c b/gobject/gobject.c index 5587df94e..201f9f74f 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. @@ -1270,7 +1272,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 +1283,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 +1342,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 +1517,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 +1631,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 +1707,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 +1783,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 +1807,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 @@ -1980,7 +1984,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 @@ -2060,7 +2064,7 @@ g_object_get_property (GObject *object, * NULL); * ]| * - * Returns: @object + * Returns: (transfer none): @object */ gpointer g_object_connect (gpointer _object, @@ -2132,7 +2136,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, @@ -2215,7 +2219,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 @@ -2259,7 +2263,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 @@ -2301,7 +2305,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. * @@ -2323,7 +2327,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. * @@ -2369,7 +2373,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. @@ -2388,7 +2392,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 @@ -2402,7 +2406,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) @@ -2468,7 +2472,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 @@ -2549,7 +2553,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 @@ -2603,11 +2607,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) @@ -2636,7 +2640,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). @@ -2732,7 +2736,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. @@ -2777,7 +2781,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, @@ -2789,7 +2793,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 @@ -2815,7 +2819,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 @@ -2882,7 +2886,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, @@ -2901,7 +2905,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, @@ -2941,7 +2945,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 @@ -2974,7 +2978,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, @@ -3084,7 +3088,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. * @@ -3124,7 +3128,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 * @@ -3140,7 +3144,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 * @@ -3198,8 +3202,8 @@ g_value_get_object (const GValue *value) * Get the contents of a %G_TYPE_OBJECT derived #GValue, increasing * its reference count. * - * Returns: (type GObject.Object) (transfer full): 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) @@ -3210,7 +3214,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. @@ -3397,7 +3401,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, @@ -3415,7 +3419,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 * From 2a5e0cf9e0d67ea35b2f5fdf8bb2297354bcb7e6 Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Mon, 27 Dec 2010 23:37:21 -0500 Subject: [PATCH 077/130] Convert ifaceproperties.c to test framework Also add a test that checks warnings for failure to implement interface properties. See https://bugzilla.gnome.org/show_bug.cgi?id=637738 --- tests/gobject/ifaceproperties.c | 383 ++++++++++++++++++++++---------- 1 file changed, 262 insertions(+), 121 deletions(-) diff --git a/tests/gobject/ifaceproperties.c b/tests/gobject/ifaceproperties.c index 3b758ccbc..14762fb6e 100644 --- a/tests/gobject/ifaceproperties.c +++ b/tests/gobject/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 (); } From 068d53358bd366c26cff604a3de53b3cf734b08f Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Mon, 27 Dec 2010 23:41:10 -0500 Subject: [PATCH 078/130] Make object_interface_check_properties work As pointed out in bug 637738, it does not currently work, since g_type_class_peek always returns NULL. --- gobject/gobject.c | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/gobject/gobject.c b/gobject/gobject.c index 201f9f74f..686d33d93 100644 --- a/gobject/gobject.c +++ b/gobject/gobject.c @@ -1189,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; @@ -1205,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 " @@ -1237,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. @@ -1259,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 From bf1027f8269dd365097dd84c0c6d5abd7a61599e Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Mon, 27 Dec 2010 23:49:12 -0500 Subject: [PATCH 079/130] Move ifaceproperties test to gobject/tests/ --- gobject/tests/Makefile.am | 14 +-- .../tests}/ifaceproperties.c | 0 gobject/tests/testcommon.h | 100 ++++++++++++++++++ tests/gobject/Makefile.am | 1 - 4 files changed, 103 insertions(+), 12 deletions(-) rename {tests/gobject => gobject/tests}/ifaceproperties.c (100%) create mode 100644 gobject/tests/testcommon.h 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 100% rename from tests/gobject/ifaceproperties.c rename to gobject/tests/ifaceproperties.c 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/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 \ From 702a96c28146f683c58281133056bf70d7b0313e Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Tue, 28 Dec 2010 00:08:56 -0500 Subject: [PATCH 080/130] Fix a possible crash in g_io_channel_read_chars Patch by Rui Matos, https://bugzilla.gnome.org/show_bug.cgi?id=637759 --- glib/giochannel.c | 37 ++++++++++++++++++------------------- 1 file changed, 18 insertions(+), 19 deletions(-) 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; } From 316be2748fce21c922291990e1d9a2479f13a464 Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Tue, 28 Dec 2010 00:12:19 -0500 Subject: [PATCH 081/130] Adapt testglib.c to GRelation deprecation Patch by Chun-wei Fan, bug https://bugzilla.gnome.org/show_bug.cgi?id=637858 --- tests/testglib.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) 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); From b27ecf79e89db9ba26aa3dedc1a3ae1e6255cf40 Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Tue, 28 Dec 2010 00:19:45 -0500 Subject: [PATCH 082/130] Document that g_variant_builder_add_value consumes a floating ref Patch by Mikkel Kamstrup Erlandsen, bug https://bugzilla.gnome.org/show_bug.cgi?id=634569 --- glib/gvariant.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/glib/gvariant.c b/glib/gvariant.c index 89374454f..a613a5760 100644 --- a/glib/gvariant.c +++ b/glib/gvariant.c @@ -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 From 562a83432849280651ada9ac59e53358878cb2df Mon Sep 17 00:00:00 2001 From: Pavel Holejsovsky Date: Tue, 28 Dec 2010 11:59:58 +0100 Subject: [PATCH 083/130] Fix typo in function annotation. --- gobject/gtype.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gobject/gtype.c b/gobject/gtype.c index 69aa22fe1..efb627a16 100644 --- a/gobject/gtype.c +++ b/gobject/gtype.c @@ -3237,7 +3237,7 @@ g_type_default_interface_peek (GType g_type) } /** - * g_type_default_interface_unref + * g_type_default_interface_unref: * @g_iface: (type GObject.Typeinterface): the default vtable * structure for a interface, as returned by * g_type_default_interface_ref() From f248ab1b60a64df88a1578db81a3e263199d584c Mon Sep 17 00:00:00 2001 From: Cosimo Cecchi Date: Tue, 28 Dec 2010 12:17:10 +0100 Subject: [PATCH 084/130] tests: unbreak desktop-app-info test for jhbuild If we have a jhbuilt version of gedit installed, this will fail, as it will succeed in deleting its desktop file. --- gio/tests/desktop-app-info.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gio/tests/desktop-app-info.c b/gio/tests/desktop-app-info.c index b9ae777a0..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); From 408a9fcbcc175435bdf62354102e919dc4e4b4e7 Mon Sep 17 00:00:00 2001 From: Cosimo Cecchi Date: Tue, 28 Dec 2010 12:24:39 +0100 Subject: [PATCH 085/130] gaction: update property flags to match needs of GSimpleAction Commit 068d53358bd366c26cff604a3de53b3cf734b08f uncovered this mismatch between properties on the interface and those on the implementation. Update them so they match. --- gio/gaction.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) 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)); /** From 52c831099e5fed55482c3d8cf43b457e37843bd6 Mon Sep 17 00:00:00 2001 From: Emmanuele Bassi Date: Tue, 12 Oct 2010 16:03:56 +0100 Subject: [PATCH 086/130] gtester-report: Add an optional 'revision' node In order to distinguish reports generated from a specific revision of a projects it would be good if gtester-report handled a node in the XML. The payload is free-form, just like for the other nodes under . https://bugzilla.gnome.org/show_bug.cgi?id=631980 --- glib/gtester-report | 5 +++++ 1 file changed, 5 insertions(+) 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): From 500061f67567477c70b7950a60b0d5620a74131a Mon Sep 17 00:00:00 2001 From: Emmanuele Bassi Date: Tue, 12 Oct 2010 16:05:26 +0100 Subject: [PATCH 087/130] test: Add a node to the report XML Use `git describe` to fill out the node, if we're using a git checkout; otherwise, for tests ran from a released tarball, use the version. https://bugzilla.gnome.org/show_bug.cgi?id=631980 --- Makefile.decl | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) 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 ; \ From 422a76b3cd02f6075736da8b4203d83ff52ba096 Mon Sep 17 00:00:00 2001 From: Pavel Holejsovsky Date: Tue, 28 Dec 2010 14:28:52 +0100 Subject: [PATCH 088/130] Fix typo in GI annotation --- gobject/gtype.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gobject/gtype.c b/gobject/gtype.c index efb627a16..dac5e8f09 100644 --- a/gobject/gtype.c +++ b/gobject/gtype.c @@ -3238,7 +3238,7 @@ g_type_default_interface_peek (GType g_type) /** * g_type_default_interface_unref: - * @g_iface: (type GObject.Typeinterface): the default vtable + * @g_iface: (type GObject.TypeInterface): the default vtable * structure for a interface, as returned by * g_type_default_interface_ref() * From 79fd5ff80dcf086749e942ea3be9e4fa88317b09 Mon Sep 17 00:00:00 2001 From: Pavel Holejsovsky Date: Tue, 28 Dec 2010 15:46:01 +0100 Subject: [PATCH 089/130] Add missing GI annotation to g_content_type_guess_for_tree --- gio/gcontenttype.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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 */ From 571104bcc384c30054b507cab8e9d9a5f1166c45 Mon Sep 17 00:00:00 2001 From: Pavel Holejsovsky Date: Tue, 28 Dec 2010 16:53:48 +0100 Subject: [PATCH 090/130] Add GI annotations to GPollable{Input|Output}Stream --- gio/gpollableinputstream.c | 13 +++++++------ gio/gpollableoutputstream.c | 12 +++++++----- 2 files changed, 14 insertions(+), 11 deletions(-) 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). */ From 975b0d4487809270100efce56270314d816e3073 Mon Sep 17 00:00:00 2001 From: Pavel Holejsovsky Date: Wed, 29 Dec 2010 13:51:44 +0100 Subject: [PATCH 091/130] Add GI annotations to Gio lowlevel network support classes --- gio/ginetaddress.c | 2 +- gio/ginetsocketaddress.c | 2 +- gio/gproxy.c | 11 +++++---- gio/gproxyaddress.c | 6 +++-- gio/gsocket.c | 44 +++++++++++++++++----------------- gio/gsocketaddressenumerator.c | 9 +++---- gio/gsocketcontrolmessage.c | 2 +- gio/gunixfdlist.c | 14 +++++++---- gio/gunixfdmessage.c | 6 +++-- gio/gunixsocketaddress.c | 4 ++-- 10 files changed, 55 insertions(+), 45 deletions(-) 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/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/gsocket.c b/gio/gsocket.c index ae45802b7..b78a586f8 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 @@ -2588,10 +2588,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 +2692,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 +2819,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 +3117,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/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/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/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 * From add8cf9c09255e497545c67ca81e8f8bf28f3f85 Mon Sep 17 00:00:00 2001 From: Pavel Holejsovsky Date: Wed, 29 Dec 2010 16:01:12 +0100 Subject: [PATCH 092/130] Add GI annotations to Gio highlevel network functionality --- gio/gsocketclient.c | 32 ++++++++++++++++---------------- gio/gsocketlistener.c | 28 ++++++++++++++-------------- gio/gunixconnection.c | 4 ++-- 3 files changed, 32 insertions(+), 32 deletions(-) diff --git a/gio/gsocketclient.c b/gio/gsocketclient.c index f1fe01b0e..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.. @@ -905,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(). @@ -969,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 * @@ -1011,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(). @@ -1422,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(). * @@ -1471,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(). * @@ -1516,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(). @@ -1547,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/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/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 From 53364788e9f52dd3cf9781d08004ed5f0db0941f Mon Sep 17 00:00:00 2001 From: Pavel Holejsovsky Date: Wed, 29 Dec 2010 15:26:21 +0100 Subject: [PATCH 093/130] Add GI annotations to Gio DNS resolution classes --- gio/gproxyresolver.c | 18 ++++++++++-------- gio/gresolver.c | 24 ++++++++++++------------ 2 files changed, 22 insertions(+), 20 deletions(-) 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 From 929e8db9f436f0644a300c7253c9452145cbb7db Mon Sep 17 00:00:00 2001 From: Pavel Holejsovsky Date: Wed, 29 Dec 2010 16:21:22 +0100 Subject: [PATCH 094/130] Add GI annotation: skip g_cancellable_source_new(). It is not bindable, because GSource is not boxed and thus cannot be returned as caller-owned. --- gio/gcancellable.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) 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 */ From 4144c04c475c58df1da8ff062de1d50865c10169 Mon Sep 17 00:00:00 2001 From: Daniel Nylander Date: Fri, 31 Dec 2010 15:23:27 +0100 Subject: [PATCH 095/130] Updated Swedish translation --- po/sv.po | 1423 ++++++++++++++++++++++++++++++------------------------ 1 file changed, 794 insertions(+), 629 deletions(-) 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" From b583f802e39e2415c626ad19d54adc1bc08151d0 Mon Sep 17 00:00:00 2001 From: Kjartan Maraas Date: Sun, 2 Jan 2011 18:54:17 +0100 Subject: [PATCH 096/130] =?UTF-8?q?Updated=20Norwegian=20bokm=C3=A5l=20tra?= =?UTF-8?q?nslation=20from=20Torstein=20Adolf=20Winterseth?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- po/nb.po | 216 +++++++++++++++++++++++++++---------------------------- 1 file changed, 104 insertions(+), 112 deletions(-) diff --git a/po/nb.po b/po/nb.po index d4c359b5f..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-12-17 13:00+0100\n" -"PO-Revision-Date: 2010-12-17 13:03+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 @@ -1384,8 +1381,8 @@ msgstr "Strømmen er allerede lukket" #: ../gio/gcancellable.c:433 ../gio/gdbusconnection.c:1637 #: ../gio/gdbusconnection.c:1726 ../gio/gdbusconnection.c:1912 -#: ../gio/glocalfile.c:2102 ../gio/gsimpleasyncresult.c:811 -#: ../gio/gsimpleasyncresult.c:837 +#: ../gio/glocalfile.c:2102 ../gio/gsimpleasyncresult.c:810 +#: ../gio/gsimpleasyncresult.c:836 msgid "Operation was cancelled" msgstr "Operasjonen ble avbrutt" @@ -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,8 +1552,7 @@ 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:6168 #, c-format @@ -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 @@ -1678,14 +1672,12 @@ msgid "Timeout was reached" msgstr "Tidsavbrudd ble nådd" #: ../gio/gdbusconnection.c:2300 -msgid "" -"Unsupported flags encountered when constructing a client-side connection" +msgid "Unsupported flags encountered when constructing a client-side connection" msgstr "" #: ../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:3824 @@ -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 @@ -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:471 ../gio/gwin32appinfo.c:221 +#: ../gio/gdesktopappinfo.c:480 ../gio/gwin32appinfo.c:221 msgid "Unnamed" msgstr "Uten navn" -#: ../gio/gdesktopappinfo.c:755 +#: ../gio/gdesktopappinfo.c:764 msgid "Desktop file didn't specify Exec field" msgstr "Desktop-filen hadde ingen verdi i Exec-feltet" -#: ../gio/gdesktopappinfo.c:948 +#: ../gio/gdesktopappinfo.c:957 msgid "Unable to find terminal required for application" msgstr "Kan ikke finne terminalen som kreves for programmet" -#: ../gio/gdesktopappinfo.c:1157 +#: ../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:1161 +#: ../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:1569 +#: ../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:1683 +#: ../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:313 +#: ../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:323 +#: ../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:346 +#: ../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 @@ -2564,8 +2553,8 @@ msgstr "" #: ../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:1797 @@ -3438,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 @@ -3596,3 +3587,4 @@ msgstr "Trenger med inndata" #: ../gio/gzlibdecompressor.c:342 msgid "Invalid compressed data" msgstr "Ugyldige komprimerte data" + From 1e5f11875b65712195e4d0c8d160cdc9f9bbd99f Mon Sep 17 00:00:00 2001 From: Thomas Kristensen Date: Mon, 3 Jan 2011 15:20:12 +0200 Subject: [PATCH 097/130] revents may have been cleared by GMain before dispatch(). See bug #587898. --- gio/gsocket.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/gio/gsocket.c b/gio/gsocket.c index b78a586f8..01792a7fe 100644 --- a/gio/gsocket.c +++ b/gio/gsocket.c @@ -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); From 9686d82daf9c2082fa5d3055ac5b777490a95dc0 Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Tue, 4 Jan 2011 09:38:14 -0500 Subject: [PATCH 098/130] Fix build on old kernels Cope with BTRFS_SUPER_MAGIC not being defined. --- glib/gfileutils.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/glib/gfileutils.c b/glib/gfileutils.c index fff6492a6..a87f0e97a 100644 --- a/glib/gfileutils.c +++ b/glib/gfileutils.c @@ -968,7 +968,7 @@ write_to_temp_file (const gchar *contents, goto out; } -#ifdef __linux__ +#ifdef BTRFS_SUPER_MAGIC { struct statfs buf; From 9de42602c47262d49e4419f8bf7987dc2b488a98 Mon Sep 17 00:00:00 2001 From: Chun-wei Fan Date: Wed, 5 Jan 2011 22:57:48 +0800 Subject: [PATCH 099/130] Bug 637852 - Updates to glib.vsprops Due to changes in the GIO APIs/headers, the glib.vsprops is updated to reflect that in the "install" phase, namely: -removal of the gperiodic.h header -addition of GPollable I/O Stream, GTCP Connection and GTLS headers --- build/win32/vs9/glib.vsprops | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) 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 From bb6c44b9d3fd94835044ffda38ca2f211deb5b7b Mon Sep 17 00:00:00 2001 From: Colin Walters Date: Mon, 20 Dec 2010 13:12:28 -0500 Subject: [PATCH 100/130] gdesktopappinfo: Send out a session bus signal when launching .desktop file This signal contains the full path of the .desktop file, along with the process id, which allows multiple interested components (like GNOME Shell) to better know the state of the system (which processes correspond to which .desktop files). https://bugzilla.gnome.org/show_bug.cgi?id=606960 --- gio/gdesktopappinfo.c | 87 ++++++++++++++++++++++++++++++++++++++----- 1 file changed, 78 insertions(+), 9 deletions(-) diff --git a/gio/gdesktopappinfo.c b/gio/gdesktopappinfo.c index 61a1a4853..5851e0208 100644 --- a/gio/gdesktopappinfo.c +++ b/gio/gdesktopappinfo.c @@ -880,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); @@ -926,6 +925,49 @@ child_setup (gpointer user_data) } } +static void +notify_desktop_launch (GDBusConnection *session_bus, + const char *desktop_file, /* filename */ + long pid, + const char *display, + const char *sn_id, + GList *uris) +{ + GDBusMessage *msg; + GVariantBuilder uri_variant; + GVariantBuilder extras_variant; + GList *iter; + + 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)); + + 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), + display ? display : "", + (gint64)pid, + &uri_variant, + &extras_variant)); + g_dbus_connection_send_message (session_bus, + msg, 0, + NULL, + NULL); + g_object_unref (msg); +} + static gboolean g_desktop_app_info_launch_uris (GAppInfo *appinfo, GList *uris, @@ -933,9 +975,9 @@ g_desktop_app_info_launch_uris (GAppInfo *appinfo, 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; @@ -944,12 +986,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)) { @@ -964,7 +1018,7 @@ g_desktop_app_info_launch_uris (GAppInfo *appinfo, 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, @@ -984,7 +1038,7 @@ g_desktop_app_info_launch_uris (GAppInfo *appinfo, G_SPAWN_SEARCH_PATH, child_setup, &data, - NULL, + &pid, error)) { if (data.sn_id) @@ -992,18 +1046,33 @@ g_desktop_app_info_launch_uris (GAppInfo *appinfo, g_free (data.sn_id); g_free (data.display); + g_list_free (launched_uris); goto out; } + notify_desktop_launch (session_bus, + info->filename, + 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: From e6546debd61d32b41b37c20b62d4e47cd3e53e25 Mon Sep 17 00:00:00 2001 From: Colin Walters Date: Mon, 20 Dec 2010 14:48:53 -0500 Subject: [PATCH 101/130] gdesktopappinfo: Add g_desktop_app_info_launch_uris_as_manager() A new GDesktopAppInfo specific function which provides more control over launched processes. Intended basically only for use in GNOME Shell, where we want: *) To directly know the GPid for each launched program, without having to listen to a DBus signal emitted in our own process *) Possibly control over the process environment; for example, we may want to call setsid() or redirect file descriptors. And in the future: *) To avoid recursively calling ourself via DBus, when a later patch causes g_app_info_launch() to indirect via the shell. https://bugzilla.gnome.org/show_bug.cgi?id=606960 --- gio/gdesktopappinfo.c | 89 ++++++++++++++++++++++++++++++++++++++++--- gio/gdesktopappinfo.h | 24 ++++++++++++ 2 files changed, 108 insertions(+), 5 deletions(-) diff --git a/gio/gdesktopappinfo.c b/gio/gdesktopappinfo.c index 5851e0208..00fbd9c00 100644 --- a/gio/gdesktopappinfo.c +++ b/gio/gdesktopappinfo.c @@ -898,6 +898,8 @@ create_files_for_uris (GList *uris) typedef struct { + GSpawnChildSetupFunc user_setup; + gpointer user_setup_data; char *display; char *sn_id; char *desktop_file; @@ -923,6 +925,9 @@ 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 @@ -968,11 +973,18 @@ notify_desktop_launch (GDBusConnection *session_bus, 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; @@ -1012,6 +1024,8 @@ 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; @@ -1035,7 +1049,7 @@ 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, &pid, @@ -1051,6 +1065,9 @@ g_desktop_app_info_launch_uris (GAppInfo *appinfo, goto out; } + if (pid_callback != NULL) + pid_callback (info, pid, pid_callback_data); + notify_desktop_launch (session_bus, info->filename, pid, @@ -1081,6 +1098,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) { @@ -1129,6 +1159,55 @@ 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: 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; diff --git a/gio/gdesktopappinfo.h b/gio/gdesktopappinfo.h index 6be936904..f0fc924ba 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 setup, + gpointer user_setup_data, + GDesktopAppLaunchCallback callback, + gpointer pid_callback_data, + GError **error); + #endif /* G_DISABLE_DEPRECATED */ G_END_DECLS From 4e33967a002fd14d7106ef2ff88122344f2e4983 Mon Sep 17 00:00:00 2001 From: Stef Walter Date: Fri, 24 Dec 2010 10:50:14 -0600 Subject: [PATCH 102/130] Change GTlsClientConnection::accepted-cas to contain DER DNs This property is now a GList of GByteArray values. Each GByteArray contains the raw DER DN of the certificate authority. This is far more useful for looking up a certificate (with the relevant issuer) than a string encoded DN. https://bugzilla.gnome.org/show_bug.cgi?id=637262 --- gio/gtlsclientconnection.c | 28 ++++++++++++++++++---------- gio/gtlsclientconnection.h | 2 +- 2 files changed, 19 insertions(+), 11 deletions(-) diff --git a/gio/gtlsclientconnection.c b/gio/gtlsclientconnection.c index 92cd9f573..04e04da14 100644 --- a/gio/gtlsclientconnection.c +++ b/gio/gtlsclientconnection.c @@ -133,15 +133,19 @@ g_tls_client_connection_default_init (GTlsClientConnectionInterface *iface) * server requests a client certificate during the handshake, then * 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. + * + * Type: GList + * Transfer: full * 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)); } /** @@ -316,15 +320,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 2aaaa97e8..fd6088a63 100644 --- a/gio/gtlsclientconnection.h +++ b/gio/gtlsclientconnection.h @@ -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 From a36cb498d974b11c00829adfdaa9638fbd9b66eb Mon Sep 17 00:00:00 2001 From: Nicolas Dufresne Date: Wed, 22 Dec 2010 16:52:40 -0500 Subject: [PATCH 103/130] [GDummyTLS] Add missing properties and namespace Add missing properties in the GDummyTlsConnection class. Also add namespaces to property enumerations to avoid conflicts between classes. Reviewed-by: Dan Winship --- gio/gdummytlsbackend.c | 62 +++++++++++++++++++++++------------------- 1 file changed, 34 insertions(+), 28 deletions(-) diff --git a/gio/gdummytlsbackend.c b/gio/gdummytlsbackend.c index 0202f2770..f297f7401 100644 --- a/gio/gdummytlsbackend.c +++ b/gio/gdummytlsbackend.c @@ -92,11 +92,11 @@ enum { PROP_CERTIFICATE_0, - PROP_CERTIFICATE, - PROP_CERTIFICATE_PEM, - PROP_PRIVATE_KEY, - PROP_PRIVATE_KEY_PEM, - PROP_ISSUER + 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); @@ -135,11 +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_ISSUER, "issuer"); + 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 @@ -183,15 +183,18 @@ enum { PROP_CONNECTION_0, - PROP_BASE_IO_STREAM, - PROP_REQUIRE_CLOSE_NOTIFY, - PROP_REHANDSHAKE_MODE, - PROP_USE_SYSTEM_CERTDB, - 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); @@ -243,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_USE_SYSTEM_CERTDB, "use-system-certdb"); - 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 From 9be6da9448a1a59eae11d588729bf4316fbadada Mon Sep 17 00:00:00 2001 From: Colin Walters Date: Wed, 5 Jan 2011 13:00:50 -0500 Subject: [PATCH 104/130] Add missing indirection from previous commit This follows the rest of GLib style, and fixes g-i scanning the headers. --- gio/gdesktopappinfo.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gio/gdesktopappinfo.h b/gio/gdesktopappinfo.h index f0fc924ba..bd2288d9b 100644 --- a/gio/gdesktopappinfo.h +++ b/gio/gdesktopappinfo.h @@ -103,9 +103,9 @@ GAppInfo *g_desktop_app_info_lookup_get_default_for_uri_scheme (GDesktopAppInfoL * 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); +typedef void (*GDesktopAppLaunchCallback) (GDesktopAppInfo *appinfo, + GPid pid, + gpointer user_data); gboolean g_desktop_app_info_launch_uris_as_manager (GDesktopAppInfo *appinfo, GList *uris, From 0b59cf65669fae077a7e607d0c61567be5f5a30a Mon Sep 17 00:00:00 2001 From: Colin Walters Date: Wed, 5 Jan 2011 13:49:20 -0500 Subject: [PATCH 105/130] g_desktop_app_info_launch_uris_as_manager: Fix parameter naming This makes introspection happier. --- gio/gdesktopappinfo.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gio/gdesktopappinfo.h b/gio/gdesktopappinfo.h index bd2288d9b..162cbb6d6 100644 --- a/gio/gdesktopappinfo.h +++ b/gio/gdesktopappinfo.h @@ -111,9 +111,9 @@ gboolean g_desktop_app_info_launch_uris_as_manager (GDesktopAppInfo GList *uris, GAppLaunchContext *launch_context, GSpawnFlags spawn_flags, - GSpawnChildSetupFunc setup, + GSpawnChildSetupFunc user_setup, gpointer user_setup_data, - GDesktopAppLaunchCallback callback, + GDesktopAppLaunchCallback pid_callback, gpointer pid_callback_data, GError **error); From 8d74c96b76b459a63492bfce466a304383e94d09 Mon Sep 17 00:00:00 2001 From: Christian Persch Date: Sun, 5 Dec 2010 15:34:26 +0100 Subject: [PATCH 106/130] Make the memory and null settings backends public Bug #636806. --- docs/reference/gio/gio-sections.txt | 3 +++ gio/Makefile.am | 2 -- gio/gio.symbols | 11 +++++++++-- gio/giomodule.c | 3 ++- gio/gmemorysettingsbackend.c | 9 +++++++-- gio/gmemorysettingsbackend.h | 30 ----------------------------- gio/gnullsettingsbackend.c | 12 +++++++----- gio/gnullsettingsbackend.h | 30 ----------------------------- gio/gsettingsbackend.c | 5 +++-- gio/gsettingsbackend.h | 6 ++++++ gio/gsettingsbackendinternal.h | 8 ++++++-- 11 files changed, 43 insertions(+), 76 deletions(-) delete mode 100644 gio/gmemorysettingsbackend.h delete mode 100644 gio/gnullsettingsbackend.h diff --git a/docs/reference/gio/gio-sections.txt b/docs/reference/gio/gio-sections.txt index 2facc2101..3448e8c8f 100644 --- a/docs/reference/gio/gio-sections.txt +++ b/docs/reference/gio/gio-sections.txt @@ -2158,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 @@ -2166,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 diff --git a/gio/Makefile.am b/gio/Makefile.am index e0b352e5e..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 \ diff --git a/gio/gio.symbols b/gio/gio.symbols index dc030662e..d7f7fa894 100644 --- a/gio/gio.symbols +++ b/gio/gio.symbols @@ -1544,13 +1544,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__) 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/gmemorysettingsbackend.c b/gio/gmemorysettingsbackend.c index 6b60058e8..5d747b5bb 100644 --- a/gio/gmemorysettingsbackend.c +++ b/gio/gmemorysettingsbackend.c @@ -21,9 +21,8 @@ #include "config.h" -#include "gmemorysettingsbackend.h" #include "gsimplepermission.h" -#include "gsettingsbackend.h" +#include "gsettingsbackendinternal.h" #include "giomodule.h" @@ -174,3 +173,9 @@ g_memory_settings_backend_class_init (GMemorySettingsBackendClass *class) backend_class->get_permission = g_memory_settings_backend_get_permission; 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/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/gsettingsbackend.c b/gio/gsettingsbackend.c index bd2fa2e82..029e826ba 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" @@ -925,7 +924,7 @@ g_settings_backend_create_tree (void) g_free, (GDestroyNotify) g_variant_unref); } -/*< private > +/** * g_settings_backend_get_default: * @returns: the default #GSettingsBackend * @@ -934,6 +933,8 @@ g_settings_backend_create_tree (void) * 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 3705ee5d9..e67418734 100644 --- a/gio/gsettingsbackend.h +++ b/gio/gsettingsbackend.h @@ -129,10 +129,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 a6711cb7f..e009b3162 100644 --- a/gio/gsettingsbackendinternal.h +++ b/gio/gsettingsbackendinternal.h @@ -92,8 +92,12 @@ G_GNUC_INTERNAL GPermission * g_settings_backend_get_permission (GSettingsBackend *backend, const gchar *path); 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__ */ From b497220e486e66433b44251a53ec3be25fa9acdb Mon Sep 17 00:00:00 2001 From: Pavel Holejsovsky Date: Wed, 5 Jan 2011 20:30:10 +0100 Subject: [PATCH 107/130] Fix GI annotation for g_desktop_app_info_launch_uris_as_manager --- gio/gdesktopappinfo.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/gio/gdesktopappinfo.c b/gio/gdesktopappinfo.c index 00fbd9c00..c80879671 100644 --- a/gio/gdesktopappinfo.c +++ b/gio/gdesktopappinfo.c @@ -1165,7 +1165,8 @@ g_desktop_app_info_launch (GAppInfo *appinfo, * @uris: (element-type utf8): List of URIs * @launch_context: a #GAppLaunchContext * @spawn_flags: #GSpawnFlags, used for each process - * @user_setup: a #GSpawnChildSetupFunc, used once 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 From be8899bfe66d460b3eda33ff7512778788c07974 Mon Sep 17 00:00:00 2001 From: Christian Persch Date: Mon, 1 Mar 2010 16:32:09 +0100 Subject: [PATCH 108/130] Make _g_compute_locale_variants return a char** directly Bug #635998. --- glib/gkeyfile.c | 13 ++------- glib/gutils.c | 72 +++++++++++++++++++++++++++---------------------- 2 files changed, 42 insertions(+), 43 deletions(-) diff --git a/glib/gkeyfile.c b/glib/gkeyfile.c index 10ca2a2af..db900622c 100644 --- a/glib/gkeyfile.c +++ b/glib/gkeyfile.c @@ -1630,7 +1630,7 @@ g_key_file_set_locale_string (GKeyFile *key_file, g_free (value); } -extern GSList *_g_compute_locale_variants (const gchar *locale); +extern gchar **_g_compute_locale_variants (const gchar *locale); /** * g_key_file_get_locale_string: @@ -1677,16 +1677,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_compute_locale_variants (locale); free_languages = TRUE; } else diff --git a/glib/gutils.c b/glib/gutils.c index 73165ba14..3e01dae22 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,20 @@ _g_compute_locale_variants (const gchar *locale) g_free (territory); if (mask & COMPONENT_MODIFIER) g_free (modifier); +} - return retval; +gchar ** +_g_compute_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 +3321,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; From 3d824065b847f2702aa312c51734328fc414af5a Mon Sep 17 00:00:00 2001 From: Christian Persch Date: Sun, 28 Nov 2010 18:49:04 +0100 Subject: [PATCH 109/130] Add g_get_locale_variants() Make _g_compute_locale_variants() public as g_get_locale_variants(). Bug #635998. --- docs/reference/glib/glib-sections.txt | 1 + glib/gkeyfile.c | 5 ++--- glib/glib.symbols | 1 + glib/gutils.c | 23 ++++++++++++++++++++++- glib/gutils.h | 2 ++ glib/tests/utils.c | 15 +++++++++++++++ 6 files changed, 43 insertions(+), 4 deletions(-) diff --git a/docs/reference/glib/glib-sections.txt b/docs/reference/glib/glib-sections.txt index 05ba4f82a..c45ee67ae 100644 --- a/docs/reference/glib/glib-sections.txt +++ b/docs/reference/glib/glib-sections.txt @@ -2730,6 +2730,7 @@ g_dpgettext2 g_strip_context g_get_language_names +g_get_locale_variants
diff --git a/glib/gkeyfile.c b/glib/gkeyfile.c index db900622c..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 gchar **_g_compute_locale_variants (const gchar *locale); - /** * g_key_file_get_locale_string: * @key_file: a #GKeyFile @@ -1677,7 +1676,7 @@ g_key_file_get_locale_string (GKeyFile *key_file, if (locale) { - languages = _g_compute_locale_variants (locale); + languages = g_get_locale_variants (locale); free_languages = TRUE; } else diff --git a/glib/glib.symbols b/glib/glib.symbols index 0c4b0d142..4591ecdfd 100644 --- a/glib/glib.symbols +++ b/glib/glib.symbols @@ -1657,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/gutils.c b/glib/gutils.c index 3e01dae22..5512fd480 100644 --- a/glib/gutils.c +++ b/glib/gutils.c @@ -3201,8 +3201,29 @@ append_locale_variants (GPtrArray *array, g_free (modifier); } +/** + * 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_compute_locale_variants (const gchar *locale) +g_get_locale_variants (const gchar *locale) { GPtrArray *array; 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/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); From 98a0dfe1da9f3b8919f0bb73b1cb99333a31975f Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Wed, 5 Jan 2011 17:01:42 -0500 Subject: [PATCH 110/130] Bump version to 2.27.90 --- configure.ac | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/configure.ac b/configure.ac index 711401485..7e86232d5 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], [6]) +m4_define([glib_micro_version], [90]) m4_define([glib_interface_age], [0]) m4_define([glib_binary_age], [m4_eval(100 * glib_minor_version + glib_micro_version)]) From 87068c0fcd08dd968679e68bd71a2a7355361522 Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Wed, 5 Jan 2011 17:16:36 -0500 Subject: [PATCH 111/130] Update NEWS --- NEWS | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) diff --git a/NEWS b/NEWS index dc9dd397f..5ebece5c4 100644 --- a/NEWS +++ b/NEWS @@ -1,3 +1,46 @@ +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... + +* Translation updates: + Hebrew + Norwegian bokmål + Simplified Chinese + Spanish + Swedish + Uyghur + Vietnamese + + Overview of Changes from GLib 2.27.4 to 2.27.5 ============================================== From f4773faa9f669ff3a705946f5b4ddcc83d3c6931 Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Wed, 5 Jan 2011 17:46:28 -0500 Subject: [PATCH 112/130] Drop annotation that break the documentation build --- gio/gtlsclientconnection.c | 4 ---- 1 file changed, 4 deletions(-) diff --git a/gio/gtlsclientconnection.c b/gio/gtlsclientconnection.c index 04e04da14..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 */ /** @@ -136,8 +134,6 @@ g_tls_client_connection_default_init (GTlsClientConnectionInterface *iface) * Each item in the list is a #GByteArray which contains the complete * subject DN of the certificate authority. * - * Type: GList - * Transfer: full * Since: 2.28 */ g_object_interface_install_property (iface, From 31db1f9688274b245ba7f47b7a837f609715331c Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Wed, 5 Jan 2011 19:07:01 -0500 Subject: [PATCH 113/130] Add new symbol --- gio/gio.symbols | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/gio/gio.symbols b/gio/gio.symbols index d7f7fa894..2783df7c7 100644 --- a/gio/gio.symbols +++ b/gio/gio.symbols @@ -131,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 From 51ac0c6c85c5bf993ff2de0282c569884b79027a Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Wed, 5 Jan 2011 19:42:13 -0500 Subject: [PATCH 114/130] Avoid possible parameter name clashes in GVariant https://bugzilla.gnome.org/show_bug.cgi?id=638349 --- glib/gvariant.c | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/glib/gvariant.c b/glib/gvariant.c index a613a5760..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. From 0b3412b419a322426ae04ca5177546ba68def3d8 Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Wed, 5 Jan 2011 19:51:44 -0500 Subject: [PATCH 115/130] Add anothre bug ref --- NEWS | 1 + 1 file changed, 1 insertion(+) diff --git a/NEWS b/NEWS index 5ebece5c4..7509821b0 100644 --- a/NEWS +++ b/NEWS @@ -30,6 +30,7 @@ Overview of Changes from GLib 2.27.5 to 2.27.90 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 From 48f8c07c530973a0b32ed6cd3251cc82851e20b0 Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Wed, 5 Jan 2011 20:43:46 -0500 Subject: [PATCH 116/130] Bump version --- configure.ac | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/configure.ac b/configure.ac index 7e86232d5..b27ddd0ed 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], [90]) +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)]) From 26b65a3abda5ad0930b1cd0d0652417feb50c274 Mon Sep 17 00:00:00 2001 From: Serkan Kaba Date: Thu, 6 Jan 2011 14:08:02 +0100 Subject: [PATCH 117/130] gio: Recognize reiser4 in g_file_query_filesystem_info() Signed-off-by: Serkan Kaba Signed-off-by: Tomas Bzatek --- gio/glocalfile.c | 2 ++ 1 file changed, 2 insertions(+) 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; } From e738a8dd8ca3d3dd327bc5a3bbfd151858738609 Mon Sep 17 00:00:00 2001 From: Colin Walters Date: Thu, 6 Jan 2011 11:47:58 -0500 Subject: [PATCH 118/130] gdesktopappinfo: Don't crash if we don't have a desktop filename If code creates a GDesktopAppInfo via g_desktop_app_info_new_from_keyfile(), we'd try to send a NULL pointer down into GVariant. Since in this case we don't have a filename, just send the empty string. In the future we should either: 1) Change panel to use g_desktop_app_info_new_from_filename(), and take the hit of parsing the file twice. 2) Add a g_key_file_get_origin_filename() 3) Add g_desktop_app_info_new_from_keyfile_and_name() https://bugzilla.gnome.org/show_bug.cgi?id=638838 --- gio/gdesktopappinfo.c | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/gio/gdesktopappinfo.c b/gio/gdesktopappinfo.c index c80879671..f55753844 100644 --- a/gio/gdesktopappinfo.c +++ b/gio/gdesktopappinfo.c @@ -932,7 +932,7 @@ child_setup (gpointer user_data) static void notify_desktop_launch (GDBusConnection *session_bus, - const char *desktop_file, /* filename */ + GDesktopAppInfo *info, long pid, const char *display, const char *sn_id, @@ -942,6 +942,7 @@ notify_desktop_launch (GDBusConnection *session_bus, GVariantBuilder uri_variant; GVariantBuilder extras_variant; GList *iter; + const char *desktop_file_id; if (session_bus == NULL) return; @@ -956,12 +957,19 @@ notify_desktop_launch (GDBusConnection *session_bus, "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), + g_variant_new_bytestring (desktop_file_id), display ? display : "", (gint64)pid, &uri_variant, @@ -1069,7 +1077,7 @@ _g_desktop_app_info_launch_uris_internal (GAppInfo *appinfo, pid_callback (info, pid, pid_callback_data); notify_desktop_launch (session_bus, - info->filename, + info, pid, data.display, data.sn_id, From 99c740fdb58e2a7bf18fa1213c03b0be186f3581 Mon Sep 17 00:00:00 2001 From: Andika Triwidada Date: Fri, 7 Jan 2011 11:37:39 +0700 Subject: [PATCH 119/130] Updated Indonesian translation --- po/id.po | 1531 ++++++++++++++++++++++++++++++------------------------ 1 file changed, 858 insertions(+), 673 deletions(-) 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" From f85909fb65635b8321d1abf60c073ae854acae5e Mon Sep 17 00:00:00 2001 From: Pavel Holejsovsky Date: Fri, 7 Jan 2011 09:38:35 +0100 Subject: [PATCH 120/130] Add and update GI annotations in 'Settings' 'Settings' GIO group contains GSettings and GSettingsBackend. --- gio/gsettings.c | 18 +++++++++--------- gio/gsettings.h | 5 +++-- gio/gsettingsbackend.c | 12 +++++++----- 3 files changed, 19 insertions(+), 16 deletions(-) diff --git a/gio/gsettings.c b/gio/gsettings.c index 23164b5c7..943fc48b9 100644 --- a/gio/gsettings.c +++ b/gio/gsettings.c @@ -567,7 +567,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. @@ -1602,8 +1603,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 * @@ -1901,16 +1902,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 ** @@ -2135,7 +2135,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 @@ -2625,7 +2625,7 @@ 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: (type GObject.Object): a #GObject diff --git a/gio/gsettings.h b/gio/gsettings.h index 8226750cc..324ad362d 100644 --- a/gio/gsettings.h +++ b/gio/gsettings.h @@ -185,8 +185,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 029e826ba..24a6f9aa1 100644 --- a/gio/gsettingsbackend.c +++ b/gio/gsettingsbackend.c @@ -401,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 @@ -609,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, @@ -926,7 +928,7 @@ g_settings_backend_create_tree (void) /** * 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 From f6b52322a2049dfb3873922a8f1417d8c44363b0 Mon Sep 17 00:00:00 2001 From: Pavel Holejsovsky Date: Fri, 7 Jan 2011 14:52:29 +0100 Subject: [PATCH 121/130] Fix and update GI annotations for 'Volumes and Drives' Volumes and Drives GIO category contains: GVolumeMonitor, GVolume, GMount, GDrive, Unix Mounts. --- gio/gdrive.c | 34 +++++++++++++++++++--------------- gio/gmount.c | 33 ++++++++++++++++++--------------- gio/gunixmounts.c | 20 +++++++++++--------- gio/gvolume.c | 13 +++++++------ 4 files changed, 55 insertions(+), 45 deletions(-) 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/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/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/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. * From b67d9cb7eef036b76955a75e6e9cd6b8ae1fb8e4 Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Fri, 7 Jan 2011 12:07:19 -0500 Subject: [PATCH 122/130] Add regex test cases These come from https://bugzilla.gnome.org/show_bug.cgi?id=638894 --- glib/tests/regex.c | 2 ++ 1 file changed, 2 insertions(+) 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"); From 33c7a9d8ecaa75b41dbdd2a3a31ac8c62394a8b5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Javier=20Jard=C3=B3n?= Date: Fri, 7 Jan 2011 18:55:20 +0100 Subject: [PATCH 123/130] configure: Use AC_CONFIG_MACRO_DIR To keep the correct macros in-tree. --- configure.ac | 1 + 1 file changed, 1 insertion(+) diff --git a/configure.ac b/configure.ac index b27ddd0ed..e90127070 100644 --- a/configure.ac +++ b/configure.ac @@ -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} From eafa3443d39f36a3ade11154243495a77d5b089d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=20Di=C3=A9guez?= Date: Sun, 9 Jan 2011 16:35:32 +0100 Subject: [PATCH 124/130] Updated Galician translations --- po/gl.po | 386 +++++++++++++++++++++++++++---------------------------- 1 file changed, 193 insertions(+), 193 deletions(-) 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" From b0b37bcb06723ede07cc9c5c4573f12c3acb1643 Mon Sep 17 00:00:00 2001 From: Christian Persch Date: Sun, 9 Jan 2011 15:03:31 +0100 Subject: [PATCH 125/130] Update gschema.dtd Bug #639064. --- gio/gschema.dtd | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) 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 @@ + + + From a57c4c90662077163316d1d53ee18a5a0fbec393 Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Sun, 9 Jan 2011 16:43:28 -0500 Subject: [PATCH 126/130] GSettings: Fix a copy-paste error https://bugzilla.gnome.org/show_bug.cgi?id=639084 --- gio/gsettings.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gio/gsettings.c b/gio/gsettings.c index 943fc48b9..ec4800694 100644 --- a/gio/gsettings.c +++ b/gio/gsettings.c @@ -613,7 +613,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); From 42d71c0ef952a2a3b9bd685ad3bb4294f0706947 Mon Sep 17 00:00:00 2001 From: Ivar Smolin Date: Mon, 10 Jan 2011 19:44:11 +0200 Subject: [PATCH 127/130] [l10n] Updated Estonian translation --- po/et.po | 101 +++++++++++++++---------------------------------------- 1 file changed, 27 insertions(+), 74 deletions(-) diff --git a/po/et.po b/po/et.po index c0e4c39af..8f52f10e0 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. # @@ -16,8 +16,8 @@ msgstr "" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?" "product=glib&component=general\n" "POT-Creation-Date: 2010-12-17 16:41+0000\n" -"PO-Revision-Date: 2010-09-19 14:51+0300\n" -"Last-Translator: Mattias Põldaru \n" +"PO-Revision-Date: 2011-01-10 13:27+0200\n" +"Last-Translator: Ivar Smolin \n" "Language-Team: Estonian \n" "Language: et\n" "MIME-Version: 1.0\n" @@ -151,192 +151,154 @@ msgctxt "GDateTime" msgid "%H:%M:%S" msgstr "%H:%M:%S" -#, fuzzy msgctxt "full month name" msgid "January" msgstr "Jaanuar" -#, fuzzy msgctxt "full month name" msgid "February" msgstr "Veebruar" -#, fuzzy msgctxt "full month name" msgid "March" msgstr "Märts" -#, fuzzy msgctxt "full month name" msgid "April" msgstr "Aprill" -#, fuzzy msgctxt "full month name" msgid "May" msgstr "Mai" -#, fuzzy msgctxt "full month name" msgid "June" msgstr "Juuni" -#, fuzzy msgctxt "full month name" msgid "July" msgstr "Juuli" -#, fuzzy msgctxt "full month name" msgid "August" msgstr "August" -#, fuzzy msgctxt "full month name" msgid "September" msgstr "September" -#, fuzzy msgctxt "full month name" msgid "October" msgstr "Oktoober" -#, fuzzy msgctxt "full month name" msgid "November" msgstr "November" -#, fuzzy msgctxt "full month name" msgid "December" msgstr "Detsember" -#, fuzzy msgctxt "abbreviated month name" msgid "Jan" msgstr "Jaan" -#, fuzzy msgctxt "abbreviated month name" msgid "Feb" msgstr "Veebr" -#, fuzzy msgctxt "abbreviated month name" msgid "Mar" msgstr "Märts" -#, fuzzy msgctxt "abbreviated month name" msgid "Apr" msgstr "Apr" -#, fuzzy msgctxt "abbreviated month name" msgid "May" msgstr "Mai" -#, fuzzy msgctxt "abbreviated month name" msgid "Jun" msgstr "Juun" -#, fuzzy msgctxt "abbreviated month name" msgid "Jul" msgstr "Juul" -#, fuzzy msgctxt "abbreviated month name" msgid "Aug" msgstr "Aug" -#, fuzzy msgctxt "abbreviated month name" msgid "Sep" msgstr "Sept" -#, fuzzy msgctxt "abbreviated month name" msgid "Oct" msgstr "Okt" -#, fuzzy msgctxt "abbreviated month name" msgid "Nov" msgstr "Nov" -#, fuzzy msgctxt "abbreviated month name" msgid "Dec" msgstr "Dets" -#, fuzzy msgctxt "full weekday name" msgid "Monday" msgstr "Esmaspäev" -#, fuzzy msgctxt "full weekday name" msgid "Tuesday" msgstr "Teisipäev" -#, fuzzy msgctxt "full weekday name" msgid "Wednesday" msgstr "Kolmapäev" -#, fuzzy msgctxt "full weekday name" msgid "Thursday" msgstr "Neljapäev" -#, fuzzy msgctxt "full weekday name" msgid "Friday" msgstr "Reede" -#, fuzzy msgctxt "full weekday name" msgid "Saturday" msgstr "Laupäev" -#, fuzzy msgctxt "full weekday name" msgid "Sunday" msgstr "Pühapäev" -#, fuzzy msgctxt "abbreviated weekday name" msgid "Mon" msgstr "E" -#, fuzzy msgctxt "abbreviated weekday name" msgid "Tue" msgstr "T" -#, fuzzy msgctxt "abbreviated weekday name" msgid "Wed" msgstr "K" -#, fuzzy msgctxt "abbreviated weekday name" msgid "Thu" msgstr "N" -#, fuzzy msgctxt "abbreviated weekday name" msgid "Fri" msgstr "R" -#, fuzzy msgctxt "abbreviated weekday name" msgid "Sat" msgstr "L" -#, fuzzy msgctxt "abbreviated weekday name" msgid "Sun" msgstr "P" @@ -1320,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: " @@ -1595,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 "" @@ -1605,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 "" @@ -1888,9 +1848,8 @@ msgstr "Sokliaadressi jaoks ei ole piisavalt vaba ruumi" msgid "Unsupported socket address" msgstr "Toetamata sokliaadress" -#, fuzzy msgid "empty names are not permitted" -msgstr "Abstraktne nimeruum pole toetatud" +msgstr "tühjad nimed pole lubatud" #, c-format msgid "invalid name '%s': names must begin with a lowercase letter" @@ -2496,11 +2455,13 @@ msgstr "" msgid "SCHEMA[:PATH] [KEY]" msgstr "" -#, fuzzy, c-format +#, c-format msgid "" "Unknown command %s\n" "\n" -msgstr "Tundmatu käsk '%s'\n" +msgstr "" +"Tundmatu käsk '%s'\n" +"\n" msgid "" "Usage:\n" @@ -2644,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" @@ -2656,7 +2617,7 @@ 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" @@ -2667,13 +2628,13 @@ msgid "SOCKSv4a implementation limits hostname to %i characters" msgstr "" msgid "The server is not a SOCKSv4 proxy server." -msgstr "" +msgstr "Server ei ole SOCKSv4 proksiserver." msgid "Connection through SOCKSv4 server was rejected" msgstr "" msgid "The server is not a SOCKSv5 proxy server." -msgstr "" +msgstr "Server ei ole SOCKSv5 proksiserver." msgid "The SOCKSv5 proxy requires authentication." msgstr "" @@ -2748,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" @@ -2842,10 +2802,3 @@ msgstr "Vaja on rohkem sisendit" msgid "Invalid compressed data" msgstr "Vigaselt pakitud andmed" - -#~ msgid "Key %s is not writable\n" -#~ msgstr "Võti %s pole kirjutatav\n" - -#, fuzzy -#~ msgid "Do not give error for empty directory" -#~ msgstr "Kataloogi pole võimalik kataloogi peale liigutada" From 48f27317607fe117fe9aed0c2fe24ff6ef10a5d5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Javier=20Jard=C3=B3n?= Date: Mon, 10 Jan 2011 23:36:00 +0000 Subject: [PATCH 128/130] mkinstalldirs: Update to latest version --- mkinstalldirs | 95 +++++++++++++++++++++++++++++++++++++++------------ 1 file changed, 73 insertions(+), 22 deletions(-) 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 From eec2cb1af873f38091671486b5adc5d444e306b7 Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Mon, 10 Jan 2011 20:28:17 -0500 Subject: [PATCH 129/130] Avoid a segfault in g_application_register() Patch by Mikkel Kamstrup Erlandsen https://bugzilla.gnome.org/show_bug.cgi?id=639177 --- gio/gapplicationimpl-dbus.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gio/gapplicationimpl-dbus.c b/gio/gapplicationimpl-dbus.c index ca072ac02..406b8390d 100644 --- a/gio/gapplicationimpl-dbus.c +++ b/gio/gapplicationimpl-dbus.c @@ -668,7 +668,7 @@ g_application_impl_register (GApplication *application, g_free (impl->object_path); g_slice_free (GApplicationImpl, impl); - impl = NULL; + return NULL; } } @@ -676,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, From fabf506b8d5baf8f59fca563e6f1a62be5148112 Mon Sep 17 00:00:00 2001 From: Ivar Smolin Date: Tue, 11 Jan 2011 11:04:56 +0200 Subject: [PATCH 130/130] [l10n] Updated Estonian translation --- po/et.po | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/po/et.po b/po/et.po index 8f52f10e0..7a26e9504 100644 --- a/po/et.po +++ b/po/et.po @@ -16,13 +16,13 @@ msgstr "" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?" "product=glib&component=general\n" "POT-Creation-Date: 2010-12-17 16:41+0000\n" -"PO-Revision-Date: 2011-01-10 13:27+0200\n" +"PO-Revision-Date: 2011-01-11 10:37+0200\n" "Last-Translator: Ivar Smolin \n" "Language-Team: Estonian \n" -"Language: et\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 @@ -2621,28 +2621,28 @@ 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 "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 "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 "" +msgstr "SOCKSv5 proksi nõuab GLibi poolt toetamata autentimismeetodit." #, c-format msgid "Username or password is too long for SOCKSv5 protocol (max. is %i)." @@ -2679,21 +2679,21 @@ 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 "" +msgstr "PEM-kodeeritud sertifikaati ei leitud" msgid "Could not parse PEM-encoded certificate" -msgstr "" +msgstr "PEM-kodeeritud sertifikaati pole võimalik analüüsida" msgid "Could not parse PEM-encoded private key" -msgstr "" +msgstr "PEM-kodeeritud privaatvõtit pole võimalik analüüsida" #, c-format msgid "Expecting 1 control message, got %d" @@ -2722,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" @@ -2732,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"