# HG changeset patch # User Elliott Sales de Andrade # Date 1297554854 0 # Node ID 626efe139f98cce32484e61311dd4bd166652ae8 # Parent a7397a3d67ef663c702c05bb142c22f13f827631# Parent 1b1f9d6b25d07fcd2c4470fc742ca80c822b3133 propagate from branch 'im.pidgin.pidgin' (head c22777dae7e766426b17df35dbf42ba6d49bf820) to branch 'im.pidgin.cpw.qulogic.gtk3' (head 1887cd5f7ea1e4bc0950747da36d56d618ecd105) diff -r a7397a3d67ef -r 626efe139f98 COPYRIGHT --- a/COPYRIGHT Sun Jan 09 23:32:10 2011 +0000 +++ b/COPYRIGHT Sat Feb 12 23:54:14 2011 +0000 @@ -81,6 +81,7 @@ Norbert Buchmuller Johannes Buchner Sean Burke +Gabriel Burt Thomas Butter Trevor Caira Andrea Canciani @@ -131,6 +132,7 @@ Florian Delizy Jiri Denemark Vinicius Depizzol +Marc Dequènes Philip Derrin Taso N. Devetzis Balwinder Singh Dheeman @@ -279,6 +281,7 @@ Joe LaPenna Steve Láposi Daniel Larsson +Julia Lawall Peter Lawler Vadim Lebedev Ho-seok Lee @@ -377,6 +380,7 @@ Riley Patterson Havoc Pennington Ted Percival +Hugo Pereira Da Costa Eduardo Pérez Matt Perry Ani Peter @@ -411,6 +415,7 @@ Etan Reisner David Reiss Luoh Ren-Shan +Noa Resare Daniele Ricci Kristian Rietveld Pekka Riikonen @@ -580,6 +585,7 @@ Timmy Yee Li Yuan Yuriy Yevgrafov +Jan Zachorowski Nickolai Zeldovich Tom Zickel Marco Ziech diff -r a7397a3d67ef -r 626efe139f98 ChangeLog --- a/ChangeLog Sun Jan 09 23:32:10 2011 +0000 +++ b/ChangeLog Sat Feb 12 23:54:14 2011 +0000 @@ -1,14 +1,29 @@ Pidgin and Finch: The Pimpin' Penguin IM Clients That're Good for the Soul -version 2.7.10 (??/??/????): +version 2.7.11 (??/??/????): + General: + * Our bundled libgadu should now build on HP-UX. + +version 2.7.10 (02/06/2011): General: * Force video sources to all have the same capabilities. This reduces the number of times video must be scaled down, saving CPU time. (Jakub Adam) (half of #13095) * Starting multiple video calls and ending one no longer causes the other - calls to stop sending audio and video. (Jakub Adam) (#12758) + calls to stop sending audio and video. (Jakub Adam) (#12758, #13237) * Perl bindings now respect LDFLAGS. (Peter Volkov, Markos Chandras) (#12638) + * Added AddTrust External Root CA. (#11554) + * Resolve some issues validating X.509 certificates signed off the CAcert + Class 3 intermediate cert when using the GnuTLS SSL/TLS plugin. + + Gadu-Gadu: + * Don't drop whole messages when text is colored. (Jan Zachorowski) + (#13259) + + Groupwise: + * Don't show two windows when using "Get Info" on a buddy. (Gabriel Burt; + Novell, Inc.) (#13108) IRC: * Don't send ISON messages longer than 512 bytes. (Jeffrey Honig) (#9692) @@ -21,16 +36,25 @@ Samstag) (#13073) * Fixed bugs in purple_str_to_time() that caused the most recent 'make check' failures. (Nader Morshed) (#13131) + * Correct an issue that caused some UIs other than Pidgin or Finch to + leave a buddy in the "is typing" state. (Jan Kaluza) + * Fix potential information disclosure issues in the Cipher code. (Julia + Lawall) Pidgin: * Support using the Page Up and Page Down keys on the numeric keypad in the conversation window. (Ryan Flegel) (#13127) * Fix a few memory leaks. (Nader Morshed) (#13162) * Support rendering strikethrough when received as in-line CSS. (#13168) + * Editable comboboxes are now more friendly to some GTK+ themes. (Hugo + Pereira Da Costa) (#13164). Plugins: * The Voice/Video Settings plugin no longer resets selected devices to defaults. (Jakub Adam) (#13044) + * The Voice/Video Settings plugin no longer crashes when a stored device + name is not found in the list of available devices. (Jakub Adam) + (#13238) * The Autoaccept plugin now allows disabling filename escaping. (Rok Mandeljc) (half of #11459) * The Autoaccept plugin now allows choosing Reject/Ask/Accept for @@ -42,6 +66,11 @@ XMPP: * Don't crash when receiving an unexpected/invalid jingle transport type. (Nikita Kozlov) (#13136) + * Handle Connection: Close headers for BOSH, when the server does not + terminate the connection itself. (#13008) + * Improved parsing for DIGEST-MD5, which should resolve issues + connecting to some jabberd2 servers. This corrects an issue parsing + one-character or empty elements. (Noa Resare) (#a14514) Yahoo!/Yahoo! JAPAN: * Fix a crash when an account disconnects before a p2p session is @@ -927,7 +956,7 @@ from you on MSN. * Support sending an invite message to buddies when requesting authorization from them on MSN. - * Timeout switchboard connections aggressively (60 seconds). + * Timeout switchboard connections after 60 seconds (msn-pecan devs). XMPP: * Voice & Video support with Jingle (XEP-0166, 0167, 0176, & 0177), diff -r a7397a3d67ef -r 626efe139f98 ChangeLog.API --- a/ChangeLog.API Sun Jan 09 23:32:10 2011 +0000 +++ b/ChangeLog.API Sat Feb 12 23:54:14 2011 +0000 @@ -1,6 +1,11 @@ Pidgin and Finch: The Pimpin' Penguin IM Clients That're Good for the Soul -version 2.7.9 (??/??/????): +version 2.7.11 (??/??/????): + +version 2.7.10 (02/06/2011): + * No changes + +version 2.7.9 (12/26/2010): * No changes version 2.7.8 (12/19/2010): diff -r a7397a3d67ef -r 626efe139f98 NEWS --- a/NEWS Sun Jan 09 23:32:10 2011 +0000 +++ b/NEWS Sat Feb 12 23:54:14 2011 +0000 @@ -2,7 +2,13 @@ Our development blog is available at: http://planet.pidgin.im -2.7.10 (??/??/????): +2.7.11 (??/??/????): + +2.7.10 (02/06/2011): + John: It's release time again. This release contains a bunch of stuff + committed from Trac. This is another "thank a patch writer" release. + Unfortunately, no one has fixed our wonderful MSN issues yet. There is + a tiny security fix in this release, as well. 2.7.9 (12/26/2010): John: Just a quick release for a security fix here. Elliott has not diff -r a7397a3d67ef -r 626efe139f98 configure.ac --- a/configure.ac Sun Jan 09 23:32:10 2011 +0000 +++ b/configure.ac Sat Feb 12 23:54:14 2011 +0000 @@ -46,7 +46,7 @@ m4_define([purple_lt_current], [7]) m4_define([purple_major_version], [2]) m4_define([purple_minor_version], [7]) -m4_define([purple_micro_version], [10]) +m4_define([purple_micro_version], [11]) m4_define([purple_version_suffix], [devel]) m4_define([purple_version], [purple_major_version.purple_minor_version.purple_micro_version]) @@ -55,7 +55,7 @@ m4_define([gnt_lt_current], [8]) m4_define([gnt_major_version], [2]) m4_define([gnt_minor_version], [8]) -m4_define([gnt_micro_version], [6]) +m4_define([gnt_micro_version], [7]) m4_define([gnt_version_suffix], [devel]) m4_define([gnt_version], [gnt_major_version.gnt_minor_version.gnt_micro_version]) @@ -329,7 +329,7 @@ dnl ####################################################################### dnl # Check for GLib 2.12 (required) dnl ####################################################################### -PKG_CHECK_MODULES(GLIB, [glib-2.0 >= 2.12.0 gio-2.0 gobject-2.0 gmodule-2.0 gthread-2.0], , [ +PKG_CHECK_MODULES(GLIB, [glib-2.0 >= 2.12.0 gobject-2.0 gmodule-2.0 gthread-2.0], , [ AC_MSG_RESULT(no) AC_MSG_ERROR([ diff -r a7397a3d67ef -r 626efe139f98 libpurple/certificate.c --- a/libpurple/certificate.c Sun Jan 09 23:32:10 2011 +0000 +++ b/libpurple/certificate.c Sat Feb 12 23:54:14 2011 +0000 @@ -1602,7 +1602,7 @@ GSList *ca_crts, *cur; GByteArray *last_fpr, *ca_fpr; gboolean valid = FALSE; - gchar *ca_id; + gchar *ca_id, *ca2_id; peer_crt = (PurpleCertificate *) chain->data; @@ -1619,7 +1619,6 @@ return; } /* if (self signed) */ - /* Next, attempt to verify the last certificate against a CA */ ca = purple_certificate_find_pool(x509_tls_cached.scheme_name, "ca"); /* Next, check that the certificate chain is valid */ @@ -1669,6 +1668,9 @@ return; } /* if (signature chain not good) */ + /* Next, attempt to verify the last certificate is signed by a trusted + * CA, or is a trusted CA (based on fingerprint). + */ /* If, for whatever reason, there is no Certificate Authority pool loaded, we'll verify the subject name and then warn about thsi. */ if ( !ca ) { @@ -1684,27 +1686,31 @@ end_crt = g_list_last(chain)->data; - /* Attempt to look up the last certificate's issuer */ - ca_id = purple_certificate_get_issuer_unique_id(end_crt); + /* Attempt to look up the last certificate, and the last certificate's + * issuer. + */ + ca_id = purple_certificate_get_issuer_unique_id(end_crt); + ca2_id = purple_certificate_get_unique_id(end_crt); purple_debug_info("certificate/x509/tls_cached", "Checking for a CA with DN=%s\n", ca_id); - ca_crts = x509_ca_get_certs(ca_id); + purple_debug_info("certificate/x509/tls_cached", + "Also checking for a CA with DN=%s\n", + ca2_id); + ca_crts = g_slist_concat(x509_ca_get_certs(ca_id), x509_ca_get_certs(ca2_id)); + g_free(ca_id); + g_free(ca2_id); if ( NULL == ca_crts ) { flags |= PURPLE_CERTIFICATE_CA_UNKNOWN; purple_debug_warning("certificate/x509/tls_cached", - "Certificate Authority with DN='%s' not " - "found. I'll prompt the user, I guess.\n", - ca_id); - g_free(ca_id); + "No Certificate Authorities with either DN found " + "found. I'll prompt the user, I guess.\n"); x509_tls_cached_check_subject_name(vrq, flags); return; } - g_free(ca_id); - /* * Check the fingerprints; if they match, then this certificate *is* one * of the designated "trusted roots", and we don't need to verify the @@ -1714,10 +1720,6 @@ * * If the fingerprints don't match, we'll fall back to checking the * signature. - * - * GnuTLS doesn't seem to include the final root in the verification - * list, so this check will never succeed. NSS *does* include it in - * the list, so here we are. */ last_fpr = purple_certificate_get_fingerprint_sha1(end_crt); for (cur = ca_crts; cur; cur = cur->next) { diff -r a7397a3d67ef -r 626efe139f98 libpurple/cipher.c --- a/libpurple/cipher.c Sun Jan 09 23:32:10 2011 +0000 +++ b/libpurple/cipher.c Sat Feb 12 23:54:14 2011 +0000 @@ -249,7 +249,7 @@ purple_cipher_context_reset(context, NULL); md5_context = purple_cipher_context_get_data(context); - memset(md5_context, 0, sizeof(md5_context)); + memset(md5_context, 0, sizeof(*md5_context)); g_free(md5_context); md5_context = NULL; @@ -705,7 +705,7 @@ purple_cipher_context_reset(context, NULL); md4_context = purple_cipher_context_get_data(context); - memset(md4_context, 0, sizeof(md4_context)); + memset(md4_context, 0, sizeof(*md4_context)); g_free(md4_context); md4_context = NULL; @@ -1356,7 +1356,7 @@ struct _des_ctx *des_context; des_context = purple_cipher_context_get_data(context); - memset(des_context, 0, sizeof(des_context)); + memset(des_context, 0, sizeof(*des_context)); g_free(des_context); des_context = NULL; @@ -1706,7 +1706,7 @@ struct _des3_ctx *des3_context; des3_context = purple_cipher_context_get_data(context); - memset(des3_context, 0, sizeof(des3_context)); + memset(des3_context, 0, sizeof(*des3_context)); g_free(des3_context); des3_context = NULL; @@ -2382,7 +2382,7 @@ struct RC4Context *rc4_ctx; rc4_ctx = purple_cipher_context_get_data(context); - memset(rc4_ctx, 0, sizeof(rc4_ctx)); + memset(rc4_ctx, 0, sizeof(*rc4_ctx)); g_free(rc4_ctx); rc4_ctx = NULL; @@ -2828,7 +2828,7 @@ if(cipher->ops && cipher->ops->uninit) cipher->ops->uninit(context); - memset(context, 0, sizeof(context)); + memset(context, 0, sizeof(*context)); g_free(context); context = NULL; } diff -r a7397a3d67ef -r 626efe139f98 libpurple/conversation.c --- a/libpurple/conversation.c Sun Jan 09 23:32:10 2011 +0000 +++ b/libpurple/conversation.c Sat Feb 12 23:54:14 2011 +0000 @@ -999,12 +999,6 @@ } } - if (purple_conversation_get_type(conv) == PURPLE_CONV_TYPE_IM) { - if ((flags & PURPLE_MESSAGE_RECV) == PURPLE_MESSAGE_RECV) { - purple_conv_im_set_typing_state(PURPLE_CONV_IM(conv), PURPLE_NOT_TYPING); - } - } - if (ops && ops->write_conv) ops->write_conv(conv, who, alias, displayed, flags, mtime); @@ -1229,6 +1223,10 @@ c->ui_ops->write_im(c, who, message, flags, mtime); else purple_conversation_write(c, who, message, flags, mtime); + + if ((flags & PURPLE_MESSAGE_RECV) == PURPLE_MESSAGE_RECV) { + purple_conv_im_set_typing_state(im, PURPLE_NOT_TYPING); + } } gboolean purple_conv_present_error(const char *who, PurpleAccount *account, const char *what) diff -r a7397a3d67ef -r 626efe139f98 libpurple/media/backend-fs2.c --- a/libpurple/media/backend-fs2.c Sun Jan 09 23:32:10 2011 +0000 +++ b/libpurple/media/backend-fs2.c Sat Feb 12 23:54:14 2011 +0000 @@ -155,6 +155,44 @@ { } +static gboolean +event_probe_cb(GstPad *srcpad, GstEvent *event, gboolean release_pad) +{ + if (GST_EVENT_TYPE(event) == GST_EVENT_CUSTOM_DOWNSTREAM + && gst_event_has_name(event, "purple-unlink-tee")) { + + const GstStructure *s = gst_event_get_structure(event); + + gst_pad_unlink(srcpad, gst_pad_get_peer(srcpad)); + + gst_pad_remove_event_probe(srcpad, + g_value_get_uint(gst_structure_get_value(s, "handler-id"))); + + if (g_value_get_boolean(gst_structure_get_value(s, "release-pad"))) + gst_element_release_request_pad(GST_ELEMENT_PARENT(srcpad), srcpad); + + return FALSE; + } + + return TRUE; +} + +static void +unlink_teepad_dynamic(GstPad *srcpad, gboolean release_pad) +{ + guint id = gst_pad_add_event_probe(srcpad, G_CALLBACK(event_probe_cb), NULL); + + if (GST_IS_GHOST_PAD(srcpad)) + srcpad = gst_ghost_pad_get_target(GST_GHOST_PAD(srcpad)); + + gst_element_send_event(gst_pad_get_parent_element(srcpad), + gst_event_new_custom(GST_EVENT_CUSTOM_DOWNSTREAM, + gst_structure_new("purple-unlink-tee", + "release-pad", G_TYPE_BOOLEAN, release_pad, + "handler-id", G_TYPE_UINT, id, + NULL))); +} + static void purple_media_backend_fs2_dispose(GObject *obj) { @@ -179,7 +217,7 @@ g_list_delete_link(sessions, sessions)) { PurpleMediaBackendFs2Session *session = sessions->data; if (session->srcpad) { - gst_pad_set_blocked(session->srcpad, TRUE); + unlink_teepad_dynamic(session->srcpad, FALSE); gst_object_unref(session->srcpad); session->srcpad = NULL; } diff -r a7397a3d67ef -r 626efe139f98 libpurple/mediamanager.c --- a/libpurple/mediamanager.c Sun Jan 09 23:32:10 2011 +0000 +++ b/libpurple/mediamanager.c Sat Feb 12 23:54:14 2011 +0000 @@ -400,7 +400,6 @@ GstIteratorResult result; gst_element_release_request_pad(GST_ELEMENT_PARENT(pad), pad); - gst_pad_set_blocked(pad, FALSE); iter = gst_element_iterate_src_pads(parent); diff -r a7397a3d67ef -r 626efe139f98 libpurple/protocols/gg/gg.c --- a/libpurple/protocols/gg/gg.c Sun Jan 09 23:32:10 2011 +0000 +++ b/libpurple/protocols/gg/gg.c Sat Feb 12 23:54:14 2011 +0000 @@ -1464,6 +1464,10 @@ increased_len += 4; under = FALSE; } + + if (actformat->font & GG_FONT_COLOR) { + cformats += sizeof(struct gg_msg_richtext_color); + } } msg = message->str; diff -r a7397a3d67ef -r 626efe139f98 libpurple/protocols/gg/lib/libgadu.h --- a/libpurple/protocols/gg/lib/libgadu.h Sun Jan 09 23:32:10 2011 +0000 +++ b/libpurple/protocols/gg/lib/libgadu.h Sat Feb 12 23:54:14 2011 +0000 @@ -117,7 +117,7 @@ typedef unsigned short uint16_t; typedef unsigned int uint32_t; -#if !defined(__CYGWIN__) && !defined(__SunOS) +#if !defined(__CYGWIN__) && !defined(__SunOS) && !defined(_INCLUDE_HPUX_SOURCE) #define __int8_t_defined typedef signed char int8_t; typedef signed short int16_t; diff -r a7397a3d67ef -r 626efe139f98 libpurple/protocols/jabber/Makefile.am --- a/libpurple/protocols/jabber/Makefile.am Sun Jan 09 23:32:10 2011 +0000 +++ b/libpurple/protocols/jabber/Makefile.am Sat Feb 12 23:54:14 2011 +0000 @@ -11,6 +11,7 @@ auth.c \ auth.h \ auth_digest_md5.c \ + auth_digest_md5.h \ auth_plain.c \ auth_scram.c \ auth_scram.h \ diff -r a7397a3d67ef -r 626efe139f98 libpurple/protocols/jabber/auth_cyrus.c --- a/libpurple/protocols/jabber/auth_cyrus.c Sun Jan 09 23:32:10 2011 +0000 +++ b/libpurple/protocols/jabber/auth_cyrus.c Sat Feb 12 23:54:14 2011 +0000 @@ -520,9 +520,12 @@ g_free(dec_in); if (js->sasl_state != SASL_OK) { - /* This should never happen! */ + /* This happens when the server sends back jibberish + * in the "additional data with success" case. + * Seen with Wildfire 3.0.1. + */ *error = g_strdup(_("Invalid response from server")); - g_return_val_if_reached(JABBER_SASL_STATE_FAIL); + return JABBER_SASL_STATE_FAIL; } } diff -r a7397a3d67ef -r 626efe139f98 libpurple/protocols/jabber/auth_digest_md5.c --- a/libpurple/protocols/jabber/auth_digest_md5.c Sun Jan 09 23:32:10 2011 +0000 +++ b/libpurple/protocols/jabber/auth_digest_md5.c Sat Feb 12 23:54:14 2011 +0000 @@ -27,6 +27,7 @@ #include "util.h" #include "xmlnode.h" +#include "auth_digest_md5.h" #include "auth.h" #include "jabber.h" @@ -43,7 +44,7 @@ } /* Parts of this algorithm are inspired by stuff in libgsasl */ -static GHashTable* parse_challenge(const char *challenge) +GHashTable* jabber_auth_digest_md5_parse(const char *challenge) { const char *token_start, *val_start, *val_end, *cur; GHashTable *ret = g_hash_table_new_full(g_str_hash, g_str_equal, @@ -77,12 +78,12 @@ val_start++; val_end = cur; - while (val_end != val_start && (*val_end == ' ' || *val_end == ',' || *val_end == '\t' + while (val_end >= val_start && (*val_end == ' ' || *val_end == ',' || *val_end == '\t' || *val_end == '\r' || *val_end == '\n' || *val_end == '"' || *val_end == '\0')) val_end--; - if (val_start != val_end) + if (val_end - val_start + 1 >= 0) value = g_strndup(val_start, val_end - val_start + 1); } @@ -186,7 +187,7 @@ dec_in != NULL ? strlen(dec_in) : 0, dec_in != NULL ? dec_in : "(null)"); - parts = parse_challenge(dec_in); + parts = jabber_auth_digest_md5_parse(dec_in); if (g_hash_table_lookup(parts, "rspauth")) { char *rspauth = g_hash_table_lookup(parts, "rspauth"); diff -r a7397a3d67ef -r 626efe139f98 libpurple/protocols/jabber/auth_digest_md5.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/libpurple/protocols/jabber/auth_digest_md5.h Sat Feb 12 23:54:14 2011 +0000 @@ -0,0 +1,39 @@ +/** + * @file auth_digest_md5.h Implementation of SASL DIGEST-MD5 authentication + * + * purple + * + * Purple is the legal property of its developers, whose names are too numerous + * to list here. Please refer to the COPYRIGHT file distributed with this + * source distribution. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program 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 General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA + */ +#ifndef PURPLE_JABBER_AUTH_DIGEST_MD5_H_ +#define PURPLE_JABBER_AUTH_DIGEST_MD5_H_ + +#include "internal.h" + +/* + * Every function in this file is ONLY exposed for tests. + * DO NOT USE ANYTHING HERE OR YOU WILL BE SENT TO THE PIT OF DESPAIR. + */ + +/* + * Parse a DIGEST-MD5 challenge. + */ +GHashTable *jabber_auth_digest_md5_parse(const char *challenge); + +#endif /* PURPLE_JABBER_AUTH_DIGEST_MD5_H_ */ diff -r a7397a3d67ef -r 626efe139f98 libpurple/protocols/jabber/bosh.c --- a/libpurple/protocols/jabber/bosh.c Sun Jan 09 23:32:10 2011 +0000 +++ b/libpurple/protocols/jabber/bosh.c Sat Feb 12 23:54:14 2011 +0000 @@ -108,8 +108,27 @@ int requests; /* number of outstanding HTTP requests */ gboolean headers_done; + gboolean close; +}; -}; +static void +debug_dump_http_connections(PurpleBOSHConnection *conn) +{ + int i; + + g_return_if_fail(conn != NULL); + + for (i = 0; i < NUM_HTTP_CONNECTIONS; ++i) { + PurpleHTTPConnection *httpconn = conn->connections[i]; + if (httpconn == NULL) + purple_debug_misc("jabber", "BOSH %p->connections[%d] = (nil)\n", + conn, i); + else + purple_debug_misc("jabber", "BOSH %p->connections[%d] = %p, state = %d" + ", requests = %d\n", conn, i, httpconn, + httpconn->state, httpconn->requests); + } +} static void http_connection_connect(PurpleHTTPConnection *conn); static void http_connection_send_request(PurpleHTTPConnection *conn, @@ -263,18 +282,8 @@ { int i; - if (purple_debug_is_verbose()) { - for (i = 0; i < NUM_HTTP_CONNECTIONS; ++i) { - PurpleHTTPConnection *httpconn = conn->connections[i]; - if (httpconn == NULL) - purple_debug_misc("jabber", "BOSH %p->connections[%d] = (nil)\n", - conn, i); - else - purple_debug_misc("jabber", "BOSH %p->connections[%d] = %p, state = %d" - ", requests = %d\n", conn, i, httpconn, - httpconn->state, httpconn->requests); - } - } + if (purple_debug_is_verbose()) + debug_dump_http_connections(conn); /* Easy solution: Does everyone involved support pipelining? Hooray! Just use * one TCP connection! */ @@ -297,11 +306,23 @@ return NULL; } - /* Third loop, look for one that's NULL and create a new connection */ + /* Third loop, is something offline that we can connect? */ + for (i = 0; i < NUM_HTTP_CONNECTIONS; ++i) { + if (conn->connections[i] && + conn->connections[i]->state == HTTP_CONN_OFFLINE) { + purple_debug_info("jabber", "bosh: Reconnecting httpconn " + "(%i, %p)\n", i, conn->connections[i]); + http_connection_connect(conn->connections[i]); + return NULL; + } + } + + /* Fourth loop, look for one that's NULL and create a new connection */ for (i = 0; i < NUM_HTTP_CONNECTIONS; ++i) { if (!conn->connections[i]) { - purple_debug_info("jabber", "bosh: Creating and connecting new httpconn\n"); conn->connections[i] = jabber_bosh_http_connection_init(conn); + purple_debug_info("jabber", "bosh: Creating and connecting new httpconn " + "(%i, %p)\n", i, conn->connections[i]); http_connection_connect(conn->connections[i]); return NULL; @@ -344,6 +365,8 @@ chosen = find_available_http_connection(conn); if (!chosen) { + if (type == PACKET_FLUSH) + return; /* * For non-ordinary traffic, we can't 'buffer' it, so use the * first connection. @@ -444,6 +467,27 @@ send_timer_cb(bosh); } +static void +jabber_bosh_disable_pipelining(PurpleBOSHConnection *bosh) +{ + /* Do nothing if it's already disabled */ + if (!bosh->pipelining) + return; + + purple_debug_info("jabber", "BOSH: Disabling pipelining on conn %p\n", + bosh); + bosh->pipelining = FALSE; + if (bosh->connections[1] == NULL) { + bosh->connections[1] = jabber_bosh_http_connection_init(bosh); + http_connection_connect(bosh->connections[1]); + } else { + /* Shouldn't happen; this should be the only place pipelining + * is turned off. + */ + g_warn_if_reached(); + } +} + static void jabber_bosh_connection_received(PurpleBOSHConnection *conn, xmlnode *node) { xmlnode *child; JabberStream *js = conn->js; @@ -611,6 +655,8 @@ static void connection_common_established_cb(PurpleHTTPConnection *conn) { + purple_debug_misc("jabber", "bosh: httpconn %p re-connected\n", conn); + /* Indicate we're ready and reset some variables */ conn->state = HTTP_CONN_CONNECTED; if (conn->requests != 0) @@ -622,9 +668,13 @@ g_string_free(conn->read_buf, TRUE); conn->read_buf = NULL; } + conn->close = FALSE; conn->headers_done = FALSE; conn->handled_len = conn->body_len = 0; + if (purple_debug_is_verbose()) + debug_dump_http_connections(conn->bosh); + if (conn->bosh->js->reinit) jabber_bosh_connection_send(conn->bosh, PACKET_NORMAL, NULL); else if (conn->bosh->state == BOSH_CONN_ONLINE) { @@ -639,6 +689,7 @@ static void http_connection_disconnected(PurpleHTTPConnection *conn) { + gboolean had_requests = FALSE; /* * Well, then. Fine! I never liked you anyway, server! I was cheating on you * with AIM! @@ -662,7 +713,8 @@ conn->writeh = 0; } - if (conn->requests > 0 && conn->read_buf->len == 0) { + had_requests = (conn->requests > 0); + if (had_requests && conn->read_buf->len == 0) { purple_debug_error("jabber", "bosh: Adjusting BOSHconn requests (%d) to %d\n", conn->bosh->requests, conn->bosh->requests - conn->requests); conn->bosh->requests -= conn->requests; @@ -671,13 +723,15 @@ if (conn->bosh->pipelining) { /* Hmmmm, fall back to multiple connections */ - conn->bosh->pipelining = FALSE; - if (conn->bosh->connections[1] == NULL) { - conn->bosh->connections[1] = jabber_bosh_http_connection_init(conn->bosh); - http_connection_connect(conn->bosh->connections[1]); - } + jabber_bosh_disable_pipelining(conn->bosh); } + if (!had_requests) + /* If the server disconnected us without any requests, let's + * just wait until we have something to send before we reconnect + */ + return; + if (++conn->bosh->failed_connections == MAX_FAILED_CONNECTIONS) { purple_connection_error_reason(conn->bosh->js->gc, PURPLE_CONNECTION_ERROR_NETWORK_ERROR, @@ -704,30 +758,49 @@ cursor = conn->read_buf->str + conn->handled_len; + if (purple_debug_is_verbose()) + purple_debug_misc("jabber", "BOSH server sent: %s\n", cursor); + + /* TODO: Chunked encoding and check response version :/ */ if (!conn->headers_done) { - const char *content_length = purple_strcasestr(cursor, "\r\nContent-Length"); + const char *content_length = purple_strcasestr(cursor, "\r\nContent-Length:"); + const char *connection = purple_strcasestr(cursor, "\r\nConnection:"); const char *end_of_headers = strstr(cursor, "\r\n\r\n"); /* Make sure Content-Length is in headers, not body */ if (content_length && (!end_of_headers || content_length < end_of_headers)) { - const char *sep; int len; - if ((sep = strstr(content_length, ": ")) == NULL || - strstr(sep, "\r\n") == NULL) + if (strstr(content_length, "\r\n") == NULL) /* * The packet ends in the middle of the Content-Length line. * We'll try again later when we have more. */ return; - len = atoi(sep + 2); + len = atoi(content_length + strlen("\r\nContent-Length:")); if (len == 0) - purple_debug_warning("jabber", "Found mangled Content-Length header.\n"); + purple_debug_warning("jabber", "Found mangled Content-Length header, or server returned 0-length response.\n"); conn->body_len = len; } + if (connection && (!end_of_headers || content_length < end_of_headers)) { + const char *tmp; + if (strstr(connection, "\r\n") == NULL) + return; + + + tmp = connection + strlen("\r\nConnection:"); + while (*tmp && (*tmp == ' ' || *tmp == '\t')) + ++tmp; + + if (!g_ascii_strncasecmp(tmp, "close", strlen("close"))) { + conn->close = TRUE; + jabber_bosh_disable_pipelining(conn->bosh); + } + } + if (end_of_headers) { conn->headers_done = TRUE; conn->handled_len = end_of_headers - conn->read_buf->str + 4; @@ -752,6 +825,14 @@ http_received_cb(conn->read_buf->str + conn->handled_len, conn->body_len, conn->bosh); + /* Connection: Close? */ + if (conn->close && conn->state == HTTP_CONN_CONNECTED) { + if (purple_debug_is_verbose()) + purple_debug_misc("jabber", "bosh (%p), server sent Connection: " + "close\n", conn); + http_connection_disconnected(conn); + } + if (conn->bosh->state == BOSH_CONN_ONLINE && (conn->bosh->requests == 0 || conn->bosh->pending->bufused > 0)) { purple_debug_misc("jabber", "BOSH: Sending an empty request\n"); @@ -791,10 +872,11 @@ if (cnt == 0 || (cnt < 0 && errno != EAGAIN)) { if (cnt < 0) - purple_debug_info("jabber", "bosh read=%d, errno=%d, error=%s\n", - cnt, errno, g_strerror(errno)); + purple_debug_info("jabber", "BOSH (%p) read=%d, errno=%d, error=%s\n", + conn, cnt, errno, g_strerror(errno)); else - purple_debug_info("jabber", "bosh server closed the connection\n"); + purple_debug_info("jabber", "BOSH server closed the connection (%p)\n", + conn); /* * If the socket is closed, the processing really needs to know about @@ -911,6 +993,9 @@ else ret = write(conn->fd, data, len); + if (purple_debug_is_verbose()) + purple_debug_misc("jabber", "BOSH (%p): wrote %d bytes\n", conn, ret); + return ret; } @@ -975,7 +1060,10 @@ if (purple_debug_is_unsafe() && purple_debug_is_verbose()) /* Will contain passwords for SASL PLAIN and is verbose */ - purple_debug_misc("jabber", "BOSH: Sending %s\n", data); + purple_debug_misc("jabber", "BOSH (%p): Sending %s\n", conn, data); + else if (purple_debug_is_verbose()) + purple_debug_misc("jabber", "BOSH (%p): Sending request of " + "%" G_GSIZE_FORMAT " bytes.\n", conn, len); if (conn->writeh == 0) ret = http_connection_do_send(conn, data, len); diff -r a7397a3d67ef -r 626efe139f98 libpurple/protocols/msn/error.c --- a/libpurple/protocols/msn/error.c Sun Jan 09 23:32:10 2011 +0000 +++ b/libpurple/protocols/msn/error.c Sat Feb 12 23:54:14 2011 +0000 @@ -31,7 +31,7 @@ typedef struct { - PurpleConnection *gc; + MsnSession *session; char *who; char *group; gboolean add; @@ -293,9 +293,9 @@ group = purple_find_group(data->group); if (group != NULL) - buddy = purple_find_buddy_in_group(purple_connection_get_account(data->gc), data->who, group); + buddy = purple_find_buddy_in_group(data->session->account, data->who, group); else - buddy = purple_find_buddy(purple_connection_get_account(data->gc), data->who); + buddy = purple_find_buddy(data->session->account, data->who); if (buddy != NULL) purple_blist_remove_buddy(buddy); @@ -309,14 +309,9 @@ /* this *should* be necessary !! */ msn_complete_sync_issue(data); #endif + MsnUserList *userlist = data->session->userlist; - if (g_list_find(purple_connections_get_all(), data->gc) != NULL) - { - MsnSession *session = data->gc->proto_data; - MsnUserList *userlist = session->userlist; - - msn_userlist_add_buddy(userlist, data->who, data->group); - } + msn_userlist_add_buddy(userlist, data->who, data->group); g_free(data->group); g_free(data->who); @@ -326,18 +321,14 @@ static void msn_rem_cb(MsnAddRemData *data) { + MsnUserList *userlist = data->session->userlist; msn_complete_sync_issue(data); - if (g_list_find(purple_connections_get_all(), data->gc) != NULL) - { - MsnSession *session = data->gc->proto_data; - MsnUserList *userlist = session->userlist; - if (data->group == NULL) { - msn_userlist_rem_buddy_from_list(userlist, data->who, MSN_LIST_FL); - } else { - g_free(data->group); - } + if (data->group == NULL) { + msn_userlist_rem_buddy_from_list(userlist, data->who, MSN_LIST_FL); + } else { + g_free(data->group); } g_free(data->who); @@ -356,10 +347,10 @@ account = session->account; gc = purple_account_get_connection(account); - data = g_new0(MsnAddRemData, 1); - data->who = g_strdup(passport); - data->group = g_strdup(group_name); - data->gc = gc; + data = g_new0(MsnAddRemData, 1); + data->who = g_strdup(passport); + data->group = g_strdup(group_name); + data->session = session; msg = g_strdup_printf(_("Buddy list synchronization issue in %s (%s)"), purple_account_get_username(account), @@ -382,7 +373,7 @@ } purple_request_action(gc, NULL, msg, reason, PURPLE_DEFAULT_ACTION_NONE, - purple_connection_get_account(gc), data->who, NULL, + account, data->who, NULL, data, 2, _("Yes"), G_CALLBACK(msn_add_cb), _("No"), G_CALLBACK(msn_rem_cb)); @@ -390,3 +381,4 @@ g_free(reason); g_free(msg); } + diff -r a7397a3d67ef -r 626efe139f98 libpurple/protocols/msn/msg.c --- a/libpurple/protocols/msn/msg.c Sun Jan 09 23:32:10 2011 +0000 +++ b/libpurple/protocols/msn/msg.c Sat Feb 12 23:54:14 2011 +0000 @@ -613,15 +613,7 @@ if (msg->msnslp_message) { - g_string_append_printf(str, "Session ID: %u\r\n", msg->part->header->session_id); - g_string_append_printf(str, "ID: %u\r\n", msg->part->header->id); - g_string_append_printf(str, "Offset: %" G_GUINT64_FORMAT "\r\n", msg->part->header->offset); - g_string_append_printf(str, "Total size: %" G_GUINT64_FORMAT "\r\n", msg->part->header->total_size); - g_string_append_printf(str, "Length: %u\r\n", msg->part->header->length); - g_string_append_printf(str, "Flags: 0x%x\r\n", msg->part->header->flags); - g_string_append_printf(str, "ACK ID: %u\r\n", msg->part->header->ack_id); - g_string_append_printf(str, "SUB ID: %u\r\n", msg->part->header->ack_sub_id); - g_string_append_printf(str, "ACK Size: %" G_GUINT64_FORMAT "\r\n", msg->part->header->ack_size); + msn_slpmsgpart_to_string(msg->part, str); if (purple_debug_is_verbose() && body != NULL) { @@ -638,27 +630,17 @@ else { int i; - int bin_len; - if (msg->part->footer->value == P2P_APPID_SESSION) - bin_len = P2P_PACKET_HEADER_SIZE; - else - bin_len = body_len; - - for (i = 0; i < bin_len; i++) + for (i = 0; i < body_len; i++) { g_string_append_printf(str, "%.2hhX ", body[i]); if ((i % 16) == 15) g_string_append(str, "\r\n"); } - if (bin_len == P2P_PACKET_HEADER_SIZE) - g_string_append_printf(str, "%s ", body + P2P_PACKET_HEADER_SIZE); g_string_append(str, "\r\n"); } } - - g_string_append_printf(str, "Footer: 0x%08X\r\n", msg->part->footer->value); } else { diff -r a7397a3d67ef -r 626efe139f98 libpurple/protocols/msn/msg.h --- a/libpurple/protocols/msn/msg.h Sun Jan 09 23:32:10 2011 +0000 +++ b/libpurple/protocols/msn/msg.h Sat Feb 12 23:54:14 2011 +0000 @@ -79,7 +79,6 @@ MsnMsgType type; gboolean msnslp_message; - MsnSlpMessage *slpmsg; MsnSlpMessagePart *part; char *remote_user; @@ -99,7 +98,6 @@ been ref'ed for using it in a callback. */ MsnCommand *cmd; - MsnTransaction *trans; MsnMsgCb ack_cb; /**< The callback to call when we receive an ACK of this message. */ @@ -107,8 +105,6 @@ message. */ void *ack_data; /**< The data used by callbacks. */ - MsnMsgErrorType error; /**< The error of the message. */ - guint32 retries; }; diff -r a7397a3d67ef -r 626efe139f98 libpurple/protocols/msn/p2p.c --- a/libpurple/protocols/msn/p2p.c Sun Jan 09 23:32:10 2011 +0000 +++ b/libpurple/protocols/msn/p2p.c Sat Feb 12 23:54:14 2011 +0000 @@ -27,12 +27,32 @@ #include "p2p.h" #include "msnutils.h" -MsnP2PHeader * -msn_p2p_header_from_wire(const char *wire) +MsnP2PInfo * +msn_p2p_info_new(void) +{ + return g_new0(MsnP2PInfo, 1); +} + +MsnP2PInfo * +msn_p2p_info_dup(MsnP2PInfo *info) +{ + MsnP2PInfo *new_info = g_new0(MsnP2PInfo, 1); + *new_info = *info; + return new_info; +} + +void +msn_p2p_info_free(MsnP2PInfo *info) +{ + g_free(info); +} + +size_t +msn_p2p_header_from_wire(MsnP2PInfo *info, const char *wire) { MsnP2PHeader *header; - header = g_new(MsnP2PHeader, 1); + header = &info->header; header->session_id = msn_pop32le(wire); header->id = msn_pop32le(wire); @@ -44,15 +64,17 @@ header->ack_sub_id = msn_pop32le(wire); header->ack_size = msn_pop64le(wire); - return header; + return P2P_PACKET_HEADER_SIZE; } char * -msn_p2p_header_to_wire(MsnP2PHeader *header) +msn_p2p_header_to_wire(MsnP2PInfo *info, size_t *len) { + MsnP2PHeader *header; char *wire; char *tmp; + header = &info->header; tmp = wire = g_new(char, P2P_PACKET_HEADER_SIZE); msn_push32le(tmp, header->session_id); @@ -65,35 +87,58 @@ msn_push32le(tmp, header->ack_sub_id); msn_push64le(tmp, header->ack_size); + if (len) + *len = P2P_PACKET_HEADER_SIZE; + return wire; } -MsnP2PFooter * -msn_p2p_footer_from_wire(const char *wire) +size_t +msn_p2p_footer_from_wire(MsnP2PInfo *info, const char *wire) { MsnP2PFooter *footer; - footer = g_new(MsnP2PFooter, 1); + footer = &info->footer; footer->value = msn_pop32be(wire); - return footer; + return P2P_PACKET_FOOTER_SIZE; } char * -msn_p2p_footer_to_wire(MsnP2PFooter *footer) +msn_p2p_footer_to_wire(MsnP2PInfo *info, size_t *len) { + MsnP2PFooter *footer; char *wire; char *tmp; + footer = &info->footer; tmp = wire = g_new(char, P2P_PACKET_FOOTER_SIZE); msn_push32be(tmp, footer->value); + if (len) + *len = P2P_PACKET_FOOTER_SIZE; + return wire; } +void +msn_p2p_info_to_string(MsnP2PInfo *info, GString *str) +{ + g_string_append_printf(str, "Session ID: %u\r\n", info->header.session_id); + g_string_append_printf(str, "ID: %u\r\n", info->header.id); + g_string_append_printf(str, "Offset: %" G_GUINT64_FORMAT "\r\n", info->header.offset); + g_string_append_printf(str, "Total size: %" G_GUINT64_FORMAT "\r\n", info->header.total_size); + g_string_append_printf(str, "Length: %u\r\n", info->header.length); + g_string_append_printf(str, "Flags: 0x%x\r\n", info->header.flags); + g_string_append_printf(str, "ACK ID: %u\r\n", info->header.ack_id); + g_string_append_printf(str, "SUB ID: %u\r\n", info->header.ack_sub_id); + g_string_append_printf(str, "ACK Size: %" G_GUINT64_FORMAT "\r\n", info->header.ack_size); + g_string_append_printf(str, "Footer: 0x%08X\r\n", info->footer.value); +} + gboolean msn_p2p_msg_is_data(const MsnP2PHeaderFlag flags) { @@ -102,3 +147,135 @@ flags == P2P_FILE_DATA); } +gboolean +msn_p2p_info_is_valid(MsnP2PInfo *info) +{ + return info->header.total_size >= info->header.length; +} + +gboolean +msn_p2p_info_is_final(MsnP2PInfo *info) +{ + return info->header.offset + info->header.length >= info->header.total_size; +} + +guint32 +msn_p2p_info_get_session_id(MsnP2PInfo *info) +{ + return info->header.session_id; +} + +guint32 +msn_p2p_info_get_id(MsnP2PInfo *info) +{ + return info->header.id; +} + +guint64 +msn_p2p_info_get_offset(MsnP2PInfo *info) +{ + return info->header.offset; +} + +guint64 +msn_p2p_info_get_total_size(MsnP2PInfo *info) +{ + return info->header.total_size; +} + +guint32 +msn_p2p_info_get_length(MsnP2PInfo *info) +{ + return info->header.length; +} + +guint32 +msn_p2p_info_get_flags(MsnP2PInfo *info) +{ + return info->header.flags; +} + +guint32 +msn_p2p_info_get_ack_id(MsnP2PInfo *info) +{ + return info->header.ack_id; +} + +guint32 +msn_p2p_info_get_ack_sub_id(MsnP2PInfo *info) +{ + return info->header.ack_sub_id; +} + +guint64 +msn_p2p_info_get_ack_size(MsnP2PInfo *info) +{ + return info->header.ack_size; +} + +guint32 +msn_p2p_info_get_app_id(MsnP2PInfo *info) +{ + return info->footer.value; +} + +void +msn_p2p_info_set_session_id(MsnP2PInfo *info, guint32 session_id) +{ + info->header.session_id = session_id; +} + +void +msn_p2p_info_set_id(MsnP2PInfo *info, guint32 id) +{ + info->header.id = id; +} + +void +msn_p2p_info_set_offset(MsnP2PInfo *info, guint64 offset) +{ + info->header.offset = offset; +} + +void +msn_p2p_info_set_total_size(MsnP2PInfo *info, guint64 total_size) +{ + info->header.total_size = total_size; +} + +void +msn_p2p_info_set_length(MsnP2PInfo *info, guint32 length) +{ + info->header.length = length; +} + +void +msn_p2p_info_set_flags(MsnP2PInfo *info, guint32 flags) +{ + info->header.flags = flags; +} + +void +msn_p2p_info_set_ack_id(MsnP2PInfo *info, guint32 ack_id) +{ + info->header.ack_id = ack_id; +} + +void +msn_p2p_info_set_ack_sub_id(MsnP2PInfo *info, guint32 ack_sub_id) +{ + info->header.ack_sub_id = ack_sub_id; +} + +void +msn_p2p_info_set_ack_size(MsnP2PInfo *info, guint64 ack_size) +{ + info->header.ack_size = ack_size; +} + +void +msn_p2p_info_set_app_id(MsnP2PInfo *info, guint32 app_id) +{ + info->footer.value = app_id; +} + diff -r a7397a3d67ef -r 626efe139f98 libpurple/protocols/msn/p2p.h --- a/libpurple/protocols/msn/p2p.h Sun Jan 09 23:32:10 2011 +0000 +++ b/libpurple/protocols/msn/p2p.h Sat Feb 12 23:54:14 2011 +0000 @@ -58,6 +58,11 @@ } MsnP2PFooter; #define P2P_PACKET_FOOTER_SIZE (1 * 4) +typedef struct { + MsnP2PHeader header; + MsnP2PFooter footer; +} MsnP2PInfo; + typedef enum { P2P_NO_FLAG = 0x0, /**< No flags specified */ @@ -88,19 +93,98 @@ P2P_APPID_DISPLAY = 0xC /**< Display Image */ } MsnP2PAppId; -MsnP2PHeader * -msn_p2p_header_from_wire(const char *wire); +MsnP2PInfo * +msn_p2p_info_new(void); + +MsnP2PInfo * +msn_p2p_info_dup(MsnP2PInfo *info); + +void +msn_p2p_info_free(MsnP2PInfo *info); + +size_t +msn_p2p_header_from_wire(MsnP2PInfo *info, const char *wire); char * -msn_p2p_header_to_wire(MsnP2PHeader *header); +msn_p2p_header_to_wire(MsnP2PInfo *info, size_t *len); -MsnP2PFooter * -msn_p2p_footer_from_wire(const char *wire); +size_t +msn_p2p_footer_from_wire(MsnP2PInfo *info, const char *wire); char * -msn_p2p_footer_to_wire(MsnP2PFooter *footer); +msn_p2p_footer_to_wire(MsnP2PInfo *info, size_t *len); + +void +msn_p2p_info_to_string(MsnP2PInfo *info, GString *str); gboolean msn_p2p_msg_is_data(const MsnP2PHeaderFlag flags); +gboolean +msn_p2p_info_is_valid(MsnP2PInfo *info); + +gboolean +msn_p2p_info_is_final(MsnP2PInfo *info); + +guint32 +msn_p2p_info_get_session_id(MsnP2PInfo *info); + +guint32 +msn_p2p_info_get_id(MsnP2PInfo *info); + +guint64 +msn_p2p_info_get_offset(MsnP2PInfo *info); + +guint64 +msn_p2p_info_get_total_size(MsnP2PInfo *info); + +guint32 +msn_p2p_info_get_length(MsnP2PInfo *info); + +guint32 +msn_p2p_info_get_flags(MsnP2PInfo *info); + +guint32 +msn_p2p_info_get_ack_id(MsnP2PInfo *info); + +guint32 +msn_p2p_info_get_ack_sub_id(MsnP2PInfo *info); + +guint64 +msn_p2p_info_get_ack_size(MsnP2PInfo *info); + +guint32 +msn_p2p_info_get_app_id(MsnP2PInfo *info); + +void +msn_p2p_info_set_session_id(MsnP2PInfo *info, guint32 session_id); + +void +msn_p2p_info_set_id(MsnP2PInfo *info, guint32 id); + +void +msn_p2p_info_set_offset(MsnP2PInfo *info, guint64 offset); + +void +msn_p2p_info_set_total_size(MsnP2PInfo *info, guint64 total_size); + +void +msn_p2p_info_set_length(MsnP2PInfo *info, guint32 length); + +void +msn_p2p_info_set_flags(MsnP2PInfo *info, guint32 flags); + +void +msn_p2p_info_set_ack_id(MsnP2PInfo *info, guint32 ack_id); + +void +msn_p2p_info_set_ack_sub_id(MsnP2PInfo *info, guint32 ack_sub_id); + +void +msn_p2p_info_set_ack_size(MsnP2PInfo *info, guint64 ack_size); + +void +msn_p2p_info_set_app_id(MsnP2PInfo *info, guint32 app_id); + #endif /* MSN_P2P_H */ + diff -r a7397a3d67ef -r 626efe139f98 libpurple/protocols/msn/sbconn.c --- a/libpurple/protocols/msn/sbconn.c Sun Jan 09 23:32:10 2011 +0000 +++ b/libpurple/protocols/msn/sbconn.c Sat Feb 12 23:54:14 2011 +0000 @@ -126,8 +126,6 @@ trans->payload = payload; trans->payload_len = payload_len; - msg->trans = trans; - msn_cmdproc_send_trans(cmdproc, trans); } diff -r a7397a3d67ef -r 626efe139f98 libpurple/protocols/msn/slpcall.c --- a/libpurple/protocols/msn/slpcall.c Sun Jan 09 23:32:10 2011 +0000 +++ b/libpurple/protocols/msn/slpcall.c Sat Feb 12 23:54:14 2011 +0000 @@ -1059,16 +1059,21 @@ MsnSlpCall *slpcall; const guchar *body; gsize body_len; + guint32 session_id; + guint32 flags; slpcall = NULL; body = slpmsg->buffer; - body_len = slpmsg->header->offset; + body_len = msn_p2p_info_get_offset(slpmsg->p2p_info); - if (slpmsg->header->flags == P2P_NO_FLAG || slpmsg->header->flags == P2P_WLM2009_COMP) + session_id = msn_p2p_info_get_session_id(slpmsg->p2p_info); + flags = msn_p2p_info_get_flags(slpmsg->p2p_info); + + if (flags == P2P_NO_FLAG || flags == P2P_WLM2009_COMP) { char *body_str; - if (slpmsg->header->session_id == 64) + if (session_id == 64) { /* This is for handwritten messages (Ink) */ GError *error = NULL; @@ -1125,9 +1130,9 @@ } g_free(body_str); } - else if (msn_p2p_msg_is_data(slpmsg->header->flags)) + else if (msn_p2p_msg_is_data(flags)) { - slpcall = msn_slplink_find_slp_call_with_session_id(slplink, slpmsg->header->session_id); + slpcall = msn_slplink_find_slp_call_with_session_id(slplink, session_id); if (slpcall != NULL) { @@ -1142,13 +1147,13 @@ slpcall->wasted = TRUE; } } - else if (slpmsg->header->flags == P2P_ACK) + else if (flags == P2P_ACK) { /* Acknowledgement of previous message. Don't do anything currently. */ } else purple_debug_warning("msn", "Unprocessed SLP message with flags 0x%04x\n", - slpmsg->header->flags); + flags); return slpcall; } diff -r a7397a3d67ef -r 626efe139f98 libpurple/protocols/msn/slplink.c --- a/libpurple/protocols/msn/slplink.c Sun Jan 09 23:32:10 2011 +0000 +++ b/libpurple/protocols/msn/slplink.c Sat Feb 12 23:54:14 2011 +0000 @@ -281,17 +281,21 @@ msn_slplink_send_msgpart(MsnSlpLink *slplink, MsnSlpMessage *slpmsg) { MsnSlpMessagePart *part; + MsnP2PInfo *info; long long real_size; size_t len = 0; + guint64 offset; /* Maybe we will want to create a new msg for this slpmsg instead of * reusing the same one all the time. */ - part = msn_slpmsgpart_new(slpmsg->header, slpmsg->footer); + info = slpmsg->p2p_info; + part = msn_slpmsgpart_new(info); part->ack_data = slpmsg; - real_size = (slpmsg->header->flags == P2P_ACK) ? 0 : slpmsg->size; + real_size = (msn_p2p_info_get_flags(info) == P2P_ACK) ? 0 : slpmsg->size; - if (slpmsg->header->offset < real_size) + offset = msn_p2p_info_get_offset(info); + if (offset < real_size) { if (slpmsg->slpcall && slpmsg->slpcall->xfer && purple_xfer_get_type(slpmsg->slpcall->xfer) == PURPLE_XFER_SEND && purple_xfer_get_status(slpmsg->slpcall->xfer) == PURPLE_XFER_STATUS_STARTED) @@ -301,15 +305,15 @@ } else { - len = slpmsg->size - slpmsg->header->offset; + len = slpmsg->size - offset; if (len > MSN_SBCONN_MAX_SIZE) len = MSN_SBCONN_MAX_SIZE; - msn_slpmsgpart_set_bin_data(part, slpmsg->buffer + slpmsg->header->offset, len); + msn_slpmsgpart_set_bin_data(part, slpmsg->buffer + offset, len); } - slpmsg->header->length = len; + msn_p2p_info_set_length(slpmsg->p2p_info, len); } #if 0 @@ -326,7 +330,7 @@ msn_slplink_send_part(slplink, part); - if (msn_p2p_msg_is_data(slpmsg->header->flags) && + if (msn_p2p_msg_is_data(msn_p2p_info_get_flags(info)) && (slpmsg->slpcall != NULL)) { slpmsg->slpcall->progress = TRUE; @@ -334,7 +338,7 @@ if (slpmsg->slpcall->progress_cb != NULL) { slpmsg->slpcall->progress_cb(slpmsg->slpcall, slpmsg->size, - len, slpmsg->header->offset); + len, offset); } } @@ -344,27 +348,30 @@ static void msn_slplink_release_slpmsg(MsnSlpLink *slplink, MsnSlpMessage *slpmsg) { - slpmsg = slpmsg; - slpmsg->footer = g_new0(MsnP2PFooter, 1); + MsnP2PInfo *info; + guint32 flags; + + info = slpmsg->p2p_info; - if (slpmsg->header->flags == P2P_NO_FLAG) + flags = msn_p2p_info_get_flags(info); + if (flags == P2P_NO_FLAG) { - slpmsg->header->ack_id = rand() % 0xFFFFFF00; + msn_p2p_info_set_ack_id(info, rand() % 0xFFFFFF00); } - else if (msn_p2p_msg_is_data(slpmsg->header->flags)) + else if (msn_p2p_msg_is_data(flags)) { MsnSlpCall *slpcall; slpcall = slpmsg->slpcall; g_return_if_fail(slpcall != NULL); - slpmsg->header->session_id = slpcall->session_id; - slpmsg->footer->value = slpcall->app_id; - slpmsg->header->ack_id = rand() % 0xFFFFFF00; + msn_p2p_info_set_session_id(info, slpcall->session_id); + msn_p2p_info_set_app_id(info, slpcall->app_id); + msn_p2p_info_set_ack_id(info, rand() % 0xFFFFFF00); } - slpmsg->header->id = slpmsg->id; + msn_p2p_info_set_id(info, slpmsg->id); - slpmsg->header->total_size = slpmsg->size; + msn_p2p_info_set_total_size(info, slpmsg->size); msn_slplink_send_msgpart(slplink, slpmsg); } @@ -400,20 +407,20 @@ } static MsnSlpMessage * -msn_slplink_create_ack(MsnSlpLink *slplink, MsnP2PHeader *header) +msn_slplink_create_ack(MsnSlpLink *slplink, MsnP2PInfo *info) { MsnSlpMessage *slpmsg; - slpmsg = msn_slpmsg_ack_new(header); + slpmsg = msn_slpmsg_ack_new(info); msn_slpmsg_set_slplink(slpmsg, slplink); return slpmsg; } static void -msn_slplink_send_ack(MsnSlpLink *slplink, MsnP2PHeader *header) +msn_slplink_send_ack(MsnSlpLink *slplink, MsnP2PInfo *info) { - MsnSlpMessage *slpmsg = msn_slplink_create_ack(slplink, header); + MsnSlpMessage *slpmsg = msn_slplink_create_ack(slplink, info); msn_slplink_send_slpmsg(slplink, slpmsg); msn_slpmsg_destroy(slpmsg); @@ -428,7 +435,7 @@ { MsnSlpMessage *slpmsg = e->data; - if ((slpmsg->header->session_id == session_id) && (slpmsg->id == id)) + if ((msn_p2p_info_get_session_id(slpmsg->p2p_info) == session_id) && (slpmsg->id == id)) return slpmsg; } @@ -436,22 +443,26 @@ } static MsnSlpMessage * -init_first_msg(MsnSlpLink *slplink, MsnP2PHeader *header) +init_first_msg(MsnSlpLink *slplink, MsnP2PInfo *info) { MsnSlpMessage *slpmsg; + guint32 session_id; + guint32 flags; slpmsg = msn_slpmsg_new(slplink); - slpmsg->id = header->id; - slpmsg->header->session_id = header->session_id; - slpmsg->size = header->total_size; - slpmsg->header->flags = header->flags; + slpmsg->id = msn_p2p_info_get_id(info); + session_id = msn_p2p_info_get_session_id(info); + msn_p2p_info_set_session_id(slpmsg->p2p_info, session_id); + slpmsg->size = msn_p2p_info_get_total_size(info); + flags = msn_p2p_info_get_flags(info); + msn_p2p_info_set_flags(slpmsg->p2p_info, flags); - if (slpmsg->header->session_id) + if (session_id) { - slpmsg->slpcall = msn_slplink_find_slp_call_with_session_id(slplink, slpmsg->header->session_id); + slpmsg->slpcall = msn_slplink_find_slp_call_with_session_id(slplink, session_id); if (slpmsg->slpcall != NULL) { - if (msn_p2p_msg_is_data(header->flags)) + if (msn_p2p_msg_is_data(flags)) { PurpleXfer *xfer = slpmsg->slpcall->xfer; if (xfer != NULL) @@ -488,9 +499,10 @@ } static void -process_complete_msg(MsnSlpLink *slplink, MsnSlpMessage *slpmsg, MsnP2PHeader *header) +process_complete_msg(MsnSlpLink *slplink, MsnSlpMessage *slpmsg, MsnP2PInfo *info) { MsnSlpCall *slpcall; + guint32 flags; slpcall = msn_slp_process_msg(slplink, slpmsg); @@ -501,8 +513,10 @@ purple_debug_info("msn", "msn_slplink_process_msg: slpmsg complete\n"); - if (slpmsg->header->flags == P2P_NO_FLAG || slpmsg->header->flags == P2P_WLM2009_COMP || - msn_p2p_msg_is_data(slpmsg->header->flags)) + flags = msn_p2p_info_get_flags(slpmsg->p2p_info); + + if (flags == P2P_NO_FLAG || flags == P2P_WLM2009_COMP || + msn_p2p_msg_is_data(flags)) { /* Release all the messages and send the ACK */ @@ -515,11 +529,11 @@ */ purple_debug_info("msn", "msn_slplink_process_msg: save ACK\n"); - slpcall->slplink->dc->prev_ack = msn_slplink_create_ack(slplink, header); + slpcall->slplink->dc->prev_ack = msn_slplink_create_ack(slplink, info); } else if (!slpcall->wasted) { purple_debug_info("msn", "msn_slplink_process_msg: send ACK\n"); - msn_slplink_send_ack(slplink, header); + msn_slplink_send_ack(slplink, info); msn_slplink_send_queued_slpmsgs(slplink); } } @@ -539,16 +553,17 @@ purple_xfer_prpl_ready(slpmsg->slpcall->xfer); } else if (slpmsg->size && slpmsg->buffer) { - if (G_MAXSIZE - part->size < part->header->offset - || (part->header->offset + part->size) > slpmsg->size - || slpmsg->header->offset != part->header->offset) { + guint64 offset = msn_p2p_info_get_offset(part->info); + if (G_MAXSIZE - part->size < offset + || (offset + part->size) > slpmsg->size + || msn_p2p_info_get_offset(slpmsg->p2p_info) != offset) { purple_debug_error("msn", "Oversized slpmsg - msgsize=%lld offset=%" G_GUINT64_FORMAT " len=%" G_GSIZE_FORMAT "\n", - slpmsg->size, part->header->offset, part->size); + slpmsg->size, offset, part->size); g_return_if_reached(); } else { - memcpy(slpmsg->buffer + part->header->offset, part->buffer, part->size); - slpmsg->header->offset += part->size; + memcpy(slpmsg->buffer + offset, part->buffer, part->size); + msn_p2p_info_set_offset(slpmsg->p2p_info, offset + part->size); } } } @@ -557,12 +572,12 @@ msn_slplink_process_msg(MsnSlpLink *slplink, MsnSlpMessagePart *part) { MsnSlpMessage *slpmsg; - MsnP2PHeader *header; + MsnP2PInfo *info; guint64 offset; - header = part->header; + info = part->info; - if (header->total_size < header->length) + if (!msn_p2p_info_is_valid(info)) { /* We seem to have received a bad header */ purple_debug_warning("msn", "Total size listed in SLP binary header " @@ -571,12 +586,15 @@ return; } - offset = header->offset; + offset = msn_p2p_info_get_offset(info); if (offset == 0) - slpmsg = init_first_msg(slplink, header); + slpmsg = init_first_msg(slplink, info); else { - slpmsg = msn_slplink_message_find(slplink, header->session_id, header->id); + guint32 session_id, id; + session_id = msn_p2p_info_get_session_id(info); + id = msn_p2p_info_get_id(info); + slpmsg = msn_slplink_message_find(slplink, session_id, id); if (slpmsg == NULL) { /* Probably the transfer was cancelled */ @@ -587,8 +605,7 @@ slpmsg_add_part(slpmsg, part); - - if (msn_p2p_msg_is_data(slpmsg->header->flags) && + if (msn_p2p_msg_is_data(msn_p2p_info_get_flags(slpmsg->p2p_info)) && (slpmsg->slpcall != NULL)) { slpmsg->slpcall->progress = TRUE; @@ -606,8 +623,8 @@ #endif /* All the pieces of the slpmsg have been received */ - if (header->offset + header->length >= header->total_size) - process_complete_msg(slplink, slpmsg, header); + if (msn_p2p_info_is_final(info)) + process_complete_msg(slplink, slpmsg, info); /* NOTE: The slpmsg will be destroyed in process_complete_msg or left in the slplink until fully received. Don't free it here! diff -r a7397a3d67ef -r 626efe139f98 libpurple/protocols/msn/slpmsg.c --- a/libpurple/protocols/msn/slpmsg.c Sun Jan 09 23:32:10 2011 +0000 +++ b/libpurple/protocols/msn/slpmsg.c Sat Feb 12 23:54:14 2011 +0000 @@ -48,8 +48,7 @@ else slpmsg->slplink = NULL; - slpmsg->header = g_new0(MsnP2PHeader, 1); - slpmsg->footer = NULL; + slpmsg->p2p_info = msn_p2p_info_new(); return slpmsg; } @@ -90,8 +89,7 @@ slplink->slp_msgs = g_list_remove(slplink->slp_msgs, slpmsg); - g_free(slpmsg->header); - g_free(slpmsg->footer); + msn_p2p_info_free(slpmsg->p2p_info); g_free(slpmsg); } @@ -193,7 +191,6 @@ slpmsg = msn_slpmsg_new(slplink); msn_slpmsg_set_body(slpmsg, body, body_len); - slpmsg->sip = TRUE; slpmsg->slpcall = slpcall; g_free(body); @@ -201,18 +198,20 @@ return slpmsg; } -MsnSlpMessage *msn_slpmsg_ack_new(MsnP2PHeader *header) +MsnSlpMessage *msn_slpmsg_ack_new(MsnP2PInfo *ack_info) { MsnSlpMessage *slpmsg; + MsnP2PInfo *new_info; slpmsg = msn_slpmsg_new(NULL); - slpmsg->header->session_id = header->session_id; - slpmsg->size = header->total_size; - slpmsg->header->flags = P2P_ACK; - slpmsg->header->ack_id = header->id; - slpmsg->header->ack_sub_id = header->ack_id; - slpmsg->header->ack_size = header->total_size; + new_info = slpmsg->p2p_info; + msn_p2p_info_set_session_id(new_info, msn_p2p_info_get_session_id(ack_info)); + slpmsg->size = msn_p2p_info_get_total_size(ack_info); + msn_p2p_info_set_flags(new_info, P2P_ACK); + msn_p2p_info_set_ack_id(new_info, msn_p2p_info_get_id(ack_info)); + msn_p2p_info_set_ack_sub_id(new_info, msn_p2p_info_get_ack_id(ack_info)); + msn_p2p_info_set_ack_size(new_info, msn_p2p_info_get_total_size(ack_info)); slpmsg->info = "SLP ACK"; return slpmsg; @@ -224,7 +223,7 @@ slpmsg = msn_slpmsg_new(NULL); slpmsg->slpcall = slpcall; - slpmsg->header->flags = P2P_MSN_OBJ_DATA; + msn_p2p_info_set_flags(slpmsg->p2p_info, P2P_MSN_OBJ_DATA); slpmsg->info = "SLP DATA"; msn_slpmsg_set_image(slpmsg, img); @@ -239,7 +238,7 @@ slpmsg = msn_slpmsg_new(NULL); slpmsg->slpcall = slpcall; - slpmsg->header->session_id = slpcall->session_id; + msn_p2p_info_set_session_id(slpmsg->p2p_info, slpcall->session_id); msn_slpmsg_set_body(slpmsg, NULL, 4); slpmsg->info = "SLP DATA PREP"; @@ -254,7 +253,7 @@ slpmsg = msn_slpmsg_new(NULL); slpmsg->slpcall = slpcall; - slpmsg->header->flags = P2P_FILE_DATA; + msn_p2p_info_set_flags(slpmsg->p2p_info, P2P_FILE_DATA); slpmsg->info = "SLP FILE"; slpmsg->size = size; @@ -267,27 +266,25 @@ char *footer; char *base; char *tmp; - size_t siz; + size_t header_size, footer_size; - base = g_malloc(P2P_PACKET_HEADER_SIZE + slpmsg->size + P2P_PACKET_FOOTER_SIZE); + header = msn_p2p_header_to_wire(slpmsg->p2p_info, &header_size); + footer = msn_p2p_footer_to_wire(slpmsg->p2p_info, &footer_size); + + base = g_malloc(header_size + slpmsg->size + footer_size); tmp = base; - header = msn_p2p_header_to_wire(slpmsg->header); - footer = msn_p2p_footer_to_wire(slpmsg->footer); - - siz = P2P_PACKET_HEADER_SIZE; /* Copy header */ - memcpy(tmp, header, siz); - tmp += siz; + memcpy(tmp, header, header_size); + tmp += header_size; /* Copy body */ memcpy(tmp, slpmsg->buffer, slpmsg->size); tmp += slpmsg->size; /* Copy footer */ - siz = P2P_PACKET_FOOTER_SIZE; - memcpy(tmp, footer, siz); - tmp += siz; + memcpy(tmp, footer, footer_size); + tmp += footer_size; *ret_size = tmp - base; @@ -303,15 +300,7 @@ str = g_string_new(NULL); - g_string_append_printf(str, "Session ID: %u\r\n", slpmsg->header->session_id); - g_string_append_printf(str, "ID: %u\r\n", slpmsg->header->id); - g_string_append_printf(str, "Offset: %" G_GUINT64_FORMAT "\r\n", slpmsg->header->offset); - g_string_append_printf(str, "Total size: %" G_GUINT64_FORMAT "\r\n", slpmsg->header->total_size); - g_string_append_printf(str, "Length: %u\r\n", slpmsg->header->length); - g_string_append_printf(str, "Flags: 0x%x\r\n", slpmsg->header->flags); - g_string_append_printf(str, "ACK ID: %u\r\n", slpmsg->header->ack_id); - g_string_append_printf(str, "SUB ID: %u\r\n", slpmsg->header->ack_sub_id); - g_string_append_printf(str, "ACK Size: %" G_GUINT64_FORMAT "\r\n", slpmsg->header->ack_size); + msn_p2p_info_to_string(slpmsg->p2p_info, str); if (purple_debug_is_verbose() && slpmsg->buffer != NULL) { g_string_append_len(str, (gchar*)slpmsg->buffer, slpmsg->size); @@ -324,7 +313,5 @@ } - g_string_append_printf(str, "Footer: %u\r\n", slpmsg->footer->value); - purple_debug_info("msn", "SlpMessage %s:\n{%s}\n", slpmsg->info, str->str); } diff -r a7397a3d67ef -r 626efe139f98 libpurple/protocols/msn/slpmsg.h --- a/libpurple/protocols/msn/slpmsg.h Sun Jan 09 23:32:10 2011 +0000 +++ b/libpurple/protocols/msn/slpmsg.h Sat Feb 12 23:54:14 2011 +0000 @@ -45,13 +45,10 @@ MsnSlpLink *slplink; /**< The slplink through which this slp message is being sent. */ MsnSession *session; - MsnP2PHeader *header; - MsnP2PFooter *footer; + MsnP2PInfo *p2p_info; long id; - gboolean sip; /**< A flag that states if this is a SIP slp message. */ - gboolean ft; PurpleStoredImage *img; guchar *buffer; @@ -94,8 +91,6 @@ void msn_slpmsg_set_body(MsnSlpMessage *slpmsg, const char *body, long long size); void msn_slpmsg_set_image(MsnSlpMessage *slpmsg, PurpleStoredImage *img); -void msn_slpmsg_open_file(MsnSlpMessage *slpmsg, - const char *file_name); MsnSlpMessage * msn_slpmsg_sip_new(MsnSlpCall *slpcall, int cseq, const char *header, const char *branch, @@ -109,7 +104,7 @@ * * @return A new SlpMessage with ACK headers */ -MsnSlpMessage *msn_slpmsg_ack_new(MsnP2PHeader *header); +MsnSlpMessage *msn_slpmsg_ack_new(MsnP2PInfo *info); /** * Create a new SLP message for MsnObject data. diff -r a7397a3d67ef -r 626efe139f98 libpurple/protocols/msn/slpmsg_part.c --- a/libpurple/protocols/msn/slpmsg_part.c Sun Jan 09 23:32:10 2011 +0000 +++ b/libpurple/protocols/msn/slpmsg_part.c Sat Feb 12 23:54:14 2011 +0000 @@ -28,16 +28,14 @@ #include "slpmsg.h" #include "slpmsg_part.h" -MsnSlpMessagePart *msn_slpmsgpart_new(MsnP2PHeader *header, MsnP2PFooter *footer) +MsnSlpMessagePart *msn_slpmsgpart_new(MsnP2PInfo *info) { MsnSlpMessagePart *part; part = g_new0(MsnSlpMessagePart, 1); - if (header) - part->header = g_memdup(header, P2P_PACKET_HEADER_SIZE); - if (footer) - part->footer = g_memdup(footer, P2P_PACKET_FOOTER_SIZE); + if (info) + part->info = msn_p2p_info_dup(info); part->ack_cb = msn_slpmsgpart_ack; part->nak_cb = msn_slpmsgpart_nak; @@ -48,20 +46,22 @@ MsnSlpMessagePart *msn_slpmsgpart_new_from_data(const char *data, size_t data_len) { MsnSlpMessagePart *part; + size_t len; int body_len; if (data_len < P2P_PACKET_HEADER_SIZE) { return NULL; } - part = msn_slpmsgpart_new(NULL, NULL); + part = msn_slpmsgpart_new(NULL); + part->info = msn_p2p_info_new(); /* Extract the binary SLP header */ - part->header = msn_p2p_header_from_wire(data); - data += P2P_PACKET_HEADER_SIZE; + len = msn_p2p_header_from_wire(part->info, data); + data += len; /* Extract the body */ - body_len = data_len - P2P_PACKET_HEADER_SIZE - P2P_PACKET_FOOTER_SIZE; + body_len = data_len - len - P2P_PACKET_FOOTER_SIZE; /* msg->body_len = msg->msnslp_header.length; */ if (body_len > 0) { @@ -73,15 +73,14 @@ /* Extract the footer */ if (body_len >= 0) - part->footer = msn_p2p_footer_from_wire(data); + msn_p2p_footer_from_wire(part->info, data); return part; } static void msn_slpmsgpart_destroy(MsnSlpMessagePart *part) { - g_free(part->header); - g_free(part->footer); + g_free(part->info); g_free(part->buffer); g_free(part); @@ -138,27 +137,25 @@ char *footer; char *base; char *tmp; - size_t siz; + size_t header_size, footer_size; - base = g_malloc(P2P_PACKET_HEADER_SIZE + part->size + P2P_PACKET_FOOTER_SIZE); + header = msn_p2p_header_to_wire(part->info, &header_size); + footer = msn_p2p_footer_to_wire(part->info, &footer_size); + + base = g_malloc(header_size + part->size + footer_size); tmp = base; - header = msn_p2p_header_to_wire(part->header); - footer = msn_p2p_footer_to_wire(part->footer); - - siz = P2P_PACKET_HEADER_SIZE; /* Copy header */ - memcpy(tmp, header, siz); - tmp += siz; + memcpy(tmp, header, header_size); + tmp += header_size; /* Copy body */ memcpy(tmp, part->buffer, part->size); tmp += part->size; /* Copy footer */ - siz = P2P_PACKET_FOOTER_SIZE; - memcpy(tmp, footer, siz); - tmp += siz; + memcpy(tmp, footer, footer_size); + tmp += footer_size; *ret_size = tmp - base; @@ -167,23 +164,27 @@ return base; } + /* We have received the message ack */ void msn_slpmsgpart_ack(MsnSlpMessagePart *part, void *data) { MsnSlpMessage *slpmsg; + guint64 offset; long long real_size; slpmsg = data; - real_size = (slpmsg->header->flags == P2P_ACK) ? 0 : slpmsg->size; + real_size = (msn_p2p_info_get_flags(slpmsg->p2p_info) == P2P_ACK) ? 0 : slpmsg->size; - slpmsg->header->offset += part->header->length; + offset = msn_p2p_info_get_offset(slpmsg->p2p_info); + offset += msn_p2p_info_get_length(part->info); + msn_p2p_info_set_offset(slpmsg->p2p_info, offset); slpmsg->parts = g_list_remove(slpmsg->parts, part); msn_slpmsgpart_unref(part); - if (slpmsg->header->offset < real_size) + if (offset < real_size) { if (slpmsg->slpcall->xfer && purple_xfer_get_status(slpmsg->slpcall->xfer) == PURPLE_XFER_STATUS_STARTED) { @@ -196,7 +197,7 @@ else { /* The whole message has been sent */ - if (msn_p2p_msg_is_data(slpmsg->header->flags)) + if (msn_p2p_msg_is_data(msn_p2p_info_get_flags(slpmsg->p2p_info))) { if (slpmsg->slpcall != NULL) { @@ -222,3 +223,9 @@ msn_slpmsgpart_unref(part); } +void +msn_slpmsgpart_to_string(MsnSlpMessagePart *part, GString *str) +{ + msn_p2p_info_to_string(part->info, str); +} + diff -r a7397a3d67ef -r 626efe139f98 libpurple/protocols/msn/slpmsg_part.h --- a/libpurple/protocols/msn/slpmsg_part.h Sun Jan 09 23:32:10 2011 +0000 +++ b/libpurple/protocols/msn/slpmsg_part.h Sat Feb 12 23:54:14 2011 +0000 @@ -34,8 +34,7 @@ { guint ref_count; - MsnP2PHeader *header; - MsnP2PFooter *footer; + MsnP2PInfo *info; MsnSlpPartCb ack_cb; MsnSlpPartCb nak_cb; @@ -45,7 +44,7 @@ size_t size; }; -MsnSlpMessagePart *msn_slpmsgpart_new(MsnP2PHeader *header, MsnP2PFooter *footer); +MsnSlpMessagePart *msn_slpmsgpart_new(MsnP2PInfo *info); MsnSlpMessagePart *msn_slpmsgpart_new_from_data(const char *data, size_t data_len); @@ -60,4 +59,8 @@ void msn_slpmsgpart_ack(MsnSlpMessagePart *part, void *data); void msn_slpmsgpart_nak(MsnSlpMessagePart *part, void *data); + +void msn_slpmsgpart_to_string(MsnSlpMessagePart *part, GString *str); + #endif /* MSN_SLPMSG_PART_H */ + diff -r a7397a3d67ef -r 626efe139f98 libpurple/protocols/novell/novell.c --- a/libpurple/protocols/novell/novell.c Sun Jan 09 23:32:10 2011 +0000 +++ b/libpurple/protocols/novell/novell.c Sat Feb 12 23:54:14 2011 +0000 @@ -74,7 +74,7 @@ _sync_privacy_lists(NMUser *user); static void -_show_info(PurpleConnection * gc, NMUserRecord * user_record); +_show_info(PurpleConnection * gc, NMUserRecord * user_record, char * name); const char * _get_conference_name(int id); @@ -705,7 +705,7 @@ user_record = (NMUserRecord *) resp_data; if (user_record) { _show_info(purple_account_get_connection(user->client_data), - user_record); + user_record, g_strdup(name)); } } else { gc = purple_account_get_connection(user->client_data); @@ -1505,7 +1505,7 @@ /* Display a dialog box showing the properties for the given user record */ static void -_show_info(PurpleConnection * gc, NMUserRecord * user_record) +_show_info(PurpleConnection * gc, NMUserRecord * user_record, char * name) { PurpleNotifyUserInfo *user_info = purple_notify_user_info_new(); int count, i; @@ -1544,9 +1544,10 @@ } } - purple_notify_userinfo(gc, nm_user_record_get_userid(user_record), - user_info, NULL, NULL); + purple_notify_userinfo(gc, name, user_info, NULL, NULL); purple_notify_user_info_destroy(user_info); + + g_free(name); } /* Send a join conference, the first item in the parms list is the @@ -2912,11 +2913,9 @@ user_record = nm_find_user_record(user, name); if (user_record) { - - _show_info(gc, user_record); + _show_info(gc, user_record, g_strdup(name)); } else { - rc = nm_send_get_details(user, name, _get_details_resp_show_info, g_strdup(name)); diff -r a7397a3d67ef -r 626efe139f98 libpurple/protocols/oscar/family_feedbag.c --- a/libpurple/protocols/oscar/family_feedbag.c Sun Jan 09 23:32:10 2011 +0000 +++ b/libpurple/protocols/oscar/family_feedbag.c Sat Feb 12 23:54:14 2011 +0000 @@ -44,10 +44,66 @@ */ #include "oscar.h" +#include "debug.h" static int aim_ssi_addmoddel(OscarData *od); /** + * List types based on http://dev.aol.com/aim/oscar/#FEEDBAG (archive.org) + * and http://iserverd.khstu.ru/oscar/ssi_item.html + * + * @param type The type of a list item as integer number, as provided by an aim_ssi_item struct. + * @return Returns the name of the item type as a character string. + */ +static const gchar* +aim_ssi_type_to_string(guint16 type) +{ + struct TypeStringPair + { + guint16 type; + const gchar *string; + }; + static const struct TypeStringPair type_strings[] = { + { 0x0000, "Buddy" }, + { 0x0001, "Group" }, + { 0x0002, "Permit/Visible" }, + { 0x0003, "Deny/Invisible" }, + { 0x0004, "PDInfo" }, + { 0x0005, "PresencePrefs" }, + { 0x0006, "Non-Buddy Info" }, + { 0x0009, "ClientPrefs" }, + { 0x000e, "ICQDeny/Ignore" }, + { 0x0014, "Buddy Icon" }, + { 0x0015, "Recent Buddies" }, + { 0x0019, "Non-Buddy" }, + { 0x001d, "Vanity Info" }, + { 0x0020, "ICQ-MDir" }, + { 0x0029, "Facebook" }, + }; + int i; + for (i = 0; i < G_N_ELEMENTS(type_strings); i++) { + if (type_strings[i].type == type) { + return type_strings[i].string; + } + } + return "unknown"; +} + +/** For debug log output: Appends a line containing information about a given list item to a string. + * + * @param str String to which the line will be appended. + * @param prefix A string which will be prepended to the line. + * @param item List item from which information is extracted. + */ +static void +aim_ssi_item_debug_append(GString *str, char *prefix, struct aim_ssi_item *item) +{ + g_string_append_printf(str, + "%s gid=0x%04hx, bid=0x%04hx, list_type=0x%04hx [%s], name=%s.\n", + prefix, item->gid, item->bid, item->type, aim_ssi_type_to_string(item->type), item->name); +} + +/** * Locally rebuild the 0x00c8 TLV in the additional data of the given group. * * @param list A pointer to a pointer to the current list of items. @@ -478,6 +534,7 @@ struct aim_ssi_item *cur1, *cur2; struct aim_ssi_tmp *cur, *new; int n = 0; + GString *debugstr = g_string_new(""); /* * The variable "n" is used to limit the number of addmoddel's that @@ -517,6 +574,7 @@ cur->next = new; } else od->ssi.pending = new; + aim_ssi_item_debug_append(debugstr, "Deleting item ", cur1); } } } @@ -537,6 +595,7 @@ cur->next = new; } else od->ssi.pending = new; + aim_ssi_item_debug_append(debugstr, "Adding item ", cur1); } } } @@ -558,9 +617,21 @@ cur->next = new; } else od->ssi.pending = new; + aim_ssi_item_debug_append(debugstr, "Modifying item ", cur1); } } } + if (debugstr->len > 0) { + purple_debug_info("oscar", "%s", debugstr->str); + if (purple_debug_is_verbose()) { + g_string_truncate(debugstr, 0); + for (cur1 = od->ssi.local; cur1; cur1 = cur1->next) + aim_ssi_item_debug_append(debugstr, "\t", cur1); + purple_debug_misc("oscar", "Dumping item list of account %s:\n%s", + purple_connection_get_account(od->gc)->username, debugstr->str); + } + } + g_string_free(debugstr, TRUE); /* We're out of stuff to do, so tell the AIM servers we're done and exit */ if (!od->ssi.pending) { @@ -1165,6 +1236,7 @@ guint16 namelen, gid, bid, type; char *name; GSList *data; + GString *debugstr = g_string_new(""); fmtver = byte_stream_get8(bs); /* Version of ssi data. Should be 0x00 */ od->ssi.numitems += byte_stream_get16(bs); /* # of items in this SSI SNAC */ @@ -1179,10 +1251,13 @@ bid = byte_stream_get16(bs); type = byte_stream_get16(bs); data = aim_tlvlist_readlen(bs, byte_stream_get16(bs)); - aim_ssi_itemlist_add(&od->ssi.official, name, gid, bid, type, data); + aim_ssi_item_debug_append(debugstr, "\t", aim_ssi_itemlist_add(&od->ssi.official, name, gid, bid, type, data)); g_free(name); aim_tlvlist_free(data); } + purple_debug_misc("oscar", "Reading items from tlvlist for account %s:\n%s", + purple_connection_get_account(od->gc)->username, debugstr->str); + g_string_free(debugstr, TRUE); /* Read in the timestamp */ od->ssi.timestamp = byte_stream_get32(bs); diff -r a7397a3d67ef -r 626efe139f98 libpurple/protocols/qq/ChangeLog --- a/libpurple/protocols/qq/ChangeLog Sun Jan 09 23:32:10 2011 +0000 +++ b/libpurple/protocols/qq/ChangeLog Sat Feb 12 23:54:14 2011 +0000 @@ -1,3 +1,12 @@ +2010.01.23 - flos + * added an option to force incoming message in chat room to use a default font instead of the font in message itself + +2010.01.18 - flos + * added type 'UPDCLS' and 'UID' for implementing business logic layer + +2010.01.13 - ccpaging + * qq2009-1 patch from ccpaging + 2009.04.23 - flos * Fixed a bug of updating buddy who is not in user's buddy list diff -r a7397a3d67ef -r 626efe139f98 libpurple/protocols/qq/buddy_info.c --- a/libpurple/protocols/qq/buddy_info.c Sun Jan 09 23:32:10 2011 +0000 +++ b/libpurple/protocols/qq/buddy_info.c Sat Feb 12 23:54:14 2011 +0000 @@ -26,6 +26,7 @@ #include "debug.h" #include "notify.h" #include "request.h" +#include "connection.h" #include "utils.h" #include "packet_parse.h" @@ -221,8 +222,8 @@ g_strfreev(segments); } -void qq_request_buddy_info(PurpleConnection *gc, guint32 uid, - guint32 update_class, int action) +void qq_request_buddy_info(PurpleConnection *gc, UID uid, + UPDCLS update_class, int action) { gchar raw_data[16] = {0}; @@ -620,7 +621,7 @@ PurpleBuddy *buddy = NULL; qq_data *qd = NULL; qq_buddy_data *bd = NULL; - guint32 uid; + UID uid; gchar *who; gchar *alias_utf8; @@ -741,7 +742,7 @@ return; } -void qq_request_get_level(PurpleConnection *gc, guint32 uid) +void qq_request_get_level(PurpleConnection *gc, UID uid) { qq_data *qd = (qq_data *) gc->proto_data; guint8 buf[16] = {0}; @@ -756,7 +757,7 @@ qq_send_cmd(gc, QQ_CMD_GET_LEVEL, buf, bytes); } -void qq_request_get_level_2007(PurpleConnection *gc, guint32 uid) +void qq_request_get_level_2007(PurpleConnection *gc, UID uid) { guint8 buf[16] = {0}; gint bytes = 0; @@ -767,7 +768,7 @@ qq_send_cmd(gc, QQ_CMD_GET_LEVEL, buf, bytes); } -void qq_request_get_buddies_level(PurpleConnection *gc, guint32 update_class) +void qq_request_get_buddies_level(PurpleConnection *gc, UPDCLS update_class) { qq_data *qd = (qq_data *) gc->proto_data; PurpleBuddy *buddy; @@ -797,7 +798,8 @@ static void process_level(PurpleConnection *gc, guint8 *data, gint data_len) { gint bytes = 0; - guint32 uid, onlineTime; + UID uid; + guint32 onlineTime; guint16 level, timeRemainder; qq_buddy_data *bd; @@ -829,7 +831,8 @@ static void process_level_2007(PurpleConnection *gc, guint8 *data, gint data_len) { gint bytes; - guint32 uid, onlineTime; + UID uid; + guint32 onlineTime; guint16 level, timeRemainder; qq_buddy_data *bd; guint16 str_len; diff -r a7397a3d67ef -r 626efe139f98 libpurple/protocols/qq/buddy_info.h --- a/libpurple/protocols/qq/buddy_info.h Sun Jan 09 23:32:10 2011 +0000 +++ b/libpurple/protocols/qq/buddy_info.h Sat Feb 12 23:54:14 2011 +0000 @@ -78,15 +78,14 @@ gchar *qq_get_icon_path(gchar *icon_name); void qq_change_icon_cb(PurpleConnection *gc, const char *filepath); -void qq_request_buddy_info(PurpleConnection *gc, guint32 uid, - guint32 update_class, int action); +void qq_request_buddy_info(PurpleConnection *gc, UID uid, UPDCLS update_class, int action); void qq_set_custom_icon(PurpleConnection *gc, PurpleStoredImage *img); void qq_process_change_info(PurpleConnection *gc, guint8 *data, gint data_len); void qq_process_get_buddy_info(guint8 *data, gint data_len, guint32 action, PurpleConnection *gc); -void qq_request_get_level(PurpleConnection *gc, guint32 uid); -void qq_request_get_level_2007(PurpleConnection *gc, guint32 uid); -void qq_request_get_buddies_level(PurpleConnection *gc, guint32 update_class); +void qq_request_get_level(PurpleConnection *gc, UID uid); +void qq_request_get_level_2007(PurpleConnection *gc, UID uid); +void qq_request_get_buddies_level(PurpleConnection *gc, UPDCLS update_class); void qq_process_get_level_reply(guint8 *buf, gint buf_len, PurpleConnection *gc); void qq_update_buddy_icon(PurpleAccount *account, const gchar *who, gint face); diff -r a7397a3d67ef -r 626efe139f98 libpurple/protocols/qq/buddy_list.c --- a/libpurple/protocols/qq/buddy_list.c Sun Jan 09 23:32:10 2011 +0000 +++ b/libpurple/protocols/qq/buddy_list.c Sat Feb 12 23:54:14 2011 +0000 @@ -53,7 +53,7 @@ } qq_buddy_online; /* get a list of online_buddies */ -void qq_request_get_buddies_online(PurpleConnection *gc, guint8 position, guint32 update_class) +void qq_request_get_buddies_online(PurpleConnection *gc, guint8 position, UPDCLS update_class) { guint8 *raw_data; gint bytes = 0; @@ -77,7 +77,7 @@ /* position starts with 0x0000, * server may return a position tag if list is too long for one packet */ -void qq_request_get_buddies(PurpleConnection *gc, guint16 position, guint32 update_class) +void qq_request_get_buddies(PurpleConnection *gc, guint16 position, UPDCLS update_class) { qq_data *qd; guint8 raw_data[16] = {0}; @@ -101,7 +101,7 @@ } /* get all list, buddies & Quns with groupsid support */ -void qq_request_get_buddies_and_rooms(PurpleConnection *gc, guint32 position, guint32 update_class) +void qq_request_get_buddies_and_rooms(PurpleConnection *gc, guint32 position, UPDCLS update_class) { guint8 raw_data[16] = {0}; gint bytes = 0; @@ -362,7 +362,7 @@ gint bytes; guint8 sub_cmd, reply_code; guint32 unknown, position; - guint32 uid; + UID uid; guint8 type; qq_room_data *rmd; @@ -455,7 +455,7 @@ } /* send a packet to change my online status */ -void qq_request_change_status(PurpleConnection *gc, guint32 update_class) +void qq_request_change_status(PurpleConnection *gc, UPDCLS update_class) { qq_data *qd; guint8 raw_data[16] = {0}; @@ -525,7 +525,7 @@ { qq_data *qd; gint bytes; - guint32 my_uid; + UID my_uid; gchar *who; PurpleBuddy *buddy; qq_buddy_data *bd; @@ -583,7 +583,7 @@ } /*TODO: maybe this should be qq_update_buddy_status() ?*/ -void qq_update_buddy_status(PurpleConnection *gc, guint32 uid, guint8 status, guint8 flag) +void qq_update_buddy_status(PurpleConnection *gc, UID uid, guint8 status, guint8 flag) { gchar *who; const gchar *status_id; diff -r a7397a3d67ef -r 626efe139f98 libpurple/protocols/qq/buddy_list.h --- a/libpurple/protocols/qq/buddy_list.h Sun Jan 09 23:32:10 2011 +0000 +++ b/libpurple/protocols/qq/buddy_list.h Sat Feb 12 23:54:14 2011 +0000 @@ -30,7 +30,7 @@ #include "qq.h" typedef struct _qq_buddy_status { - guint32 uid; + UID uid; guint8 unknown1; struct in_addr ip; guint16 port; @@ -40,20 +40,20 @@ guint8 unknown_key[QQ_KEY_LENGTH]; } qq_buddy_status; -void qq_request_get_buddies_online(PurpleConnection *gc, guint8 position, guint32 update_class); +void qq_request_get_buddies_online(PurpleConnection *gc, guint8 position, UPDCLS update_class); guint8 qq_process_get_buddies_online(guint8 *data, gint data_len, PurpleConnection *gc); -void qq_request_get_buddies(PurpleConnection *gc, guint16 position, guint32 update_class); +void qq_request_get_buddies(PurpleConnection *gc, guint16 position, UPDCLS update_class); guint16 qq_process_get_buddies(guint8 *data, gint data_len, PurpleConnection *gc); -void qq_request_get_buddies_and_rooms(PurpleConnection *gc, guint32 position, guint32 update_class); +void qq_request_get_buddies_and_rooms(PurpleConnection *gc, guint32 position, UPDCLS update_class); guint32 qq_process_get_buddies_and_rooms(guint8 *data, gint data_len, PurpleConnection *gc); -void qq_request_change_status(PurpleConnection *gc, guint32 update_class); +void qq_request_change_status(PurpleConnection *gc, UPDCLS update_class); void qq_process_change_status(guint8 *data, gint data_len, PurpleConnection *gc); void qq_process_buddy_change_status(guint8 *data, gint data_len, PurpleConnection *gc); void qq_update_buddyies_status(PurpleConnection *gc); -void qq_update_buddy_status(PurpleConnection *gc, guint32 uid, guint8 status, guint8 flag); +void qq_update_buddy_status(PurpleConnection *gc, UID uid, guint8 status, guint8 flag); void qq_buddy_data_free_all(PurpleConnection *gc); #endif diff -r a7397a3d67ef -r 626efe139f98 libpurple/protocols/qq/buddy_memo.c --- a/libpurple/protocols/qq/buddy_memo.c Sun Jan 09 23:32:10 2011 +0000 +++ b/libpurple/protocols/qq/buddy_memo.c Sat Feb 12 23:54:14 2011 +0000 @@ -83,7 +83,7 @@ typedef struct _modify_memo_request { PurpleConnection *gc; - guint32 bd_uid; + UID bd_uid; gchar **segments; } modify_memo_request; @@ -107,7 +107,7 @@ purple_debug_info("QQ", "memo freed\n"); } -static void update_buddy_memo(PurpleConnection *gc, guint32 bd_uid, gchar *alias) +static void update_buddy_memo(PurpleConnection *gc, UID bd_uid, gchar *alias) { PurpleAccount *account; PurpleBuddy *buddy; @@ -127,7 +127,7 @@ purple_blist_alias_buddy(buddy, (const char*)alias); } -static void request_change_memo(PurpleConnection *gc, guint32 bd_uid, gchar **segments) +static void request_change_memo(PurpleConnection *gc, UID bd_uid, gchar **segments) { gint bytes; /* Attention, length of each segment must be guint8(0~255), @@ -170,7 +170,7 @@ static void memo_modify_ok_cb(modify_memo_request *memo_request, PurpleRequestFields *fields) { PurpleConnection *gc; - guint32 bd_uid; + UID bd_uid; gchar **segments; const gchar *utf8_str; gchar *value = NULL; @@ -187,7 +187,7 @@ utf8_str = purple_request_fields_get_string(fields, memo_id[index]); /* update alias */ if (QQ_MEMO_ALIAS == index) { - update_buddy_memo(gc, bd_uid, segments[QQ_MEMO_ALIAS]); + update_buddy_memo(gc, (UID)bd_uid, segments[QQ_MEMO_ALIAS]); } if (NULL == utf8_str) { value = g_strdup(""); @@ -213,7 +213,7 @@ } /* memo modify dialogue */ -static void memo_modify_dialogue(PurpleConnection *gc, guint32 bd_uid, gchar **segments, guint32 action) +static void memo_modify_dialogue(PurpleConnection *gc, UID bd_uid, gchar **segments, guint32 action) { modify_memo_request *memo_request; PurpleRequestField *field; @@ -272,7 +272,7 @@ } } -static void qq_create_buddy_memo(PurpleConnection *gc, guint32 bd_uid, guint32 action) +static void qq_create_buddy_memo(PurpleConnection *gc, UID bd_uid, guint32 action) { gchar **segments; gint index; @@ -285,9 +285,11 @@ memo_modify_dialogue(gc, bd_uid, segments, action); } -/* process reply to get_memo packet */ +/* process reply to get_memo packet + * here, update_class will be regarded as buddy's uid. because some + * memo packages returned without uid, which will make us confused */ void qq_process_get_buddy_memo(PurpleConnection *gc, guint8* data, gint data_len, - guint32 update_class, guint32 action) + UPDCLS update_class, guint32 action) { gchar **segments; gint bytes; @@ -314,7 +316,9 @@ if (1 == data_len) { /* only one byte */ purple_debug_info("QQ", "memo packet contains no buddy uid and memo...\n"); if (QQ_BUDDY_MEMO_MODIFY == action) { - qq_create_buddy_memo(gc, (guint32)update_class, QQ_BUDDY_MEMO_MODIFY); + UID mod_uid; + mod_uid = (UID)update_class; + qq_create_buddy_memo(gc, mod_uid, QQ_BUDDY_MEMO_MODIFY); return; } return; @@ -354,9 +358,9 @@ } /* common action, update buddy memo */ - update_buddy_memo(gc, rcv_uid, segments[QQ_MEMO_ALIAS]); + update_buddy_memo(gc, (UID)rcv_uid, segments[QQ_MEMO_ALIAS]); - /* memo is thing that we regard our buddy as, so we need one more buddy_uid */ + /* memo is a thing that we regard our buddy as, so we need one more buddy_uid */ memo_modify_dialogue(gc, rcv_uid, segments, action); break; default: @@ -365,8 +369,12 @@ } } -/* request buddy memo */ -void qq_request_buddy_memo(PurpleConnection *gc, guint32 bd_uid, guint32 update_class, guint32 action) +/* request buddy memo + * + * param: gc, uid, update_class, action + * here, update_class will be set to buddy's uid. because some memo + * packages returned without uid, which will make us confused */ +void qq_request_buddy_memo(PurpleConnection *gc, UID bd_uid, UPDCLS update_class, guint32 action) { guint8 raw_data[16] = {0}; gint bytes; diff -r a7397a3d67ef -r 626efe139f98 libpurple/protocols/qq/buddy_memo.h --- a/libpurple/protocols/qq/buddy_memo.h Sun Jan 09 23:32:10 2011 +0000 +++ b/libpurple/protocols/qq/buddy_memo.h Sat Feb 12 23:54:14 2011 +0000 @@ -28,6 +28,7 @@ #include #include "connection.h" #include "blist.h" +#include "qq.h" #define QQ_BUDDY_MEMO_REQUEST_SUCCESS 0x00 @@ -40,9 +41,9 @@ }; -void qq_process_get_buddy_memo(PurpleConnection *gc, guint8* data, gint data_len, guint32 update_class, guint32 action); +void qq_process_get_buddy_memo(PurpleConnection *gc, guint8* data, gint data_len, UPDCLS update_class, guint32 action); -void qq_request_buddy_memo(PurpleConnection *gc, guint32 bd_uid, guint32 update_class, guint32 action); +void qq_request_buddy_memo(PurpleConnection *gc, UID bd_uid, UPDCLS update_class, guint32 action); #endif diff -r a7397a3d67ef -r 626efe139f98 libpurple/protocols/qq/buddy_opt.c --- a/libpurple/protocols/qq/buddy_opt.c Sun Jan 09 23:32:10 2011 +0000 +++ b/libpurple/protocols/qq/buddy_opt.c Sat Feb 12 23:54:14 2011 +0000 @@ -51,12 +51,12 @@ typedef struct _qq_buddy_req { PurpleConnection *gc; - guint32 uid; + UID uid; guint8 *auth; guint8 auth_len; } qq_buddy_req; -void add_buddy_authorize_input(PurpleConnection *gc, guint32 uid, +void add_buddy_authorize_input(PurpleConnection *gc, UID uid, guint8 *auth, guint8 auth_len); static void buddy_req_free(qq_buddy_req *add_req) @@ -88,7 +88,7 @@ return g; } -static qq_buddy_data *qq_buddy_data_new(guint32 uid) +static qq_buddy_data *qq_buddy_data_new(UID uid) { qq_buddy_data *bd = g_new0(qq_buddy_data, 1); memset(bd, 0, sizeof(qq_buddy_data)); @@ -97,7 +97,7 @@ return bd; } -qq_buddy_data *qq_buddy_data_find(PurpleConnection *gc, guint32 uid) +qq_buddy_data *qq_buddy_data_find(PurpleConnection *gc, UID uid) { gchar *who; PurpleBuddy *buddy; @@ -131,7 +131,7 @@ } /* create purple buddy without data and display with no-auth icon */ -PurpleBuddy *qq_buddy_new(PurpleConnection *gc, guint32 uid) +PurpleBuddy *qq_buddy_new(PurpleConnection *gc, UID uid) { PurpleBuddy *buddy; PurpleGroup *group; @@ -175,7 +175,7 @@ purple_blist_remove_buddy(buddy); } -PurpleBuddy *qq_buddy_find(PurpleConnection *gc, guint32 uid) +PurpleBuddy *qq_buddy_find(PurpleConnection *gc, UID uid) { PurpleBuddy *buddy; gchar *who; @@ -188,7 +188,7 @@ return buddy; } -PurpleBuddy *qq_buddy_find_or_new(PurpleConnection *gc, guint32 uid) +PurpleBuddy *qq_buddy_find_or_new(PurpleConnection *gc, UID uid) { PurpleBuddy *buddy; qq_buddy_data *bd; @@ -213,7 +213,7 @@ } /* send packet to remove a buddy from my buddy list */ -static void request_remove_buddy(PurpleConnection *gc, guint32 uid) +static void request_remove_buddy(PurpleConnection *gc, UID uid) { gchar uid_str[11]; gint bytes; @@ -226,7 +226,7 @@ } static void request_remove_buddy_ex(PurpleConnection *gc, - guint32 uid, guint8 *auth, guint8 auth_len) + UID uid, guint8 *auth, guint8 auth_len) { gint bytes; guint8 *raw_data; @@ -246,7 +246,7 @@ qq_send_cmd_mess(gc, QQ_CMD_REMOVE_BUDDY, raw_data, bytes, 0, uid); } -void qq_request_auth_code(PurpleConnection *gc, guint8 cmd, guint16 sub_cmd, guint32 uid) +void qq_request_auth_code(PurpleConnection *gc, guint8 cmd, guint16 sub_cmd, UID uid) { guint8 raw_data[16]; gint bytes; @@ -260,7 +260,7 @@ qq_send_cmd_mess(gc, QQ_CMD_AUTH_CODE, raw_data, bytes, 0, uid); } -void qq_process_auth_code(PurpleConnection *gc, guint8 *data, gint data_len, guint32 uid) +void qq_process_auth_code(PurpleConnection *gc, guint8 *data, gint data_len, UID uid) { gint bytes; guint8 cmd, reply; @@ -308,7 +308,7 @@ buddy_req_free(add_req); } -static void add_buddy_question_input(PurpleConnection *gc, guint32 uid, gchar *question) +static void add_buddy_question_input(PurpleConnection *gc, UID uid, gchar *question) { gchar *who, *msg; qq_buddy_req *add_req; @@ -336,7 +336,7 @@ } void qq_request_question(PurpleConnection *gc, - guint8 cmd, guint32 uid, const gchar *question_utf8, const gchar *answer_utf8) + guint8 cmd, UID uid, const gchar *question_utf8, const gchar *answer_utf8) { guint8 raw_data[MAX_PACKET_SIZE - 16]; gint bytes; @@ -371,7 +371,7 @@ return; } -static void request_add_buddy_by_question(PurpleConnection *gc, guint32 uid, +static void request_add_buddy_by_question(PurpleConnection *gc, UID uid, guint8 *code, guint16 code_len) { guint8 raw_data[MAX_PACKET_SIZE - 16]; @@ -395,7 +395,7 @@ qq_send_cmd(gc, QQ_CMD_ADD_BUDDY_AUTH_EX, raw_data, bytes); } -void qq_process_question(PurpleConnection *gc, guint8 *data, gint data_len, guint32 uid) +void qq_process_question(PurpleConnection *gc, guint8 *data, gint data_len, UID uid) { gint bytes; guint8 cmd, reply; @@ -461,7 +461,7 @@ } /* try to remove myself from someone's buddy list */ -static void request_buddy_remove_me(PurpleConnection *gc, guint32 uid) +static void request_buddy_remove_me(PurpleConnection *gc, UID uid) { guint8 raw_data[16] = {0}; gint bytes = 0; @@ -474,7 +474,7 @@ } /* try to add a buddy without authentication */ -static void request_add_buddy_no_auth(PurpleConnection *gc, guint32 uid) +static void request_add_buddy_no_auth(PurpleConnection *gc, UID uid) { gchar uid_str[11]; @@ -486,7 +486,7 @@ (guint8 *) uid_str, strlen(uid_str), 0, uid); } -static void request_add_buddy_no_auth_ex(PurpleConnection *gc, guint32 uid) +static void request_add_buddy_no_auth_ex(PurpleConnection *gc, UID uid) { guint bytes; guint8 raw_data[16]; @@ -499,7 +499,7 @@ } /* this buddy needs authentication, text conversion is done at lowest level */ -static void request_add_buddy_auth(PurpleConnection *gc, guint32 uid, const gchar response, const gchar *text) +static void request_add_buddy_auth(PurpleConnection *gc, UID uid, const gchar response, const gchar *text) { guint8 raw_data[MAX_PACKET_SIZE - 16]; gint bytes; @@ -526,7 +526,7 @@ qq_send_cmd(gc, QQ_CMD_ADD_BUDDY_AUTH, raw_data, bytes); } -static void request_add_buddy_auth_ex(PurpleConnection *gc, guint32 uid, +static void request_add_buddy_auth_ex(PurpleConnection *gc, UID uid, const gchar *text, guint8 *auth, guint8 auth_len) { guint8 raw_data[MAX_PACKET_SIZE - 16]; @@ -643,7 +643,7 @@ buddy_req_free(add_req); } -void add_buddy_authorize_input(PurpleConnection *gc, guint32 uid, +void add_buddy_authorize_input(PurpleConnection *gc, UID uid, guint8 *auth, guint8 auth_len) { gchar *who, *msg; @@ -683,7 +683,7 @@ void qq_add_buddy(PurpleConnection *gc, PurpleBuddy *buddy, PurpleGroup *group) { qq_data *qd; - guint32 uid; + UID uid; g_return_if_fail(NULL != gc && NULL != gc->proto_data); g_return_if_fail(buddy != NULL); @@ -733,7 +733,7 @@ } /* process the server reply for my request to remove a buddy */ -void qq_process_remove_buddy(PurpleConnection *gc, guint8 *data, gint data_len, guint32 uid) +void qq_process_remove_buddy(PurpleConnection *gc, guint8 *data, gint data_len, UID uid) { PurpleBuddy *buddy = NULL; gchar *msg; @@ -756,7 +756,7 @@ } /* process the server reply for my request to remove myself from a buddy */ -void qq_process_buddy_remove_me(PurpleConnection *gc, guint8 *data, gint data_len, guint32 uid) +void qq_process_buddy_remove_me(PurpleConnection *gc, guint8 *data, gint data_len, UID uid) { gchar *msg; @@ -772,7 +772,7 @@ } void qq_process_add_buddy_no_auth(PurpleConnection *gc, - guint8 *data, gint data_len, guint32 uid) + guint8 *data, gint data_len, UID uid) { qq_data *qd; gchar **segments; @@ -834,11 +834,11 @@ } void qq_process_add_buddy_no_auth_ex(PurpleConnection *gc, - guint8 *data, gint data_len, guint32 uid) + guint8 *data, gint data_len, UID uid) { qq_data *qd; gint bytes; - guint32 dest_uid; + UID dest_uid; guint8 reply; guint8 auth_type; @@ -903,7 +903,7 @@ { qq_data *qd; qq_buddy_data *bd; - guint32 uid; + UID uid; g_return_if_fail(gc != NULL && gc->proto_data != NULL); g_return_if_fail(buddy != NULL); @@ -933,7 +933,7 @@ * otherwise purple segmentation fault */ } -static void buddy_add_input(PurpleConnection *gc, guint32 uid, gchar *reason) +static void buddy_add_input(PurpleConnection *gc, UID uid, gchar *reason) { PurpleAccount *account = purple_connection_get_account(gc); qq_buddy_req *add_req; @@ -967,7 +967,7 @@ static void server_buddy_add_request(PurpleConnection *gc, gchar *from, gchar *to, guint8 *data, gint data_len) { - guint32 uid; + UID uid; gchar *msg, *reason; g_return_if_fail(from != NULL && to != NULL); @@ -996,7 +996,7 @@ gint bytes; guint8 cmd; guint8 reply; - guint32 uid; + UID uid; guint16 flag1, flag2; g_return_if_fail(data != NULL && data_len >= 5); @@ -1026,7 +1026,7 @@ { guint8 *raw_data; gint bytes; - guint32 uid; + UID uid; g_return_if_fail(code != NULL && code_len > 0 && from != NULL); @@ -1073,7 +1073,7 @@ guint8 *data, gint data_len) { gint bytes; - guint32 uid; + UID uid; gchar *msg; guint8 allow_reverse; @@ -1103,7 +1103,7 @@ { PurpleAccount *account = purple_connection_get_account(gc); PurpleBuddy *buddy; - guint32 uid; + UID uid; qq_buddy_req *add_req; gchar *who; gchar *primary; @@ -1177,7 +1177,7 @@ { PurpleAccount *account = purple_connection_get_account(gc); qq_data *qd; - guint32 uid; + UID uid; g_return_if_fail(from != NULL && to != NULL); @@ -1204,7 +1204,7 @@ static void server_buddy_rejected_me(PurpleConnection *gc, gchar *from, gchar *to, guint8 *data, gint data_len) { - guint32 uid; + UID uid; PurpleBuddy *buddy; gchar *msg, *msg_utf8; gint bytes; diff -r a7397a3d67ef -r 626efe139f98 libpurple/protocols/qq/buddy_opt.h --- a/libpurple/protocols/qq/buddy_opt.h Sun Jan 09 23:32:10 2011 +0000 +++ b/libpurple/protocols/qq/buddy_opt.h Sat Feb 12 23:54:14 2011 +0000 @@ -54,31 +54,31 @@ void qq_remove_buddy_and_me(PurpleBlistNode * node); void qq_remove_buddy(PurpleConnection *gc, PurpleBuddy *buddy, PurpleGroup *group); -void qq_process_remove_buddy(PurpleConnection *gc, guint8 *data, gint data_len, guint32 uid); -void qq_process_buddy_remove_me(PurpleConnection *gc, guint8 *data, gint data_len, guint32 uid); +void qq_process_remove_buddy(PurpleConnection *gc, guint8 *data, gint data_len, UID uid); +void qq_process_buddy_remove_me(PurpleConnection *gc, guint8 *data, gint data_len, UID uid); void qq_process_add_buddy_no_auth(PurpleConnection *gc, - guint8 *data, gint data_len, guint32 uid); + guint8 *data, gint data_len, UID uid); void qq_process_add_buddy_no_auth_ex(PurpleConnection *gc, - guint8 *data, gint data_len, guint32 uid); + guint8 *data, gint data_len, UID uid); void qq_process_add_buddy_auth(guint8 *data, gint data_len, PurpleConnection *gc); void qq_process_buddy_from_server(PurpleConnection *gc, int funct, gchar *from, gchar *to, guint8 *data, gint data_len); void qq_process_buddy_check_code(PurpleConnection *gc, guint8 *data, gint data_len); -void qq_request_auth_code(PurpleConnection *gc, guint8 cmd, guint16 sub_cmd, guint32 uid); -void qq_process_auth_code(PurpleConnection *gc, guint8 *data, gint data_len, guint32 uid); +void qq_request_auth_code(PurpleConnection *gc, guint8 cmd, guint16 sub_cmd, UID uid); +void qq_process_auth_code(PurpleConnection *gc, guint8 *data, gint data_len, UID uid); void qq_request_question(PurpleConnection *gc, - guint8 cmd, guint32 uid, const gchar *question_utf8, const gchar *answer_utf8); -void qq_process_question(PurpleConnection *gc, guint8 *data, gint data_len, guint32 uid); + guint8 cmd, UID uid, const gchar *question_utf8, const gchar *answer_utf8); +void qq_process_question(PurpleConnection *gc, guint8 *data, gint data_len, UID uid); void qq_process_add_buddy_auth_ex(PurpleConnection *gc, guint8 *data, gint data_len, guint32 ship32); -qq_buddy_data *qq_buddy_data_find(PurpleConnection *gc, guint32 uid); +qq_buddy_data *qq_buddy_data_find(PurpleConnection *gc, UID uid); void qq_buddy_data_free(qq_buddy_data *bd); -PurpleBuddy *qq_buddy_new(PurpleConnection *gc, guint32 uid); -PurpleBuddy *qq_buddy_find_or_new(PurpleConnection *gc, guint32 uid); -PurpleBuddy *qq_buddy_find(PurpleConnection *gc, guint32 uid); +PurpleBuddy *qq_buddy_new(PurpleConnection *gc, UID uid); +PurpleBuddy *qq_buddy_find_or_new(PurpleConnection *gc, UID uid); +PurpleBuddy *qq_buddy_find(PurpleConnection *gc, UID uid); PurpleGroup *qq_group_find_or_new(const gchar *group_name); #endif diff -r a7397a3d67ef -r 626efe139f98 libpurple/protocols/qq/file_trans.c --- a/libpurple/protocols/qq/file_trans.c Sun Jan 09 23:32:10 2011 +0000 +++ b/libpurple/protocols/qq/file_trans.c Sat Feb 12 23:54:14 2011 +0000 @@ -38,14 +38,12 @@ #include "send_file.h" #include "utils.h" -struct _qq_file_header { +typedef struct _qq_file_header { guint16 client_ver; guint8 file_key; - guint32 sender_uid; - guint32 receiver_uid; -}; - -typedef struct _qq_file_header qq_file_header; + UID sender_uid; + UID receiver_uid; +} qq_file_header; static guint32 _get_file_key(guint8 seed) { @@ -62,12 +60,12 @@ return _get_file_key(seed); } -static guint32 _decrypt_qq_uid(guint32 uid, guint32 key) +static guint32 _decrypt_qq_uid(UID uid, guint32 key) { return ~(uid ^ key); } -static guint32 _encrypt_qq_uid(guint32 uid, guint32 key) +static guint32 _encrypt_qq_uid(UID uid, guint32 key) { return (~uid) ^ key; } @@ -232,7 +230,7 @@ } #endif -static gint _qq_send_file(PurpleConnection *gc, guint8 *data, gint len, guint16 packet_type, guint32 to_uid) +static gint _qq_send_file(PurpleConnection *gc, guint8 *data, gint len, guint16 packet_type, UID to_uid) { guint8 *raw_data; gint bytes = 0; @@ -259,7 +257,7 @@ } /* send a file to udp channel with QQ_FILE_CONTROL_PACKET_TAG */ -void qq_send_file_ctl_packet(PurpleConnection *gc, guint16 packet_type, guint32 to_uid, guint8 hellobyte) +void qq_send_file_ctl_packet(PurpleConnection *gc, guint16 packet_type, UID to_uid, guint8 hellobyte) { qq_data *qd; gint bytes, bytes_expected, encrypted_len; diff -r a7397a3d67ef -r 626efe139f98 libpurple/protocols/qq/file_trans.h --- a/libpurple/protocols/qq/file_trans.h Sun Jan 09 23:32:10 2011 +0000 +++ b/libpurple/protocols/qq/file_trans.h Sat Feb 12 23:54:14 2011 +0000 @@ -26,6 +26,7 @@ #define _QQ_QQ_FILE_TRANS_H_ #include "server.h" +#include "qq.h" enum { QQ_FILE_CMD_SENDER_SAY_HELLO = 0x31, @@ -59,7 +60,7 @@ #define QQ_FILE_AGENT_PACKET_TAG 0x04 /* #define QQ_PACKET_TAIL 0x03 */ /* all QQ text packets end with it */ -void qq_send_file_ctl_packet(PurpleConnection *gc, guint16 packet_type, guint32 to_uid, guint8 hellobyte); +void qq_send_file_ctl_packet(PurpleConnection *gc, guint16 packet_type, UID to_uid, guint8 hellobyte); void qq_process_recv_file(PurpleConnection *gc, guint8 *data, gint len); /* void qq_send_file_data_packet(PurpleConnection *gc, guint16 packet_type, guint8 sub_type, guint32 fragment_index, guint16 seq, guint8 *data, gint len); */ void qq_xfer_close_file(PurpleXfer *xfer); diff -r a7397a3d67ef -r 626efe139f98 libpurple/protocols/qq/group.h --- a/libpurple/protocols/qq/group.h Sun Jan 09 23:32:10 2011 +0000 +++ b/libpurple/protocols/qq/group.h Sat Feb 12 23:54:14 2011 +0000 @@ -40,14 +40,13 @@ QQ_ROOM_ROLE_ADMIN } qq_room_role; -typedef struct _qq_room_data qq_room_data; -struct _qq_room_data { +typedef struct _qq_room_data { /* all these will be saved when we exit Purple */ qq_room_role my_role; /* my role for this room */ guint32 id; guint32 ext_id; guint8 type8; /* permanent or temporory */ - guint32 creator_uid; + UID creator_uid; guint32 category; guint8 auth_type; gchar *title_utf8; @@ -57,7 +56,7 @@ gboolean is_got_buddies; GList *members; -}; +} qq_room_data; GList *qq_chat_info(PurpleConnection *gc); GHashTable *qq_chat_info_defaults(PurpleConnection *gc, const gchar *chat_name); diff -r a7397a3d67ef -r 626efe139f98 libpurple/protocols/qq/group_im.c --- a/libpurple/protocols/qq/group_im.c Sun Jan 09 23:32:10 2011 +0000 +++ b/libpurple/protocols/qq/group_im.c Sat Feb 12 23:54:14 2011 +0000 @@ -161,7 +161,7 @@ } void qq_room_got_chat_in(PurpleConnection *gc, - guint32 room_id, guint32 uid_from, const gchar *msg, time_t in_time) + guint32 room_id, UID uid_from, const gchar *msg, time_t in_time) { PurpleConversation *conv; qq_data *qd; @@ -207,10 +207,11 @@ { gchar *msg_smiley, *msg_fmt, *msg_utf8; gint bytes, tail_len; + qq_data *qd; struct { guint32 ext_id; guint8 type8; - guint32 member_uid; + UID member_uid; guint16 unknown; guint16 msg_seq; time_t send_time; @@ -222,11 +223,15 @@ guint16 content_type; guint8 frag_count, frag_index; guint16 msg_id; + guint32 use_default_font; qq_im_format *fmt = NULL; + qd = (qq_data *) gc->proto_data; /* at least include im_text.msg_len */ g_return_if_fail(data != NULL && data_len > 23); + use_default_font = (qd->custom) & QQ_CUSTOM_USE_DEFAULT_FONT; + /* qq_show_packet("ROOM_IM", data, data_len); */ memset(&im_text, 0, sizeof(im_text)); bytes = 0; @@ -279,8 +284,14 @@ /* group im_group has no flag to indicate whether it has font_attr or not */ msg_smiley = qq_emoticon_to_purple(im_text.msg); if (fmt != NULL) { + purple_debug_info("QQ", "going to use_default_font\n"); + if (QQ_CUSTOM_USE_DEFAULT_FONT == use_default_font) { + qq_im_fmt_reset_font(fmt); + purple_debug_info("QQ", "use_default_font set\n"); + } msg_fmt = qq_im_fmt_to_purple(fmt, msg_smiley); msg_utf8 = qq_to_utf8(msg_fmt, QQ_CHARSET_DEFAULT); + purple_debug_info("QQ", "passed!\n"); g_free(msg_fmt); qq_im_fmt_free(fmt); } else { diff -r a7397a3d67ef -r 626efe139f98 libpurple/protocols/qq/group_im.h --- a/libpurple/protocols/qq/group_im.h Sun Jan 09 23:32:10 2011 +0000 +++ b/libpurple/protocols/qq/group_im.h Sat Feb 12 23:54:14 2011 +0000 @@ -30,11 +30,16 @@ #include "conversation.h" #include "group.h" +enum { + QQ_CUSTOM_USE_DEFAULT_FONT = 0x00000001, + QQ_CUSTOM_NONE = 0x00000000 +}; + PurpleConversation *qq_room_conv_open(PurpleConnection *gc, qq_room_data *rmd); void qq_room_conv_set_onlines(PurpleConnection *gc, qq_room_data *rmd); void qq_room_got_chat_in(PurpleConnection *gc, - guint32 room_id, guint32 uid_from, const gchar *msg, time_t in_time); + guint32 room_id, UID uid_from, const gchar *msg, time_t in_time); int qq_chat_send(PurpleConnection *gc, int id, const char *message, PurpleMessageFlags flags); void qq_process_room_send_im(PurpleConnection *gc, guint8 *data, gint len); @@ -43,3 +48,4 @@ void qq_process_room_im(guint8 *data, gint data_len, guint32 id, PurpleConnection *gc, guint16 msg_type); #endif + diff -r a7397a3d67ef -r 626efe139f98 libpurple/protocols/qq/group_info.c --- a/libpurple/protocols/qq/group_info.c Sun Jan 09 23:32:10 2011 +0000 +++ b/libpurple/protocols/qq/group_info.c Sat Feb 12 23:54:14 2011 +0000 @@ -65,7 +65,7 @@ } /* send packet to get info for each group member */ -gint qq_request_room_get_buddies(PurpleConnection *gc, guint32 room_id, guint32 update_class) +gint qq_request_room_get_buddies(PurpleConnection *gc, guint32 room_id, UPDCLS update_class) { guint8 *raw_data; gint bytes, num; @@ -177,7 +177,8 @@ PurpleConversation *conv; guint8 organization, role; guint16 unknown, max_members; - guint32 member_uid, id, ext_id; + UID member_uid; + guint32 id, ext_id; guint32 unknown4; guint8 unknown1; gint bytes, num; @@ -286,7 +287,8 @@ void qq_process_room_cmd_get_onlines(guint8 *data, gint len, PurpleConnection *gc) { - guint32 room_id, member_uid; + guint32 room_id; + UID member_uid; guint8 unknown; gint bytes, num; qq_room_data *rmd; @@ -334,7 +336,8 @@ { gint bytes; gint num; - guint32 id, member_uid; + guint32 id; + UID member_uid; guint16 unknown; qq_room_data *rmd; qq_buddy_data *bd; diff -r a7397a3d67ef -r 626efe139f98 libpurple/protocols/qq/group_info.h --- a/libpurple/protocols/qq/group_info.h Sun Jan 09 23:32:10 2011 +0000 +++ b/libpurple/protocols/qq/group_info.h Sat Feb 12 23:54:14 2011 +0000 @@ -34,7 +34,7 @@ QQ_ROOM_INFO_DISPLAY }; -gint qq_request_room_get_buddies(PurpleConnection *gc, guint32 room_id, guint32 update_class); +gint qq_request_room_get_buddies(PurpleConnection *gc, guint32 room_id, UPDCLS update_class); void qq_process_room_cmd_get_info(guint8 *data, gint len, guint32 action, PurpleConnection *gc); void qq_process_room_cmd_get_onlines(guint8 *data, gint len, PurpleConnection *gc); diff -r a7397a3d67ef -r 626efe139f98 libpurple/protocols/qq/group_internal.c --- a/libpurple/protocols/qq/group_internal.c Sun Jan 09 23:32:10 2011 +0000 +++ b/libpurple/protocols/qq/group_internal.c Sat Feb 12 23:54:14 2011 +0000 @@ -207,7 +207,7 @@ } /* find a qq_buddy_data by uid, called by im.c */ -qq_buddy_data *qq_room_buddy_find(qq_room_data *rmd, guint32 uid) +qq_buddy_data *qq_room_buddy_find(qq_room_data *rmd, UID uid) { GList *list; qq_buddy_data *bd; @@ -226,7 +226,7 @@ } /* remove a qq_buddy_data by uid, called by qq_group_opt.c */ -void qq_room_buddy_remove(qq_room_data *rmd, guint32 uid) +void qq_room_buddy_remove(qq_room_data *rmd, UID uid) { GList *list; qq_buddy_data *bd; @@ -244,7 +244,7 @@ } } -qq_buddy_data *qq_room_buddy_find_or_new(PurpleConnection *gc, qq_room_data *rmd, guint32 member_uid) +qq_buddy_data *qq_room_buddy_find_or_new(PurpleConnection *gc, qq_room_data *rmd, UID member_uid) { qq_buddy_data *member, *bd; PurpleBuddy *buddy; diff -r a7397a3d67ef -r 626efe139f98 libpurple/protocols/qq/group_internal.h --- a/libpurple/protocols/qq/group_internal.h Sun Jan 09 23:32:10 2011 +0000 +++ b/libpurple/protocols/qq/group_internal.h Sat Feb 12 23:54:14 2011 +0000 @@ -36,9 +36,9 @@ void qq_room_remove(PurpleConnection *gc, guint32 id); void qq_room_update_chat_info(PurpleChat *chat, qq_room_data *rmd); -qq_buddy_data *qq_room_buddy_find(qq_room_data *rmd, guint32 uid); -void qq_room_buddy_remove(qq_room_data *rmd, guint32 uid); -qq_buddy_data *qq_room_buddy_find_or_new(PurpleConnection *gc, qq_room_data *rmd, guint32 member_uid); +qq_buddy_data *qq_room_buddy_find(qq_room_data *rmd, UID uid); +void qq_room_buddy_remove(qq_room_data *rmd, UID uid); +qq_buddy_data *qq_room_buddy_find_or_new(PurpleConnection *gc, qq_room_data *rmd, UID member_uid); void qq_room_data_initial(PurpleConnection *gc); void qq_room_data_free_all(PurpleConnection *gc); diff -r a7397a3d67ef -r 626efe139f98 libpurple/protocols/qq/group_join.c --- a/libpurple/protocols/qq/group_join.c Sun Jan 09 23:32:10 2011 +0000 +++ b/libpurple/protocols/qq/group_join.c Sat Feb 12 23:54:14 2011 +0000 @@ -155,7 +155,7 @@ } void qq_send_cmd_group_auth(PurpleConnection *gc, qq_room_data *rmd, - guint8 opt, guint32 uid, const gchar *reason_utf8) + guint8 opt, UID uid, const gchar *reason_utf8) { guint8 raw_data[MAX_PACKET_SIZE - 16]; gint bytes; diff -r a7397a3d67ef -r 626efe139f98 libpurple/protocols/qq/group_join.h --- a/libpurple/protocols/qq/group_join.h Sun Jan 09 23:32:10 2011 +0000 +++ b/libpurple/protocols/qq/group_join.h Sat Feb 12 23:54:14 2011 +0000 @@ -49,7 +49,7 @@ void qq_request_room_search(PurpleConnection *gc, guint32 ext_id, int action); void qq_process_room_search(PurpleConnection *gc, guint8 *data, gint len, guint32 ship32); -void qq_send_cmd_group_auth(PurpleConnection *gc, qq_room_data *rmd, guint8 opt, guint32 uid, const gchar *reason_utf8); +void qq_send_cmd_group_auth(PurpleConnection *gc, qq_room_data *rmd, guint8 opt, UID uid, const gchar *reason_utf8); void qq_group_join(PurpleConnection *gc, GHashTable *data); void qq_request_room_join(PurpleConnection *gc, qq_room_data *rmd); void qq_room_quit(PurpleConnection *gc, guint32 room_id); @@ -57,3 +57,4 @@ void qq_process_group_cmd_join_group_auth(guint8 *data, gint len, PurpleConnection *gc); void qq_process_group_cmd_join_group(guint8 *data, gint len, PurpleConnection *gc); #endif + diff -r a7397a3d67ef -r 626efe139f98 libpurple/protocols/qq/im.c --- a/libpurple/protocols/qq/im.c Sun Jan 09 23:32:10 2011 +0000 +++ b/libpurple/protocols/qq/im.c Sat Feb 12 23:54:14 2011 +0000 @@ -67,15 +67,14 @@ QQ_NORMAL_IM_FILE_EX_NOTIFY_IP = 0x87 }; -typedef struct _qq_im_header qq_im_header; -struct _qq_im_header { +typedef struct _qq_im_header { /* this is the common part of normal_text */ guint16 version_from; - guint32 uid_from; - guint32 uid_to; + UID uid_from; + UID uid_to; guint8 session_md5[QQ_KEY_LENGTH]; guint16 im_type; -}; +} qq_im_header; /* read the common parts of the normal_im, * returns the bytes read if succeed, or -1 if there is any error */ @@ -93,11 +92,10 @@ return bytes; } -typedef struct _qq_emoticon qq_emoticon; -struct _qq_emoticon { +typedef struct _qq_emoticon { guint8 symbol; gchar *name; -}; +} qq_emoticon; static gboolean emoticons_is_sorted = FALSE; /* Map for purple smiley convert to qq, need qsort */ @@ -528,7 +526,8 @@ qq_im_format *qq_im_fmt_new(void) { qq_im_format *fmt; - const gchar simsun[] = { 0xcb, 0xce, 0xcc, 0xe5, 0}; /* simsun in Chinese */ + /* '0xcb, 0xce, 0xcc, 0xe5' means Chinese '宋体' in utf8 */ + const gchar simsun[] = { 0xcb, 0xce, 0xcc, 0xe5, 0}; fmt = g_new0(qq_im_format, 1); memset(fmt, 0, sizeof(qq_im_format)); @@ -541,6 +540,17 @@ return fmt; } +void qq_im_fmt_reset_font(qq_im_format *fmt) +{ + const gchar simsun[] = {0xcb, 0xce, 0xcc, 0xe5, 0x00}; + g_return_if_fail(NULL != fmt); + + if (NULL != fmt->font) { + g_free(fmt->font); + fmt->font = g_strdup(simsun); + } +} + qq_im_format *qq_im_fmt_new_by_purple(const gchar *msg) { qq_im_format *fmt; @@ -1036,7 +1046,7 @@ } /* send an IM to uid_to */ -static void request_send_im(PurpleConnection *gc, guint32 uid_to, gint type, +static void request_send_im(PurpleConnection *gc, UID uid_to, gint type, qq_im_format *fmt, gchar *msg, guint8 id, guint8 frag_count, guint8 frag_index) { qq_data *qd; @@ -1241,7 +1251,7 @@ gint qq_send_im(PurpleConnection *gc, const gchar *who, const gchar *what, PurpleMessageFlags flags) { qq_data *qd; - guint32 uid_to; + UID uid_to; gint type; qq_im_format *fmt; gchar *msg_stripped, *tmp; diff -r a7397a3d67ef -r 626efe139f98 libpurple/protocols/qq/im.h --- a/libpurple/protocols/qq/im.h Sun Jan 09 23:32:10 2011 +0000 +++ b/libpurple/protocols/qq/im.h Sat Feb 12 23:54:14 2011 +0000 @@ -49,6 +49,10 @@ }; typedef struct { + /* attr: + bit0-4 for font size, bit5 for bold, + bit6 for italic, bit7 for underline + */ guint8 attr; guint8 rgb[3]; guint16 charset; @@ -61,6 +65,7 @@ qq_im_format *qq_im_fmt_new(void); void qq_im_fmt_free(qq_im_format *fmt); +void qq_im_fmt_reset_font(qq_im_format *fmt); qq_im_format *qq_im_fmt_new_by_purple(const gchar *msg); gchar *qq_im_fmt_to_purple(qq_im_format *fmt, gchar *text); gboolean qq_im_smiley_none(const gchar *msg); diff -r a7397a3d67ef -r 626efe139f98 libpurple/protocols/qq/qq.c --- a/libpurple/protocols/qq/qq.c Sun Jan 09 23:32:10 2011 +0000 +++ b/libpurple/protocols/qq/qq.c Sat Feb 12 23:54:14 2011 +0000 @@ -173,6 +173,13 @@ qd->is_show_news = purple_account_get_bool(account, "show_news", TRUE); qd->is_show_chat = purple_account_get_bool(account, "show_chat", TRUE); + if (purple_account_get_bool(account, "default_font", FALSE)) { + qd->custom = QQ_CUSTOM_USE_DEFAULT_FONT; + } + else { + qd->custom = QQ_CUSTOM_NONE; + } + qd->resend_times = purple_prefs_get_int("/plugins/prpl/qq/resend_times"); if (qd->resend_times <= 1) qd->itv_config.resend = 4; @@ -443,7 +450,7 @@ /* send packet to get who's detailed information */ static void qq_show_buddy_info(PurpleConnection *gc, const gchar *who) { - guint32 uid; + UID uid; qq_data *qd; qd = gc->proto_data; @@ -823,7 +830,7 @@ PurpleBuddy *buddy; qq_buddy_data *bd; PurpleConnection *gc; - guint32 bd_uid; + UID bd_uid; g_return_if_fail(PURPLE_BLIST_NODE_IS_BUDDY(node)); @@ -927,7 +934,7 @@ { qq_data *qd; gchar *uid_str; - guint32 uid; + UID uid; purple_debug_info("QQ", "Get chat buddy info of %s\n", who); g_return_if_fail(who != NULL); @@ -1142,6 +1149,9 @@ option = purple_account_option_bool_new(_("Show chat room when msg comes"), "show_chat", TRUE); prpl_info.protocol_options = g_list_append(prpl_info.protocol_options, option); + option = purple_account_option_bool_new(_("Use default font"), "default_font", FALSE); + prpl_info.protocol_options = g_list_append(prpl_info.protocol_options, option); + option = purple_account_option_int_new(_("Keep alive interval (seconds)"), "keep_alive_interval", 60); prpl_info.protocol_options = g_list_append(prpl_info.protocol_options, option); diff -r a7397a3d67ef -r 626efe139f98 libpurple/protocols/qq/qq.h --- a/libpurple/protocols/qq/qq.h Sun Jan 09 23:32:10 2011 +0000 +++ b/libpurple/protocols/qq/qq.h Sat Feb 12 23:54:14 2011 +0000 @@ -39,22 +39,19 @@ #define qq_strlen(s) ((s)!=NULL?strlen(s):0) #define qq_strcmp(s1,s2) ((s1)!=NULL && (s2)!=NULL?strcmp(s1,s2):0) -typedef struct _qq_data qq_data; -typedef struct _qq_buddy_data qq_buddy_data; -typedef struct _qq_interval qq_interval; -typedef struct _qq_net_stat qq_net_stat; -typedef struct _qq_login_data qq_login_data; -typedef struct _qq_captcha_data qq_captcha_data; +/* business logic layer */ +typedef guint32 UPDCLS; +typedef guint32 UID; -struct _qq_captcha_data { +typedef struct _qq_captcha_data { guint8 *token; guint16 token_len; guint8 next_index; guint8 *data; guint16 data_len; -}; +} qq_captcha_data; -struct _qq_login_data { +typedef struct _qq_login_data { guint8 random_key[QQ_KEY_LENGTH]; /* first encrypt key generated by client */ guint8 *token; /* get from server */ guint8 token_len; @@ -67,24 +64,24 @@ guint8 *login_token; guint16 login_token_len; guint8 login_key[QQ_KEY_LENGTH]; -}; +} qq_login_data; -struct _qq_interval { +typedef struct _qq_interval { gint resend; gint keep_alive; gint update; -}; +} qq_interval; -struct _qq_net_stat { +typedef struct _qq_net_stat { glong sent; glong resend; glong lost; glong rcved; glong rcved_dup; -}; +} qq_net_stat; -struct _qq_buddy_data { - guint32 uid; +typedef struct _qq_buddy_data { + UID uid; guint16 face; /* index: 0 - 299 */ guint8 age; guint8 gender; @@ -104,7 +101,7 @@ gchar** memo; gint8 role; /* role in group, used only in group->members list */ -}; +} qq_buddy_data; typedef struct _qq_connection qq_connection; struct _qq_connection { @@ -118,7 +115,7 @@ int tcp_rxlen; }; -struct _qq_data { +typedef struct _qq_data { PurpleConnection *gc; GSList *openconns; @@ -153,7 +150,7 @@ GList *transactions; /* check ack packet and resend */ - guint32 uid; /* QQ number */ + UID uid; /* QQ number */ qq_login_data ld; qq_captcha_data captcha; @@ -187,8 +184,9 @@ gboolean is_show_notice; gboolean is_show_news; gboolean is_show_chat; + guint32 custom; guint16 send_im_id; /* send IM sequence number */ -}; +} qq_data; #endif diff -r a7397a3d67ef -r 626efe139f98 libpurple/protocols/qq/qq_base.c --- a/libpurple/protocols/qq/qq_base.c Sun Jan 09 23:32:10 2011 +0000 +++ b/libpurple/protocols/qq/qq_base.c Sat Feb 12 23:54:14 2011 +0000 @@ -42,7 +42,7 @@ #include "utils.h" /* generate a md5 key using uid and session_key */ -static void get_session_md5(guint8 *session_md5, guint32 uid, guint8 *session_key) +static void get_session_md5(guint8 *session_md5, UID uid, guint8 *session_key) { guint8 src[QQ_KEY_LENGTH + QQ_KEY_LENGTH]; gint bytes = 0; @@ -60,7 +60,7 @@ gint bytes; guint8 ret; - guint32 uid; + UID uid; struct in_addr ip; guint16 port; struct tm *tm_local; @@ -151,7 +151,7 @@ gint bytes; struct { guint8 result; - guint32 uid; + UID uid; struct in_addr new_server_ip; guint16 new_server_port; } packet; @@ -1236,7 +1236,7 @@ qq_data *qd; gint bytes; guint8 ret; - guint32 uid; + UID uid; gchar *error; gchar *msg; gchar *msg_utf8; @@ -1427,7 +1427,7 @@ qq_data *qd; gint bytes; guint8 ret; - guint32 uid; + UID uid; gchar *error; gchar *msg; gchar *msg_utf8; diff -r a7397a3d67ef -r 626efe139f98 libpurple/protocols/qq/qq_base.h --- a/libpurple/protocols/qq/qq_base.h Sun Jan 09 23:32:10 2011 +0000 +++ b/libpurple/protocols/qq/qq_base.h Sat Feb 12 23:54:14 2011 +0000 @@ -28,12 +28,12 @@ #include #include "connection.h" -#define QQ_LOGIN_REPLY_OK 0x00 +#define QQ_LOGIN_REPLY_OK 0x00 #define QQ_LOGIN_REPLY_REDIRECT 0x01 /* defined by myself */ #define QQ_LOGIN_REPLY_CAPTCHA_DLG 0xfd -#define QQ_LOGIN_REPLY_NEXT_TOKEN_EX 0xfe -#define QQ_LOGIN_REPLY_ERR 0xff +#define QQ_LOGIN_REPLY_NEXT_TOKEN_EX 0xfe +#define QQ_LOGIN_REPLY_ERR 0xff #define QQ_LOGIN_MODE_NORMAL 0x0a #define QQ_LOGIN_MODE_AWAY 0x1e @@ -76,3 +76,4 @@ void qq_request_login_2008(PurpleConnection *gc); guint8 qq_process_login_2008( PurpleConnection *gc, guint8 *data, gint data_len); #endif + diff -r a7397a3d67ef -r 626efe139f98 libpurple/protocols/qq/qq_define.c --- a/libpurple/protocols/qq/qq_define.c Sun Jan 09 23:32:10 2011 +0000 +++ b/libpurple/protocols/qq/qq_define.c Sat Feb 12 23:54:14 2011 +0000 @@ -118,6 +118,8 @@ return "QQMac 1.0 preview1 build 670"; case QQ_CLIENT_1441: return "QQ2009 preview2"; + case QQ_CLIENT_1663: + return "QQ2009"; case QQ_SERVER_0100: return "QQ Server 0100"; default: diff -r a7397a3d67ef -r 626efe139f98 libpurple/protocols/qq/qq_define.h --- a/libpurple/protocols/qq/qq_define.h Sun Jan 09 23:32:10 2011 +0000 +++ b/libpurple/protocols/qq/qq_define.h Sat Feb 12 23:54:14 2011 +0000 @@ -35,7 +35,9 @@ #define QQ_CLIENT_0D55 0x0d55 /* QQ2005 used by openq before */ #define QQ_CLIENT_111D 0x111D /* QQ2007 */ -#define QQ_CLIENT_115B 0x115B /* QQ2008 He Sui*/ +#define QQ_CLIENT_115B 0x115B /* QQ2008 He Sui */ +#define QQ_CLIENT_1663 0x1663 /* QQ2009 Release */ +#define QQ_CLIENT_1801 0x1801 /* QQ2009 International Beta1 */ const gchar *qq_get_ver_desc(gint source); diff -r a7397a3d67ef -r 626efe139f98 libpurple/protocols/qq/qq_network.c --- a/libpurple/protocols/qq/qq_network.c Sun Jan 09 23:32:10 2011 +0000 +++ b/libpurple/protocols/qq/qq_network.c Sat Feb 12 23:54:14 2011 +0000 @@ -42,11 +42,11 @@ #define QQ_DEFAULT_PORT 8000 /* set QQ_CONNECT_MAX to 1, when test reconnecting */ -#define QQ_CONNECT_MAX 3 +#define QQ_CONNECT_MAX 3 #define QQ_CONNECT_INTERVAL 2 -#define QQ_CONNECT_CHECK 5 -#define QQ_KEEP_ALIVE_INTERVAL 60 -#define QQ_TRANS_INTERVAL 10 +#define QQ_CONNECT_CHECK 5 +#define QQ_KEEP_ALIVE_INTERVAL 60 +#define QQ_TRANS_INTERVAL 10 gboolean connect_to_server(PurpleConnection *gc, gchar *server, gint port); @@ -63,6 +63,7 @@ static qq_connection *connection_create(qq_data *qd, int fd) { qq_connection *ret = g_new0(qq_connection, 1); + g_return_val_if_fail(ret != NULL, NULL); ret->fd = fd; qd->openconns = g_slist_append(qd->openconns, ret); return ret; @@ -268,7 +269,7 @@ guint16 seq; /* May be ack_seq or send_seq, depends on cmd */ guint8 room_cmd; guint32 room_id; - guint32 update_class; + UPDCLS update_class; guint32 ship32; int ret; @@ -772,9 +773,14 @@ } /* _qq_show_socket("Got login socket", source); */ + /* ok, already connected to the server */ qd->fd = source; conn = connection_create(qd, source); + g_return_if_fail( conn != NULL ); + if (qd->use_tcp) { + /* events which match "PURPLE_INPUT_READ" of + * "source" would trigger the callback function */ conn->input_handler = purple_input_add(source, PURPLE_INPUT_READ, tcp_pending, gc); } else { conn->input_handler = purple_input_add(source, PURPLE_INPUT_READ, udp_pending, gc); @@ -1131,7 +1137,7 @@ /* Encrypt data with session_key, and send packet out */ static gint send_cmd_detail(PurpleConnection *gc, guint16 cmd, guint16 seq, guint8 *data, gint data_len, gboolean is_save2trans, - guint32 update_class, guint32 ship32) + UPDCLS update_class, guint32 ship32) { qq_data *qd; guint8 *encrypted; @@ -1161,7 +1167,7 @@ } gint qq_send_cmd_mess(PurpleConnection *gc, guint16 cmd, guint8 *data, gint data_len, - guint32 update_class, guint32 ship32) + UPDCLS update_class, guint32 ship32) { qq_data *qd; guint16 seq; @@ -1235,7 +1241,7 @@ } static gint send_room_cmd(PurpleConnection *gc, guint8 room_cmd, guint32 room_id, - guint8 *data, gint data_len, guint32 update_class, guint32 ship32) + guint8 *data, gint data_len, UPDCLS update_class, guint32 ship32) { qq_data *qd; guint8 *buf; @@ -1289,7 +1295,7 @@ } gint qq_send_room_cmd_mess(PurpleConnection *gc, guint8 room_cmd, guint32 room_id, - guint8 *data, gint data_len, guint32 update_class, guint32 ship32) + guint8 *data, gint data_len, UPDCLS update_class, guint32 ship32) { g_return_val_if_fail(room_cmd > 0, -1); return send_room_cmd(gc, room_cmd, room_id, data, data_len, update_class, ship32); diff -r a7397a3d67ef -r 626efe139f98 libpurple/protocols/qq/qq_network.h --- a/libpurple/protocols/qq/qq_network.h Sun Jan 09 23:32:10 2011 +0000 +++ b/libpurple/protocols/qq/qq_network.h Sat Feb 12 23:54:14 2011 +0000 @@ -39,7 +39,7 @@ guint8 *encrypted_data, gint encrypted_len, gboolean is_save2trans); gint qq_send_cmd(PurpleConnection *gc, guint16 cmd, guint8 *data, gint datalen); gint qq_send_cmd_mess(PurpleConnection *gc, guint16 cmd, guint8 *data, gint data_len, - guint32 update_class, guint32 ship32); + UPDCLS update_class, guint32 ship32); gint qq_send_server_reply(PurpleConnection *gc, guint16 cmd, guint16 seq, guint8 *data, gint data_len); @@ -47,7 +47,7 @@ gint qq_send_room_cmd(PurpleConnection *gc, guint8 room_cmd, guint32 room_id, guint8 *data, gint data_len); gint qq_send_room_cmd_mess(PurpleConnection *gc, guint8 room_cmd, guint32 room_id, - guint8 *data, gint data_len, guint32 update_class, guint32 ship32); + guint8 *data, gint data_len, UPDCLS update_class, guint32 ship32); gint qq_send_room_cmd_only(PurpleConnection *gc, guint8 room_cmd, guint32 room_id); gint qq_send_room_cmd_noid(PurpleConnection *gc, guint8 room_cmd, guint8 *data, gint data_len); diff -r a7397a3d67ef -r 626efe139f98 libpurple/protocols/qq/qq_process.c --- a/libpurple/protocols/qq/qq_process.c Sun Jan 09 23:32:10 2011 +0000 +++ b/libpurple/protocols/qq/qq_process.c Sat Feb 12 23:54:14 2011 +0000 @@ -254,8 +254,8 @@ gint bytes; struct { - guint32 uid_from; - guint32 uid_to; + UID uid_from; + UID uid_to; guint32 seq; struct in_addr ip_from; guint16 port_from; @@ -725,7 +725,7 @@ void qq_proc_room_cmds(PurpleConnection *gc, guint16 seq, guint8 room_cmd, guint32 room_id, guint8 *rcved, gint rcved_len, - guint32 update_class, guint32 ship32) + UPDCLS update_class, guint32 ship32) { qq_data *qd; guint8 *data; @@ -861,7 +861,7 @@ } guint8 qq_proc_login_cmds(PurpleConnection *gc, guint16 cmd, guint16 seq, - guint8 *rcved, gint rcved_len, guint32 update_class, guint32 ship32) + guint8 *rcved, gint rcved_len, UPDCLS update_class, guint32 ship32) { qq_data *qd; guint8 *data = NULL; @@ -1013,7 +1013,7 @@ } void qq_proc_client_cmds(PurpleConnection *gc, guint16 cmd, guint16 seq, - guint8 *rcved, gint rcved_len, guint32 update_class, guint32 ship32) + guint8 *rcved, gint rcved_len, UPDCLS update_class, guint32 ship32) { qq_data *qd; diff -r a7397a3d67ef -r 626efe139f98 libpurple/protocols/qq/qq_process.h --- a/libpurple/protocols/qq/qq_process.h Sun Jan 09 23:32:10 2011 +0000 +++ b/libpurple/protocols/qq/qq_process.h Sat Feb 12 23:54:14 2011 +0000 @@ -39,12 +39,12 @@ }; guint8 qq_proc_login_cmds(PurpleConnection *gc, guint16 cmd, guint16 seq, - guint8 *rcved, gint rcved_len, guint32 update_class, guint32 ship32); + guint8 *rcved, gint rcved_len, UPDCLS update_class, guint32 ship32); void qq_proc_client_cmds(PurpleConnection *gc, guint16 cmd, guint16 seq, - guint8 *rcved, gint rcved_len, guint32 update_class, guint32 ship32); + guint8 *rcved, gint rcved_len, UPDCLS update_class, guint32 ship32); void qq_proc_room_cmds(PurpleConnection *gc, guint16 seq, guint8 room_cmd, guint32 room_id, guint8 *rcved, gint rcved_len, - guint32 update_class, guint32 ship32); + UPDCLS update_class, guint32 ship32); void qq_proc_server_cmd(PurpleConnection *gc, guint16 cmd, guint16 seq, guint8 *rcved, gint rcved_len); diff -r a7397a3d67ef -r 626efe139f98 libpurple/protocols/qq/qq_trans.c --- a/libpurple/protocols/qq/qq_trans.c Sun Jan 09 23:32:10 2011 +0000 +++ b/libpurple/protocols/qq/qq_trans.c Sat Feb 12 23:54:14 2011 +0000 @@ -42,25 +42,6 @@ QQ_TRANS_IS_REPLY = 0x08 /* server command before login*/ }; -struct _qq_transaction { - guint8 flag; - guint16 seq; - guint16 cmd; - - guint8 room_cmd; - guint32 room_id; - - guint8 *data; - gint data_len; - - gint fd; - gint send_retries; - gint rcved_times; - gint scan_times; - - guint32 update_class; - guint32 ship32; -}; gboolean qq_trans_is_server(qq_transaction *trans) { @@ -107,7 +88,7 @@ } static qq_transaction *trans_create(PurpleConnection *gc, gint fd, - guint16 cmd, guint16 seq, guint8 *data, gint data_len, guint32 update_class, guint32 ship32) + guint16 cmd, guint16 seq, guint8 *data, gint data_len, UPDCLS update_class, guint32 ship32) { qq_transaction *trans; @@ -178,7 +159,7 @@ } void qq_trans_add_client_cmd(PurpleConnection *gc, - guint16 cmd, guint16 seq, guint8 *data, gint data_len, guint32 update_class, guint32 ship32) + guint16 cmd, guint16 seq, guint8 *data, gint data_len, UPDCLS update_class, guint32 ship32) { qq_data *qd = (qq_data *)gc->proto_data; qq_transaction *trans = trans_create(gc, qd->fd, cmd, seq, data, data_len, update_class, ship32); @@ -218,7 +199,7 @@ void qq_trans_add_room_cmd(PurpleConnection *gc, guint16 seq, guint8 room_cmd, guint32 room_id, guint8 *data, gint data_len, - guint32 update_class, guint32 ship32) + UPDCLS update_class, guint32 ship32) { qq_data *qd = (qq_data *)gc->proto_data; qq_transaction *trans = trans_create(gc, qd->fd, QQ_CMD_ROOM, seq, data, data_len, diff -r a7397a3d67ef -r 626efe139f98 libpurple/protocols/qq/qq_trans.h --- a/libpurple/protocols/qq/qq_trans.h Sun Jan 09 23:32:10 2011 +0000 +++ b/libpurple/protocols/qq/qq_trans.h Sat Feb 12 23:54:14 2011 +0000 @@ -28,7 +28,25 @@ #include #include "qq.h" -typedef struct _qq_transaction qq_transaction; +typedef struct _qq_transaction { + guint8 flag; + guint16 seq; + guint16 cmd; + + guint8 room_cmd; + guint32 room_id; + + guint8 *data; + gint data_len; + + gint fd; + gint send_retries; + gint rcved_times; + gint scan_times; + + UPDCLS update_class; + guint32 ship32; +} qq_transaction; qq_transaction *qq_trans_find_rcved(PurpleConnection *gc, guint16 cmd, guint16 seq); gboolean qq_trans_is_server(qq_transaction *trans) ; @@ -39,10 +57,10 @@ guint32 qq_trans_get_ship(qq_transaction *trans); void qq_trans_add_client_cmd(PurpleConnection *gc, guint16 cmd, guint16 seq, - guint8 *data, gint data_len, guint32 update_class, guint32 ship32); + guint8 *data, gint data_len, UPDCLS update_class, guint32 ship32); void qq_trans_add_room_cmd(PurpleConnection *gc, guint16 seq, guint8 room_cmd, guint32 room_id, - guint8 *data, gint data_len, guint32 update_class, guint32 ship32); + guint8 *data, gint data_len, UPDCLS update_class, guint32 ship32); void qq_trans_add_server_cmd(PurpleConnection *gc, guint16 cmd, guint16 seq, guint8 *rcved, gint rcved_len); void qq_trans_add_server_reply(PurpleConnection *gc, guint16 cmd, guint16 seq, diff -r a7397a3d67ef -r 626efe139f98 libpurple/protocols/qq/send_file.c --- a/libpurple/protocols/qq/send_file.c Sun Jan 09 23:32:10 2011 +0000 +++ b/libpurple/protocols/qq/send_file.c Sat Feb 12 23:54:14 2011 +0000 @@ -278,7 +278,7 @@ /* fill in the common information of file transfer */ static gint _qq_create_packet_file_header -(guint8 *raw_data, guint32 to_uid, guint16 message_type, qq_data *qd, gboolean seq_ack) +(guint8 *raw_data, UID to_uid, guint16 message_type, qq_data *qd, gboolean seq_ack) { gint bytes; time_t now; @@ -430,7 +430,7 @@ } /* create the QQ_FILE_TRANS_REQ packet with file infomations */ -static void _qq_send_packet_file_request (PurpleConnection *gc, guint32 to_uid, gchar *filename, gint filesize) +static void _qq_send_packet_file_request (PurpleConnection *gc, UID to_uid, gchar *filename, gint filesize) { qq_data *qd; guint8 *raw_data; @@ -482,7 +482,7 @@ } /* tell the buddy we want to accept the file */ -static void _qq_send_packet_file_accept(PurpleConnection *gc, guint32 to_uid) +static void _qq_send_packet_file_accept(PurpleConnection *gc, UID to_uid) { qq_data *qd; guint8 *raw_data; @@ -520,7 +520,7 @@ packet_len, bytes); } -static void _qq_send_packet_file_notifyip(PurpleConnection *gc, guint32 to_uid) +static void _qq_send_packet_file_notifyip(PurpleConnection *gc, UID to_uid) { PurpleXfer *xfer; ft_info *info; @@ -552,7 +552,7 @@ } /* tell the buddy we don't want the file */ -static void _qq_send_packet_file_reject (PurpleConnection *gc, guint32 to_uid) +static void _qq_send_packet_file_reject (PurpleConnection *gc, UID to_uid) { qq_data *qd; guint8 *raw_data; @@ -576,7 +576,7 @@ } /* tell the buddy to cancel transfer */ -static void _qq_send_packet_file_cancel (PurpleConnection *gc, guint32 to_uid) +static void _qq_send_packet_file_cancel (PurpleConnection *gc, UID to_uid) { qq_data *qd; guint8 *raw_data; @@ -611,7 +611,7 @@ { PurpleConnection *gc; PurpleAccount *account; - guint32 to_uid; + UID to_uid; const gchar *filename; gchar *base_filename; @@ -678,7 +678,7 @@ /* process reject im for file transfer request */ void qq_process_recv_file_reject (guint8 *data, gint data_len, - guint32 sender_uid, PurpleConnection *gc) + UID sender_uid, PurpleConnection *gc) { gchar *msg, *filename; qq_data *qd; @@ -708,7 +708,7 @@ /* process cancel im for file transfer request */ void qq_process_recv_file_cancel (guint8 *data, gint data_len, - guint32 sender_uid, PurpleConnection *gc) + UID sender_uid, PurpleConnection *gc) { gchar *msg, *filename; qq_data *qd; @@ -738,7 +738,7 @@ } /* process accept im for file transfer request */ -void qq_process_recv_file_accept(guint8 *data, gint data_len, guint32 sender_uid, PurpleConnection *gc) +void qq_process_recv_file_accept(guint8 *data, gint data_len, UID sender_uid, PurpleConnection *gc) { qq_data *qd; gint bytes; @@ -764,7 +764,7 @@ } /* process request from buddy's im for file transfer request */ -void qq_process_recv_file_request(guint8 *data, gint data_len, guint32 sender_uid, PurpleConnection * gc) +void qq_process_recv_file_request(guint8 *data, gint data_len, UID sender_uid, PurpleConnection * gc) { qq_data *qd; PurpleXfer *xfer; @@ -874,7 +874,7 @@ } void qq_process_recv_file_notify(guint8 *data, gint data_len, - guint32 sender_uid, PurpleConnection *gc) + UID sender_uid, PurpleConnection *gc) { gint bytes; qq_data *qd; diff -r a7397a3d67ef -r 626efe139f98 libpurple/protocols/qq/send_file.h --- a/libpurple/protocols/qq/send_file.h Sun Jan 09 23:32:10 2011 +0000 +++ b/libpurple/protocols/qq/send_file.h Sat Feb 12 23:54:14 2011 +0000 @@ -29,7 +29,7 @@ #include "qq.h" typedef struct _ft_info { - guint32 to_uid; + UID to_uid; guint16 send_seq; guint8 file_session_key[QQ_KEY_LENGTH]; guint8 conn_method; @@ -67,11 +67,11 @@ gboolean use_major; } ft_info; -void qq_process_recv_file_accept(guint8 *data, gint data_len, guint32 sender_uid, PurpleConnection *gc); -void qq_process_recv_file_reject(guint8 *data, gint data_len, guint32 sender_uid, PurpleConnection *gc); -void qq_process_recv_file_cancel(guint8 *data, gint data_len, guint32 sender_uid, PurpleConnection *gc); -void qq_process_recv_file_request(guint8 *data, gint data_len, guint32 sender_uid, PurpleConnection *gc); -void qq_process_recv_file_notify(guint8 *data, gint data_len, guint32 sender_uid, PurpleConnection *gc); +void qq_process_recv_file_accept(guint8 *data, gint data_len, UID sender_uid, PurpleConnection *gc); +void qq_process_recv_file_reject(guint8 *data, gint data_len, UID sender_uid, PurpleConnection *gc); +void qq_process_recv_file_cancel(guint8 *data, gint data_len, UID sender_uid, PurpleConnection *gc); +void qq_process_recv_file_request(guint8 *data, gint data_len, UID sender_uid, PurpleConnection *gc); +void qq_process_recv_file_notify(guint8 *data, gint data_len, UID sender_uid, PurpleConnection *gc); gboolean qq_can_receive_file(PurpleConnection *gc, const char *who); void qq_send_file(PurpleConnection *gc, const char *who, const char *file); gint qq_get_conn_info(ft_info *info, guint8 *data); diff -r a7397a3d67ef -r 626efe139f98 libpurple/protocols/qq/utils.c --- a/libpurple/protocols/qq/utils.c Sun Jan 09 23:32:10 2011 +0000 +++ b/libpurple/protocols/qq/utils.c Sat Feb 12 23:54:14 2011 +0000 @@ -131,9 +131,9 @@ } /* convert Purple name to original QQ UID */ -guint32 purple_name_to_uid(const gchar *const name) +UID purple_name_to_uid(const gchar *const name) { - guint32 ret; + UID ret; g_return_val_if_fail(name != NULL, 0); ret = strtoul(name, NULL, 10); @@ -168,7 +168,7 @@ /* convert a QQ UID to a unique name of Purple * the return needs to be freed */ -gchar *uid_to_purple_name(guint32 uid) +gchar *uid_to_purple_name(UID uid) { return g_strdup_printf("%u", uid); } diff -r a7397a3d67ef -r 626efe139f98 libpurple/protocols/qq/utils.h --- a/libpurple/protocols/qq/utils.h Sun Jan 09 23:32:10 2011 +0000 +++ b/libpurple/protocols/qq/utils.h Sat Feb 12 23:54:14 2011 +0000 @@ -27,6 +27,7 @@ #include #include +#include "qq.h" #include "debug.h" @@ -40,8 +41,8 @@ gchar *gen_ip_str(guint8 *ip); guint8 *str_ip_gen(gchar *str); -guint32 purple_name_to_uid(const gchar *name); -gchar *uid_to_purple_name(guint32 uid); +UID purple_name_to_uid(const gchar *name); +gchar *uid_to_purple_name(UID uid); gchar *try_dump_as_gbk(const guint8 *const data, gint len); diff -r a7397a3d67ef -r 626efe139f98 libpurple/protocols/zephyr/Zinternal.c --- a/libpurple/protocols/zephyr/Zinternal.c Sun Jan 09 23:32:10 2011 +0000 +++ b/libpurple/protocols/zephyr/Zinternal.c Sat Feb 12 23:54:14 2011 +0000 @@ -30,7 +30,6 @@ #else #include #include -#include #endif int __Zephyr_fd = -1; diff -r a7397a3d67ef -r 626efe139f98 libpurple/protocols/zephyr/zephyr.c --- a/libpurple/protocols/zephyr/zephyr.c Sun Jan 09 23:32:10 2011 +0000 +++ b/libpurple/protocols/zephyr/zephyr.c Sat Feb 12 23:54:14 2011 +0000 @@ -870,12 +870,12 @@ zephyr_triple *zt1, *zt2; gchar *send_inst_utf8; zephyr_account *zephyr = gc->proto_data; - zt1 = new_triple(gc->proto_data,notice.z_class, notice.z_class_inst, notice.z_recipient); - zt2 = find_sub_by_triple(gc->proto_data,zt1); + zt1 = new_triple(zephyr,notice.z_class, notice.z_class_inst, notice.z_recipient); + zt2 = find_sub_by_triple(zephyr,zt1); if (!zt2) { /* This is a server supplied subscription */ zephyr->subscrips = g_slist_append(zephyr->subscrips, new_triple(zephyr,zt1->class,zt1->instance,zt1->recipient)); - zt2 = find_sub_by_triple(gc->proto_data,zt1); + zt2 = find_sub_by_triple(zephyr,zt1); } if (!zt2->open) { @@ -1499,6 +1499,7 @@ static void process_anyone(PurpleConnection *gc) { + zephyr_account *zephyr = purple_connection_get_protocol_data(gc); FILE *fd; gchar buff[BUFSIZ], *filename; PurpleGroup *g; @@ -1515,7 +1516,7 @@ strip_comments(buff); if (buff[0]) { if (!(b = purple_find_buddy(gc->account, buff))) { - char *stripped_user = zephyr_strip_local_realm(gc->proto_data,buff); + char *stripped_user = zephyr_strip_local_realm(zephyr,buff); purple_debug_info("zephyr","stripped_user %s\n",stripped_user); if (!(b = purple_find_buddy(gc->account,stripped_user))){ b = purple_buddy_new(gc->account, stripped_user, NULL); @@ -1924,13 +1925,12 @@ fclose(fd); } -static void write_anyone(PurpleConnection *gc) +static void write_anyone(zephyr_account *zephyr) { GSList *buddies; char *fname; FILE *fd; PurpleAccount *account; - zephyr_account* zephyr = gc->proto_data; fname = g_strdup_printf("%s/.anyone", purple_home_dir()); fd = g_fopen(fname, "w"); if (!fd) { @@ -1938,7 +1938,7 @@ return; } - account = purple_connection_get_account(gc); + account = zephyr->account; for (buddies = purple_find_buddies(account, NULL); buddies; buddies = g_slist_delete_link(buddies, buddies)) { PurpleBuddy *b = buddies->data; @@ -1966,10 +1966,10 @@ g_list_free(zephyr->pending_zloc_names); if (purple_account_get_bool(gc->account, "write_anyone", FALSE)) - write_anyone(gc); + write_anyone(zephyr); if (purple_account_get_bool(gc->account, "write_zsubs", FALSE)) - write_zsubs(gc->proto_data); + write_zsubs(zephyr); s = zephyr->subscrips; while (s) { @@ -2032,7 +2032,7 @@ char *recipient; zephyr_account *zephyr = gc->proto_data; - zt = find_sub_by_id(gc->proto_data,id); + zt = find_sub_by_id(zephyr,id); if (!zt) /* this should never happen. */ return -EINVAL; @@ -2432,8 +2432,8 @@ if (!g_ascii_strcasecmp(recip, "%me%")) recip = zephyr->username; - zt1 = new_triple(gc->proto_data,classname, instname, recip); - zt2 = find_sub_by_triple(gc->proto_data,zt1); + zt1 = new_triple(zephyr,classname, instname, recip); + zt2 = find_sub_by_triple(zephyr,zt1); if (zt2) { free_triple(zt1); if (!zt2->open) { @@ -2563,7 +2563,7 @@ zephyr_account* zephyr = gc->proto_data; char *sender = (char *)zephyr->username; - zt = find_sub_by_id(gc->proto_data,id); + zt = find_sub_by_id(zephyr,id); /* find_sub_by_id can return NULL */ if (!zt) return; diff -r a7397a3d67ef -r 626efe139f98 libpurple/tests/Makefile.am --- a/libpurple/tests/Makefile.am Sun Jan 09 23:32:10 2011 +0000 +++ b/libpurple/tests/Makefile.am Sat Feb 12 23:54:14 2011 +0000 @@ -11,6 +11,7 @@ tests.h \ test_cipher.c \ test_jabber_caps.c \ + test_jabber_digest_md5.c \ test_jabber_jutil.c \ test_jabber_scram.c \ test_qq.c \ diff -r a7397a3d67ef -r 626efe139f98 libpurple/tests/check_libpurple.c --- a/libpurple/tests/check_libpurple.c Sun Jan 09 23:32:10 2011 +0000 +++ b/libpurple/tests/check_libpurple.c Sat Feb 12 23:54:14 2011 +0000 @@ -85,6 +85,7 @@ srunner_add_suite(sr, cipher_suite()); srunner_add_suite(sr, jabber_caps_suite()); + srunner_add_suite(sr, jabber_digest_md5_suite()); srunner_add_suite(sr, jabber_jutil_suite()); srunner_add_suite(sr, jabber_scram_suite()); srunner_add_suite(sr, qq_suite()); diff -r a7397a3d67ef -r 626efe139f98 libpurple/tests/test_jabber_digest_md5.c --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/libpurple/tests/test_jabber_digest_md5.c Sat Feb 12 23:54:14 2011 +0000 @@ -0,0 +1,59 @@ +#include + +#include "tests.h" +#include "../util.h" +#include "../protocols/jabber/auth_digest_md5.h" +#include "../protocols/jabber/jutil.h" + +START_TEST(test_parsing) +{ + GHashTable *table; + + table = jabber_auth_digest_md5_parse("r=\"realm\",token= \" asdf\""); + fail_if(g_hash_table_lookup(table, "r") == NULL); + assert_string_equal("realm", g_hash_table_lookup(table, "r")); + fail_if(g_hash_table_lookup(table, "token") == NULL); + assert_string_equal("asdf", g_hash_table_lookup(table, "token")); + g_hash_table_destroy(table); + + table = jabber_auth_digest_md5_parse("r=\"a\", token= \" asdf\""); + fail_if(g_hash_table_lookup(table, "r") == NULL); + assert_string_equal("a", g_hash_table_lookup(table, "r")); + fail_if(g_hash_table_lookup(table, "token") == NULL); + assert_string_equal("asdf", g_hash_table_lookup(table, "token")); + g_hash_table_destroy(table); + + table = jabber_auth_digest_md5_parse("r=\"\", token= \" asdf\""); + fail_if(g_hash_table_lookup(table, "r") == NULL); + assert_string_equal("", g_hash_table_lookup(table, "r")); + fail_if(g_hash_table_lookup(table, "token") == NULL); + assert_string_equal("asdf", g_hash_table_lookup(table, "token")); + g_hash_table_destroy(table); + + table = jabber_auth_digest_md5_parse("realm=\"somerealm\",nonce=\"OA6MG9tEQGm2hh\",qop=\"auth\",charset=utf-8,algorithm=md5-sess"); + fail_if(g_hash_table_lookup(table, "realm") == NULL); + assert_string_equal("somerealm", g_hash_table_lookup(table, "realm")); + fail_if(g_hash_table_lookup(table, "nonce") == NULL); + assert_string_equal("OA6MG9tEQGm2hh", g_hash_table_lookup(table, "nonce")); + fail_if(g_hash_table_lookup(table, "qop") == NULL); + assert_string_equal("auth", g_hash_table_lookup(table, "qop")); + fail_if(g_hash_table_lookup(table, "charset") == NULL); + assert_string_equal("utf-8", g_hash_table_lookup(table, "charset")); + fail_if(g_hash_table_lookup(table, "algorithm") == NULL); + assert_string_equal("md5-sess", g_hash_table_lookup(table, "algorithm")); + + g_hash_table_destroy(table); + +} +END_TEST + +Suite * +jabber_digest_md5_suite(void) +{ + Suite *s = suite_create("Jabber SASL DIGEST-MD5 functions"); + + TCase *tc = tcase_create("Parsing Functionality"); + tcase_add_test(tc, test_parsing); + suite_add_tcase(s, tc); + return s; +} diff -r a7397a3d67ef -r 626efe139f98 libpurple/tests/tests.h --- a/libpurple/tests/tests.h Sun Jan 09 23:32:10 2011 +0000 +++ b/libpurple/tests/tests.h Sat Feb 12 23:54:14 2011 +0000 @@ -10,6 +10,7 @@ Suite * master_suite(void); Suite * cipher_suite(void); Suite * jabber_caps_suite(void); +Suite * jabber_digest_md5_suite(void); Suite * jabber_jutil_suite(void); Suite * jabber_scram_suite(void); Suite * qq_suite(void); diff -r a7397a3d67ef -r 626efe139f98 pidgin/gtkutils.c --- a/pidgin/gtkutils.c Sun Jan 09 23:32:10 2011 +0000 +++ b/pidgin/gtkutils.c Sat Feb 12 23:54:14 2011 +0000 @@ -1394,6 +1394,7 @@ static void dnd_image_ok_callback(_DndData *data, int choice) { + const gchar *shortname; gchar *filedata; size_t size; struct stat st; @@ -1448,7 +1449,9 @@ break; } - id = purple_imgstore_add_with_id(filedata, size, data->filename); + shortname = strrchr(data->filename, G_DIR_SEPARATOR); + shortname = shortname ? shortname + 1 : data->filename; + id = purple_imgstore_add_with_id(filedata, size, shortname); gtk_text_buffer_get_iter_at_mark(GTK_IMHTML(gtkconv->entry)->text_buffer, &iter, gtk_text_buffer_get_insert(GTK_IMHTML(gtkconv->entry)->text_buffer)); @@ -2854,7 +2857,7 @@ GtkComboBoxText *ret = NULL; GtkWidget *the_entry = NULL; - ret = GTK_COMBO_BOX_TEXT(gtk_combo_box_text_new()); + ret = GTK_COMBO_BOX_TEXT(gtk_combo_box_text_new_with_entry()); the_entry = gtk_entry_new(); gtk_container_add(GTK_CONTAINER(ret), the_entry); diff -r a7397a3d67ef -r 626efe139f98 pidgin/plugins/vvconfig.c --- a/pidgin/plugins/vvconfig.c Sun Jan 09 23:32:10 2011 +0000 +++ b/pidgin/plugins/vvconfig.c Sat Feb 12 23:54:14 2011 +0000 @@ -82,20 +82,11 @@ GstPropertyProbe *probe; const GParamSpec *pspec; - if (!strcmp(element_name, "")) { - ret = g_list_prepend(ret, NULL); - ret = g_list_prepend(ret, (gpointer)_("Default")); - ret = g_list_prepend(ret, ""); - return ret; - } - ret = g_list_prepend(ret, (gpointer)_("Default")); ret = g_list_prepend(ret, ""); - if (*element_name == '\0') { - ret = g_list_prepend(ret, NULL); - ret = g_list_reverse(ret); - return ret; + if (!strcmp(element_name, "") || (*element_name == '\0')) { + return g_list_reverse(ret); } element = gst_element_factory_make(element_name, "test"); @@ -120,9 +111,7 @@ array = gst_property_probe_probe_and_get_values (probe, pspec); if (array == NULL) { purple_debug_info("vvconfig", "'%s' has no devices\n", element_name); - ret = g_list_prepend(ret, NULL); - ret = g_list_reverse(ret); - return ret; + return g_list_reverse(ret); } for (n=0; n < array->n_values; ++n) { @@ -153,10 +142,7 @@ } gst_object_unref(element); - ret = g_list_prepend(ret, NULL); - ret = g_list_reverse(ret); - - return ret; + return g_list_reverse(ret); } static GList * @@ -173,7 +159,6 @@ ret = g_list_prepend(ret, (gpointer)plugins[0]); } } - ret = g_list_prepend(ret, NULL); ret = g_list_reverse(ret); return ret; } @@ -236,7 +221,8 @@ pref = g_strdup(name); strcpy(pref + strlen(pref) - strlen("plugin"), "device"); devices = get_element_devices(value); - if (g_list_find(devices, purple_prefs_get_string(pref)) == NULL) + if (g_list_find_custom(devices, purple_prefs_get_string(pref), + (GCompareFunc)strcmp) == NULL) purple_prefs_set_string(pref, g_list_next(devices)->data); widget = pidgin_prefs_dropdown_from_list(parent, label, PURPLE_PREF_STRING, diff -r a7397a3d67ef -r 626efe139f98 pidgin/win32/nsis/pidgin-installer.nsi --- a/pidgin/win32/nsis/pidgin-installer.nsi Sun Jan 09 23:32:10 2011 +0000 +++ b/pidgin/win32/nsis/pidgin-installer.nsi Sat Feb 12 23:54:14 2011 +0000 @@ -530,6 +530,7 @@ Push "xmpp" Call un.UnregisterURIHandler + Delete "$INSTDIR\ca-certs\AddTrust_External_Root.pem" Delete "$INSTDIR\ca-certs\America_Online_Root_Certification_Authority_1.pem" Delete "$INSTDIR\ca-certs\AOL_Member_CA.pem" Delete "$INSTDIR\ca-certs\CAcert_Class3.pem" diff -r a7397a3d67ef -r 626efe139f98 pidgin/win32/winpidgin.c --- a/pidgin/win32/winpidgin.c Sun Jan 09 23:32:10 2011 +0000 +++ b/pidgin/win32/winpidgin.c Sat Feb 12 23:54:14 2011 +0000 @@ -632,11 +632,11 @@ } else { if (strchr(__argv[i], 'd')) debug = TRUE; - else if (strchr(__argv[i], 'h')) + if (strchr(__argv[i], 'h')) help = TRUE; - else if (strchr(__argv[i], 'v')) + if (strchr(__argv[i], 'v')) version = TRUE; - else if (strchr(__argv[i], 'm')) + if (strchr(__argv[i], 'm')) multiple = TRUE; } } diff -r a7397a3d67ef -r 626efe139f98 po/ChangeLog --- a/po/ChangeLog Sun Jan 09 23:32:10 2011 +0000 +++ b/po/ChangeLog Sat Feb 12 23:54:14 2011 +0000 @@ -1,6 +1,21 @@ Pidgin and Finch: The Pimpin' Penguin IM Clients That're Good for the Soul version 2.7.10 + * Bengali translation updated (Jamil Ahmed) + * Chinese (Hong Kong) translation updated (Ambrose C. Li, Paladin R. + Liu) + * Chinese (Traditional) translation updated (Ambrose C. Li, Paladin R. + Liu) + * Czech translation updated (David Vachulka) + * Dutch translation updated (Gideon van Melle) + * Hebrew translation updated (Shalom Craimer) + * Norwegian Nynorsk translation updated (Yngve Spjeld Landro) + * Occitan translation updated (Yannig Marchegay) + * Polish translation updated (Piotr Drąg) + * Romanian translation updated (Mişu Moldovan) + * Russian translation updated (Антон Самохвалов) + * Spanish translation updated (Javier Fernández-Sanguino Peña) + * Ukrainian translation updated (Oleksandr Kovalenko) version 2.7.9 * Czech translation updated (David Vachulka) diff -r a7397a3d67ef -r 626efe139f98 po/POTFILES.in --- a/po/POTFILES.in Sun Jan 09 23:32:10 2011 +0000 +++ b/po/POTFILES.in Sat Feb 12 23:54:14 2011 +0000 @@ -124,8 +124,8 @@ libpurple/protocols/mxit/filexfer.c libpurple/protocols/mxit/http.c libpurple/protocols/mxit/login.c +libpurple/protocols/mxit/multimx.c libpurple/protocols/mxit/mxit.c -libpurple/protocols/mxit/multimx.c libpurple/protocols/mxit/profile.c libpurple/protocols/mxit/protocol.c libpurple/protocols/mxit/roster.c @@ -148,8 +148,8 @@ libpurple/protocols/oscar/oft.c libpurple/protocols/oscar/oscar.c libpurple/protocols/oscar/peer.c +libpurple/protocols/oscar/userinfo.c libpurple/protocols/oscar/util.c -libpurple/protocols/oscar/userinfo.c libpurple/protocols/oscar/visibility.c libpurple/protocols/qq/buddy_info.c libpurple/protocols/qq/buddy_list.c diff -r a7397a3d67ef -r 626efe139f98 po/ar.po --- a/po/ar.po Sun Jan 09 23:32:10 2011 +0000 +++ b/po/ar.po Sat Feb 12 23:54:14 2011 +0000 @@ -747,9 +747,9 @@ #, c-format msgid "File Transfers - %d%% of %d file" msgid_plural "File Transfers - %d%% of %d files" -msgstr[0] "نقل الملفات - %d%% من %0.sصفر ملفات" -msgstr[1] "نقل الملفات - %d%% من %0.sملف واحد" -msgstr[2] "نقل الملفات - %d%% من %0.sملفين" +msgstr[0] "نقل الملفات - %d%% من صفر ملفات" +msgstr[1] "نقل الملفات - %d%% من ملف واحد" +msgstr[2] "نقل الملفات - %d%% من ملفين" msgstr[3] "نقل الملفات - %d%% من %d ملفات" msgstr[4] "نقل الملفات - %d%% من %d ملفا" msgstr[5] "نقل الملفات - %d%% من %d ملف" @@ -921,9 +921,9 @@ #, c-format msgid "%s (%s) has %d new message." msgid_plural "%s (%s) has %d new messages." -msgstr[0] "لا رسائل%0.s جديدة لـ ‏%s (%s)." -msgstr[1] "‏%s (%s) لديه %0.sرسالة واحدة جديدة" -msgstr[2] "‏%s (%s) لديه %0.sرسالتان جديدتان." +msgstr[0] "لا رسائل جديدة لـ ‏%s ‏(%s)." +msgstr[1] "‏%s (%s) لديه رسالة واحدة جديدة" +msgstr[2] "‏%s (%s) لديه رسالتان جديدتان." msgstr[3] "‏%s (%s) لديه %d رسائل جديدة." msgstr[4] "‏%s (%s) لديه %d رسالة جديدة." msgstr[5] "‏%s (%s) لديه %d رسالة جديدة." @@ -11231,9 +11231,9 @@ #, c-format msgid "%s, %d hour" msgid_plural "%s, %d hours" -msgstr[0] "%s، %0.sلا ساعات" -msgstr[1] "‏%s، %0.sساعة واحدة" -msgstr[2] "‏%s، %0.sساعتين" +msgstr[0] "%s، لا ساعات" +msgstr[1] "‏%s، ساعة واحدة" +msgstr[2] "‏%s، ساعتين" msgstr[3] "‏%s، %d ساعات" msgstr[4] "‏%s، %d ساعة" msgstr[5] "‏%s، %d ساعة" @@ -11251,9 +11251,9 @@ #, c-format msgid "%s, %d minute" msgid_plural "%s, %d minutes" -msgstr[0] "‏%s، %0.sلا دقائق" -msgstr[1] "‏%s، %0.sدقيقة واحدة" -msgstr[2] "‏%s، %0.sدقيقتين" +msgstr[0] "‏%s، لا دقائق" +msgstr[1] "‏%s، دقيقة واحدة" +msgstr[2] "‏%s، دقيقتين" msgstr[3] "%s، %d دقائق" msgstr[4] "%s، %d دقيقة" msgstr[5] "%s، %d دقيقة" @@ -11604,13 +11604,12 @@ msgid "The text information for a buddy's status" msgstr "غيّر معلومات المستخدم لأجل %s" -#, c-format msgid "You have %d contact named %s. Would you like to merge them?" msgid_plural "" "You currently have %d contacts named %s. Would you like to merge them?" -msgstr[0] "لا مراسلين%0.s لديك باسم %s. أتريد دمجهم؟" -msgstr[1] "لديك مراسل واحد%0.s باسم %s. أتريد دمجه؟" -msgstr[2] "لديك مراسليْن%0.s باسم %s. أتريد دمجهما؟" +msgstr[0] "%0.sلا مراسلين لديك باسم %s. أتريد دمجهم؟" +msgstr[1] "%0.sلديك مراسل واحد باسم %s. أتريد دمجه؟" +msgstr[2] "%0.sلديك مراسليْن باسم %s. أتريد دمجهما؟" msgstr[3] "لديك %d مراسلين باسم %s. أتريد دمجهم؟" msgstr[4] "لديك %d مراسلا باسم %s. أتريد دمجهم؟" msgstr[5] "لديك %d مراسل باسم %s. أتريد دمجهم؟" @@ -11948,12 +11947,11 @@ msgid "/Tools/Room List" msgstr "/الأدوات/قائمة الغرف" -#, c-format msgid "%d unread message from %s\n" msgid_plural "%d unread messages from %s\n" -msgstr[0] "لا رسائل%0.s غير مقروءة من %s\n" -msgstr[1] "رسالة واحدة%0.s غير مقروءة من %s\n" -msgstr[2] "رسالتان%0.s غير مقروءتان من %s\n" +msgstr[0] "%0.sلا رسائل غير مقروءة من %s\n" +msgstr[1] "%0.sرسالة واحدة غير مقروءة من %s\n" +msgstr[2] "%0.sرسالتان غير مقروءتان من %s\n" msgstr[3] "%d رسائل غير مقروءة من %s\n" msgstr[4] "%d رسالة غير مقروءة من %s\n" msgstr[5] "%d رسالة غير مقروءة من %s\n" @@ -12932,13 +12930,13 @@ "You are about to remove the contact containing %s and %d other buddies from " "your buddy list. Do you want to continue?" msgstr[0] "" -"أنت بصدد إزالة مراسل يحتوي %s و %0.sلا أصدقاء من قائمة أصدقائك. هل تريد " +"أنت بصدد إزالة مراسل يحتوي %s ولا أصدقاء من قائمة أصدقائك. هل تريد " "الاستمرار؟" msgstr[1] "" -"أنت بصدد إزالة مراسل يحتوي %s و %0.sصديق آخر من قائمة أصدقائك. هل تريد " +"أنت بصدد إزالة مراسل يحتوي %s وصديق آخر من قائمة أصدقائك. هل تريد " "الاستمرار؟" msgstr[2] "" -"أنت بصدد إزالة مراسل يحتوي %s و %0.sصديقين آخرين من قائمة أصدقائك. هل تريد " +"أنت بصدد إزالة مراسل يحتوي %s وصديقين آخرين من قائمة أصدقائك. هل تريد " "الاستمرار؟" msgstr[3] "" "أنت بصدد إزالة مراسل يحتوي %s و %d أصدقاء آخرين من قائمة أصدقائك. هل تريد " @@ -13504,12 +13502,12 @@ #, c-format msgid "%s has %d new message." msgid_plural "%s has %d new messages." -msgstr[0] "لا رسائل%0.s جديدة ل %s." -msgstr[1] "رسالة%0.s جديدة ل %s." -msgstr[2] "رسالتان%0.s جديدتان ل %s." -msgstr[3] "%Id رسائل جديدة ل %s." -msgstr[4] "%Id رسالة جديدة ل %s." -msgstr[5] "%Id رسالة جديدة ل %s." +msgstr[0] "لا رسائل جديدة ل‍ %s." +msgstr[1] "رسالة جديدة ل‍ %s." +msgstr[2] "رسالتان جديدتان ل‍ %s." +msgstr[3] "%2$d رسائل جديدة ل‍ %1$s." +msgstr[4] "%2$d رسالة جديدة ل‍ %1$s." +msgstr[5] "%2$d رسالة جديدة ل‍ %1$s." #, c-format msgid "%d new email." diff -r a7397a3d67ef -r 626efe139f98 po/az.po --- a/po/az.po Sun Jan 09 23:32:10 2011 +0000 +++ b/po/az.po Sat Feb 12 23:54:14 2011 +0000 @@ -15,7 +15,7 @@ "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: Plural-Forms: nplurals=2; plural=(n != 1);\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: KBabel 1.3\n" #. Translators may want to transliterate the name. diff -r a7397a3d67ef -r 626efe139f98 po/bn.po --- a/po/bn.po Sun Jan 09 23:32:10 2011 +0000 +++ b/po/bn.po Sat Feb 12 23:54:14 2011 +0000 @@ -13,7 +13,7 @@ msgstr "" "Project-Id-Version: bn\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-12-19 20:34-0500\n" +"POT-Creation-Date: 2011-02-02 23:34-0500\n" "PO-Revision-Date: 2010-12-19 13:37+0600\n" "Last-Translator: israt \n" "Language-Team: Bengali \n" @@ -2466,8 +2466,12 @@ "ফাইল সংরক্ষণের ‍‍পাথ\n" "(অনুগ্রহ করে সম্পূর্ণ পাথ প্রদান করুন)" -msgid "Automatically reject from users not in buddy list" -msgstr "বন্ধু তালিকার বহির্ভূত ব্যবহারকারী থেকে স্বয়ংক্রিয় ভাবে বাতিল করা হবে" +msgid "" +"When a file-transfer request arrives from a user who is\n" +"*not* on your buddy list:" +msgstr "" +"যখন একজন ব্যবহারকারী থেকে ফাইল স্থানান্তরের অনুরোধ আসে\n" +" যা আপনার বন্ধু তালিকায় *নেই*:" # tithi msgid "" @@ -2480,6 +2484,10 @@ msgid "Create a new directory for each user" msgstr "প্রত্যেক ব্যবহারকারীর জন্য একটি নতুন ডিরেক্টরি তৈরি করা হবে" +# Translated by sadia +msgid "Escape the filenames" +msgstr "ফাইলনাম এড়িয়ে যাওয়া" + msgid "Notes" msgstr "নোট" @@ -3993,7 +4001,10 @@ msgid "Server requires plaintext authentication over an unencrypted stream" msgstr "একটি এনক্রিপশনবিহীন স্ট্রীমে সার্ভারের সরল-টেক্সট প্রমাণীকরণ প্রয়োজন" -#. This should never happen! +#. This happens when the server sends back jibberish +#. * in the "additional data with success" case. +#. * Seen with Wildfire 3.0.1. +#. msgid "Invalid response from server" msgstr "সার্ভার থেকে অকার্যকর উত্তর" @@ -6605,6 +6616,22 @@ msgid "Retrieving User Information..." msgstr "ব্যবহারকারীর তথ্য খুঁজে আনা হচ্ছে..." +# Kick = তিরস্কার +# OR পদাঘাত +#. you were kicked +msgid "You have been kicked from this MultiMX." +msgstr "MultiMX হতে আপনাকে তিরস্কার করা হয়েছে।" + +msgid "was kicked" +msgstr "তিরস্কার করা হয়েছে" + +msgid "_Room Name:" +msgstr "আসরের নাম (_R):" + +#. Display system message in chat window +msgid "You have invited" +msgstr "আপনাকে আমন্ত্রণ জানানো হয়েছে" + # Translated by sadia msgid "Loading menu..." msgstr "মেনু লোড করা হচ্ছে..." @@ -6640,22 +6667,6 @@ msgid "Enable splash-screen popup" msgstr "স্প্ল্যাশ স্ক্রীন পপ আপ সক্রিয় করা হবে" -# Kick = তিরস্কার -# OR পদাঘাত -#. you were kicked -msgid "You have been kicked from this MultiMX." -msgstr "MultiMX হতে আপনাকে তিরস্কার করা হয়েছে।" - -msgid "was kicked" -msgstr "তিরস্কার করা হয়েছে" - -msgid "_Room Name:" -msgstr "আসরের নাম (_R):" - -#. Display system message in chat window -msgid "You have invited" -msgstr "আপনাকে আমন্ত্রণ জানানো হয়েছে" - msgid "Last Online" msgstr "শেষ যখন অনলাইনে" @@ -8546,91 +8557,6 @@ "এটির জন্য দুটি কম্পিউটারের মধ্যে সরাসরি সংযোগ প্রয়োজন যা কিনা IM এর ছবির জন্য " "আবশ্যক। যেহেতু আপনার IP ঠিকানা প্রকাশিত হবে, তাই এতে গোপনীয়তায় ঝুঁকি থাকতে পারে।" -msgid "Invalid SNAC" -msgstr "অকার্যকর SNAC" - -msgid "Server rate limit exceeded" -msgstr "সার্ভার হারের সীমা পেরিয়ে গেছে" - -msgid "Client rate limit exceeded" -msgstr "ক্লায়েন্ট হারের সীমা পেরিয়ে গেছে" - -msgid "Service unavailable" -msgstr "সার্ভিস বিদ্যমান নয়" - -# tithi -msgid "Service not defined" -msgstr "সেবা নির্ধারিত নয়" - -# tithi -msgid "Obsolete SNAC" -msgstr "অপ্রচলিত SNAC" - -# tithi -msgid "Not supported by host" -msgstr "হোস্ট দ্বারা সমর্থিত নয়" - -# tithi -msgid "Not supported by client" -msgstr "ক্লায়েন্ট দ্বারা সমর্থিত নয়" - -# tithi -msgid "Refused by client" -msgstr "ক্লায়েন্ট দ্বারা প্রত্যাখ্যাত" - -# tithi -msgid "Reply too big" -msgstr "অতিরিক্ত বড় উত্তর" - -# tithi -msgid "Responses lost" -msgstr "প্রতিক্রিয়া হারিয়ে গেছে" - -msgid "Request denied" -msgstr "অনুরোধ প্রত্যাখ্যাত" - -# tithi -msgid "Busted SNAC payload" -msgstr "ব্যর্থ SNAC পেলোড" - -# tithi -msgid "Insufficient rights" -msgstr "অপর্যাপ্ত অধিকার" - -# tithi -msgid "In local permit/deny" -msgstr "স্থানীয় অনুমতি/অস্বীকারে" - -# tithi -msgid "Warning level too high (sender)" -msgstr "সতর্কতা স্তর খুব উচ্চ (প্রেরক)" - -# tithi -msgid "Warning level too high (receiver)" -msgstr "সতর্কতা স্তর খুব উচ্চ (গ্রাহক)" - -# tithi -msgid "User temporarily unavailable" -msgstr "ব্যবহারকারীকে সাময়িকভাবে পাওয়া যায়না" - -# tithi -msgid "No match" -msgstr "কোনো মিল নেই" - -# tithi -msgid "List overflow" -msgstr "লিস্ট ওভার‌ফ্লো" - -msgid "Request ambiguous" -msgstr "অনুরোধ অস্পষ্ট" - -# tithi -msgid "Queue full" -msgstr "কিউ পরিপূর্ণ" - -msgid "Not while on AOL" -msgstr "AOL এ থাকা অবস্থায় নয়" - #. Label msgid "Buddy Icon" msgstr "বন্ধু আইকন" @@ -8767,6 +8693,91 @@ msgid "Capabilities" msgstr "ক্ষমতা" +msgid "Invalid SNAC" +msgstr "অকার্যকর SNAC" + +msgid "Server rate limit exceeded" +msgstr "সার্ভার হারের সীমা পেরিয়ে গেছে" + +msgid "Client rate limit exceeded" +msgstr "ক্লায়েন্ট হারের সীমা পেরিয়ে গেছে" + +msgid "Service unavailable" +msgstr "সার্ভিস বিদ্যমান নয়" + +# tithi +msgid "Service not defined" +msgstr "সেবা নির্ধারিত নয়" + +# tithi +msgid "Obsolete SNAC" +msgstr "অপ্রচলিত SNAC" + +# tithi +msgid "Not supported by host" +msgstr "হোস্ট দ্বারা সমর্থিত নয়" + +# tithi +msgid "Not supported by client" +msgstr "ক্লায়েন্ট দ্বারা সমর্থিত নয়" + +# tithi +msgid "Refused by client" +msgstr "ক্লায়েন্ট দ্বারা প্রত্যাখ্যাত" + +# tithi +msgid "Reply too big" +msgstr "অতিরিক্ত বড় উত্তর" + +# tithi +msgid "Responses lost" +msgstr "প্রতিক্রিয়া হারিয়ে গেছে" + +msgid "Request denied" +msgstr "অনুরোধ প্রত্যাখ্যাত" + +# tithi +msgid "Busted SNAC payload" +msgstr "ব্যর্থ SNAC পেলোড" + +# tithi +msgid "Insufficient rights" +msgstr "অপর্যাপ্ত অধিকার" + +# tithi +msgid "In local permit/deny" +msgstr "স্থানীয় অনুমতি/অস্বীকারে" + +# tithi +msgid "Warning level too high (sender)" +msgstr "সতর্কতা স্তর খুব উচ্চ (প্রেরক)" + +# tithi +msgid "Warning level too high (receiver)" +msgstr "সতর্কতা স্তর খুব উচ্চ (গ্রাহক)" + +# tithi +msgid "User temporarily unavailable" +msgstr "ব্যবহারকারীকে সাময়িকভাবে পাওয়া যায়না" + +# tithi +msgid "No match" +msgstr "কোনো মিল নেই" + +# tithi +msgid "List overflow" +msgstr "লিস্ট ওভার‌ফ্লো" + +msgid "Request ambiguous" +msgstr "অনুরোধ অস্পষ্ট" + +# tithi +msgid "Queue full" +msgstr "কিউ পরিপূর্ণ" + +msgid "Not while on AOL" +msgstr "AOL এ থাকা অবস্থায় নয়" + # tithi #. Translators: This string is a menu option that, if selected, will cause #. you to appear online to the chosen user even when your status is set to @@ -9420,16 +9431,16 @@ msgstr "সার্ভার নির্বাচন" # tithi -msgid "QQ2005" -msgstr "QQ2005" +msgid "QQ2008" +msgstr "QQ2008" # tithi msgid "QQ2007" msgstr "QQ2007" # tithi -msgid "QQ2008" -msgstr "QQ2008" +msgid "QQ2005" +msgstr "QQ2005" msgid "Connect by TCP" msgstr "TCP দ্বারা সংযোগ করা হবে" @@ -13272,10 +13283,6 @@ msgid "Fatal Error" msgstr "মারাত্মক ত্রুটি" -# tithi -msgid "bug master" -msgstr "বাগ মাস্টার" - msgid "artist" msgstr "শিল্পী" @@ -13472,6 +13479,9 @@ msgid "Maithili" msgstr "মৈথিলি" +msgid "Meadow Mari" +msgstr "মিইডো মারি" + msgid "Macedonian" msgstr "ম্যাসেডনিয়" @@ -16808,6 +16818,13 @@ msgid "You do not have permission to uninstall this application." msgstr "আপনার এই অ্যাপ্লিকেশনটি আনইন্সটল করার অনুমতি নেই।" +#~ msgid "Automatically reject from users not in buddy list" +#~ msgstr "বন্ধু তালিকার বহির্ভূত ব্যবহারকারী থেকে স্বয়ংক্রিয় ভাবে বাতিল করা হবে" + +# tithi +#~ msgid "bug master" +#~ msgstr "বাগ মাস্টার" + #~ msgid "An error occurred on the in-band bytestream transfer\n" #~ msgstr "ইন-ব্যান্ড বাইটস্ট্রিম বিনিময়ে ত্রুটি হয়েছে\n" diff -r a7397a3d67ef -r 626efe139f98 po/ca.po --- a/po/ca.po Sun Jan 09 23:32:10 2011 +0000 +++ b/po/ca.po Sat Feb 12 23:54:14 2011 +0000 @@ -3,7 +3,7 @@ # Copyright (C) unknown, Robert Millan # Copyright (C) December 2003 (from 2003-12-12 until 2003-12-18), # January (2004-01-07,12), Xan -# Copyright (c) 2004, 2005, 2006, 2007, 2008, 2009, 2010 +# Copyright (c) 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 # Josep Puigdemont i Casamajó # # This file is distributed under the same license as the Pidgin package. @@ -33,8 +33,8 @@ msgstr "" "Project-Id-Version: Pidgin\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-12-23 07:57+0100\n" -"PO-Revision-Date: 2010-12-23 08:04+0100\n" +"POT-Creation-Date: 2011-01-30 11:04+0100\n" +"PO-Revision-Date: 2011-01-30 11:11+0100\n" "Last-Translator: Josep Puigdemont i Casamajó \n" "Language-Team: Catalan \n" "Language: ca\n" @@ -2387,9 +2387,12 @@ "Camí on desar els fitxers\n" "(introduïu tot el camí)" -msgid "Automatically reject from users not in buddy list" -msgstr "" -"Rebutja automàticament dels usuaris que no estiguin a la llista d'amics" +msgid "" +"When a file-transfer request arrives from a user who is\n" +"*not* on your buddy list:" +msgstr "" +"Quan arribi una sol·licitud de transferència d'un fitxer d'un\n" +"usuari que *no* és a la vostra llista d'amics:" msgid "" "Notify with a popup when an autoaccepted file transfer is complete\n" @@ -2402,6 +2405,10 @@ msgid "Create a new directory for each user" msgstr "Crea un directori nou per a cada usuari" +#, fuzzy +msgid "Escape the filenames" +msgstr "%s ha cancel·lat la transferència del fitxer" + msgid "Notes" msgstr "Notes" @@ -3859,7 +3866,10 @@ msgid "Server requires plaintext authentication over an unencrypted stream" msgstr "El servidor requereix autenticació de text sobre un flux no xifrat" -#. This should never happen! +#. This happens when the server sends back jibberish +#. * in the "additional data with success" case. +#. * Seen with Wildfire 3.0.1. +#. msgid "Invalid response from server" msgstr "La resposta del servidor no és vàlida" @@ -6201,6 +6211,20 @@ msgid "Retrieving User Information..." msgstr "S'està obtenint informació de l'usuari..." +#. you were kicked +msgid "You have been kicked from this MultiMX." +msgstr "Us han fet fora d'aquest MultiMX." + +msgid "was kicked" +msgstr "ha estat fet fora" + +msgid "_Room Name:" +msgstr "Nom de la _Sala:" + +#. Display system message in chat window +msgid "You have invited" +msgstr "Heu convidat" + msgid "Loading menu..." msgstr "S'està carregant el menú..." @@ -6229,20 +6253,6 @@ msgid "Enable splash-screen popup" msgstr "Habilita la pantalla de presentació emergent" -#. you were kicked -msgid "You have been kicked from this MultiMX." -msgstr "Us han fet fora d'aquest MultiMX." - -msgid "was kicked" -msgstr "ha estat fet fora" - -msgid "_Room Name:" -msgstr "Nom de la _Sala:" - -#. Display system message in chat window -msgid "You have invited" -msgstr "Heu convidat" - msgid "Last Online" msgstr "Darrer cop en línia" @@ -7917,75 +7927,6 @@ "necessari per poder enviar imatges instantànies. Atès que es revelarà la " "vostra adreça IP, això es pot considerar un risc de privadesa." -msgid "Invalid SNAC" -msgstr "SNAC invàlid" - -msgid "Server rate limit exceeded" -msgstr "S'ha excedit el límit de velocitat del servidor" - -msgid "Client rate limit exceeded" -msgstr "S'ha excedit el límit de velocitat del client" - -msgid "Service unavailable" -msgstr "Servei no disponible" - -msgid "Service not defined" -msgstr "Servei no definit" - -msgid "Obsolete SNAC" -msgstr "SNAC obsolet" - -msgid "Not supported by host" -msgstr "El servidor no ho permet" - -msgid "Not supported by client" -msgstr "El client no ho permet" - -msgid "Refused by client" -msgstr "Rebutjat pel client" - -msgid "Reply too big" -msgstr "Resposta massa gran" - -msgid "Responses lost" -msgstr "S'han perdut respostes" - -msgid "Request denied" -msgstr "Petició denegada" - -msgid "Busted SNAC payload" -msgstr "Càrrega SNAC malmesa" - -msgid "Insufficient rights" -msgstr "Drets insuficients" - -msgid "In local permit/deny" -msgstr "En la llista de permès/denegat local" - -msgid "Warning level too high (sender)" -msgstr "Nivell d'avís massa alt (remitent)" - -msgid "Warning level too high (receiver)" -msgstr "Nivell d'avís massa alt (receptor)" - -msgid "User temporarily unavailable" -msgstr "Usuari no disponible temporalment" - -msgid "No match" -msgstr "Cap coincidència" - -msgid "List overflow" -msgstr "Sobreeiximent de la llista" - -msgid "Request ambiguous" -msgstr "Petició ambigua" - -msgid "Queue full" -msgstr "Cua plena" - -msgid "Not while on AOL" -msgstr "No es pot fer mentre estigui a AOL" - #. Label msgid "Buddy Icon" msgstr "Icona de l'amic" @@ -8104,6 +8045,75 @@ msgid "Capabilities" msgstr "Capacitats" +msgid "Invalid SNAC" +msgstr "SNAC invàlid" + +msgid "Server rate limit exceeded" +msgstr "S'ha excedit el límit de velocitat del servidor" + +msgid "Client rate limit exceeded" +msgstr "S'ha excedit el límit de velocitat del client" + +msgid "Service unavailable" +msgstr "Servei no disponible" + +msgid "Service not defined" +msgstr "Servei no definit" + +msgid "Obsolete SNAC" +msgstr "SNAC obsolet" + +msgid "Not supported by host" +msgstr "El servidor no ho permet" + +msgid "Not supported by client" +msgstr "El client no ho permet" + +msgid "Refused by client" +msgstr "Rebutjat pel client" + +msgid "Reply too big" +msgstr "Resposta massa gran" + +msgid "Responses lost" +msgstr "S'han perdut respostes" + +msgid "Request denied" +msgstr "Petició denegada" + +msgid "Busted SNAC payload" +msgstr "Càrrega SNAC malmesa" + +msgid "Insufficient rights" +msgstr "Drets insuficients" + +msgid "In local permit/deny" +msgstr "En la llista de permès/denegat local" + +msgid "Warning level too high (sender)" +msgstr "Nivell d'avís massa alt (remitent)" + +msgid "Warning level too high (receiver)" +msgstr "Nivell d'avís massa alt (receptor)" + +msgid "User temporarily unavailable" +msgstr "Usuari no disponible temporalment" + +msgid "No match" +msgstr "Cap coincidència" + +msgid "List overflow" +msgstr "Sobreeiximent de la llista" + +msgid "Request ambiguous" +msgstr "Petició ambigua" + +msgid "Queue full" +msgstr "Cua plena" + +msgid "Not while on AOL" +msgstr "No es pot fer mentre estigui a AOL" + #. Translators: This string is a menu option that, if selected, will cause #. you to appear online to the chosen user even when your status is set to #. Invisible. @@ -8703,14 +8713,14 @@ msgid "Select Server" msgstr "Seleccioneu un servidor" -msgid "QQ2005" -msgstr "QQ2005" +msgid "QQ2008" +msgstr "QQ2008" msgid "QQ2007" msgstr "QQ2007" -msgid "QQ2008" -msgstr "QQ2008" +msgid "QQ2005" +msgstr "QQ2005" msgid "Connect by TCP" msgstr "Connecta amb TCP" @@ -12284,10 +12294,6 @@ msgid "Fatal Error" msgstr "Error fatal" -# Fixme -msgid "bug master" -msgstr "bug master" - msgid "artist" msgstr "artista" @@ -12469,6 +12475,9 @@ msgid "Maithili" msgstr "Maithili" +msgid "Meadow Mari" +msgstr "Txeremís oriental" + msgid "Macedonian" msgstr "Macedoni" @@ -15626,6 +15635,14 @@ msgid "You do not have permission to uninstall this application." msgstr "No tens permís per desinstal.lar aquesta aplicació." +#~ msgid "Automatically reject from users not in buddy list" +#~ msgstr "" +#~ "Rebutja automàticament dels usuaris que no estiguin a la llista d'amics" + +# Fixme +#~ msgid "bug master" +#~ msgstr "bug master" + #~ msgid "Error requesting %s" #~ msgstr "S'ha produït un error en sol·licitar %s" diff -r a7397a3d67ef -r 626efe139f98 po/cs.po --- a/po/cs.po Sun Jan 09 23:32:10 2011 +0000 +++ b/po/cs.po Sat Feb 12 23:54:14 2011 +0000 @@ -9,8 +9,8 @@ msgstr "" "Project-Id-Version: pidgin VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-12-26 22:11-0500\n" -"PO-Revision-Date: 2010-12-21 09:08+0100\n" +"POT-Creation-Date: 2011-02-02 23:34-0500\n" +"PO-Revision-Date: 2011-02-01 21:09+0100\n" "Last-Translator: David Vachulka \n" "Language-Team: Czech \n" "Language: cs\n" @@ -2328,8 +2328,12 @@ "Cesta, kam ukládat soubory\n" "(Zadejte prosím plnou cestu)" -msgid "Automatically reject from users not in buddy list" -msgstr "Automaticky odmítat od uživatelů, kteří nejsou na seznamu kamarádů" +msgid "" +"When a file-transfer request arrives from a user who is\n" +"*not* on your buddy list:" +msgstr "" +"Když přijde požadavek na přenos souboru od někoho,\n" +"kdo není v seznamu kamarádů:" msgid "" "Notify with a popup when an autoaccepted file transfer is complete\n" @@ -2342,6 +2346,9 @@ msgid "Create a new directory for each user" msgstr "Vytvořit nový adresář pro každého uživatele" +msgid "Escape the filenames" +msgstr "Upravit jména souborů" + msgid "Notes" msgstr "Poznámky" @@ -3793,7 +3800,10 @@ msgid "Server requires plaintext authentication over an unencrypted stream" msgstr "Server vyžaduje textovou autentizaci v nešifrovaném proudu" -#. This should never happen! +#. This happens when the server sends back jibberish +#. * in the "additional data with success" case. +#. * Seen with Wildfire 3.0.1. +#. msgid "Invalid response from server" msgstr "Neplatná odpověď od serveru" @@ -6074,6 +6084,20 @@ msgid "Retrieving User Information..." msgstr "Získávám informace o uživateli..." +#. you were kicked +msgid "You have been kicked from this MultiMX." +msgstr "Byl jste vykopnut z MultiMX." + +msgid "was kicked" +msgstr "byl vykopnut" + +msgid "_Room Name:" +msgstr "_Místnost:" + +#. Display system message in chat window +msgid "You have invited" +msgstr "Přišlo vám pozvání" + msgid "Loading menu..." msgstr "Načítám menu..." @@ -6101,20 +6125,6 @@ msgid "Enable splash-screen popup" msgstr "Povolit zobrazení spouštěcí obrazovky" -#. you were kicked -msgid "You have been kicked from this MultiMX." -msgstr "Byl jste vykopnut z MultiMX." - -msgid "was kicked" -msgstr "byl vykopnut" - -msgid "_Room Name:" -msgstr "_Místnost:" - -#. Display system message in chat window -msgid "You have invited" -msgstr "Přišlo vám pozvání" - msgid "Last Online" msgstr "Naposledy připojen" @@ -7776,75 +7786,6 @@ "Images. Protože bude odkryta vaše IP adresa, dá se to považovat za riziko " "pro soukromí." -msgid "Invalid SNAC" -msgstr "Neplatné SNAC" - -msgid "Server rate limit exceeded" -msgstr "Překročen limit poměru serveru" - -msgid "Client rate limit exceeded" -msgstr "Překročen limit poměru klienta" - -msgid "Service unavailable" -msgstr "Služba nedostupná" - -msgid "Service not defined" -msgstr "Služba nedefinována" - -msgid "Obsolete SNAC" -msgstr "Zastaralé SNAC" - -msgid "Not supported by host" -msgstr "Nepodporováno hostitelem" - -msgid "Not supported by client" -msgstr "Nepodporováno klientem" - -msgid "Refused by client" -msgstr "Odmítnuto klientem" - -msgid "Reply too big" -msgstr "Odpověď příliš velká" - -msgid "Responses lost" -msgstr "Odpovědi ztraceny" - -msgid "Request denied" -msgstr "Požadavek zamítnut" - -msgid "Busted SNAC payload" -msgstr "Poškozená data SNAC" - -msgid "Insufficient rights" -msgstr "Nedostatečná oprávnění" - -msgid "In local permit/deny" -msgstr "V místním povolit/zakázat" - -msgid "Warning level too high (sender)" -msgstr "Hladina varování příliš vysoká (odeslání)" - -msgid "Warning level too high (receiver)" -msgstr "Hladina varování příliš vysoká (příjem)" - -msgid "User temporarily unavailable" -msgstr "Uživatel dočasně nedostupný" - -msgid "No match" -msgstr "Žádná shoda" - -msgid "List overflow" -msgstr "Přetečení seznamu" - -msgid "Request ambiguous" -msgstr "Požadavek nejednoznačný" - -msgid "Queue full" -msgstr "Fronta plná" - -msgid "Not while on AOL" -msgstr "Ne když na AOL" - #. Label msgid "Buddy Icon" msgstr "Ikona kamaráda" @@ -7963,6 +7904,75 @@ msgid "Capabilities" msgstr "Schopnosti" +msgid "Invalid SNAC" +msgstr "Neplatné SNAC" + +msgid "Server rate limit exceeded" +msgstr "Překročen limit poměru serveru" + +msgid "Client rate limit exceeded" +msgstr "Překročen limit poměru klienta" + +msgid "Service unavailable" +msgstr "Služba nedostupná" + +msgid "Service not defined" +msgstr "Služba nedefinována" + +msgid "Obsolete SNAC" +msgstr "Zastaralé SNAC" + +msgid "Not supported by host" +msgstr "Nepodporováno hostitelem" + +msgid "Not supported by client" +msgstr "Nepodporováno klientem" + +msgid "Refused by client" +msgstr "Odmítnuto klientem" + +msgid "Reply too big" +msgstr "Odpověď příliš velká" + +msgid "Responses lost" +msgstr "Odpovědi ztraceny" + +msgid "Request denied" +msgstr "Požadavek zamítnut" + +msgid "Busted SNAC payload" +msgstr "Poškozená data SNAC" + +msgid "Insufficient rights" +msgstr "Nedostatečná oprávnění" + +msgid "In local permit/deny" +msgstr "V místním povolit/zakázat" + +msgid "Warning level too high (sender)" +msgstr "Hladina varování příliš vysoká (odeslání)" + +msgid "Warning level too high (receiver)" +msgstr "Hladina varování příliš vysoká (příjem)" + +msgid "User temporarily unavailable" +msgstr "Uživatel dočasně nedostupný" + +msgid "No match" +msgstr "Žádná shoda" + +msgid "List overflow" +msgstr "Přetečení seznamu" + +msgid "Request ambiguous" +msgstr "Požadavek nejednoznačný" + +msgid "Queue full" +msgstr "Fronta plná" + +msgid "Not while on AOL" +msgstr "Ne když na AOL" + #. Translators: This string is a menu option that, if selected, will cause #. you to appear online to the chosen user even when your status is set to #. Invisible. @@ -8552,14 +8562,14 @@ msgid "Select Server" msgstr "Vyberte server" -msgid "QQ2005" -msgstr "QQ2005" +msgid "QQ2008" +msgstr "QQ2008" msgid "QQ2007" msgstr "QQ2007" -msgid "QQ2008" -msgstr "QQ2008" +msgid "QQ2005" +msgstr "QQ2005" msgid "Connect by TCP" msgstr "Připojit se pomocí TCP" @@ -12088,9 +12098,6 @@ msgid "Fatal Error" msgstr "Fatální chyba" -msgid "bug master" -msgstr "lovec chyb" - msgid "artist" msgstr "umělec" @@ -12270,6 +12277,9 @@ msgid "Maithili" msgstr "Maithili" +msgid "Meadow Mari" +msgstr "Meadow Mari" + msgid "Macedonian" msgstr "Makedonština" @@ -15350,6 +15360,12 @@ msgid "You do not have permission to uninstall this application." msgstr "Nemáte oprávnění k odinstalaci této aplikace." +#~ msgid "Automatically reject from users not in buddy list" +#~ msgstr "Automaticky odmítat od uživatelů, kteří nejsou na seznamu kamarádů" + +#~ msgid "bug master" +#~ msgstr "lovec chyb" + #~ msgid "Error requesting %s" #~ msgstr "Chyba žádosti %s" diff -r a7397a3d67ef -r 626efe139f98 po/de.po --- a/po/de.po Sun Jan 09 23:32:10 2011 +0000 +++ b/po/de.po Sat Feb 12 23:54:14 2011 +0000 @@ -2,7 +2,7 @@ # Pidgin German translation # Copyright (C) 2001, Daniel Seifert # Copyright (C) 2002, Karsten Weiss -# Copyright (C) 2002-2010, Björn Voigt , +# Copyright (C) 2002-2011, Björn Voigt , # Jochen Kemnade # # This file is distributed under the same license as the Pidgin package. @@ -11,9 +11,9 @@ msgstr "" "Project-Id-Version: de\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-12-22 10:12+0100\n" -"PO-Revision-Date: 2010-12-22 10:21+0100\n" -"Last-Translator: Björn Voigt \n" +"POT-Creation-Date: 2011-02-06 14:22+0100\n" +"PO-Revision-Date: 2011-02-06 14:22+0100\n" +"Last-Translator: Jochen Kemnade \n" "Language-Team: German \n" "Language: de\n" "MIME-Version: 1.0\n" @@ -401,7 +401,7 @@ msgstr "Chat betreten" msgid "Please enter the name of the chat you want to join." -msgstr "Bitte geben Sie die den Namen des Chats an, den Sie betreten möchten." +msgstr "Bitte geben Sie den Namen des Chats an, den Sie betreten möchten." msgid "Join" msgstr "Betreten" @@ -568,7 +568,7 @@ msgstr "Konten reaktivieren" msgid "No such command." -msgstr "Es gibt kein solches Kommando." +msgstr "Unbekanntes Kommando." msgid "Syntax Error: You typed the wrong number of arguments to that command." msgstr "" @@ -581,7 +581,8 @@ msgstr "Dieses Kommando funktioniert nur in Chats, nicht bei IMs." msgid "That command only works in IMs, not chats." -msgstr "Dieses Kommando funktioniert nur bei IMs, nicht bei Chats." +msgstr "" +"Dieses Kommando funktioniert nur bei Sofortnachrichten, nicht bei Chats." msgid "That command doesn't work on this protocol." msgstr "Dieses Kommando funktioniert nicht in diesem Protokoll." @@ -646,7 +647,7 @@ msgstr "Einladen..." msgid "Enable Logging" -msgstr "Mitschnitt einschalten" +msgstr "Mitschnitt aktivieren" msgid "Enable Sounds" msgstr "Klänge aktivieren" @@ -801,7 +802,7 @@ msgstr "Status" msgid "Close this window when all transfers finish" -msgstr "Schließe dieses Fenster, wenn alle Übertragungen abgeschlossen sind" +msgstr "Fenster schließen, wenn alle Übertragungen abgeschlossen sind" msgid "Clear finished transfers" msgstr "Entferne komplette Übertragungen" @@ -816,7 +817,7 @@ msgstr "Abgebrochen" msgid "Failed" -msgstr "Gescheitert" +msgstr "Fehlgeschlagen" #, c-format msgid "%.2f KiB/s" @@ -884,11 +885,11 @@ #, c-format msgid "Conversations in %s" -msgstr "Unterhaltung in %s" +msgstr "Unterhaltungen in %s" #, c-format msgid "Conversations with %s" -msgstr "Unterhaltung mit %s" +msgstr "Unterhaltungen mit %s" msgid "All Conversations" msgstr "Alle Unterhaltungen" @@ -910,7 +911,7 @@ msgstr "Ablehnen" msgid "Call in progress." -msgstr "Anruf läuft." +msgstr "Verbindungsaufbau." msgid "The call has been terminated." msgstr "Der Anruf wurde beendet." @@ -926,7 +927,7 @@ "starten." msgid "You have rejected the call." -msgstr "Sie haben den Anruf abgelehnt." +msgstr "Sie haben den Anruf abgewiesen." msgid "call: Make an audio call." msgstr "call: Einen Audio-Anruf tätigen." @@ -1009,7 +1010,7 @@ msgstr "Keine Einstellungsoptionen für dieses Plugin." msgid "Error loading plugin" -msgstr "Beim Laden des Plugins traten Fehler auf" +msgstr "Beim Laden des Plugins ist ein Fehler aufgetreten" msgid "The selected file is not a valid plugin." msgstr "Die gewählte Datei ist kein gültiges Plugin." @@ -1021,7 +1022,7 @@ "genaue Fehlermeldung zu sehen." msgid "Select plugin to install" -msgstr "Wählen Sie ein Plugin zum Installieren" +msgstr "Zu installierendes Plugin auswählen" msgid "You can (un)load plugins from the following list." msgstr "Die können Plugins von der folgenden Liste laden bzw. entladen." @@ -1064,10 +1065,10 @@ msgstr "Alarm, wenn Buddy..." msgid "Signs on" -msgstr "sich angemeldet" +msgstr "sich anmeldet" msgid "Signs off" -msgstr "sich abgemeldet" +msgstr "sich abmeldet" msgid "Goes away" msgstr "hinausgeht" @@ -1085,7 +1086,7 @@ msgstr "zu tippen beginnt" msgid "Pauses while typing" -msgstr "beim Tippen anhält" +msgstr "das Tippen unterbricht" msgid "Stops typing" msgstr "aufhört zu tippen" @@ -1119,13 +1120,13 @@ msgstr "Wiederkehrend" msgid "Cannot create pounce" -msgstr "Kann Alarm nicht erzeugen" +msgstr "Alarm konnte nicht erstellt werden" msgid "You do not have any accounts." msgstr "Sie haben keine Kontos." msgid "You must create an account first before you can create a pounce." -msgstr "Sie müssen ein Konto anlegen, bevor Sie einen Alarm erzeugen können." +msgstr "Sie müssen ein Konto anlegen, bevor Sie einen Alarm einrichten können." #, c-format msgid "Are you sure you want to delete the pounce on %s for %s?" @@ -1164,7 +1165,7 @@ #, c-format msgid "%s has become idle (%s)" -msgstr "%s wurde untätig (%s)" +msgstr "%s ist nun untätig (%s)" #, c-format msgid "%s has gone away. (%s)" @@ -1178,7 +1179,7 @@ msgstr "Unbekanntes Alarm-Ereignis. Bitte berichten Sie dieses Problem!" msgid "Based on keyboard use" -msgstr "Abhängig von Tastaturbenutzung" +msgstr "Abhängig von der Tastaturbenutzung" msgid "From last sent message" msgstr "Von letzter gesendeter Nachricht" @@ -1199,7 +1200,7 @@ msgstr "Mitschnitt-Format" msgid "Log IMs" -msgstr "IMs mitschneiden" +msgstr "Sofortnachrichten mitschneiden" msgid "Log chats" msgstr "Chats mitschneiden" @@ -1247,7 +1248,7 @@ msgstr "Drücken Sie 'Enter', um mehr Räume dieser Kategorie zu finden." msgid "Get" -msgstr "Holen" +msgstr "Abrufen" #. Create the window. msgid "Room List" @@ -1441,7 +1442,7 @@ msgstr "Statusmeldungen" msgid "Error loading the plugin." -msgstr "Beim Laden des Plugins traten Fehler auf." +msgstr "Beim Laden des Plugins ist ein Fehler aufgetreten." msgid "Couldn't find X display" msgstr "Konnte X-Display nicht finden" @@ -1519,7 +1520,7 @@ msgstr "Unterhaltung mit %s am %s:
" msgid "History Plugin Requires Logging" -msgstr "Das Verlaufs-Plugin erfordert das Mitschneiden" +msgstr "Für das Verlaufs-Plugin muss das Mitschneiden aktiviert sein" msgid "" "Logging can be enabled from Tools -> Preferences -> Logging.\n" @@ -1543,7 +1544,7 @@ "When a new conversation is opened this plugin will insert the last " "conversation into the current conversation." msgstr "" -"Wenn eine neue Unterhaltung eröffnet wird, fügt dieses Plugin die letzte " +"Wenn eine neue Unterhaltung begonnen wird, fügt dieses Plugin die letzte " "Unterhaltung in die aktuelle Unterhaltung ein." #, c-format @@ -1607,7 +1608,7 @@ msgstr "Verschachtelte Gruppen (experimentell)" msgid "Provides alternate buddylist grouping options." -msgstr "Bietet alternative Einstellungen für die Kontaktlisten-Gruppierung." +msgstr "Bietet alternative Einstellungen für die Gruppierung der Kontaktliste." msgid "Lastlog" msgstr "Verlauf" @@ -1900,11 +1901,11 @@ #, c-format msgid "Failed to get name: %s" -msgstr "Kann den Namen nicht bekommen: %s" +msgstr "Name konnte nicht abgerufen werden: %s" #, c-format msgid "Failed to get serv name: %s" -msgstr "Kann den Serv-Namen nicht bekommen: %s" +msgstr "Serv-Name konnte nicht abgerufen werden: %s" msgid "Purple's D-BUS server is not running for the reason listed below" msgstr "Purple's D-Bus-Server läuft aus dem folgenden Grund nicht" @@ -2041,7 +2042,7 @@ msgstr "Übertragung der Datei %s ist komplett" msgid "File transfer complete" -msgstr "Dateiübertragung ist komplett" +msgstr "Dateiübertragung abgeschlossen" #, c-format msgid "You cancelled the transfer of %s" @@ -2368,8 +2369,12 @@ "Pfad in denen die Dateien gespeichert werden sollen\n" "(Bitte geben Sie den vollständigen Pfad an)" -msgid "Automatically reject from users not in buddy list" -msgstr "Automatisch von Benutzern ablehnen, die nicht in der Buddy-Liste sind" +msgid "" +"When a file-transfer request arrives from a user who is\n" +"*not* on your buddy list:" +msgstr "" +"Wenn eine Dateitransferanfrage von einem Benutzer ankommt, \n" +"der *nicht* in Ihrer Buddy-Liste ist:" msgid "" "Notify with a popup when an autoaccepted file transfer is complete\n" @@ -2382,6 +2387,9 @@ msgid "Create a new directory for each user" msgstr "Für jeden Benutzer ein neues Verzeichnis anlegen" +msgid "Escape the filenames" +msgstr "Sonderzeichen in Dateinamen ersetzen" + msgid "Notes" msgstr "Notizen" @@ -3850,7 +3858,10 @@ "Der Server erfordert eine Klartext-Authentifizierung über einen " "unverschlüsselten Kanal" -#. This should never happen! +#. This happens when the server sends back jibberish +#. * in the "additional data with success" case. +#. * Seen with Wildfire 3.0.1. +#. msgid "Invalid response from server" msgstr "Ungültige Serverantwort" @@ -8730,14 +8741,14 @@ msgid "Select Server" msgstr "Server wählen" -msgid "QQ2005" -msgstr "QQ2005" +msgid "QQ2008" +msgstr "QQ2008" msgid "QQ2007" msgstr "QQ2007" -msgid "QQ2008" -msgstr "QQ2008" +msgid "QQ2005" +msgstr "QQ2005" msgid "Connect by TCP" msgstr "Über TCP verbinden" @@ -8751,6 +8762,9 @@ msgid "Show chat room when msg comes" msgstr "Chatraum zeigen, wenn Nachricht empfangen wird" +msgid "Use default font" +msgstr "Standardschriftart benutzen" + msgid "Keep alive interval (seconds)" msgstr "Intervall zum Aufrechterhalten der Verbindung (Sekunden)" @@ -12328,9 +12342,6 @@ msgid "Fatal Error" msgstr "Schwerer Fehler" -msgid "bug master" -msgstr "Bug-Master" - msgid "artist" msgstr "Künstler" @@ -12510,6 +12521,9 @@ msgid "Maithili" msgstr "Maithili" +msgid "Meadow Mari" +msgstr "Wiesen-Mari" + msgid "Macedonian" msgstr "Makedonisch" @@ -13448,10 +13462,10 @@ msgstr "Budd_y-Name:" msgid "Si_gns on" -msgstr "si_ch angemeldet" +msgstr "si_ch anmeldet" msgid "Signs o_ff" -msgstr "sich abgemel_det" +msgstr "sich abmel_det" msgid "Goes a_way" msgstr "hinausgeh_t" @@ -15662,15 +15676,3 @@ msgid "You do not have permission to uninstall this application." msgstr "Sie haben keine Berechtigung, diese Anwendung zu deinstallieren." - -#~ msgid "Error requesting %s" -#~ msgstr "Fehler beim Anfordern von %s" - -#~ msgid "An error occurred on the in-band bytestream transfer\n" -#~ msgstr "Bei der In-Band-Bytestrom-Übertragung trat ein Fehler auf\n" - -#~ msgid "Transfer was closed." -#~ msgstr "Übertragung wurde geschlossen." - -#~ msgid "Failed to open in-band bytestream" -#~ msgstr "Öffnen des In-Band-Bytestroms fehlgeschlagen" diff -r a7397a3d67ef -r 626efe139f98 po/el.po --- a/po/el.po Sun Jan 09 23:32:10 2011 +0000 +++ b/po/el.po Sat Feb 12 23:54:14 2011 +0000 @@ -18,7 +18,7 @@ "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1)\n" "X-Generator: Lokalize 0.3\n" #. Translators may want to transliterate the name. diff -r a7397a3d67ef -r 626efe139f98 po/en_AU.po --- a/po/en_AU.po Sun Jan 09 23:32:10 2011 +0000 +++ b/po/en_AU.po Sat Feb 12 23:54:14 2011 +0000 @@ -16,7 +16,7 @@ "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=n>1;\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" #. Translators may want to transliterate the name. #. It is not to be translated. diff -r a7397a3d67ef -r 626efe139f98 po/en_GB.po --- a/po/en_GB.po Sun Jan 09 23:32:10 2011 +0000 +++ b/po/en_GB.po Sat Feb 12 23:54:14 2011 +0000 @@ -15,7 +15,7 @@ "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=n>1;\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" #. Translators may want to transliterate the name. #. It is not to be translated. diff -r a7397a3d67ef -r 626efe139f98 po/es.po --- a/po/es.po Sun Jan 09 23:32:10 2011 +0000 +++ b/po/es.po Sat Feb 12 23:54:14 2011 +0000 @@ -7,7 +7,7 @@ # , 2003. # Copyright (C) February 2010, Francisco Javier F. Serrador # Copyright (C) June 2002, April 2003, January 2004, March 2004, September 2004, -# January 2005, 2006-2008, July 2009, July 2010, August 2010 +# January 2005, 2006-2008, July 2009, July 2010, August 2010, January 2011 # Javier Fernández-Sanguino Peña # # Agradecemos la ayuda de revisión realizada por: @@ -53,8 +53,8 @@ msgstr "" "Project-Id-Version: Pidgin\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-12-19 13:33-0500\n" -"PO-Revision-Date: 2010-12-15 03:32+0100\n" +"POT-Creation-Date: 2011-02-02 23:34-0500\n" +"PO-Revision-Date: 2011-01-30 21:28+0100\n" "Last-Translator: Javier Fernández-Sanguino \n" "Language-Team: Spanish team \n" "Language: \n" @@ -2475,10 +2475,12 @@ "Ruta donde se guardarán los archivos\n" "(Debe dar la ruta completa)" -msgid "Automatically reject from users not in buddy list" -msgstr "" -"Rechazar automáticamente las transferencias de usuarios que no están en mi " -"lista de amigos" +msgid "" +"When a file-transfer request arrives from a user who is\n" +"*not* on your buddy list:" +msgstr "" +"Cuando llega una solicitud de transferencia de un usuario que\n" +"*no* está en su lista de amigos:" msgid "" "Notify with a popup when an autoaccepted file transfer is complete\n" @@ -2491,6 +2493,9 @@ msgid "Create a new directory for each user" msgstr "Crear un directorio para cada usuario" +msgid "Escape the filenames" +msgstr "Indentar los nombres de fichero" + msgid "Notes" msgstr "Notas" @@ -3954,7 +3959,10 @@ msgid "Server requires plaintext authentication over an unencrypted stream" msgstr "El servidor solicita autenticación en claro sobre un canal no cifrado" -#. This should never happen! +#. This happens when the server sends back jibberish +#. * in the "additional data with success" case. +#. * Seen with Wildfire 3.0.1. +#. msgid "Invalid response from server" msgstr "Respuesta inválida del servidor" @@ -6298,6 +6306,20 @@ msgid "Retrieving User Information..." msgstr "Obteniendo la información del usuario..." +#. you were kicked +msgid "You have been kicked from this MultiMX." +msgstr "Ha sido expulsado de este MultiMX." + +msgid "was kicked" +msgstr "fue expulsado" + +msgid "_Room Name:" +msgstr "Nombre de _Sala:" + +#. Display system message in chat window +msgid "You have invited" +msgstr "Ha sido invitado" + msgid "Loading menu..." msgstr "Cargando el menú..." @@ -6325,20 +6347,6 @@ msgid "Enable splash-screen popup" msgstr "Activar la pantalla de bienvenida" -#. you were kicked -msgid "You have been kicked from this MultiMX." -msgstr "Ha sido expulsado de este MultiMX." - -msgid "was kicked" -msgstr "fue expulsado" - -msgid "_Room Name:" -msgstr "Nombre de _Sala:" - -#. Display system message in chat window -msgid "You have invited" -msgstr "Ha sido invitado" - msgid "Last Online" msgstr "Última conexión" @@ -8007,75 +8015,6 @@ "para Imágenes de MI. Como su dirección IP será revelada, puede considerarse " "esto como un riesgo a su privacidad." -msgid "Invalid SNAC" -msgstr "SNAC inválido" - -msgid "Server rate limit exceeded" -msgstr "Se excedió el límite de tasa del servidor" - -msgid "Client rate limit exceeded" -msgstr "Se excedió el límite de tasa del cliente" - -msgid "Service unavailable" -msgstr "Servicio no disponible" - -msgid "Service not defined" -msgstr "Servicio no definido" - -msgid "Obsolete SNAC" -msgstr "SNAC obsoleto" - -msgid "Not supported by host" -msgstr "No soportado por el servidor" - -msgid "Not supported by client" -msgstr "No soportado por el cliente" - -msgid "Refused by client" -msgstr "Rechazado por el cliente" - -msgid "Reply too big" -msgstr "Respuesta demasiado grande" - -msgid "Responses lost" -msgstr "Respuestas perdidas" - -msgid "Request denied" -msgstr "Solicitud denegada" - -msgid "Busted SNAC payload" -msgstr "Carga de SNAC destrozada" - -msgid "Insufficient rights" -msgstr "Derechos insuficientes" - -msgid "In local permit/deny" -msgstr "En la lista local de autorizar/negar" - -msgid "Warning level too high (sender)" -msgstr "Nivel de aviso demasiado alto (emisor)" - -msgid "Warning level too high (receiver)" -msgstr "Nivel de aviso demasiado alto (receptor)" - -msgid "User temporarily unavailable" -msgstr "Usuario temporalmente no disponible" - -msgid "No match" -msgstr "No hubo coincidencia" - -msgid "List overflow" -msgstr "Desbordamiento de la lista" - -msgid "Request ambiguous" -msgstr "Solicitud ambigua" - -msgid "Queue full" -msgstr "Cola llena" - -msgid "Not while on AOL" -msgstr "No mientras esté en AOL" - #. Label msgid "Buddy Icon" msgstr "Icono de amigo" @@ -8194,6 +8133,75 @@ msgid "Capabilities" msgstr "Capacidades" +msgid "Invalid SNAC" +msgstr "SNAC inválido" + +msgid "Server rate limit exceeded" +msgstr "Se excedió el límite de tasa del servidor" + +msgid "Client rate limit exceeded" +msgstr "Se excedió el límite de tasa del cliente" + +msgid "Service unavailable" +msgstr "Servicio no disponible" + +msgid "Service not defined" +msgstr "Servicio no definido" + +msgid "Obsolete SNAC" +msgstr "SNAC obsoleto" + +msgid "Not supported by host" +msgstr "No soportado por el servidor" + +msgid "Not supported by client" +msgstr "No soportado por el cliente" + +msgid "Refused by client" +msgstr "Rechazado por el cliente" + +msgid "Reply too big" +msgstr "Respuesta demasiado grande" + +msgid "Responses lost" +msgstr "Respuestas perdidas" + +msgid "Request denied" +msgstr "Solicitud denegada" + +msgid "Busted SNAC payload" +msgstr "Carga de SNAC destrozada" + +msgid "Insufficient rights" +msgstr "Derechos insuficientes" + +msgid "In local permit/deny" +msgstr "En la lista local de autorizar/negar" + +msgid "Warning level too high (sender)" +msgstr "Nivel de aviso demasiado alto (emisor)" + +msgid "Warning level too high (receiver)" +msgstr "Nivel de aviso demasiado alto (receptor)" + +msgid "User temporarily unavailable" +msgstr "Usuario temporalmente no disponible" + +msgid "No match" +msgstr "No hubo coincidencia" + +msgid "List overflow" +msgstr "Desbordamiento de la lista" + +msgid "Request ambiguous" +msgstr "Solicitud ambigua" + +msgid "Queue full" +msgstr "Cola llena" + +msgid "Not while on AOL" +msgstr "No mientras esté en AOL" + #. Translators: This string is a menu option that, if selected, will cause #. you to appear online to the chosen user even when your status is set to #. Invisible. @@ -8786,14 +8794,14 @@ msgid "Select Server" msgstr "Seleccionar servidor" -msgid "QQ2005" -msgstr "QQ2005" +msgid "QQ2008" +msgstr "QQ2008" msgid "QQ2007" msgstr "QQ2007" -msgid "QQ2008" -msgstr "QQ2008" +msgid "QQ2005" +msgstr "QQ2005" msgid "Connect by TCP" msgstr "Conectar por TCP" @@ -12353,9 +12361,6 @@ msgid "Fatal Error" msgstr "Error fatal" -msgid "bug master" -msgstr "maestro de las erratas" - msgid "artist" msgstr "artista" @@ -12536,6 +12541,9 @@ msgid "Maithili" msgstr "Maithili" +msgid "Meadow Mari" +msgstr "Mari" + msgid "Macedonian" msgstr "Macedonio" @@ -15685,6 +15693,14 @@ msgid "You do not have permission to uninstall this application." msgstr "No tiene permisos para desinstalar esta aplicación." +#~ msgid "Automatically reject from users not in buddy list" +#~ msgstr "" +#~ "Rechazar automáticamente las transferencias de usuarios que no están en " +#~ "mi lista de amigos" + +#~ msgid "bug master" +#~ msgstr "maestro de las erratas" + #~ msgid "Error requesting %s" #~ msgstr "Error al solicitar %s" @@ -15757,20 +15773,20 @@ #~ msgstr "Album" #~ msgid "Current Mood" -#~ msgstr "Luna actual" +#~ msgstr "Estado de ánimo actual" #~ msgid "New Mood" -#~ msgstr "Luna nueva" +#~ msgstr "Nuevo estado de ánimo" #~ msgid "Change your Mood" -#~ msgstr "Cambiar su luna" +#~ msgstr "Cambiar su estado de ánimo" #~ msgid "How do you feel right now?" #~ msgstr "¿Cómo se encuentra justo ahora?" #, fuzzy #~ msgid "Change Mood..." -#~ msgstr "Cambiar su contraseña..." +#~ msgstr "Cambiar su estado de ánimo..." #~ msgid "Pager server" #~ msgstr "Servidor buscapersonas" diff -r a7397a3d67ef -r 626efe139f98 po/eu.po --- a/po/eu.po Sun Jan 09 23:32:10 2011 +0000 +++ b/po/eu.po Sat Feb 12 23:54:14 2011 +0000 @@ -16,7 +16,7 @@ "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: KBabel 1.9.1\n" -"Plural-Forms: Plural-Forms: Plural-Forms: nplurals=2; plural=(n != 1);\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" #. Translators may want to transliterate the name. #. It is not to be translated. diff -r a7397a3d67ef -r 626efe139f98 po/fr.po --- a/po/fr.po Sun Jan 09 23:32:10 2011 +0000 +++ b/po/fr.po Sat Feb 12 23:54:14 2011 +0000 @@ -4,7 +4,7 @@ # Copyright (C) 2002, Stéphane Pontier # Copyright (C) 2002, Stéphane Wirtel # Copyright (C) 2002, Loïc Jeannin -# Copyright (C) 2002-2010, Éric Boumaour +# Copyright (C) 2002-2011, Éric Boumaour # # This file is distributed under the same license as the Pidgin package. # @@ -21,14 +21,14 @@ msgstr "" "Project-Id-Version: Pidgin\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-12-19 13:33-0500\n" -"PO-Revision-Date: 2010-12-16 23:25+0100\n" +"POT-Creation-Date: 2011-01-30 21:28+0100\n" +"PO-Revision-Date: 2011-01-30 21:14+0100\n" "Last-Translator: Éric Boumaour \n" "Language-Team: fr \n" -"Language: \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" #. Translators may want to transliterate the name. @@ -864,8 +864,8 @@ "System events will only be logged if the \"Log all status changes to system " "log\" preference is enabled." msgstr "" -"Les événements système ne seront archivés que si l'option « Archiver tous " -"les changements d'état dans les archives système » est activée." +"Les événements système ne seront archivés que si l'option « Archiver tous les " +"changements d'état dans les archives système » est activée." msgid "" "Instant messages will only be logged if the \"Log all instant messages\" " @@ -2372,9 +2372,12 @@ "Dossier où placer les fichiers\n" "(Veuillez fournir le chemin complet)" -msgid "Automatically reject from users not in buddy list" -msgstr "" -"Refuser automatiquement si l'utilisateur n'est pas dans ma liste de contacts" +msgid "" +"When a file-transfer request arrives from a user who is\n" +"*not* on your buddy list:" +msgstr "" +"Quand une demande de transfert arrive de quelqu'un qui\n" +"n'est *pas* dans la liste de contacts :" msgid "" "Notify with a popup when an autoaccepted file transfer is complete\n" @@ -2387,6 +2390,9 @@ msgid "Create a new directory for each user" msgstr "Créer un nouveau dossier pour chaque contact" +msgid "Escape the filenames" +msgstr "Encoder les noms des fichiers" + msgid "Notes" msgstr "Notes" @@ -2767,8 +2773,7 @@ msgstr "Message déconnecté" msgid "You can edit/delete the pounce from the `Buddy Pounces' dialog" -msgstr "" -"Vous pouvez modifier ou supprimer l'alerte dans la fenêtre « Alertes »." +msgstr "Vous pouvez modifier ou supprimer l'alerte dans la fenêtre « Alertes »." msgid "Yes" msgstr "Oui" @@ -3859,7 +3864,10 @@ "Le serveur demande une authentification en texte non chiffré au travers d'un " "flux crypté." -#. This should never happen! +#. This happens when the server sends back jibberish +#. * in the "additional data with success" case. +#. * Seen with Wildfire 3.0.1. +#. msgid "Invalid response from server" msgstr "Réponse non valide du serveur" @@ -6197,6 +6205,20 @@ msgid "Retrieving User Information..." msgstr "Récupération des informations de l'utilisateur..." +#. you were kicked +msgid "You have been kicked from this MultiMX." +msgstr "Vous avez été expulsé de ce MultiMX." + +msgid "was kicked" +msgstr "a été expulsé" + +msgid "_Room Name:" +msgstr "_Salon :" + +#. Display system message in chat window +msgid "You have invited" +msgstr "Vous avez été invité" + msgid "Loading menu..." msgstr "Chargement du menu..." @@ -6224,20 +6246,6 @@ msgid "Enable splash-screen popup" msgstr "Activer l'affichage de la bannière" -#. you were kicked -msgid "You have been kicked from this MultiMX." -msgstr "Vous avez été expulsé de ce MultiMX." - -msgid "was kicked" -msgstr "a été expulsé" - -msgid "_Room Name:" -msgstr "_Salon :" - -#. Display system message in chat window -msgid "You have invited" -msgstr "Vous avez été invité" - msgid "Last Online" msgstr "En ligne dernièrement" @@ -7908,75 +7916,6 @@ "d'images. Votre adresse IP sera révélée et ceci peut être considéré comme " "une faille de sécurité." -msgid "Invalid SNAC" -msgstr "SNAC non valide" - -msgid "Server rate limit exceeded" -msgstr "Vitesse du serveur dépassée" - -msgid "Client rate limit exceeded" -msgstr "Vitesse du client dépassée" - -msgid "Service unavailable" -msgstr "Service non disponible" - -msgid "Service not defined" -msgstr "Service non défini" - -msgid "Obsolete SNAC" -msgstr "SNAC obsolète" - -msgid "Not supported by host" -msgstr "Non supporté par l'hôte" - -msgid "Not supported by client" -msgstr "Non supporté par le client" - -msgid "Refused by client" -msgstr "Refusé par le client" - -msgid "Reply too big" -msgstr "Réponse trop grosse" - -msgid "Responses lost" -msgstr "Réponses perdues" - -msgid "Request denied" -msgstr "Requête refusée" - -msgid "Busted SNAC payload" -msgstr "Charge SNAC incorrecte" - -msgid "Insufficient rights" -msgstr "Droits insuffisants" - -msgid "In local permit/deny" -msgstr "Dans l'autorisation/interdiction locale" - -msgid "Warning level too high (sender)" -msgstr "Niveau d'avertissement trop élevé (émission)" - -msgid "Warning level too high (receiver)" -msgstr "Niveau d'avertissement trop élevé (réception)" - -msgid "User temporarily unavailable" -msgstr "L'utilisateur est temporairement indisponible." - -msgid "No match" -msgstr "Aucun résultat" - -msgid "List overflow" -msgstr "Dépassement de liste" - -msgid "Request ambiguous" -msgstr "Requête ambiguë" - -msgid "Queue full" -msgstr "File d'attente pleine" - -msgid "Not while on AOL" -msgstr "Impossible sur AOL" - #. Label msgid "Buddy Icon" msgstr "Icône du contact" @@ -8095,6 +8034,75 @@ msgid "Capabilities" msgstr "Possibilités" +msgid "Invalid SNAC" +msgstr "SNAC non valide" + +msgid "Server rate limit exceeded" +msgstr "Vitesse du serveur dépassée" + +msgid "Client rate limit exceeded" +msgstr "Vitesse du client dépassée" + +msgid "Service unavailable" +msgstr "Service non disponible" + +msgid "Service not defined" +msgstr "Service non défini" + +msgid "Obsolete SNAC" +msgstr "SNAC obsolète" + +msgid "Not supported by host" +msgstr "Non supporté par l'hôte" + +msgid "Not supported by client" +msgstr "Non supporté par le client" + +msgid "Refused by client" +msgstr "Refusé par le client" + +msgid "Reply too big" +msgstr "Réponse trop grosse" + +msgid "Responses lost" +msgstr "Réponses perdues" + +msgid "Request denied" +msgstr "Requête refusée" + +msgid "Busted SNAC payload" +msgstr "Charge SNAC incorrecte" + +msgid "Insufficient rights" +msgstr "Droits insuffisants" + +msgid "In local permit/deny" +msgstr "Dans l'autorisation/interdiction locale" + +msgid "Warning level too high (sender)" +msgstr "Niveau d'avertissement trop élevé (émission)" + +msgid "Warning level too high (receiver)" +msgstr "Niveau d'avertissement trop élevé (réception)" + +msgid "User temporarily unavailable" +msgstr "L'utilisateur est temporairement indisponible." + +msgid "No match" +msgstr "Aucun résultat" + +msgid "List overflow" +msgstr "Dépassement de liste" + +msgid "Request ambiguous" +msgstr "Requête ambiguë" + +msgid "Queue full" +msgstr "File d'attente pleine" + +msgid "Not while on AOL" +msgstr "Impossible sur AOL" + #. Translators: This string is a menu option that, if selected, will cause #. you to appear online to the chosen user even when your status is set to #. Invisible. @@ -8686,14 +8694,14 @@ msgid "Select Server" msgstr "Choisir le serveur" -msgid "QQ2005" -msgstr "QQ2005" +msgid "QQ2008" +msgstr "QQ2008" msgid "QQ2007" msgstr "QQ2007" -msgid "QQ2008" -msgstr "QQ2008" +msgid "QQ2005" +msgstr "QQ2005" msgid "Connect by TCP" msgstr "Connexion par TCP" @@ -10445,8 +10453,8 @@ msgstr "" "Le serveur Yahoo! a demandé une méthode d'authentification non reconnue. " "Cette version de l'application n'arrivera probablement pas à se connecter au " -"service Yahoo!. Vous pouvez vérifier qu'une mise à jour est disponible sur " -"%s." +"service Yahoo!. Vous pouvez vérifier qu'une mise à jour est disponible sur %" +"s." msgid "Failed Yahoo! Authentication" msgstr "Échec de l'authentification Yahoo!" @@ -12257,9 +12265,6 @@ msgid "Fatal Error" msgstr "Erreur critique" -msgid "bug master" -msgstr "maitre des bogues" - msgid "artist" msgstr "artiste" @@ -12439,6 +12444,9 @@ msgid "Maithili" msgstr "Maïhili" +msgid "Meadow Mari" +msgstr "Mari des prairies" + msgid "Macedonian" msgstr "Macédonien" @@ -12559,8 +12567,8 @@ "to multiple messaging services at once. %s is written in C using GTK+. %s " "is released, and may be modified and redistributed, under the terms of the " "GPL version 2 (or later). A copy of the GPL is distributed with %s. %s is " -"copyrighted by its contributors, a list of whom is also distributed with " -"%s. There is no warranty for %s.

" +"copyrighted by its contributors, a list of whom is also distributed with %" +"s. There is no warranty for %s.

" msgstr "" "%s est un client de messagerie basé sur libpurple capable de se connecter à " "de multiples services de messageries instantanées. %s est écrit en C et " @@ -13115,16 +13123,16 @@ #, c-format msgid "" -"Are you sure you want to permanently delete the log of the conversation in " -"%s which started at %s?" +"Are you sure you want to permanently delete the log of the conversation in %" +"s which started at %s?" msgstr "" "Êtes-vous sûr de vouloir supprimer les archives de la conversation dans %s " "datée du %s ?" #, c-format msgid "" -"Are you sure you want to permanently delete the system log which started at " -"%s?" +"Are you sure you want to permanently delete the system log which started at %" +"s?" msgstr "Êtes-vous sûr de vouloir supprimer les archives système datées du %s ?" msgid "Delete Log?" @@ -14956,8 +14964,8 @@ "'Enter' in the entry box to send. Watch the debug window." msgstr "" "Permet d'envoyer des données brutes aux protocoles en mode texte (XMPP, MSN, " -"IRC, TOC). Tapez « Entrée » dans la boîte de saisie pour envoyer. Observez " -"le résultat dans la fenêtre de debug." +"IRC, TOC). Tapez « Entrée » dans la boîte de saisie pour envoyer. Observez le " +"résultat dans la fenêtre de debug." #, c-format msgid "You can upgrade to %s %s today." @@ -15485,13 +15493,13 @@ #, no-c-format msgid "" "Error Installing Spellchecking ($R3).$\\rIf retrying fails, manual " -"installation instructions are at: http://developer.pidgin.im/wiki/Installing" -"%20Pidgin#manual_win32_spellcheck_installation" +"installation instructions are at: http://developer.pidgin.im/wiki/Installing%" +"20Pidgin#manual_win32_spellcheck_installation" msgstr "" "Erreur lors de l'installation du correcteur orthographique ($R3).$\\rSi une " "nouvelle tentative échoue, veuillez suivre les instructions sur http://" -"developer.pidgin.im/wiki/Installing" -"%20Pidgin#manual_win32_spellcheck_installation" +"developer.pidgin.im/wiki/Installing%" +"20Pidgin#manual_win32_spellcheck_installation" #. Installer Subsection Text msgid "GTK+ Runtime (required if not present)" @@ -15570,6 +15578,14 @@ msgid "You do not have permission to uninstall this application." msgstr "Vous n'avez pas les permissions pour supprimer cette application." +#~ msgid "Automatically reject from users not in buddy list" +#~ msgstr "" +#~ "Refuser automatiquement si l'utilisateur n'est pas dans ma liste de " +#~ "contacts" + +#~ msgid "bug master" +#~ msgstr "maitre des bogues" + #~ msgid "An error occurred on the in-band bytestream transfer\n" #~ msgstr "Erreur lors du transfert dans le flux de données in-band.\n" diff -r a7397a3d67ef -r 626efe139f98 po/gl.po --- a/po/gl.po Sun Jan 09 23:32:10 2011 +0000 +++ b/po/gl.po Sat Feb 12 23:54:14 2011 +0000 @@ -18,7 +18,7 @@ "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: Plural-Forms: nplurals=2; plural=(n != 1);\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: KBabel 1.11.4\n" #. Translators may want to transliterate the name. diff -r a7397a3d67ef -r 626efe139f98 po/he.po --- a/po/he.po Sun Jan 09 23:32:10 2011 +0000 +++ b/po/he.po Sat Feb 12 23:54:14 2011 +0000 @@ -8,8 +8,8 @@ msgstr "" "Project-Id-Version: he\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-12-19 13:33-0500\n" -"PO-Revision-Date: 2010-12-16 16:39+0200\n" +"POT-Creation-Date: 2011-02-02 23:34-0500\n" +"PO-Revision-Date: 2011-01-26 08:34+0200\n" "Last-Translator: Shalom Craimer \n" "Language-Team: Hebrew \n" "Language: he\n" @@ -2278,8 +2278,12 @@ "נתיב לשמור בו את הקבצים\n" "(יש לספק נתיב מלא)" -msgid "Automatically reject from users not in buddy list" -msgstr "דחה אוטומטית ממשתמשים שאינם ברשימת החברים שלי" +msgid "" +"When a file-transfer request arrives from a user who is\n" +"*not* on your buddy list:" +msgstr "" +"כאשר מגיעה בקשה להעברת-קובץ ממשתמש\n" +"אשר *אינו* ברשימת החברים שלך:" msgid "" "Notify with a popup when an autoaccepted file transfer is complete\n" @@ -2291,6 +2295,9 @@ msgid "Create a new directory for each user" msgstr "צור ספרייה חדשה עבור כל משתמש" +msgid "Escape the filenames" +msgstr "קדד אותיות בעייתיות בשמות הקבצים" + msgid "Notes" msgstr "הערות" @@ -3724,7 +3731,10 @@ msgid "Server requires plaintext authentication over an unencrypted stream" msgstr "השרת דורש אימות לא מוצפן מעל תקשורת לא מוצפנת" -#. This should never happen! +#. This happens when the server sends back jibberish +#. * in the "additional data with success" case. +#. * Seen with Wildfire 3.0.1. +#. msgid "Invalid response from server" msgstr "תגובה לא תקפה מהשרת" @@ -5980,6 +5990,20 @@ msgid "Retrieving User Information..." msgstr "שולף מידע משתמש..." +#. you were kicked +msgid "You have been kicked from this MultiMX." +msgstr "נבעטת מתוך MultiMX זה." + +msgid "was kicked" +msgstr "נבעט/ה" + +msgid "_Room Name:" +msgstr "שם _חדר:" + +#. Display system message in chat window +msgid "You have invited" +msgstr "הוזמנת" + msgid "Loading menu..." msgstr "טוען תפריט..." @@ -6007,20 +6031,6 @@ msgid "Enable splash-screen popup" msgstr "אפשר פתיחת חלון-הקדמה" -#. you were kicked -msgid "You have been kicked from this MultiMX." -msgstr "נבעטת מתוך MultiMX זה." - -msgid "was kicked" -msgstr "נבעט/ה" - -msgid "_Room Name:" -msgstr "שם _חדר:" - -#. Display system message in chat window -msgid "You have invited" -msgstr "הוזמנת" - msgid "Last Online" msgstr "חיבור אחרון" @@ -7620,75 +7630,6 @@ "זה דורש חיבור ישיר בין שני המחשבים, ונחוץ עבור תמונות בהודעות. מכיוון שכתובת " "ה-IP שלך תיחשף, ייתכן וזה ייחשב כסיכון לפרטיותך." -msgid "Invalid SNAC" -msgstr "SNAC לא תקף" - -msgid "Server rate limit exceeded" -msgstr "הפרזת מעבר למגבלת השרת" - -msgid "Client rate limit exceeded" -msgstr "הפרזת מעבר למגבלת הלקוח" - -msgid "Service unavailable" -msgstr "השירות אינו זמין" - -msgid "Service not defined" -msgstr "שירות אינו מוגדר" - -msgid "Obsolete SNAC" -msgstr "SNAC מיושן" - -msgid "Not supported by host" -msgstr "לא נתמך על-ידי השרת" - -msgid "Not supported by client" -msgstr "לא נתמך על-ידי הלקוח" - -msgid "Refused by client" -msgstr "החיבור נדחה על ידי הלקוח." - -msgid "Reply too big" -msgstr "המענה גדול מדיי" - -msgid "Responses lost" -msgstr "אבדו המשובים" - -msgid "Request denied" -msgstr "הבקשה נדחית" - -msgid "Busted SNAC payload" -msgstr "מידע פגום ב-SNAC" - -msgid "Insufficient rights" -msgstr "אין די הרשאות" - -msgid "In local permit/deny" -msgstr "באישור/שלילה מקומיים" - -msgid "Warning level too high (sender)" -msgstr "רמת אזהרה גבוהה מדי (שולח(" - -msgid "Warning level too high (receiver)" -msgstr "רמת אזהרה גבוהה מדי (מקבל)" - -msgid "User temporarily unavailable" -msgstr "המשתמש אינו זמין כרגע" - -msgid "No match" -msgstr "אין התאמה" - -msgid "List overflow" -msgstr "גלישת מגבולות הרשימה" - -msgid "Request ambiguous" -msgstr "בקשה לא ברורה" - -msgid "Queue full" -msgstr "התור מלא" - -msgid "Not while on AOL" -msgstr "לא בזמן שהות ב-AOL" - #. Label msgid "Buddy Icon" msgstr "סמל איש הקשר" @@ -7807,6 +7748,75 @@ msgid "Capabilities" msgstr "יכולות" +msgid "Invalid SNAC" +msgstr "SNAC לא תקף" + +msgid "Server rate limit exceeded" +msgstr "הפרזת מעבר למגבלת השרת" + +msgid "Client rate limit exceeded" +msgstr "הפרזת מעבר למגבלת הלקוח" + +msgid "Service unavailable" +msgstr "השירות אינו זמין" + +msgid "Service not defined" +msgstr "שירות אינו מוגדר" + +msgid "Obsolete SNAC" +msgstr "SNAC מיושן" + +msgid "Not supported by host" +msgstr "לא נתמך על-ידי השרת" + +msgid "Not supported by client" +msgstr "לא נתמך על-ידי הלקוח" + +msgid "Refused by client" +msgstr "החיבור נדחה על ידי הלקוח." + +msgid "Reply too big" +msgstr "המענה גדול מדיי" + +msgid "Responses lost" +msgstr "אבדו המשובים" + +msgid "Request denied" +msgstr "הבקשה נדחית" + +msgid "Busted SNAC payload" +msgstr "מידע פגום ב-SNAC" + +msgid "Insufficient rights" +msgstr "אין די הרשאות" + +msgid "In local permit/deny" +msgstr "באישור/שלילה מקומיים" + +msgid "Warning level too high (sender)" +msgstr "רמת אזהרה גבוהה מדי (שולח(" + +msgid "Warning level too high (receiver)" +msgstr "רמת אזהרה גבוהה מדי (מקבל)" + +msgid "User temporarily unavailable" +msgstr "המשתמש אינו זמין כרגע" + +msgid "No match" +msgstr "אין התאמה" + +msgid "List overflow" +msgstr "גלישת מגבולות הרשימה" + +msgid "Request ambiguous" +msgstr "בקשה לא ברורה" + +msgid "Queue full" +msgstr "התור מלא" + +msgid "Not while on AOL" +msgstr "לא בזמן שהות ב-AOL" + #. Translators: This string is a menu option that, if selected, will cause #. you to appear online to the chosen user even when your status is set to #. Invisible. @@ -8398,14 +8408,14 @@ msgid "Select Server" msgstr "בחר שרת" -msgid "QQ2005" -msgstr "QQ2005" +msgid "QQ2008" +msgstr "QQ2008" msgid "QQ2007" msgstr "QQ2007" -msgid "QQ2008" -msgstr "QQ2008" +msgid "QQ2005" +msgstr "QQ2005" msgid "Connect by TCP" msgstr "התחבר בעזרת TCP" @@ -11881,9 +11891,6 @@ msgid "Fatal Error" msgstr "שגיאה קטלנית" -msgid "bug master" -msgstr "שר-הבאגים" - msgid "artist" msgstr "אמן" @@ -12063,6 +12070,9 @@ msgid "Maithili" msgstr "מאת'ילי" +msgid "Meadow Mari" +msgstr "Meadow Mari" + msgid "Macedonian" msgstr "מקדונית" @@ -15107,6 +15117,12 @@ msgid "You do not have permission to uninstall this application." msgstr ".אין לך זכות למחוק תוכנה זאת" +#~ msgid "Automatically reject from users not in buddy list" +#~ msgstr "דחה אוטומטית ממשתמשים שאינם ברשימת החברים שלי" + +#~ msgid "bug master" +#~ msgstr "שר-הבאגים" + #~ msgid "An error occurred on the in-band bytestream transfer\n" #~ msgstr "ארעה שגיאה בעת ההעברה בזרם בתווך\n" diff -r a7397a3d67ef -r 626efe139f98 po/hu.po --- a/po/hu.po Sun Jan 09 23:32:10 2011 +0000 +++ b/po/hu.po Sat Feb 12 23:54:14 2011 +0000 @@ -1,22 +1,22 @@ # Hungarian translation of pidgin. -# Copyright (C) 2003, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. +# Copyright (C) 2003, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc. # This file is distributed under the same license as the Pidgin package. # The Hungarian translation of Pidgin was sponsored by Novell Hungary, many thanks for it! # # Zoltan Sutto , 2003. -# Gabor Kelemen , 2005, 2006, 2007, 2008, 2009, 2010. -msgid "" -msgstr "" -"Project-Id-Version: pidgin 2.7\n" +# Gabor Kelemen , 2005, 2006, 2007, 2008, 2009, 2010, 2011. +msgid "" +msgstr "" +"Project-Id-Version: pidgin 2.7.10\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-12-21 15:20+0100\n" -"PO-Revision-Date: 2010-12-21 15:19+0100\n" +"POT-Creation-Date: 2011-01-25 15:12+0100\n" +"PO-Revision-Date: 2011-01-25 15:12+0100\n" "Last-Translator: Gabor Kelemen \n" "Language-Team: Hungarian \n" -"Language: \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: KBabel 1.11.4\n" @@ -2350,9 +2350,12 @@ "A fájlok mentési útvonala\n" "(Teljes elérési utat adjon meg)" -msgid "Automatically reject from users not in buddy list" -msgstr "" -"Automatikus visszautasítás a partnerlistán nem szereplő felhasználóktól" +msgid "" +"When a file-transfer request arrives from a user who is\n" +"*not* on your buddy list:" +msgstr "" +"Ha fájlküldési kérés érkezik egy a partnerlistán NEM szereplő\n" +"felhasználótól:" msgid "" "Notify with a popup when an autoaccepted file transfer is complete\n" @@ -2365,6 +2368,9 @@ msgid "Create a new directory for each user" msgstr "Új könyvtár létrehozása minden felhasználóhoz" +msgid "Escape the filenames" +msgstr "Fájlnevek escape-elése." + msgid "Notes" msgstr "Megjegyzések" @@ -3828,7 +3834,10 @@ msgstr "" "A kiszolgáló szöveges hitelesítést követel meg egy nem titkosított csatornán" -#. This should never happen! +#. This happens when the server sends back jibberish +#. * in the "additional data with success" case. +#. * Seen with Wildfire 3.0.1. +#. msgid "Invalid response from server" msgstr "Érvénytelen válasz a kiszolgálótól" @@ -6757,8 +6766,8 @@ #, c-format msgid "Unable to send message. Could not get details for user (%s)." msgstr "" -"Az üzenetet nem lehet elküldeni. A felhasználó részletei nem kérhetőek le " -"(%s)." +"Az üzenetet nem lehet elküldeni. A felhasználó részletei nem kérhetőek le (%" +"s)." #, c-format msgid "Unable to add %s to your buddy list (%s)." @@ -7191,8 +7200,8 @@ "%s tried to send you a %s file, but we only allow files up to %s over Direct " "IM. Try using file transfer instead.\n" msgstr "" -"%s egy %s fájlt próbált küldeni, de közvetlen kapcsolatban legfeljebb csak " -"%s méretű fájl küldhető. Próbálkozzon inkább a fájlátvitellel.\n" +"%s egy %s fájlt próbált küldeni, de közvetlen kapcsolatban legfeljebb csak %" +"s méretű fájl küldhető. Próbálkozzon inkább a fájlátvitellel.\n" #, c-format msgid "File %s is %s, which is larger than the maximum size of %s." @@ -8628,14 +8637,14 @@ msgid "Select Server" msgstr "Válassza ki a kiszolgálót" -msgid "QQ2005" -msgstr "QQ2005" +msgid "QQ2008" +msgstr "QQ2008" msgid "QQ2007" msgstr "QQ2007" -msgid "QQ2008" -msgstr "QQ2008" +msgid "QQ2005" +msgstr "QQ2005" msgid "Connect by TCP" msgstr "Kapcsolódás TCP segítségével" @@ -10831,8 +10840,8 @@ #, c-format msgid "Access denied: HTTP proxy server forbids port %d tunneling" msgstr "" -"Hozzáférés megtagadva: a HTTP proxy kiszolgáló tiltja az alagutazást a(z) " -"%d. porton" +"Hozzáférés megtagadva: a HTTP proxy kiszolgáló tiltja az alagutazást a(z) %" +"d. porton" #, c-format msgid "Error resolving %s" @@ -11080,8 +11089,8 @@ "An error was encountered reading your %s. The file has not been loaded, and " "the old file has been renamed to %s~." msgstr "" -"Hiba történt a(z) %s olvasásakor. Ez a fájl nem lett betöltve, a régi fájl " -"%s~ néven lett elmentve." +"Hiba történt a(z) %s olvasásakor. Ez a fájl nem lett betöltve, a régi fájl %" +"s~ néven lett elmentve." msgid "" "Chat over IM. Supports AIM, Google Talk, Jabber/XMPP, MSN, Yahoo and more" @@ -12207,10 +12216,6 @@ msgid "Fatal Error" msgstr "Végzetes hiba" -# fixme: jobb ötlet? -msgid "bug master" -msgstr "hibaritkító" - msgid "artist" msgstr "grafikus" @@ -12390,6 +12395,9 @@ msgid "Maithili" msgstr "Maithili" +msgid "Meadow Mari" +msgstr "Mari" + msgid "Macedonian" msgstr "macedón" @@ -12510,8 +12518,8 @@ "to multiple messaging services at once. %s is written in C using GTK+. %s " "is released, and may be modified and redistributed, under the terms of the " "GPL version 2 (or later). A copy of the GPL is distributed with %s. %s is " -"copyrighted by its contributors, a list of whom is also distributed with " -"%s. There is no warranty for %s.

" +"copyrighted by its contributors, a list of whom is also distributed with %" +"s. There is no warranty for %s.

" msgstr "" "A %s egy libpurple alapú moduláris üzenetküldő kliens, amely egyszerre több " "üzenetküldő szolgáltatáshoz is képes csatlakozni. A %s GTK+ használatával, C " @@ -13061,16 +13069,16 @@ #, c-format msgid "" -"Are you sure you want to permanently delete the log of the conversation in " -"%s which started at %s?" +"Are you sure you want to permanently delete the log of the conversation in %" +"s which started at %s?" msgstr "" "Biztos, hogy törölni akarja a(z) %s csatornán folytatott, %s időpontban " "kezdődött beszélgetés naplóját?" #, c-format msgid "" -"Are you sure you want to permanently delete the system log which started at " -"%s?" +"Are you sure you want to permanently delete the system log which started at %" +"s?" msgstr "" "Biztos, hogy törölni akarja a(z) %s időpontban kezdődött rendszernaplót?" @@ -15421,8 +15429,8 @@ #, no-c-format msgid "" "Error Installing Spellchecking ($R3).$\\rIf retrying fails, manual " -"installation instructions are at: http://developer.pidgin.im/wiki/Installing" -"%20Pidgin#manual_win32_spellcheck_installation" +"installation instructions are at: http://developer.pidgin.im/wiki/Installing%" +"20Pidgin#manual_win32_spellcheck_installation" msgstr "" "Hiba a helyesírás-ellenőrző telepítésekor. ($R3).$\\rHa az újrapróbálkozás " "meghiúsul, akkor saját kezűleg is telepítheti a http://developer.pidgin.im/" diff -r a7397a3d67ef -r 626efe139f98 po/hy.po --- a/po/hy.po Sun Jan 09 23:32:10 2011 +0000 +++ b/po/hy.po Sat Feb 12 23:54:14 2011 +0000 @@ -3,7 +3,6 @@ # This file is distributed under the same license as the PACKAGE package. # David Avsharyan , 2009. # -#, fuzzy msgid "" msgstr "" "Project-Id-Version: am\n" @@ -16,7 +15,7 @@ "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n" +"Plural-Forms: nplurals=1; plural=0;\n" #. Translators may want to transliterate the name. #. It is not to be translated. diff -r a7397a3d67ef -r 626efe139f98 po/mn.po --- a/po/mn.po Sun Jan 09 23:32:10 2011 +0000 +++ b/po/mn.po Sat Feb 12 23:54:14 2011 +0000 @@ -15,7 +15,7 @@ "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n" +"Plural-Forms: nplurals=1; plural=0;\n" #. Translators may want to transliterate the name. #. It is not to be translated. diff -r a7397a3d67ef -r 626efe139f98 po/ms_MY.po --- a/po/ms_MY.po Sun Jan 09 23:32:10 2011 +0000 +++ b/po/ms_MY.po Sat Feb 12 23:54:14 2011 +0000 @@ -15,7 +15,7 @@ "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: KBabel 1.11.4\n" #. Translators may want to transliterate the name. diff -r a7397a3d67ef -r 626efe139f98 po/nl.po --- a/po/nl.po Sun Jan 09 23:32:10 2011 +0000 +++ b/po/nl.po Sat Feb 12 23:54:14 2011 +0000 @@ -8,9 +8,9 @@ msgstr "" "Project-Id-Version: pidgin 2.7.3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-12-19 13:34-0500\n" -"PO-Revision-Date: 2010-12-14 10:45+0100\n" -"Last-Translator: Dingoe \n" +"POT-Creation-Date: 2011-02-02 23:34-0500\n" +"PO-Revision-Date: 2011-01-25 10:45+0100\n" +"Last-Translator: Gideon van Melle \n" "Language-Team: Dutch \n" "Language: nl\n" "MIME-Version: 1.0\n" @@ -156,7 +156,7 @@ #, c-format msgid "%s%s%s%s has made %s his or her buddy%s%s" -msgstr "%s%s%s%s heeft %s in zijn/haar vriendt gemaakt%s%s" +msgstr "%s%s%s%s heeft %s in zijn/haar vriend gemaakt%s%s" msgid "Add buddy to your list?" msgstr "Vriend toevoegen aan uw lijst?" @@ -2365,8 +2365,12 @@ "Pad voor opslaan bestanden\n" "(Geef spv het volledige pad)" -msgid "Automatically reject from users not in buddy list" -msgstr "Automatisch verwerpen van gebruikers die niet in vriendenlijst staan" +msgid "" +"When a file-transfer request arrives from a user who is\n" +"*not* on your buddy list:" +msgstr "" +"Als een bestandsoverdracht aanvraag komt van gebruiker die\n" +"*niet\" op uw vriendenlijst staat:" msgid "" "Notify with a popup when an autoaccepted file transfer is complete\n" @@ -2379,6 +2383,9 @@ msgid "Create a new directory for each user" msgstr "Een nieuwe map voor elke gebruiker aanmaken" +msgid "Escape the filenames" +msgstr "*Escape* de bestandsnamen" + msgid "Notes" msgstr "Notities" @@ -3862,7 +3869,10 @@ "Server vereist een waarmerking via tekstaanmelding via een ongecodeerde " "datastroom" -#. This should never happen! +#. This happens when the server sends back jibberish +#. * in the "additional data with success" case. +#. * Seen with Wildfire 3.0.1. +#. msgid "Invalid response from server" msgstr "Ongeldig antwoord van server" @@ -6178,6 +6188,20 @@ msgid "Retrieving User Information..." msgstr "Ophalen Gebruikersinformatie..." +#. you were kicked +msgid "You have been kicked from this MultiMX." +msgstr "U bent uit deze MultiMX gegooid." + +msgid "was kicked" +msgstr "eruit gegooid" + +msgid "_Room Name:" +msgstr "_Ruimtenaam:" + +#. Display system message in chat window +msgid "You have invited" +msgstr "U heeft uitgenodigd" + msgid "Loading menu..." msgstr "Menu aan 't laden..." @@ -6205,20 +6229,6 @@ msgid "Enable splash-screen popup" msgstr "inschakelen splashscreen pop-up" -#. you were kicked -msgid "You have been kicked from this MultiMX." -msgstr "U bent uit deze MultiMX gegooid." - -msgid "was kicked" -msgstr "eruit gegooid" - -msgid "_Room Name:" -msgstr "_Ruimtenaam:" - -#. Display system message in chat window -msgid "You have invited" -msgstr "U heeft uitgenodigd" - msgid "Last Online" msgstr "Laatste Online" @@ -7892,75 +7902,6 @@ "afbeeldingen via chatberichten). Dit zou als een inbreuk op de privacy " "beschouwd kunnen worden omdat de ander dan uw IP-adres te weten komt." -msgid "Invalid SNAC" -msgstr "Ongeldige SNAC" - -msgid "Server rate limit exceeded" -msgstr "Server snelheidslimiet overschreden" - -msgid "Client rate limit exceeded" -msgstr "Cliënt snelheidslimiet overschreden" - -msgid "Service unavailable" -msgstr "Service niet beschikbaar" - -msgid "Service not defined" -msgstr "Service niet gedefinieerd" - -msgid "Obsolete SNAC" -msgstr "Verouderde SNAC" - -msgid "Not supported by host" -msgstr "Niet ondersteund door computer" - -msgid "Not supported by client" -msgstr "Niet ondersteund door cliënt" - -msgid "Refused by client" -msgstr "Gewegerd door cliënt" - -msgid "Reply too big" -msgstr "Antwoord te groot" - -msgid "Responses lost" -msgstr "Reacties verloren" - -msgid "Request denied" -msgstr "Aanvraag geweigerd" - -msgid "Busted SNAC payload" -msgstr "SNAC bagage kapot" - -msgid "Insufficient rights" -msgstr "Niet genoeg rechten" - -msgid "In local permit/deny" -msgstr "In lokale toestaan/weigeren" - -msgid "Warning level too high (sender)" -msgstr "Waarschuwingsniveau te hoog (verzender)" - -msgid "Warning level too high (receiver)" -msgstr "Waarschuwingsniveau te hoog (ontvanger)" - -msgid "User temporarily unavailable" -msgstr "Gebruiker tijdelijk niet beschikbaar" - -msgid "No match" -msgstr "Geen overeenkomstige resultaten" - -msgid "List overflow" -msgstr "Te grote lijst" - -msgid "Request ambiguous" -msgstr "Dubieuze aanvraag" - -msgid "Queue full" -msgstr "Wachtrij vol" - -msgid "Not while on AOL" -msgstr "Niet tijdens AOL" - # msgstr "" # "(Er is een fout opgetreden bij het ontvangen van het bericht. Of jij en %s " # "hebben verschillende coderingen geselecteerd of de andere persoon gebruikt " @@ -8083,6 +8024,75 @@ msgid "Capabilities" msgstr "Mogelijkheden" +msgid "Invalid SNAC" +msgstr "Ongeldige SNAC" + +msgid "Server rate limit exceeded" +msgstr "Server snelheidslimiet overschreden" + +msgid "Client rate limit exceeded" +msgstr "Cliënt snelheidslimiet overschreden" + +msgid "Service unavailable" +msgstr "Service niet beschikbaar" + +msgid "Service not defined" +msgstr "Service niet gedefinieerd" + +msgid "Obsolete SNAC" +msgstr "Verouderde SNAC" + +msgid "Not supported by host" +msgstr "Niet ondersteund door computer" + +msgid "Not supported by client" +msgstr "Niet ondersteund door cliënt" + +msgid "Refused by client" +msgstr "Gewegerd door cliënt" + +msgid "Reply too big" +msgstr "Antwoord te groot" + +msgid "Responses lost" +msgstr "Reacties verloren" + +msgid "Request denied" +msgstr "Aanvraag geweigerd" + +msgid "Busted SNAC payload" +msgstr "SNAC bagage kapot" + +msgid "Insufficient rights" +msgstr "Niet genoeg rechten" + +msgid "In local permit/deny" +msgstr "In lokale toestaan/weigeren" + +msgid "Warning level too high (sender)" +msgstr "Waarschuwingsniveau te hoog (verzender)" + +msgid "Warning level too high (receiver)" +msgstr "Waarschuwingsniveau te hoog (ontvanger)" + +msgid "User temporarily unavailable" +msgstr "Gebruiker tijdelijk niet beschikbaar" + +msgid "No match" +msgstr "Geen overeenkomstige resultaten" + +msgid "List overflow" +msgstr "Te grote lijst" + +msgid "Request ambiguous" +msgstr "Dubieuze aanvraag" + +msgid "Queue full" +msgstr "Wachtrij vol" + +msgid "Not while on AOL" +msgstr "Niet tijdens AOL" + #. Translators: This string is a menu option that, if selected, will cause #. you to appear online to the chosen user even when your status is set to #. Invisible. @@ -8677,14 +8687,14 @@ msgid "Select Server" msgstr "Selecteer Server" -msgid "QQ2005" -msgstr "QQ2005" +msgid "QQ2008" +msgstr "QQ2008" msgid "QQ2007" msgstr "QQ2007" -msgid "QQ2008" -msgstr "QQ2008" +msgid "QQ2005" +msgstr "QQ2005" msgid "Connect by TCP" msgstr "Verbinden via TCP" @@ -12256,9 +12266,6 @@ msgid "Fatal Error" msgstr "Fatale fout" -msgid "bug master" -msgstr "bug master" - msgid "artist" msgstr "artiest" @@ -12438,6 +12445,9 @@ msgid "Maithili" msgstr "Maithili" +msgid "Meadow Mari" +msgstr "Meadow Mari" + msgid "Macedonian" msgstr "Macedonisch" @@ -15584,6 +15594,13 @@ msgid "You do not have permission to uninstall this application." msgstr "U mag dit programma niet verwijderen." +#~ msgid "Automatically reject from users not in buddy list" +#~ msgstr "" +#~ "Automatisch verwerpen van gebruikers die niet in vriendenlijst staan" + +#~ msgid "bug master" +#~ msgstr "bug master" + #~ msgid "Error requesting %s" #~ msgstr "Fout opvragen %s" diff -r a7397a3d67ef -r 626efe139f98 po/nn.po --- a/po/nn.po Sun Jan 09 23:32:10 2011 +0000 +++ b/po/nn.po Sat Feb 12 23:54:14 2011 +0000 @@ -1,19 +1,19 @@ # -# Yngve Spjeld Landro , 2010. +# Yngve Spjeld Landro , 2010, 2011. # msgid "" msgstr "" "Project-Id-Version: gtranslator\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-12-19 13:34-0500\n" -"PO-Revision-Date: 2010-12-14 04:02+0100\n" +"POT-Creation-Date: 2011-02-02 23:34-0500\n" +"PO-Revision-Date: 2011-01-20 05:01+0100\n" "Last-Translator: Yngve Spjeld Landro \n" "Language-Team: Norwegian Nynorsk \n" "Language: nn\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\\n\n" #. Translators may want to transliterate the name. #. It is not to be translated. @@ -2357,9 +2357,12 @@ "Fillagringsbane\n" "(før opp heile filbana)" -# var: Automatisk avvising frå brukarar utanfor vennelista -msgid "Automatically reject from users not in buddy list" -msgstr "Automatisk avvising av brukarar utanfor vennelista" +msgid "" +"When a file-transfer request arrives from a user who is\n" +"*not* on your buddy list:" +msgstr "" +"Når ein filoverføringsførespurnad kjem frå ein brukar som\n" +"*ikkje* er i vennelista di:" msgid "" "Notify with a popup when an autoaccepted file transfer is complete\n" @@ -2372,6 +2375,9 @@ msgid "Create a new directory for each user" msgstr "Lag ein ny katalog for kvar brukar" +msgid "Escape the filenames" +msgstr "Vern filnamna (esc.-sekv.)" + msgid "Notes" msgstr "Notat" @@ -3822,7 +3828,10 @@ msgid "Server requires plaintext authentication over an unencrypted stream" msgstr "Tenaren krev autentisering i klartekst over eit ukryptert samband" -#. This should never happen! +#. This happens when the server sends back jibberish +#. * in the "additional data with success" case. +#. * Seen with Wildfire 3.0.1. +#. msgid "Invalid response from server" msgstr "Ugyldig svar frå tenaren" @@ -6123,6 +6132,20 @@ msgid "Retrieving User Information..." msgstr "Hentar brukaropplysningar…" +#. you were kicked +msgid "You have been kicked from this MultiMX." +msgstr "Du er blitt sparka ut frå denne MultiMX-en." + +msgid "was kicked" +msgstr "blei sparka ut" + +msgid "_Room Name:" +msgstr "Rom_namn:" + +#. Display system message in chat window +msgid "You have invited" +msgstr "Du har invitert " + msgid "Loading menu..." msgstr "Lastar menyen…" @@ -6151,20 +6174,6 @@ msgid "Enable splash-screen popup" msgstr "Bruk oppstartsvindauge" -#. you were kicked -msgid "You have been kicked from this MultiMX." -msgstr "Du er blitt sparka ut frå denne MultiMX-en." - -msgid "was kicked" -msgstr "blei sparka ut" - -msgid "_Room Name:" -msgstr "Rom_namn:" - -#. Display system message in chat window -msgid "You have invited" -msgstr "Du har invitert " - msgid "Last Online" msgstr "Sist tilkopla" @@ -7809,75 +7818,6 @@ "for lynmeldingsbilete. Fordi IP-adressa vil bli avslørt, blir dette sett på " "som ein tryggleiksrisiko." -msgid "Invalid SNAC" -msgstr "Ugyldig SNAC" - -msgid "Server rate limit exceeded" -msgstr "Overskriden tenargrense" - -msgid "Client rate limit exceeded" -msgstr "Overskriden klientgrense" - -msgid "Service unavailable" -msgstr "Tenesta er utilgjengeleg" - -msgid "Service not defined" -msgstr "Tenesta er ikkje definert" - -msgid "Obsolete SNAC" -msgstr "Forelda SNAC" - -msgid "Not supported by host" -msgstr "Ikkje støtta av verten" - -msgid "Not supported by client" -msgstr "Ikkje støtta av klienten" - -msgid "Refused by client" -msgstr "Avvist av klienten" - -msgid "Reply too big" -msgstr "Svaret er for stort" - -msgid "Responses lost" -msgstr "Tapte svar" - -msgid "Request denied" -msgstr "Førsepurnad avvist" - -msgid "Busted SNAC payload" -msgstr "Ødelagt SNAC-pakkeinnhald" - -msgid "Insufficient rights" -msgstr "Ikkje nok rettar" - -msgid "In local permit/deny" -msgstr "I lokal tilgangs-/forbodsliste" - -msgid "Warning level too high (sender)" -msgstr "For høgt åtvaringsnivå (sendar)" - -msgid "Warning level too high (receiver)" -msgstr "For høgt åtvaringsnivå (mottakar)" - -msgid "User temporarily unavailable" -msgstr "Brukaren er mellombels utilgjengeleg" - -msgid "No match" -msgstr "Ikkje noko samsvar" - -msgid "List overflow" -msgstr "Lista er full" - -msgid "Request ambiguous" -msgstr "Uklar førespurnad" - -msgid "Queue full" -msgstr "Køen er full" - -msgid "Not while on AOL" -msgstr "Ikkje når pålogga AOL" - #. Label msgid "Buddy Icon" msgstr "Venneikon" @@ -7997,6 +7937,75 @@ msgid "Capabilities" msgstr "Evner" +msgid "Invalid SNAC" +msgstr "Ugyldig SNAC" + +msgid "Server rate limit exceeded" +msgstr "Overskriden tenargrense" + +msgid "Client rate limit exceeded" +msgstr "Overskriden klientgrense" + +msgid "Service unavailable" +msgstr "Tenesta er utilgjengeleg" + +msgid "Service not defined" +msgstr "Tenesta er ikkje definert" + +msgid "Obsolete SNAC" +msgstr "Forelda SNAC" + +msgid "Not supported by host" +msgstr "Ikkje støtta av verten" + +msgid "Not supported by client" +msgstr "Ikkje støtta av klienten" + +msgid "Refused by client" +msgstr "Avvist av klienten" + +msgid "Reply too big" +msgstr "Svaret er for stort" + +msgid "Responses lost" +msgstr "Tapte svar" + +msgid "Request denied" +msgstr "Førsepurnad avvist" + +msgid "Busted SNAC payload" +msgstr "Ødelagt SNAC-pakkeinnhald" + +msgid "Insufficient rights" +msgstr "Ikkje nok rettar" + +msgid "In local permit/deny" +msgstr "I lokal tilgangs-/forbodsliste" + +msgid "Warning level too high (sender)" +msgstr "For høgt åtvaringsnivå (sendar)" + +msgid "Warning level too high (receiver)" +msgstr "For høgt åtvaringsnivå (mottakar)" + +msgid "User temporarily unavailable" +msgstr "Brukaren er mellombels utilgjengeleg" + +msgid "No match" +msgstr "Ikkje noko samsvar" + +msgid "List overflow" +msgstr "Lista er full" + +msgid "Request ambiguous" +msgstr "Uklar førespurnad" + +msgid "Queue full" +msgstr "Køen er full" + +msgid "Not while on AOL" +msgstr "Ikkje når pålogga AOL" + #. Translators: This string is a menu option that, if selected, will cause #. you to appear online to the chosen user even when your status is set to #. Invisible. @@ -8589,14 +8598,14 @@ msgid "Select Server" msgstr "Vel tenar" -msgid "QQ2005" -msgstr "QQ2005" +msgid "QQ2008" +msgstr "QQ2008" msgid "QQ2007" msgstr "QQ2007" -msgid "QQ2008" -msgstr "QQ2008" +msgid "QQ2005" +msgstr "QQ2005" msgid "Connect by TCP" msgstr "Kopla til med TCP" @@ -11352,19 +11361,19 @@ msgstr "Skjul når du er fråkopla" msgid "Show When Offline" -msgstr "Vis når du er fråkopla" +msgstr "Vis når du er fr_åkopla" msgid "_Alias..." -msgstr "Ka_llenamn…" +msgstr "_Kallenamn …" msgid "_Remove" msgstr "_Fjern" msgid "Set Custom Icon" -msgstr "Tilpassa ikon" +msgstr "_Tilpassa ikon" msgid "Remove Custom Icon" -msgstr "Fjern eige ikon" +msgstr "Fjern tilpa_ssa ikon" msgid "Add _Buddy..." msgstr "Legg til _venn…" @@ -11383,16 +11392,16 @@ msgstr "_Bli med" msgid "Auto-Join" -msgstr "Automatisk pålogging" +msgstr "Bli med auto_matisk" msgid "Persistent" -msgstr "Varig" +msgstr "_Varig" msgid "_Edit Settings..." -msgstr "Endra _innstillingar…" +msgstr "Endra _innstillingar …" msgid "_Collapse" -msgstr "_Slå saman" +msgstr "Sl_å saman" msgid "_Expand" msgstr "_Utvid" @@ -12149,9 +12158,6 @@ msgid "Fatal Error" msgstr "Alvorleg feil" -msgid "bug master" -msgstr "feilrettingsansvarleg" - msgid "artist" msgstr "kunstnar" @@ -12332,6 +12338,10 @@ msgid "Maithili" msgstr "Maithili" +#, fuzzy +msgid "Meadow Mari" +msgstr "Ny e-post" + msgid "Macedonian" msgstr "Makedonsk" @@ -12625,7 +12635,7 @@ msgstr "Fjern venn" msgid "_Remove Buddy" -msgstr "_Fjern venn" +msgstr "Fje_rn venn" #, c-format msgid "" @@ -13534,13 +13544,13 @@ msgstr "Slå på automatisk port_vidaresending" msgid "_Manually specify range of ports to listen on:" -msgstr "Før opp _portrekkje det skal lyttast til:" +msgstr "Før opp portr_ekkje det skal lyttast til:" msgid "_Start:" -msgstr "_Start:" +msgstr "_start:" msgid "_End:" -msgstr "_Slutt:" +msgstr "s_lutt:" #. TURN server msgid "Relay Server (TURN)" @@ -15441,6 +15451,13 @@ msgid "You do not have permission to uninstall this application." msgstr "Du har ikkje rettar til å avinstallera dette programmet." +#~ msgid "bug master" +#~ msgstr "feilrettingsansvarleg" + +# var: Automatisk avvising frå brukarar utanfor vennelista +#~ msgid "Automatically reject from users not in buddy list" +#~ msgstr "Automatisk avvising av brukarar utanfor vennelista" + #~ msgid "An error occurred on the in-band bytestream transfer\n" #~ msgstr "Overføringa av samtidsdatastraumen feila\n" diff -r a7397a3d67ef -r 626efe139f98 po/oc.po --- a/po/oc.po Sun Jan 09 23:32:10 2011 +0000 +++ b/po/oc.po Sat Feb 12 23:54:14 2011 +0000 @@ -12,13 +12,14 @@ # D'autres documents utiles peuvent être consultés sur lo projet de # traduction de GNOME. # http://wiki.traduc.org/gnomefr/ +# Éric Boumaour , 2011. # msgid "" msgstr "" "Project-Id-Version: Pidgin\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-12-19 13:34-0500\n" -"PO-Revision-Date: 2008-05-09 01:31+0200\n" +"POT-Creation-Date: 2011-02-02 23:34-0500\n" +"PO-Revision-Date: 2011-01-09 00:11+0100\n" "Last-Translator: Éric Boumaour \n" "Language-Team: fr \n" "Language: \n" @@ -63,7 +64,7 @@ msgstr "" msgid "Account was not added" -msgstr "" +msgstr "Compte pas apondut" msgid "Username of an account must be non-empty." msgstr "" @@ -89,17 +90,16 @@ msgstr "" msgid "Modify Account" -msgstr "" +msgstr "Modificar lo compte" msgid "New Account" -msgstr "" +msgstr "Compte novèl" msgid "Protocol:" msgstr "Protocòl :" -#, fuzzy msgid "Username:" -msgstr "_Nom d'utilizaire :" +msgstr "Nom d'utilizaire :" msgid "Password:" msgstr "Mot de pas :" @@ -126,7 +126,7 @@ msgstr "" msgid "Delete Account" -msgstr "" +msgstr "Suprimir lo compte" #. Delete button msgid "Delete" @@ -207,7 +207,7 @@ msgstr "" msgid "Add in group" -msgstr "" +msgstr "Apondre al grop" msgid "Account" msgstr "Compte" @@ -219,7 +219,7 @@ msgstr "" msgid "Chats" -msgstr "" +msgstr "Charradissas" #. Extract their Name and put it in msgid "Name" @@ -259,7 +259,7 @@ msgstr "" msgid "Edit" -msgstr "Edicion" +msgstr "Modificar" msgid "Edit Settings" msgstr "" @@ -277,10 +277,10 @@ msgstr "" msgid "Send File" -msgstr "_Enviar un fichièr" +msgstr "Mandar un fichièr" msgid "Blocked" -msgstr "" +msgstr "Blocat" msgid "Show when offline" msgstr "" @@ -344,19 +344,19 @@ msgstr "Novèl..." msgid "Saved..." -msgstr "" +msgstr "Enregistrats..." msgid "Plugins" msgstr "Ajustons" msgid "Block/Unblock" -msgstr "" +msgstr "Blocar/desblocar" msgid "Block" -msgstr "" +msgstr "Blocar" msgid "Unblock" -msgstr "" +msgstr "Desblocar" msgid "" "Please enter the username or alias of the person you would like to Block/" @@ -385,7 +385,7 @@ msgstr "" msgid "Join" -msgstr "" +msgstr "Jónher" msgid "" "Please enter the username or alias of the person whose log you would like to " @@ -400,7 +400,7 @@ msgstr "" msgid "Block/Unblock..." -msgstr "" +msgstr "Blocar/desblocar..." msgid "Join Chat..." msgstr "" @@ -418,7 +418,7 @@ msgstr "" msgid "Offline buddies" -msgstr "" +msgstr "Los contactes desconnectats" msgid "Sort" msgstr "Ordenar" @@ -436,7 +436,7 @@ msgstr "" msgid "Chat" -msgstr "Chad" +msgstr "Charradissa" msgid "Grouping" msgstr "" @@ -590,7 +590,7 @@ msgstr "" msgid "Conversation" -msgstr "" +msgstr "Charradissa" msgid "Clear Scrollback" msgstr "" @@ -601,9 +601,8 @@ msgid "Add Buddy Pounce..." msgstr "" -#, fuzzy msgid "Invite..." -msgstr "Convidar" +msgstr "Convidar..." msgid "Enable Logging" msgstr "" @@ -711,15 +710,15 @@ msgid "Pause" msgstr "Pausa" -#, fuzzy, c-format +#, c-format msgid "File Transfers - %d%% of %d file" msgid_plural "File Transfers - %d%% of %d files" -msgstr[0] "Transferriment de fichièrs" -msgstr[1] "Transferriment de fichièrs" +msgstr[0] "" +msgstr[1] "" #. Create the window. msgid "File Transfers" -msgstr "Transferriment de fichièrs" +msgstr "Transferiment de fichièrs" msgid "Progress" msgstr "Avançament" @@ -763,9 +762,8 @@ msgid "%.2f KiB/s" msgstr "%.2f ko/s" -#, fuzzy msgid "Sent" -msgstr "Definir" +msgstr "Mandat" msgid "Received" msgstr "" @@ -777,9 +775,8 @@ msgid "The file was saved as %s." msgstr "" -#, fuzzy msgid "Sending" -msgstr "Segondas" +msgstr "A mandar" msgid "Receiving" msgstr "" @@ -828,14 +825,13 @@ msgstr "" msgid "All Conversations" -msgstr "" +msgstr "Totas las charradissas" msgid "System Log" msgstr "" -#, fuzzy msgid "Calling..." -msgstr "A calcular..." +msgstr "" msgid "Hangup" msgstr "" @@ -910,9 +906,8 @@ #. XXX: The following expects that finch_notify_message gets called. This #. * may not always happen, e.g. when another plugin sets its own #. * notify_message. So tread carefully. -#, fuzzy msgid "URI" -msgstr "URL" +msgstr "URI" msgid "ERROR" msgstr "ERROR" @@ -1033,7 +1028,7 @@ msgstr "" msgid "Send a message" -msgstr "" +msgstr "Mandar un messatge" msgid "Execute a command" msgstr "" @@ -1167,7 +1162,7 @@ msgstr "" msgid "Open File..." -msgstr "" +msgstr "Dobrir un fichièr..." msgid "Choose Location..." msgstr "" @@ -1212,9 +1207,8 @@ msgid "Someone says your username in chat" msgstr "" -#, fuzzy msgid "Attention received" -msgstr "L'autentificacion a abocat" +msgstr "" msgid "GStreamer Failure" msgstr "" @@ -1311,7 +1305,7 @@ msgstr "Títol" msgid "Type" -msgstr "Tipe" +msgstr "Mena" #. Statuses are almost all the same. Define a macro to reduce code repetition. #. PurpleStatusPrimitive @@ -1482,9 +1476,8 @@ msgid "TinyURL (or other) address prefix" msgstr "" -#, fuzzy msgid "TinyURL" -msgstr "URL" +msgstr "TinyURL" msgid "TinyURL plugin" msgstr "" @@ -1503,7 +1496,7 @@ msgstr "" msgid "Offline Buddies" -msgstr "" +msgstr "Contactes desconnectats" msgid "Online/Offline" msgstr "" @@ -1598,7 +1591,7 @@ msgstr "Desconegut" msgid "Buddies" -msgstr "" +msgstr "Contactes" msgid "buddy list" msgstr "" @@ -1745,10 +1738,10 @@ msgstr "" msgid "Send Message" -msgstr "Enviar un messatge" +msgstr "Mandar un messatge" msgid "_Send Message" -msgstr "_Enviar un messatge" +msgstr "_Mandar un messatge" #, c-format msgid "%s entered the room." @@ -1774,9 +1767,8 @@ msgid "%s left the room (%s)." msgstr "" -#, fuzzy msgid "Invite to chat" -msgstr "Convidar" +msgstr "Convidar a una charradissa" #. Put our happy label in it. msgid "" @@ -1837,7 +1829,7 @@ msgstr "" msgid "Unknown reason" -msgstr "Rason desconeguda" +msgstr "" #, c-format msgid "" @@ -1926,9 +1918,9 @@ msgid "File transfer cancelled" msgstr "" -#, fuzzy, c-format +#, c-format msgid "%s cancelled the transfer of %s" -msgstr "%s a changé son état de %s en %s." +msgstr "" #, c-format msgid "%s cancelled the file transfer" @@ -2121,9 +2113,8 @@ msgid "Error with your webcam" msgstr "" -#, fuzzy msgid "Conference error" -msgstr "Error de connexion" +msgstr "" #, c-format msgid "Error creating session: %s" @@ -2189,13 +2180,13 @@ msgstr "" msgid "_Save" -msgstr "_Enregistrar" +msgstr "Enregi_strar" msgid "_Cancel" msgstr "_Anullar" msgid "Ask" -msgstr "" +msgstr "Demandar" msgid "Auto Accept" msgstr "" @@ -2212,7 +2203,9 @@ "(Please provide the full path)" msgstr "" -msgid "Automatically reject from users not in buddy list" +msgid "" +"When a file-transfer request arrives from a user who is\n" +"*not* on your buddy list:" msgstr "" msgid "" @@ -2223,6 +2216,9 @@ msgid "Create a new directory for each user" msgstr "" +msgid "Escape the filenames" +msgstr "" + msgid "Notes" msgstr "Nòtas" @@ -2462,7 +2458,7 @@ #. translators who wanted to transliterate them. Many translators #. choose to leave them alone. Choose what's best for your language. msgid "QIP" -msgstr "" +msgstr "QIP" #. The names of IM clients are marked for translation at the request of #. translators who wanted to transliterate them. Many translators @@ -2474,13 +2470,13 @@ #. translators who wanted to transliterate them. Many translators #. choose to leave them alone. Choose what's best for your language. msgid "Trillian" -msgstr "" +msgstr "Trillian" #. The names of IM clients are marked for translation at the request of #. translators who wanted to transliterate them. Many translators #. choose to leave them alone. Choose what's best for your language. msgid "aMSN" -msgstr "" +msgstr "aMSN" #. Add general preferences. msgid "General Log Reading Configuration" @@ -2573,7 +2569,7 @@ msgstr "" msgid "Offline Message" -msgstr "" +msgstr "Messatge desconnectat" msgid "You can edit/delete the pounce from the `Buddy Pounces' dialog" msgstr "" @@ -2590,9 +2586,8 @@ msgid "Do not ask. Always save in pounce." msgstr "" -#, fuzzy msgid "One Time Password" -msgstr "Picatz lo mot de pas" +msgstr "" #. *< type #. *< ui_requirement @@ -2700,7 +2695,7 @@ #. *< priority #. *< id msgid "GNUTLS" -msgstr "" +msgstr "GNUTLS" #. *< name #. *< version @@ -2716,7 +2711,7 @@ #. *< priority #. *< id msgid "NSS" -msgstr "" +msgstr "NSS" #. *< name #. *< version @@ -2851,7 +2846,7 @@ msgstr "" msgid "Bonjour" -msgstr "" +msgstr "Bonjour" #, c-format msgid "%s has closed the conversation." @@ -2908,9 +2903,8 @@ msgid "You must fill in all registration fields" msgstr "" -#, fuzzy msgid "Passwords do not match" -msgstr "Los mots de pas son pas los meteisses." +msgstr "Los mots de pas son pas los meteisses" msgid "Unable to register new account. An unknown error occurred." msgstr "" @@ -2930,9 +2924,8 @@ msgid "Enter captcha text" msgstr "" -#, fuzzy msgid "Captcha" -msgstr "Enregistrar l'imatge" +msgstr "Captcha" msgid "Register New Gadu-Gadu Account" msgstr "" @@ -3031,7 +3024,7 @@ msgstr "Absent(a)" msgid "UIN" -msgstr "" +msgstr "UIN" #. first name #. purple_notify_user_info_add_pair( info, _( "Hidden Number" ), profile->hidden ? _( "Yes" ) : _( "No" ) ); @@ -3088,9 +3081,9 @@ msgid "Chat _name:" msgstr "" -#, fuzzy, c-format +#, c-format msgid "Unable to resolve hostname '%s': %s" -msgstr "Impossible de dobrir le fichièr '%s' : %s" +msgstr "" #. 1. connect to server #. connect to the server @@ -3103,9 +3096,8 @@ msgid "This chat name is already in use" msgstr "" -#, fuzzy msgid "Not connected to the server" -msgstr "Connectat" +msgstr "Sètz pas connectat al servidor" msgid "Find buddies..." msgstr "" @@ -3146,9 +3138,8 @@ msgid "Gadu-Gadu User" msgstr "" -#, fuzzy msgid "GG server" -msgstr "Connectat" +msgstr "Servidor GG" #, c-format msgid "Unknown command: %s" @@ -3187,9 +3178,9 @@ #. #. TODO: what to do here - do we really have to disconnect? #. TODO: do we really want to disconnect on a failure to write? -#, fuzzy, c-format +#, c-format msgid "Lost connection with server: %s" -msgstr "Connectat" +msgstr "" msgid "View MOTD" msgstr "" @@ -3270,9 +3261,9 @@ msgid "Ban on %s by %s, set %s ago" msgstr "" -#, fuzzy, c-format +#, c-format msgid "Ban on %s" -msgstr "Rason : %s" +msgstr "" msgid "End of ban list" msgstr "" @@ -3289,10 +3280,10 @@ msgstr "" msgid " (ircop)" -msgstr "" +msgstr " (ircop)" msgid " (identified)" -msgstr "" +msgstr " (identificat)" msgid "Nick" msgstr "Escais" @@ -3400,9 +3391,8 @@ msgid "The nickname \"%s\" is already being used." msgstr "" -#, fuzzy msgid "Nickname in use" -msgstr "Escais" +msgstr "" msgid "Cannot change nick" msgstr "" @@ -3585,7 +3575,7 @@ msgstr "" msgid "PONG" -msgstr "" +msgstr "PONG" msgid "CTCP PING reply" msgstr "" @@ -3605,7 +3595,10 @@ msgid "Server requires plaintext authentication over an unencrypted stream" msgstr "" -#. This should never happen! +#. This happens when the server sends back jibberish +#. * in the "additional data with success" case. +#. * Seen with Wildfire 3.0.1. +#. msgid "Invalid response from server" msgstr "" @@ -3639,17 +3632,15 @@ "Allow this and continue authentication?" msgstr "" -#, fuzzy msgid "SASL authentication failed" -msgstr "L'autentificacion a abocat" +msgstr "" #, c-format msgid "SASL error: %s" msgstr "" -#, fuzzy msgid "Invalid Encoding" -msgstr "L'expression es pas valida" +msgstr "" msgid "Unsupported Extension" msgstr "" @@ -3673,16 +3664,14 @@ msgid "User not found" msgstr "Utilizaire pas trobat" -#, fuzzy msgid "Invalid Username Encoding" -msgstr "L'expression es pas valida" +msgstr "" msgid "Resource Constraint" msgstr "" -#, fuzzy msgid "Unable to canonicalize username" -msgstr "Activat" +msgstr "" msgid "Unable to canonicalize password" msgstr "" @@ -3705,9 +3694,9 @@ msgid "Unable to establish a connection with the server" msgstr "" -#, fuzzy, c-format +#, c-format msgid "Unable to establish a connection with the server: %s" -msgstr "Connectat" +msgstr "" msgid "Unable to establish SSL connection" msgstr "" @@ -3746,7 +3735,7 @@ #. purple_notify_user_info_add_pair( info, _( "Email" ), profile->email ); msgid "Country" -msgstr "País" +msgstr "Païs" #. lots of clients (including purple) do this, but it's #. * out of spec @@ -3782,14 +3771,13 @@ msgstr "" msgid "Client" -msgstr "" +msgstr "Client" msgid "Operating System" msgstr "Sistèma d'explotacion" -#, fuzzy msgid "Local Time" -msgstr "Fichièr local :" +msgstr "Ora locala" msgid "Priority" msgstr "Prioritat" @@ -3797,16 +3785,15 @@ msgid "Resource" msgstr "Ressorga" -#, fuzzy msgid "Uptime" -msgstr "Data" +msgstr "" msgid "Logged Off" msgstr "" #, c-format msgid "%s ago" -msgstr "" +msgstr "%s i a" msgid "Middle Name" msgstr "" @@ -3850,7 +3837,7 @@ msgstr "" msgid "Log In" -msgstr "" +msgstr "Connexion" msgid "Log Out" msgstr "Desconnectar" @@ -3860,7 +3847,7 @@ #. last name msgid "Last Name" -msgstr "Nom" +msgstr "" msgid "The following are the results of your search" msgstr "" @@ -3971,17 +3958,14 @@ msgid "Find Rooms" msgstr "" -#, fuzzy msgid "Affiliations:" -msgstr "Aliàs :" - -#, fuzzy +msgstr "" + msgid "No users found" -msgstr "Utilizaire pas trobat" - -#, fuzzy +msgstr "" + msgid "Roles:" -msgstr "Ròtle" +msgstr "Ròtles :" msgid "Server requires TLS/SSL, but no TLS/SSL support was found." msgstr "" @@ -3989,9 +3973,8 @@ msgid "You require encryption, but no TLS/SSL support was found." msgstr "" -#, fuzzy msgid "Ping timed out" -msgstr "Connectat" +msgstr "" msgid "Invalid XMPP ID" msgstr "" @@ -4030,7 +4013,7 @@ msgstr "" msgid "State" -msgstr "Estat" +msgstr "" msgid "Postal code" msgstr "" @@ -4058,7 +4041,7 @@ msgstr "" msgid "Register" -msgstr "Enregistrar" +msgstr "S'enregistrar" #, c-format msgid "Change Account Registration at %s" @@ -4111,7 +4094,7 @@ msgstr "De" msgid "To" -msgstr "A" +msgstr "Destinacion" msgid "None (To pending)" msgstr "" @@ -4129,13 +4112,11 @@ msgid "Allow Buzz" msgstr "" -#, fuzzy msgid "Mood Name" -msgstr "Nom de grop" - -#, fuzzy +msgstr "" + msgid "Mood Comment" -msgstr "Entresenhas" +msgstr "" #. primitive #. ID @@ -4407,9 +4388,8 @@ msgid "Unable to initiate media with %s: not subscribed to user presence" msgstr "" -#, fuzzy msgid "Media Initiation Failed" -msgstr "L'autentificacion a abocat" +msgstr "" #, c-format msgid "" @@ -4505,9 +4485,8 @@ msgid "Use old-style SSL" msgstr "" -#, fuzzy msgid "Connection security" -msgstr "Connexion perduda" +msgstr "" msgid "Allow plaintext auth over unencrypted streams" msgstr "" @@ -4525,7 +4504,7 @@ msgstr "" msgid "BOSH URL" -msgstr "" +msgstr "URL BOSH" #. this should probably be part of global smiley theme settings later on, #. shared with MSN @@ -4538,7 +4517,7 @@ #, c-format msgid "Message from %s" -msgstr "Messatge de %s" +msgstr "" #, c-format msgid "%s has set the topic to: %s" @@ -4596,9 +4575,8 @@ msgid "_Accept Defaults" msgstr "" -#, fuzzy msgid "No reason" -msgstr "Rason desconeguda" +msgstr "Pas de rason" #, c-format msgid "You have been kicked: (%s)" @@ -4634,23 +4612,20 @@ msgid "Please select the resource of %s to which you would like to send a file" msgstr "" -#, fuzzy msgid "Afraid" msgstr "Arab" -#, fuzzy msgid "Amazed" -msgstr "Animar" +msgstr "" msgid "Amorous" msgstr "" msgid "Angry" -msgstr "" - -#, fuzzy +msgstr "Encolerat" + msgid "Annoyed" -msgstr "Qual que siá" +msgstr "" msgid "Anxious" msgstr "" @@ -4664,73 +4639,59 @@ msgid "Bored" msgstr "" -#, fuzzy msgid "Brave" -msgstr "Enregistrar" - -#, fuzzy +msgstr "" + msgid "Calm" -msgstr "Anullar" +msgstr "" msgid "Cautious" msgstr "" -#, fuzzy msgid "Cold" -msgstr "Gras" - -#, fuzzy +msgstr "" + msgid "Confident" -msgstr "Se connectar" - -#, fuzzy +msgstr "" + msgid "Confused" -msgstr "Contunhar" - -#, fuzzy +msgstr "" + msgid "Contemplative" -msgstr "Se connectar" - -#, fuzzy +msgstr "" + msgid "Contented" -msgstr "Connectat" - -#, fuzzy +msgstr "" + msgid "Cranky" -msgstr "Entrepresa" +msgstr "" msgid "Crazy" msgstr "" -#, fuzzy msgid "Creative" -msgstr "Crear" +msgstr "" msgid "Curious" msgstr "" -#, fuzzy msgid "Dejected" -msgstr "executar" - -#, fuzzy +msgstr "" + msgid "Depressed" -msgstr "Suprimir" - -#, fuzzy +msgstr "" + msgid "Disappointed" -msgstr "_Desactivar" +msgstr "" msgid "Disgusted" msgstr "" -#, fuzzy msgid "Dismayed" -msgstr "_Desactivar" - -#, fuzzy +msgstr "" + msgid "Distracted" -msgstr "_Desactivar" +msgstr "" msgid "Embarrassed" msgstr "" @@ -4744,9 +4705,8 @@ msgid "Flirtatious" msgstr "" -#, fuzzy msgid "Frustrated" -msgstr "Pichon nom" +msgstr "" msgid "Grateful" msgstr "" @@ -4754,13 +4714,11 @@ msgid "Grieving" msgstr "" -#, fuzzy msgid "Grumpy" -msgstr "Grop" - -#, fuzzy +msgstr "" + msgid "Guilty" -msgstr "Ciutat" +msgstr "" msgid "Happy" msgstr "" @@ -4768,9 +4726,8 @@ msgid "Hopeful" msgstr "" -#, fuzzy msgid "Hot" -msgstr "_Òste :" +msgstr "Caud" msgid "Humbled" msgstr "" @@ -4778,9 +4735,8 @@ msgid "Humiliated" msgstr "" -#, fuzzy msgid "Hungry" -msgstr "Ongrés" +msgstr "" msgid "Hurt" msgstr "" @@ -4794,17 +4750,14 @@ msgid "In love" msgstr "" -#, fuzzy msgid "Indignant" -msgstr "Indonesian" - -#, fuzzy +msgstr "" + msgid "Interested" -msgstr "Interfaç" - -#, fuzzy +msgstr "Interessat" + msgid "Intoxicated" -msgstr "Convidar" +msgstr "" msgid "Invincible" msgstr "" @@ -4812,62 +4765,50 @@ msgid "Jealous" msgstr "" -#, fuzzy msgid "Lonely" -msgstr "Pas cap" - -#, fuzzy +msgstr "Sol" + msgid "Lost" -msgstr "_Òste :" +msgstr "Ò_ste :" msgid "Lucky" msgstr "" -#, fuzzy msgid "Mean" -msgstr "Aleman" - -#, fuzzy +msgstr "" + msgid "Moody" -msgstr "Modificar" +msgstr "" msgid "Nervous" msgstr "" -#, fuzzy msgid "Neutral" -msgstr "Defaut" - -#, fuzzy +msgstr "Neutre" + msgid "Offended" -msgstr "Desconnectat" +msgstr "" msgid "Outraged" msgstr "" -#, fuzzy msgid "Playful" -msgstr "Legir" - -#, fuzzy +msgstr "" + msgid "Proud" -msgstr "Grop" - -#, fuzzy +msgstr "" + msgid "Relaxed" -msgstr "Renommar" - -#, fuzzy +msgstr "" + msgid "Relieved" -msgstr "Suprimir" - -#, fuzzy +msgstr "" + msgid "Remorseful" -msgstr "Suprimir" - -#, fuzzy +msgstr "" + msgid "Restless" -msgstr "Enregistrar" +msgstr "" msgid "Sad" msgstr "" @@ -4878,9 +4819,8 @@ msgid "Satisfied" msgstr "" -#, fuzzy msgid "Serious" -msgstr "Sons" +msgstr "" msgid "Shocked" msgstr "" @@ -4888,9 +4828,8 @@ msgid "Shy" msgstr "" -#, fuzzy msgid "Sick" -msgstr "Escais" +msgstr "Malaut" #. Sleepy / Tired msgid "Sleepy" @@ -4899,13 +4838,11 @@ msgid "Spontaneous" msgstr "" -#, fuzzy msgid "Stressed" -msgstr "Velocitat :" - -#, fuzzy +msgstr "" + msgid "Strong" -msgstr "Arrestar" +msgstr "" msgid "Surprised" msgstr "" @@ -4916,13 +4853,11 @@ msgid "Thirsty" msgstr "" -#, fuzzy msgid "Tired" -msgstr "Firebird" - -#, fuzzy +msgstr "Las" + msgid "Undefined" -msgstr "Soslinhat" +msgstr "" msgid "Weak" msgstr "" @@ -4984,9 +4919,8 @@ msgid "Already logged in" msgstr "" -#, fuzzy msgid "Invalid username" -msgstr "L'expression es pas valida" +msgstr "" msgid "Invalid friendly name" msgstr "" @@ -5190,9 +5124,8 @@ msgid "Nudging %s..." msgstr "" -#, fuzzy msgid "Email Address..." -msgstr "Adreça electronica" +msgstr "Adreça electronica..." msgid "Your new MSN friendly name is too long." msgstr "" @@ -5201,23 +5134,20 @@ msgid "Set friendly name for %s." msgstr "" -#, fuzzy msgid "Set Friendly Name" -msgstr "Nom d'ostal" +msgstr "" msgid "This is the name that other MSN buddies will see you as." msgstr "" -#, fuzzy msgid "This Location" -msgstr "Emplaçament" +msgstr "" msgid "This is the name that identifies this location" msgstr "" -#, fuzzy msgid "Other Locations" -msgstr "Emplaçament" +msgstr "Autres emplaçaments" msgid "You can sign out from other locations here" msgstr "" @@ -5286,9 +5216,8 @@ msgid "Playing a game" msgstr "" -#, fuzzy msgid "Working" -msgstr "Professional" +msgstr "" msgid "Has you" msgstr "" @@ -5314,9 +5243,8 @@ msgid "Out to Lunch" msgstr "" -#, fuzzy msgid "Game Title" -msgstr "Títol" +msgstr "" msgid "Office Title" msgstr "" @@ -5324,9 +5252,8 @@ msgid "Set Friendly Name..." msgstr "" -#, fuzzy msgid "View Locations..." -msgstr "Emplaçament" +msgstr "" msgid "Set Home Phone Number..." msgstr "" @@ -5364,9 +5291,8 @@ "be valid email addresses." msgstr "" -#, fuzzy msgid "Unable to Add" -msgstr "Activat" +msgstr "" msgid "Authorization Request Message:" msgstr "" @@ -5435,7 +5361,7 @@ msgstr "" msgid "Personal" -msgstr "Terminal" +msgstr "Personal" msgid "Significant Other" msgstr "" @@ -5466,7 +5392,7 @@ #. Business msgid "Work" -msgstr "Professional" +msgstr "" msgid "Company" msgstr "Entrepresa" @@ -5569,9 +5495,9 @@ msgid "The following users are missing from your addressbook" msgstr "" -#, fuzzy, c-format +#, c-format msgid "Unknown error (%d): %s" -msgstr "Error desconeguda" +msgstr "" msgid "Unable to add user" msgstr "" @@ -5581,9 +5507,8 @@ msgid "Unknown error (%d)" msgstr "" -#, fuzzy msgid "Unable to remove user" -msgstr "Activat" +msgstr "" msgid "Mobile message was not sent because it was too long." msgstr "" @@ -5735,9 +5660,8 @@ msgid "The PIN is invalid. It should only consist of digits [0-9]." msgstr "" -#, fuzzy msgid "The two PINs you entered do not match." -msgstr "Los mots de pas son pas los meteisses." +msgstr "" msgid "The Display Name you entered is invalid." msgstr "" @@ -5771,16 +5695,14 @@ #. display name #. nick name (required) -#, fuzzy msgid "Display Name" -msgstr "Nom d'ostal" +msgstr "" #. hidden msgid "Hide my number" msgstr "" #. mobile number -#, fuzzy msgid "Mobile Number" msgstr "Telefòn mobil" @@ -5796,9 +5718,8 @@ msgid "There is no splash-screen currently available" msgstr "" -#, fuzzy msgid "About" -msgstr "A prepaus de %s" +msgstr "A prepaus" #. display / change profile msgid "Change Profile..." @@ -5809,9 +5730,8 @@ msgstr "" #. display plugin version -#, fuzzy msgid "About..." -msgstr "A prepaus de %s" +msgstr "A prepaus..." #. the file is too big msgid "The file you are trying to send is too large!" @@ -5828,9 +5748,8 @@ "Unable to connect to the MXit server. Please check your server settings." msgstr "" -#, fuzzy msgid "Connecting..." -msgstr "Connexion" +msgstr "Connexion..." msgid "The PIN you entered has an invalid length [7-10]." msgstr "" @@ -5881,59 +5800,23 @@ msgstr "" #. ask for input (required) -#, fuzzy msgid "Enter Security Code" -msgstr "Picatz lo mot de pas" - -#, fuzzy +msgstr "" + msgid "Your Country" -msgstr "País" +msgstr "Vòstre païs" msgid "Your Language" msgstr "" #. display the form to the user and wait for his/her input -#, fuzzy msgid "MXit Authorization" -msgstr "Autorizar" +msgstr "" msgid "MXit account validation" msgstr "" -#, fuzzy msgid "Retrieving User Information..." -msgstr "Entresenhas sul servidor" - -msgid "Loading menu..." -msgstr "" - -#, fuzzy -msgid "Status Message" -msgstr "Messatges enviats" - -#, fuzzy -msgid "Rejection Message" -msgstr "Enviar un messatge" - -#. hidden number -#, fuzzy -msgid "Hidden Number" -msgstr "L'expression es pas valida" - -msgid "Your MXit ID..." -msgstr "" - -#. Configuration options -#. WAP server (reference: "libpurple/accountopt.h") -#, fuzzy -msgid "WAP Server" -msgstr "Servidor" - -#, fuzzy -msgid "Connect via HTTP" -msgstr "Se connectar" - -msgid "Enable splash-screen popup" msgstr "" #. you were kicked @@ -5943,7 +5826,6 @@ msgid "was kicked" msgstr "" -#, fuzzy msgid "_Room Name:" msgstr "_Sala :" @@ -5951,18 +5833,43 @@ msgid "You have invited" msgstr "" -#, fuzzy +msgid "Loading menu..." +msgstr "" + +msgid "Status Message" +msgstr "" + +msgid "Rejection Message" +msgstr "" + +#. hidden number +msgid "Hidden Number" +msgstr "" + +msgid "Your MXit ID..." +msgstr "" + +#. Configuration options +#. WAP server (reference: "libpurple/accountopt.h") +msgid "WAP Server" +msgstr "Servidor WAP" + +msgid "Connect via HTTP" +msgstr "" + +msgid "Enable splash-screen popup" +msgstr "" + msgid "Last Online" -msgstr "En linha" +msgstr "" #. we must have lost the connection, so terminate it so that we can reconnect msgid "We have lost the connection to MXit. Please reconnect." msgstr "" #. packet could not be queued for transmission -#, fuzzy msgid "Message Send Error" -msgstr "Messatge de %s" +msgstr "" msgid "Unable to process your request at this time" msgstr "" @@ -5970,18 +5877,16 @@ msgid "Timeout while waiting for a response from the MXit server." msgstr "" -#, fuzzy msgid "Successfully Logged In..." -msgstr "Entresenhas sus l'utilizaire" +msgstr "" #, c-format msgid "" "%s sent you an encrypted message, but it is not supported on this client." msgstr "" -#, fuzzy msgid "Message Error" -msgstr "Messatge de %s" +msgstr "" msgid "Cannot perform redirect using the specified protocol" msgstr "" @@ -5997,38 +5902,30 @@ msgid "Logout error: %s (%i)" msgstr "" -#, fuzzy msgid "Contact Error" -msgstr "Error de connexion" +msgstr "" msgid "Message Sending Error" msgstr "" -#, fuzzy msgid "Status Error" -msgstr "Estatut" - -#, fuzzy +msgstr "" + msgid "Mood Error" -msgstr "Error" - -#, fuzzy +msgstr "" + msgid "Invitation Error" -msgstr "Error de connexion" - -#, fuzzy +msgstr "" + msgid "Contact Removal Error" -msgstr "Error de connexion" - -#, fuzzy +msgstr "" + msgid "Subscription Error" -msgstr "Error de connexion" - -#, fuzzy +msgstr "" + msgid "Contact Update Error" -msgstr "Error de connexion" - -#, fuzzy +msgstr "" + msgid "File Transfer Error" msgstr "Transferiment de fichièr" @@ -6038,9 +5935,8 @@ msgid "MultiMx Invitation Error" msgstr "" -#, fuzzy msgid "Profile Error" -msgstr "Perfil" +msgstr "Error de perfil" #. bad packet msgid "Invalid packet received from MXit." @@ -6072,28 +5968,23 @@ msgid "In Love" msgstr "" -#, fuzzy msgid "Pending" -msgstr "Segondas" - -#, fuzzy +msgstr "" + msgid "Invited" -msgstr "Convidar" - -#, fuzzy +msgstr "Convidat" + msgid "Rejected" -msgstr "executar" - -#, fuzzy +msgstr "" + msgid "Deleted" -msgstr "Suprimir" +msgstr "Suprimit" msgid "MXit Advertising" msgstr "" -#, fuzzy msgid "More Information" -msgstr "Entresenhas" +msgstr "" #, c-format msgid "No such user: %s" @@ -6120,9 +6011,8 @@ msgid "Would you like to set one now? (Note: THIS CANNOT BE CHANGED!)" msgstr "" -#, fuzzy msgid "Lost connection with server" -msgstr "Connectat" +msgstr "" #. Can't write _()'d strings in array initializers. Workaround. #. khc: then use N_() in the array initializer and use _() when they are @@ -6143,7 +6033,7 @@ msgstr "" msgid "MySpace" -msgstr "" +msgstr "MySpace" msgid "IM Friends" msgstr "" @@ -6254,7 +6144,7 @@ msgstr "" msgid "Song" -msgstr "" +msgstr "Cançon" msgid "Total Friends" msgstr "" @@ -6519,9 +6409,9 @@ msgid "Unknown error: 0x%X" msgstr "" -#, fuzzy, c-format +#, c-format msgid "Unable to login: %s" -msgstr "Activat" +msgstr "" #, c-format msgid "Unable to send message. Could not get details for user (%s)." @@ -6769,43 +6659,39 @@ msgid "Bot account reached monthly IM limit" msgstr "" -#, fuzzy msgid "Unable to receive offline messages" -msgstr "Impossible de dobrir le fichièr '%s' : %s" +msgstr "" msgid "Offline message store full" msgstr "" -#, fuzzy, c-format +#, c-format msgid "Unable to send message: %s (%s)" -msgstr "Impossible de dobrir le fichièr '%s' : %s" +msgstr "" #, c-format msgid "Unable to send message: %s" msgstr "" -#, fuzzy, c-format +#, c-format msgid "Unable to send message to %s: %s (%s)" -msgstr "Impossible de dobrir le fichièr '%s' : %s" - -#, fuzzy, c-format +msgstr "" + +#, c-format msgid "Unable to send message to %s: %s" -msgstr "Impossible de dobrir le fichièr '%s' : %s" +msgstr "" msgid "Thinking" msgstr "" -#, fuzzy msgid "Shopping" -msgstr "S'arrèsta de picar" - -#, fuzzy +msgstr "" + msgid "Questioning" -msgstr "Estonian" - -#, fuzzy +msgstr "" + msgid "Eating" -msgstr "Alèrta" +msgstr "A manjar" msgid "Watching a movie" msgstr "" @@ -6825,9 +6711,8 @@ msgid "Having fun" msgstr "" -#, fuzzy msgid "Sleeping" -msgstr "Segondas" +msgstr "A dormir" msgid "Using a PDA" msgstr "" @@ -6855,39 +6740,33 @@ msgstr "" #. Playing video games -#, fuzzy msgid "Gaming" -msgstr "Alèrta" +msgstr "" msgid "Browsing the web" msgstr "" -#, fuzzy msgid "Smoking" -msgstr "Professional" - -#, fuzzy +msgstr "" + msgid "Writing" -msgstr "Professional" +msgstr "" #. Drinking [Alcohol] -#, fuzzy msgid "Drinking" -msgstr "Professional" +msgstr "" msgid "Listening to music" msgstr "" -#, fuzzy msgid "Studying" -msgstr "Segondas" +msgstr "A estudiar" msgid "In the restroom" msgstr "" -#, fuzzy msgid "Received invalid data on connection with server" -msgstr "Connectat" +msgstr "" #. *< type #. *< ui_requirement @@ -6965,21 +6844,17 @@ msgid "Invisible" msgstr "Invisible" -#, fuzzy msgid "Evil" -msgstr "Corrièl" - -#, fuzzy +msgstr "" + msgid "Depression" -msgstr "Mèstier" - -#, fuzzy +msgstr "" + msgid "At home" -msgstr "A prepaus de %s" - -#, fuzzy +msgstr "A l'ostal" + msgid "At work" -msgstr "Ret" +msgstr "Al trabalh" msgid "At lunch" msgstr "" @@ -7307,7 +7182,7 @@ msgstr "" msgid "(no name)" -msgstr "" +msgstr "(pas de nom)" #, c-format msgid "Unable to add the buddy %s for an unknown reason." @@ -7350,9 +7225,8 @@ msgid "iTunes Music Store Link" msgstr "" -#, fuzzy msgid "Lunch" -msgstr "Finch" +msgstr "" #, c-format msgid "Buddy Comment for %s" @@ -7383,9 +7257,8 @@ msgid "Edit Buddy Comment" msgstr "" -#, fuzzy msgid "Get X-Status Msg" -msgstr "Messatges enviats" +msgstr "" msgid "End Direct IM Session" msgstr "" @@ -7451,17 +7324,15 @@ msgid "Set Privacy Options..." msgstr "" -#, fuzzy msgid "Show Visible List" -msgstr "Tièra de contactes" - -#, fuzzy +msgstr "" + msgid "Show Invisible List" -msgstr "Invisible" +msgstr "" #. AIM actions msgid "Confirm Account" -msgstr "" +msgstr "Confirmar lo compte" msgid "Display Currently Registered Email Address" msgstr "" @@ -7511,6 +7382,124 @@ "considered a privacy risk." msgstr "" +#. Label +msgid "Buddy Icon" +msgstr "" + +msgid "Voice" +msgstr "Votz" + +msgid "AIM Direct IM" +msgstr "" + +msgid "Get File" +msgstr "" + +msgid "Games" +msgstr "Jòcs" + +msgid "ICQ Xtraz" +msgstr "" + +msgid "Add-Ins" +msgstr "" + +msgid "Send Buddy List" +msgstr "" + +msgid "ICQ Direct Connect" +msgstr "" + +msgid "AP User" +msgstr "" + +msgid "ICQ RTF" +msgstr "" + +msgid "Nihilist" +msgstr "" + +msgid "ICQ Server Relay" +msgstr "" + +msgid "Old ICQ UTF8" +msgstr "" + +msgid "Trillian Encryption" +msgstr "" + +msgid "ICQ UTF8" +msgstr "" + +msgid "Hiptop" +msgstr "" + +msgid "Security Enabled" +msgstr "" + +msgid "Video Chat" +msgstr "" + +msgid "iChat AV" +msgstr "" + +msgid "Live Video" +msgstr "" + +msgid "Camera" +msgstr "Aparelh de fotografiar" + +msgid "Screen Sharing" +msgstr "Nom d'utilisateur" + +msgid "IP Address" +msgstr "Adreça IP" + +msgid "Warning Level" +msgstr "" + +msgid "Buddy Comment" +msgstr "" + +#, c-format +msgid "User information not available: %s" +msgstr "" + +msgid "Mobile Phone" +msgstr "Telefòn mobil" + +msgid "Personal Web Page" +msgstr "" + +#. aim_userinfo_t +#. use_html_status +msgid "Additional Information" +msgstr "Entresenhas suplementàrias" + +msgid "Zip Code" +msgstr "Còdi postal" + +msgid "Work Information" +msgstr "" + +msgid "Division" +msgstr "Division" + +msgid "Position" +msgstr "Posicion" + +msgid "Web Page" +msgstr "Pagina web" + +msgid "Online Since" +msgstr "" + +msgid "Member Since" +msgstr "" + +msgid "Capabilities" +msgstr "" + msgid "Invalid SNAC" msgstr "" @@ -7580,125 +7569,6 @@ msgid "Not while on AOL" msgstr "" -#. Label -msgid "Buddy Icon" -msgstr "" - -msgid "Voice" -msgstr "Votz" - -msgid "AIM Direct IM" -msgstr "" - -msgid "Get File" -msgstr "" - -msgid "Games" -msgstr "Jòcs" - -msgid "ICQ Xtraz" -msgstr "" - -msgid "Add-Ins" -msgstr "" - -msgid "Send Buddy List" -msgstr "" - -msgid "ICQ Direct Connect" -msgstr "" - -msgid "AP User" -msgstr "" - -msgid "ICQ RTF" -msgstr "" - -msgid "Nihilist" -msgstr "" - -msgid "ICQ Server Relay" -msgstr "" - -msgid "Old ICQ UTF8" -msgstr "" - -msgid "Trillian Encryption" -msgstr "" - -msgid "ICQ UTF8" -msgstr "" - -msgid "Hiptop" -msgstr "" - -msgid "Security Enabled" -msgstr "" - -msgid "Video Chat" -msgstr "" - -msgid "iChat AV" -msgstr "" - -msgid "Live Video" -msgstr "" - -msgid "Camera" -msgstr "Aparelh de fotografiar" - -#, fuzzy -msgid "Screen Sharing" -msgstr "Nom d'utilisateur" - -msgid "IP Address" -msgstr "Adreça IP" - -msgid "Warning Level" -msgstr "" - -msgid "Buddy Comment" -msgstr "" - -#, c-format -msgid "User information not available: %s" -msgstr "" - -msgid "Mobile Phone" -msgstr "Telefòn mobil" - -msgid "Personal Web Page" -msgstr "" - -#. aim_userinfo_t -#. use_html_status -msgid "Additional Information" -msgstr "Entresenhas suplementàrias" - -msgid "Zip Code" -msgstr "Còdi postal" - -msgid "Work Information" -msgstr "" - -msgid "Division" -msgstr "Division" - -msgid "Position" -msgstr "Posicion" - -msgid "Web Page" -msgstr "Pagina web" - -msgid "Online Since" -msgstr "" - -msgid "Member Since" -msgstr "" - -msgid "Capabilities" -msgstr "" - #. Translators: This string is a menu option that, if selected, will cause #. you to appear online to the chosen user even when your status is set to #. Invisible. @@ -7733,16 +7603,14 @@ "\"" msgstr "" -#, fuzzy msgid "Visible List" -msgstr "Invisible" +msgstr "Tièra visibla" msgid "These buddies will see your status when you switch to \"Invisible\"" msgstr "" -#, fuzzy msgid "Invisible List" -msgstr "Invisible" +msgstr "Tièra invisibla" msgid "These buddies will always see you as offline" msgstr "" @@ -7796,7 +7664,7 @@ msgstr "" msgid "Dragon" -msgstr "" +msgstr "Dragon" msgid "Snake" msgstr "" @@ -7805,36 +7673,34 @@ msgstr "" msgid "Goat" -msgstr "" +msgstr "Cabra" msgid "Monkey" -msgstr "" +msgstr "Monin" msgid "Rooster" msgstr "" msgid "Dog" -msgstr "" +msgstr "Can" msgid "Pig" -msgstr "" +msgstr "Tesson" msgid "Other" msgstr "Autre" -#, fuzzy msgid "Visible" -msgstr "Invisible" +msgstr "Visible" msgid "Friend Only" msgstr "" -#, fuzzy msgid "Private" -msgstr "Crear" +msgstr "Privat" msgid "QQ Number" -msgstr "" +msgstr "Numèro QQ" msgid "Country/Region" msgstr "" @@ -7848,9 +7714,8 @@ msgid "Phone Number" msgstr "" -#, fuzzy msgid "Authorize adding" -msgstr "Autorizar" +msgstr "" msgid "Cellphone Number" msgstr "" @@ -7858,7 +7723,6 @@ msgid "Personal Introduction" msgstr "" -#, fuzzy msgid "City/Area" msgstr "Ciutat" @@ -7874,67 +7738,54 @@ msgid "Horoscope" msgstr "" -#, fuzzy msgid "Zodiac" msgstr "Signe del zodiac" -#, fuzzy msgid "Blood" -msgstr "Gras" +msgstr "" msgid "True" -msgstr "" - -#, fuzzy +msgstr "Verai" + msgid "False" -msgstr "Error" - -#, fuzzy +msgstr "Fals" + msgid "Modify Contact" -msgstr "Entresenhas" - -#, fuzzy +msgstr "" + msgid "Modify Address" -msgstr "Adreça personala" - -#, fuzzy +msgstr "Modificar l'adreça" + msgid "Modify Extended Information" -msgstr "Entresenhas" - -#, fuzzy +msgstr "" + msgid "Modify Information" -msgstr "Entresenhas" - -#, fuzzy +msgstr "" + msgid "Update" -msgstr "Data" - -#, fuzzy +msgstr "" + msgid "Could not change buddy information." -msgstr "Entresenhas sus l'utilizaire" +msgstr "" msgid "Note" msgstr "Nòta" #. callback -#, fuzzy msgid "Buddy Memo" -msgstr "Tièra de contactes" +msgstr "" msgid "Change his/her memo as you like" msgstr "" -#, fuzzy msgid "_Modify" -msgstr "Modificar" - -#, fuzzy +msgstr "_Modificar" + msgid "Memo Modify" -msgstr "Modificar" - -#, fuzzy +msgstr "" + msgid "Server says:" -msgstr "_Servidor :" +msgstr "" msgid "Your request was accepted." msgstr "" @@ -7946,20 +7797,17 @@ msgid "%u requires verification: %s" msgstr "" -#, fuzzy msgid "Add buddy question" -msgstr "Autorizar" - -#, fuzzy +msgstr "" + msgid "Enter answer here" -msgstr "Picatz lo mot de pas" +msgstr "" msgid "Send" -msgstr "Segondas" - -#, fuzzy +msgstr "Mandar" + msgid "Invalid answer." -msgstr "L'expression es pas valida" +msgstr "" msgid "Authorization denied message:" msgstr "" @@ -7971,9 +7819,8 @@ msgid "%u needs authorization" msgstr "" -#, fuzzy msgid "Add buddy authorize" -msgstr "Autorizar" +msgstr "" msgid "Enter request here" msgstr "" @@ -7981,17 +7828,14 @@ msgid "Would you be my friend?" msgstr "" -#, fuzzy msgid "QQ Buddy" -msgstr "Apondre lo contacte" - -#, fuzzy +msgstr "" + msgid "Add buddy" -msgstr "Apondre lo contacte" - -#, fuzzy +msgstr "Apondre un contacte" + msgid "Invalid QQ Number" -msgstr "L'expression es pas valida" +msgstr "" msgid "Failed sending authorize" msgstr "" @@ -8021,7 +7865,7 @@ #, c-format msgid "Message: %s" -msgstr "" +msgstr "Messatge : %s" msgid "ID: " msgstr "" @@ -8030,7 +7874,7 @@ msgstr "" msgid "QQ Qun" -msgstr "" +msgstr "QQ Qun" msgid "Please enter Qun number" msgstr "" @@ -8054,28 +7898,23 @@ msgstr "" #. XXX: Should this be "Topic"? -#, fuzzy msgid "Room Title" -msgstr "Títol" - -#, fuzzy +msgstr "" + msgid "Notice" -msgstr "Nòta" - -#, fuzzy +msgstr "" + msgid "Detail" -msgstr "Defaut" +msgstr "" msgid "Creator" msgstr "Creator" -#, fuzzy msgid "About me" -msgstr "A prepaus de %s" - -#, fuzzy +msgstr "A prepaus de ieu" + msgid "Category" -msgstr "Creator" +msgstr "Categoria" msgid "The Qun does not allow others to join" msgstr "" @@ -8086,9 +7925,9 @@ msgid "Input request here" msgstr "" -#, fuzzy, c-format +#, c-format msgid "Successfully joined Qun %s (%u)" -msgstr "Entresenhas sus l'utilizaire" +msgstr "" msgid "Successfully joined Qun" msgstr "" @@ -8100,16 +7939,14 @@ msgid "QQ Qun Operation" msgstr "" -#, fuzzy msgid "Failed:" -msgstr "Error" +msgstr "" msgid "Join Qun, Unknown Reply" msgstr "" -#, fuzzy msgid "Quit Qun" -msgstr "Quitar" +msgstr "" msgid "" "Note, if you are the creator, \n" @@ -8119,13 +7956,11 @@ msgid "Sorry, you are not our style" msgstr "" -#, fuzzy msgid "Successfully changed Qun members" -msgstr "Entresenhas sus l'utilizaire" - -#, fuzzy +msgstr "" + msgid "Successfully changed Qun information" -msgstr "Entresenhas sus l'utilizaire" +msgstr "" msgid "You have successfully created a Qun" msgstr "" @@ -8152,13 +7987,13 @@ msgid "Joining Qun %u is approved by admin %u for %s" msgstr "" -#, fuzzy, c-format +#, c-format msgid "Removed buddy %u." -msgstr "Suprimir un contacte" - -#, fuzzy, c-format +msgstr "" + +#, c-format msgid "New buddy %u joined." -msgstr "Suprimir un contacte" +msgstr "" #, c-format msgid "Unknown-%d" @@ -8168,7 +8003,7 @@ msgstr "Nivèl" msgid " VIP" -msgstr "" +msgstr " VIP" msgid " TCP" msgstr "" @@ -8180,9 +8015,8 @@ msgstr "" msgid " Video" -msgstr "" - -#, fuzzy +msgstr " Vidèo" + msgid " Zone" msgstr "Pas cap" @@ -8193,11 +8027,10 @@ msgstr "" msgid "Invalid name" -msgstr "L'expression es pas valida" - -#, fuzzy +msgstr "" + msgid "Select icon..." -msgstr "Seleccionar una poliça" +msgstr "" #, c-format msgid "Login time: %d-%d-%d, %d:%d:%d
\n" @@ -8253,7 +8086,7 @@ #, c-format msgid "IP: %s
\n" -msgstr "" +msgstr "IP : %s
\n" msgid "Login Information" msgstr "" @@ -8282,31 +8115,27 @@ msgid "Feel free to join us! :)" msgstr "" -#, fuzzy, c-format +#, c-format msgid "About OpenQ %s" -msgstr "A prepaus de %s" - -#, fuzzy +msgstr "A prepaus d'OpenQ %s" + msgid "Change Icon" -msgstr "Modificar lo mot de pas" +msgstr "" msgid "Change Password" msgstr "Modificar lo mot de pas" -#, fuzzy msgid "Account Information" -msgstr "Entresenhas" +msgstr "Entresenhas sul compte" msgid "Update all QQ Quns" msgstr "" -#, fuzzy msgid "About OpenQ" -msgstr "A prepaus de %s" - -#, fuzzy +msgstr "A prepaus d'OpenQ" + msgid "Modify Buddy Memo" -msgstr "Adreça personala" +msgstr "" #. *< type #. *< ui_requirement @@ -8318,34 +8147,29 @@ #. *< version #. * summary #. * description -#, fuzzy msgid "QQ Protocol Plugin" -msgstr "Protocòl" - -#, fuzzy +msgstr "" + msgid "Auto" -msgstr "Autor" - -#, fuzzy +msgstr "Auto" + msgid "Select Server" -msgstr "Seleccionar un utilizaire" - -msgid "QQ2005" -msgstr "" - -msgid "QQ2007" msgstr "" msgid "QQ2008" -msgstr "" - -#, fuzzy +msgstr "QQ2008" + +msgid "QQ2007" +msgstr "QQ2007" + +msgid "QQ2005" +msgstr "QQ2005" + msgid "Connect by TCP" -msgstr "Se connectar" - -#, fuzzy +msgstr "" + msgid "Show server notice" -msgstr "Entresenhas sul servidor" +msgstr "" msgid "Show server news" msgstr "" @@ -8356,9 +8180,8 @@ msgid "Keep alive interval (seconds)" msgstr "" -#, fuzzy msgid "Update interval (seconds)" -msgstr "Entresenhas sus l'utilizaire" +msgstr "" msgid "Unable to decrypt server reply" msgstr "" @@ -8367,9 +8190,9 @@ msgid "Failed requesting token, 0x%02X" msgstr "" -#, fuzzy, c-format +#, c-format msgid "Invalid token len, %d" -msgstr "L'expression es pas valida" +msgstr "" #. extend redirect used in QQ2006 msgid "Redirect_EX is not currently supported" @@ -8378,9 +8201,8 @@ #. need activation #. need activation #. need activation -#, fuzzy msgid "Activation required" -msgstr "L'autentificacion a abocat" +msgstr "L'activacion a abocat" #, c-format msgid "Unknown reply code when logging in (0x%02X)" @@ -8395,13 +8217,11 @@ msgid "Failed captcha verification" msgstr "" -#, fuzzy msgid "Captcha Image" -msgstr "Enregistrar l'imatge" - -#, fuzzy +msgstr "" + msgid "Enter code" -msgstr "Picatz lo mot de pas" +msgstr "" msgid "QQ Captcha Verification" msgstr "" @@ -8422,9 +8242,8 @@ msgid "Socket error" msgstr "" -#, fuzzy msgid "Getting server" -msgstr "Connectat" +msgstr "" msgid "Requesting token" msgstr "" @@ -8432,33 +8251,30 @@ msgid "Unable to resolve hostname" msgstr "" -#, fuzzy msgid "Invalid server or port" -msgstr "L'expression es pas valida" - -#, fuzzy +msgstr "" + msgid "Connecting to server" -msgstr "Connectat" - -#, fuzzy +msgstr "Connexion al servidor" + msgid "QQ Error" -msgstr "Error" - -#, fuzzy, c-format +msgstr "Error QQ" + +#, c-format msgid "" "Server News:\n" "%s\n" "%s\n" "%s" -msgstr "Servidor" - -#, fuzzy, c-format +msgstr "" + +#, c-format msgid "%s:%s" -msgstr "%s (%s)" - -#, fuzzy, c-format +msgstr "%s:%s" + +#, c-format msgid "From %s:" -msgstr "De" +msgstr "De %s :" #, c-format msgid "" @@ -8466,9 +8282,8 @@ "%s" msgstr "" -#, fuzzy msgid "Unknown SERVER CMD" -msgstr "Rason desconeguda" +msgstr "" #, c-format msgid "" @@ -8476,20 +8291,17 @@ "Room %u, reply 0x%02X" msgstr "" -#, fuzzy msgid "QQ Qun Command" -msgstr "Comanda" +msgstr "" msgid "Unable to decrypt login reply" msgstr "" -#, fuzzy msgid "Unknown LOGIN CMD" -msgstr "Rason desconeguda" - -#, fuzzy +msgstr "" + msgid "Unknown CLIENT CMD" -msgstr "Rason desconeguda" +msgstr "" #, c-format msgid "%d has declined the file %s" @@ -8674,7 +8486,7 @@ msgstr "" msgid "Select User" -msgstr "Seleccionar un utilizaire" +msgstr "Causir l'utilizaire" msgid "Unable to add user: user not found" msgstr "" @@ -9209,7 +9021,7 @@ msgstr "" msgid "Personal Information" -msgstr "Entresenhas personalas" +msgstr "" msgid "Birth Day" msgstr "" @@ -9308,7 +9120,7 @@ msgstr "" msgid "Ping" -msgstr "Ajuston" +msgstr "Ping" msgid "Ping failed" msgstr "" @@ -9367,9 +9179,8 @@ msgid "Disconnected by server" msgstr "" -#, fuzzy msgid "Error connecting to SILC Server" -msgstr "Connectat" +msgstr "" msgid "Key Exchange failed" msgstr "" @@ -9417,7 +9228,7 @@ msgstr "SMS" msgid "MMS" -msgstr "" +msgstr "MMS" msgid "Video conferencing" msgstr "" @@ -9642,7 +9453,7 @@ msgstr "" msgid "HMAC" -msgstr "" +msgstr "HMAC" msgid "Use Perfect Forward Secrecy" msgstr "" @@ -9693,7 +9504,7 @@ #, c-format msgid "Country: \t%s\n" -msgstr "" +msgstr "Païs : \t%s\n" #, c-format msgid "Algorithm: \t%s\n" @@ -9705,7 +9516,7 @@ #, c-format msgid "Version: \t%s\n" -msgstr "" +msgstr "Version : \t%s\n" #, c-format msgid "" @@ -9810,9 +9621,8 @@ msgid "Unable to create connection" msgstr "" -#, fuzzy msgid "Unknown server response" -msgstr "Rason desconeguda" +msgstr "" msgid "Unable to create listen socket" msgstr "" @@ -9820,9 +9630,8 @@ msgid "SIP usernames may not contain whitespaces or @ symbols" msgstr "" -#, fuzzy msgid "SIP connect server not specified" -msgstr "Entresenhas sul servidor" +msgstr "" #. *< type #. *< ui_requirement @@ -9879,9 +9688,8 @@ #. *< version #. * summary #. * description -#, fuzzy msgid "Yahoo! Protocol Plugin" -msgstr "Protocòl" +msgstr "" msgid "Pager port" msgstr "" @@ -9917,9 +9725,8 @@ #. *< version #. * summary #. * description -#, fuzzy msgid "Yahoo! JAPAN Protocol Plugin" -msgstr "Protocòl" +msgstr "" #, c-format msgid "%s has sent you a webcam invite, which is not yet supported." @@ -9971,9 +9778,8 @@ msgstr "" #. username or password missing -#, fuzzy msgid "Username or password missing" -msgstr "Picatz lo mot de pas" +msgstr "" #, c-format msgid "" @@ -9994,9 +9800,8 @@ msgid "Ignore buddy?" msgstr "" -#, fuzzy msgid "Invalid username or password" -msgstr "L'expression es pas valida" +msgstr "" msgid "" "Your account has been locked due to too many failed login attempts. Please " @@ -10030,9 +9835,9 @@ msgid "Received unexpected HTTP response from server" msgstr "" -#, fuzzy, c-format +#, c-format msgid "Lost connection with %s: %s" -msgstr "Connectat" +msgstr "" #, c-format msgid "Unable to establish a connection with %s: %s" @@ -10238,9 +10043,8 @@ msgid "User Rooms" msgstr "" -#, fuzzy msgid "Connection problem with the YCHT server" -msgstr "Connectat" +msgstr "" msgid "" "(There was an error converting this message.\t Check the 'Encoding' option " @@ -10259,7 +10063,7 @@ msgstr "" msgid "Anyone" -msgstr "Qual que siá" +msgstr "" msgid "_Class:" msgstr "" @@ -10389,7 +10193,7 @@ #. * A wrapper for purple_request_action() that uses @c Yes and @c No buttons. #. msgid "_Yes" -msgstr "_Òc" +msgstr "Ò_c" msgid "_No" msgstr "_Non" @@ -10431,17 +10235,15 @@ msgstr "" #. Shortcut -#, fuzzy msgid "Shortcut" -msgstr "Ordenar" +msgstr "Acorchi" msgid "The text-shortcut for the smiley" msgstr "" #. Stored Image -#, fuzzy msgid "Stored Image" -msgstr "Enregistrar l'imatge" +msgstr "" msgid "Stored Image. (that'll have to do for now)" msgstr "" @@ -10506,7 +10308,7 @@ #. #, c-format msgid "%x %X" -msgstr "" +msgstr "%x %X" msgid "Calculating..." msgstr "A calcular..." @@ -10518,37 +10320,37 @@ msgid "%d second" msgid_plural "%d seconds" msgstr[0] "%d segonda" -msgstr[1] "%d secondes" +msgstr[1] "%d segondas" #, c-format msgid "%d day" msgid_plural "%d days" msgstr[0] "%d jorn" -msgstr[1] "%d jours" +msgstr[1] "%d jorns" #, c-format msgid "%s, %d hour" msgid_plural "%s, %d hours" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "%s, %d ora" +msgstr[1] "%s, %d oras" #, c-format msgid "%d hour" msgid_plural "%d hours" msgstr[0] "%d ora" -msgstr[1] "%d heures" +msgstr[1] "%d oras" #, c-format msgid "%s, %d minute" msgid_plural "%s, %d minutes" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "%s, %d minuta" +msgstr[1] "%s, %d minutas" #, c-format msgid "%d minute" msgid_plural "%d minutes" msgstr[0] "%d minuta" -msgstr[1] "%d minutes" +msgstr[1] "%d minutas" #, c-format msgid "Could not open %s: Redirected too many times" @@ -10582,11 +10384,11 @@ #, c-format msgid " - %s" -msgstr "" +msgstr " - %s" #, c-format msgid " (%s)" -msgstr "" +msgstr " (%s)" #. 10053 msgid "Connection interrupted by other software on your computer." @@ -10598,11 +10400,11 @@ #. 10060 msgid "Connection timed out." -msgstr "Connectat" +msgstr "" #. 10061 msgid "Connection refused." -msgstr "Connectat" +msgstr "" #. 10048 msgid "Address already in use." @@ -10636,7 +10438,7 @@ msgstr "" msgid "_Username:" -msgstr "_Nom d'utilizaire :" +msgstr "Nom d'_utilizaire :" msgid "Remember pass_word" msgstr "" @@ -10655,9 +10457,8 @@ msgid "Use this buddy _icon for this account:" msgstr "" -#, fuzzy msgid "Ad_vanced" -msgstr "_Avançat" +msgstr "A_vançat" msgid "Use GNOME Proxy Settings" msgstr "" @@ -10672,10 +10473,10 @@ msgstr "HTTP" msgid "SOCKS 4" -msgstr "" +msgstr "SOCKS 4" msgid "SOCKS 5" -msgstr "" +msgstr "SOCKS 5" msgid "Use Environmental Settings" msgstr "" @@ -10696,7 +10497,7 @@ msgstr "" msgid "_Host:" -msgstr "_Òste :" +msgstr "Ò_ste :" msgid "_Port:" msgstr "_Pòrt :" @@ -10719,9 +10520,8 @@ msgid "Create _this new account on the server" msgstr "" -#, fuzzy msgid "P_roxy" -msgstr "Proxy" +msgstr "P_roxy" msgid "Enabled" msgstr "Activat" @@ -10753,9 +10553,8 @@ msgid "The background color for the buddy list" msgstr "" -#, fuzzy msgid "Layout" -msgstr "Laossian" +msgstr "" msgid "The layout of icons, name, and status of the buddy list" msgstr "" @@ -10763,9 +10562,8 @@ #. Group #. Note to translators: These two strings refer to the background color #. of a buddy list group when in its expanded state -#, fuzzy msgid "Expanded Background Color" -msgstr "Color de fons" +msgstr "" msgid "The background color of an expanded group" msgstr "" @@ -10780,9 +10578,8 @@ #. Note to translators: These two strings refer to the background color #. of a buddy list group when in its collapsed state -#, fuzzy msgid "Collapsed Background Color" -msgstr "Color de fons" +msgstr "Col" msgid "The background color of a collapsed group" msgstr "" @@ -10798,63 +10595,56 @@ #. Buddy #. Note to translators: These two strings refer to the background color #. of a buddy list contact or chat room -#, fuzzy msgid "Contact/Chat Background Color" -msgstr "Color de fons" +msgstr "" msgid "The background color of a contact or chat" msgstr "" #. Note to translators: These two strings refer to the font and color #. of a buddy list contact when in its expanded state -#, fuzzy msgid "Contact Text" -msgstr "Ordenar" +msgstr "" msgid "The text information for when a contact is expanded" msgstr "" #. Note to translators: These two strings refer to the font and color #. of a buddy list buddy when it is online -#, fuzzy msgid "Online Text" -msgstr "En linha" +msgstr "" msgid "The text information for when a buddy is online" msgstr "" #. Note to translators: These two strings refer to the font and color #. of a buddy list buddy when it is away -#, fuzzy msgid "Away Text" -msgstr "Absent(a)" +msgstr "Tèxte dels contactes absents" msgid "The text information for when a buddy is away" msgstr "" #. Note to translators: These two strings refer to the font and color #. of a buddy list buddy when it is offline -#, fuzzy msgid "Offline Text" -msgstr "Desconnectat" +msgstr "" msgid "The text information for when a buddy is offline" msgstr "" #. Note to translators: These two strings refer to the font and color #. of a buddy list buddy when it is idle -#, fuzzy msgid "Idle Text" -msgstr "Inactiu" +msgstr "" msgid "The text information for when a buddy is idle" msgstr "" #. Note to translators: These two strings refer to the font and color #. of a buddy list buddy when they have sent you a new message -#, fuzzy msgid "Message Text" -msgstr "Messatge" +msgstr "" msgid "The text information for when a buddy has an unread message" msgstr "" @@ -10888,9 +10678,8 @@ msgid "Please update the necessary fields." msgstr "" -#, fuzzy msgid "A_ccount" -msgstr "_Compte :" +msgstr "_Compte" msgid "" "Please enter the appropriate information about the chat you would like to " @@ -10901,10 +10690,10 @@ msgstr "" msgid "_Block" -msgstr "" +msgstr "_Blocar" msgid "Un_block" -msgstr "" +msgstr "Des_blocar" msgid "Move to" msgstr "" @@ -10925,7 +10714,7 @@ msgstr "" msgid "_Send File..." -msgstr "_Enviar lo fichièr..." +msgstr "_Mandar un fichièr..." msgid "Add Buddy _Pounce..." msgstr "" @@ -10940,7 +10729,7 @@ msgstr "" msgid "_Alias..." -msgstr "" +msgstr "_Aliàs..." msgid "_Remove" msgstr "_Suprimir" @@ -10998,9 +10787,8 @@ msgid "Please select your mood from the list" msgstr "" -#, fuzzy msgid "Message (optional)" -msgstr "Messatge" +msgstr "" msgid "Edit User Mood" msgstr "" @@ -11009,7 +10797,7 @@ #. gtk_blist_key_press_cb to "Get User Info" on the selected buddy. #. Buddies menu msgid "/_Buddies" -msgstr "" +msgstr "/_Contactes" msgid "/Buddies/New Instant _Message..." msgstr "" @@ -11058,15 +10846,14 @@ #. Accounts menu msgid "/_Accounts" -msgstr "/_Comptse" - -#, fuzzy +msgstr "/_Comptes" + msgid "/Accounts/Manage Accounts" -msgstr "/Comptes/Gerir" +msgstr "/Comptes/Gerir los comptes" #. Tools msgid "/_Tools" -msgstr "" +msgstr "/_Espleches" msgid "/Tools/Buddy _Pounces" msgstr "" @@ -11108,20 +10895,17 @@ msgid "/Help/Online _Help" msgstr "" -#, fuzzy msgid "/Help/_Build Information" -msgstr "Entresenhas" +msgstr "" msgid "/Help/_Debug Window" msgstr "" -#, fuzzy msgid "/Help/De_veloper Information" -msgstr "Entresenhas sul servidor" - -#, fuzzy +msgstr "" + msgid "/Help/_Translator Information" -msgstr "Entresenhas personalas" +msgstr "" msgid "/Help/_About" msgstr "/Ajuda/_A prepaus" @@ -11251,7 +11035,7 @@ msgstr "Mot de pas :" msgid "_Login" -msgstr "Se _connectar" +msgstr "_Connexion" msgid "/Accounts" msgstr "/Comptes" @@ -11285,11 +11069,10 @@ msgstr "" msgid "Add a buddy.\n" -msgstr "" - -#, fuzzy +msgstr "Apondre un contacte.\n" + msgid "Buddy's _username:" -msgstr "_Nom d'utilizaire :" +msgstr "" msgid "(Optional) A_lias:" msgstr "" @@ -11311,7 +11094,7 @@ msgstr "" msgid "A_lias:" -msgstr "" +msgstr "A_liàs :" msgid "_Group:" msgstr "_Grop :" @@ -11337,9 +11120,8 @@ msgid "_Edit Account" msgstr "" -#, fuzzy msgid "Set _Mood..." -msgstr "Modificar lo mot de pas" +msgstr "" msgid "No actions available" msgstr "" @@ -11348,7 +11130,7 @@ msgstr "_Desactivar" msgid "/Tools" -msgstr "" +msgstr "/Espleches" msgid "/Buddies/Sort Buddies" msgstr "" @@ -11395,9 +11177,8 @@ msgid "Get Away Message" msgstr "" -#, fuzzy msgid "Last Said" -msgstr "Nom" +msgstr "" msgid "Unable to save icon file to disk." msgstr "" @@ -11425,7 +11206,7 @@ #. Conversation menu msgid "/_Conversation" -msgstr "" +msgstr "/_Charradissa" msgid "/Conversation/New Instant _Message..." msgstr "" @@ -11460,9 +11241,8 @@ msgid "/Conversation/Se_nd File..." msgstr "" -#, fuzzy msgid "/Conversation/Get _Attention" -msgstr "Connectat" +msgstr "" msgid "/Conversation/Add Buddy _Pounce..." msgstr "" @@ -11502,7 +11282,7 @@ #. Options msgid "/_Options" -msgstr "" +msgstr "/_Opcions" msgid "/Options/Enable _Logging" msgstr "" @@ -11520,7 +11300,7 @@ msgstr "" msgid "/Options" -msgstr "" +msgstr "/Opcions" #. The menubar has been deactivated. Make sure the 'More' submenu is regenerated next time #. * the 'Conversation' menu pops up. @@ -11528,7 +11308,7 @@ #. * the 'Conversation' menu pops up because the entries can change after the #. * conversation is created. msgid "/Conversation" -msgstr "" +msgstr "/Charradissa" msgid "/Conversation/View Log" msgstr "" @@ -11545,9 +11325,8 @@ msgid "/Conversation/Send File..." msgstr "" -#, fuzzy msgid "/Conversation/Get Attention" -msgstr "Connectat" +msgstr "" msgid "/Conversation/Add Buddy Pounce..." msgstr "" @@ -11605,19 +11384,17 @@ msgstr "" msgid "_Send" -msgstr "_Enviar" +msgstr "_Mandar" #. Setup the label telling how many people are in the room. msgid "0 people in room" msgstr "0 persona dins la sala" -#, fuzzy msgid "Close Find bar" -msgstr "Tampar l'onglet" - -#, fuzzy +msgstr "" + msgid "Find:" -msgstr "Recercar" +msgstr "Recercar :" #, c-format msgid "%d person in room" @@ -11650,7 +11427,7 @@ msgstr "" msgid "Close all tabs" -msgstr "" +msgstr "Tampar totes los onglets" msgid "Detach this tab" msgstr "" @@ -11659,7 +11436,7 @@ msgstr "Tampar l'onglet" msgid "Close conversation" -msgstr "" +msgstr "Tampar la charradissa" msgid "Last created window" msgstr "" @@ -11671,10 +11448,10 @@ msgstr "" msgid "By group" -msgstr "" +msgstr "Per grop" msgid "By account" -msgstr "" +msgstr "Per compte" msgid "Find" msgstr "Recercar" @@ -11707,13 +11484,13 @@ msgstr "" msgid "Level " -msgstr "" +msgstr "Nivèl " msgid "Select the debug filter level." msgstr "" msgid "All" -msgstr "Totes" +msgstr "Tot" msgid "Misc" msgstr "" @@ -11722,17 +11499,13 @@ msgstr "Alèrta" msgid "Error " -msgstr "" +msgstr "Error " msgid "Fatal Error" msgstr "" -msgid "bug master" -msgstr "" - -#, fuzzy msgid "artist" -msgstr "Artista" +msgstr "artista" #. feel free to not translate this msgid "Ka-Hing Cheung" @@ -11764,7 +11537,7 @@ msgstr "" msgid "XMPP" -msgstr "" +msgstr "XMPP" msgid "original author" msgstr "" @@ -11781,9 +11554,8 @@ msgid "Arabic" msgstr "Arab" -#, fuzzy msgid "Assamese" -msgstr "Jòcs" +msgstr "" msgid "Belarusian Latin" msgstr "Bielorus latin" @@ -11794,9 +11566,8 @@ msgid "Bengali" msgstr "Bengalí" -#, fuzzy msgid "Bengali-India" -msgstr "Bengalí" +msgstr "Bengalí indian" msgid "Bosnian" msgstr "Bosniac" @@ -11852,9 +11623,8 @@ msgid "French" msgstr "Francés" -#, fuzzy msgid "Irish" -msgstr "Curd" +msgstr "Irlandés" msgid "Galician" msgstr "Galician" @@ -11874,9 +11644,8 @@ msgid "Hungarian" msgstr "Ongrés" -#, fuzzy msgid "Armenian" -msgstr "Romanian" +msgstr "" msgid "Indonesian" msgstr "Indonesian" @@ -11893,9 +11662,8 @@ msgid "Ubuntu Georgian Translators" msgstr "" -#, fuzzy msgid "Khmer" -msgstr "Autre" +msgstr "" msgid "Kannada" msgstr "Kannadà" @@ -11915,24 +11683,23 @@ msgid "Maithili" msgstr "" +msgid "Meadow Mari" +msgstr "" + msgid "Macedonian" msgstr "Macedonian" -#, fuzzy msgid "Malayalam" -msgstr "Òme" - -#, fuzzy +msgstr "" + msgid "Mongolian" -msgstr "Macedonian" - -#, fuzzy +msgstr "" + msgid "Marathi" -msgstr "Gujarati" - -#, fuzzy +msgstr "" + msgid "Malay" -msgstr "Òme" +msgstr "" msgid "Bokmål Norwegian" msgstr "" @@ -11947,11 +11714,10 @@ msgstr "Nòrvegian (Nynorsk)" msgid "Occitan" -msgstr "" - -#, fuzzy +msgstr "Occitan" + msgid "Oriya" -msgstr "Opcions" +msgstr "" msgid "Punjabi" msgstr "Punjabi" @@ -12007,7 +11773,6 @@ msgid "Turkish" msgstr "Turc" -#, fuzzy msgid "Ukranian" msgstr "Ukrainien" @@ -12068,14 +11833,13 @@ msgid "About %s" msgstr "A prepaus de %s" -#, fuzzy msgid "Build Information" -msgstr "Entresenhas" +msgstr "" #. End of not to be translated section -#, fuzzy, c-format +#, c-format msgid "%s Build Information" -msgstr "Entresenhas sus l'utilizaire" +msgstr "" msgid "Current Developers" msgstr "" @@ -12089,9 +11853,9 @@ msgid "Retired Crazy Patch Writers" msgstr "" -#, fuzzy, c-format +#, c-format msgid "%s Developer Information" -msgstr "Entresenhas sul servidor" +msgstr "" msgid "Current Translators" msgstr "" @@ -12099,9 +11863,9 @@ msgid "Past Translators" msgstr "" -#, fuzzy, c-format +#, c-format msgid "%s Translator Information" -msgstr "Entresenhas" +msgstr "" msgid "_Name" msgstr "_Nom" @@ -12205,44 +11969,35 @@ msgid "Right-click for more unread messages...\n" msgstr "" -#, fuzzy msgid "_Change Status" -msgstr "Modificar lo mot de pas" - -#, fuzzy +msgstr "" + msgid "Show Buddy _List" -msgstr "Tièra de contactes" - -#, fuzzy +msgstr "" + msgid "_Unread Messages" -msgstr "Messatges pas legits" - -#, fuzzy +msgstr "Messatges _pas legits" + msgid "New _Message..." -msgstr "Enviar un messatge" - -#, fuzzy +msgstr "_Messatge novèl..." + msgid "_Accounts" -msgstr "/_Comptse" - -#, fuzzy +msgstr "/_Comptes" + msgid "Plu_gins" -msgstr "Ajustons" - -#, fuzzy +msgstr "A_justons" + msgid "Pr_eferences" -msgstr "Preferéncias" - -#, fuzzy +msgstr "Pr_eferéncias" + msgid "Mute _Sounds" -msgstr "Sons" +msgstr "" msgid "_Blink on New Message" msgstr "" -#, fuzzy msgid "_Quit" -msgstr "Quitar" +msgstr "_Quitar" msgid "Not started" msgstr "" @@ -12403,7 +12158,7 @@ msgstr "" msgid "Select Font" -msgstr "Seleccionar una poliça" +msgstr "" msgid "Select Text Color" msgstr "" @@ -12412,7 +12167,7 @@ msgstr "" msgid "_URL" -msgstr "" +msgstr "_URL" msgid "_Description" msgstr "_Descripcion" @@ -12495,15 +12250,14 @@ msgid "Insert Smiley" msgstr "" -#, fuzzy msgid "Send Attention" -msgstr "Attention !" +msgstr "" msgid "_Bold" msgstr "" msgid "_Italic" -msgstr "" +msgstr "_Italic" msgid "_Underline" msgstr "" @@ -12536,7 +12290,7 @@ msgstr "_Imatge" msgid "_Link" -msgstr "" +msgstr "_Ligam" msgid "_Horizontal rule" msgstr "" @@ -12544,9 +12298,8 @@ msgid "_Smile!" msgstr "" -#, fuzzy msgid "_Attention!" -msgstr "Attention !" +msgstr "_Atencion !" msgid "Log Deletion Failed" msgstr "" @@ -12622,7 +12375,7 @@ msgstr "" msgid "NAME" -msgstr "" +msgstr "NOM" msgid "" "enable specified account(s) (optional argument NAME\n" @@ -12703,12 +12456,11 @@ "The 'Manual' browser command has been chosen, but no command has been set." msgstr "" -#, fuzzy msgid "No message" -msgstr "Messatge" +msgstr "" msgid "Open All Messages" -msgstr "" +msgstr "Dobrir totes los messatges" msgid "You have mail!" msgstr "" @@ -12754,9 +12506,8 @@ msgid "Web site:" msgstr "" -#, fuzzy msgid "Filename:" -msgstr "Nom de fichièr :" +msgstr "Nom de fichièr :" msgid "Configure Pl_ugin" msgstr "" @@ -12765,11 +12516,10 @@ msgstr "" msgid "Select a file" -msgstr "Seleccionar un fichièr" - -#, fuzzy +msgstr "" + msgid "Modify Buddy Pounce" -msgstr "Entresenhas" +msgstr "" #. Create the "Pounce on Whom" frame. msgid "Pounce on Whom" @@ -12818,7 +12568,7 @@ msgstr "" msgid "Send a _message" -msgstr "" +msgstr "Mandar un _messatge" msgid "E_xecute a command" msgstr "" @@ -12844,13 +12594,11 @@ msgid "Pounce Target" msgstr "" -#, fuzzy msgid "Started typing" -msgstr "Comença a picar" - -#, fuzzy +msgstr "" + msgid "Paused while typing" -msgstr "L'utilizaire es a picar..." +msgstr "" msgid "Signed on" msgstr "" @@ -12861,23 +12609,20 @@ msgid "Returned from being away" msgstr "" -#, fuzzy msgid "Stopped typing" msgstr "S'arrèsta de picar" msgid "Signed off" msgstr "" -#, fuzzy msgid "Became idle" -msgstr "Enregistrar lo fichièr" +msgstr "" msgid "Went away" msgstr "" -#, fuzzy msgid "Sent a message" -msgstr "Messatges enviats" +msgstr "" msgid "Unknown.... Please report this!" msgstr "" @@ -12891,9 +12636,8 @@ msgid "The default Pidgin sound theme" msgstr "" -#, fuzzy msgid "The default Pidgin buddy list theme" -msgstr "Tièra de contactes" +msgstr "" msgid "The default Pidgin status icon theme" msgstr "" @@ -12907,9 +12651,8 @@ msgid "Theme failed to copy." msgstr "" -#, fuzzy msgid "Theme Selections" -msgstr "Seleccionar una poliça" +msgstr "" #. Instructions msgid "" @@ -12918,20 +12661,17 @@ "list." msgstr "" -#, fuzzy msgid "Buddy List Theme:" -msgstr "Tièra de contactes" - -#, fuzzy +msgstr "" + msgid "Status Icon Theme:" -msgstr "Estatut" +msgstr "" msgid "Sound Theme:" msgstr "" -#, fuzzy msgid "Smiley Theme:" -msgstr "Enregistrar l'imatge" +msgstr "" msgid "Keyboard Shortcuts" msgstr "" @@ -12949,9 +12689,8 @@ msgid "On unread messages" msgstr "" -#, fuzzy msgid "Conversation Window" -msgstr "Connectat" +msgstr "" msgid "_Hide new IM conversations:" msgstr "" @@ -12976,10 +12715,10 @@ msgstr "" msgid "Top" -msgstr "Superior" +msgstr "Naut" msgid "Bottom" -msgstr "Inferior" +msgstr "Bais" msgid "Left" msgstr "Esquèrra" @@ -13046,17 +12785,15 @@ msgid "Cannot start browser configuration program." msgstr "" -#, fuzzy msgid "Disabled" -msgstr "_Desactivar" +msgstr "Desactivat" #, c-format msgid "Use _automatically detected IP address: %s" msgstr "" -#, fuzzy msgid "ST_UN server:" -msgstr "_Servidor :" +msgstr "Servidor ST_UN :" msgid "Example: stunserver.org" msgstr "" @@ -13073,42 +12810,36 @@ msgid "_Manually specify range of ports to listen on:" msgstr "" -#, fuzzy msgid "_Start:" -msgstr "Estat :" - -#, fuzzy +msgstr "" + msgid "_End:" -msgstr "_Enviar" +msgstr "_Fin :" #. TURN server msgid "Relay Server (TURN)" msgstr "" -#, fuzzy msgid "_TURN server:" -msgstr "_Servidor :" - -#, fuzzy +msgstr "Servidor _TURN :" + msgid "_UDP Port:" -msgstr "_Pòrt :" - -#, fuzzy +msgstr "Pòrt _UDP :" + msgid "Use_rname:" -msgstr "_Nom d'utilizaire :" - -#, fuzzy +msgstr "Nom d'utilizai_re :" + msgid "Pass_word:" -msgstr "Mot de pas :" +msgstr "Mot de _pas :" msgid "Seamonkey" -msgstr "" +msgstr "Seamonkey" msgid "Opera" -msgstr "Opcions" +msgstr "Opera" msgid "Netscape" -msgstr "" +msgstr "Netscape" msgid "Mozilla" msgstr "Mozilla" @@ -13117,7 +12848,7 @@ msgstr "Konqueror" msgid "Google Chrome" -msgstr "" +msgstr "Google Chrome" #. Do not move the line below. Code below expects gnome-open to be in #. * this list immediately after xdg-open! @@ -13163,7 +12894,7 @@ msgstr "" msgid "_Browser:" -msgstr "" +msgstr "_Navigador :" msgid "_Open link in:" msgstr "" @@ -13206,11 +12937,9 @@ msgid "No proxy" msgstr "" -#, fuzzy msgid "P_ort:" msgstr "_Pòrt :" -#, fuzzy msgid "User_name:" msgstr "_Nom d'utilizaire :" @@ -13274,24 +13003,20 @@ msgid "Sounds when conversation has _focus" msgstr "" -#, fuzzy msgid "_Enable sounds:" -msgstr "Activat" - -#, fuzzy +msgstr "A_ctivar los sons :" + msgid "V_olume:" -msgstr "Volum :" +msgstr "V_olum :" msgid "Play" msgstr "Legir" -#, fuzzy msgid "_Browse..." -msgstr "Navegador" - -#, fuzzy +msgstr "" + msgid "_Reset" -msgstr "Reinicializar" +msgstr "_Reinicializar" msgid "_Report idle time:" msgstr "" @@ -13325,14 +13050,13 @@ msgstr "Interfaç" msgid "Browser" -msgstr "Navegador" +msgstr "Navigador" msgid "Status / Idle" msgstr "" -#, fuzzy msgid "Themes" -msgstr "Tèst" +msgstr "Tèmas" msgid "Allow all users to contact me" msgstr "" @@ -13344,7 +13068,7 @@ msgstr "" msgid "Block all users" -msgstr "" +msgstr "Blocar totes los utilizaires" msgid "Block only the users below" msgstr "" @@ -13383,7 +13107,7 @@ msgstr "" msgid "Block User" -msgstr "" +msgstr "Blocar un utilizaire" msgid "Type a user to block." msgstr "" @@ -13393,7 +13117,7 @@ #, c-format msgid "Block %s?" -msgstr "" +msgstr "Blocar %s ?" #, c-format msgid "Are you sure you want to block %s?" @@ -13473,29 +13197,24 @@ msgid "Add Smiley" msgstr "" -#, fuzzy msgid "_Image:" -msgstr "_Imatge" +msgstr "_Imatge :" #. Shortcut text -#, fuzzy msgid "S_hortcut text:" -msgstr "Ordenar" - -#, fuzzy +msgstr "" + msgid "Smiley" -msgstr "Talha" - -#, fuzzy +msgstr "" + msgid "Shortcut Text" -msgstr "Ordenar" +msgstr "" msgid "Custom Smiley Manager" msgstr "" -#, fuzzy msgid "Select Buddy Icon" -msgstr "Seleccionar una poliça" +msgstr "" msgid "Click to change your buddyicon for this account." msgstr "" @@ -13516,7 +13235,7 @@ msgstr "" msgid "Google Talk" -msgstr "" +msgstr "Google Talk" msgid "Facebook (XMPP)" msgstr "" @@ -13601,9 +13320,8 @@ msgid "Could not set icon" msgstr "" -#, fuzzy msgid "_Open Link" -msgstr "_Dobrir lo ligam dins lo navegaire" +msgstr "D_obrir lo ligam" msgid "_Copy Link Location" msgstr "_Copiar l'emplaçament del ligam" @@ -13611,9 +13329,8 @@ msgid "_Copy Email Address" msgstr "" -#, fuzzy msgid "_Open File" -msgstr "_Enviar un fichièr" +msgstr "D_obrir lo fichièr" msgid "Open _Containing Directory" msgstr "" @@ -13621,19 +13338,17 @@ msgid "Save File" msgstr "Enregistrar lo fichièr" -#, fuzzy msgid "_Play Sound" -msgstr "Legir un son" - -#, fuzzy +msgstr "_Legir un son" + msgid "_Save File" -msgstr "Enregistrar lo fichièr" +msgstr "Enregi_strar lo fichièr" msgid "Do you really want to clear?" msgstr "" msgid "Select color" -msgstr "Seleccionar una color" +msgstr "" #. Translators may want to transliterate the name. #. It is not to be translated. @@ -13641,7 +13356,7 @@ msgstr "Pidgin" msgid "_Alias" -msgstr "" +msgstr "_Aliàs" msgid "Close _tabs" msgstr "" @@ -13650,22 +13365,19 @@ msgstr "" msgid "_Invite" -msgstr "" - -#, fuzzy +msgstr "Conv_idar" + msgid "_Modify..." -msgstr "_Modificar" - -#, fuzzy +msgstr "_Modificar..." + msgid "_Add..." -msgstr "_Apondre" +msgstr "_Apondre..." msgid "_Open Mail" msgstr "" -#, fuzzy msgid "_Edit" -msgstr "Edicion" +msgstr "_Edicion" msgid "Pidgin Tooltip" msgstr "" @@ -13679,9 +13391,8 @@ msgid "none" msgstr "pas cap" -#, fuzzy msgid "Small" -msgstr "Corrièl" +msgstr "Pichons" msgid "Smaller versions of the default smileys" msgstr "" @@ -13793,7 +13504,7 @@ msgstr "" msgid "Sent Messages" -msgstr "Messatges enviats" +msgstr "Messatges mandats" msgid "Received Messages" msgstr "" @@ -13813,13 +13524,11 @@ #. Note to translators: The string "Enter an XMPP Server" is asking the #. user to type the name of an XMPP server which will then be queried -#, fuzzy msgid "Server name request" msgstr "Nom d'utilisateur envoyé" -#, fuzzy msgid "Enter an XMPP Server" -msgstr "Picatz lo mot de pas" +msgstr "" msgid "Select an XMPP server to query" msgstr "" @@ -13827,16 +13536,14 @@ msgid "Find Services" msgstr "" -#, fuzzy msgid "Add to Buddy List" -msgstr "Tièra de contactes" +msgstr "Apondre a la tièra de contactes" msgid "Gateway" msgstr "" -#, fuzzy msgid "Directory" -msgstr "Creator" +msgstr "" msgid "PubSub Collection" msgstr "" @@ -13844,19 +13551,19 @@ msgid "PubSub Leaf" msgstr "" -#, fuzzy msgid "" "\n" "Description: " -msgstr "Descripcion" +msgstr "" +"\n" +"Descripcion : " #. Create the window. msgid "Service Discovery" msgstr "" -#, fuzzy msgid "_Browse" -msgstr "Navegador" +msgstr "" msgid "Server does not exist" msgstr "" @@ -14034,13 +13741,13 @@ #. Optional Information section msgid "Optional information:" -msgstr "Entresenhas opcionalas :" +msgstr "" msgid "First name:" msgstr "Pichon nom :" msgid "Last name:" -msgstr "Nom :" +msgstr "Nom d'ostal :" msgid "Email:" msgstr "" @@ -14281,9 +13988,8 @@ msgid "Conversation Entry" msgstr "" -#, fuzzy msgid "Conversation History" -msgstr "Connectat" +msgstr "" msgid "Request Dialog" msgstr "" @@ -14292,7 +13998,7 @@ msgstr "" msgid "Select Color" -msgstr "Seleccionar una color" +msgstr "" #, c-format msgid "Select Interface Font" @@ -14314,9 +14020,8 @@ msgid "GTK+ Theme Control Settings" msgstr "" -#, fuzzy msgid "Colors" -msgstr "Tampar" +msgstr "Colors" msgid "Fonts" msgstr "Poliças" @@ -14358,9 +14063,8 @@ msgid "New Version Available" msgstr "" -#, fuzzy msgid "Later" -msgstr "Data" +msgstr "Pus tard" msgid "Download Now" msgstr "" @@ -14399,9 +14103,8 @@ #. *< name #. *< version -#, fuzzy msgid "Conversation Window Send Button." -msgstr "Connectat" +msgstr "" #. *< summary msgid "" @@ -14472,34 +14175,29 @@ msgid "Icon for Chat" msgstr "" -#, fuzzy msgid "Ignored" -msgstr "Ignorar" - -#, fuzzy +msgstr "Ignorat" + msgid "Founder" -msgstr "Expeditor" +msgstr "" #. A user in a chat room who has special privileges. -#, fuzzy msgid "Operator" -msgstr "Opcions" +msgstr "Operador" #. A half operator is someone who has a subset of the privileges #. that an operator has. msgid "Half Operator" msgstr "" -#, fuzzy msgid "Authorization dialog" -msgstr "Autorizar" +msgstr "" msgid "Error dialog" msgstr "" -#, fuzzy msgid "Information dialog" -msgstr "Entresenhas" +msgstr "" msgid "Mail dialog" msgstr "" @@ -14507,38 +14205,32 @@ msgid "Question dialog" msgstr "" -#, fuzzy msgid "Warning dialog" -msgstr "Alèrta" +msgstr "" msgid "What kind of dialog is this?" msgstr "" -#, fuzzy msgid "Status Icons" -msgstr "Estatut" +msgstr "" msgid "Chatroom Emblems" msgstr "" -#, fuzzy msgid "Dialog Icons" -msgstr "Modificar lo mot de pas" +msgstr "" msgid "Pidgin Icon Theme Editor" msgstr "" -#, fuzzy msgid "Contact" -msgstr "Se connectar" - -#, fuzzy +msgstr "Contacte" + msgid "Pidgin Buddylist Theme Editor" -msgstr "Tièra de contactes" - -#, fuzzy +msgstr "" + msgid "Edit Buddylist Theme" -msgstr "Tièra de contactes" +msgstr "" msgid "Edit Icon Theme" msgstr "" @@ -14608,10 +14300,10 @@ msgstr "" msgid "12 hour time format" -msgstr "" +msgstr "Format 12 oras" msgid "24 hour time format" -msgstr "" +msgstr "Format 24 oras" msgid "Show dates in..." msgstr "" @@ -14649,35 +14341,29 @@ "timestamp formats." msgstr "" -#, fuzzy msgid "Audio" -msgstr "Autor" - -#, fuzzy +msgstr "" + msgid "Video" -msgstr "Votz" +msgstr "Vidèo" msgid "Output" msgstr "" -#, fuzzy msgid "_Plugin" -msgstr "Ajustons" - -#, fuzzy +msgstr "A_juston" + msgid "_Device" -msgstr "Periferic" +msgstr "_Periferic" msgid "Input" msgstr "" -#, fuzzy msgid "P_lugin" -msgstr "Ajustons" - -#, fuzzy +msgstr "A_juston" + msgid "D_evice" -msgstr "Periferic" +msgstr "P_eriferic" #. *< magic #. *< major version @@ -14800,7 +14486,7 @@ msgstr "" msgid "Account: " -msgstr "" +msgstr "Compte : " msgid "Not connected to XMPP" msgstr "" @@ -14876,13 +14562,12 @@ msgstr "" #. Installer Subsection Text -#, fuzzy msgid "Localizations" -msgstr "Emplaçament" +msgstr "Traduccions" #. "Next >" appears on a button on the License Page of the Installer msgid "Next >" -msgstr "" +msgstr "Seguent >" #. Installer Subsection Text msgid "Pidgin Instant Messaging Client (required)" @@ -14895,9 +14580,8 @@ msgstr "" #. Installer Subsection Text -#, fuzzy msgid "Shortcuts" -msgstr "Ordenar" +msgstr "Acorchis" #. Installer Subsection Detailed Description msgid "Shortcuts for starting Pidgin" @@ -14908,9 +14592,8 @@ msgstr "" #. Installer Subsection Text -#, fuzzy msgid "Start Menu" -msgstr "Data de debuta" +msgstr "" #. Installer Subsection Detailed Description msgid "" diff -r a7397a3d67ef -r 626efe139f98 po/pl.po --- a/po/pl.po Sun Jan 09 23:32:10 2011 +0000 +++ b/po/pl.po Sat Feb 12 23:54:14 2011 +0000 @@ -13,8 +13,8 @@ msgstr "" "Project-Id-Version: Pidgin Polish translation\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-12-19 13:34-0500\n" -"PO-Revision-Date: 2010-12-14 13:40+0100\n" +"POT-Creation-Date: 2011-02-02 23:34-0500\n" +"PO-Revision-Date: 2011-01-25 11:04+0100\n" "Last-Translator: Piotr Drąg \n" "Language-Team: Polish \n" "Language: pl\n" @@ -2372,8 +2372,12 @@ "Ścieżka do zapisywania plików w\n" "(proszę podać pełną ścieżkę)" -msgid "Automatically reject from users not in buddy list" -msgstr "Automatyczne odrzucanie od użytkowników spoza listy znajomych" +msgid "" +"When a file-transfer request arrives from a user who is\n" +"*not* on your buddy list:" +msgstr "" +"Kiedy żądanie przesłania pliku zostaje odebrane od\n" +"użytkownika, który *nie* jest na liście znajomych:" msgid "" "Notify with a popup when an autoaccepted file transfer is complete\n" @@ -2385,6 +2389,9 @@ msgid "Create a new directory for each user" msgstr "Utworzenie nowego katalogu dla każdego użytkownika" +msgid "Escape the filenames" +msgstr "Sekwencja sterująca przed nazwami plików" + msgid "Notes" msgstr "Notatki" @@ -3852,7 +3859,10 @@ "Serwer wymaga uwierzytelnienia w zwykłym tekście za pośrednictwem " "niezaszyfrowanego strumienia" -#. This should never happen! +#. This happens when the server sends back jibberish +#. * in the "additional data with success" case. +#. * Seen with Wildfire 3.0.1. +#. msgid "Invalid response from server" msgstr "Nieprawidłowa odpowiedź z serwera" @@ -6181,6 +6191,20 @@ msgid "Retrieving User Information..." msgstr "Pobieranie informacji o użytkowniku..." +#. you were kicked +msgid "You have been kicked from this MultiMX." +msgstr "Użytkownik został wyrzucony z tego MultiMX." + +msgid "was kicked" +msgstr "został wyrzucony" + +msgid "_Room Name:" +msgstr "_Nazwa pokoju:" + +#. Display system message in chat window +msgid "You have invited" +msgstr "Zaproszono" + msgid "Loading menu..." msgstr "Wczytywanie menu..." @@ -6208,20 +6232,6 @@ msgid "Enable splash-screen popup" msgstr "Włączenie wyskakującego ekranu powitalnego" -#. you were kicked -msgid "You have been kicked from this MultiMX." -msgstr "Użytkownik został wyrzucony z tego MultiMX." - -msgid "was kicked" -msgstr "został wyrzucony" - -msgid "_Room Name:" -msgstr "_Nazwa pokoju:" - -#. Display system message in chat window -msgid "You have invited" -msgstr "Zaproszono" - msgid "Last Online" msgstr "Ostatnio online" @@ -7910,75 +7920,6 @@ "niezbędne dla obrazów komunikatora. Ponieważ adres IP zostanie ujawniony, " "może się to wiązać z zagrożeniem prywatności." -msgid "Invalid SNAC" -msgstr "Nieprawidłowe SNAC" - -msgid "Server rate limit exceeded" -msgstr "Przekroczono ograniczenie prędkości serwera" - -msgid "Client rate limit exceeded" -msgstr "Przekroczono ograniczenie prędkości klienta" - -msgid "Service unavailable" -msgstr "Usługa jest niedostępna" - -msgid "Service not defined" -msgstr "Nie określono usługi" - -msgid "Obsolete SNAC" -msgstr "Przestarzałe SNAC" - -msgid "Not supported by host" -msgstr "Nieobsługiwane przez serwer" - -msgid "Not supported by client" -msgstr "Nieobsługiwane przez klienta" - -msgid "Refused by client" -msgstr "Odmowa klienta" - -msgid "Reply too big" -msgstr "Odpowiedź jest za duża" - -msgid "Responses lost" -msgstr "Utracono odpowiedzi" - -msgid "Request denied" -msgstr "Odrzucono prośby" - -msgid "Busted SNAC payload" -msgstr "Uszkodzone dane SNAC" - -msgid "Insufficient rights" -msgstr "Niewystarczające uprawnienia" - -msgid "In local permit/deny" -msgstr "W lokalnym pozwoleniu/odmowie" - -msgid "Warning level too high (sender)" -msgstr "Poziom ostrzeżenia jest za wysoki (nadawca)" - -msgid "Warning level too high (receiver)" -msgstr "Poziom ostrzeżenia jest za wysoki (odbiorca)" - -msgid "User temporarily unavailable" -msgstr "Użytkownik jest tymczasowo niedostępny" - -msgid "No match" -msgstr "Brak wyników" - -msgid "List overflow" -msgstr "Lista jest pełna" - -msgid "Request ambiguous" -msgstr "Niejednoznaczna prośba" - -msgid "Queue full" -msgstr "Kolejka jest pełna" - -msgid "Not while on AOL" -msgstr "Nie podczas używania AOL" - #. Label msgid "Buddy Icon" msgstr "Ikona znajomego" @@ -8097,6 +8038,75 @@ msgid "Capabilities" msgstr "Możliwości" +msgid "Invalid SNAC" +msgstr "Nieprawidłowe SNAC" + +msgid "Server rate limit exceeded" +msgstr "Przekroczono ograniczenie prędkości serwera" + +msgid "Client rate limit exceeded" +msgstr "Przekroczono ograniczenie prędkości klienta" + +msgid "Service unavailable" +msgstr "Usługa jest niedostępna" + +msgid "Service not defined" +msgstr "Nie określono usługi" + +msgid "Obsolete SNAC" +msgstr "Przestarzałe SNAC" + +msgid "Not supported by host" +msgstr "Nieobsługiwane przez serwer" + +msgid "Not supported by client" +msgstr "Nieobsługiwane przez klienta" + +msgid "Refused by client" +msgstr "Odmowa klienta" + +msgid "Reply too big" +msgstr "Odpowiedź jest za duża" + +msgid "Responses lost" +msgstr "Utracono odpowiedzi" + +msgid "Request denied" +msgstr "Odrzucono prośby" + +msgid "Busted SNAC payload" +msgstr "Uszkodzone dane SNAC" + +msgid "Insufficient rights" +msgstr "Niewystarczające uprawnienia" + +msgid "In local permit/deny" +msgstr "W lokalnym pozwoleniu/odmowie" + +msgid "Warning level too high (sender)" +msgstr "Poziom ostrzeżenia jest za wysoki (nadawca)" + +msgid "Warning level too high (receiver)" +msgstr "Poziom ostrzeżenia jest za wysoki (odbiorca)" + +msgid "User temporarily unavailable" +msgstr "Użytkownik jest tymczasowo niedostępny" + +msgid "No match" +msgstr "Brak wyników" + +msgid "List overflow" +msgstr "Lista jest pełna" + +msgid "Request ambiguous" +msgstr "Niejednoznaczna prośba" + +msgid "Queue full" +msgstr "Kolejka jest pełna" + +msgid "Not while on AOL" +msgstr "Nie podczas używania AOL" + #. Translators: This string is a menu option that, if selected, will cause #. you to appear online to the chosen user even when your status is set to #. Invisible. @@ -8692,14 +8702,14 @@ msgid "Select Server" msgstr "Wybór serwera" -msgid "QQ2005" -msgstr "QQ2005" +msgid "QQ2008" +msgstr "QQ2008" msgid "QQ2007" msgstr "QQ2007" -msgid "QQ2008" -msgstr "QQ2008" +msgid "QQ2005" +msgstr "QQ2005" msgid "Connect by TCP" msgstr "Połączenie przez TCP" @@ -12252,9 +12262,6 @@ msgid "Fatal Error" msgstr "Błąd krytyczny" -msgid "bug master" -msgstr "władca błędów" - msgid "artist" msgstr "artysta" @@ -12434,6 +12441,9 @@ msgid "Maithili" msgstr "maithili" +msgid "Meadow Mari" +msgstr "maryjski" + msgid "Macedonian" msgstr "macedoński" diff -r a7397a3d67ef -r 626efe139f98 po/ro.po --- a/po/ro.po Sun Jan 09 23:32:10 2011 +0000 +++ b/po/ro.po Sat Feb 12 23:54:14 2011 +0000 @@ -1,15 +1,16 @@ # Pidgin Romanian translation # This file is distributed under the same license as the Pidgin package. -# 2002-2010, Mișu Moldovan +# 2002-2011, Mișu Moldovan # 2009, Andrei Popescu # Contributions: 2007, Alexandru Szasz -msgid "" -msgstr "" -"Project-Id-Version: pidgin-2.7.8\n" +# +msgid "" +msgstr "" +"Project-Id-Version: pidgin-2.7.9\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-12-19 13:34-0500\n" -"PO-Revision-Date: 2010-12-17 18:47+0200\n" -"Last-Translator: Mișu Moldovan \n" +"POT-Creation-Date: 2011-02-02 23:34-0500\n" +"PO-Revision-Date: 2011-01-31 00:11+0200\n" +"Last-Translator: Mișu Moldovan \n" "Language-Team: Romanian \n" "Language: ro\n" "MIME-Version: 1.0\n" @@ -96,7 +97,7 @@ msgstr "(Probabil ați uitat să faceți „make install”.)" msgid "Modify Account" -msgstr "Modificare cont" +msgstr "Editare cont" msgid "New Account" msgstr "Cont nou" @@ -105,7 +106,7 @@ msgstr "Protocol:" msgid "Username:" -msgstr "Nume utilizator:" +msgstr "Nume de utilizator:" msgid "Password:" msgstr "Parolă:" @@ -212,7 +213,7 @@ msgstr "Eroare la adăugarea contactului" msgid "Username" -msgstr "Nume utilizator" +msgstr "Nume de utilizator" msgid "Alias (optional)" msgstr "Alias (opțional)" @@ -285,7 +286,7 @@ msgstr "Detalii" msgid "Add Buddy Pounce" -msgstr "Adăugare întâmpinare" +msgstr "Adăugați o întâmpinare" msgid "Send File" msgstr "Trimitere fișier" @@ -637,7 +638,7 @@ msgstr "Arată marcaje de timp" msgid "Add Buddy Pounce..." -msgstr "Adăugare întâmpinare..." +msgstr "Adăugați o întâmpinare..." msgid "Invite..." msgstr "Invită..." @@ -1112,7 +1113,7 @@ msgstr "Întâmpinare doar în starea de indisponibilitate" msgid "Recurring" -msgstr "Recurentă" +msgstr "Recurență" msgid "Cannot create pounce" msgstr "Nu se poate crea întâmpinarea" @@ -1128,7 +1129,7 @@ msgstr "Sigur doriți să ștergeți întâmpinarea la %s pentru %s?" msgid "Buddy Pounces" -msgstr "Întâmpinări contacte" +msgstr "Întâmpinări pentru contacte" #, c-format msgid "%s has started typing to you (%s)" @@ -1247,7 +1248,7 @@ #. Create the window. msgid "Room List" -msgstr "Listă camere de chat" +msgstr "Lista camerelor de chat" msgid "Buddy logs in" msgstr "Un contact se autentifică" @@ -1551,10 +1552,10 @@ #, c-format msgid "TinyURL for above: %s" -msgstr "TinyURL pentru linkul de mai sus: %s" +msgstr "TinyURL pentru adresa de mai sus: %s" msgid "Please wait while TinyURL fetches a shorter URL ..." -msgstr "Aștepați până când TinyURL oferă un link mai scurt..." +msgstr "Așteptați ca TinyURL să genereze o adresă mai scurtă..." msgid "Only create TinyURL for URLs of this length or greater" msgstr "Creează TinyURL doar pentru URL-uri de această lungime sau mai mari" @@ -2322,9 +2323,7 @@ msgstr "Auto-acceptare" msgid "Auto-accept file transfer requests from selected users." -msgstr "" -"Permite acceptarea automată a transferurilor de fișiere inițiate de anumiți " -"utilizatori." +msgstr "Acceptare automată pentru anumite transferuri de fișiere." #, c-format msgid "Autoaccepted file transfer of \"%s\" from \"%s\" completed." @@ -2367,9 +2366,12 @@ "Cale pentru salvarea fișierelor:\n" "(Precizați calea completă)" -msgid "Automatically reject from users not in buddy list" -msgstr "" -"Refuză automat pentru utilizatorii ce nu fac parte din lista de contacte" +msgid "" +"When a file-transfer request arrives from a user who is\n" +"*not* on your buddy list:" +msgstr "" +"Când se primește o cerere de transfer de fișiere de la un\n" +"utilizator ce NU e în lista de contacte:" msgid "" "Notify with a popup when an autoaccepted file transfer is complete\n" @@ -2381,6 +2383,9 @@ msgid "Create a new directory for each user" msgstr "Creează un nou director pentru fiecare utilizator" +msgid "Escape the filenames" +msgstr "Evită interpretarea caracterelor speciale în nume" + msgid "Notes" msgstr "Notițe" @@ -2441,7 +2446,7 @@ #. * summary #. * description msgid "DBus Plugin Example" -msgstr "Exemplu de modul DBus" +msgstr "Exemplu de modul DBus." #. *< type #. *< ui_requirement @@ -2650,7 +2655,7 @@ #. Add general preferences. msgid "General Log Reading Configuration" -msgstr "Opțiuni de citire a înregistrărilor" +msgstr "Opțiuni de import a înregistrărilor" msgid "Fast size calculations" msgstr "Calcul rapid mărime" @@ -2669,7 +2674,7 @@ #. *< priority #. *< id msgid "Log Reader" -msgstr "Citire înregistrări" +msgstr "Import de înregistrări" #. *< name #. *< version @@ -2728,7 +2733,7 @@ "apară dedesubtul numelui de utilizator în fereastra de discuții." msgid "Offline Message Emulation" -msgstr "Emulare mesaje offline" +msgstr "Emulare de mesaje offline" msgid "Save messages sent to an offline user as pounce." msgstr "Salvează ca întâmpinare mesajele trimise unui utilizator offline." @@ -2738,7 +2743,7 @@ "pounce from the `Buddy Pounce' dialog." msgstr "" "Restul de mesaje vor fi salvate ca întâmpinare. Puteți apoi edita sau șterge " -"întâmpinarea din fereastra „Întâmpinări contacte”." +"întâmpinarea din fereastra „Întâmpinări pentru contacte”." #, c-format msgid "" @@ -2754,7 +2759,8 @@ msgid "You can edit/delete the pounce from the `Buddy Pounces' dialog" msgstr "" -"Puteți edita ori șterge întâmpinarea din fereastra „Întâmpinări contacte" +"Puteți edita ori șterge întâmpinarea din fereastra „Întâmpinări pentru " +"contacte”" msgid "Yes" msgstr "Da" @@ -2962,7 +2968,7 @@ #. *< priority #. *< id msgid "Buddy State Notification" -msgstr "Notificări stări contacte" +msgstr "Notificări pentru stările contactelor" #. *< name #. *< version @@ -3628,7 +3634,7 @@ "away [message]: Set an away message, or use no message to return from being " "away." msgstr "" -"away [mesaj]: Setați un mesaj în absență sau, dacă nu precizați un mesaj, " +"away [mesaj]: Definiți un mesaj în absență sau, dacă nu precizați un mesaj, " "reveniți din absență." msgid "ctcp : sends ctcp msg to nick." @@ -3700,8 +3706,8 @@ "mode <+|-><A-Za-z> <nick|channel>: Set or unset a channel " "or user mode." msgstr "" -"mode <+|-><A-Za-z> <pseudonim|chat>: Setați sau resetați " -"un chat sau un mod utilizator." +"mode <+|-><A-Za-z> <pseudonim|chat>: Inițializați sau " +"reinițializați un chat sau un mod pentru utilizator." msgid "" "msg <nick> <message>: Send a private message to a user (as " @@ -3782,7 +3788,8 @@ msgid "umode <+|-><A-Za-z>: Set or unset a user mode." msgstr "" -"umode <+|-><A-Za-z>: Setați sau resetați un mod utilizator." +"umode <+|-><A-Za-z>: Inițializați sau reinițializați un mod " +"pentru utilizator." msgid "version [nick]: send CTCP VERSION request to a user" msgstr "" @@ -3835,7 +3842,10 @@ msgid "Server requires plaintext authentication over an unencrypted stream" msgstr "Serverul necesită autentificare în clar printr-o conexiune necriptată" -#. This should never happen! +#. This happens when the server sends back jibberish +#. * in the "additional data with success" case. +#. * Seen with Wildfire 3.0.1. +#. msgid "Invalid response from server" msgstr "Răspuns nevalid de la server." @@ -4151,7 +4161,7 @@ msgstr "Ca_meră:" msgid "_Server:" -msgstr "_Server:" +msgstr "Ser_ver:" msgid "_Handle:" msgstr "A_dministrare:" @@ -4595,7 +4605,7 @@ #, c-format msgid "Unable to set role \"%s\" for user: %s" -msgstr "Nu se poate seta rolul „%s” pentru utilizatorul: %s" +msgstr "Nu se poate defini rolul „%s” pentru utilizatorul: %s" #, c-format msgid "Unable to kick user %s" @@ -4682,14 +4692,15 @@ msgid "ban <user> [reason]: Ban a user from the room." msgstr "" -"ban <nume utilizator> [chat]: Blocați accesul unui utilizator în chat." +"ban <nume de utilizator> [chat]: Blocați accesul unui utilizator în " +"chat." msgid "" "affiliate <owner|admin|member|outcast|none> [nick1] [nick2] ...: Get " "the users with an affiliation or set users' affiliation with the room." msgstr "" "affiliate <deținător|administrator|membru|renegat|nimic> [pseudonim1] " -"[pseudonim2] ...: Aflați utilizatorii cu o afiliere sau setați afilierea " +"[pseudonim2] ...: Aflați utilizatorii cu o afiliere sau definiți afilierea " "utilizatorilor față de camera de chat." msgid "" @@ -5502,10 +5513,10 @@ msgstr "Pagină" msgid "Playing a game" -msgstr "Joacă ceva" +msgstr "Mă joc" msgid "Working" -msgstr "Lucrează" +msgstr "Lucrez" msgid "Has you" msgstr "Vă are în listă" @@ -6152,6 +6163,20 @@ msgid "Retrieving User Information..." msgstr "Se obțin detaliile utilizatorului..." +#. you were kicked +msgid "You have been kicked from this MultiMX." +msgstr "Ați fost dat afară din acest MultiMX." + +msgid "was kicked" +msgstr "a fost dat afară" + +msgid "_Room Name:" +msgstr "Numele came_rei:" + +#. Display system message in chat window +msgid "You have invited" +msgstr "Ați fost invitat" + msgid "Loading menu..." msgstr "Se încarcă meniul..." @@ -6179,20 +6204,6 @@ msgid "Enable splash-screen popup" msgstr "Activare popup pentru imaginea de pornire" -#. you were kicked -msgid "You have been kicked from this MultiMX." -msgstr "Ați fost dat afară din acest MultiMX." - -msgid "was kicked" -msgstr "a fost dat afară" - -msgid "_Room Name:" -msgstr "Nume came_ră:" - -#. Display system message in chat window -msgid "You have invited" -msgstr "Ați fost invitat" - msgid "Last Online" msgstr "Ultima oară online" @@ -7063,16 +7074,16 @@ msgstr "Nu se poate trimite mesajul către %s: %s" msgid "Thinking" -msgstr "Mă gândesc" +msgstr "Pe gânduri" msgid "Shopping" msgstr "La cumpărături" msgid "Questioning" -msgstr "Pun întrebări" +msgstr "În dubiu" msgid "Eating" -msgstr "Mănânc" +msgstr "La masă" msgid "Watching a movie" msgstr "Văd un film" @@ -7096,7 +7107,7 @@ msgstr "Dorm" msgid "Using a PDA" -msgstr "Folosesc un PDA" +msgstr "Sunt pe PDA" msgid "Meeting friends" msgstr "Cu prietenii" @@ -7109,10 +7120,10 @@ #. "I am mobile." / "John is mobile." msgid "Mobile" -msgstr "Mobil" +msgstr "Pe mobil" msgid "Searching the web" -msgstr "Caut pe net" +msgstr "Mă dau pe net" msgid "At a party" msgstr "La o petrecere" @@ -7571,16 +7582,16 @@ "posibilă trimiterea de imagini IM." msgid "Unable to set AIM profile." -msgstr "Nu se poate seta profilul AIM." +msgstr "Nu se poate inițializa profilul AIM." msgid "" "You have probably requested to set your profile before the login procedure " "completed. Your profile remains unset; try setting it again when you are " "fully connected." msgstr "" -"Se pare că ați cerut să setați profilul înainte de a vă autentifica. " -"Profilul vă va rămâne la fel. Încercați să-l setați din nou după o conectare " -"pe deplin reușită." +"Se pare că ați cerut să vă inițializați profilul înainte de a vă " +"autentifica. Profilul vă va rămâne neschimbat și încercați să-l " +"reinițializați după o conectare pe deplin reușită." #, c-format msgid "" @@ -7710,10 +7721,10 @@ #, c-format msgid "Buddy Comment for %s" -msgstr "Comentariu contact pentru %s" +msgstr "Comentariu pentru contactul %s" msgid "Buddy Comment:" -msgstr "Comentariu contact:" +msgstr "Comentariu pentru contact:" #, c-format msgid "You have selected to open a Direct IM connection with %s." @@ -7836,7 +7847,7 @@ msgstr "Nu utiliza criptare" msgid "Use clientLogin" -msgstr "Utilizați clientLogin" +msgstr "Utilizează clientLogin" msgid "" "Always use AIM/ICQ proxy server for\n" @@ -7875,75 +7886,6 @@ "necesară pentru imaginile IM. Pentru că adresa IP vă va fi expusă, luați în " "considerare riscurile la care vă expuneți." -msgid "Invalid SNAC" -msgstr "SNAC nevalid" - -msgid "Server rate limit exceeded" -msgstr "S-a depășit limitarea de server" - -msgid "Client rate limit exceeded" -msgstr "S-a depășit limitarea de client" - -msgid "Service unavailable" -msgstr "Serviciu indisponibil" - -msgid "Service not defined" -msgstr "Serviciu nedefinit" - -msgid "Obsolete SNAC" -msgstr "SNAC învechit" - -msgid "Not supported by host" -msgstr "Nesuportat de către server" - -msgid "Not supported by client" -msgstr "Nesuportat de către client" - -msgid "Refused by client" -msgstr "Refuzat de către client" - -msgid "Reply too big" -msgstr "Răspuns supradimensionat" - -msgid "Responses lost" -msgstr "Răspunsuri pierdute" - -msgid "Request denied" -msgstr "Cerere respinsă" - -msgid "Busted SNAC payload" -msgstr "Încărcătură SNAC nevalidă" - -msgid "Insufficient rights" -msgstr "Drepturi insuficiente" - -msgid "In local permit/deny" -msgstr "În lista permiși/refuzați locală" - -msgid "Warning level too high (sender)" -msgstr "Nivel de avertizare prea ridicat (pentru expeditor)" - -msgid "Warning level too high (receiver)" -msgstr "Nivel de avertizare prea ridicat (pentru destinatar)" - -msgid "User temporarily unavailable" -msgstr "Utilizatorul este temporar indisponibil." - -msgid "No match" -msgstr "Nicio potrivire" - -msgid "List overflow" -msgstr "Listă suprasaturată" - -msgid "Request ambiguous" -msgstr "Cerere ambiguă" - -msgid "Queue full" -msgstr "Coadă plină" - -msgid "Not while on AOL" -msgstr "Nu (cât timp e pe AOL)" - #. Label msgid "Buddy Icon" msgstr "Avatar" @@ -8021,7 +7963,7 @@ msgstr "Nivel de avertizare" msgid "Buddy Comment" -msgstr "Comentariu contact" +msgstr "Comentariu pentru contact" #, c-format msgid "User information not available: %s" @@ -8062,6 +8004,75 @@ msgid "Capabilities" msgstr "Facilități" +msgid "Invalid SNAC" +msgstr "SNAC nevalid" + +msgid "Server rate limit exceeded" +msgstr "S-a depășit limitarea de server" + +msgid "Client rate limit exceeded" +msgstr "S-a depășit limitarea de client" + +msgid "Service unavailable" +msgstr "Serviciu indisponibil" + +msgid "Service not defined" +msgstr "Serviciu nedefinit" + +msgid "Obsolete SNAC" +msgstr "SNAC învechit" + +msgid "Not supported by host" +msgstr "Nesuportat de către server" + +msgid "Not supported by client" +msgstr "Nesuportat de către client" + +msgid "Refused by client" +msgstr "Refuzat de către client" + +msgid "Reply too big" +msgstr "Răspuns supradimensionat" + +msgid "Responses lost" +msgstr "Răspunsuri pierdute" + +msgid "Request denied" +msgstr "Cerere respinsă" + +msgid "Busted SNAC payload" +msgstr "Încărcătură SNAC nevalidă" + +msgid "Insufficient rights" +msgstr "Drepturi insuficiente" + +msgid "In local permit/deny" +msgstr "În lista permiși/refuzați locală" + +msgid "Warning level too high (sender)" +msgstr "Nivel de avertizare prea ridicat (pentru expeditor)" + +msgid "Warning level too high (receiver)" +msgstr "Nivel de avertizare prea ridicat (pentru destinatar)" + +msgid "User temporarily unavailable" +msgstr "Utilizatorul este temporar indisponibil." + +msgid "No match" +msgstr "Nicio potrivire" + +msgid "List overflow" +msgstr "Listă suprasaturată" + +msgid "Request ambiguous" +msgstr "Cerere ambiguă" + +msgid "Queue full" +msgstr "Coadă plină" + +msgid "Not while on AOL" +msgstr "Nu (cât timp e pe AOL)" + #. Translators: This string is a menu option that, if selected, will cause #. you to appear online to the chosen user even when your status is set to #. Invisible. @@ -8654,14 +8665,14 @@ msgid "Select Server" msgstr "Selectați serverul" -msgid "QQ2005" -msgstr "QQ2005" +msgid "QQ2008" +msgstr "QQ2008" msgid "QQ2007" msgstr "QQ2007" -msgid "QQ2008" -msgstr "QQ2008" +msgid "QQ2005" +msgstr "QQ2005" msgid "Connect by TCP" msgstr "Conectare folosind TCP" @@ -8986,7 +8997,7 @@ msgstr "Ultim client cunoscut" msgid "User Name" -msgstr "Nume utilizator" +msgstr "Nume de utilizator" msgid "Sametime ID" msgstr "ID Sametime" @@ -9217,7 +9228,7 @@ msgstr "IM parolat" msgid "Cannot set IM key" -msgstr "Nu se poate seta cheia IM" +msgstr "Nu se poate inițializa cheia IM" msgid "Set IM Password" msgstr "Introducere parolă IM" @@ -9438,7 +9449,8 @@ msgid "Set user limit on channel. Set to zero to reset user limit." msgstr "" -"Setați numărul maxim de utilizatori în chat. Zero pentru număr nelimitat." +"Definiți numărul maxim de utilizatori în chat. Zero pentru un număr " +"nelimitat." msgid "Invite List" msgstr "Listă invitații" @@ -9546,7 +9558,7 @@ #, c-format msgid "%s set channel %s modes to: %s" -msgstr "%s a setat modurile chat-ului %s astfel: %s" +msgstr "%s a definit modurile chat-ului %s astfel: %s" #, c-format msgid "%s removed all channel %s modes" @@ -9554,7 +9566,7 @@ #, c-format msgid "%s set %s's modes to: %s" -msgstr "%s a setat modurile pentru %s astfel: %s" +msgstr "%s a definit modurile pentru %s astfel: %s" #, c-format msgid "%s removed all %s's modes" @@ -9906,11 +9918,11 @@ #, c-format msgid "no channel modes are set on %s" -msgstr "chat-ul %s nu are setat niciun mod" +msgstr "chat-ul %s nu are niciun mod definit" #, c-format msgid "Failed to set cmodes for %s" -msgstr "Nu s-au putut seta modurile chat-ului %s" +msgstr "Nu s-au putut defini modurile chat-ului %s" #, c-format msgid "Unknown command: %s, (may be a client bug)" @@ -10091,7 +10103,7 @@ #, c-format msgid "User Name: \t%s\n" -msgstr "Nume utilizator: \t%s\n" +msgstr "Nume de utilizator: \t%s\n" #, c-format msgid "Email: \t\t%s\n" @@ -10324,7 +10336,7 @@ msgstr "Utilizează proxy-ul contului pentru conexiuni HTTP și HTTPS" msgid "Chat room list URL" -msgstr "Adresă listă camere de chat" +msgstr "Adresa listei camerelor de chat" msgid "Yahoo JAPAN ID..." msgstr "Identitate Yahoo Japonia..." @@ -10743,13 +10755,14 @@ msgid "instance <instance>: Set the instance to be used on this class" msgstr "" -"instance <instanță>: Setați instanța de utilizat în această clasă" +"instance <instanță>: Definiți instanța de utilizat în această clasă" msgid "inst <instance>: Set the instance to be used on this class" -msgstr "inst <instanță>: Setați instanța de utilizat în această clasă" +msgstr "inst <instanță>: Definiți instanța de utilizat în această clasă" msgid "topic <instance>: Set the instance to be used on this class" -msgstr "topic <instanță>: Setați instanța de utilizat în această clasă" +msgstr "" +"topic <instanță>: Definiți instanța de utilizat în această clasă" msgid "sub <class> <instance> <recipient>: Join a new chat" msgstr "" @@ -10932,7 +10945,7 @@ msgstr "Eroare SSL necunoscută" msgid "Unset" -msgstr "Nesetat" +msgstr "Nedefinit" msgid "Do not disturb" msgstr "Nu deranjați" @@ -11084,7 +11097,7 @@ #. 10061 msgid "Connection refused." -msgstr "Conexiune resetată." +msgstr "Conexiune refuzată." #. 10048 msgid "Address already in use." @@ -11124,14 +11137,14 @@ msgstr "Nume _utilizator:" msgid "Remember pass_word" -msgstr "_Salvare parolă" +msgstr "Sal_vare parolă" #. Build the user options frame. msgid "User Options" msgstr "Opțiuni personale" msgid "_Local alias:" -msgstr "_Alias local:" +msgstr "Alias l_ocal:" msgid "New _mail notifications" msgstr "Notificare la _mail nou" @@ -11186,7 +11199,7 @@ msgstr "P_ort:" msgid "Pa_ssword:" -msgstr "Pa_rolă:" +msgstr "_Parolă:" msgid "Unable to save new account" msgstr "Nu se poate salva noul cont" @@ -11232,8 +11245,8 @@ "Adaugă... de câte ori doriți.\n" "\n" "Veți putea reveni la această fereastră pentru a adăuga, edita sau șterge " -"conturi utilizând Conturi->Administrare conturi în fereastra listei " -"de contacte." +"conturi utilizând Conturi->Administrare în fereastra listei de " +"contacte." #, c-format msgid "%s%s%s%s wants to add you (%s) to his or her buddy list%s%s" @@ -11242,7 +11255,7 @@ #. Buddy List msgid "Background Color" -msgstr "Culoare fundal" +msgstr "Culoarea fundalului" msgid "The background color for the buddy list" msgstr "Culoarea de fundal pentru lista de contacte" @@ -11257,7 +11270,7 @@ #. Note to translators: These two strings refer to the background color #. of a buddy list group when in its expanded state msgid "Expanded Background Color" -msgstr "Culoare fundal la desfacere" +msgstr "Culoarea fundalului la desfacere" msgid "The background color of an expanded group" msgstr "Culoarea de fundal a unui grup desfăcut" @@ -11265,15 +11278,15 @@ #. Note to translators: These two strings refer to the font and color #. of a buddy list group when in its expanded state msgid "Expanded Text" -msgstr "Text text la desfacere" +msgstr "Culoarea textului la desfacere" msgid "The text information for when a group is expanded" -msgstr "Informația text pentru un grup desfăcut" +msgstr "Detaliile textului pentru un grup desfăcut" #. Note to translators: These two strings refer to the background color #. of a buddy list group when in its collapsed state msgid "Collapsed Background Color" -msgstr "Culoare fundal la strângere" +msgstr "Culoarea fundalului la strângere" msgid "The background color of a collapsed group" msgstr "Culoarea de fundal a unui grup strâns" @@ -11284,13 +11297,13 @@ msgstr "Text la strângere" msgid "The text information for when a group is collapsed" -msgstr "Informația text pentru un grup strâns" +msgstr "Detaliile textului pentru un grup strâns" #. Buddy #. Note to translators: These two strings refer to the background color #. of a buddy list contact or chat room msgid "Contact/Chat Background Color" -msgstr "Culoare fundal contact/chat" +msgstr "Culoarea fundalului pentru contacte și chat-uri" msgid "The background color of a contact or chat" msgstr "Culoarea de fundal a unui contact sau chat" @@ -11298,64 +11311,65 @@ #. Note to translators: These two strings refer to the font and color #. of a buddy list contact when in its expanded state msgid "Contact Text" -msgstr "Text contact" +msgstr "Textul contactului" msgid "The text information for when a contact is expanded" -msgstr "Informația text pentru un contact strâns" +msgstr "Detaliile textului pentru un contact desfăcut" #. Note to translators: These two strings refer to the font and color #. of a buddy list buddy when it is online msgid "Online Text" -msgstr "Text online" +msgstr "Textul contactelor online" msgid "The text information for when a buddy is online" -msgstr "Informația text pentru un contact online" +msgstr "Detaliile textului pentru contacte online" #. Note to translators: These two strings refer to the font and color #. of a buddy list buddy when it is away msgid "Away Text" -msgstr "Text absent" +msgstr "Textul contactelor absente" msgid "The text information for when a buddy is away" -msgstr "Informația text pentru un contact absent" +msgstr "Detaliile textului pentru contacte absente" #. Note to translators: These two strings refer to the font and color #. of a buddy list buddy when it is offline msgid "Offline Text" -msgstr "Text offline" +msgstr "Textul contactelor offline" msgid "The text information for when a buddy is offline" -msgstr "Informația text pentru un contact offline" +msgstr "Detaliile textului pentru contacte offline" #. Note to translators: These two strings refer to the font and color #. of a buddy list buddy when it is idle msgid "Idle Text" -msgstr "Text inactiv" +msgstr "Textul contactelor inactive" msgid "The text information for when a buddy is idle" -msgstr "Informația text pentru un contact inactiv" +msgstr "Detaliile textului pentru contacte inactive" #. Note to translators: These two strings refer to the font and color #. of a buddy list buddy when they have sent you a new message msgid "Message Text" -msgstr "Text mesaj" +msgstr "Textul mesajelor necitite" msgid "The text information for when a buddy has an unread message" -msgstr "Informația text pentru un contact cu un mesaj necitit" +msgstr "Detaliile textului pentru contacte cu mesaje necitite" #. Note to translators: These two strings refer to the font and color #. of a buddy list buddy when they have sent you a new message msgid "Message (Nick Said) Text" -msgstr "Textul mesajului (utilizatorul a spus)" +msgstr "Textul mesajelor noi" msgid "" "The text information for when a chat has an unread message that mentions " "your nickname" msgstr "" -"Informația text pentru un chat cu un mesaj necitit ce vă menționează numele" +"Detaliile textului pentru un chat cu un mesaj necitit ce vă menționează " +"numele" msgid "The text information for a buddy's status" -msgstr "Informația text pentru starea unui contact" +msgstr "Detaliile textului pentru statusul unui contact" #, c-format msgid "You have %d contact named %s. Would you like to merge them?" @@ -11383,8 +11397,7 @@ msgid "" "Please enter the appropriate information about the chat you would like to " "join.\n" -msgstr "" -"Introduceți informațiile despre chat-ul în care doriți să participați.\n" +msgstr "Introduceți detaliile chat-ului în care doriți intrați.\n" msgid "Room _List" msgstr "_Listă de camere" @@ -11493,7 +11506,7 @@ msgstr "Mesaj (opțional)" msgid "Edit User Mood" -msgstr "Schimbare a propriei dispoziții" +msgstr "Schimbați-vă dispoziția" #. NOTE: Do not set any accelerator to Control+O. It is mapped by #. gtk_blist_key_press_cb to "Get User Info" on the selected buddy. @@ -11551,14 +11564,14 @@ msgstr "/_Conturi" msgid "/Accounts/Manage Accounts" -msgstr "/Conturi/Administrare conturi" +msgstr "/Conturi/Administrare" #. Tools msgid "/_Tools" msgstr "/_Unelte" msgid "/Tools/Buddy _Pounces" -msgstr "/Unelte/Î_ntâmpinări contacte" +msgstr "/Unelte/Î_ntâmpinări pentru contacte" msgid "/Tools/_Certificates" msgstr "/Unelte/_Certificate" @@ -11582,7 +11595,7 @@ msgstr "/Unelte/_Transfer de fișiere" msgid "/Tools/R_oom List" -msgstr "/Unelte/_Listă camere de chat" +msgstr "/Unelte/_Lista camerelor de chat" msgid "/Tools/System _Log" msgstr "/Unelte/În_registrări de sistem" @@ -11690,7 +11703,7 @@ msgstr "/Unelte/Securitate" msgid "/Tools/Room List" -msgstr "/Unelte/Listă camere de chat" +msgstr "/Unelte/Lista camerelor de chat" #, c-format msgid "%d unread message from %s\n" @@ -11741,7 +11754,7 @@ "parte:" msgid "Username:" -msgstr "Nume utilizator:" +msgstr "Nume de utilizator:" msgid "Password:" msgstr "Parolă:" @@ -11764,8 +11777,8 @@ "Bun venit în %s!\n" "\n" "Nu aveți niciun cont activ. Activați-vă conturile de mesagerie instant în " -"fereastra Conturi, accesibilă pe calea Conturi->Administrare " -"conturi. Abia după activare veți putea utiliza conturile definite." +"fereastra Conturi, accesibilă pe calea Conturi->Administrare. " +"Abia după activare veți putea utiliza conturile definite." #. set the Show Offline Buddies option. must be done #. * after the treeview or faceprint gets mad. -Robot101 @@ -11786,16 +11799,16 @@ msgstr "/Contacte/Arată/Iconițele de protocol" msgid "Add a buddy.\n" -msgstr "Adaugă un contact.\n" +msgstr "Adăugați un contact.\n" msgid "Buddy's _username:" -msgstr "Nume de _utilizator:" +msgstr "_Nume de utilizator:" msgid "(Optional) A_lias:" -msgstr "A_lias (opțional):" +msgstr "_Alias (opțional):" msgid "Add buddy to _group:" -msgstr "Adaugă contactul în _grupul:" +msgstr "_Grup:" msgid "This protocol does not support chat rooms." msgstr "Acest protocol nu suportă camere de chat." @@ -11810,20 +11823,20 @@ "Please enter an alias, and the appropriate information about the chat you " "would like to add to your buddy list.\n" msgstr "" -"Introduceți un alias și informațiile necesare pentru acel chat pe care " -"doriți să-l adăugați în lista de contacte.\n" +"Introduceți un alias și informațiile necesare pentru chat-ul pe care doriți " +"să-l adăugați în lista de contacte.\n" msgid "A_lias:" -msgstr "A_lias:" +msgstr "_Alias:" msgid "_Group:" msgstr "_Grup:" msgid "Auto_join when account connects." -msgstr "Intră a_utomat la autentificarea contului." +msgstr "I_ntră automat la autentificarea contului." msgid "_Remain in chat after window is closed." -msgstr "_Rămâi în chat după închiderea ferestrei." +msgstr "Rămâi în chat _după închiderea ferestrei." msgid "Please enter the name of the group to be added." msgstr "Introduceți numele grupului de adăugat." @@ -11934,7 +11947,7 @@ msgstr "/Discuție/_Mesaj nou..." msgid "/Conversation/Join a _Chat..." -msgstr "/Discuție/Intrare într-un _chat..." +msgstr "/Discuție/Intrare într-un c_hat..." msgid "/Conversation/_Find..." msgstr "/Discuție/C_aută..." @@ -11961,10 +11974,10 @@ msgstr "/Discuție/Media/Ap_el audio\\/video" msgid "/Conversation/Se_nd File..." -msgstr "/Discuție/_Trimite un fișier..." +msgstr "/Discuție/Trimite un _fișier..." msgid "/Conversation/Get _Attention" -msgstr "/Discuție/Cere _atenție" +msgstr "/Discuție/Cere a_tenție" msgid "/Conversation/Add Buddy _Pounce..." msgstr "/Discuție/Adaugă î_ntâmpinare..." @@ -11979,7 +11992,7 @@ msgstr "/Discuție/Mai m_ult" msgid "/Conversation/Al_ias..." -msgstr "/Discuție/Al_ias..." +msgstr "/Discuție/A_lias..." msgid "/Conversation/_Block..." msgstr "/Discuție/_Blochează..." @@ -12170,7 +12183,7 @@ msgstr "Nu în fereastra chat-urilor" msgid "New window" -msgstr "În fereastră nouă" +msgstr "În ferestre noi" msgid "By group" msgstr "După grup" @@ -12229,9 +12242,6 @@ msgid "Fatal Error" msgstr "Erori fatale" -msgid "bug master" -msgstr "admin al rapoartelor de erori" - msgid "artist" msgstr "artist" @@ -12411,6 +12421,9 @@ msgid "Maithili" msgstr "Maithili" +msgid "Meadow Mari" +msgstr "Meadow Mari" + msgid "Macedonian" msgstr "Macedoneană" @@ -12826,64 +12839,64 @@ msgstr "Fără iconițe în _selecție" msgid "Hyperlink color" -msgstr "Culoare adresă" +msgstr "Culoarea adreselor web" msgid "Color to draw hyperlinks." -msgstr "Culoare pentru afișarea adreselor." +msgstr "Culoarea pentru afișarea adreselor web." msgid "Hyperlink visited color" -msgstr "Culoare adresă web" +msgstr "Culoarea adreselor web vizitate" msgid "Color to draw hyperlink after it has been visited (or activated)." -msgstr "Culoare pentru afișarea adreselor web vizitate (ori activate)." +msgstr "Culoarea pentru afișarea adreselor web vizitate (ori activate)." msgid "Hyperlink prelight color" -msgstr "Culoare evidențiere adresă" +msgstr "Culoarea de evidențiere a adresei" msgid "Color to draw hyperlinks when mouse is over them." -msgstr "Culoare pentru afișarea adreselor sub cursorul de maus." +msgstr "Culoarea de afișare a adreselor web sub cursorul de maus." msgid "Sent Message Name Color" -msgstr "Culoare pentru mesaje trimise" +msgstr "Culoarea mesajelor trimise" msgid "Color to draw the name of a message you sent." -msgstr "Culoare de utilizat pentru numele mesajelor pe care le trimiteți." +msgstr "Culoarea de utilizat pentru numele mesajelor pe care le trimiteți." msgid "Received Message Name Color" -msgstr "Culoare pentru mesaje primite" +msgstr "Culoarea mesajelor primite" msgid "Color to draw the name of a message you received." -msgstr "Culoare de utilizat pentru numele mesajelor pe care le primiți." +msgstr "Culoarea de utilizat pentru numele mesajelor pe care le primiți." msgid "\"Attention\" Name Color" -msgstr "Culoare de atenționare" +msgstr "Culoarea de atenționare" msgid "Color to draw the name of a message you received containing your name." -msgstr "Culoare de utilizat pentru numele mesajelor ce vă pomenesc numele." +msgstr "Culoarea de utilizat pentru numele mesajelor ce vă pomenesc numele." msgid "Action Message Name Color" -msgstr "Culoare pentru mesajele comenzi" +msgstr "Culoarea pentru mesajele comenzi" msgid "Color to draw the name of an action message." -msgstr "Culoare de utilizat pentru numele mesajelor de tip comandă." +msgstr "Culoarea de utilizat pentru numele mesajelor de tip comandă." msgid "Action Message Name Color for Whispered Message" -msgstr "Culoare pentru mesajele comenzi în mod discret" +msgstr "Culoarea pentru mesajele comenzi în mod discret" msgid "Color to draw the name of a whispered action message." -msgstr "Culoare de utilizat pentru numele mesajelor discrete de acțiune." +msgstr "Culoarea de utilizat pentru numele mesajelor discrete de acțiune." msgid "Whisper Message Name Color" -msgstr "Culoare pentru mesajele discrete" +msgstr "Culoarea mesajelor discrete" msgid "Color to draw the name of a whispered message." -msgstr "Culoare de utilizat pentru numele mesajelor discrete." +msgstr "Culoarea de utilizat pentru numele mesajelor discrete." msgid "Typing notification color" msgstr "Culoarea mesajelor de notificare" msgid "The color to use for the typing notification" -msgstr "Culoare de utilizat pentru notificarea tastării" +msgstr "Culoarea de utilizat pentru notificările de tastare" msgid "Typing notification font" msgstr "Fontul mesajelor de notificare" @@ -12951,7 +12964,7 @@ msgstr "Inserare adresă" msgid "_Insert" -msgstr "Inserea_ză" +msgstr "Ins_erare" #, c-format msgid "Failed to store image: %s\n" @@ -13009,7 +13022,7 @@ msgstr "Nume font" msgid "Foreground Color" -msgstr "Culoare text" +msgstr "Culoarea textului" msgid "Reset Formatting" msgstr "Fără formatare" @@ -13051,16 +13064,16 @@ msgstr "_Nume font" msgid "Foreground _color" -msgstr "Culoare te_xt" +msgstr "Culoarea te_xtului" msgid "Bac_kground color" -msgstr "Culoare f_undal" +msgstr "Culoarea f_undalului" msgid "_Image" msgstr "_Imagine" msgid "_Link" -msgstr "_Link" +msgstr "_Adresă web" msgid "_Horizontal rule" msgstr "Linie _orizontală" @@ -13360,13 +13373,13 @@ msgstr "O_prirea din tastare" msgid "Sends a _message" -msgstr "Trimiterea unui _mesaj" +msgstr "Tr_imiterea unui mesaj" msgid "Ope_n an IM window" msgstr "Desc_hide o discuție" msgid "_Pop up a notification" -msgstr "Deschide _o fereastră de notificare" +msgstr "De_schide o fereastră de notificare" msgid "Send a _message" msgstr "Trimite un mesa_j" @@ -13387,13 +13400,13 @@ msgstr "_Testare" msgid "P_ounce only when my status is not Available" -msgstr "Întâmpinare doar în starea de _indisponibilitate" +msgstr "Întâmpinare doar în starea de indisponibi_litate" msgid "_Recurring" msgstr "Re_curentă" msgid "Pounce Target" -msgstr "Țintă întâmpinare" +msgstr "Ținta întâmpinării" msgid "Started typing" msgstr "A început să tasteze" @@ -13493,7 +13506,7 @@ msgstr "Pentru mesajele necitite" msgid "Conversation Window" -msgstr "Fereastra de discuții" +msgstr "Fereastră de discuții" msgid "_Hide new IM conversations:" msgstr "Ascunde discuțiile _noi:" @@ -13515,7 +13528,7 @@ msgstr "Arată _butoanele de închidere a taburilor" msgid "_Placement:" -msgstr "_Plasament:" +msgstr "_Plasare:" msgid "Top" msgstr "Sus" @@ -13536,7 +13549,7 @@ msgstr "Vertical in dreapta" msgid "N_ew conversations:" -msgstr "D_iscuții noi:" +msgstr "Di_scuții noi:" msgid "Show _formatting on incoming messages" msgstr "_Păstrează formatarea mesajelor primite" @@ -13554,7 +13567,7 @@ msgstr "Notifică contactele când le scri_u" msgid "Highlight _misspelled words" -msgstr "_Evidențiază greșelile de ortografie" +msgstr "E_vidențiază greșelile de ortografie" msgid "Use smooth-scrolling" msgstr "Derulare cu efect" @@ -13598,7 +13611,7 @@ msgstr "Utilizează adresa IP _autodetectată: %s" msgid "ST_UN server:" -msgstr "Server ST_UN:" +msgstr "Ser_ver STUN:" msgid "Example: stunserver.org" msgstr "Exemplu: stunserver.org" @@ -13610,7 +13623,7 @@ msgstr "Porturi" msgid "_Enable automatic router port forwarding" -msgstr "Acti_vează automat „port forwarding” în ruter" +msgstr "Activea_ză automat „port forwarding” în ruter" msgid "_Manually specify range of ports to listen on:" msgstr "_Specificați intervalul de porturi:" @@ -13632,7 +13645,7 @@ msgstr "Port _UDP:" msgid "Use_rname:" -msgstr "_Nume utilizator:" +msgstr "_Nume de utilizator:" msgid "Pass_word:" msgstr "_Parolă:" @@ -13684,7 +13697,7 @@ msgstr "Chromium (chrome)" msgid "Manual" -msgstr "Manual" +msgstr "Personalizat" msgid "Browser Selection" msgstr "Navigator preferat" @@ -13702,23 +13715,23 @@ msgstr "_Navigator:" msgid "_Open link in:" -msgstr "_Deschide adresa:" +msgstr "_Deschide adresele web:" msgid "Browser default" -msgstr "După cum e setat navigatorul" +msgstr "Respectând opțiunile navigatorului" msgid "Existing window" -msgstr "Într-o fereastră existentă" +msgstr "În ferestre existente" msgid "New tab" -msgstr "Într-un tab nou" +msgstr "În taburi noi" #, c-format msgid "" "_Manual:\n" "(%s for URL)" msgstr "" -"_Manual:\n" +"_Personalizat:\n" "(%s pentru adresă)" msgid "Proxy Server" @@ -13748,7 +13761,7 @@ msgstr "P_ort:" msgid "User_name:" -msgstr "_Nume utilizator:" +msgstr "_Nume de utilizator:" msgid "Log _format:" msgstr "_Formatul înregistrărilor:" @@ -13803,7 +13816,7 @@ "Sound c_ommand:\n" "(%s for filename)" msgstr "" -"Comandă de _redare sunet\n" +"Comandă de _redare audio\n" "(%s pentru numele fișierului)" msgid "M_ute sounds" @@ -13853,7 +13866,7 @@ msgstr "Utilizează _ultimul status" msgid "Status to a_pply at startup:" -msgstr "Status de utilizat la _pornire:" +msgstr "Status de utili_zat la pornire:" msgid "Interface" msgstr "Interfață" @@ -14006,7 +14019,7 @@ msgstr "Editare iconiță simbolică" msgid "Add Smiley" -msgstr "Adăugare iconiță simbolică" +msgstr "Adăugați o iconiță simbolică" msgid "_Image:" msgstr "_Imagine:" @@ -14016,7 +14029,7 @@ msgstr "_Textul combinației de semne" msgid "Smiley" -msgstr "Iconiță simbolice" +msgstr "Iconiță simbolică" msgid "Shortcut Text" msgstr "Textul combinației de semne" @@ -14078,7 +14091,7 @@ "use it as the buddy icon for this user." msgstr "" "Puteți trimite această imagine printr-un transfer de fișiere, o puteți " -"insera în acest mesaj sau o puteți seta ca avatar pentru acest contact." +"insera în acest mesaj sau o puteți utiliza ca avatar pentru acest contact." msgid "Set as buddy icon" msgstr "Utilizează ca avatar" @@ -14090,20 +14103,20 @@ msgstr "Inserează în mesaj" msgid "Would you like to set it as the buddy icon for this user?" -msgstr "Doriți să o setați ca avatar pentru acest contact?" +msgstr "Doriți să o utilizați ca avatar pentru acest contact?" msgid "" "You can send this image as a file transfer, or use it as the buddy icon for " "this user." msgstr "" "Puteți trimite această imagine printr-un transfer de fișiere sau o puteți " -"seta ca avatar pentru acest contact." +"utiliza ca avatar pentru acest contact." msgid "" "You can insert this image into this message, or use it as the buddy icon for " "this user" msgstr "" -"Puteți insera imaginea în acest mesaj sau o puteți seta ca avatar pentru " +"Puteți insera imaginea în acest mesaj sau o puteți utiliza ca avatar pentru " "acest contact." #. I don't know if we really want to do anything here. Most of @@ -14145,7 +14158,7 @@ msgstr "Nu s-a putut utiliza iconița" msgid "_Open Link" -msgstr "_Deschide linkul" +msgstr "_Deschide adresa" msgid "_Copy Link Location" msgstr "_Copiază adresa" @@ -14192,7 +14205,7 @@ msgstr "_Invită" msgid "_Modify..." -msgstr "_Modifică..." +msgstr "E_ditare..." msgid "_Add..." msgstr "_Adaugă..." @@ -14254,7 +14267,7 @@ #. *< name #. *< version msgid "Contact Availability Prediction plugin." -msgstr "Modul pentru disponibilitatea contactelor" +msgstr "Modul pentru prevederea disponibilității contactelor." #. * summary msgid "Displays statistical information about your buddies' availability" @@ -14391,7 +14404,7 @@ msgstr "Descoperire de servicii" msgid "_Browse" -msgstr "_Navigare:" +msgstr "_Navigare" msgid "Server does not exist" msgstr "Server inexistent" @@ -14403,7 +14416,7 @@ msgstr "Descoperire de servicii XMPP" msgid "Allows browsing and registering services." -msgstr "Permite navigarea și înregistrarea serviciilor" +msgstr "Permite navigarea și înregistrarea de servicii XMPP." msgid "" "This plugin is useful for registering with legacy transports or other XMPP " @@ -14416,7 +14429,7 @@ msgstr "După numărul discuțiilor" msgid "Conversation Placement" -msgstr "Plasament discuții" +msgstr "Plasarea discuțiilor" #. Translators: "New conversations" should match the text in the preferences dialog and "By conversation count" should be the same text used above msgid "" @@ -14440,12 +14453,12 @@ #. *< priority #. *< id msgid "ExtPlacement" -msgstr "Ferestre extra" +msgstr "Plasare extra" #. *< name #. *< version msgid "Extra conversation placement options." -msgstr "Opțiuni de plasare a discuțiilor în plus." +msgstr "Opțiuni suplimentare de plasare a discuțiilor." #. *< summary #. * description @@ -14651,7 +14664,7 @@ msgstr "Adaugă o căsuță în lista de contacte care vă anunță mailurile noi." msgid "Markerline" -msgstr "Marcaj mesaje noi" +msgstr "Marcaj pentru mesaje noi" msgid "Draw a line to indicate new messages in a conversation." msgstr "Marchează cu o linie mesajele noi dintr-o discuție." @@ -14790,7 +14803,7 @@ #. *< priority #. *< id msgid "Message Notification" -msgstr "Notificări mesaje" +msgstr "Notificări pentru mesaje" #. *< name #. *< version @@ -14827,10 +14840,10 @@ "- Trimite un mesaj contactelor din listă atunci când se autentifică." msgid "Hyperlink Color" -msgstr "Culoare adresă web" +msgstr "Culoarea adresei web" msgid "Visited Hyperlink Color" -msgstr "Culoare adresă web vizitată" +msgstr "Culoarea adresei web vizitate" msgid "Highlighted Message Name Color" msgstr "Numele culorii pentru evidențierea mesajelor" @@ -14845,13 +14858,13 @@ msgstr "Introducere text" msgid "Conversation History" -msgstr "Istoricul discuției" +msgstr "Înregistrări de discuții" msgid "Request Dialog" -msgstr "Dialog cerere" +msgstr "Fereastră de dialog" msgid "Notify Dialog" -msgstr "Dialog notificare" +msgstr "Fereastră de notificare" msgid "Select Color" msgstr "Alegeți o culoare" @@ -14865,10 +14878,10 @@ msgstr "Alegeți un font pentru %s" msgid "GTK+ Interface Font" -msgstr "Font interfață GTK+" +msgstr "Fontul interfeței GTK+" msgid "GTK+ Text Shortcut Theme" -msgstr "Temă combinații de taste GTK+ Text" +msgstr "Tema de combinații de taste GTK+ Text" msgid "Disable Typing Notification Text" msgstr "Dezactivează textul notificării la tastare" @@ -14896,7 +14909,7 @@ msgstr "Recitește fișierele gtkrc" msgid "Pidgin GTK+ Theme Control" -msgstr "Control temă GTK+ Pidgin" +msgstr "Modificare a temei GTK+ în Pidgin" msgid "Provides access to commonly used gtkrc settings." msgstr "Permite accesul la cele mai uzuale opțiuni gtkrc." @@ -14935,7 +14948,7 @@ #. *< priority #. *< id msgid "Release Notification" -msgstr "Notificări versiuni noi" +msgstr "Notificări pentru versiuni noi" #. *< name #. *< version @@ -14965,7 +14978,7 @@ #. *< name #. *< version msgid "Conversation Window Send Button." -msgstr "Buton de trimitere în fereastra de discuții" +msgstr "Buton de trimitere în fereastra de discuții." #. *< summary msgid "" @@ -15019,10 +15032,10 @@ msgstr "Activează corectarea ultimului cuvânt la trimitere" msgid "Text replacement" -msgstr "Corecturi text" +msgstr "Corecturi de text" msgid "Replaces text in outgoing messages according to user-defined rules." -msgstr "Schimbă mesajele trimise după reguli predefinite de utilizator." +msgstr "Schimbă mesajele trimise după reguli predefinite." msgid "Just logged in" msgstr "Tocmai s-a autentificat" @@ -15148,7 +15161,7 @@ #. *< version #. * summary msgid "Display iChat-style timestamps" -msgstr "Marcaje de timp în stil iChat" +msgstr "Marcaje de timp în stil iChat." #. * description msgid "Display iChat-style timestamps every N minutes." @@ -15192,7 +15205,7 @@ #. *< priority #. *< id msgid "Message Timestamp Formats" -msgstr "Formatare marcaje de timp" +msgstr "Formatare pentru marcajele de timp" #. *< name #. *< version @@ -15370,7 +15383,7 @@ #. *< version #. * summary msgid "Send and receive raw XMPP stanzas." -msgstr "Trimitere și primire blocuri XMPP brute" +msgstr "Trimitere și primire de blocuri XMPP brute" #. * description msgid "This plugin is useful for debugging XMPP servers or clients." @@ -15519,6 +15532,13 @@ msgid "You do not have permission to uninstall this application." msgstr "Nu aveţi drepturile de acces necesare dezinstalării acestei aplicaţii." +#~ msgid "Automatically reject from users not in buddy list" +#~ msgstr "" +#~ "Refuză automat pentru utilizatorii ce nu fac parte din lista de contacte" + +#~ msgid "bug master" +#~ msgstr "admin al rapoartelor de erori" + #~ msgid "Error requesting %s" #~ msgstr "Eroare la cererea %s" diff -r a7397a3d67ef -r 626efe139f98 po/ru.po --- a/po/ru.po Sun Jan 09 23:32:10 2011 +0000 +++ b/po/ru.po Sat Feb 12 23:54:14 2011 +0000 @@ -3,14 +3,14 @@ # Sergey Volozhanin , 2001. # Alexandre Prokoudine , 2003, 2004. # Dmitry Beloglazov , 2004-2008. -# Антон Самохвалов , 2008-2010. +# Антон Самохвалов , 2008-2011. # # msgid "" msgstr "" "Project-Id-Version: ru\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-12-19 13:34-0500\n" +"POT-Creation-Date: 2011-02-02 23:34-0500\n" "PO-Revision-Date: 2008-05-14 15:00+0400\n" "Last-Translator: Антон Самохвалов \n" "Language-Team: \n" @@ -1277,9 +1277,8 @@ msgid "Someone says your username in chat" msgstr "Кто-то произносит ваше имя пользователя в чате" -#, fuzzy msgid "Attention received" -msgstr "Требуется активация" +msgstr "Получено внимание" msgid "GStreamer Failure" msgstr "Ошибка GStreamer" @@ -1566,10 +1565,10 @@ msgid "TinyURL plugin" msgstr "Модуль TinyURL" -#, fuzzy msgid "When receiving a message with URL(s), use TinyURL for easier copying" msgstr "" -"При получении сообщения с адресами URL, TinyURL для облегчённого копирования" +"При получении сообщения с адресами URL, использовать TinyURL для облегчения " +"копирования" msgid "Online" msgstr "В сети" @@ -1667,13 +1666,11 @@ msgid "Set User Info" msgstr "Установить пользовательскую информацию" -#, fuzzy msgid "This protocol does not support setting a public alias." -msgstr "Этот протокол не поддерживает чаты." - -#, fuzzy +msgstr "Этот протокол не поддерживает установку общего доменного имени." + msgid "This protocol does not support fetching the public alias." -msgstr "Этот протокол не поддерживает чаты." +msgstr "Этот протокол не поддерживает получение общего доменного имени." msgid "Unknown" msgstr "Неизвестно" @@ -1702,13 +1699,12 @@ "Сертификат ещё не подтверждён. Проверьте правильность даты и времени на " "вашем компьютере." -#, fuzzy msgid "" "The certificate has expired and should not be considered valid. Check that " "your computer's date and time are accurate." msgstr "" -"Сертификат ещё не подтверждён. Проверьте правильность даты и времени на " -"вашем компьютере." +"Срок сертификата истёк и его больше нельзя считать действительным. " +"Проверьте правильность времени и даты на вашем компьютере." #. Translators: "domain" refers to a DNS domain (e.g. talk.google.com) msgid "The certificate presented is not issued to this domain." @@ -2361,8 +2357,11 @@ "Сохранять файлы в\n" "(укажите полный путь)" -msgid "Automatically reject from users not in buddy list" -msgstr "Отвергать автоматически от пользователей не из списка собеседников" +#, fuzzy +msgid "" +"When a file-transfer request arrives from a user who is\n" +"*not* on your buddy list:" +msgstr "При поступлении запроса передачи файлов от %s" msgid "" "Notify with a popup when an autoaccepted file transfer is complete\n" @@ -2375,6 +2374,10 @@ msgid "Create a new directory for each user" msgstr "Создайте для каждого пользователя новую папку" +#, fuzzy +msgid "Escape the filenames" +msgstr "%s отменил передачу файла" + msgid "Notes" msgstr "Заметки" @@ -3838,7 +3841,10 @@ msgstr "" "Сервер требует аутентификацию простым текстом через нешифрованный поток" -#. This should never happen! +#. This happens when the server sends back jibberish +#. * in the "additional data with success" case. +#. * Seen with Wildfire 3.0.1. +#. msgid "Invalid response from server" msgstr "Неверный отклик от сервера" @@ -3900,21 +3906,20 @@ "The server does support channel binding, but did not appear to advertise " "it. This indicates a likely MITM attack" msgstr "" - -#, fuzzy +"Этот сервер не поддерживает привязку канала, но не выглядит его рекламой. " +"Это говорит о возможной MITM атаке" + msgid "Server does not support channel binding" -msgstr "Сервер не поддерживает блокировку" - -#, fuzzy +msgstr "Сервер не поддерживает привязку канала" + msgid "Unsupported channel binding method" -msgstr "Неподдерживаемая кодировка" +msgstr "Неподдерживаемый метод привязки канала" msgid "User not found" msgstr "Пользователь не найден" -#, fuzzy msgid "Invalid Username Encoding" -msgstr "Неверное имя пользователя" +msgstr "Неверная кодировка имя пользователя" msgid "Resource Constraint" msgstr "Недостаток ресурсов" @@ -4367,15 +4372,13 @@ msgstr "Текст настроения" msgid "Allow Buzz" -msgstr "Разрешить сплетни" - -#, fuzzy +msgstr "Разрешить оклики" + msgid "Mood Name" -msgstr "Отчество" - -#, fuzzy +msgstr "Имя настроения" + msgid "Mood Comment" -msgstr "Комментарий собеседника" +msgstr "Комментарий настроения" #. primitive #. ID @@ -4631,7 +4634,7 @@ #, c-format msgid "%s has buzzed you!" -msgstr "%s позвал вас!" +msgstr "%s окликнул вас!" #, c-format msgid "Buzzing %s..." @@ -4645,19 +4648,18 @@ msgid "Unable to initiate media with %s: user is not online" msgstr "Обмен файлами с %s не удаётся: пользователь не в сети" -#, fuzzy, c-format +#, c-format msgid "Unable to initiate media with %s: not subscribed to user presence" -msgstr "" -"Обмен файлами с %s не удаётся: нет подписки на присутствие пользователя" +msgstr "Обмен файлами с %s не удался: нет подписки на присутствие пользователя" msgid "Media Initiation Failed" msgstr "Обмен файлами не удался" -#, fuzzy, c-format +#, c-format msgid "" "Please select the resource of %s with which you would like to start a media " "session." -msgstr "Выберите ресурс %s, которому вы хотели бы отправить файл" +msgstr "Выберите ресурс %s, с которым вы хотели бы начать обмен файлами" msgid "Select a Resource" msgstr "Выбрать ресурс" @@ -4723,11 +4725,10 @@ msgstr "прозвон <jid>:\tПрозвонить пользователя/компонент/сервер." msgid "buzz: Buzz a user to get their attention" -msgstr "трёп: окликнуть пользователя, чтобы привлечь его внимание" - -#, fuzzy +msgstr "оклик: окликнуть пользователя, чтобы привлечь его внимание" + msgid "mood: Set current user mood" -msgstr "Выберите корректного пользователя" +msgstr "настроение: Установите текущее настроение пользователя" msgid "Extended Away" msgstr "Расширенный \"Отошёл\"" @@ -4749,20 +4750,17 @@ msgid "Domain" msgstr "Домен" -#, fuzzy msgid "Require encryption" -msgstr "Требовать авторизацию" - -#, fuzzy +msgstr "Требовать шифрование" + msgid "Use encryption if available" -msgstr "Пользовательская информация для %s недоступна" +msgstr "Если доступно, использовать шифрование" msgid "Use old-style SSL" -msgstr "" - -#, fuzzy +msgstr "Использовать SSL старого образца" + msgid "Connection security" -msgstr "Сброс соединения" +msgstr "Безопасность соединения" msgid "Allow plaintext auth over unencrypted streams" msgstr "Разрешить идентификацию простым текстом через нешифрованные потоки" @@ -4892,31 +4890,26 @@ msgid "Please select the resource of %s to which you would like to send a file" msgstr "Выберите ресурс %s, которому вы хотели бы отправить файл" -#, fuzzy msgid "Afraid" -msgstr "Арабский" - -#, fuzzy +msgstr "Боязливый" + msgid "Amazed" -msgstr "Стыдящийся" - -#, fuzzy +msgstr "Изумлённый" + msgid "Amorous" -msgstr "Великолепный" +msgstr "Влюбчивый" msgid "Angry" msgstr "Рассерженный" -#, fuzzy msgid "Annoyed" -msgstr "Изгнан" +msgstr "Раздражённый" msgid "Anxious" msgstr "Озабоченный" -#, fuzzy msgid "Aroused" -msgstr "Вы отправляете" +msgstr "Возбуждённый" msgid "Ashamed" msgstr "Стыдящийся" @@ -4924,82 +4917,65 @@ msgid "Bored" msgstr "Скучающий" -#, fuzzy msgid "Brave" -msgstr "Сохранить" - -#, fuzzy +msgstr "Храбрый" + msgid "Calm" -msgstr "Сфера" - -#, fuzzy +msgstr "Тихий" + msgid "Cautious" -msgstr "Чаты" - -#, fuzzy +msgstr "Осторожный" + msgid "Cold" -msgstr "Жирный" - -#, fuzzy +msgstr "Холодный" + msgid "Confident" -msgstr "Конфликт" - -#, fuzzy +msgstr "Уверенный" + msgid "Confused" -msgstr "Продолжить" - -#, fuzzy +msgstr "Обескураженный" + msgid "Contemplative" -msgstr "Контакт" - -#, fuzzy +msgstr "Задумчивый" + msgid "Contented" -msgstr "Соединение установлено" - -#, fuzzy +msgstr "Довольный" + msgid "Cranky" -msgstr "Компания" +msgstr "Капризный" msgid "Crazy" -msgstr "" - -#, fuzzy +msgstr "Сумасшедший" + msgid "Creative" -msgstr "Создать" - -#, fuzzy +msgstr "Творческий" + msgid "Curious" -msgstr "Великолепный" - -#, fuzzy +msgstr "Любопытный" + msgid "Dejected" -msgstr "Отклонено" - -#, fuzzy +msgstr "Удручённый" + msgid "Depressed" -msgstr "Удалено" - -#, fuzzy +msgstr "Подавленный" + msgid "Disappointed" -msgstr "Соединение разорвано." +msgstr "Разочарованный" msgid "Disgusted" -msgstr "" - -#, fuzzy +msgstr "Отвращающий" + msgid "Dismayed" -msgstr "Отключено" - -#, fuzzy +msgstr "Встревоженный" + msgid "Distracted" -msgstr "Независимый" +msgstr "Рассеянный" msgid "Embarrassed" -msgstr "" - -#, fuzzy +msgstr "Стеснительный" + msgid "Envious" -msgstr "Озабоченный" +msgstr "Завистливый" msgid "Excited" msgstr "Возбуждённый" @@ -5469,9 +5445,8 @@ msgid "Other Locations" msgstr "Местоположение пользователя" -#, fuzzy msgid "You can sign out from other locations here" -msgstr "Вы уже откуда-то подключены" +msgstr "Здесь Вы можете отключиться из других мест" #. TODO: Due to limitations in our current request field API, the #. following string will show up with a trailing colon. This should @@ -5479,18 +5454,16 @@ #. a separate purple_request_field_label_new_without_colon function, #. or by never automatically adding the colon and requiring that #. callers add the colon themselves. -#, fuzzy msgid "You are not signed in from any other locations." -msgstr "Вы уже откуда-то подключены" - -#, fuzzy +msgstr "Вы ниоткуда не вошли в сеть." + msgid "Allow multiple logins?" -msgstr "Разрешить одновременный вход с разных мест" +msgstr "Разрешить одновременные входы с разных мест?" msgid "" "Do you want to allow or disallow connecting from multiple locations " "simultaneously?" -msgstr "" +msgstr "Вы разрешаете одновременный вход в сеть из разных мест или нет?" msgid "Allow" msgstr "Разрешить" @@ -5812,12 +5785,11 @@ msgid "Show custom smileys" msgstr "Показать свои смайлики" -#, fuzzy msgid "Allow direct connections" -msgstr "Не удаётся создать соединение" +msgstr "Разрешить прямые соединения" msgid "Allow connecting from multiple locations" -msgstr "" +msgstr "Разрешить соединения из нескольких мест" msgid "nudge: nudge a user to get their attention" msgstr "подталкивание: подтолкнуть пользователя, чтобы привлечь его внимание" @@ -5825,13 +5797,11 @@ msgid "Windows Live ID authentication:Unable to connect" msgstr "Аутентификация Windows Live ID: не могу соединиться" -#, fuzzy msgid "Windows Live ID authentication:Invalid response" -msgstr "Аутентификация Windows Live ID: неверный ответ" - -#, fuzzy +msgstr "Аутентификация Windows Live ID:некорректный ответ" + msgid "The following users are missing from your addressbook" -msgstr "Следующие пользователи отсутствуют в вашей адресной книге" +msgstr "Следующие пользователи из вашей адресной книги отсутствуют" #, c-format msgid "Unknown error (%d): %s" @@ -6043,9 +6013,8 @@ msgid "The two PINs you entered do not match." msgstr "Два введённых PIN-кода не совпадают." -#, fuzzy msgid "The Display Name you entered is invalid." -msgstr "Введённое имя неправильное." +msgstr "Введённое Вами имя отображения некорректно." msgid "" "The birthday you entered is invalid. The correct format is: 'YYYY-MM-DD'." @@ -6065,7 +6034,7 @@ "Информация о вашем профиле ещё не получена. Пожалуйста, попробуйте позже." msgid "Your UID" -msgstr "" +msgstr "Ваш UID" #. pin #. pin (required) @@ -6128,26 +6097,23 @@ msgid "Logging In..." msgstr "Входит в сеть..." -#, fuzzy msgid "" "Unable to connect to the MXit server. Please check your server settings." msgstr "" -"Не удаётся соединиться с сервером MXit. Пожалуйста, проверьте ваши настройки " -"сервера." +"Не удаётся соединиться с сервером MXit. Пожалуйста, проверьте настройки " +"вашего сервера." msgid "Connecting..." msgstr "Соединение..." -#, fuzzy msgid "The PIN you entered has an invalid length [7-10]." -msgstr "Введённый ключ SecurID неверный." +msgstr "Введённый Вами PIN-код неправильной длины [7-10]." #. mxit login name msgid "MXit ID" -msgstr "" +msgstr "MXit ID" #. show the form to the user to complete -#, fuzzy msgid "Register New MXit Account" msgstr "Зарегистрировать новую учётную запись MXit" @@ -6212,6 +6178,24 @@ msgid "Retrieving User Information..." msgstr "Получение информации о пользователе..." +#. you were kicked +#, fuzzy +msgid "You have been kicked from this MultiMX." +msgstr "Вас выгнали: (%s)" + +#, fuzzy +msgid "was kicked" +msgstr "Неверный билет" + +#, fuzzy +msgid "_Room Name:" +msgstr "_Комната:" + +#. Display system message in chat window +#, fuzzy +msgid "You have invited" +msgstr "Вам пришла почта!" + msgid "Loading menu..." msgstr "Загрузка меню..." @@ -6241,24 +6225,6 @@ msgid "Enable splash-screen popup" msgstr "Включить контекстное меню экрана-заставки" -#. you were kicked -#, fuzzy -msgid "You have been kicked from this MultiMX." -msgstr "Вас выгнали: (%s)" - -#, fuzzy -msgid "was kicked" -msgstr "Неверный билет" - -#, fuzzy -msgid "_Room Name:" -msgstr "_Комната:" - -#. Display system message in chat window -#, fuzzy -msgid "You have invited" -msgstr "Вам пришла почта!" - #, fuzzy msgid "Last Online" msgstr "В сети" @@ -7047,6 +7013,8 @@ "You required encryption in your account settings, but one of the servers " "doesn't support it." msgstr "" +"Вы запросили шифрование настройками учётной записи, но один из серверов его " +"не поддерживает" #. Note to translators: The first %s is a URL, the second is an #. error message. @@ -7054,9 +7022,8 @@ msgid "Error requesting %s: %s" msgstr "Ошибка запроса %s: %s" -#, fuzzy msgid "The server returned an empty response" -msgstr "Не удаётся соединиться: сервер вернул пустой ответ." +msgstr "Сервер ответил тишиной" msgid "" "Server requested that you fill out a CAPTCHA in order to sign in, but this " @@ -7365,6 +7332,8 @@ "You required encryption in your account settings, but encryption is not " "supported by your system." msgstr "" +"Вы запросили шифрование настройками учётной записи, но ваша система не " +"поддерживает его." #, c-format msgid "You may be disconnected shortly. If so, check %s for updates." @@ -7973,75 +7942,6 @@ "Картинок IM. Поскольку ваш IP-адрес будет открыт, это может повлечь угрозу " "конфиденциальности." -msgid "Invalid SNAC" -msgstr "Неверный SNAC" - -msgid "Server rate limit exceeded" -msgstr "Превышен предел скорости сервера" - -msgid "Client rate limit exceeded" -msgstr "Превышен предел скорости клиента" - -msgid "Service unavailable" -msgstr "Служба недоступна" - -msgid "Service not defined" -msgstr "Служба не определена" - -msgid "Obsolete SNAC" -msgstr "Устаревший SNAC" - -msgid "Not supported by host" -msgstr "Не поддерживается узлом" - -msgid "Not supported by client" -msgstr "Не поддерживается клиентом" - -msgid "Refused by client" -msgstr "Отвергнуто клиентом" - -msgid "Reply too big" -msgstr "Ответ слишком велик" - -msgid "Responses lost" -msgstr "Отклики потеряны" - -msgid "Request denied" -msgstr "Запрос отвергнут" - -msgid "Busted SNAC payload" -msgstr "Сломана полезная нагрузка SNAC" - -msgid "Insufficient rights" -msgstr "Недостаточные права" - -msgid "In local permit/deny" -msgstr "В местном разрешении/запрете" - -msgid "Warning level too high (sender)" -msgstr "Уровень предупреждения слишком высок (отправитель)" - -msgid "Warning level too high (receiver)" -msgstr "Уровень предупреждения слишком высок (получатель)" - -msgid "User temporarily unavailable" -msgstr "Пользователь временно недоступен" - -msgid "No match" -msgstr "Нет совпадения" - -msgid "List overflow" -msgstr "Переполнение списка" - -msgid "Request ambiguous" -msgstr "Неясный запрос" - -msgid "Queue full" -msgstr "Очередь полна" - -msgid "Not while on AOL" -msgstr "Не в AOL" - #. Label msgid "Buddy Icon" msgstr "Значок собеседника" @@ -8160,58 +8060,122 @@ msgid "Capabilities" msgstr "Возможности" +msgid "Invalid SNAC" +msgstr "Неверный SNAC" + +msgid "Server rate limit exceeded" +msgstr "Превышен предел скорости сервера" + +msgid "Client rate limit exceeded" +msgstr "Превышен предел скорости клиента" + +msgid "Service unavailable" +msgstr "Служба недоступна" + +msgid "Service not defined" +msgstr "Служба не определена" + +msgid "Obsolete SNAC" +msgstr "Устаревший SNAC" + +msgid "Not supported by host" +msgstr "Не поддерживается узлом" + +msgid "Not supported by client" +msgstr "Не поддерживается клиентом" + +msgid "Refused by client" +msgstr "Отвергнуто клиентом" + +msgid "Reply too big" +msgstr "Ответ слишком велик" + +msgid "Responses lost" +msgstr "Отклики потеряны" + +msgid "Request denied" +msgstr "Запрос отвергнут" + +msgid "Busted SNAC payload" +msgstr "Сломана полезная нагрузка SNAC" + +msgid "Insufficient rights" +msgstr "Недостаточные права" + +msgid "In local permit/deny" +msgstr "В местном разрешении/запрете" + +msgid "Warning level too high (sender)" +msgstr "Уровень предупреждения слишком высок (отправитель)" + +msgid "Warning level too high (receiver)" +msgstr "Уровень предупреждения слишком высок (получатель)" + +msgid "User temporarily unavailable" +msgstr "Пользователь временно недоступен" + +msgid "No match" +msgstr "Нет совпадения" + +msgid "List overflow" +msgstr "Переполнение списка" + +msgid "Request ambiguous" +msgstr "Неясный запрос" + +msgid "Queue full" +msgstr "Очередь полна" + +msgid "Not while on AOL" +msgstr "Не в AOL" + #. Translators: This string is a menu option that, if selected, will cause #. you to appear online to the chosen user even when your status is set to #. Invisible. msgid "Appear Online" -msgstr "Появляется в сети" +msgstr "Видимый для всех" #. Translators: This string is a menu option that, if selected, will cause #. you to appear offline to the chosen user when your status is set to #. Invisible (this is the default). -#, fuzzy msgid "Don't Appear Online" -msgstr "Появляется в сети" +msgstr "Невидимый лишь для избранных" #. Translators: This string is a menu option that, if selected, will cause #. you to always appear offline to the chosen user (even when your status #. isn't Invisible). msgid "Appear Offline" -msgstr "Вероятно не в сети" +msgstr "Невидимый для всех" #. Translators: This string is a menu option that, if selected, will cause #. you to appear offline to the chosen user if you are invisible, and #. appear online to the chosen user if you are not invisible (this is the #. default). -#, fuzzy msgid "Don't Appear Offline" -msgstr "Вероятно не в сети" - -#, fuzzy +msgstr "Невидимый для избранных" + msgid "you have no buddies on this list" -msgstr "Вас выгнали: (%s)" - -#, fuzzy, c-format +msgstr "в этом списке у вас нет собеседников" + +#, c-format msgid "" "You can add a buddy to this list by right-clicking on them and selecting \"%s" "\"" msgstr "" -"Вы можете запросить авторизацию от этих собеседников повторно, щёлкнув на " -"них правой кнопкой мыши и выбрав \"Повторный запрос авторизации\"." - -#, fuzzy +"Вы можете добавить собеседника в этот список правым щелчком мыши, выбрав " +"затем \"%s\"" + msgid "Visible List" -msgstr "Видимый" +msgstr "Список видимости" msgid "These buddies will see your status when you switch to \"Invisible\"" -msgstr "" - -#, fuzzy +msgstr "Эти собеседники увидят ваш статус при переключении в \"Невидимый\"" + msgid "Invisible List" -msgstr "Список приглашённых" +msgstr "Список невидимости" msgid "These buddies will always see you as offline" -msgstr "" +msgstr "Эти собеседники никогда не увидят вас в сети" msgid "Aquarius" msgstr "Водолей" @@ -8811,14 +8775,14 @@ msgid "Select Server" msgstr "Выберите сервер" -msgid "QQ2005" -msgstr "QQ2005" +msgid "QQ2008" +msgstr "QQ2008" msgid "QQ2007" msgstr "QQ2007" -msgid "QQ2008" -msgstr "QQ2008" +msgid "QQ2005" +msgstr "QQ2005" msgid "Connect by TCP" msgstr "Соединение по TCP" @@ -11768,9 +11732,8 @@ msgid "/Tools/Pr_ivacy" msgstr "/Средства/К_онфиденциальность" -#, fuzzy msgid "/Tools/Set _Mood" -msgstr "/Средства/Системный _журнал" +msgstr "/Средства/Установить н_астроение" msgid "/Tools/_File Transfers" msgstr "/Средства/Передача _файлов" @@ -11791,20 +11754,17 @@ msgid "/Help/Online _Help" msgstr "/Помощь/Помощь в _сети" -#, fuzzy msgid "/Help/_Build Information" -msgstr "Информация о собеседнике" +msgstr "/Помощь/Информация о с_борке" msgid "/Help/_Debug Window" msgstr "/Помощь/Окно _отладки" -#, fuzzy msgid "/Help/De_veloper Information" -msgstr "Информация о сервере" - -#, fuzzy +msgstr "/Помощь/Информация о разработ_чике" + msgid "/Help/_Translator Information" -msgstr "Персональная информация" +msgstr "/Помощь/Информация о перево_дчике" msgid "/Help/_About" msgstr "/Помощь/О _программе" @@ -12426,9 +12386,6 @@ msgid "Fatal Error" msgstr "Неисправимая ошибка" -msgid "bug master" -msgstr "мастер глюков" - msgid "artist" msgstr "исполнитель" @@ -12611,6 +12568,10 @@ msgid "Maithili" msgstr "Суахили" +#, fuzzy +msgid "Meadow Mari" +msgstr "Новая почта" + msgid "Macedonian" msgstr "Македонский" @@ -12727,7 +12688,7 @@ msgid "Lithuanian" msgstr "Литовский" -#, fuzzy, c-format +#, c-format msgid "" "%s is a messaging client based on libpurple which is capable of connecting " "to multiple messaging services at once. %s is written in C using GTK+. %s " @@ -12736,15 +12697,12 @@ "copyrighted by its contributors, a list of whom is also distributed with " "%s. There is no warranty for %s.

" msgstr "" -"%s - графический модульный клиент обмена сообщениями, основывающийся на " -"библиотеке libpurple, позволяющей использовать AIM, MSN, Yahoo!, XMPP, ICQ, " -"IRC, SILC, SIP/SIMPLE, Novell GroupWise, Lotus Sametime, Bonjour, Zephyr, " -"MySpaceIM, Gadu-Gadu и QQ одновременно. Написан с использованием GTK+." -"

Вы можете изменять и распространять программу по условиям GPL " -"(версии 2 или более поздней). Копия GPL содержится в файле 'COPYING', " -"распространяемом с %s. Авторские права на %s принадлежат участникам " -"проекта. Полный список участников проекта смотрите в файле 'COPYRIGHT'. Мы " -"не предоставляем никаких гарантий на эту программу.

" +"%s - клиент обмена сообщениями, основанный на библиотеке libpurple, которая " +"позволяет одновременно подключаться по нескольким службам. %s написан на С с " +"использованием GTK+. %s выпущен, и может быть изменён или перераспределён, " +"по условиям GPL версии 2 (или поздней). Копия GPL распространяется вместе с " +"%s. Права на %s защищены его участниками, список которых также " +"распространяется с %s. Гарантия на %s не предоставляется.

" #, c-format msgid "" @@ -12753,8 +12711,11 @@ "Channel: #pidgin on irc.freenode.net
\tXMPP MUC: devel@conference.pidgin." "im

" msgstr "" - -#, fuzzy, c-format +"Полезные ресурсы
\tВеб-" +"сайт
\tЧасто задаваемые вопросы
\tIRC канал: " +"#pidgin на irc.freenode.net
\tXMPP MUC: devel@conference.pidgin.im

" + +#, c-format msgid "" "Help from other Pidgin users is available by " "e-mailing support@pidgin.im
" msgstr "" -"Помощь от других пользователей Pidgin: support@pidgin.im
Это публичная " -"почтовая рассылка! (архив)
Мы не можем помочь по сторонним протоколам или модулям!
Основной " -"язык этой рассылки - английский. Вы, конечно, можете писать на " -"другом языке, но ответы могут быть менее полезными.

" +"Помощь от других пользователей Pidgin " +"доступна по эл.почте
support@pidgin.im
Это публичная почтовая рассылка! (
архив)
Мы не можем помочь по протоколам или " +"модулям третьих лиц!
Основной язык этой рассылки - английский. " +"Вы, конечно, можете писать на другом языке, но ответы могут оказаться менее " +"полезными.
" #, c-format msgid "About %s" msgstr "О %s" -#, fuzzy msgid "Build Information" -msgstr "Информация о собеседнике" +msgstr "Информация о сборке" #. End of not to be translated section -#, fuzzy, c-format +#, c-format msgid "%s Build Information" -msgstr "Информация о собеседнике" +msgstr "Информация о сборке %s" msgid "Current Developers" msgstr "Текущие разработчики" @@ -13210,7 +13171,7 @@ msgstr "Уменьшить размер шрифта" msgid "Font Face" -msgstr "Облик шрифта" +msgstr "Вид шрифта" msgid "Foreground Color" msgstr "Цвет текста" @@ -13224,9 +13185,8 @@ msgid "Insert Smiley" msgstr "Вставить смайлик" -#, fuzzy msgid "Send Attention" -msgstr "Кнопка отправки" +msgstr "Обратить внимание" msgid "_Bold" msgstr "_Жирный" @@ -13253,7 +13213,7 @@ #. * need to update them when formatting changes. The above items don't need #. * no updating nor nothin' msgid "_Font face" -msgstr "_Облик шрифта" +msgstr "_Вид шрифта" msgid "Foreground _color" msgstr "Цвет _текста" @@ -13405,13 +13365,11 @@ msgid "Exiting because another libpurple client is already running.\n" msgstr "Выхожу, потому что уже запущен другой клиент libpurple.\n" -#, fuzzy msgid "_Media" msgstr "/_Медиа" -#, fuzzy msgid "_Hangup" -msgstr "Приостановить разговор" +msgstr "_Удержать звонок" #, c-format msgid "%s wishes to start an audio/video session with you." @@ -13471,9 +13429,8 @@ msgid "Dismiss" msgstr "Распустить" -#, fuzzy msgid "You have pounced!" -msgstr "Вам пришла почта!" +msgstr "На вас набросились!" msgid "The following plugins will be unloaded." msgstr "Следующие модули будут выгружены." @@ -13660,14 +13617,13 @@ msgstr "Выборы тем" #. Instructions -#, fuzzy msgid "" "Select a theme that you would like to use from the lists below.\n" "New themes can be installed by dragging and dropping them onto the theme " "list." msgstr "" -"Из списка ниже, выберите тему смайликов, которую вы бы хотели использовать.\n" -" Новые темы можно установить перетаскиванием их в список тем." +"Из списка ниже выберите тему, которую вы хотели бы использовать.\n" +"Новые темы можно установить перетаскиванием их в список тем." msgid "Buddy List Theme:" msgstr "Тема Списка собеседников:" @@ -13817,9 +13773,8 @@ msgid "_Enable automatic router port forwarding" msgstr "_Разрешить автоматическую переадресацию портов маршрутизатора" -#, fuzzy msgid "_Manually specify range of ports to listen on:" -msgstr "Указать диапазон прослушиваемых портов _вручную" +msgstr "Указать диапазон прослушивае_мых портов вручную:" msgid "_Start:" msgstr "_Начало:" @@ -13834,9 +13789,8 @@ msgid "_TURN server:" msgstr "_TURN сервер:" -#, fuzzy msgid "_UDP Port:" -msgstr "П_орт:" +msgstr "_UDP порт:" msgid "Use_rname:" msgstr "Им_я пользователя:" @@ -13860,7 +13814,7 @@ msgstr "Konqueror" msgid "Google Chrome" -msgstr "" +msgstr "Google Chrome" #. Do not move the line below. Code below expects gnome-open to be in #. * this list immediately after xdg-open! @@ -13884,11 +13838,11 @@ #. Translators: please do not translate "chromium-browser" here! msgid "Chromium (chromium-browser)" -msgstr "" +msgstr "Chromium (chromium-browser)" #. Translators: please do not translate "chrome" here! msgid "Chromium (chrome)" -msgstr "" +msgstr "Chromium (chrome)" msgid "Manual" msgstr "Другой" @@ -13931,7 +13885,6 @@ msgid "Proxy Server" msgstr "Прокси-сервер" -#, fuzzy msgid "Proxy preferences are configured in GNOME preferences" msgstr "Настройки прокси выставляются в настройках GNOME" @@ -14236,13 +14189,11 @@ msgid "Select Buddy Icon" msgstr "Выбрать иконку собеседника" -#, fuzzy msgid "Click to change your buddyicon for this account." -msgstr "Щёлкните, чтобы изменить свою иконку для этой учётной записи." - -#, fuzzy +msgstr "Щёлкните, чтобы изменить иконку для этой учётной записи." + msgid "Click to change your buddyicon for all accounts." -msgstr "Щёлкните, чтобы изменить свою иконку для всех учётных записей." +msgstr "Щёлкните, чтобы изменить иконку для всех учётных записей." msgid "Waiting for network connection" msgstr "Ожидание сетевого соединения" @@ -14260,7 +14211,7 @@ msgstr "Google-общение" msgid "Facebook (XMPP)" -msgstr "" +msgstr "Facebook (XMPP)" #, c-format msgid "The following error has occurred loading %s: %s" @@ -14328,13 +14279,12 @@ msgid "Cannot send launcher" msgstr "Нельзя отправить ярлык" -#, fuzzy msgid "" "You dragged a desktop launcher. Most likely you wanted to send the target of " "this launcher instead of this launcher itself." msgstr "" -"Вы перетянули кнопку запуска рабочего стола. Скорее всего вы хотели " -"отправить то, на что эта кнопка ссылается, а не саму её." +"Вы перетянули значок запуска с рабочего стола. Скорее всего вы хотели " +"отправить то, на что этот значок ссылается, а не его самого." #, c-format msgid "" @@ -14357,7 +14307,6 @@ msgid "Could not set icon" msgstr "Не удалось установить значок" -#, fuzzy msgid "_Open Link" msgstr "_Открыть ссылку" @@ -14367,28 +14316,23 @@ msgid "_Copy Email Address" msgstr "_Скопировать адрес email" -#, fuzzy msgid "_Open File" -msgstr "Открыть файл..." - -#, fuzzy +msgstr "_Открыть файл" + msgid "Open _Containing Directory" -msgstr "Открыть содержащий каталог" +msgstr "Открыть _содержащую папку" msgid "Save File" msgstr "Сохранить файл" -#, fuzzy msgid "_Play Sound" -msgstr "Воспроизвести звук" - -#, fuzzy +msgstr "_Воспроизводить звук" + msgid "_Save File" -msgstr "Сохранить файл" - -#, fuzzy +msgstr "_Сохранить файл" + msgid "Do you really want to clear?" -msgstr "Вы действительно хотите удалить %s?" +msgstr "Вы действительно хотите очистить?" msgid "Select color" msgstr "Выбрать цвет" @@ -14413,7 +14357,6 @@ msgid "_Modify..." msgstr "_Изменить..." -#, fuzzy msgid "_Add..." msgstr "_Добавить..." @@ -14438,9 +14381,8 @@ msgid "Small" msgstr "Маленький" -#, fuzzy msgid "Smaller versions of the default smileys" -msgstr "Меньшие версии смайликов по умолчанию" +msgstr "Уменьшенные версии смайликов по умолчанию" msgid "Response Probability:" msgstr "Вероятность отклика:" @@ -14628,11 +14570,12 @@ msgid "Allows browsing and registering services." msgstr "Позволяет просматривать и регистрировать службы." -#, fuzzy msgid "" "This plugin is useful for registering with legacy transports or other XMPP " "services." -msgstr "Этот модуль полезен для отладки XMPP серверов или клиентов." +msgstr "" +"Этот модуль полезен для регистрации с базовыми транспортными или другими " +"XMPP службами." msgid "By conversation count" msgstr "По количеству бесед" @@ -14934,14 +14877,13 @@ msgstr "Модуль музыкальной переписки для совместного сочинения" #. * summary -#, fuzzy msgid "" "The Music Messaging Plugin allows a number of users to simultaneously work " "on a piece of music by editing a common score in real-time." msgstr "" -"Модуль музыкальной переписки позволяет нескольким пользователям совместно " -"работать над кусочком мелодии путём редактирования общих результатов в " -"реальном времени." +"Модуль музыкальной переписки позволяет нескольким пользователям одновременно " +"работать над кусочком мелодии путём редактирования общих данных в реальном " +"времени." #. ---------- "Notify For" ---------- msgid "Notify For" @@ -14972,7 +14914,6 @@ msgid "Set window manager \"_URGENT\" hint" msgstr "Установить подсказку \"С_РОЧНО\" оконного менеджера" -#, fuzzy msgid "_Flash window" msgstr "_Мигающее окно" @@ -14981,9 +14922,8 @@ msgstr "_Поднимать окно беседы" #. Present conversation method button -#, fuzzy msgid "_Present conversation window" -msgstr "_Поднимать окно беседы" +msgstr "_Показать окно беседы" #. ---------- "Notification Removals" ---------- msgid "Notification Removal" @@ -15058,17 +14998,14 @@ msgid "Hyperlink Color" msgstr "Цвет гиперссылки" -#, fuzzy msgid "Visited Hyperlink Color" msgstr "Цвет посещённой гиперссылки" -#, fuzzy msgid "Highlighted Message Name Color" -msgstr "Цвет надписи подсвеченного сообщения" - -#, fuzzy +msgstr "Цвет имени подсвеченного сообщения" + msgid "Typing Notification Color" -msgstr "Цвет набора уведомления" +msgstr "Цвет уведомления о печатании" msgid "GtkTreeView Horizontal Separation" msgstr "Горизонтальное разделение GtkTreeView" @@ -15076,7 +15013,6 @@ msgid "Conversation Entry" msgstr "Область ввода окна беседы" -#, fuzzy msgid "Conversation History" msgstr "История общения" @@ -15203,7 +15139,6 @@ msgstr "Кнопка отправки окна беседы." #. *< summary -#, fuzzy msgid "" "Adds a Send button to the entry area of the conversation window. Intended " "for use when no physical keyboard is present." @@ -15395,21 +15330,19 @@ msgid "Timestamp Format Options" msgstr "Параметры формата времени" -#, fuzzy, c-format +#, c-format msgid "_Force timestamp format:" -msgstr "_Принудительно использовать 24-часовой формат времени" - -#, fuzzy +msgstr "_Принудительно использовать формат времени:" + msgid "Use system default" -msgstr "Используемый по умолчанию" - -#, fuzzy +msgstr "Использовать системный по умолчанию" + msgid "12 hour time format" -msgstr "_Принудительно использовать 24-часовой формат времени" +msgstr "12-часовой формат времени" #, fuzzy msgid "24 hour time format" -msgstr "_Принудительно использовать 24-часовой формат времени" +msgstr "24-часовой формат времени" msgid "Show dates in..." msgstr "Показывать дату..." @@ -15485,9 +15418,8 @@ msgid "Voice/Video Settings" msgstr "Голосовые/Видео настройки" -#, fuzzy msgid "Voice and Video Settings" -msgstr "Голосовые/Видео настройки" +msgstr "Голосовые и видео настройки" #. *< name #. *< version @@ -15757,6 +15689,12 @@ msgid "You do not have permission to uninstall this application." msgstr "У Вас нет прав на удаление этого приложения." +#~ msgid "Automatically reject from users not in buddy list" +#~ msgstr "Отвергать автоматически от пользователей не из списка собеседников" + +#~ msgid "bug master" +#~ msgstr "мастер глюков" + #, fuzzy #~ msgid "An error occurred on the in-band bytestream transfer\n" #~ msgstr "Произошла ошибка при передаче внутриполосного потока байт\n" @@ -15879,12 +15817,11 @@ #~ msgid "Unable to listen on socket: %s" #~ msgstr "Не удаётся прослушивать сокет: %s" -#, fuzzy #~ msgid "%s just sent you a Nudge!" #~ msgstr "%s просто подтолкнул вас!" #~ msgid "Friendly name changes too rapidly" -#~ msgstr "Дружественные изменения именни слишком быстры" +#~ msgstr "Дружественное имя изменяется слишком быстро" #~ msgid "This Hotmail account may not be active." #~ msgstr "Эта учётная запись горячей почты может быть неактивна." @@ -15934,13 +15871,12 @@ #~ msgid "%s has removed you from his or her buddy list." #~ msgstr "%s удалил вас из своего списка собеседников." -#, fuzzy #~ msgid "" #~ "The last action you attempted could not be performed because you are over " #~ "the rate limit. Please wait 10 seconds and try again.\n" #~ msgstr "" #~ "Последнее предпринятое вами действие не может быть выполнено, так как вы " -#~ "превысили предел. Подождите 10 секунд и попытайтесь снова." +#~ "превысили предел частоты. Пожалуйста, попробуйте снова через 10 секунд." #~ msgid "" #~ "FAQ: ЧаВо: http://developer.pidgin.im/wiki/FAQ

" -#, fuzzy #~ msgid "" #~ "IRC Channel: #pidgin on irc.freenode.net

" #~ msgstr "" #~ "IRC канал: #pidgin на irc.freenode.net

" -#, fuzzy #~ msgid "XMPP MUC: devel@conference.pidgin.im

" #~ msgstr "" #~ "XMPP MUC: devel@conference.pidgin.im

" diff -r a7397a3d67ef -r 626efe139f98 po/ta.po --- a/po/ta.po Sun Jan 09 23:32:10 2011 +0000 +++ b/po/ta.po Sat Feb 12 23:54:14 2011 +0000 @@ -19,7 +19,7 @@ "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: Plural-Forms: nplurals=2; plural=(n != 1);\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Poedit-Country: INDIA\n" "X-Generator: Lokalize 1.0\n" "X-Poedit-Bookmarks: -1,470,-1,-1,-1,-1,-1,-1,-1,1715\n" diff -r a7397a3d67ef -r 626efe139f98 po/uk.po --- a/po/uk.po Sun Jan 09 23:32:10 2011 +0000 +++ b/po/uk.po Sat Feb 12 23:54:14 2011 +0000 @@ -3,14 +3,14 @@ # This file is distributed under the same license as the Pidgin package. # # Maxim V. Dziumanenko , 2004-2005. -# Oleksandr Kovalenko , 2009-2010. +# Oleksandr Kovalenko , 2009-2011. # msgid "" msgstr "" "Project-Id-Version: Pidgin\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-12-26 22:11-0500\n" -"PO-Revision-Date: 2010-12-19 22:07+0300\n" +"POT-Creation-Date: 2011-02-02 23:34-0500\n" +"PO-Revision-Date: 2011-01-30 21:27+0300\n" "Last-Translator: Oleksandr Kovalenko \n" "Language-Team: Ukrainian \n" "Language: uk\n" @@ -2360,8 +2360,12 @@ "Шлях де зберігати файли\n" "(Будь ласка, вкажіть повний шлях)" -msgid "Automatically reject from users not in buddy list" -msgstr "Автоматично відхилити від користувачів, які не в переліку контактів" +msgid "" +"When a file-transfer request arrives from a user who is\n" +"*not* on your buddy list:" +msgstr "" +"Коли запит на передавання файлу надходить від користувача,\n" +"який *не* в вашому переліку контактів" msgid "" "Notify with a popup when an autoaccepted file transfer is complete\n" @@ -2374,6 +2378,9 @@ msgid "Create a new directory for each user" msgstr "Створити нову теку для кожного користувача" +msgid "Escape the filenames" +msgstr "Екранувати назви файлів" + msgid "Notes" msgstr "Примітки" @@ -3832,7 +3839,10 @@ msgstr "" "Сервер вимагає автентифікацію звичайним текстом через нешифрований потік" -#. This should never happen! +#. This happens when the server sends back jibberish +#. * in the "additional data with success" case. +#. * Seen with Wildfire 3.0.1. +#. msgid "Invalid response from server" msgstr "Неправильна відповідь від сервера" @@ -6141,6 +6151,20 @@ msgid "Retrieving User Information..." msgstr "Отримання відомостей про користувача..." +#. you were kicked +msgid "You have been kicked from this MultiMX." +msgstr "Вас викинули з цього MultiMX." + +msgid "was kicked" +msgstr "був викинутий" + +msgid "_Room Name:" +msgstr "_Назва кімнати:" + +#. Display system message in chat window +msgid "You have invited" +msgstr "Вас запросили" + msgid "Loading menu..." msgstr "Завантаження меню..." @@ -6168,20 +6192,6 @@ msgid "Enable splash-screen popup" msgstr "Увімкнути виринаючу екранну заставку" -#. you were kicked -msgid "You have been kicked from this MultiMX." -msgstr "Вас викинули з цього MultiMX." - -msgid "was kicked" -msgstr "був викинутий" - -msgid "_Room Name:" -msgstr "_Назва кімнати:" - -#. Display system message in chat window -msgid "You have invited" -msgstr "Вас запросили" - msgid "Last Online" msgstr "Востаннє в мережі" @@ -7870,75 +7880,6 @@ "та є необхідним для передавання зображень. Так як ваша ІР адреса буде " "розкрита, це може вважатись загрозою безпеці." -msgid "Invalid SNAC" -msgstr "Неправильний SNAC" - -msgid "Server rate limit exceeded" -msgstr "Досягнуто обмеження швидкості сервера" - -msgid "Client rate limit exceeded" -msgstr "Досягнуто обмеження швидкості клієнта" - -msgid "Service unavailable" -msgstr "Послуга недоступна" - -msgid "Service not defined" -msgstr "Послуга не визначена" - -msgid "Obsolete SNAC" -msgstr "Застарілий SNAC" - -msgid "Not supported by host" -msgstr "Не підтримується вузлом" - -msgid "Not supported by client" -msgstr "Не підтримується клієнтом" - -msgid "Refused by client" -msgstr "Відкинута клієнтом" - -msgid "Reply too big" -msgstr "Відповідь завелика" - -msgid "Responses lost" -msgstr "Відповіді втрачені" - -msgid "Request denied" -msgstr "Запит відхилений" - -msgid "Busted SNAC payload" -msgstr "Зіпсовані дані SNAC" - -msgid "Insufficient rights" -msgstr "Недостатньо прав" - -msgid "In local permit/deny" -msgstr "В місцевому переліку дозволених/заборонених" - -msgid "Warning level too high (sender)" -msgstr "Рівень попередження дуже високий (відправник)" - -msgid "Warning level too high (receiver)" -msgstr "Рівень попередження дуже високий (отримувач)" - -msgid "User temporarily unavailable" -msgstr "Користувач тимчасово недоступний" - -msgid "No match" -msgstr "Немає збігів" - -msgid "List overflow" -msgstr "Перелік переповнений" - -msgid "Request ambiguous" -msgstr "Запит незрозумілий" - -msgid "Queue full" -msgstr "Черга переповнена" - -msgid "Not while on AOL" -msgstr "Не тоді, коли у AOL" - #. Label msgid "Buddy Icon" msgstr "Значок користувача" @@ -8057,6 +7998,75 @@ msgid "Capabilities" msgstr "Можливості" +msgid "Invalid SNAC" +msgstr "Неправильний SNAC" + +msgid "Server rate limit exceeded" +msgstr "Досягнуто обмеження швидкості сервера" + +msgid "Client rate limit exceeded" +msgstr "Досягнуто обмеження швидкості клієнта" + +msgid "Service unavailable" +msgstr "Послуга недоступна" + +msgid "Service not defined" +msgstr "Послуга не визначена" + +msgid "Obsolete SNAC" +msgstr "Застарілий SNAC" + +msgid "Not supported by host" +msgstr "Не підтримується вузлом" + +msgid "Not supported by client" +msgstr "Не підтримується клієнтом" + +msgid "Refused by client" +msgstr "Відкинута клієнтом" + +msgid "Reply too big" +msgstr "Відповідь завелика" + +msgid "Responses lost" +msgstr "Відповіді втрачені" + +msgid "Request denied" +msgstr "Запит відхилений" + +msgid "Busted SNAC payload" +msgstr "Зіпсовані дані SNAC" + +msgid "Insufficient rights" +msgstr "Недостатньо прав" + +msgid "In local permit/deny" +msgstr "В місцевому переліку дозволених/заборонених" + +msgid "Warning level too high (sender)" +msgstr "Рівень попередження дуже високий (відправник)" + +msgid "Warning level too high (receiver)" +msgstr "Рівень попередження дуже високий (отримувач)" + +msgid "User temporarily unavailable" +msgstr "Користувач тимчасово недоступний" + +msgid "No match" +msgstr "Немає збігів" + +msgid "List overflow" +msgstr "Перелік переповнений" + +msgid "Request ambiguous" +msgstr "Запит незрозумілий" + +msgid "Queue full" +msgstr "Черга переповнена" + +msgid "Not while on AOL" +msgstr "Не тоді, коли у AOL" + #. Translators: This string is a menu option that, if selected, will cause #. you to appear online to the chosen user even when your status is set to #. Invisible. @@ -8648,14 +8658,14 @@ msgid "Select Server" msgstr "Виберіть сервер" -msgid "QQ2005" -msgstr "QQ2005" +msgid "QQ2008" +msgstr "QQ2008" msgid "QQ2007" msgstr "QQ2007" -msgid "QQ2008" -msgstr "QQ2008" +msgid "QQ2005" +msgstr "QQ2005" msgid "Connect by TCP" msgstr "З'єднання по TCP" @@ -12222,9 +12232,6 @@ msgid "Fatal Error" msgstr "Фатальна помилка" -msgid "bug master" -msgstr "спеціаліст з вад" - msgid "artist" msgstr "виконавець" @@ -12404,6 +12411,9 @@ msgid "Maithili" msgstr "Майтхілі" +msgid "Meadow Mari" +msgstr "Луговомарійська" + msgid "Macedonian" msgstr "Македонська" @@ -15504,5 +15514,11 @@ msgid "You do not have permission to uninstall this application." msgstr "Ви не маєте права на видалення цієї програми." +#~ msgid "bug master" +#~ msgstr "спеціаліст з вад" + +#~ msgid "Automatically reject from users not in buddy list" +#~ msgstr "Автоматично відхилити від користувачів, які не в переліку контактів" + #~ msgid "Error requesting %s" #~ msgstr "Помилка запиту %s" diff -r a7397a3d67ef -r 626efe139f98 po/zh_HK.po --- a/po/zh_HK.po Sun Jan 09 23:32:10 2011 +0000 +++ b/po/zh_HK.po Sat Feb 12 23:54:14 2011 +0000 @@ -1,14 +1,14 @@ # NOTE: This file is generated from zh_TW.po by mkzhhk.pl,v 1.27 2010/12/17 01:08:13 acli Exp # --- # Pidgin's Traditional Chinese translation -# Copyright (C) 2002-2010, Paladin R. Liu -# Copyright (C) 2003-2010, Ambrose C. Li +# Copyright (C) 2002-2011, Paladin R. Liu +# Copyright (C) 2003-2011, Ambrose C. Li # # PLEASE DO NOT ATTEMPT TO UPDATE THIS FILE IF THERE ARE NO # LINE NUMBERS (LINES BEGINNING WITH #:) IN THIS FILE. # # This file is distributed under the same license as the "Pidgin" package. -# $InternalId: zh_TW.po,v 1.659 2010/12/17 03:16:38 acli Exp $ +# $InternalId: zh_TW.po,v 1.661 2011/02/01 04:45:39 acli Exp $ # # ---------------------------------------------------------- # For internal use only: @@ -60,9 +60,9 @@ # msgid "" msgstr "" -"Project-Id-Version: Pidgin 2.7.8\n" +"Project-Id-Version: Pidgin 2.7.9\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-12-19 13:34-0500\n" +"POT-Creation-Date: 2011-02-02 23:34-0500\n" "PO-Revision-Date: 2010-12-16 19:32-0500\n" "Last-Translator: Ambrose Li \n" "Language-Team: Chinese (Hong Kong) \n" @@ -2439,8 +2439,10 @@ "檔案儲存路徑\n" "(請提供完整路徑)" -msgid "Automatically reject from users not in buddy list" -msgstr "自動拒絕非來自好友清單中的使用者" +msgid "" +"When a file-transfer request arrives from a user who is\n" +"*not* on your buddy list:" +msgstr "當一個不在你好友清單內的使用者要求檔案傳輸時" msgid "" "Notify with a popup when an autoaccepted file transfer is complete\n" @@ -2453,6 +2455,9 @@ msgid "Create a new directory for each user" msgstr "給每個使用者建立該使用者專用的目綠" +msgid "Escape the filenames" +msgstr "逸出檔案名稱中的特別字符" + msgid "Notes" msgstr "備註" @@ -3920,7 +3925,10 @@ msgid "Server requires plaintext authentication over an unencrypted stream" msgstr "伺服器需要經由未經加密的串流進行明文認證" -#. This should never happen! +#. This happens when the server sends back jibberish +#. * in the "additional data with success" case. +#. * Seen with Wildfire 3.0.1. +#. msgid "Invalid response from server" msgstr "伺服器送來了無效的回應" @@ -6434,6 +6442,21 @@ msgid "Retrieving User Information..." msgstr "讀取使用者資訊中..." +#. you were kicked +msgid "You have been kicked from this MultiMX." +msgstr "你已經從MultiMX中被踢出。" + +msgid "was kicked" +msgstr "被踢出" + +msgid "_Room Name:" +msgstr "聊天室名稱(_R):" + +# NOTE 很差的原文,其實整合上下文後是「You have invited: %s」(%s 是被邀請者) +#. Display system message in chat window +msgid "You have invited" +msgstr "你邀請了" + msgid "Loading menu..." msgstr "載入清單中..." @@ -6462,21 +6485,6 @@ msgid "Enable splash-screen popup" msgstr "啟用啟動畫面彈出視窗" -#. you were kicked -msgid "You have been kicked from this MultiMX." -msgstr "你已經從MultiMX中被踢出。" - -msgid "was kicked" -msgstr "被踢出" - -msgid "_Room Name:" -msgstr "聊天室名稱(_R):" - -# NOTE 很差的原文,其實整合上下文後是「You have invited: %s」(%s 是被邀請者) -#. Display system message in chat window -msgid "You have invited" -msgstr "你邀請了" - msgid "Last Online" msgstr "最近上線" @@ -8126,90 +8134,6 @@ "這個要求將會在兩部電腦間建立起直接連線,而這是在傳送即時訊息圖像時所必須的。" "這樣將會曝露你的 IP 位址,因此可能會有私隱方面的風險。" -msgid "Invalid SNAC" -msgstr "無效的 SNAC" - -msgid "Server rate limit exceeded" -msgstr "超出了伺服器端的速率上限" - -msgid "Client rate limit exceeded" -msgstr "超出了用戶端的速率上限" - -# NOTE SNAC 錯誤代碼5,見 http://iserverd.khstu.ru/oscar/errorlist.html -# NOTE 應係指給定了一個已定義的服務 (Service, Family),但因某種原因,伺服器暫時無法提供該服務 -msgid "Service unavailable" -msgstr "服務不存在" - -msgid "Service not defined" -msgstr "服務未定義" - -# XXX 譯文有待改進 - acli 20100809 -msgid "Obsolete SNAC" -msgstr "已作廢的舊式 SNAC" - -msgid "Not supported by host" -msgstr "伺服器不支援" - -msgid "Not supported by client" -msgstr "用戶端不支援" - -msgid "Refused by client" -msgstr "被用戶端拒絕" - -# XXX 譯文有待改進 - acli 20100809 -msgid "Reply too big" -msgstr "回應太大" - -msgid "Responses lost" -msgstr "遺失回應" - -msgid "Request denied" -msgstr "請求被拒" - -# NOTE SNAC 錯誤代碼14 (0x0e),見 http://iserverd.khstu.ru/oscar/errorlist.html,指 SNAC 負載內出現了格式上的錯誤 -# XXX 譯文有待改進 - acli 20100809 -msgid "Busted SNAC payload" -msgstr "畸型的 SNAC 負載" - -msgid "Insufficient rights" -msgstr "權限不夠" - -# NOTE SNAC 錯誤代碼16 (0x10),見 http://iserverd.khstu.ru/oscar/errorlist.html -# XXX 譯文有待改進 - acli 20100809 -msgid "In local permit/deny" -msgstr "在本地端的允許/拒絕清單內" - -# NOTE SNAC 錯誤代碼17 (0x11),見 http://iserverd.khstu.ru/oscar/errorlist.html,參見其他涉及「warning level」的譯文 -msgid "Warning level too high (sender)" -msgstr "(發送者)警告等級過高" - -# NOTE SNAC 錯誤代碼18 (0x12),見 http://iserverd.khstu.ru/oscar/errorlist.html,參見其他涉及「warning level」的譯文 -msgid "Warning level too high (receiver)" -msgstr "(接收者)警告等級過高" - -msgid "User temporarily unavailable" -msgstr "使用者暫時不在線上" - -msgid "No match" -msgstr "沒有相符的記錄" - -# NOTE SNAC 錯誤代碼21 (0x15),見 http://iserverd.khstu.ru/oscar/errorlist.html -# NOTE OSCAR 協定至少有三種「List」,譯成「好友清單」可能不對 -msgid "List overflow" -msgstr "清單已滿" - -msgid "Request ambiguous" -msgstr "不明確的請求" - -msgid "Queue full" -msgstr "佇列已滿" - -# NOTE SNAC 錯誤代碼24 (0x18),見 http://iserverd.khstu.ru/oscar/errorlist.html -# NOTE 可能是指在 AOL 裏要求了一種 ICQ 的服務 -# XXX 譯文有待改進 - acli 20100809 -msgid "Not while on AOL" -msgstr "不適合於 AOL" - #. Label msgid "Buddy Icon" msgstr "好友圖示" @@ -8344,6 +8268,90 @@ msgid "Capabilities" msgstr "兼容性" +msgid "Invalid SNAC" +msgstr "無效的 SNAC" + +msgid "Server rate limit exceeded" +msgstr "超出了伺服器端的速率上限" + +msgid "Client rate limit exceeded" +msgstr "超出了用戶端的速率上限" + +# NOTE SNAC 錯誤代碼5,見 http://iserverd.khstu.ru/oscar/errorlist.html +# NOTE 應係指給定了一個已定義的服務 (Service, Family),但因某種原因,伺服器暫時無法提供該服務 +msgid "Service unavailable" +msgstr "服務不存在" + +msgid "Service not defined" +msgstr "服務未定義" + +# XXX 譯文有待改進 - acli 20100809 +msgid "Obsolete SNAC" +msgstr "已作廢的舊式 SNAC" + +msgid "Not supported by host" +msgstr "伺服器不支援" + +msgid "Not supported by client" +msgstr "用戶端不支援" + +msgid "Refused by client" +msgstr "被用戶端拒絕" + +# XXX 譯文有待改進 - acli 20100809 +msgid "Reply too big" +msgstr "回應太大" + +msgid "Responses lost" +msgstr "遺失回應" + +msgid "Request denied" +msgstr "請求被拒" + +# NOTE SNAC 錯誤代碼14 (0x0e),見 http://iserverd.khstu.ru/oscar/errorlist.html,指 SNAC 負載內出現了格式上的錯誤 +# XXX 譯文有待改進 - acli 20100809 +msgid "Busted SNAC payload" +msgstr "畸型的 SNAC 負載" + +msgid "Insufficient rights" +msgstr "權限不夠" + +# NOTE SNAC 錯誤代碼16 (0x10),見 http://iserverd.khstu.ru/oscar/errorlist.html +# XXX 譯文有待改進 - acli 20100809 +msgid "In local permit/deny" +msgstr "在本地端的允許/拒絕清單內" + +# NOTE SNAC 錯誤代碼17 (0x11),見 http://iserverd.khstu.ru/oscar/errorlist.html,參見其他涉及「warning level」的譯文 +msgid "Warning level too high (sender)" +msgstr "(發送者)警告等級過高" + +# NOTE SNAC 錯誤代碼18 (0x12),見 http://iserverd.khstu.ru/oscar/errorlist.html,參見其他涉及「warning level」的譯文 +msgid "Warning level too high (receiver)" +msgstr "(接收者)警告等級過高" + +msgid "User temporarily unavailable" +msgstr "使用者暫時不在線上" + +msgid "No match" +msgstr "沒有相符的記錄" + +# NOTE SNAC 錯誤代碼21 (0x15),見 http://iserverd.khstu.ru/oscar/errorlist.html +# NOTE OSCAR 協定至少有三種「List」,譯成「好友清單」可能不對 +msgid "List overflow" +msgstr "清單已滿" + +msgid "Request ambiguous" +msgstr "不明確的請求" + +msgid "Queue full" +msgstr "佇列已滿" + +# NOTE SNAC 錯誤代碼24 (0x18),見 http://iserverd.khstu.ru/oscar/errorlist.html +# NOTE 可能是指在 AOL 裏要求了一種 ICQ 的服務 +# XXX 譯文有待改進 - acli 20100809 +msgid "Not while on AOL" +msgstr "不適合於 AOL" + # NOTE 這四個字串在 Oscar (ICQ) 的解釋在此:http://pidgin.im/pipermail/translators/2010-November/000554.html # NOTE Oscar: 把好友新增到 Visible List 內 # NOTE Yahoo: 狀態為「隱身」時,對某指定的好友報稱上線 @@ -8988,14 +8996,14 @@ msgid "Select Server" msgstr "選擇伺服器" -msgid "QQ2005" -msgstr "QQ2005" +msgid "QQ2008" +msgstr "QQ2008" msgid "QQ2007" msgstr "QQ2007" -msgid "QQ2008" -msgstr "QQ2008" +msgid "QQ2005" +msgstr "QQ2005" msgid "Connect by TCP" msgstr "使用 TCP 連線" @@ -12626,10 +12634,6 @@ msgid "Fatal Error" msgstr "嚴重錯誤訊息" -# XXX 暫譯 - 20090226 acli -msgid "bug master" -msgstr "除錯主管" - # NOTE 這個「artist」(有別於其他的「Artist」字串)係指設計pidgin圖示的「graphic designer」,絕對不可譯成「藝人」 msgid "artist" msgstr "平面設計" @@ -12835,6 +12839,11 @@ msgid "Maithili" msgstr "邁蒂利文" +# NOTE 代碼 mhr,一種芬蘭語系的東歐語文,維基百科譯「平地馬里語」 +# XXX 找不到正式的台灣譯文,參閱 http://zh.wikipedia.org/zh/马里语 +msgid "Meadow Mari" +msgstr "平地馬里文" + # NOTE「馬其頓文」是一種東歐語文,跟希臘的馬其頓並無關係 msgid "Macedonian" msgstr "馬其頓文" @@ -16027,6 +16036,13 @@ msgid "You do not have permission to uninstall this application." msgstr "你沒有權限移除程式。" +#~ msgid "Automatically reject from users not in buddy list" +#~ msgstr "自動拒絕非來自好友清單中的使用者" + +# XXX 暫譯 - 20090226 acli +#~ msgid "bug master" +#~ msgstr "除錯主管" + #~ msgid "An error occurred on the in-band bytestream transfer\n" #~ msgstr "帶內位元組流傳輸途中發生錯誤\n" diff -r a7397a3d67ef -r 626efe139f98 po/zh_TW.po --- a/po/zh_TW.po Sun Jan 09 23:32:10 2011 +0000 +++ b/po/zh_TW.po Sat Feb 12 23:54:14 2011 +0000 @@ -1,12 +1,12 @@ # Pidgin's Traditional Chinese translation -# Copyright (C) 2002-2010, Paladin R. Liu -# Copyright (C) 2003-2010, Ambrose C. Li +# Copyright (C) 2002-2011, Paladin R. Liu +# Copyright (C) 2003-2011, Ambrose C. Li # # PLEASE DO NOT ATTEMPT TO UPDATE THIS FILE IF THERE ARE NO # LINE NUMBERS (LINES BEGINNING WITH #:) IN THIS FILE. # # This file is distributed under the same license as the "Pidgin" package. -# $InternalId: zh_TW.po,v 1.659 2010/12/17 03:16:38 acli Exp $ +# $InternalId: zh_TW.po,v 1.661 2011/02/01 04:45:39 acli Exp $ # # ---------------------------------------------------------- # For internal use only: @@ -58,9 +58,9 @@ # msgid "" msgstr "" -"Project-Id-Version: Pidgin 2.7.8\n" +"Project-Id-Version: Pidgin 2.7.9\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-12-19 13:34-0500\n" +"POT-Creation-Date: 2011-02-02 23:34-0500\n" "PO-Revision-Date: 2010-12-16 19:32-0500\n" "Last-Translator: Ambrose Li \n" "Language-Team: Chinese (Traditional) \n" @@ -2437,8 +2437,10 @@ "檔案儲存路徑\n" "(請提供完整路徑)" -msgid "Automatically reject from users not in buddy list" -msgstr "自動拒絕非來自好友清單中的使用者" +msgid "" +"When a file-transfer request arrives from a user who is\n" +"*not* on your buddy list:" +msgstr "當一個不在您好友清單內的使用者要求檔案傳輸時" msgid "" "Notify with a popup when an autoaccepted file transfer is complete\n" @@ -2451,6 +2453,9 @@ msgid "Create a new directory for each user" msgstr "給每個使用者建立該使用者專用的目綠" +msgid "Escape the filenames" +msgstr "逸出檔案名稱中的特別字元" + msgid "Notes" msgstr "備註" @@ -3918,7 +3923,10 @@ msgid "Server requires plaintext authentication over an unencrypted stream" msgstr "伺服器需要經由未經加密的串流進行明文認證" -#. This should never happen! +#. This happens when the server sends back jibberish +#. * in the "additional data with success" case. +#. * Seen with Wildfire 3.0.1. +#. msgid "Invalid response from server" msgstr "伺服器送來了無效的回應" @@ -6432,6 +6440,21 @@ msgid "Retrieving User Information..." msgstr "讀取使用者資訊中..." +#. you were kicked +msgid "You have been kicked from this MultiMX." +msgstr "您已經從MultiMX中被踢出。" + +msgid "was kicked" +msgstr "被踢出" + +msgid "_Room Name:" +msgstr "聊天室名稱(_R):" + +# NOTE 很差的原文,其實整合上下文後是「You have invited: %s」(%s 是被邀請者) +#. Display system message in chat window +msgid "You have invited" +msgstr "您邀請了" + msgid "Loading menu..." msgstr "載入清單中..." @@ -6460,21 +6483,6 @@ msgid "Enable splash-screen popup" msgstr "啟用啟動畫面彈出視窗" -#. you were kicked -msgid "You have been kicked from this MultiMX." -msgstr "您已經從MultiMX中被踢出。" - -msgid "was kicked" -msgstr "被踢出" - -msgid "_Room Name:" -msgstr "聊天室名稱(_R):" - -# NOTE 很差的原文,其實整合上下文後是「You have invited: %s」(%s 是被邀請者) -#. Display system message in chat window -msgid "You have invited" -msgstr "您邀請了" - msgid "Last Online" msgstr "最後上線" @@ -8124,90 +8132,6 @@ "這個要求將會在兩部電腦間建立起直接連線,而這是在傳送即時訊息影像時所必須的。" "這樣將會曝露您的 IP 位址,因此可能會有隱私方面的風險。" -msgid "Invalid SNAC" -msgstr "無效的 SNAC" - -msgid "Server rate limit exceeded" -msgstr "超出了伺服器端的速率上限" - -msgid "Client rate limit exceeded" -msgstr "超出了用戶端的速率上限" - -# NOTE SNAC 錯誤代碼5,見 http://iserverd.khstu.ru/oscar/errorlist.html -# NOTE 應係指給定了一個已定義的服務 (Service, Family),但因某種原因,伺服器暫時無法提供該服務 -msgid "Service unavailable" -msgstr "服務不存在" - -msgid "Service not defined" -msgstr "服務未定義" - -# XXX 譯文有待改進 - acli 20100809 -msgid "Obsolete SNAC" -msgstr "已作廢的舊式 SNAC" - -msgid "Not supported by host" -msgstr "伺服器不支援" - -msgid "Not supported by client" -msgstr "用戶端不支援" - -msgid "Refused by client" -msgstr "被用戶端拒絕" - -# XXX 譯文有待改進 - acli 20100809 -msgid "Reply too big" -msgstr "回應太大" - -msgid "Responses lost" -msgstr "遺失回應" - -msgid "Request denied" -msgstr "請求被拒" - -# NOTE SNAC 錯誤代碼14 (0x0e),見 http://iserverd.khstu.ru/oscar/errorlist.html,指 SNAC 負載內出現了格式上的錯誤 -# XXX 譯文有待改進 - acli 20100809 -msgid "Busted SNAC payload" -msgstr "畸型的 SNAC 負載" - -msgid "Insufficient rights" -msgstr "權限不夠" - -# NOTE SNAC 錯誤代碼16 (0x10),見 http://iserverd.khstu.ru/oscar/errorlist.html -# XXX 譯文有待改進 - acli 20100809 -msgid "In local permit/deny" -msgstr "在本地端的允許/拒絕清單內" - -# NOTE SNAC 錯誤代碼17 (0x11),見 http://iserverd.khstu.ru/oscar/errorlist.html,參見其他涉及「warning level」的譯文 -msgid "Warning level too high (sender)" -msgstr "(發送者)警告等級過高" - -# NOTE SNAC 錯誤代碼18 (0x12),見 http://iserverd.khstu.ru/oscar/errorlist.html,參見其他涉及「warning level」的譯文 -msgid "Warning level too high (receiver)" -msgstr "(接收者)警告等級過高" - -msgid "User temporarily unavailable" -msgstr "使用者暫時不在線上" - -msgid "No match" -msgstr "沒有相符的記錄" - -# NOTE SNAC 錯誤代碼21 (0x15),見 http://iserverd.khstu.ru/oscar/errorlist.html -# NOTE OSCAR 協定至少有三種「List」,譯成「好友清單」可能不對 -msgid "List overflow" -msgstr "清單已滿" - -msgid "Request ambiguous" -msgstr "不明確的請求" - -msgid "Queue full" -msgstr "佇列已滿" - -# NOTE SNAC 錯誤代碼24 (0x18),見 http://iserverd.khstu.ru/oscar/errorlist.html -# NOTE 可能是指在 AOL 裏要求了一種 ICQ 的服務 -# XXX 譯文有待改進 - acli 20100809 -msgid "Not while on AOL" -msgstr "不適合於 AOL" - #. Label msgid "Buddy Icon" msgstr "好友圖示" @@ -8342,6 +8266,90 @@ msgid "Capabilities" msgstr "相容性" +msgid "Invalid SNAC" +msgstr "無效的 SNAC" + +msgid "Server rate limit exceeded" +msgstr "超出了伺服器端的速率上限" + +msgid "Client rate limit exceeded" +msgstr "超出了用戶端的速率上限" + +# NOTE SNAC 錯誤代碼5,見 http://iserverd.khstu.ru/oscar/errorlist.html +# NOTE 應係指給定了一個已定義的服務 (Service, Family),但因某種原因,伺服器暫時無法提供該服務 +msgid "Service unavailable" +msgstr "服務不存在" + +msgid "Service not defined" +msgstr "服務未定義" + +# XXX 譯文有待改進 - acli 20100809 +msgid "Obsolete SNAC" +msgstr "已作廢的舊式 SNAC" + +msgid "Not supported by host" +msgstr "伺服器不支援" + +msgid "Not supported by client" +msgstr "用戶端不支援" + +msgid "Refused by client" +msgstr "被用戶端拒絕" + +# XXX 譯文有待改進 - acli 20100809 +msgid "Reply too big" +msgstr "回應太大" + +msgid "Responses lost" +msgstr "遺失回應" + +msgid "Request denied" +msgstr "請求被拒" + +# NOTE SNAC 錯誤代碼14 (0x0e),見 http://iserverd.khstu.ru/oscar/errorlist.html,指 SNAC 負載內出現了格式上的錯誤 +# XXX 譯文有待改進 - acli 20100809 +msgid "Busted SNAC payload" +msgstr "畸型的 SNAC 負載" + +msgid "Insufficient rights" +msgstr "權限不夠" + +# NOTE SNAC 錯誤代碼16 (0x10),見 http://iserverd.khstu.ru/oscar/errorlist.html +# XXX 譯文有待改進 - acli 20100809 +msgid "In local permit/deny" +msgstr "在本地端的允許/拒絕清單內" + +# NOTE SNAC 錯誤代碼17 (0x11),見 http://iserverd.khstu.ru/oscar/errorlist.html,參見其他涉及「warning level」的譯文 +msgid "Warning level too high (sender)" +msgstr "(發送者)警告等級過高" + +# NOTE SNAC 錯誤代碼18 (0x12),見 http://iserverd.khstu.ru/oscar/errorlist.html,參見其他涉及「warning level」的譯文 +msgid "Warning level too high (receiver)" +msgstr "(接收者)警告等級過高" + +msgid "User temporarily unavailable" +msgstr "使用者暫時不在線上" + +msgid "No match" +msgstr "沒有相符的記錄" + +# NOTE SNAC 錯誤代碼21 (0x15),見 http://iserverd.khstu.ru/oscar/errorlist.html +# NOTE OSCAR 協定至少有三種「List」,譯成「好友清單」可能不對 +msgid "List overflow" +msgstr "清單已滿" + +msgid "Request ambiguous" +msgstr "不明確的請求" + +msgid "Queue full" +msgstr "佇列已滿" + +# NOTE SNAC 錯誤代碼24 (0x18),見 http://iserverd.khstu.ru/oscar/errorlist.html +# NOTE 可能是指在 AOL 裏要求了一種 ICQ 的服務 +# XXX 譯文有待改進 - acli 20100809 +msgid "Not while on AOL" +msgstr "不適合於 AOL" + # NOTE 這四個字串在 Oscar (ICQ) 的解釋在此:http://pidgin.im/pipermail/translators/2010-November/000554.html # NOTE Oscar: 把好友新增到 Visible List 內 # NOTE Yahoo: 狀態為「隱身」時,對某指定的好友報稱上線 @@ -8986,14 +8994,14 @@ msgid "Select Server" msgstr "選擇伺服器" -msgid "QQ2005" -msgstr "QQ2005" +msgid "QQ2008" +msgstr "QQ2008" msgid "QQ2007" msgstr "QQ2007" -msgid "QQ2008" -msgstr "QQ2008" +msgid "QQ2005" +msgstr "QQ2005" msgid "Connect by TCP" msgstr "使用 TCP 連線" @@ -12620,10 +12628,6 @@ msgid "Fatal Error" msgstr "嚴重錯誤訊息" -# XXX 暫譯 - 20090226 acli -msgid "bug master" -msgstr "除錯主管" - # NOTE 這個「artist」(有別於其他的「Artist」字串)係指設計pidgin圖示的「graphic designer」,絕對不可譯成「藝人」 msgid "artist" msgstr "平面設計" @@ -12829,6 +12833,11 @@ msgid "Maithili" msgstr "邁蒂利文" +# NOTE 代碼 mhr,一種芬蘭語系的東歐語文,維基百科譯「平地馬里語」 +# XXX 找不到正式的台灣譯文,參閱 http://zh.wikipedia.org/zh/马里语 +msgid "Meadow Mari" +msgstr "平地馬里文" + # NOTE「馬其頓文」是一種東歐語文,跟希臘的馬其頓並無關係 msgid "Macedonian" msgstr "馬其頓文" @@ -16021,6 +16030,13 @@ msgid "You do not have permission to uninstall this application." msgstr "您沒有權限移除程式。" +#~ msgid "Automatically reject from users not in buddy list" +#~ msgstr "自動拒絕非來自好友清單中的使用者" + +# XXX 暫譯 - 20090226 acli +#~ msgid "bug master" +#~ msgstr "除錯主管" + #~ msgid "An error occurred on the in-band bytestream transfer\n" #~ msgstr "帶內位元組流傳輸途中發生錯誤\n" diff -r a7397a3d67ef -r 626efe139f98 share/ca-certs/AddTrust_External_Root.pem --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/share/ca-certs/AddTrust_External_Root.pem Sat Feb 12 23:54:14 2011 +0000 @@ -0,0 +1,25 @@ +-----BEGIN CERTIFICATE----- +MIIENjCCAx6gAwIBAgIBATANBgkqhkiG9w0BAQUFADBvMQswCQYDVQQGEwJTRTEU +MBIGA1UEChMLQWRkVHJ1c3QgQUIxJjAkBgNVBAsTHUFkZFRydXN0IEV4dGVybmFs +IFRUUCBOZXR3b3JrMSIwIAYDVQQDExlBZGRUcnVzdCBFeHRlcm5hbCBDQSBSb290 +MB4XDTAwMDUzMDEwNDgzOFoXDTIwMDUzMDEwNDgzOFowbzELMAkGA1UEBhMCU0Ux +FDASBgNVBAoTC0FkZFRydXN0IEFCMSYwJAYDVQQLEx1BZGRUcnVzdCBFeHRlcm5h +bCBUVFAgTmV0d29yazEiMCAGA1UEAxMZQWRkVHJ1c3QgRXh0ZXJuYWwgQ0EgUm9v +dDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALf3GjPm8gAELTngTlvt +H7xsD821+iO2zt6bETOXpClMfZOfvUq8k+0DGuOPz+VtUFrWlymUWoCwSXrbLpX9 +uMq/NzgtHj6RQa1wVsfwTz/oMp50ysiQVOnGXw94nZpAPA6sYapeFI+eh6FqUNzX +mk6vBbOmcZSccbNQYArHE504B4YCqOmoaSYYkKtMsE8jqzpPhNjfzp/haW+710LX +a0Tkx63ubUFfclpxCDezeWWkWaCUN/cALw3CknLa0Dhy2xSoRcRdKn23tNbE7qzN +E0S3ySvdQwAl+mG5aWpYIxG3pzOPVnVZ9c0p10a3CitlttNCbxWyuHv77+ldU9U0 +WicCAwEAAaOB3DCB2TAdBgNVHQ4EFgQUrb2YejS0Jvf6xCZU7wO94CTLVBowCwYD +VR0PBAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wgZkGA1UdIwSBkTCBjoAUrb2YejS0 +Jvf6xCZU7wO94CTLVBqhc6RxMG8xCzAJBgNVBAYTAlNFMRQwEgYDVQQKEwtBZGRU +cnVzdCBBQjEmMCQGA1UECxMdQWRkVHJ1c3QgRXh0ZXJuYWwgVFRQIE5ldHdvcmsx +IjAgBgNVBAMTGUFkZFRydXN0IEV4dGVybmFsIENBIFJvb3SCAQEwDQYJKoZIhvcN +AQEFBQADggEBALCb4IUlwtYj4g+WBpKdQZic2YR5gdkeWxQHIzZlj7DYd7usQWxH +YINRsPkyPef89iYTx4AWpb9a/IfPeHmJIZriTAcKhjW88t5RxNKWt9x+Tu5w/Rw5 +6wwCURQtjr0W4MHfRnXnJK3s9EK0hZNwEGe6nQY1ShjTK3rMUUKhemPR5ruhxSvC +Nr4TDea9Y355e6cJDUCrat2PisP29owaQgVR1EX1n6diIWgVIEM8med8vSTYqZEX +c4g/VhsxOBi0cQ+azcgOno4uG+GMmIPLHzHxREzGBHNJdmAPx/i9F4BrLunMTA5a +mnkPIAou1Z5jJh5VkpTYghdae9C8x49OhgQ= +-----END CERTIFICATE----- diff -r a7397a3d67ef -r 626efe139f98 share/ca-certs/Makefile.am --- a/share/ca-certs/Makefile.am Sun Jan 09 23:32:10 2011 +0000 +++ b/share/ca-certs/Makefile.am Sat Feb 12 23:54:14 2011 +0000 @@ -1,4 +1,5 @@ CERTIFICATES = \ + AddTrust_External_Root.pem \ America_Online_Root_Certification_Authority_1.pem \ CAcert_Root.pem \ CAcert_Class3.pem \