changeset 32088:dff70c2930e8

propagate from branch 'im.pidgin.pidgin' (head d6053150b258c5c8b2ac60e091a7d0d1b2d9be1d) to branch 'im.pidgin.pidgin.mxit' (head 15f4e610ac107f652c16aef6c2f7c2ecbe739a8c)
author andrew.victor@mxit.com
date Sun, 08 May 2011 14:06:04 +0000
parents a8cf2003ee7c (current diff) dd83aa0bc5c0 (diff)
children 6ed15e063e58
files
diffstat 11 files changed, 1554 insertions(+), 1729 deletions(-) [+]
line wrap: on
line diff
--- a/libpurple/protocols/msn/p2p.c	Fri May 06 08:12:34 2011 +0000
+++ b/libpurple/protocols/msn/p2p.c	Sun May 08 14:06:04 2011 +0000
@@ -313,11 +313,28 @@
 }
 
 gboolean
-msn_p2p_msg_is_data(const MsnP2PHeaderFlag flags)
+msn_p2p_msg_is_data(const MsnP2PInfo *info)
 {
-	return (flags == P2P_MSN_OBJ_DATA ||
-	        flags == (P2P_WLM2009_COMP | P2P_MSN_OBJ_DATA) ||
-	        flags == P2P_FILE_DATA);
+	gboolean data = FALSE;
+
+	switch (info->version) {
+		case MSN_P2P_VERSION_ONE: {
+			guint32 flags = info->header.v1.flags;
+			data = (flags == P2P_MSN_OBJ_DATA ||
+			        flags == (P2P_WLM2009_COMP | P2P_MSN_OBJ_DATA) ||
+			        flags == P2P_FILE_DATA);
+			break;
+		}
+
+		case MSN_P2P_VERSION_TWO:
+			data = info->header.v2.message_len > 0;
+			break;
+
+		default:
+			purple_debug_error("msn", "Invalid P2P Info version: %d\n", info->version);
+	}
+
+	return data;
 }
 
 gboolean
@@ -362,6 +379,116 @@
 	return final;
 }
 
+void
+msn_p2p_info_create_ack(MsnP2PInfo *old_info, MsnP2PInfo *new_info)
+{
+	switch (old_info->version) {
+		case MSN_P2P_VERSION_ONE: {
+			MsnP2PHeader *old = &old_info->header.v1;
+			MsnP2PHeader *new = &new_info->header.v1;
+
+			new->session_id = old->session_id;
+			new->flags = P2P_ACK;
+			new->ack_id = old->id;
+			new->ack_sub_id = old->ack_id;
+			new->ack_size = old->total_size;
+			break;
+		}
+
+		case MSN_P2P_VERSION_TWO: {
+			MsnP2Pv2Header *old = &old_info->header.v2;
+			MsnP2Pv2Header *new = &new_info->header.v2;
+
+			msn_tlvlist_add_32(&new->header_tlv, P2P_TLV_TYPE_ACK, old->base_id + old->message_len);
+			new->opcode = P2P_OPCODE_NONE;
+
+			if (old->message_len > 0) {
+				if (!msn_tlv_gettlv(old->header_tlv, P2P_TLV_TYPE_ACK, 1)) {
+					if (old->opcode & P2P_OPCODE_SYN) {
+						msn_tlv_t *ack_tlv;
+						new->opcode |= P2P_OPCODE_RAK;
+						
+						ack_tlv = msn_tlv_gettlv(old->header_tlv, P2P_TLV_TYPE_PEER_INFO, 1);
+						if (ack_tlv) {
+							msn_tlvlist_add_tlv(&new->header_tlv, ack_tlv);
+							new->opcode |= P2P_OPCODE_SYN;
+						}
+					}
+				}
+			}
+			break;
+		}
+
+		default:
+			purple_debug_error("msn", "Invalid P2P Info version: %d\n", old_info->version);
+	}
+}
+
+gboolean
+msn_p2p_info_require_ack(MsnP2PInfo *info)
+{
+	gboolean ret = FALSE;
+
+	switch (info->version) {
+		case MSN_P2P_VERSION_ONE: {
+			guint32 flags = msn_p2p_info_get_flags(info);
+
+			ret = flags == P2P_NO_FLAG || flags == P2P_WLM2009_COMP ||
+			      msn_p2p_msg_is_data(info);
+			break;
+		}
+
+		case MSN_P2P_VERSION_TWO:
+			ret = (info->header.v2.opcode & P2P_OPCODE_RAK) > 0;
+			break;
+
+		default:
+			purple_debug_error("msn", "Invalid P2P Info version: %d\n", info->version);
+	}
+
+	return ret;
+}
+
+gboolean
+msn_p2p_info_is_ack(MsnP2PInfo *info)
+{
+	gboolean ret = FALSE;
+
+	switch (info->version) {
+		case MSN_P2P_VERSION_ONE: {
+			ret = msn_p2p_info_get_flags(info) == P2P_ACK;
+			break;
+		}
+
+		case MSN_P2P_VERSION_TWO:
+			ret = msn_tlv_gettlv(info->header.v2.header_tlv, P2P_TLV_TYPE_ACK, 1) != NULL;
+			break;
+
+		default:
+			purple_debug_error("msn", "Invalid P2P Info version: %d\n", info->version);
+	}
+
+	return ret;
+}
+
+void
+msn_p2p_info_init_first(MsnP2PInfo *info, MsnP2PInfo *old_info)
+{
+	switch (info->version) {
+		case MSN_P2P_VERSION_ONE:
+			info->header.v1.session_id = old_info->header.v1.session_id;
+			info->header.v1.flags = old_info->header.v1.flags;
+			break;
+
+		case MSN_P2P_VERSION_TWO:
+			info->header.v2.data_tf = TF_FIRST;
+			break;
+
+		default:
+			purple_debug_error("msn", "Invalid P2P Info version: %d\n", info->version);
+	}
+}
+
 guint32
 msn_p2p_info_get_session_id(MsnP2PInfo *info)
 {
@@ -478,7 +605,7 @@
 			break;
 
 		case MSN_P2P_VERSION_TWO:
-			/* Nothing to do! */
+			flags = info->header.v2.data_tf;
 			break;
 
 		default:
@@ -653,7 +780,7 @@
 			break;
 
 		case MSN_P2P_VERSION_TWO:
-			/* Nothing to do! */
+			info->header.v2.data_tf = flags;
 			break;
 
 		default:
--- a/libpurple/protocols/msn/p2p.h	Fri May 06 08:12:34 2011 +0000
+++ b/libpurple/protocols/msn/p2p.h	Sun May 08 14:06:04 2011 +0000
@@ -65,7 +65,7 @@
 	guint16 version;
 	guint16 reserved;
 	guint32 caps;
-} PeerInfo;
+} P2PPeerInfo;
 
 typedef enum
 {
@@ -76,26 +76,26 @@
 
 typedef enum
 {
-	TLP_PEER_INFO   = 0x01, /**< Client peer info */
-	TLP_ACK         = 0x02, /**< ACK */
-	TLP_NAK         = 0x03  /**< NAK */
-} TLP;
+	P2P_TLV_TYPE_PEER_INFO  = 0x01, /**< Client peer info */
+	P2P_TLV_TYPE_ACK        = 0x02, /**< ACK */
+	P2P_TLV_TYPE_NAK        = 0x03  /**< NAK */
+} P2PTLVType;
 
 typedef enum
 {
-	TLP_LEN_PEER_INFO   = 12,
-	TLP_LEN_ACK         = 4,
-	TLP_LEN_NAK         = 4
-} TLPLength;
+	P2P_TLV_LEN_PEER_INFO   = 12,
+	P2P_TLV_LEN_ACK         = 4,
+	P2P_TLV_LEN_NAK         = 4
+} P2PTLVLength;
 
 typedef enum
 {
-	PI_PVER     = 0x0200,
-	PI_IMP_ID   = 0,
-	PI_VER      = 0x0e00,
-	PI_RES      = 0,
-	PI_CAPS     = 0x0000010f
-} PeerInfoVal;
+	P2P_PI_PVER     = 0x0200,
+	P2P_PI_IMP_ID   = 0,
+	P2P_PI_VER      = 0x0e00,
+	P2P_PI_RES      = 0,
+	P2P_PI_CAPS     = 0x0000010f
+} P2PPeerInfoVal;
 
 #define DLP_REMAINING 0x01; 	/**< Indicates the remaining data to transfer.*/
 #define DLP_REMAINING_LEN 8
@@ -183,7 +183,7 @@
 msn_p2p_info_to_string(MsnP2PInfo *info, GString *str);
 
 gboolean
-msn_p2p_msg_is_data(const MsnP2PHeaderFlag flags);
+msn_p2p_msg_is_data(const MsnP2PInfo *info);
 
 gboolean
 msn_p2p_info_is_valid(MsnP2PInfo *info);
@@ -191,6 +191,18 @@
 gboolean
 msn_p2p_info_is_final(MsnP2PInfo *info);
 
+void
+msn_p2p_info_create_ack(MsnP2PInfo *old_info, MsnP2PInfo *new_info);
+
+gboolean
+msn_p2p_info_require_ack(MsnP2PInfo *info);
+
+gboolean
+msn_p2p_info_is_ack(MsnP2PInfo *info);
+
+void
+msn_p2p_info_init_first(MsnP2PInfo *new_info, MsnP2PInfo *old_info);
+
 guint32
 msn_p2p_info_get_session_id(MsnP2PInfo *info);
 
--- a/libpurple/protocols/msn/slpcall.c	Fri May 06 08:12:34 2011 +0000
+++ b/libpurple/protocols/msn/slpcall.c	Sun May 08 14:06:04 2011 +0000
@@ -1130,7 +1130,7 @@
 		}
 		g_free(body_str);
 	}
-	 else if (msn_p2p_msg_is_data(flags))
+	 else if (msn_p2p_msg_is_data(slpmsg->p2p_info))
 	{
 		slpcall = msn_slplink_find_slp_call_with_session_id(slplink, session_id);
 
@@ -1147,7 +1147,7 @@
 			slpcall->wasted = TRUE;
 		}
 	}
-	else if (flags == P2P_ACK)
+	else if (msn_p2p_info_is_ack(slpmsg->p2p_info))
 	{
 		/* Acknowledgement of previous message. Don't do anything currently. */
 	}
--- a/libpurple/protocols/msn/slplink.c	Fri May 06 08:12:34 2011 +0000
+++ b/libpurple/protocols/msn/slplink.c	Sun May 08 14:06:04 2011 +0000
@@ -292,7 +292,7 @@
 	part = msn_slpmsgpart_new(msn_p2p_info_dup(info));
 	part->ack_data = slpmsg;
 
-	real_size = (msn_p2p_info_get_flags(info) == P2P_ACK) ? 0 : slpmsg->size;
+	real_size = msn_p2p_info_is_ack(info) ? 0 : slpmsg->size;
 
 	offset = msn_p2p_info_get_offset(info);
 	if (offset < real_size)
@@ -330,8 +330,7 @@
 	msn_slplink_send_part(slplink, part);
 
 
