pidgin/ljfisher-ssl-client-auth

59d345017c9b
propagate from branch 'im.pidgin.pidgin' (head 8a277be95a4940cd20c64326a70624c4e0449cb7)
to branch 'im.pidgin.cpw.qulogic.gtk3' (head 8c5d1edf9da2be491f35c621bde4165007c94c1b)
  • +6 -0
    COPYRIGHT
  • +32 -3
    ChangeLog
  • +6 -1
    ChangeLog.API
  • +7 -1
    NEWS
  • +3 -3
    configure.ac
  • +17 -15
    libpurple/certificate.c
  • +6 -6
    libpurple/cipher.c
  • +4 -6
    libpurple/conversation.c
  • +39 -1
    libpurple/media/backend-fs2.c
  • +0 -1
    libpurple/mediamanager.c
  • +4 -0
    libpurple/protocols/gg/gg.c
  • +1 -1
    libpurple/protocols/gg/lib/libgadu.h
  • +1 -0
    libpurple/protocols/jabber/Makefile.am
  • +5 -2
    libpurple/protocols/jabber/auth_cyrus.c
  • +5 -4
    libpurple/protocols/jabber/auth_digest_md5.c
  • +39 -0
    libpurple/protocols/jabber/auth_digest_md5.h
  • +119 -31
    libpurple/protocols/jabber/bosh.c
  • +16 -24
    libpurple/protocols/msn/error.c
  • +2 -20
    libpurple/protocols/msn/msg.c
  • +0 -4
    libpurple/protocols/msn/msg.h
  • +187 -10
    libpurple/protocols/msn/p2p.c
  • +90 -6
    libpurple/protocols/msn/p2p.h
  • +0 -2
    libpurple/protocols/msn/sbconn.c
  • +12 -7
    libpurple/protocols/msn/slpcall.c
  • +69 -52
    libpurple/protocols/msn/slplink.c
  • +24 -37
    libpurple/protocols/msn/slpmsg.c
  • +2 -7
    libpurple/protocols/msn/slpmsg.h
  • +34 -27
    libpurple/protocols/msn/slpmsg_part.c
  • +6 -3
    libpurple/protocols/msn/slpmsg_part.h
  • +7 -8
    libpurple/protocols/novell/novell.c
  • +76 -1
    libpurple/protocols/oscar/family_feedbag.c
  • +9 -0
    libpurple/protocols/qq/ChangeLog
  • +11 -8
    libpurple/protocols/qq/buddy_info.c
  • +4 -5
    libpurple/protocols/qq/buddy_info.h
  • +7 -7
    libpurple/protocols/qq/buddy_list.c
  • +6 -6
    libpurple/protocols/qq/buddy_list.h
  • +22 -14
    libpurple/protocols/qq/buddy_memo.c
  • +3 -2
    libpurple/protocols/qq/buddy_memo.h
  • +36 -36
    libpurple/protocols/qq/buddy_opt.c
  • +12 -12
    libpurple/protocols/qq/buddy_opt.h
  • +8 -10
    libpurple/protocols/qq/file_trans.c
  • +2 -1
    libpurple/protocols/qq/file_trans.h
  • +3 -4
    libpurple/protocols/qq/group.h
  • +13 -2
    libpurple/protocols/qq/group_im.c
  • +7 -1
    libpurple/protocols/qq/group_im.h
  • +7 -4
    libpurple/protocols/qq/group_info.c
  • +1 -1
    libpurple/protocols/qq/group_info.h
  • +3 -3
    libpurple/protocols/qq/group_internal.c
  • +3 -3
    libpurple/protocols/qq/group_internal.h
  • +1 -1
    libpurple/protocols/qq/group_join.c
  • +2 -1
    libpurple/protocols/qq/group_join.h
  • +21 -11
    libpurple/protocols/qq/im.c
  • +5 -0
    libpurple/protocols/qq/im.h
  • +13 -3
    libpurple/protocols/qq/qq.c
  • +18 -20
    libpurple/protocols/qq/qq.h
  • +5 -5
    libpurple/protocols/qq/qq_base.c
  • +4 -3
    libpurple/protocols/qq/qq_base.h
  • +2 -0
    libpurple/protocols/qq/qq_define.c
  • +3 -1
    libpurple/protocols/qq/qq_define.h
  • +15 -9
    libpurple/protocols/qq/qq_network.c
  • +2 -2
    libpurple/protocols/qq/qq_network.h
  • +5 -5
    libpurple/protocols/qq/qq_process.c
  • +3 -3
    libpurple/protocols/qq/qq_process.h
  • +3 -22
    libpurple/protocols/qq/qq_trans.c
  • +21 -3
    libpurple/protocols/qq/qq_trans.h
  • +12 -12
    libpurple/protocols/qq/send_file.c
  • +6 -6
    libpurple/protocols/qq/send_file.h
  • +3 -3
    libpurple/protocols/qq/utils.c
  • +3 -2
    libpurple/protocols/qq/utils.h
  • +0 -1
    libpurple/protocols/zephyr/Zinternal.c
  • +13 -13
    libpurple/protocols/zephyr/zephyr.c
  • +1 -0
    libpurple/tests/Makefile.am
  • +1 -0
    libpurple/tests/check_libpurple.c
  • +59 -0
    libpurple/tests/test_jabber_digest_md5.c
  • +1 -0
    libpurple/tests/tests.h
  • +5 -2
    pidgin/gtkutils.c
  • +6 -20
    pidgin/plugins/vvconfig.c
  • +1 -0
    pidgin/win32/nsis/pidgin-installer.nsi
  • +3 -3
    pidgin/win32/winpidgin.c
  • +15 -0
    po/ChangeLog
  • +2 -2
    po/POTFILES.in
  • +27 -29
    po/ar.po
  • +1 -1
    po/az.po
  • +130 -113
    po/bn.po
  • +115 -98
    po/ca.po
  • +111 -95
    po/cs.po
  • +58 -56
    po/de.po
  • +1 -1
    po/el.po
  • +1 -1
    po/en_AU.po
  • +1 -1
    po/en_GB.po
  • +118 -102
    po/es.po
  • +1 -1
    po/eu.po
  • +132 -116
    po/fr.po
  • +1 -1
    po/gl.po
  • +111 -95
    po/he.po
  • +44 -36
    po/hu.po
  • +1 -2
    po/hy.po
  • +1 -1
    po/mn.po
  • +1 -1
    po/ms_MY.po
  • +114 -97
    po/nl.po
  • +127 -110
    po/nn.po
  • +791 -1108
    po/oc.po
  • +105 -95
    po/pl.po
  • +305 -285
    po/ro.po
  • +304 -370
    po/ru.po
  • +1 -1
    po/ta.po
  • +112 -96
    po/uk.po
  • +131 -115
    po/zh_HK.po
  • +131 -115
    po/zh_TW.po
  • +25 -0
    share/ca-certs/AddTrust_External_Root.pem
  • +1 -0
    share/ca-certs/Makefile.am
  • --- 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
    --- 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),
    --- 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):
    --- 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
    --- 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([
    --- 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) {
    --- 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;
    }
    --- 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)
    --- 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;
    }
    --- 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);
    --- 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;
    --- 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;
    --- 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 \
    --- 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;
    }
    }
    --- 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");
    --- /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_ */
    --- 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);
    --- 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);
    }
    +
    --- 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
    {
    --- 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;
    };
    --- 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;
    +}
    +
    --- 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 */
    +
    --- 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);
    }
    --- 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;
    }
    --- 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!
    --- 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);
    }
    --- 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.
    --- 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);
    +}
    +
    --- 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 */
    +
    --- 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));
    --- 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);
    --- 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 <lonicerae(at)gmail.com>
    + * 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 <lonicerae(at)gmail.com>
    + * added type 'UPDCLS' and 'UID' for implementing business logic layer
    +
    +2010.01.13 - ccpaging <ccpaging(at)gmail.com>
    + * qq2009-1 patch from ccpaging
    +
    2009.04.23 - flos <lonicerae(at)gmail.com>
    * Fixed a bug of updating buddy who is not in user's buddy list
    --- 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;
    --- 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);
    --- 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;
    --- 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
    --- 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;
    --- 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 <glib.h>
    #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
    --- 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;
    --- 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
    --- 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;
    --- 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);
    --- 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);
    --- 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 {
    --- 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
    +
    --- 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;
    --- 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);
    --- 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;
    --- 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);
    --- 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;
    --- 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
    +
    --- 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;
    --- 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);
    --- 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);
    --- 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
    --- 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;
    --- 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 <glib.h>
    #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
    +
    --- 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:
    --- 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);
    --- 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);
    --- 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);
    --- 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;
    --- 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);
    --- 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,
    --- 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 <glib.h>
    #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,
    --- 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;
    --- 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);
    --- 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);
    }
    --- 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 <stdio.h>
    #include <glib.h>
    +#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);
    --- 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 <arpa/inet.h>
    #include <sys/socket.h>
    -#include <utmp.h>
    #endif
    int __Zephyr_fd = -1;
    --- 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;
    --- 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 \
    --- 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());
    --- /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 <string.h>
    +
    +#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;
    +}
    --- 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);
    --- 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);
    --- 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, "<custom>")) {
    - 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, "<custom>") || (*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,
    --- 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"
    --- 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;
    }
    }
    --- 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)
    --- 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
    --- 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 "<b>%d new email.</b>"
    --- 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.
    --- 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 <israt@ankur.org.bd>\n"
    "Language-Team: Bengali <ankur-bd-l10n@googlegroups.com>\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"
    --- 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 <zeratul2@wanadoo.es>
    # Copyright (C) December 2003 (from 2003-12-12 until 2003-12-18),
    # January (2004-01-07,12), Xan <dxpublica@telefonica.net>
    -# Copyright (c) 2004, 2005, 2006, 2007, 2008, 2009, 2010
    +# Copyright (c) 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011
    # Josep Puigdemont i Casamajó <josep.puigdemont@gmail.com>
    #
    # 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ó <josep.puigdemont@gmail.com>\n"
    "Language-Team: Catalan <tradgnome@softcatala.net>\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"
    --- 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 <david@konstrukce-cad.com>\n"
    "Language-Team: Czech <cs@li.org>\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"
    --- 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 <Pidgin-translation@dseifert.de>
    # Copyright (C) 2002, Karsten Weiss <knweiss@gmx.de>
    -# Copyright (C) 2002-2010, Björn Voigt <bjoern@cs.tu-berlin.de>,
    +# Copyright (C) 2002-2011, Björn Voigt <bjoern@cs.tu-berlin.de>,
    # Jochen Kemnade <jochenkemnade@web.de>
    #
    # 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 <bjoern@cs.tu-berlin.de>\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 <jochenkemnade@web.de>\n"
    "Language-Team: German <de@li.org>\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 "<b>Unterhaltung mit %s am %s:</b><br>"
    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"
    --- 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.
    --- 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.
    --- 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.
    --- 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 @@
    # <franciscojavier.fernandez.serrador@hispalinux.es>, 2003.
    # Copyright (C) February 2010, Francisco Javier F. Serrador <fserrador@gmail.com>
    # 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 <jfs@debian.org>
    #
    # 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 <jfs@debian.org>\n"
    "Language-Team: Spanish team <es@li.org>\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"
    --- 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.
    --- 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 <stephane.pontier@free.fr>
    # Copyright (C) 2002, Stéphane Wirtel <stephane.wirtel@belgacom.net>
    # Copyright (C) 2002, Loïc Jeannin <loic.jeannin@free.fr>
    -# Copyright (C) 2002-2010, Éric Boumaour <zongo_fr@users.sourceforge.net>
    +# Copyright (C) 2002-2011, Éric Boumaour <zongo_fr@users.sourceforge.net>
    #
    # 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 <zongo_fr@users.sourceforge.net>\n"
    "Language-Team: fr <fr@li.org>\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.<BR><BR>"
    +"copyrighted by its contributors, a list of whom is also distributed with %"
    +"s. There is no warranty for %s.<BR><BR>"
    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"
    --- 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.
    --- 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 <scraimer at g mail dot com>\n"
    "Language-Team: Hebrew <he@li.org>\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"
    --- 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 <suttozoltan@chello.hu>, 2003.
    -# Gabor Kelemen <kelemeng at gnome dot hu>, 2005, 2006, 2007, 2008, 2009, 2010.
    -msgid ""
    -msgstr ""
    -"Project-Id-Version: pidgin 2.7\n"
    +# Gabor Kelemen <kelemeng at gnome dot hu>, 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 <kelemeng at gnome dot hu>\n"
    "Language-Team: Hungarian <gnome at fsf dot hu>\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.<BR><BR>"
    +"copyrighted by its contributors, a list of whom is also distributed with %"
    +"s. There is no warranty for %s.<BR><BR>"
    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/"
    --- 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 <avsharyan@gmail.com>, 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.
    --- 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.
    --- 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.
    --- 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 <translations@gvmelle.com>\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 <translations@gvmelle.com>\n"
    "Language-Team: Dutch <translations@gvmelle.com>\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"
    --- 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 <l10n@landro.net>, 2010.
    +# Yngve Spjeld Landro <l10n@landro.net>, 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 <l10n@landro.net>\n"
    "Language-Team: Norwegian Nynorsk <l10n@landro.net>\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"
    --- 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 <zongo_fr@users.sourceforge.net>, 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 <zongo_fr@users.sourceforge.net>\n"
    "Language-Team: fr <fr@li.org>\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 " <i>(ircop)</i>"
    -msgstr ""
    +msgstr " <i>(ircop)</i>"
    msgid " <i>(identified)</i>"
    -msgstr ""
    +msgstr " <i>(identificat)</i>"
    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 "<b>Joining Qun %u is approved by admin %u for %s</b>"
    msgstr ""
    -#, fuzzy, c-format
    +#, c-format
    msgid "<b>Removed buddy %u.</b>"
    -msgstr "Suprimir un contacte"
    -
    -#, fuzzy, c-format
    +msgstr ""
    +
    +#, c-format
    msgid "<b>New buddy %u joined.</b>"
    -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 "<b>Login time</b>: %d-%d-%d, %d:%d:%d<br>\n"
    @@ -8253,7 +8086,7 @@
    #, c-format
    msgid "<b>IP</b>: %s<br>\n"
    -msgstr ""
    +msgstr "<b>IP</b> : %s<br>\n"
    msgid "Login Information"
    msgstr ""
    @@ -8282,31 +8115,27 @@
    msgid "<i>Feel free to join us!</i> :)"
    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 "<b>Mot de pas :</b>"
    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 "<b>_Bold</b>"
    msgstr ""
    msgid "<i>_Italic</i>"
    -msgstr ""
    +msgstr "<i>_Italic</i>"
    msgid "<u>_Underline</u>"
    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 "<span weight=\"bold\" size=\"larger\">You have mail!</span>"
    msgstr ""
    @@ -12754,9 +12506,8 @@
    msgid "<b>Web site:</b>"
    msgstr ""
    -#, fuzzy
    msgid "<b>Filename:</b>"
    -msgstr "Nom de fichièr :"
    +msgstr "<b>Nom de fichièr :</b>"
    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 "<span style=\"italic\">Example: stunserver.org</span>"
    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"
    "<b>Description:</b> "
    -msgstr "Descripcion"
    +msgstr ""
    +"\n"
    +"<b>Descripcion :</b> "
    #. 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 "<font color='#777777'>Not connected to XMPP</font>"
    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 ""
    --- 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 <piotrdrag@gmail.com>\n"
    "Language-Team: Polish <pl@li.org>\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"
    --- 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 <dumol@gnome.org>
    +# 2002-2011, Mișu Moldovan <dumol@gnome.org>
    # 2009, Andrei Popescu <andreimpopescu@gmail.com>
    # Contributions: 2007, Alexandru Szasz <alexxed@gmail.com>
    -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 <dumol@l10n.ro>\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 <dumol@gnome.org>\n"
    "Language-Team: Romanian <debian-l10n-romanian@lists.debian.org>\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 <nick> <msg>: sends ctcp msg to nick."
    @@ -3700,8 +3706,8 @@
    "mode &lt;+|-&gt;&lt;A-Za-z&gt; &lt;nick|channel&gt;: Set or unset a channel "
    "or user mode."
    msgstr ""
    -"mode &lt;+|-&gt;&lt;A-Za-z&gt; &lt;pseudonim|chat&gt;: Setați sau resetați "
    -"un chat sau un mod utilizator."
    +"mode &lt;+|-&gt;&lt;A-Za-z&gt; &lt;pseudonim|chat&gt;: Inițializați sau "
    +"reinițializați un chat sau un mod pentru utilizator."
    msgid ""
    "msg &lt;nick&gt; &lt;message&gt;: Send a private message to a user (as "
    @@ -3782,7 +3788,8 @@
    msgid "umode &lt;+|-&gt;&lt;A-Za-z&gt;: Set or unset a user mode."
    msgstr ""
    -"umode &lt;+|-&gt;&lt;A-Za-z&gt;: Setați sau resetați un mod utilizator."
    +"umode &lt;+|-&gt;&lt;A-Za-z&gt;: 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 &lt;user&gt; [reason]: Ban a user from the room."
    msgstr ""
    -"ban &lt;nume utilizator&gt; [chat]: Blocați accesul unui utilizator în chat."
    +"ban &lt;nume de utilizator&gt; [chat]: Blocați accesul unui utilizator în "
    +"chat."
    msgid ""
    "affiliate &lt;owner|admin|member|outcast|none&gt; [nick1] [nick2] ...: Get "
    "the users with an affiliation or set users' affiliation with the room."
    msgstr ""
    "affiliate &lt;deținător|administrator|membru|renegat|nimic&gt; [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 "<I>%s</I> set channel <I>%s</I> modes to: %s"
    -msgstr "<I>%s</I> a setat modurile chat-ului <I>%s</I> astfel: %s"
    +msgstr "<I>%s</I> a definit modurile chat-ului <I>%s</I> astfel: %s"
    #, c-format
    msgid "<I>%s</I> removed all channel <I>%s</I> modes"
    @@ -9554,7 +9566,7 @@
    #, c-format
    msgid "<I>%s</I> set <I>%s's</I> modes to: %s"
    -msgstr "<I>%s</I> a setat modurile pentru <I>%s</I> astfel: %s"
    +msgstr "<I>%s</I> a definit modurile pentru <I>%s</I> astfel: %s"
    #, c-format
    msgid "<I>%s</I> removed all <I>%s's</I> 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 &lt;instance&gt;: Set the instance to be used on this class"
    msgstr ""
    -"instance &lt;instanță&gt;: Setați instanța de utilizat în această clasă"
    +"instance &lt;instanță&gt;: Definiți instanța de utilizat în această clasă"
    msgid "inst &lt;instance&gt;: Set the instance to be used on this class"
    -msgstr "inst &lt;instanță&gt;: Setați instanța de utilizat în această clasă"
    +msgstr "inst &lt;instanță&gt;: Definiți instanța de utilizat în această clasă"
    msgid "topic &lt;instance&gt;: Set the instance to be used on this class"
    -msgstr "topic &lt;instanță&gt;: Setați instanța de utilizat în această clasă"
    +msgstr ""
    +"topic &lt;instanță&gt;: Definiți instanța de utilizat în această clasă"
    msgid "sub &lt;class&gt; &lt;instance&gt; &lt;recipient&gt;: 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 @@
    "<b>Adaugă...</b> 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 <b>Conturi->Administrare conturi</b> în fereastra listei "
    -"de contacte."
    +"conturi utilizând <b>Conturi->Administrare</b> î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 "<b>Username:</b>"
    -msgstr "<b>Nume utilizator:</b>"
    +msgstr "<b>Nume de utilizator:</b>"
    msgid "<b>Password:</b>"
    msgstr "<b>Parolă:</b>"
    @@ -11764,8 +11777,8 @@
    "<span weight='bold' size='larger'>Bun venit în %s!</span>\n"
    "\n"
    "Nu aveți niciun cont activ. Activați-vă conturile de mesagerie instant în "
    -"fereastra <b>Conturi</b>, accesibilă pe calea <b>Conturi->Administrare "
    -"conturi</b>. Abia după activare veți putea utiliza conturile definite."
    +"fereastra <b>Conturi</b>, accesibilă pe calea <b>Conturi->Administrare</b>. "
    +"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 "<span style=\"italic\">Example: stunserver.org</span>"
    msgstr "<span style=\"italic\">Exemplu: stunserver.org</span>"
    @@ -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"
    --- 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 <svo@asplinux.ru>, 2001.
    # Alexandre Prokoudine <avp@altlinux.ru>, 2003, 2004.
    # Dmitry Beloglazov <dmaa@users.sf.net>, 2004-2008.
    -# Антон Самохвалов <samant.ua@mail.ru>, 2008-2010.
    +# Антон Самохвалов <samant.ua@mail.ru>, 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: Антон Самохвалов <samant.ua@mail.ru>\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 "прозвон &lt;jid&gt;:\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.<BR><BR>"
    msgstr ""
    -"%s - графический модульный клиент обмена сообщениями, основывающийся на "
    -"библиотеке libpurple, позволяющей использовать AIM, MSN, Yahoo!, XMPP, ICQ, "
    -"IRC, SILC, SIP/SIMPLE, Novell GroupWise, Lotus Sametime, Bonjour, Zephyr, "
    -"MySpaceIM, Gadu-Gadu и QQ одновременно. Написан с использованием GTK+."
    -"<BR><BR>Вы можете изменять и распространять программу по условиям GPL "
    -"(версии 2 или более поздней). Копия GPL содержится в файле 'COPYING', "
    -"распространяемом с %s. Авторские права на %s принадлежат участникам "
    -"проекта. Полный список участников проекта смотрите в файле 'COPYRIGHT'. Мы "
    -"не предоставляем никаких гарантий на эту программу.<BR><BR>"
    +"%s - клиент обмена сообщениями, основанный на библиотеке libpurple, которая "
    +"позволяет одновременно подключаться по нескольким службам. %s написан на С с "
    +"использованием GTK+. %s выпущен, и может быть изменён или перераспределён, "
    +"по условиям GPL версии 2 (или поздней). Копия GPL распространяется вместе с "
    +"%s. Права на %s защищены его участниками, список которых также "
    +"распространяется с %s. Гарантия на %s не предоставляется. <BR><BR>"
    #, c-format
    msgid ""
    @@ -12753,8 +12711,11 @@
    "Channel: #pidgin on irc.freenode.net<BR>\tXMPP MUC: devel@conference.pidgin."
    "im<BR><BR>"
    msgstr ""
    -
    -#, fuzzy, c-format
    +"<FONT SIZE=\"4\"><B>Полезные ресурсы</B></FONT><BR>\t<A HREF=\"%s\">Веб-"
    +"сайт</A><BR>\t<A HREF=\"%s\">Часто задаваемые вопросы</A><BR>\tIRC канал: "
    +"#pidgin на irc.freenode.net<BR>\tXMPP MUC: devel@conference.pidgin.im<BR><BR>"
    +
    +#, c-format
    msgid ""
    "<font size=\"4\"><b>Help from other Pidgin users</b></font> is available by "
    "e-mailing <a href=\"mailto:support@pidgin.im\">support@pidgin.im</a><br/"
    @@ -12764,25 +12725,25 @@
    "welcome to post in another language, but the responses may be less helpful."
    "<br/>"
    msgstr ""
    -"<font size=\"4\">Помощь от других пользователей Pidgin:</font> <a href="
    -"\"mailto:support@pidgin.im\">support@pidgin.im</a><br/>Это <b>публичная</b> "
    -"почтовая рассылка! (<a href=\"http://pidgin.im/pipermail/support/\">архив</"
    -"a>)<br/>Мы не можем помочь по сторонним протоколам или модулям!<br/>Основной "
    -"язык этой рассылки - <b>английский</b>. Вы, конечно, можете писать на "
    -"другом языке, но ответы могут быть менее полезными.<br/><br/>"
    +"<font size=\"4\"><b>Помощь от других пользователей Pidgin</b></font> "
    +"доступна по эл.почте <a href=\"mailto:support@pidgin.im\">support@pidgin.im</"
    +"a><br/>Это <b>публичная</b> почтовая рассылка! (<a href=\"http://pidgin.im/"
    +"pipermail/support/\">архив</a>)<br/>Мы не можем помочь по протоколам или "
    +"модулям третьих лиц!<br/>Основной язык этой рассылки - <b>английский</b>. "
    +"Вы, конечно, можете писать на другом языке, но ответы могут оказаться менее "
    +"полезными.<br/>"
    #, 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 "<b>_Bold</b>"
    msgstr "<b>_Жирный</b>"
    @@ -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 "<span weight=\"bold\" size=\"larger\">You have pounced!</span>"
    -msgstr "<span weight=\"bold\" size=\"larger\">Вам пришла почта!</span>"
    +msgstr "<span weight=\"bold\" size=\"larger\">На вас набросились!</span>"
    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 ""
    #~ "<FONT SIZE=\"4\">FAQ:</FONT> <A HREF=\"http://developer.pidgin.im/wiki/FAQ"
    @@ -15949,13 +15885,11 @@
    #~ "<FONT SIZE=\"4\">ЧаВо:</FONT> <A HREF=\"http://developer.pidgin.im/wiki/"
    #~ "FAQ\">http://developer.pidgin.im/wiki/FAQ</A><BR/><BR/>"
    -#, fuzzy
    #~ msgid ""
    #~ "<FONT SIZE=\"4\">IRC Channel:</FONT> #pidgin on irc.freenode.net<BR><BR>"
    #~ msgstr ""
    #~ "<FONT SIZE=\"4\">IRC канал:</FONT> #pidgin на irc.freenode.net<BR><BR>"
    -#, fuzzy
    #~ msgid "<FONT SIZE=\"4\">XMPP MUC:</FONT> devel@conference.pidgin.im<BR><BR>"
    #~ msgstr ""
    #~ "<FONT SIZE=\"4\">XMPP MUC:</FONT> devel@conference.pidgin.im<BR><BR>"
    --- 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"
    --- 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 <mvd@mylinux.com.ua>, 2004-2005.
    -# Oleksandr Kovalenko <alx.kovalenko@gmail.com>, 2009-2010.
    +# Oleksandr Kovalenko <alx.kovalenko@gmail.com>, 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 <alx.kovalenko@gmail.com>\n"
    "Language-Team: Ukrainian <uk@li.org>\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"
    --- 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 <paladin@ms1.hinet.net>
    -# Copyright (C) 2003-2010, Ambrose C. Li <ambrose.li@gmail.com>
    +# Copyright (C) 2002-2011, Paladin R. Liu <paladin@ms1.hinet.net>
    +# Copyright (C) 2003-2011, Ambrose C. Li <ambrose.li@gmail.com>
    #
    # 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 <ambrose.li@gmail.com>\n"
    "Language-Team: Chinese (Hong Kong) <community@linuxhall.org>\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"
    --- 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 <paladin@ms1.hinet.net>
    -# Copyright (C) 2003-2010, Ambrose C. Li <ambrose.li@gmail.com>
    +# Copyright (C) 2002-2011, Paladin R. Liu <paladin@ms1.hinet.net>
    +# Copyright (C) 2003-2011, Ambrose C. Li <ambrose.li@gmail.com>
    #
    # 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 <ambrose.li@gmail.com>\n"
    "Language-Team: Chinese (Traditional) <zh-l10n@linux.org.tw>\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"
    --- /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-----
    --- 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 \