-	if (msn_p2p_msg_is_data(msn_p2p_info_get_flags(info)) &&
-		(slpmsg->slpcall != NULL))
+	if (msn_p2p_msg_is_data(info) && slpmsg->slpcall != NULL)
 	{
 		slpmsg->slpcall->progress = TRUE;
 
@@ -358,7 +357,7 @@
 	{
 		msn_p2p_info_set_ack_id(info, rand() % 0xFFFFFF00);
 	}
-	else if (msn_p2p_msg_is_data(flags))
+	else if (msn_p2p_msg_is_data(info))
 	{
 		MsnSlpCall *slpcall;
 		slpcall = slpmsg->slpcall;
@@ -447,22 +446,19 @@
 {
 	MsnSlpMessage *slpmsg;
 	guint32 session_id;
-	guint32 flags;
 
 	slpmsg = msn_slpmsg_new(slplink);
 	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);
+	msn_p2p_info_init_first(slpmsg->p2p_info, info);
 
 	if (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(flags))
+			if (msn_p2p_msg_is_data(info))
 			{
 				PurpleXfer *xfer = slpmsg->slpcall->xfer;
 				if (xfer != NULL)
@@ -502,7 +498,6 @@
 process_complete_msg(MsnSlpLink *slplink, MsnSlpMessage *slpmsg, MsnP2PInfo *info)
 {
 	MsnSlpCall *slpcall;
-	guint32 flags;
 
 	slpcall = msn_slp_process_msg(slplink, slpmsg);
 
@@ -513,10 +508,7 @@
 
 	purple_debug_info("msn", "msn_slplink_process_msg: slpmsg complete\n");
 
-	flags = msn_p2p_info_get_flags(slpmsg->p2p_info);
-
-	if (flags == P2P_NO_FLAG || flags == P2P_WLM2009_COMP ||
-	    msn_p2p_msg_is_data(flags))
+	if (msn_p2p_info_require_ack(slpmsg->p2p_info))
 	{
 		/* Release all the messages and send the ACK */
 
@@ -605,8 +597,7 @@
 
 	slpmsg_add_part(slpmsg, part);
 
-	if (msn_p2p_msg_is_data(msn_p2p_info_get_flags(slpmsg->p2p_info)) &&
-		(slpmsg->slpcall != NULL))
+	if (msn_p2p_msg_is_data(slpmsg->p2p_info) && slpmsg->slpcall != NULL)
 	{
 		slpmsg->slpcall->progress = TRUE;
 
--- a/libpurple/protocols/msn/slpmsg.c	Fri May 06 08:12:34 2011 +0000
+++ b/libpurple/protocols/msn/slpmsg.c	Sun May 08 14:06:04 2011 +0000
@@ -206,12 +206,8 @@
 	slpmsg = msn_slpmsg_new(NULL);
 
 	new_info = slpmsg->p2p_info;
-	msn_p2p_info_set_session_id(new_info, msn_p2p_info_get_session_id(ack_info));
+	msn_p2p_info_create_ack(ack_info, new_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;
--- a/libpurple/protocols/msn/slpmsg_part.c	Fri May 06 08:12:34 2011 +0000
+++ b/libpurple/protocols/msn/slpmsg_part.c	Sun May 08 14:06:04 2011 +0000
@@ -175,7 +175,7 @@
 
 	slpmsg = data;
 
-	real_size = (msn_p2p_info_get_flags(slpmsg->p2p_info) == P2P_ACK) ? 0 : slpmsg->size;
+	real_size = msn_p2p_info_is_ack(slpmsg->p2p_info) ? 0 : slpmsg->size;
 
 	offset = msn_p2p_info_get_offset(slpmsg->p2p_info);
 	offset += msn_p2p_info_get_length(part->info);
@@ -197,7 +197,7 @@
 	else
 	{
 		/* The whole message has been sent */
-		if (msn_p2p_msg_is_data(msn_p2p_info_get_flags(slpmsg->p2p_info)))
+		if (msn_p2p_msg_is_data(slpmsg->p2p_info))
 		{
 			if (slpmsg->slpcall != NULL)
 			{
--- a/libpurple/protocols/msn/tlv.c	Fri May 06 08:12:34 2011 +0000
+++ b/libpurple/protocols/msn/tlv.c	Sun May 08 14:06:04 2011 +0000
@@ -169,7 +169,7 @@
 }
 
 int
-msn_tlvlist_add_raw(GSList **list, const guint16 type, const guint16 length, const char *value)
+msn_tlvlist_add_raw(GSList **list, const guint8 type, const guint8 length, const char *value)
 {
 	msn_tlv_t *tlv;
 
@@ -186,7 +186,7 @@
 }
 
 int
-msn_tlvlist_add_8(GSList **list, const guint16 type, const guint8 value)
+msn_tlvlist_add_8(GSList **list, const guint8 type, const guint8 value)
 {
 	char v8[1];
 
@@ -196,7 +196,7 @@
 }
 
 int
-msn_tlvlist_add_16(GSList **list, const guint16 type, const guint16 value)
+msn_tlvlist_add_16(GSList **list, const guint8 type, const guint16 value)
 {
 	char v16[2];
 
@@ -206,7 +206,7 @@
 }
 
 int
-msn_tlvlist_add_32(GSList **list, const guint16 type, const guint32 value)
+msn_tlvlist_add_32(GSList **list, const guint8 type, const guint32 value)
 {
 	char v32[4];
 
@@ -216,19 +216,25 @@
 }
 
 int
-msn_tlvlist_add_str(GSList **list, const guint16 type, const char *value)
+msn_tlvlist_add_str(GSList **list, const guint8 type, const char *value)
 {
 	return msn_tlvlist_add_raw(list, type, strlen(value), value);
 }
 
 int
-msn_tlvlist_add_empty(GSList **list, const guint16 type)
+msn_tlvlist_add_empty(GSList **list, const guint8 type)
 {
 	return msn_tlvlist_add_raw(list, type, 0, NULL);
 }
 
 int
-msn_tlvlist_replace_raw(GSList **list, const guint16 type, const guint16 length, const char *value)
+msn_tlvlist_add_tlv(GSList **list, const msn_tlv_t *tlv)
+{
+	return msn_tlvlist_add_raw(list, tlv->type, tlv->length, (const char *)tlv->value);
+}
+
+int
+msn_tlvlist_replace_raw(GSList **list, const guint8 type, const guint8 length, const char *value)
 {
 	GSList *cur;
 	msn_tlv_t *tlv;
@@ -257,19 +263,19 @@
 }
 
 int
-msn_tlvlist_replace_str(GSList **list, const guint16 type, const char *str)
+msn_tlvlist_replace_str(GSList **list, const guint8 type, const char *str)
 {
 	return msn_tlvlist_replace_raw(list, type, strlen(str), str);
 }
 
 int
-msn_tlvlist_replace_empty(GSList **list, const guint16 type)
+msn_tlvlist_replace_empty(GSList **list, const guint8 type)
 {
 	return msn_tlvlist_replace_raw(list, type, 0, NULL);
 }
 
 int
-msn_tlvlist_replace_8(GSList **list, const guint16 type, const guint8 value)
+msn_tlvlist_replace_8(GSList **list, const guint8 type, const guint8 value)
 {
 	char v8[1];
 
@@ -279,7 +285,7 @@
 }
 
 int
-msn_tlvlist_replace_32(GSList **list, const guint16 type, const guint32 value)
+msn_tlvlist_replace_32(GSList **list, const guint8 type, const guint32 value)
 {
 	char v32[4];
 
@@ -288,8 +294,14 @@
 	return msn_tlvlist_replace_raw(list, type, 4, v32);
 }
 
+int
+msn_tlvlist_replace_tlv(GSList **list, const msn_tlv_t *tlv)
+{
+	return msn_tlvlist_replace_raw(list, tlv->type, tlv->length, (const char *)tlv->value);
+}
+
 void
-msn_tlvlist_remove(GSList **list, const guint16 type)
+msn_tlvlist_remove(GSList **list, const guint8 type)
 {
 	GSList *cur, *next;
 	msn_tlv_t *tlv;
@@ -356,7 +368,7 @@
 }
 
 msn_tlv_t *
-msn_tlv_gettlv(GSList *list, const guint16 type, const int nth)
+msn_tlv_gettlv(GSList *list, const guint8 type, const int nth)
 {
 	msn_tlv_t *tlv;
 	int i;
@@ -373,7 +385,7 @@
 }
 
 int
-msn_tlv_getlength(GSList *list, const guint16 type, const int nth)
+msn_tlv_getlength(GSList *list, const guint8 type, const int nth)
 {
 	msn_tlv_t *tlv;
 
@@ -397,7 +409,7 @@
 }
 
 char *
-msn_tlv_getstr(GSList *list, const guint16 type, const int nth)
+msn_tlv_getstr(GSList *list, const guint8 type, const int nth)
 {
 	msn_tlv_t *tlv;
 
@@ -409,7 +421,7 @@
 }
 
 guint8
-msn_tlv_get8(GSList *list, const guint16 type, const int nth)
+msn_tlv_get8(GSList *list, const guint8 type, const int nth)
 {
 	msn_tlv_t *tlv;
 
@@ -421,7 +433,7 @@
 }
 
 guint16
-msn_tlv_get16(GSList *list, const guint16 type, const int nth)
+msn_tlv_get16(GSList *list, const guint8 type, const int nth)
 {
 	msn_tlv_t *tlv;
 
@@ -433,7 +445,7 @@
 }
 
 guint32
-msn_tlv_get32(GSList *list, const guint16 type, const int nth)
+msn_tlv_get32(GSList *list, const guint8 type, const int nth)
 {
 	msn_tlv_t *tlv;
 
--- a/libpurple/protocols/msn/tlv.h	Fri May 06 08:12:34 2011 +0000
+++ b/libpurple/protocols/msn/tlv.h	Sun May 08 14:06:04 2011 +0000
@@ -38,12 +38,12 @@
 /* TLV handling functions */
 char *msn_tlv_getvalue_as_string(msn_tlv_t *tlv);
 
-msn_tlv_t *msn_tlv_gettlv(GSList *list, const guint16 type, const int nth);
-int msn_tlv_getlength(GSList *list, const guint16 type, const int nth);
-char *msn_tlv_getstr(GSList *list, const guint16 type, const int nth);
-guint8 msn_tlv_get8(GSList *list, const guint16 type, const int nth);
-guint16 msn_tlv_get16(GSList *list, const guint16 type, const int nth);
-guint32 msn_tlv_get32(GSList *list, const guint16 type, const int nth);
+msn_tlv_t *msn_tlv_gettlv(GSList *list, const guint8 type, const int nth);
+int msn_tlv_getlength(GSList *list, const guint8 type, const int nth);
+char *msn_tlv_getstr(GSList *list, const guint8 type, const int nth);
+guint8 msn_tlv_get8(GSList *list, const guint8 type, const int nth);
+guint16 msn_tlv_get16(GSList *list, const guint8 type, const int nth);
+guint32 msn_tlv_get32(GSList *list, const guint8 type, const int nth);
 
 /* TLV list handling functions */
 GSList *msn_tlvlist_read(const char *bs, size_t bs_len);
@@ -55,21 +55,23 @@
 char *msn_tlvlist_write(GSList *list, size_t *out_len);
 void msn_tlvlist_free(GSList *list);
 
-int msn_tlvlist_add_raw(GSList **list, const guint16 type, const guint16 length, const char *value);
-int msn_tlvlist_add_empty(GSList **list, const guint16 type);
-int msn_tlvlist_add_8(GSList **list, const guint16 type, const guint8 value);
-int msn_tlvlist_add_16(GSList **list, const guint16 type, const guint16 value);
-int msn_tlvlist_add_32(GSList **list, const guint16 type, const guint32 value);
-int msn_tlvlist_add_str(GSList **list, const guint16 type, const char *value);
+int msn_tlvlist_add_raw(GSList **list, const guint8 type, const guint8 length, const char *value);
+int msn_tlvlist_add_empty(GSList **list, const guint8 type);
+int msn_tlvlist_add_8(GSList **list, const guint8 type, const guint8 value);
+int msn_tlvlist_add_16(GSList **list, const guint8 type, const guint16 value);
+int msn_tlvlist_add_32(GSList **list, const guint8 type, const guint32 value);
+int msn_tlvlist_add_str(GSList **list, const guint8 type, const char *value);
+int msn_tlvlist_add_tlv(GSList **list, const msn_tlv_t *tlv);
 
-int msn_tlvlist_replace_raw(GSList **list, const guint16 type, const guint16 lenth, const char *value);
-int msn_tlvlist_replace_str(GSList **list, const guint16 type, const char *str);
-int msn_tlvlist_replace_empty(GSList **list, const guint16 type);
-int msn_tlvlist_replace_8(GSList **list, const guint16 type, const guint8 value);
-int msn_tlvlist_replace_16(GSList **list, const guint16 type, const guint16 value);
-int msn_tlvlist_replace_32(GSList **list, const guint16 type, const guint32 value);
+int msn_tlvlist_replace_raw(GSList **list, const guint8 type, const guint8 lenth, const char *value);
+int msn_tlvlist_replace_str(GSList **list, const guint8 type, const char *str);
+int msn_tlvlist_replace_empty(GSList **list, const guint8 type);
+int msn_tlvlist_replace_8(GSList **list, const guint8 type, const guint8 value);
+int msn_tlvlist_replace_16(GSList **list, const guint8 type, const guint16 value);
+int msn_tlvlist_replace_32(GSList **list, const guint8 type, const guint32 value);
+int msn_tlvlist_replace_tlv(GSList **list, const msn_tlv_t *tlv);
 
-void msn_tlvlist_remove(GSList **list, const guint16 type);
+void msn_tlvlist_remove(GSList **list, const guint8 type);
 
 #endif /* MSN_TLV_H */
 
--- a/po/ca.po	Fri May 06 08:12:34 2011 +0000
+++ b/po/ca.po	Sun May 08 14:06:04 2011 +0000
@@ -33,8 +33,8 @@
 msgstr ""
 "Project-Id-Version: Pidgin\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-01-30 11:04+0100\n"
-"PO-Revision-Date: 2011-01-30 11:11+0100\n"
+"POT-Creation-Date: 2011-05-07 10:31+0200\n"
+"PO-Revision-Date: 2011-05-07 10:48+0200\n"
 "Last-Translator: Josep Puigdemont i Casamajó <josep.puigdemont@gmail.com>\n"
 "Language-Team: Catalan <tradgnome@softcatala.net>\n"
 "Language: ca\n"
@@ -239,6 +239,9 @@
 msgid "Alias (optional)"
 msgstr "Àlies (opcional)"
 
+msgid "Invite message (optional)"
+msgstr "Missatge d'invitació (opcional)"
+
 msgid "Add in group"
 msgstr "Afegeix al grup"
 
@@ -1975,6 +1978,9 @@
 msgid "Unknown reason"
 msgstr "Motiu desconegut"
 
+msgid "Aborting DNS lookup in Tor Proxy mode."
+msgstr "S'ha avortat la cerca del DNS en el mode de servidor intermediari Tor."
+
 #, c-format
 msgid ""
 "Error reading %s: \n"
@@ -2405,9 +2411,8 @@
 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"
+msgstr "Empra caràcters escapats en els noms de fitxer"
 
 msgid "Notes"
 msgstr "Notes"
@@ -3223,6 +3228,21 @@
 msgid "Change Gadu-Gadu Password"
 msgstr "Canvia la contrasenya per al Gadu-Gadu"
 
+msgid "Show status to:"
+msgstr "Mostra l'estat a:"
+
+msgid "All people"
+msgstr "Tothom"
+
+msgid "Only buddies"
+msgstr "Només amics"
+
+msgid "Change status broadcasting"
+msgstr "Canvia la difusió de l'estat"
+
+msgid "Please, select who can see your status"
+msgstr "Seleccioneu qui pot veure el vostre estat"
+
 #, c-format
 msgid "Select a chat for buddy: %s"
 msgstr "Seleccioneu un xat per a l'amic: %s"
@@ -3254,9 +3274,7 @@
 msgstr "UIN"
 
 #. first name
-#. purple_notify_user_info_add_pair( info, _( "Hidden Number" ), profile->hidden ? _( "Yes" ) : _( "No" ) );
 #. optional information
-#. purple_notify_user_info_add_pair( info, _( "Title" ), profile->title );
 msgid "First Name"
 msgstr "Nom"
 
@@ -3368,6 +3386,19 @@
 msgid "GG server"
 msgstr "Servidor GG"
 
+msgid "Don't use encryption"
+msgstr "No empris xifratge"
+
+msgid "Use encryption if available"
+msgstr "Empra xifratge si està disponible"
+
+#. TODO
+msgid "Require encryption"
+msgstr "Requereix xifratge"
+
+msgid "Connection security"
+msgstr "Seguretat de la connexió"
+
 #, c-format
 msgid "Unknown command: %s"
 msgstr "Ordre desconeguda: %s"
@@ -3403,7 +3434,6 @@
 #. * buffer that stores what is "being sent" until the
 #. * PurpleHTTPConnection reports it is fully sent.
 #.
-#. TODO: what to do here - do we really have to disconnect?
 #. TODO: do we really want to disconnect on a failure to write?
 #, c-format
 msgid "Lost connection with server: %s"
@@ -3660,6 +3690,9 @@
 msgid "action &lt;action to perform&gt;:  Perform an action."
 msgstr "action &lt;acció a dur a terme&gt;:  realitza una acció."
 
+msgid "authserv: Send a command to authserv"
+msgstr "authserv: envia una ordre al authserv"
+
 msgid ""
 "away [message]:  Set an away message, or use no message to return from being "
 "away."
@@ -4017,7 +4050,6 @@
 msgid "Postal Code"
 msgstr "Codi postal"
 
-#. purple_notify_user_info_add_pair( info, _( "Email" ), profile->email );
 msgid "Country"
 msgstr "País"
 
@@ -4787,18 +4819,9 @@
 msgid "Domain"
 msgstr "Domini"
 
-msgid "Require encryption"
-msgstr "Requereix xifratge"
-
-msgid "Use encryption if available"
-msgstr "Empra xifratge si està disponible"
-
 msgid "Use old-style SSL"
 msgstr "Empra SSL antic"
 
-msgid "Connection security"
-msgstr "Seguretat de la connexió"
-
 msgid "Allow plaintext auth over unencrypted streams"
 msgstr "Permet autorització de text sobre fluxos sense xifrar"
 
@@ -4910,6 +4933,7 @@
 "No s'ha pogut enviar el fitxer a %s, atès que l'usuari no permet la "
 "transferència de fitxers"
 
+#. not success
 msgid "File Send Failed"
 msgstr "Ha fallat la transferència del fitxer"
 
@@ -5632,18 +5656,6 @@
 msgid "Unable to Add"
 msgstr "No s'ha pogut afegir"
 
-msgid "Authorization Request Message:"
-msgstr "Missatge de petició d'autorització:"
-
-msgid "Please authorize me!"
-msgstr "Autoritzeu-me, si us plau."
-
-#. *
-#. * A wrapper for purple_request_action() that uses @c OK and @c Cancel buttons.
-#.
-msgid "_OK"
-msgstr "_D'acord"
-
 msgid "Error retrieving profile"
 msgstr "S'ha produït un error en recuperar el perfil"
 
@@ -5856,6 +5868,11 @@
 msgid "Mobile message was not sent because it was too long."
 msgstr "No s'ha enviat el missatge al mòbil perquè era massa llarg."
 
+msgid "Mobile message was not sent because an unknown error occurred."
+msgstr ""
+"No s'ha pogut enviar el missatge al mòbil perquè s'ha produït un error "
+"desconegut."
+
 #, c-format
 msgid ""
 "The MSN server will shut down for maintenance in %d minute. You will "
@@ -6031,18 +6048,6 @@
 msgid "The username specified is invalid."
 msgstr "El nom d'usuari especificat no és vàlid."
 
-msgid "The PIN you entered is invalid."
-msgstr "El PIN que heu introduït no és vàlid."
-
-msgid "The PIN you entered has an invalid length [4-10]."
-msgstr "La llargada del PIN que heu introduït no és vàlida [4-10]."
-
-msgid "The PIN is invalid. It should only consist of digits [0-9]."
-msgstr "El PIN no és vàlid. Només pot contenir dígits [0-9]."
-
-msgid "The two PINs you entered do not match."
-msgstr "Els dos PIN que heu introduït no coincideixen."
-
 msgid "The Display Name you entered is invalid."
 msgstr "El nom d'usuari que heu introduït no és vàlid."
 
@@ -6066,35 +6071,65 @@
 "Encara no s'ha pogut recuperar la informació del vostre perfil. Torneu-ho a "
 "intentar més tard."
 
-msgid "Your UID"
-msgstr "El vostre UID"
+#. display name
+#. nick name (required)
+msgid "Display Name"
+msgstr "Nom que es mostrarà"
+
+#. about me
+msgid "About Me"
+msgstr "Quant a mi"
+
+#. where I live
+msgid "Where I Live"
+msgstr "On visc"
+
+#. mobile number
+msgid "Mobile Number"
+msgstr "Número de telèfon mòbil"
+
+#. is searchable
+msgid "Can be searched"
+msgstr "Pot cercar-se"
+
+#. is suggestable
+msgid "Can be suggested"
+msgstr "Pot suggerir-se"
+
+msgid "Update your MXit Profile"
+msgstr "Actualitzeu el vostre perfil MXit"
+
+msgid "The PIN you entered is invalid."
+msgstr "El PIN que heu introduït no és vàlid."
+
+msgid "The PIN you entered has an invalid length [4-10]."
+msgstr "La llargada del PIN que heu introduït no és vàlida [4-10]."
+
+msgid "The PIN is invalid. It should only consist of digits [0-9]."
+msgstr "El PIN no és vàlid. Només pot contenir dígits [0-9]."
+
+msgid "The two PINs you entered do not match."
+msgstr "Els dos PIN que heu introduït no coincideixen."
+
+#. show error to user
+msgid "PIN Update Error"
+msgstr "S'ha produït un error en actualitzar el PIN"
 
 #. pin
 #. pin (required)
 msgid "PIN"
 msgstr "PIN"
 
+#. verify pin
 msgid "Verify PIN"
 msgstr "Verifiqueu el PIN"
 
-#. display name
-#. nick name (required)
-msgid "Display Name"
-msgstr "Nom que es mostrarà"
-
-#. hidden
-msgid "Hide my number"
-msgstr "Oculta el meu número"
-
-#. mobile number
-msgid "Mobile Number"
-msgstr "Número de telèfon mòbil"
-
-msgid "Update your Profile"
-msgstr "Actualitzeu el vostre perfil"
-
-msgid "Here you can update your MXit profile"
-msgstr "Aquí podeu actualitzar el vostre perfil MXit"
+#. (reference: "libpurple/request.h")
+msgid "Change PIN"
+msgstr "Canvia el PIN"
+
+msgid "Change MXit PIN"
+msgstr "Canvia el PIN de l'MXit"
 
 msgid "View Splash"
 msgstr "Mostra la pantalla de presentació"
@@ -6105,10 +6140,34 @@
 msgid "About"
 msgstr "Quant a"
 
+msgid "Search for user"
+msgstr "Cerca un usuari"
+
+msgid "Search for a MXit contact"
+msgstr "Cerca un contacte de l'MXit"
+
+msgid "Type search information"
+msgstr "Escriviu informació de la cerca"
+
+msgid "_Search"
+msgstr "C_erca"
+
 #. display / change profile
 msgid "Change Profile..."
 msgstr "Canvia el perfil..."
 
+#. change PIN
+msgid "Change PIN..."
+msgstr "Canvia el PIN..."
+
+#. suggested friends
+msgid "Suggested friends..."
+msgstr "Amics suggerits..."
+
+#. search for contacts
+msgid "Search for contacts..."
+msgstr "Cerca contactes..."
+
 #. display splash-screen
 msgid "View Splash..."
 msgstr "Mostra la pantalla de presentació..."
@@ -6137,6 +6196,9 @@
 msgid "Connecting..."
 msgstr "S'està connectant..."
 
+msgid "The Display Name you entered is too short."
+msgstr "El nom d'usuari que heu introduït és massa curt."
+
 msgid "The PIN you entered has an invalid length [7-10]."
 msgstr "La llargada del PIN que heu introduït no és vàlida [4-10]."
 
@@ -6211,13 +6273,12 @@
 msgid "Retrieving User Information..."
 msgstr "S'està obtenint informació de l'usuari..."
 
-#. you were kicked
+msgid "was kicked"
+msgstr "ha estat fet fora"
+
 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:"
 
@@ -6239,9 +6300,19 @@
 msgid "Hidden Number"
 msgstr "Nombre ocult"
 
+msgid "No profile available"
+msgstr "El perfil no està disponible"
+
+msgid "This contact does not have a profile."
+msgstr "Aquest contacte no té cap perfil."
+
 msgid "Your MXit ID..."
 msgstr "El vostre identificador MXit..."
 
+#. contact is in Deleted, Rejected or None state
+msgid "Re-Invite"
+msgstr "Convida de nou"
+
 #. Configuration options
 #. WAP server (reference: "libpurple/accountopt.h")
 msgid "WAP Server"
@@ -6256,6 +6327,30 @@
 msgid "Last Online"
 msgstr "Darrer cop en línia"
 
+msgid "Invite Message"
+msgstr "Missatge d'invitació"
+
+msgid "No results"
+msgstr "Cap resultat"
+
+msgid "No contacts found."
+msgstr "No s'ha trobat cap contacte."
+
+#. define columns
+msgid "UserId"
+msgstr "Usuari"
+
+msgid "Where I live"
+msgstr "On visc"
+
+#, c-format
+msgid "You have %i suggested friends."
+msgstr "Teniu %i suggeriments d'amics."
+
+#, c-format
+msgid "We found %i contacts that match your search."
+msgstr "Hem trobat %i contactes que coincideixen amb la cerca."
+
 #. 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 "S'ha trencat la connexió a MXit. Torneu-vos a connectar."
@@ -7013,6 +7108,12 @@
 msgid "Authorization Denied Message:"
 msgstr "Missatge de denegació de l'autorització:"
 
+#. *
+#. * A wrapper for purple_request_action() that uses @c OK and @c Cancel buttons.
+#.
+msgid "_OK"
+msgstr "_D'acord"
+
 #, c-format
 msgid "Received unexpected response from %s: %s"
 msgstr "S'ha rebut una resposta inesperada de %s: %s"
@@ -7373,7 +7474,6 @@
 msgstr "S'ha rebut l'autorització"
 
 #. Unregistered username
-#. uid is not exist
 #. the username does not exist
 msgid "Username does not exist"
 msgstr "L'usuari no existeix"
@@ -7546,6 +7646,14 @@
 msgid "You have been disconnected from chat room %s."
 msgstr "Se us ha desconnectat de la conversa %s."
 
+msgid "The new formatting is invalid."
+msgstr "El format nou no és vàlid."
+
+msgid "Username formatting can change only capitalization and whitespace."
+msgstr ""
+"El format del nom d'usuari només pot canviar majúscules i minúscules, i "
+"espais en blanc."
+
 msgid "Pop-Up Message"
 msgstr "Missatge emergent"
 
@@ -7811,14 +7919,6 @@
 msgid "ICQ Privacy Options"
 msgstr "Opcions de privadesa d'ICQ"
 
-msgid "The new formatting is invalid."
-msgstr "El format nou no és vàlid."
-
-msgid "Username formatting can change only capitalization and whitespace."
-msgstr ""
-"El format del nom d'usuari només pot canviar majúscules i minúscules, i "
-"espais en blanc."
-
 msgid "Change Address To:"
 msgstr "Canvia l'adreça per:"
 
@@ -7844,9 +7944,6 @@
 msgid "Type the email address of the buddy you are searching for."
 msgstr "Escriviu l'adreça de correu de l'amic que estigueu cercant."
 
-msgid "_Search"
-msgstr "C_erca"
-
 msgid "Set User Info (web)..."
 msgstr "Estableix informació d'usuari (web)..."
 
@@ -7883,9 +7980,6 @@
 msgid "Search for Buddy by Email Address..."
 msgstr "Cerca un amic per l'adreça de correu..."
 
-msgid "Don't use encryption"
-msgstr "No empris xifratge"
-
 msgid "Use clientLogin"
 msgstr "Empra clientLogin"
 
@@ -8163,727 +8257,6 @@
 msgid "These buddies will always see you as offline"
 msgstr "Aquests amics us veuran sempre fora de línia"
 
-msgid "Aquarius"
-msgstr "Aquari"
-
-msgid "Pisces"
-msgstr "Peixos"
-
-msgid "Aries"
-msgstr "Àries"
-
-msgid "Taurus"
-msgstr "Taure"
-
-msgid "Gemini"
-msgstr "Bessons"
-
-msgid "Cancer"
-msgstr "Cranc"
-
-msgid "Leo"
-msgstr "Lleó"
-
-msgid "Virgo"
-msgstr "Verge"
-
-msgid "Libra"
-msgstr "Balança"
-
-msgid "Scorpio"
-msgstr "Escorpió"
-
-msgid "Sagittarius"
-msgstr "Sagitari"
-
-msgid "Capricorn"
-msgstr "Capricorn"
-
-msgid "Rat"
-msgstr "Rata"
-
-msgid "Ox"
-msgstr "Bou"
-
-msgid "Tiger"
-msgstr "Tigre"
-
-msgid "Rabbit"
-msgstr "Conill"
-
-msgid "Dragon"
-msgstr "Drac"
-
-msgid "Snake"
-msgstr "Serp"
-
-msgid "Horse"
-msgstr "Cavall"
-
-msgid "Goat"
-msgstr "Ovella"
-
-msgid "Monkey"
-msgstr "Mico"
-
-msgid "Rooster"
-msgstr "Gall"
-
-msgid "Dog"
-msgstr "Gos"
-
-msgid "Pig"
-msgstr "Porc"
-
-msgid "Other"
-msgstr "Altres"
-
-msgid "Visible"
-msgstr "Visible"
-
-msgid "Friend Only"
-msgstr "Només amic"
-
-msgid "Private"
-msgstr "Privat"
-
-msgid "QQ Number"
-msgstr "Número QQ"
-
-msgid "Country/Region"
-msgstr "País/Regió"
-
-msgid "Province/State"
-msgstr "Província/Estat"
-
-msgid "Zipcode"
-msgstr "Codi postal"
-
-msgid "Phone Number"
-msgstr "Número de telèfon"
-
-msgid "Authorize adding"
-msgstr "Autoritzar que us afegeixin"
-
-msgid "Cellphone Number"
-msgstr "Número de mòbil"
-
-msgid "Personal Introduction"
-msgstr "Introducció personal"
-
-msgid "City/Area"
-msgstr "Ciutat/Àrea"
-
-msgid "Publish Mobile"
-msgstr "Publica el mòbil"
-
-msgid "Publish Contact"
-msgstr "Publica el contacte"
-
-msgid "College"
-msgstr "Col·legi"
-
-msgid "Horoscope"
-msgstr "Horòscop"
-
-msgid "Zodiac"
-msgstr "Zodíac"
-
-msgid "Blood"
-msgstr "Sang"
-
-msgid "True"
-msgstr "Cert"
-
-msgid "False"
-msgstr "Fals"
-
-msgid "Modify Contact"
-msgstr "Modifica el contacte"
-
-msgid "Modify Address"
-msgstr "Modifica l'adreça"
-
-msgid "Modify Extended Information"
-msgstr "Modifica la informació estesa"
-
-msgid "Modify Information"
-msgstr "Modifica la informació"
-
-msgid "Update"
-msgstr "Actualitza"
-
-msgid "Could not change buddy information."
-msgstr "No s'ha pogut canviar la informació l'amic."
-
-msgid "Note"
-msgstr "Nota"
-
-# FIXME: "memo", el qq té una terminologia molt peculiar
-#. callback
-msgid "Buddy Memo"
-msgstr "Memo de l'amic"
-
-msgid "Change his/her memo as you like"
-msgstr "Canvieu-ne el memo"
-
-msgid "_Modify"
-msgstr "_Modifica"
-
-msgid "Memo Modify"
-msgstr "Modifica el memo"
-
-msgid "Server says:"
-msgstr "El servidor diu:"
-
-msgid "Your request was accepted."
-msgstr "S'ha acceptat la vostra sol·licitud."
-
-msgid "Your request was rejected."
-msgstr "S'ha rebutjat la vostra sol·licitud."
-
-#, c-format
-msgid "%u requires verification: %s"
-msgstr "%u requereix verificació: %s"
-
-# Nota: títol de finestra
-msgid "Add buddy question"
-msgstr "Afegir una pregunta"
-
-msgid "Enter answer here"
-msgstr "Introduïu la resposta aquí"
-
-msgid "Send"
-msgstr "Envia"
-
-msgid "Invalid answer."
-msgstr "La resposta no és vàlida"
-
-msgid "Authorization denied message:"
-msgstr "Missatge de denegació de l'autorització:"
-
-msgid "Sorry, you're not my style."
-msgstr "Em sap greu, no sou el meu tipus."
-
-#, c-format
-msgid "%u needs authorization"
-msgstr "Cal autorització per a %u"
-
-# Nota: títol de finestra (josep)
-msgid "Add buddy authorize"
-msgstr "Autorització per a afegir un amic"
-
-msgid "Enter request here"
-msgstr "Introduïu la sol·licitud aquí"
-
-msgid "Would you be my friend?"
-msgstr "Voleu ser el meu amic?"
-
-msgid "QQ Buddy"
-msgstr "Amic QQ"
-
-msgid "Add buddy"
-msgstr "Afegeix un amic"
-
-msgid "Invalid QQ Number"
-msgstr "El nombre QQ no és vàlid"
-
-msgid "Failed sending authorize"
-msgstr "No s'ha pogut enviar l'autorització"
-
-#, c-format
-msgid "Failed removing buddy %u"
-msgstr "No s'ha pogut suprimir l'amic %u"
-
-#, c-format
-msgid "Failed removing me from %d's buddy list"
-msgstr "No us heu pogut suprimir de la llista d'amics de %d"
-
-msgid "No reason given"
-msgstr "No s'ha indicat cap motiu"
-
-#. only need to get value
-#, c-format
-msgid "You have been added by %s"
-msgstr "%s us ha afegit"
-
-msgid "Would you like to add him?"
-msgstr "Voleu afegir-lo?"
-
-#, c-format
-msgid "Rejected by %s"
-msgstr "Rebutjat per %s"
-
-#, c-format
-msgid "Message: %s"
-msgstr "Missatge: %s"
-
-msgid "ID: "
-msgstr "Identificador: "
-
-msgid "Group ID"
-msgstr "Identificador del Grup"
-
-msgid "QQ Qun"
-msgstr "QQ Qun"
-
-msgid "Please enter Qun number"
-msgstr "Introduïu el número Qun"
-
-msgid "You can only search for permanent Qun\n"
-msgstr "Només podeu cercar Quns permanents\n"
-
-msgid "(Invalid UTF-8 string)"
-msgstr "(No és una cadena UTF-8 vàlida)"
-
-msgid "Not member"
-msgstr "No en sóc membre"
-
-msgid "Member"
-msgstr "Membre"
-
-msgid "Requesting"
-msgstr "Demanant"
-
-msgid "Admin"
-msgstr "Administrador"
-
-# FIXME
-#. XXX: Should this be "Topic"?
-msgid "Room Title"
-msgstr "Nom de la sala"
-
-msgid "Notice"
-msgstr "Avís"
-
-msgid "Detail"
-msgstr "Detalls"
-
-msgid "Creator"
-msgstr "Creador"
-
-msgid "About me"
-msgstr "Quant a mi"
-
-msgid "Category"
-msgstr "Categoria"
-
-msgid "The Qun does not allow others to join"
-msgstr "Aquest Qun no permet que s'hi afegeixi ningú"
-
-msgid "Join QQ Qun"
-msgstr "Entra al Qun QQ"
-
-msgid "Input request here"
-msgstr "Introduïu la sol·licitud aquí"
-
-#, c-format
-msgid "Successfully joined Qun %s (%u)"
-msgstr "S'ha entrat al Qun %s (%u)"
-
-msgid "Successfully joined Qun"
-msgstr "S'ha entrat al Qun"
-
-#, c-format
-msgid "Qun %u denied from joining"
-msgstr "No se us ha permès entrar al Qun %u"
-
-msgid "QQ Qun Operation"
-msgstr "Operació Qun QQ"
-
-msgid "Failed:"
-msgstr "Ha fallat:"
-
-msgid "Join Qun, Unknown Reply"
-msgstr "Resposta desconeguda en entrar al Qun"
-
-msgid "Quit Qun"
-msgstr "Surt del Qun"
-
-msgid ""
-"Note, if you are the creator, \n"
-"this operation will eventually remove this Qun."
-msgstr ""
-"Nota, si en sou el creador, \n"
-"aquesta operació suprimirà aquest Qun."
-
-msgid "Sorry, you are not our style"
-msgstr "Em sap greu, no sou el meu tipus"
-
-msgid "Successfully changed Qun members"
-msgstr "S'ha canviat els membres del Qun"
-
-msgid "Successfully changed Qun information"
-msgstr "S'ha canviat la iformació del Qun correctament"
-
-msgid "You have successfully created a Qun"
-msgstr "Heu creat un Qun"
-
-msgid "Would you like to set up detailed information now?"
-msgstr "Voleu establir informació detallada ara?"
-
-msgid "Setup"
-msgstr "Configuració"
-
-#, c-format
-msgid "%u requested to join Qun %u for %s"
-msgstr "%u ha sol·licitat unir-se al Qun %u per %s"
-
-#, c-format
-msgid "%u request to join Qun %u"
-msgstr "%u ha sol·licitat unir-se al Qun %u"
-
-#, c-format
-msgid "Failed to join Qun %u, operated by admin %u"
-msgstr "No s'ha pogut entrar al Qun %u, administrat per %u"
-
-#, c-format
-msgid "<b>Joining Qun %u is approved by admin %u for %s</b>"
-msgstr "<b>L'administrador %2$u us ha permès unir-vos al Qun %1$u per %3$s</b>"
-
-#, c-format
-msgid "<b>Removed buddy %u.</b>"
-msgstr "<b>S'ha suprimit l'amic %u.</b>"
-
-#, c-format
-msgid "<b>New buddy %u joined.</b>"
-msgstr "<b>El nou amic %u ha entrat.</b>"
-
-#, c-format
-msgid "Unknown-%d"
-msgstr "Desconegut-%d"
-
-msgid "Level"
-msgstr "Nivell"
-
-msgid " VIP"
-msgstr " VIP"
-
-msgid " TCP"
-msgstr " TCP"
-
-msgid " FromMobile"
-msgstr " FromMobile"
-
-msgid " BindMobile"
-msgstr " BindMobile"
-
-msgid " Video"
-msgstr " Vídeo"
-
-msgid " Zone"
-msgstr " Zona"
-
-# Nota: només apareix si es defineix DEBUG
-msgid "Flag"
-msgstr "Bandera"
-
-# Nota: només apareix si es defineix DEBUG
-msgid "Ver"
-msgstr "Ver"
-
-msgid "Invalid name"
-msgstr "QQ: El nom d'usuari no és vàlid"
-
-msgid "Select icon..."
-msgstr "Selecciona una icona..."
-
-#, c-format
-msgid "<b>Login time</b>: %d-%d-%d, %d:%d:%d<br>\n"
-msgstr "<b>Temps d'entrada</b>: %d-%d-%d, %d:%d:%d<br>\n"
-
-#, c-format
-msgid "<b>Total Online Buddies</b>: %d<br>\n"
-msgstr "<b>Amic en línia</b>: %d<br>\n"
-
-#, c-format
-msgid "<b>Last Refresh</b>: %d-%d-%d, %d:%d:%d<br>\n"
-msgstr "<b>Actualitzat per darrer cop</b>: %d-%d-%d, %d:%d:%d<br>\n"
-
-#, c-format
-msgid "<b>Server</b>: %s<br>\n"
-msgstr "<b>Servidor</b>: %s<br>\n"
-
-#, c-format
-msgid "<b>Client Tag</b>: %s<br>\n"
-msgstr "<b>Etiqueta del client</b>: %s<br>\n"
-
-#, c-format
-msgid "<b>Connection Mode</b>: %s<br>\n"
-msgstr "<b>Mode de connexió</b>: %s<br>\n"
-
-#, c-format
-msgid "<b>My Internet IP</b>: %s:%d<br>\n"
-msgstr "<b>La meva adreça IP</b>: %s:%d<br>\n"
-
-#, c-format
-msgid "<b>Sent</b>: %lu<br>\n"
-msgstr "<b>Enviats</b>: %lu<br>\n"
-
-#, c-format
-msgid "<b>Resend</b>: %lu<br>\n"
-msgstr "<b>Reenviats</b>: %lu<br>\n"
-
-#, c-format
-msgid "<b>Lost</b>: %lu<br>\n"
-msgstr "<b>Perduts</b>: %lu<br>\n"
-
-#, c-format
-msgid "<b>Received</b>: %lu<br>\n"
-msgstr "<b>Rebuts</b>: %lu<br>\n"
-
-#, c-format
-msgid "<b>Received Duplicate</b>: %lu<br>\n"
-msgstr "<b>Rebuts duplicats</b>: %lu<br>\n"
-
-#, c-format
-msgid "<b>Time</b>: %d-%d-%d, %d:%d:%d<br>\n"
-msgstr "<b>Temps</b>: %d-%d-%d, %d:%d:%d<br>\n"
-
-#, c-format
-msgid "<b>IP</b>: %s<br>\n"
-msgstr "<b>IP</b>: %s<br>\n"
-
-msgid "Login Information"
-msgstr "Informació de la connexió"
-
-msgid "<p><b>Original Author</b>:<br>\n"
-msgstr "<p><b>Autor original</b>:<br>\n"
-
-msgid "<p><b>Code Contributors</b>:<br>\n"
-msgstr "<p><b>Col·laboradors del codi</b>:<br>\n"
-
-msgid "<p><b>Lovely Patch Writers</b>:<br>\n"
-msgstr "<p><b>Encantadors apedaçadors (de codi)</b>:<br>\n"
-
-msgid "<p><b>Acknowledgement</b>:<br>\n"
-msgstr "<p><b>Reconeixement</b>:<br>\n"
-
-msgid "<p><b>Scrupulous Testers</b>:<br>\n"
-msgstr "<p><b>Comprovadors del codi</b>:<br>\n"
-
-msgid "and more, please let me know... thank you!))"
-msgstr "i més, si us plau feu-m'ho saber... gràcies!!!))"
-
-# FIXME: ush... traducció lliure... 
-msgid "<p><i>And, all the boys in the backroom...</i><br>\n"
-msgstr "<p><i>I tothom que ho ha fet possible...<i><br>\n"
-
-msgid "<i>Feel free to join us!</i> :)"
-msgstr "<i>No dubteu a col·laborar amb nosaltres!</i> :)"
-
-#, c-format
-msgid "About OpenQ %s"
-msgstr "Quant a l'OpenQ %s"
-
-msgid "Change Icon"
-msgstr "Canvia la icona"
-
-msgid "Change Password"
-msgstr "Canvia la contrasenya"
-
-msgid "Account Information"
-msgstr "Informació del compte"
-
-msgid "Update all QQ Quns"
-msgstr "Actualitza tots els Quns QQ"
-
-msgid "About OpenQ"
-msgstr "Quant a l'OpenQ"
-
-msgid "Modify Buddy Memo"
-msgstr "Modifica el memo de l'amic"
-
-#. *< type
-#. *< ui_requirement
-#. *< flags
-#. *< dependencies
-#. *< priority
-#. *< id
-#. *< name
-#. *< version
-#. *  summary
-#. *  description
-msgid "QQ Protocol Plugin"
-msgstr "Connector per al protocol QQ"
-
-msgid "Auto"
-msgstr "Auto"
-
-msgid "Select Server"
-msgstr "Seleccioneu un servidor"
-
-msgid "QQ2008"
-msgstr "QQ2008"
-
-msgid "QQ2007"
-msgstr "QQ2007"
-
-msgid "QQ2005"
-msgstr "QQ2005"
-
-msgid "Connect by TCP"
-msgstr "Connecta amb TCP"
-
-msgid "Show server notice"
-msgstr "Mostra els avisos del servidor"
-
-msgid "Show server news"
-msgstr "Mostra les notícies del servidor"
-
-msgid "Show chat room when msg comes"
-msgstr "Mostra la sala de xat quan hi arribin missatges"
-
-# FIXME: keep alive -> permanència
-msgid "Keep alive interval (seconds)"
-msgstr "Interval de permanència (en segons)"
-
-msgid "Update interval (seconds)"
-msgstr "Interval d'actualització (en segons)"
-
-msgid "Unable to decrypt server reply"
-msgstr "No es pot desxifrar la resposta del servidor"
-
-#, c-format
-msgid "Failed requesting token, 0x%02X"
-msgstr "S'ha produït un error en sol·licitar el testimoni, 0x%02X"
-
-#, c-format
-msgid "Invalid token len, %d"
-msgstr "La longiud del testimoni no és vàlida, %d"
-
-#. extend redirect used in QQ2006
-msgid "Redirect_EX is not currently supported"
-msgstr "Redirect_EX no està implementat"
-
-#. need activation
-#. need activation
-#. need activation
-msgid "Activation required"
-msgstr "Cal activació"
-
-#, c-format
-msgid "Unknown reply code when logging in (0x%02X)"
-msgstr "No s'ha reconegut el codi de resposta en entrar (0x%02X)"
-
-# FIXME: captcha
-msgid "Requesting captcha"
-msgstr "S'està sol·licitant un capcha"
-
-msgid "Checking captcha"
-msgstr "S'està comprovant el captcha"
-
-msgid "Failed captcha verification"
-msgstr "Ha fallat la verificació del captcha"
-
-msgid "Captcha Image"
-msgstr "Imatge captcha"
-
-msgid "Enter code"
-msgstr "Introduïu el codi"
-
-msgid "QQ Captcha Verification"
-msgstr "Verificació del captcha QQ"
-
-msgid "Enter the text from the image"
-msgstr "Introduïu el text de la imatge"
-
-#, c-format
-msgid "Unknown reply when checking password (0x%02X)"
-msgstr ""
-"No s'ha reconegut el codi de resposta en comprovar la contrasenya (0x%02X)"
-
-#, c-format
-msgid ""
-"Unknown reply code when logging in (0x%02X):\n"
-"%s"
-msgstr ""
-"No s'ha reconegut el codi de resposta en entrar (0x%02X):\n"
-"%s"
-
-msgid "Socket error"
-msgstr "Error del sòcol"
-
-msgid "Getting server"
-msgstr "S'està obtenint el servidor"
-
-msgid "Requesting token"
-msgstr "S'està sol·licitant un testimoni"
-
-msgid "Unable to resolve hostname"
-msgstr "No s'ha pogut resoldre el nom de l'ordinador"
-
-msgid "Invalid server or port"
-msgstr "El servidor o el port no són vàlids"
-
-msgid "Connecting to server"
-msgstr "S'està connectant al servidor"
-
-msgid "QQ Error"
-msgstr "Error del QQ"
-
-#, c-format
-msgid ""
-"Server News:\n"
-"%s\n"
-"%s\n"
-"%s"
-msgstr ""
-"Notícies del servidor:\n"
-"%s\n"
-"%s\n"
-"%s"
-
-#, c-format
-msgid "%s:%s"
-msgstr "%s:%s"
-
-#, c-format
-msgid "From %s:"
-msgstr "De %s:"
-
-#, c-format
-msgid ""
-"Server notice From %s: \n"
-"%s"
-msgstr ""
-"Avís del servidor de %s: \n"
-"%s"
-
-msgid "Unknown SERVER CMD"
-msgstr "Ordre del servidor desconeguda"
-
-#, c-format
-msgid ""
-"Error reply of %s(0x%02X)\n"
-"Room %u, reply 0x%02X"
-msgstr ""
-"Resposta d'error de %s(0x%02X)\n"
-"Sala %u, resposta 0x%02X"
-
-msgid "QQ Qun Command"
-msgstr "Ordre QQ Qun"
-
-msgid "Unable to decrypt login reply"
-msgstr "No s'ha pogut desxifrar la resposta d'entrada"
-
-msgid "Unknown LOGIN CMD"
-msgstr "Ordre d'entrada desconeguda"
-
-msgid "Unknown CLIENT CMD"
-msgstr "Ordre de client desconeguda"
-
-#, c-format
-msgid "%d has declined the file %s"
-msgstr "%d ha refusat el fitxer %s"
-
-msgid "File Send"
-msgstr "S'ha enviat el fitxer"
-
-#, c-format
-msgid "%d cancelled the transfer of %s"
-msgstr "%d ha cancel·lat la transferència de %s"
-
 #, c-format
 msgid "<b>Group Title:</b> %s<br>"
 msgstr "<b>Títol del grup:</b> %s<br>"
@@ -9654,6 +9027,9 @@
 msgid "Unit"
 msgstr "Unitat"
 
+msgid "Note"
+msgstr "Nota"
+
 msgid "Join Chat"
 msgstr "Entra a un xat"
 
@@ -10302,6 +9678,9 @@
 msgid "Unable to create listen socket"
 msgstr "No s'ha pogut crear el sòcol on escoltar"
 
+msgid "Unable to resolve hostname"
+msgstr "No s'ha pogut resoldre el nom de l'ordinador"
+
 msgid "SIP usernames may not contain whitespaces or @ symbols"
 msgstr "Els noms d'usuari SIP no poden contenir espais en blanc ni @"
 
@@ -10422,6 +9801,9 @@
 msgid "Yahoo! system message for %s:"
 msgstr "Missatge del sistema de yahoo! per a %s:"
 
+msgid "Authorization denied message:"
+msgstr "Missatge de denegació de l'autorització:"
+
 #, c-format
 msgid ""
 "%s has (retroactively) denied your request to add them to your list for the "
@@ -11219,15 +10601,18 @@
 msgid "No Proxy"
 msgstr "Sense servidor intermediari"
 
-msgid "HTTP"
-msgstr "HTTP"
-
 msgid "SOCKS 4"
 msgstr "SOCKS 4"
 
 msgid "SOCKS 5"
 msgstr "SOCKS 5"
 
+msgid "Tor/Privacy (SOCKS5)"
+msgstr "Tor/Privadesa (SOCKS5)"
+
+msgid "HTTP"
+msgstr "HTTP"
+
 msgid "Use Environmental Settings"
 msgstr "Empra les opcions de l'entorn"
 
@@ -11255,6 +10640,12 @@
 msgid "Pa_ssword:"
 msgstr "_Contrasenya:"
 
+msgid "Use _silence suppression"
+msgstr "Empra la supressió del silenci"
+
+msgid "_Voice and Video"
+msgstr "_Veu i vídeo"
+
 msgid "Unable to save new account"
 msgstr "No s'ha pogut desar el compte nou"
 
@@ -11303,9 +10694,20 @@
 "d'amics."
 
 #, c-format
+msgid ""
+"<a href=\"viewinfo\">%s</a>%s%s%s wants to add you (%s) to his or her buddy "
+"list%s%s"
+msgstr ""
+"<a href=\"viewinfo\">%s</a>%s%s%s us vol afegir (%s) a la seva llista d'amics"
+"%s%s"
+
+#, c-format
 msgid "%s%s%s%s wants to add you (%s) to his or her buddy list%s%s"
 msgstr "L'usuari %s%s%s%s us vol afegir (%s) a la seva llista d'amics%s%s"
 
+msgid "Send Instant Message"
+msgstr "Envia un missatge instantani"
+
 #. Buddy List
 msgid "Background Color"
 msgstr "Color de fons"
@@ -11859,6 +11261,9 @@
 msgid "(Optional) A_lias:"
 msgstr "(Opcional) À_lies:"
 
+msgid "(Optional) _Invite message:"
+msgstr "(Opcional) Missatge d'_invitació:"
+
 msgid "Add buddy to _group:"
 msgstr "Afegeix l'amic al _grup:"
 
@@ -13345,6 +12750,13 @@
 msgstr "Avisos nous"
 
 # FIXME: Cancel·la?
+#. Translators: Make sure you translate "Dismiss" differently than
+#. "close"!  This string is used in the "You have pounced" dialog
+#. that appears when one of your Buddy Pounces is triggered.  In
+#. this context "Dismiss" means "I acknowledge that I've seen that
+#. this pounce was triggered--remove it from this list."  Translating
+#. it as "Remove" is acceptable if you can't think of a more precise
+#. word.
 msgid "Dismiss"
 msgstr "Rebutja"
 
@@ -14479,6 +13891,9 @@
 msgid "PubSub Leaf"
 msgstr "Fulla PubSub"
 
+msgid "Other"
+msgstr "Altres"
+
 msgid ""
 "\n"
 "<b>Description:</b> "
@@ -15343,6 +14758,21 @@
 msgid "D_evice"
 msgstr "D_ispositiu"
 
+msgid "DROP"
+msgstr "DROP"
+
+msgid "Volume:"
+msgstr "Volum:"
+
+msgid "Silence threshold:"
+msgstr "Llindar per al sileici:"
+
+msgid "Input and Output Settings"
+msgstr "Paràmetres d'entrada i sortida"
+
+msgid "Microphone Test"
+msgstr "Test del micròfon"
+
 #. *< magic
 #. *< major version
 #. *< minor version
@@ -15355,9 +14785,6 @@
 msgid "Voice/Video Settings"
 msgstr "Configuració del so/vídeo"
 
-msgid "Voice and Video Settings"
-msgstr "Configuració de la veu i el vídeo"
-
 #. *< name
 #. *< version
 msgid "Configure your microphone and webcam."
@@ -15635,6 +15062,668 @@
 msgid "You do not have permission to uninstall this application."
 msgstr "No tens permís per desinstal.lar aquesta aplicació."
 
+#~ msgid "Authorization Request Message:"
+#~ msgstr "Missatge de petició d'autorització:"
+
+#~ msgid "Please authorize me!"
+#~ msgstr "Autoritzeu-me, si us plau."
+
+#~ msgid "Your UID"
+#~ msgstr "El vostre UID"
+
+#~ msgid "Hide my number"
+#~ msgstr "Oculta el meu número"
+
+#~ msgid "Here you can update your MXit profile"
+#~ msgstr "Aquí podeu actualitzar el vostre perfil MXit"
+
+#~ msgid "Aquarius"
+#~ msgstr "Aquari"
+
+#~ msgid "Pisces"
+#~ msgstr "Peixos"
+
+#~ msgid "Aries"
+#~ msgstr "Àries"
+
+#~ msgid "Taurus"
+#~ msgstr "Taure"
+
+#~ msgid "Gemini"
+#~ msgstr "Bessons"
+
+#~ msgid "Cancer"
+#~ msgstr "Cranc"
+
+#~ msgid "Leo"
+#~ msgstr "Lleó"
+
+#~ msgid "Virgo"
+#~ msgstr "Verge"
+
+#~ msgid "Libra"
+#~ msgstr "Balança"
+
+#~ msgid "Scorpio"
+#~ msgstr "Escorpió"
+
+#~ msgid "Sagittarius"
+#~ msgstr "Sagitari"
+
+#~ msgid "Capricorn"
+#~ msgstr "Capricorn"
+
+#~ msgid "Rat"
+#~ msgstr "Rata"
+
+#~ msgid "Ox"
+#~ msgstr "Bou"
+
+#~ msgid "Tiger"
+#~ msgstr "Tigre"
+
+#~ msgid "Rabbit"
+#~ msgstr "Conill"
+
+#~ msgid "Dragon"
+#~ msgstr "Drac"
+
+#~ msgid "Snake"
+#~ msgstr "Serp"
+
+#~ msgid "Horse"
+#~ msgstr "Cavall"
+
+#~ msgid "Goat"
+#~ msgstr "Ovella"
+
+#~ msgid "Monkey"
+#~ msgstr "Mico"
+
+#~ msgid "Rooster"
+#~ msgstr "Gall"
+
+#~ msgid "Dog"
+#~ msgstr "Gos"
+
+#~ msgid "Pig"
+#~ msgstr "Porc"
+
+#~ msgid "Visible"
+#~ msgstr "Visible"
+
+#~ msgid "Friend Only"
+#~ msgstr "Només amic"
+
+#~ msgid "Private"
+#~ msgstr "Privat"
+
+#~ msgid "QQ Number"
+#~ msgstr "Número QQ"
+
+#~ msgid "Country/Region"
+#~ msgstr "País/Regió"
+
+#~ msgid "Province/State"
+#~ msgstr "Província/Estat"
+
+#~ msgid "Zipcode"
+#~ msgstr "Codi postal"
+
+#~ msgid "Phone Number"
+#~ msgstr "Número de telèfon"
+
+#~ msgid "Authorize adding"
+#~ msgstr "Autoritzar que us afegeixin"
+
+#~ msgid "Cellphone Number"
+#~ msgstr "Número de mòbil"
+
+#~ msgid "Personal Introduction"
+#~ msgstr "Introducció personal"
+
+#~ msgid "City/Area"
+#~ msgstr "Ciutat/Àrea"
+
+#~ msgid "Publish Mobile"
+#~ msgstr "Publica el mòbil"
+
+#~ msgid "Publish Contact"
+#~ msgstr "Publica el contacte"
+
+#~ msgid "College"
+#~ msgstr "Col·legi"
+
+#~ msgid "Horoscope"
+#~ msgstr "Horòscop"
+
+#~ msgid "Zodiac"
+#~ msgstr "Zodíac"
+
+#~ msgid "Blood"
+#~ msgstr "Sang"
+
+#~ msgid "True"
+#~ msgstr "Cert"
+
+#~ msgid "False"
+#~ msgstr "Fals"
+
+#~ msgid "Modify Contact"
+#~ msgstr "Modifica el contacte"
+
+#~ msgid "Modify Address"
+#~ msgstr "Modifica l'adreça"
+
+#~ msgid "Modify Extended Information"
+#~ msgstr "Modifica la informació estesa"
+
+#~ msgid "Modify Information"
+#~ msgstr "Modifica la informació"
+
+#~ msgid "Update"
+#~ msgstr "Actualitza"
+
+#~ msgid "Could not change buddy information."
+#~ msgstr "No s'ha pogut canviar la informació l'amic."
+
+# FIXME: "memo", el qq té una terminologia molt peculiar
+#~ msgid "Buddy Memo"
+#~ msgstr "Memo de l'amic"
+
+#~ msgid "Change his/her memo as you like"
+#~ msgstr "Canvieu-ne el memo"
+
+#~ msgid "_Modify"
+#~ msgstr "_Modifica"
+
+#~ msgid "Memo Modify"
+#~ msgstr "Modifica el memo"
+
+#~ msgid "Server says:"
+#~ msgstr "El servidor diu:"
+
+#~ msgid "Your request was accepted."
+#~ msgstr "S'ha acceptat la vostra sol·licitud."
+
+#~ msgid "Your request was rejected."
+#~ msgstr "S'ha rebutjat la vostra sol·licitud."
+
+#~ msgid "%u requires verification: %s"
+#~ msgstr "%u requereix verificació: %s"
+
+# Nota: títol de finestra
+#~ msgid "Add buddy question"
+#~ msgstr "Afegir una pregunta"
+
+#~ msgid "Enter answer here"
+#~ msgstr "Introduïu la resposta aquí"
+
+#~ msgid "Send"
+#~ msgstr "Envia"
+
+#~ msgid "Invalid answer."
+#~ msgstr "La resposta no és vàlida"
+
+#~ msgid "Sorry, you're not my style."
+#~ msgstr "Em sap greu, no sou el meu tipus."
+
+#~ msgid "%u needs authorization"
+#~ msgstr "Cal autorització per a %u"
+
+# Nota: títol de finestra (josep)
+#~ msgid "Add buddy authorize"
+#~ msgstr "Autorització per a afegir un amic"
+
+#~ msgid "Enter request here"
+#~ msgstr "Introduïu la sol·licitud aquí"
+
+#~ msgid "Would you be my friend?"
+#~ msgstr "Voleu ser el meu amic?"
+
+#~ msgid "QQ Buddy"
+#~ msgstr "Amic QQ"
+
+#~ msgid "Add buddy"
+#~ msgstr "Afegeix un amic"
+
+#~ msgid "Invalid QQ Number"
+#~ msgstr "El nombre QQ no és vàlid"
+
+#~ msgid "Failed sending authorize"
+#~ msgstr "No s'ha pogut enviar l'autorització"
+
+#~ msgid "Failed removing buddy %u"
+#~ msgstr "No s'ha pogut suprimir l'amic %u"
+
+#~ msgid "Failed removing me from %d's buddy list"
+#~ msgstr "No us heu pogut suprimir de la llista d'amics de %d"
+
+#~ msgid "No reason given"
+#~ msgstr "No s'ha indicat cap motiu"
+
+#~ msgid "You have been added by %s"
+#~ msgstr "%s us ha afegit"
+
+#~ msgid "Would you like to add him?"
+#~ msgstr "Voleu afegir-lo?"
+
+#~ msgid "Rejected by %s"
+#~ msgstr "Rebutjat per %s"
+
+#~ msgid "Message: %s"
+#~ msgstr "Missatge: %s"
+
+#~ msgid "ID: "
+#~ msgstr "Identificador: "
+
+#~ msgid "Group ID"
+#~ msgstr "Identificador del Grup"
+
+#~ msgid "QQ Qun"
+#~ msgstr "QQ Qun"
+
+#~ msgid "Please enter Qun number"
+#~ msgstr "Introduïu el número Qun"
+
+#~ msgid "You can only search for permanent Qun\n"
+#~ msgstr "Només podeu cercar Quns permanents\n"
+
+#~ msgid "(Invalid UTF-8 string)"
+#~ msgstr "(No és una cadena UTF-8 vàlida)"
+
+#~ msgid "Not member"
+#~ msgstr "No en sóc membre"
+
+#~ msgid "Member"
+#~ msgstr "Membre"
+
+#~ msgid "Requesting"
+#~ msgstr "Demanant"
+
+#~ msgid "Admin"
+#~ msgstr "Administrador"
+
+# FIXME
+#~ msgid "Room Title"
+#~ msgstr "Nom de la sala"
+
+#~ msgid "Notice"
+#~ msgstr "Avís"
+
+#~ msgid "Detail"
+#~ msgstr "Detalls"
+
+#~ msgid "Creator"
+#~ msgstr "Creador"
+
+#~ msgid "Category"
+#~ msgstr "Categoria"
+
+#~ msgid "The Qun does not allow others to join"
+#~ msgstr "Aquest Qun no permet que s'hi afegeixi ningú"
+
+#~ msgid "Join QQ Qun"
+#~ msgstr "Entra al Qun QQ"
+
+#~ msgid "Input request here"
+#~ msgstr "Introduïu la sol·licitud aquí"
+
+#~ msgid "Successfully joined Qun %s (%u)"
+#~ msgstr "S'ha entrat al Qun %s (%u)"
+
+#~ msgid "Successfully joined Qun"
+#~ msgstr "S'ha entrat al Qun"
+
+#~ msgid "Qun %u denied from joining"
+#~ msgstr "No se us ha permès entrar al Qun %u"
+
+#~ msgid "QQ Qun Operation"
+#~ msgstr "Operació Qun QQ"
+
+#~ msgid "Failed:"
+#~ msgstr "Ha fallat:"
+
+#~ msgid "Join Qun, Unknown Reply"
+#~ msgstr "Resposta desconeguda en entrar al Qun"
+
+#~ msgid "Quit Qun"
+#~ msgstr "Surt del Qun"
+
+#~ msgid ""
+#~ "Note, if you are the creator, \n"
+#~ "this operation will eventually remove this Qun."
+#~ msgstr ""
+#~ "Nota, si en sou el creador, \n"
+#~ "aquesta operació suprimirà aquest Qun."
+
+#~ msgid "Sorry, you are not our style"
+#~ msgstr "Em sap greu, no sou el meu tipus"
+
+#~ msgid "Successfully changed Qun members"
+#~ msgstr "S'ha canviat els membres del Qun"
+
+#~ msgid "Successfully changed Qun information"
+#~ msgstr "S'ha canviat la iformació del Qun correctament"
+
+#~ msgid "You have successfully created a Qun"
+#~ msgstr "Heu creat un Qun"
+
+#~ msgid "Would you like to set up detailed information now?"
+#~ msgstr "Voleu establir informació detallada ara?"
+
+#~ msgid "Setup"
+#~ msgstr "Configuració"
+
+#~ msgid "%u requested to join Qun %u for %s"
+#~ msgstr "%u ha sol·licitat unir-se al Qun %u per %s"
+
+#~ msgid "%u request to join Qun %u"
+#~ msgstr "%u ha sol·licitat unir-se al Qun %u"
+
+#~ msgid "Failed to join Qun %u, operated by admin %u"
+#~ msgstr "No s'ha pogut entrar al Qun %u, administrat per %u"
+
+#~ msgid "<b>Joining Qun %u is approved by admin %u for %s</b>"
+#~ msgstr ""
+#~ "<b>L'administrador %2$u us ha permès unir-vos al Qun %1$u per %3$s</b>"
+
+#~ msgid "<b>Removed buddy %u.</b>"
+#~ msgstr "<b>S'ha suprimit l'amic %u.</b>"
+
+#~ msgid "<b>New buddy %u joined.</b>"
+#~ msgstr "<b>El nou amic %u ha entrat.</b>"
+
+#~ msgid "Unknown-%d"
+#~ msgstr "Desconegut-%d"
+
+#~ msgid "Level"
+#~ msgstr "Nivell"
+
+#~ msgid " VIP"
+#~ msgstr " VIP"
+
+#~ msgid " TCP"
+#~ msgstr " TCP"
+
+#~ msgid " FromMobile"
+#~ msgstr " FromMobile"
+
+#~ msgid " BindMobile"
+#~ msgstr " BindMobile"
+
+#~ msgid " Video"
+#~ msgstr " Vídeo"
+
+#~ msgid " Zone"
+#~ msgstr " Zona"
+
+# Nota: només apareix si es defineix DEBUG
+#~ msgid "Flag"
+#~ msgstr "Bandera"
+
+# Nota: només apareix si es defineix DEBUG
+#~ msgid "Ver"
+#~ msgstr "Ver"
+
+#~ msgid "Invalid name"
+#~ msgstr "QQ: El nom d'usuari no és vàlid"
+
+#~ msgid "Select icon..."
+#~ msgstr "Selecciona una icona..."
+
+#~ msgid "<b>Login time</b>: %d-%d-%d, %d:%d:%d<br>\n"
+#~ msgstr "<b>Temps d'entrada</b>: %d-%d-%d, %d:%d:%d<br>\n"
+
+#~ msgid "<b>Total Online Buddies</b>: %d<br>\n"
+#~ msgstr "<b>Amic en línia</b>: %d<br>\n"
+
+#~ msgid "<b>Last Refresh</b>: %d-%d-%d, %d:%d:%d<br>\n"
+#~ msgstr "<b>Actualitzat per darrer cop</b>: %d-%d-%d, %d:%d:%d<br>\n"
+
+#~ msgid "<b>Server</b>: %s<br>\n"
+#~ msgstr "<b>Servidor</b>: %s<br>\n"
+
+#~ msgid "<b>Client Tag</b>: %s<br>\n"
+#~ msgstr "<b>Etiqueta del client</b>: %s<br>\n"
+
+#~ msgid "<b>Connection Mode</b>: %s<br>\n"
+#~ msgstr "<b>Mode de connexió</b>: %s<br>\n"
+
+#~ msgid "<b>My Internet IP</b>: %s:%d<br>\n"
+#~ msgstr "<b>La meva adreça IP</b>: %s:%d<br>\n"
+
+#~ msgid "<b>Sent</b>: %lu<br>\n"
+#~ msgstr "<b>Enviats</b>: %lu<br>\n"
+
+#~ msgid "<b>Resend</b>: %lu<br>\n"
+#~ msgstr "<b>Reenviats</b>: %lu<br>\n"
+
+#~ msgid "<b>Lost</b>: %lu<br>\n"
+#~ msgstr "<b>Perduts</b>: %lu<br>\n"
+
+#~ msgid "<b>Received</b>: %lu<br>\n"
+#~ msgstr "<b>Rebuts</b>: %lu<br>\n"
+
+#~ msgid "<b>Received Duplicate</b>: %lu<br>\n"
+#~ msgstr "<b>Rebuts duplicats</b>: %lu<br>\n"
+
+#~ msgid "<b>Time</b>: %d-%d-%d, %d:%d:%d<br>\n"
+#~ msgstr "<b>Temps</b>: %d-%d-%d, %d:%d:%d<br>\n"
+
+#~ msgid "<b>IP</b>: %s<br>\n"
+#~ msgstr "<b>IP</b>: %s<br>\n"
+
+#~ msgid "Login Information"
+#~ msgstr "Informació de la connexió"
+
+#~ msgid "<p><b>Original Author</b>:<br>\n"
+#~ msgstr "<p><b>Autor original</b>:<br>\n"
+
+#~ msgid "<p><b>Code Contributors</b>:<br>\n"
+#~ msgstr "<p><b>Col·laboradors del codi</b>:<br>\n"
+
+#~ msgid "<p><b>Lovely Patch Writers</b>:<br>\n"
+#~ msgstr "<p><b>Encantadors apedaçadors (de codi)</b>:<br>\n"
+
+#~ msgid "<p><b>Acknowledgement</b>:<br>\n"
+#~ msgstr "<p><b>Reconeixement</b>:<br>\n"
+
+#~ msgid "<p><b>Scrupulous Testers</b>:<br>\n"
+#~ msgstr "<p><b>Comprovadors del codi</b>:<br>\n"
+
+#~ msgid "and more, please let me know... thank you!))"
+#~ msgstr "i més, si us plau feu-m'ho saber... gràcies!!!))"
+
+# FIXME: ush... traducció lliure... 
+#~ msgid "<p><i>And, all the boys in the backroom...</i><br>\n"
+#~ msgstr "<p><i>I tothom que ho ha fet possible...<i><br>\n"
+
+#~ msgid "<i>Feel free to join us!</i> :)"
+#~ msgstr "<i>No dubteu a col·laborar amb nosaltres!</i> :)"
+
+#~ msgid "About OpenQ %s"
+#~ msgstr "Quant a l'OpenQ %s"
+
+#~ msgid "Change Password"
+#~ msgstr "Canvia la contrasenya"
+
+#~ msgid "Account Information"
+#~ msgstr "Informació del compte"
+
+#~ msgid "Update all QQ Quns"
+#~ msgstr "Actualitza tots els Quns QQ"
+
+#~ msgid "About OpenQ"
+#~ msgstr "Quant a l'OpenQ"
+
+#~ msgid "Modify Buddy Memo"
+#~ msgstr "Modifica el memo de l'amic"
+
+#~ msgid "QQ Protocol Plugin"
+#~ msgstr "Connector per al protocol QQ"
+
+#~ msgid "Auto"
+#~ msgstr "Auto"
+
+#~ msgid "Select Server"
+#~ msgstr "Seleccioneu un servidor"
+
+#~ msgid "QQ2008"
+#~ msgstr "QQ2008"
+
+#~ msgid "QQ2007"
+#~ msgstr "QQ2007"
+
+#~ msgid "QQ2005"
+#~ msgstr "QQ2005"
+
+#~ msgid "Connect by TCP"
+#~ msgstr "Connecta amb TCP"
+
+#~ msgid "Show server notice"
+#~ msgstr "Mostra els avisos del servidor"
+
+#~ msgid "Show server news"
+#~ msgstr "Mostra les notícies del servidor"
+
+#~ msgid "Show chat room when msg comes"
+#~ msgstr "Mostra la sala de xat quan hi arribin missatges"
+
+# FIXME: keep alive -> permanència
+#~ msgid "Keep alive interval (seconds)"
+#~ msgstr "Interval de permanència (en segons)"
+
+#~ msgid "Update interval (seconds)"
+#~ msgstr "Interval d'actualització (en segons)"
+
+#~ msgid "Unable to decrypt server reply"
+#~ msgstr "No es pot desxifrar la resposta del servidor"
+
+#~ msgid "Failed requesting token, 0x%02X"
+#~ msgstr "S'ha produït un error en sol·licitar el testimoni, 0x%02X"
+
+#~ msgid "Invalid token len, %d"
+#~ msgstr "La longiud del testimoni no és vàlida, %d"
+
+#~ msgid "Redirect_EX is not currently supported"
+#~ msgstr "Redirect_EX no està implementat"
+
+#~ msgid "Activation required"
+#~ msgstr "Cal activació"
+
+#~ msgid "Unknown reply code when logging in (0x%02X)"
+#~ msgstr "No s'ha reconegut el codi de resposta en entrar (0x%02X)"
+
+# FIXME: captcha
+#~ msgid "Requesting captcha"
+#~ msgstr "S'està sol·licitant un capcha"
+
+#~ msgid "Checking captcha"
+#~ msgstr "S'està comprovant el captcha"
+
+#~ msgid "Failed captcha verification"
+#~ msgstr "Ha fallat la verificació del captcha"
+
+#~ msgid "Captcha Image"
+#~ msgstr "Imatge captcha"
+
+#~ msgid "Enter code"
+#~ msgstr "Introduïu el codi"
+
+#~ msgid "QQ Captcha Verification"
+#~ msgstr "Verificació del captcha QQ"
+
+#~ msgid "Enter the text from the image"
+#~ msgstr "Introduïu el text de la imatge"
+
+#~ msgid "Unknown reply when checking password (0x%02X)"
+#~ msgstr ""
+#~ "No s'ha reconegut el codi de resposta en comprovar la contrasenya (0x%02X)"
+
+#~ msgid ""
+#~ "Unknown reply code when logging in (0x%02X):\n"
+#~ "%s"
+#~ msgstr ""
+#~ "No s'ha reconegut el codi de resposta en entrar (0x%02X):\n"
+#~ "%s"
+
+#~ msgid "Socket error"
+#~ msgstr "Error del sòcol"
+
+#~ msgid "Getting server"
+#~ msgstr "S'està obtenint el servidor"
+
+#~ msgid "Requesting token"
+#~ msgstr "S'està sol·licitant un testimoni"
+
+#~ msgid "Invalid server or port"
+#~ msgstr "El servidor o el port no són vàlids"
+
+#~ msgid "Connecting to server"
+#~ msgstr "S'està connectant al servidor"
+
+#~ msgid "QQ Error"
+#~ msgstr "Error del QQ"
+
+#~ msgid ""
+#~ "Server News:\n"
+#~ "%s\n"
+#~ "%s\n"
+#~ "%s"
+#~ msgstr ""
+#~ "Notícies del servidor:\n"
+#~ "%s\n"
+#~ "%s\n"
+#~ "%s"
+
+#~ msgid "%s:%s"
+#~ msgstr "%s:%s"
+
+#~ msgid "From %s:"
+#~ msgstr "De %s:"
+
+#~ msgid ""
+#~ "Server notice From %s: \n"
+#~ "%s"
+#~ msgstr ""
+#~ "Avís del servidor de %s: \n"
+#~ "%s"
+
+#~ msgid "Unknown SERVER CMD"
+#~ msgstr "Ordre del servidor desconeguda"
+
+#~ msgid ""
+#~ "Error reply of %s(0x%02X)\n"
+#~ "Room %u, reply 0x%02X"
+#~ msgstr ""
+#~ "Resposta d'error de %s(0x%02X)\n"
+#~ "Sala %u, resposta 0x%02X"
+
+#~ msgid "QQ Qun Command"
+#~ msgstr "Ordre QQ Qun"
+
+#~ msgid "Unable to decrypt login reply"
+#~ msgstr "No s'ha pogut desxifrar la resposta d'entrada"
+
+#~ msgid "Unknown LOGIN CMD"
+#~ msgstr "Ordre d'entrada desconeguda"
+
+#~ msgid "Unknown CLIENT CMD"
+#~ msgstr "Ordre de client desconeguda"
+
+#~ msgid "%d has declined the file %s"
+#~ msgstr "%d ha refusat el fitxer %s"
+
+#~ msgid "File Send"
+#~ msgstr "S'ha enviat el fitxer"
+
+#~ msgid "%d cancelled the transfer of %s"
+#~ msgstr "%d ha cancel·lat la transferència de %s"
+
+#~ msgid "Voice and Video Settings"
+#~ msgstr "Configuració de la veu i el vídeo"
+
 #~ msgid "Automatically reject from users not in buddy list"
 #~ msgstr ""
 #~ "Rebutja automàticament dels usuaris que no estiguin a la llista d'amics"
@@ -15720,9 +15809,6 @@
 #~ msgid "How do you feel right now?"
 #~ msgstr "Com us trobeu ara mateix?"
 
-#~ msgid "Change Mood..."
-#~ msgstr "Canvia l'estat d'ànim..."
-
 #~ msgid "Orientation"
 #~ msgstr "Orientació"
 
@@ -15895,9 +15981,6 @@
 #~ msgid "Auto-away"
 #~ msgstr "Auto-absència"
 
-#~ msgid "Change _status to:"
-#~ msgstr "Canvia l'_estat a:"
-
 #~ msgid "Send instant messages over multiple protocols"
 #~ msgstr "Envieu missatges instantanis en múltiples protocols"
 
@@ -16338,9 +16421,6 @@
 #~ msgid "Please provide a shortcut to associate with the smiley."
 #~ msgstr "Especifiqueu una drecera associada a l'emoticona."
 
-#~ msgid "Please select an image for the smiley."
-#~ msgstr "Seleccioneu una imatge per a l'emoticona."
-
 #~ msgid "Activate which ID?"
 #~ msgstr "Quin ID voleu activar?"
 
@@ -16362,9 +16442,6 @@
 #~ msgid "Widget Sizes"
 #~ msgstr "Mides del giny"
 
-#~ msgid "Invite message"
-#~ msgstr "Missatge d'invitació"
-
 #~ msgid ""
 #~ "Please enter the name of the user you wish to invite,\n"
 #~ "along with an optional invite message."
--- a/po/de.po	Fri May 06 08:12:34 2011 +0000
+++ b/po/de.po	Sun May 08 14:06:04 2011 +0000
@@ -11,8 +11,8 @@
 msgstr ""
 "Project-Id-Version: de\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-05-03 22:53+0200\n"
-"PO-Revision-Date: 2011-05-04 21:58+0200\n"
+"POT-Creation-Date: 2011-05-08 00:19+0200\n"
+"PO-Revision-Date: 2011-05-08 00:17+0200\n"
 "Last-Translator: Björn Voigt <bjoern@cs.tu-berlin.de>\n"
 "Language-Team: German <de@li.org>\n"
 "Language: de\n"
@@ -6365,7 +6365,8 @@
 
 #, c-format
 msgid "We found %i contacts that match your search."
-msgstr "Wir fanden %i Kontakt(e), die Ihner Suchanfrage entspricht/entsprechen."
+msgstr ""
+"Wir fanden %i Kontakt(e), die Ihrer Suchanfrage entspricht/entsprechen."
 
 #. we must have lost the connection, so terminate it so that we can reconnect
 msgid "We have lost the connection to MXit. Please reconnect."
@@ -12672,7 +12673,7 @@
 "\n"
 
 msgid "DIR"
-msgstr "VERZ"
+msgstr "DIR"
 
 msgid "use DIR for config files"
 msgstr "DIR als Konfigurationsverzeichnis benutzen"
@@ -12701,13 +12702,12 @@
 "                      Without this only the first account will be enabled)."
 msgstr ""
 "angegebene Konten aktivieren (optionales Argument NAME\n"
-"                      bestimmt Konto(n), die benutzt werden sollen,\n"
-"                      getrennt durch Kommata.\n"
-"                      Ohne diesen Parameter wird nur das erste "
-"Konto                       aktiviert)."
+"                      bestimmt Konto(n), das/die benutzt werden soll(en),\n"
+"                      getrennt durch Kommata. Ohne diesen Parameter wird \n"
+"                      nur das erste Konto aktiviert)."
 
 msgid "X display to use"
-msgstr "das zu benutzenden X-Display"
+msgstr "das zu benutzende X-Display"
 
 msgid "display the current version and exit"
 msgstr "zeigt die aktuelle Version und beendet das Programm"
@@ -14806,7 +14806,7 @@
 msgstr "G_erät"
 
 msgid "DROP"
-msgstr "STUMMGESCHALTET"
+msgstr "Stille, da unterhalb des Schwellwerts"
 
 msgid "Volume:"
 msgstr "Lautstärke:"
--- a/po/fr.po	Fri May 06 08:12:34 2011 +0000
+++ b/po/fr.po	Sun May 08 14:06:04 2011 +0000
@@ -21,8 +21,8 @@
 msgstr ""
 "Project-Id-Version: Pidgin\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-01-30 21:28+0100\n"
-"PO-Revision-Date: 2011-01-30 21:14+0100\n"
+"POT-Creation-Date: 2011-05-06 19:19+0200\n"
+"PO-Revision-Date: 2011-05-06 19:16+0200\n"
 "Last-Translator: Éric Boumaour <zongo_fr@users.sourceforge.net>\n"
 "Language-Team: fr <fr@li.org>\n"
 "MIME-Version: 1.0\n"
@@ -229,6 +229,9 @@
 msgid "Alias (optional)"
 msgstr "Alias (facultatif)`"
 
+msgid "Invite message (optional)"
+msgstr "Message d'invitation (facultatif)"
+
 msgid "Add in group"
 msgstr "Ajouter au groupe"
 
@@ -1952,6 +1955,9 @@
 msgid "Unknown reason"
 msgstr "Raison inconnue"
 
+msgid "Aborting DNS lookup in Tor Proxy mode."
+msgstr "Annulation de la recherche DNS en mode Proxy Tor."
+
 #, c-format
 msgid ""
 "Error reading %s: \n"
@@ -3214,6 +3220,21 @@
 msgid "Change Gadu-Gadu Password"
 msgstr "Changer le le mot de passe Gadu-Gadu"
 
+msgid "Show status to:"
+msgstr "Montrer l'état à :"
+
+msgid "All people"
+msgstr "Tout le monde"
+
+msgid "Only buddies"
+msgstr "Aux contacts"
+
+msgid "Change status broadcasting"
+msgstr "Changer la diffusion de l'état"
+
+msgid "Please, select who can see your status"
+msgstr "Veuillez choisir qui peut voir votre état"
+
 #, c-format
 msgid "Select a chat for buddy: %s"
 msgstr "Choisissez un salon de discussions pour le contact : %s"
@@ -3246,9 +3267,7 @@
 msgstr "UIN"
 
 #. first name
-#. purple_notify_user_info_add_pair( info, _( "Hidden Number" ), profile->hidden ? _( "Yes" ) : _( "No" ) );
 #. optional information
-#. purple_notify_user_info_add_pair( info, _( "Title" ), profile->title );
 msgid "First Name"
 msgstr "Prénom"
 
@@ -3360,6 +3379,19 @@
 msgid "GG server"
 msgstr "Serveur GG"
 
+msgid "Don't use encryption"
+msgstr "Ne pas utiliser de chiffrement"
+
+msgid "Use encryption if available"
+msgstr "Utiliser le chiffrement si disponible"
+
+#. TODO
+msgid "Require encryption"
+msgstr "Nécessite chiffrement"
+
+msgid "Connection security"
+msgstr "Sécurité de la connexion"
+
 #, c-format
 msgid "Unknown command: %s"
 msgstr "Commande inconnue : %s"
@@ -3395,7 +3427,6 @@
 #. * buffer that stores what is "being sent" until the
 #. * PurpleHTTPConnection reports it is fully sent.
 #.
-#. TODO: what to do here - do we really have to disconnect?
 #. TODO: do we really want to disconnect on a failure to write?
 #, c-format
 msgid "Lost connection with server: %s"
@@ -3651,6 +3682,9 @@
 msgid "action &lt;action to perform&gt;:  Perform an action."
 msgstr "action &lt;action à faire&gt; : Réaliser une action."
 
+msgid "authserv: Send a command to authserv"
+msgstr "authserv : Envoyer une commande au service authserv."
+
 msgid ""
 "away [message]:  Set an away message, or use no message to return from being "
 "away."
@@ -4014,7 +4048,6 @@
 msgid "Postal Code"
 msgstr "Code postal"
 
-#. purple_notify_user_info_add_pair( info, _( "Email" ), profile->email );
 msgid "Country"
 msgstr "Pays"
 
@@ -4788,18 +4821,9 @@
 msgid "Domain"
 msgstr "Domaine"
 
-msgid "Require encryption"
-msgstr "Nécessite chiffrement"
-
-msgid "Use encryption if available"
-msgstr "Utiliser le chiffrement si disponible"
-
 msgid "Use old-style SSL"
 msgstr "Utiliser le SSL ancien style"
 
-msgid "Connection security"
-msgstr "Sécurité de la connexion"
-
 msgid "Allow plaintext auth over unencrypted streams"
 msgstr "Autoriser l'authentification en clair pour les flux cryptés"
 
@@ -4911,6 +4935,7 @@
 "Impossible d'envoyer le fichier à %s, cet utilisateur ne supporte pas le "
 "transfert de fichiers"
 
+#. not success
 msgid "File Send Failed"
 msgstr "Échec d'envoi de fichier"
 
@@ -5636,18 +5661,6 @@
 msgid "Unable to Add"
 msgstr "Impossible d'ajouter"
 
-msgid "Authorization Request Message:"
-msgstr "Message pour la demande d'autorisation :"
-
-msgid "Please authorize me!"
-msgstr "Autorise moi, s'il te plaît !"
-
-#. *
-#. * A wrapper for purple_request_action() that uses @c OK and @c Cancel buttons.
-#.
-msgid "_OK"
-msgstr "_OK"
-
 msgid "Error retrieving profile"
 msgstr "Erreur à la récupération du profil."
 
@@ -5859,6 +5872,9 @@
 msgid "Mobile message was not sent because it was too long."
 msgstr "Le message mobile n'a pas été envoyé parce qu'il est trop long."
 
+msgid "Mobile message was not sent because an unknown error occurred."
+msgstr "Le message mobile n'a pas été envoyé à cause d'une erreur inconnue."
+
 #, c-format
 msgid ""
 "The MSN server will shut down for maintenance in %d minute. You will "
@@ -6023,19 +6039,6 @@
 msgid "The username specified is invalid."
 msgstr "Le nom d'utilisateur fourni est non valide."
 
-msgid "The PIN you entered is invalid."
-msgstr "Le code d'accès est non valide."
-
-msgid "The PIN you entered has an invalid length [4-10]."
-msgstr "Le code d'accès n'a pas la bonne longueur [4-10]."
-
-msgid "The PIN is invalid. It should only consist of digits [0-9]."
-msgstr ""
-"Le code d'accès est non valide. Il doit être uniquement composé de chiffres."
-
-msgid "The two PINs you entered do not match."
-msgstr "Les nouveaux codes d'accès diffèrent."
-
 msgid "The Display Name you entered is invalid."
 msgstr "Le nom à afficher saisi est non valide."
 
@@ -6058,35 +6061,66 @@
 "Les informations de votre profil n'ont pu être récupérées. Veuillez "
 "réessayer plus tard."
 
-msgid "Your UID"
-msgstr "Votre UID"
+#. display name
+#. nick name (required)
+msgid "Display Name"
+msgstr "Nom affiché"
+
+#. about me
+msgid "About Me"
+msgstr "À propos de moi"
+
+#. where I live
+msgid "Where I Live"
+msgstr "Où je vis"
+
+#. mobile number
+msgid "Mobile Number"
+msgstr "Téléphone portable"
+
+#. is searchable
+msgid "Can be searched"
+msgstr "Peut être recherché"
+
+#. is suggestable
+msgid "Can be suggested"
+msgstr "Peut être suggéré"
+
+msgid "Update your MXit Profile"
+msgstr "Mettre à jour votre profil MXit"
+
+msgid "The PIN you entered is invalid."
+msgstr "Le code d'accès est non valide."
+
+msgid "The PIN you entered has an invalid length [4-10]."
+msgstr "Le code d'accès n'a pas la bonne longueur [4-10]."
+
+msgid "The PIN is invalid. It should only consist of digits [0-9]."
+msgstr ""
+"Le code d'accès est non valide. Il doit être uniquement composé de chiffres."
+
+msgid "The two PINs you entered do not match."
+msgstr "Les nouveaux codes d'accès diffèrent."
+
+#. show error to user
+msgid "PIN Update Error"
+msgstr "Erreur à la mise à jour du code PIN"
 
 #. pin
 #. pin (required)
 msgid "PIN"
 msgstr "Code"
 
+#. verify pin
 msgid "Verify PIN"
 msgstr "Vérification code"
 
-#. display name
-#. nick name (required)
-msgid "Display Name"
-msgstr "Nom affiché"
-
-#. hidden
-msgid "Hide my number"
-msgstr "Cacher mon numéro"
-
-#. mobile number
-msgid "Mobile Number"
-msgstr "Téléphone portable"
-
-msgid "Update your Profile"
-msgstr "Mettre à jour votre profil"
-
-msgid "Here you can update your MXit profile"
-msgstr "Vous pouvez mettre à jour votre profil MXit ici"
+#. (reference: "libpurple/request.h")
+msgid "Change PIN"
+msgstr "Changer le code PIN"
+
+msgid "Change MXit PIN"
+msgstr "Changer le code PIN MXit"
 
 msgid "View Splash"
 msgstr "Voir la bannière"
@@ -6097,10 +6131,34 @@
 msgid "About"
 msgstr "À propos"
 
+msgid "Search for user"
+msgstr "Rechercher un utilisateur"
+
+msgid "Search for a MXit contact"
+msgstr "Rechercher un contact MXit"
+
+msgid "Type search information"
+msgstr "Saisissez les informations de recherche"
+
+msgid "_Search"
+msgstr "_Recherche"
+
 #. display / change profile
 msgid "Change Profile..."
 msgstr "Changer le profil..."
 
+#. change PIN
+msgid "Change PIN..."
+msgstr "Changer le code PIN..."
+
+#. suggested friends
+msgid "Suggested friends..."
+msgstr "Suggérer des amis..."
+
+#. search for contacts
+msgid "Search for contacts..."
+msgstr "Chercher des contacts..."
+
 #. display splash-screen
 msgid "View Splash..."
 msgstr "Voir la bannière..."
@@ -6131,6 +6189,9 @@
 msgid "Connecting..."
 msgstr "Connexion..."
 
+msgid "The Display Name you entered is too short."
+msgstr "Le nom à afficher saisi est trop court."
+
 msgid "The PIN you entered has an invalid length [7-10]."
 msgstr "Le code d'accès saisi n'a pas la bonne taille [7-10]."
 
@@ -6205,13 +6266,12 @@
 msgid "Retrieving User Information..."
 msgstr "Récupération des informations de l'utilisateur..."
 
-#. you were kicked
+msgid "was kicked"
+msgstr "a été expulsé"
+
 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 :"
 
@@ -6232,9 +6292,19 @@
 msgid "Hidden Number"
 msgstr "Numéro caché"
 
+msgid "No profile available"
+msgstr "Aucun profil disponible"
+
+msgid "This contact does not have a profile."
+msgstr "Ce contact n'a pas de profil."
+
 msgid "Your MXit ID..."
 msgstr "Votre identifiant MXitId..."
 
+#. contact is in Deleted, Rejected or None state
+msgid "Re-Invite"
+msgstr "Ré-inviter"
+
 #. Configuration options
 #. WAP server (reference: "libpurple/accountopt.h")
 msgid "WAP Server"
@@ -6249,6 +6319,30 @@
 msgid "Last Online"
 msgstr "En ligne dernièrement"
 
+msgid "Invite Message"
+msgstr "Message d'invitation"
+
+msgid "No results"
+msgstr "Aucun résultat"
+
+msgid "No contacts found."
+msgstr "Aucun utilisateur trouvé."
+
+#. define columns
+msgid "UserId"
+msgstr "ID d'utilisateur"
+
+msgid "Where I live"
+msgstr "Où je vis"
+
+#, c-format
+msgid "You have %i suggested friends."
+msgstr "Vous avez %i amis suggérés."
+
+#, c-format
+msgid "We found %i contacts that match your search."
+msgstr "%i contacts correspondent à votre recherche."
+
 #. 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 "Connexion perdue avec MXit. Veuillez vous reconnecter."
@@ -6988,6 +7082,12 @@
 msgid "Authorization Denied Message:"
 msgstr "Message de refus d'autorisation :"
 
+#. *
+#. * A wrapper for purple_request_action() that uses @c OK and @c Cancel buttons.
+#.
+msgid "_OK"
+msgstr "_OK"
+
 #, c-format
 msgid "Received unexpected response from %s: %s"
 msgstr "Réception d'une réponse non attendue de %s : %s"
@@ -7346,7 +7446,6 @@
 msgstr "Autorisation reçue."
 
 #. Unregistered username
-#. uid is not exist
 #. the username does not exist
 msgid "Username does not exist"
 msgstr "Cet utilisateur n'existe pas"
@@ -7529,6 +7628,14 @@
 msgid "You have been disconnected from chat room %s."
 msgstr "Vous avez été déconnecté du salon %s"
 
+msgid "The new formatting is invalid."
+msgstr "Le nouvel affichage est non valide"
+
+msgid "Username formatting can change only capitalization and whitespace."
+msgstr ""
+"Le format d'affichage du nom d'utilisateur permet uniquement de changer les "
+"majuscules et les espaces."
+
 msgid "Pop-Up Message"
 msgstr "Message en fenêtre"
 
@@ -7802,14 +7909,6 @@
 msgid "ICQ Privacy Options"
 msgstr "Options de confidentialité ICQ"
 
-msgid "The new formatting is invalid."
-msgstr "Le nouvel affichage est non valide"
-
-msgid "Username formatting can change only capitalization and whitespace."
-msgstr ""
-"Le format d'affichage du nom d'utilisateur permet uniquement de changer les "
-"majuscules et les espaces."
-
 msgid "Change Address To:"
 msgstr "Nouvelle adresse :"
 
@@ -7835,9 +7934,6 @@
 msgid "Type the email address of the buddy you are searching for."
 msgstr "Saisissez l'adresse électronique du contact que vous cherchez"
 
-msgid "_Search"
-msgstr "_Recherche"
-
 msgid "Set User Info (web)..."
 msgstr "Modifier les informations (web)..."
 
@@ -7874,9 +7970,6 @@
 msgid "Search for Buddy by Email Address..."
 msgstr "Chercher un contact par adresse électronique..."
 
-msgid "Don't use encryption"
-msgstr "Ne pas utiliser de chiffrement"
-
 msgid "Use clientLogin"
 msgstr "Utiliser clientLogin"
 
@@ -8151,717 +8244,6 @@
 msgid "These buddies will always see you as offline"
 msgstr "Ces contacts ne vous verront jamais connectés"
 
-msgid "Aquarius"
-msgstr "Verseau"
-
-msgid "Pisces"
-msgstr "Poissons"
-
-msgid "Aries"
-msgstr "Bélier"
-
-msgid "Taurus"
-msgstr "Taureau"
-
-msgid "Gemini"
-msgstr "Gémeaux"
-
-msgid "Cancer"
-msgstr "Cancer"
-
-msgid "Leo"
-msgstr "Lion"
-
-msgid "Virgo"
-msgstr "Vierge"
-
-msgid "Libra"
-msgstr "Balance"
-
-msgid "Scorpio"
-msgstr "Scorpion"
-
-msgid "Sagittarius"
-msgstr "Sagittaire"
-
-msgid "Capricorn"
-msgstr "Capricorne"
-
-msgid "Rat"
-msgstr "Rat"
-
-msgid "Ox"
-msgstr "Bœuf"
-
-msgid "Tiger"
-msgstr "Tigre"
-
-msgid "Rabbit"
-msgstr "Lièvre"
-
-msgid "Dragon"
-msgstr "Dragon"
-
-msgid "Snake"
-msgstr "Serpent"
-
-msgid "Horse"
-msgstr "Cheval"
-
-msgid "Goat"
-msgstr "Chèvre"
-
-msgid "Monkey"
-msgstr "Singe"
-
-msgid "Rooster"
-msgstr "Coq"
-
-msgid "Dog"
-msgstr "Chien"
-
-msgid "Pig"
-msgstr "Cochon"
-
-msgid "Other"
-msgstr "Autre"
-
-msgid "Visible"
-msgstr "Visible"
-
-msgid "Friend Only"
-msgstr "Amis seulement"
-
-msgid "Private"
-msgstr "Privé"
-
-msgid "QQ Number"
-msgstr "Numéro QQ"
-
-msgid "Country/Region"
-msgstr "Pays/région"
-
-msgid "Province/State"
-msgstr "Province/État"
-
-msgid "Zipcode"
-msgstr "Code postal"
-
-msgid "Phone Number"
-msgstr "Téléphone fixe"
-
-msgid "Authorize adding"
-msgstr "Autoriser l'ajout"
-
-msgid "Cellphone Number"
-msgstr "Téléphone portable"
-
-msgid "Personal Introduction"
-msgstr "Informations personnelles"
-
-msgid "City/Area"
-msgstr "Ville/Localité"
-
-msgid "Publish Mobile"
-msgstr "Publier le téléphone portable"
-
-msgid "Publish Contact"
-msgstr "Publier les informations de contact"
-
-msgid "College"
-msgstr "Éducation"
-
-msgid "Horoscope"
-msgstr "Signe du zodiaque"
-
-msgid "Zodiac"
-msgstr "Signe du zodiaque chinois"
-
-msgid "Blood"
-msgstr "Groupe sanguin"
-
-msgid "True"
-msgstr "Vrai"
-
-msgid "False"
-msgstr "Faux"
-
-msgid "Modify Contact"
-msgstr "Modifier les infos de contact"
-
-msgid "Modify Address"
-msgstr "Modifier l'adresse"
-
-msgid "Modify Extended Information"
-msgstr "Modifier mes infos étendues"
-
-msgid "Modify Information"
-msgstr "Modifier mes informations"
-
-msgid "Update"
-msgstr "Mettre à jour"
-
-msgid "Could not change buddy information."
-msgstr "Impossible de changer les informations du contact."
-
-msgid "Note"
-msgstr "Commentaire"
-
-#. callback
-msgid "Buddy Memo"
-msgstr "Mémo du contact"
-
-msgid "Change his/her memo as you like"
-msgstr "Vous pouvez changer son mémo à votre convenance"
-
-msgid "_Modify"
-msgstr "_Modifier"
-
-msgid "Memo Modify"
-msgstr "Changer mémo"
-
-msgid "Server says:"
-msgstr "Message du serveur :"
-
-msgid "Your request was accepted."
-msgstr "Votre requête a été acceptée."
-
-msgid "Your request was rejected."
-msgstr "Votre requête a été rejetée."
-
-#, c-format
-msgid "%u requires verification: %s"
-msgstr "%u demande une vérification : %s"
-
-msgid "Add buddy question"
-msgstr "Ajouter une question pour les nouveaux contacts"
-
-msgid "Enter answer here"
-msgstr "Saisissez la réponse ici"
-
-msgid "Send"
-msgstr "Envoyer"
-
-msgid "Invalid answer."
-msgstr "Réponse non valide."
-
-msgid "Authorization denied message:"
-msgstr "Message de refus d'autorisation :"
-
-msgid "Sorry, you're not my style."
-msgstr "Désolé, tu n'es pas mon genre."
-
-#, c-format
-msgid "%u needs authorization"
-msgstr "%u demande une autorisation"
-
-msgid "Add buddy authorize"
-msgstr "Ajouter une autorisation de contact"
-
-msgid "Enter request here"
-msgstr "Saisissez votre demande"
-
-msgid "Would you be my friend?"
-msgstr "Veux-tu être mon ami ?"
-
-msgid "QQ Buddy"
-msgstr "Contact QQ"
-
-msgid "Add buddy"
-msgstr "Ajouter un contact"
-
-msgid "Invalid QQ Number"
-msgstr "Numéro QQ non valide"
-
-msgid "Failed sending authorize"
-msgstr "Échec à l'envoi de l'autorisation"
-
-#, c-format
-msgid "Failed removing buddy %u"
-msgstr "Échec lors de la suppression du contact %u"
-
-#, c-format
-msgid "Failed removing me from %d's buddy list"
-msgstr "Échec lors de ma suppression de la liste de %d"
-
-msgid "No reason given"
-msgstr "Pas de raison donnée"
-
-#. only need to get value
-#, c-format
-msgid "You have been added by %s"
-msgstr "Vous avez été ajouté par %s."
-
-msgid "Would you like to add him?"
-msgstr "Voulez-vous l'ajouter ?"
-
-#, c-format
-msgid "Rejected by %s"
-msgstr "Refusé par %s"
-
-#, c-format
-msgid "Message: %s"
-msgstr "Message : %s"
-
-msgid "ID: "
-msgstr "ID : "
-
-msgid "Group ID"
-msgstr "ID du groupe"
-
-msgid "QQ Qun"
-msgstr "QQ Qun"
-
-msgid "Please enter Qun number"
-msgstr "Saisissez le numéro Qun"
-
-msgid "You can only search for permanent Qun\n"
-msgstr "Vous ne pouvez chercher que les Qun permanents.\n"
-
-msgid "(Invalid UTF-8 string)"
-msgstr "(Chaine de caractères UTF-8 non valide)"
-
-msgid "Not member"
-msgstr "Non membre"
-
-msgid "Member"
-msgstr "Membre"
-
-msgid "Requesting"
-msgstr "Demande en cours"
-
-msgid "Admin"
-msgstr "Admin"
-
-#. XXX: Should this be "Topic"?
-msgid "Room Title"
-msgstr "Titre du salon"
-
-msgid "Notice"
-msgstr "Envoi d'infos"
-
-msgid "Detail"
-msgstr "Détail"
-
-msgid "Creator"
-msgstr "Créateur"
-
-msgid "About me"
-msgstr "À mon propos"
-
-msgid "Category"
-msgstr "Catégorie"
-
-msgid "The Qun does not allow others to join"
-msgstr "Ce Qun est fermé aux inscriptions"
-
-msgid "Join QQ Qun"
-msgstr "Rejoindre un Qun QQ"
-
-msgid "Input request here"
-msgstr "Saisissez votre demande"
-
-#, c-format
-msgid "Successfully joined Qun %s (%u)"
-msgstr "Entrée réussie dans le Qun %s (%u)"
-
-msgid "Successfully joined Qun"
-msgstr "Entrée réussie dans le Qun"
-
-#, c-format
-msgid "Qun %u denied from joining"
-msgstr "L'entrée dans le Qun %u a été refusée"
-
-msgid "QQ Qun Operation"
-msgstr "Opération QQ Qun"
-
-msgid "Failed:"
-msgstr "Échec :"
-
-msgid "Join Qun, Unknown Reply"
-msgstr "Joindre un Qun, réponse inconnue"
-
-msgid "Quit Qun"
-msgstr "Parir du Qun"
-
-msgid ""
-"Note, if you are the creator, \n"
-"this operation will eventually remove this Qun."
-msgstr ""
-"Note : si vous en êtes le créateur, \n"
-"cette opération peut supprimer ce Qun."
-
-msgid "Sorry, you are not our style"
-msgstr "Désolés, tu n'es pas notre genre."
-
-msgid "Successfully changed Qun members"
-msgstr "Vous avez modifié la liste des membres du Qun."
-
-msgid "Successfully changed Qun information"
-msgstr "Vous avez modifié les informations du Qun."
-
-msgid "You have successfully created a Qun"
-msgstr "Vous avez créé un Qun."
-
-msgid "Would you like to set up detailed information now?"
-msgstr "Voulez-vous modifier les infos détaillées maintenant ?"
-
-msgid "Setup"
-msgstr "Options"
-
-#, c-format
-msgid "%u requested to join Qun %u for %s"
-msgstr "L'utilisateur %u demande à rejoindre le Qun %u pour %s"
-
-#, c-format
-msgid "%u request to join Qun %u"
-msgstr "L'utilisateur %u demande à rejoindre le Qun %u"
-
-#, c-format
-msgid "Failed to join Qun %u, operated by admin %u"
-msgstr "Échec pour rejoindre le Qun %u, administré par %u"
-
-#, c-format
-msgid "<b>Joining Qun %u is approved by admin %u for %s</b>"
-msgstr "<b>L'entrée dans le Qun %u a été approuvée par l'admin %u pour %s</b>"
-
-#, c-format
-msgid "<b>Removed buddy %u.</b>"
-msgstr "<b>Contact supprimé %u.</b>"
-
-#, c-format
-msgid "<b>New buddy %u joined.</b>"
-msgstr "<b>Nouveau contact %u entré.</b>"
-
-#, c-format
-msgid "Unknown-%d"
-msgstr "Inconnu-%d"
-
-msgid "Level"
-msgstr "Niveau"
-
-msgid " VIP"
-msgstr " VIP"
-
-msgid " TCP"
-msgstr " TCP"
-
-msgid " FromMobile"
-msgstr " FromMobile"
-
-msgid " BindMobile"
-msgstr " BindMobile"
-
-msgid " Video"
-msgstr " Vidéo"
-
-msgid " Zone"
-msgstr " Zone"
-
-msgid "Flag"
-msgstr "Drapeau"
-
-msgid "Ver"
-msgstr "Ver"
-
-msgid "Invalid name"
-msgstr "Nom d'utilisateur non valide"
-
-msgid "Select icon..."
-msgstr "Choisir une icône..."
-
-#, c-format
-msgid "<b>Login time</b>: %d-%d-%d, %d:%d:%d<br>\n"
-msgstr "<b>Heure de connexion :</b> %d-%d-%d, %d:%d:%d<br>\n"
-
-#, c-format
-msgid "<b>Total Online Buddies</b>: %d<br>\n"
-msgstr "<b>Contacts connectés :</b> %d<br>\n"
-
-#, c-format
-msgid "<b>Last Refresh</b>: %d-%d-%d, %d:%d:%d<br>\n"
-msgstr "<b>Dernière mise à jour :</b> %d-%d-%d, %d:%d:%d<br>\n"
-
-#, c-format
-msgid "<b>Server</b>: %s<br>\n"
-msgstr "<b>Serveur :</b> %s<br>\n"
-
-#, c-format
-msgid "<b>Client Tag</b>: %s<br>\n"
-msgstr "<b>Étiquette du client :</b> %s<br>\n"
-
-#, c-format
-msgid "<b>Connection Mode</b>: %s<br>\n"
-msgstr "<b>Type de connexion :</b> %s<br>\n"
-
-#, c-format
-msgid "<b>My Internet IP</b>: %s:%d<br>\n"
-msgstr "<b>Adresse internet IP :</b> %s:%d<br>\n"
-
-#, c-format
-msgid "<b>Sent</b>: %lu<br>\n"
-msgstr "<b>Envoyés :</b> %lu<br>\n"
-
-#, c-format
-msgid "<b>Resend</b>: %lu<br>\n"
-msgstr "<b>Ré-envoyés :</b> %lu<br>\n"
-
-#, c-format
-msgid "<b>Lost</b>: %lu<br>\n"
-msgstr "<b>Perdus :</b> %lu<br>\n"
-
-#, c-format
-msgid "<b>Received</b>: %lu<br>\n"
-msgstr "<b>Reçus :</b> %lu<br>\n"
-
-#, c-format
-msgid "<b>Received Duplicate</b>: %lu<br>\n"
-msgstr "<b>Doubles reçus :</b> %lu<br>\n"
-
-#, c-format
-msgid "<b>Time</b>: %d-%d-%d, %d:%d:%d<br>\n"
-msgstr "<b>Heure :</b> %d-%d-%d, %d:%d:%d<br>\n"
-
-#, c-format
-msgid "<b>IP</b>: %s<br>\n"
-msgstr "<b>IP :</b> %s<br>\n"
-
-msgid "Login Information"
-msgstr "Informations de connexion"
-
-msgid "<p><b>Original Author</b>:<br>\n"
-msgstr "<p><b>Auteur original :</b><br>\n"
-
-msgid "<p><b>Code Contributors</b>:<br>\n"
-msgstr "<p><b>Contributeurs au code :</b><br>\n"
-
-msgid "<p><b>Lovely Patch Writers</b>:<br>\n"
-msgstr "<p><b>Charmants contributeurs de patchs :</b><br>\n"
-
-msgid "<p><b>Acknowledgement</b>:<br>\n"
-msgstr "<p><b>Remerciements :</b><br>\n"
-
-msgid "<p><b>Scrupulous Testers</b>:<br>\n"
-msgstr "<p><b>Testeurs scrupuleux :</b><br>\n"
-
-msgid "and more, please let me know... thank you!))"
-msgstr "et d'autres, faites-nous le savoir... merci !"
-
-msgid "<p><i>And, all the boys in the backroom...</i><br>\n"
-msgstr "<p><i>et toutes les personnes dans les coulisses...</i><br>\n"
-
-msgid "<i>Feel free to join us!</i> :)"
-msgstr "<i>N'hésitez pas à nous rejoindre !</i> :)"
-
-#, c-format
-msgid "About OpenQ %s"
-msgstr "À propos de OpenQ %s"
-
-msgid "Change Icon"
-msgstr "Changer l'icône"
-
-msgid "Change Password"
-msgstr "Changer de mot de passe"
-
-msgid "Account Information"
-msgstr "Informations du compte"
-
-msgid "Update all QQ Quns"
-msgstr "Mettre à jour tous les Quns QQ"
-
-msgid "About OpenQ"
-msgstr "À propos de OpenQ"
-
-msgid "Modify Buddy Memo"
-msgstr "Changer le mémo de l'utilisateur"
-
-#. *< type
-#. *< ui_requirement
-#. *< flags
-#. *< dependencies
-#. *< priority
-#. *< id
-#. *< name
-#. *< version
-#. *  summary
-#. *  description
-msgid "QQ Protocol Plugin"
-msgstr "Plugin pour le protocole QQ"
-
-msgid "Auto"
-msgstr "Auto"
-
-msgid "Select Server"
-msgstr "Choisir le serveur"
-
-msgid "QQ2008"
-msgstr "QQ2008"
-
-msgid "QQ2007"
-msgstr "QQ2007"
-
-msgid "QQ2005"
-msgstr "QQ2005"
-
-msgid "Connect by TCP"
-msgstr "Connexion par TCP"
-
-msgid "Show server notice"
-msgstr "Afficher les infos du serveur"
-
-msgid "Show server news"
-msgstr "Afficher les nouveautés du serveur"
-
-msgid "Show chat room when msg comes"
-msgstr "Afficher le salon de discussions quand un message arrive"
-
-msgid "Keep alive interval (seconds)"
-msgstr "Délai de Keep alive (en secondes)"
-
-msgid "Update interval (seconds)"
-msgstr "Délai de mise à jour (en secondes)"
-
-msgid "Unable to decrypt server reply"
-msgstr "Impossible de déchiffrer la réponse du serveur"
-
-#, c-format
-msgid "Failed requesting token, 0x%02X"
-msgstr "Échec lors de la demande du token, 0x%02X"
-
-#, c-format
-msgid "Invalid token len, %d"
-msgstr "Taille de token non valide : %d"
-
-#. extend redirect used in QQ2006
-msgid "Redirect_EX is not currently supported"
-msgstr "Redirect_EX n'est pas supportée pour l'instant"
-
-#. need activation
-#. need activation
-#. need activation
-msgid "Activation required"
-msgstr "Activation nécessaire"
-
-#, c-format
-msgid "Unknown reply code when logging in (0x%02X)"
-msgstr "Réponse inconnue à la connexion (0x%02X)"
-
-msgid "Requesting captcha"
-msgstr "Demande de captcha"
-
-msgid "Checking captcha"
-msgstr "Vérification du code du captcha"
-
-msgid "Failed captcha verification"
-msgstr "Échec à la vérification du captcha"
-
-msgid "Captcha Image"
-msgstr "Image captcha"
-
-msgid "Enter code"
-msgstr "Saisissez le code"
-
-msgid "QQ Captcha Verification"
-msgstr "Vérification du captcha QQ"
-
-msgid "Enter the text from the image"
-msgstr "Saisissez le texte de l'image"
-
-#, c-format
-msgid "Unknown reply when checking password (0x%02X)"
-msgstr "Réponse inconnue à la vérification du mot de passe (0x%02X)"
-
-#, c-format
-msgid ""
-"Unknown reply code when logging in (0x%02X):\n"
-"%s"
-msgstr ""
-"Réponse inconnue à la connexion (0x%02X) :\n"
-"%s"
-
-msgid "Socket error"
-msgstr "Erreur de socket."
-
-msgid "Getting server"
-msgstr "Récupération du serveur"
-
-msgid "Requesting token"
-msgstr "Requête d'un token"
-
-msgid "Unable to resolve hostname"
-msgstr "Impossible de résoudre l'adresse internet."
-
-msgid "Invalid server or port"
-msgstr "Serveur ou port non valide"
-
-msgid "Connecting to server"
-msgstr "Connexion au serveur"
-
-msgid "QQ Error"
-msgstr "Erreur QQ"
-
-#, c-format
-msgid ""
-"Server News:\n"
-"%s\n"
-"%s\n"
-"%s"
-msgstr ""
-"Nouveautés du serveur :\n"
-"%s\n"
-"%s\n"
-"%s"
-
-#, c-format
-msgid "%s:%s"
-msgstr "%s : %s"
-
-#, c-format
-msgid "From %s:"
-msgstr "De %s :"
-
-#, c-format
-msgid ""
-"Server notice From %s: \n"
-"%s"
-msgstr ""
-"Info du serveur de %s : \n"
-"%s"
-
-msgid "Unknown SERVER CMD"
-msgstr "Commande SERVER inconnue"
-
-#, c-format
-msgid ""
-"Error reply of %s(0x%02X)\n"
-"Room %u, reply 0x%02X"
-msgstr ""
-"Erreur à la réponse %s(0x%02X)\n"
-"Salon %u, réponse 0x%02X"
-
-msgid "QQ Qun Command"
-msgstr "Commande Qun QQ"
-
-msgid "Unable to decrypt login reply"
-msgstr "Impossible de déchiffrer la réponse de connexion"
-
-msgid "Unknown LOGIN CMD"
-msgstr "Commande LOGIN inconnue"
-
-msgid "Unknown CLIENT CMD"
-msgstr "Commande CLIENT inconnue"
-
-#, c-format
-msgid "%d has declined the file %s"
-msgstr "%d a refusé le fichier %s"
-
-msgid "File Send"
-msgstr "Envoi de fichier"
-
-#, c-format
-msgid "%d cancelled the transfer of %s"
-msgstr "%d a annulé le transfert de %s"
-
 #, c-format
 msgid "<b>Group Title:</b> %s<br>"
 msgstr "<b>Titre du groupe :</b> %s<br>"
@@ -9629,6 +9011,9 @@
 msgid "Unit"
 msgstr "Groupe"
 
+msgid "Note"
+msgstr "Commentaire"
+
 msgid "Join Chat"
 msgstr "Rejoindre une discussion"
 
@@ -10278,6 +9663,9 @@
 msgid "Unable to create listen socket"
 msgstr "Impossible de se mettre en écoute sur la connexion"
 
+msgid "Unable to resolve hostname"
+msgstr "Impossible de résoudre l'adresse internet."
+
 msgid "SIP usernames may not contain whitespaces or @ symbols"
 msgstr ""
 "Les noms d'utilisateur SIP ne peuvent pas avoir d'espace ou de symbole @."
@@ -10395,6 +9783,9 @@
 msgid "Yahoo! system message for %s:"
 msgstr "Message système Yahoo! pour %s :"
 
+msgid "Authorization denied message:"
+msgstr "Message de refus d'autorisation :"
+
 #, c-format
 msgid ""
 "%s has (retroactively) denied your request to add them to your list for the "
@@ -11189,15 +10580,18 @@
 msgid "No Proxy"
 msgstr "Pas de proxy"
 
-msgid "HTTP"
-msgstr "HTTP"
-
 msgid "SOCKS 4"
 msgstr "SOCKS 4"
 
 msgid "SOCKS 5"
 msgstr "SOCKS 5"
 
+msgid "Tor/Privacy (SOCKS5)"
+msgstr "Tor/Privacy (SOCKS5)"
+
+msgid "HTTP"
+msgstr "HTTP"
+
 msgid "Use Environmental Settings"
 msgstr "Utiliser les paramètres d'environnement"
 
@@ -11225,6 +10619,12 @@
 msgid "Pa_ssword:"
 msgstr "_Mot de passe :"
 
+msgid "Use _silence suppression"
+msgstr "Utiliser la suppression de_ silences"
+
+msgid "_Voice and Video"
+msgstr "_Voix et vidéo"
+
 msgid "Unable to save new account"
 msgstr "Impossible d'enregistrer le nouveau compte."
 
@@ -11273,9 +10673,20 @@
 "liste de contacts."
 
 #, c-format
+msgid ""
+"<a href=\"viewinfo\">%s</a>%s%s%s wants to add you (%s) to his or her buddy "
+"list%s%s"
+msgstr ""
+"<a href=\"viewinfo\">%s</a>%s%s%s veut vous (%s) ajouter à sa liste de "
+"contacts%s%s"
+
+#, c-format
 msgid "%s%s%s%s wants to add you (%s) to his or her buddy list%s%s"
 msgstr "%s%s%s%s veut vous (%s) ajouter à sa liste de contacts%s%s"
 
+msgid "Send Instant Message"
+msgstr "Envoyer un message"
+
 #. Buddy List
 msgid "Background Color"
 msgstr "Couleur de fond"
@@ -11829,6 +11240,9 @@
 msgid "(Optional) A_lias:"
 msgstr "A_lias (facultatif) :"
 
+msgid "(Optional) _Invite message:"
+msgstr "Message d'_invitation (facultatif) :"
+
 msgid "Add buddy to _group:"
 msgstr "Ajouter ce contact au _groupe :"
 
@@ -13299,8 +12713,15 @@
 msgid "New Pounces"
 msgstr "Nouvelles alertes"
 
+#. Translators: Make sure you translate "Dismiss" differently than
+#. "close"!  This string is used in the "You have pounced" dialog
+#. that appears when one of your Buddy Pounces is triggered.  In
+#. this context "Dismiss" means "I acknowledge that I've seen that
+#. this pounce was triggered--remove it from this list."  Translating
+#. it as "Remove" is acceptable if you can't think of a more precise
+#. word.
 msgid "Dismiss"
-msgstr "Fermer"
+msgstr "Disposer"
 
 msgid "<span weight=\"bold\" size=\"larger\">You have pounced!</span>"
 msgstr "<span weight=\"bold\" size=\"larger\">Vous avez des alertes !</span>"
@@ -14419,6 +13840,9 @@
 msgid "PubSub Leaf"
 msgstr "Feuillet PubSub"
 
+msgid "Other"
+msgstr "Autre"
+
 msgid ""
 "\n"
 "<b>Description:</b> "
@@ -15286,6 +14710,21 @@
 msgid "D_evice"
 msgstr "Appa_reil"
 
+msgid "DROP"
+msgstr "Couper"
+
+msgid "Volume:"
+msgstr "Volume :"
+
+msgid "Silence threshold:"
+msgstr "Seuil du silence :"
+
+msgid "Input and Output Settings"
+msgstr "Configuration d'entrée/sortie"
+
+msgid "Microphone Test"
+msgstr "Test du microphone"
+
 #. *< magic
 #. *< major version
 #. *< minor version
@@ -15298,9 +14737,6 @@
 msgid "Voice/Video Settings"
 msgstr "Paramètres voix et vidéo"
 
-msgid "Voice and Video Settings"
-msgstr "Paramètres voix et vidéo"
-
 #. *< name
 #. *< version
 msgid "Configure your microphone and webcam."
@@ -15578,16 +15014,197 @@
 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"
+#~ msgid "Authorization Request Message:"
+#~ msgstr "Message pour la demande d'autorisation :"
+
+#~ msgid "Please authorize me!"
+#~ msgstr "Autorise moi, s'il te plaît !"
+
+#~ msgid "Your UID"
+#~ msgstr "Votre UID"
+
+#~ msgid "Hide my number"
+#~ msgstr "Cacher mon numéro"
+
+#~ msgid "Aquarius"
+#~ msgstr "Verseau"
+
+#~ msgid "Pisces"
+#~ msgstr "Poissons"
+
+#~ msgid "Aries"
+#~ msgstr "Bélier"
+
+#~ msgid "Taurus"
+#~ msgstr "Taureau"
+
+#~ msgid "Gemini"
+#~ msgstr "Gémeaux"
+
+#~ msgid "Cancer"
+#~ msgstr "Cancer"
+
+#~ msgid "Leo"
+#~ msgstr "Lion"
+
+#~ msgid "Virgo"
+#~ msgstr "Vierge"
+
+#~ msgid "Libra"
+#~ msgstr "Balance"
+
+#~ msgid "Scorpio"
+#~ msgstr "Scorpion"
+
+#~ msgid "Sagittarius"
+#~ msgstr "Sagittaire"
+
+#~ msgid "Capricorn"
+#~ msgstr "Capricorne"
+
+#~ msgid "Rat"
+#~ msgstr "Rat"
+
+#~ msgid "Ox"
+#~ msgstr "Bœuf"
+
+#~ msgid "Tiger"
+#~ msgstr "Tigre"
+
+#~ msgid "Rabbit"
+#~ msgstr "Lièvre"
+
+#~ msgid "Dragon"
+#~ msgstr "Dragon"
+
+#~ msgid "Snake"
+#~ msgstr "Serpent"
+
+#~ msgid "Horse"
+#~ msgstr "Cheval"
+
+#~ msgid "Goat"
+#~ msgstr "Chèvre"
+
+#~ msgid "Monkey"
+#~ msgstr "Singe"
+
+#~ msgid "Rooster"
+#~ msgstr "Coq"
+
+#~ msgid "Dog"
+#~ msgstr "Chien"
+
+#~ msgid "Pig"
+#~ msgstr "Cochon"
+
+#~ msgid "Visible"
+#~ msgstr "Visible"
+
+#~ msgid "Friend Only"
+#~ msgstr "Amis seulement"
+
+#~ msgid "Private"
+#~ msgstr "Privé"
+
+#~ msgid "Country/Region"
+#~ msgstr "Pays/région"
+
+#~ msgid "Province/State"
+#~ msgstr "Province/État"
+
+#~ msgid "Zipcode"
+#~ msgstr "Code postal"
+
+#~ msgid "Phone Number"
+#~ msgstr "Téléphone fixe"
+
+#~ msgid "Authorize adding"
+#~ msgstr "Autoriser l'ajout"
+
+#~ msgid "Cellphone Number"
+#~ msgstr "Téléphone portable"
+
+#~ msgid "Personal Introduction"
+#~ msgstr "Informations personnelles"
+
+#~ msgid "City/Area"
+#~ msgstr "Ville/Localité"
+
+#~ msgid "Publish Mobile"
+#~ msgstr "Publier le téléphone portable"
+
+#~ msgid "Publish Contact"
+#~ msgstr "Publier les informations de contact"
+
+#~ msgid "College"
+#~ msgstr "Éducation"
+
+#~ msgid "Horoscope"
+#~ msgstr "Signe du zodiaque"
+
+#~ msgid "Zodiac"
+#~ msgstr "Signe du zodiaque chinois"
+
+#~ msgid "Blood"
+#~ msgstr "Groupe sanguin"
+
+#~ msgid "True"
+#~ msgstr "Vrai"
+
+#~ msgid "False"
+#~ msgstr "Faux"
+
+#~ msgid "Modify Contact"
+#~ msgstr "Modifier les infos de contact"
+
+#~ msgid "Modify Address"
+#~ msgstr "Modifier l'adresse"
+
+#~ msgid "Modify Extended Information"
+#~ msgstr "Modifier mes infos étendues"
+
+#~ msgid "Modify Information"
+#~ msgstr "Modifier mes informations"
+
+#~ msgid "Update"
+#~ msgstr "Mettre à jour"
+
+#~ msgid "Could not change buddy information."
+#~ msgstr "Impossible de changer les informations du contact."
+
+#~ msgid "Buddy Memo"
+#~ msgstr "Mémo du contact"
+
+#~ msgid "Change his/her memo as you like"
+#~ msgstr "Vous pouvez changer son mémo à votre convenance"
+
+#~ msgid "_Modify"
+#~ msgstr "_Modifier"
+
+#~ msgid "Memo Modify"
+#~ msgstr "Changer mémo"
+
+#~ msgid "Server says:"
+#~ msgstr "Message du serveur :"
+
+#~ msgid "Your request was accepted."
+#~ msgstr "Votre requête a été acceptée."
+
+#~ msgid "Your request was rejected."
+#~ msgstr "Votre requête a été rejetée."
+
+#~ msgid "%u requires verification: %s"
+#~ msgstr "%u demande une vérification : %s"
+
+#~ msgid "Add buddy question"
+#~ msgstr "Ajouter une question pour les nouveaux contacts"
+
+#~ msgid "Enter answer here"
+#~ msgstr "Saisissez la réponse ici"
+
+#~ msgid "Send"
+#~ msgstr "Envoyer"
 
 #~ msgid "Transfer was closed."
 #~ msgstr "Le transfert a été interrompu."
@@ -15747,9 +15364,6 @@
 #~ msgid "Auto-away"
 #~ msgstr "Absence automatique"
 
-#~ msgid "Change _status to:"
-#~ msgstr "_Changer l'état en :"
-
 #~ msgid "Send instant messages over multiple protocols"
 #~ msgstr "Envoie des messages instantanés en utilisant divers protocoles"
 
@@ -15963,9 +15577,6 @@
 #~ msgid "Please provide a shortcut to associate with the smiley."
 #~ msgstr "Veuillez fournir un raccourci correspondant à cette frimousse."
 
-#~ msgid "Please select an image for the smiley."
-#~ msgstr "Veuillez choisir une image pour cette frimousse."
-
 #~ msgid "Cursor Color"
 #~ msgstr "Couleur du curseur"
 
@@ -15978,9 +15589,6 @@
 #~ msgid "Widget Sizes"
 #~ msgstr "Tailles des éléments"
 
-#~ msgid "Invite message"
-#~ msgstr "Message d'invitation"
-
 #~ msgid ""
 #~ "Please enter the name of the user you wish to invite,\n"
 #~ "along with an optional invite message."