changeset 25381:43b721aa4b76

explicit merge of '32d4ce0b6cfc9ccb9a6e7ed661423b9260a0bead' and '0bcc8cd8e68241cf9c13be5b28ced3a4a5d4e488'
author Richard Laager <rlaager@wiktel.com>
date Fri, 02 Jan 2009 22:28:34 +0000
parents e2b193decaa5 (current diff) 1fdec6aa8578 (diff)
children c0b42d6c2785
files ChangeLog.API configure.ac libpurple/blist.c libpurple/protocols/gg/buddylist.c libpurple/protocols/jabber/jabber.c libpurple/protocols/myspace/user.c libpurple/protocols/qq/buddy_info.c libpurple/protocols/qq/group_internal.c libpurple/protocols/qq/qq.c libpurple/protocols/sametime/sametime.c libpurple/server.c libpurple/util.c libpurple/xmlnode.c pidgin/gtkblist.c pidgin/gtkimhtml.c
diffstat 33 files changed, 552 insertions(+), 410 deletions(-) [+]
line wrap: on
line diff
--- a/COPYRIGHT	Fri Jan 02 22:23:58 2009 +0000
+++ b/COPYRIGHT	Fri Jan 02 22:28:34 2009 +0000
@@ -345,6 +345,7 @@
 Luciano Miguel Ferreira Rocha
 Andrew Rodland
 Miguel Rodríguez (migrax)
+Martin Rosinski
 Bob Rossi
 Jason Roth
 Jean-Francois Roy
@@ -473,6 +474,7 @@
 Alex Willmer
 Matt Wilson
 Dan Winship
+Michal Witkowski
 Scott Wolchok
 The Written Word, Inc.
 Kevin Wu Won
--- a/ChangeLog	Fri Jan 02 22:23:58 2009 +0000
+++ b/ChangeLog	Fri Jan 02 22:28:34 2009 +0000
@@ -1,6 +1,16 @@
 Pidgin and Finch: The Pimpin' Penguin IM Clients That're Good for the Soul
 
-version 2.5.3 (12/18/2008):
+version 2.5.4 (??/??/????):
+	libpurple:
+	* Fix a connection timeout with empty Gadu-Gady buddy lists. (Martin
+	  Rosinski)
+	* Don't ignore namespace information when parsing XMPP data. (Michal
+	  Witkowski)
+
+	XMPP:
+	* Support for XEP-0191 blocking.  (Vijay Raghunathan)
+
+version 2.5.3 (12/20/2008):
 	libpurple:
 	* The Buddy State Notification plugin no longer prints duplicate
 	  notifications when the same buddy is in multiple groups. (Florian
@@ -27,7 +37,7 @@
 	* Fix a crash caused by authorization requests. (Florian Quèze)
 
 	Gadu-Gadu:
-	* Add support for IM images. (Adam Strzelecki)
+	* Add support for IM images. (Tomasz Sałaciński, Adam Strzelecki)
 	* Gadu-Gadu now checks that UID's are valid. (Adam Strzelecki)
 	* Gadu-Gadu now does proper charset translations where needed. (Adam
 	  Strzelecki)
@@ -120,7 +130,7 @@
 	  if no custom smilies have previously been added using the smiley
 	  manager.
 	* Improved support for some message formatting in conversations.
-	* Allow focusing the coversation history or userlist with F6.
+	* Allow focusing the conversation history or userlist with F6.
 	* Fixed the Send Button plugin to avoid duplicate buttons in a single
 	  conversation.
 	* Double-clicking a saved status will now activate it and close the
--- a/ChangeLog.API	Fri Jan 02 22:23:58 2009 +0000
+++ b/ChangeLog.API	Fri Jan 02 22:28:34 2009 +0000
@@ -34,7 +34,7 @@
 		  objects from GtkIMHtml protocol callbacks.
 		* pidgin_utils_init, pidgin_utils_uninit
 
-version 2.5.3 (12/18/2008):
+version 2.5.3 (12/20/2008):
 	libpurple
 		Changed:
 		* purple_util_fetch_url and purple_util_fetch_url_request can
--- a/ChangeLog.win32	Fri Jan 02 22:23:58 2009 +0000
+++ b/ChangeLog.win32	Fri Jan 02 22:28:34 2009 +0000
@@ -1,4 +1,6 @@
-version 2.5.3 (12/18/2008):
+version 2.5.4 (??/??/????):
+
+version 2.5.3 (12/20/2008):
 	* Upgrade SILC to use the 1.1.8 toolkit
 	* Updated included Meanwhile library to include patch referenced in #7563
 
--- a/configure.ac	Fri Jan 02 22:23:58 2009 +0000
+++ b/configure.ac	Fri Jan 02 22:28:34 2009 +0000
@@ -46,7 +46,7 @@
 m4_define([purple_lt_current], [5])
 m4_define([purple_major_version], [2])
 m4_define([purple_minor_version], [5])
-m4_define([purple_micro_version], [3])
+m4_define([purple_micro_version], [4])
 m4_define([purple_version_suffix], [devel])
 m4_define([purple_version],
           [purple_major_version.purple_minor_version.purple_micro_version])
@@ -55,7 +55,7 @@
 m4_define([gnt_lt_current], [5])
 m4_define([gnt_major_version], [2])
 m4_define([gnt_minor_version], [5])
-m4_define([gnt_micro_version], [3])
+m4_define([gnt_micro_version], [4])
 m4_define([gnt_version_suffix], [devel])
 m4_define([gnt_version],
           [gnt_major_version.gnt_minor_version.gnt_micro_version])
--- a/libpurple/blist.c	Fri Jan 02 22:23:58 2009 +0000
+++ b/libpurple/blist.c	Fri Jan 02 22:28:34 2009 +0000
@@ -1065,7 +1065,7 @@
 		return;
 
 	dest = purple_find_group(new_name);
-	if (dest != NULL) {
+	if (dest != NULL && purple_utf8_strcasecmp(source->name, dest->name) != 0) {
 		/* We're merging two groups */
 		PurpleBlistNode *prev, *child, *next;
 
--- a/libpurple/protocols/gg/buddylist.c	Fri Jan 02 22:23:58 2009 +0000
+++ b/libpurple/protocols/gg/buddylist.c	Fri Jan 02 22:28:34 2009 +0000
@@ -45,7 +45,7 @@
 	PurpleBuddy *buddy;
 	uin_t *userlist = NULL;
 	gchar *types = NULL;
-	int size = 0;
+	int size = 0, ret = 0;
 
 	for (gnode = purple_blist_get_root();
 	     gnode != NULL;
@@ -88,12 +88,12 @@
 		}
 	}
 
+	ret = gg_notify_ex(info->session, userlist, types, size);
+	purple_debug_info("gg", "send: ret=%d; size=%d\n", ret, size);
+	
 	if (userlist) {
-		int ret = gg_notify_ex(info->session, userlist, types, size);
 		g_free(userlist);
 		g_free(types);
-
-		purple_debug_info("gg", "send: ret=%d; size=%d\n", ret, size);
 	}
 }
 /* }}} */
@@ -233,8 +233,7 @@
 	PurpleBlistNode *gnode, *cnode, *bnode;
 	PurpleGroup *group;
 	PurpleBuddy *buddy;
-
-	char *buddylist = g_strdup("");
+	GString *buddylist = g_string_sized_new(1024);
 	char *ptr;
 
 	for (gnode = purple_blist_get_root();
@@ -272,19 +271,16 @@
 					alias = name;
 				gname = purple_group_get_name(group);
 
-				ptr = buddylist;
-				buddylist = g_strdup_printf(
-						"%s%s;%s;%s;%s;%s;%s;%s;%s%s\r\n",
-						ptr, alias, alias, alias, alias,
+				g_string_append_printf(buddylist,
+						"%s;%s;%s;%s;%s;%s;%s;%s%s\r\n",
+						alias, alias, alias, alias,
 						"", gname, name, "", "");
-
-				g_free(ptr);
 			}
 		}
 	}
 
-	ptr = charset_convert(buddylist, "UTF-8", "CP1250");
-	g_free(buddylist);
+	ptr = charset_convert(buddylist->str, "UTF-8", "CP1250");
+	g_string_free(buddylist, TRUE);
 	return ptr;
 }
 /* }}} */
--- a/libpurple/protocols/jabber/disco.c	Fri Jan 02 22:23:58 2009 +0000
+++ b/libpurple/protocols/jabber/disco.c	Fri Jan 02 22:28:34 2009 +0000
@@ -355,6 +355,11 @@
 		jabber_adhoc_server_get_list(js);
 	}
 
+	/* If the server supports blocking, request the block list */
+	if (js->server_caps & JABBER_CAP_BLOCKING) {
+		jabber_request_block_list(js);
+	}
+
 	/* If there are manually specified bytestream proxies, query them */
 	ft_proxies = purple_account_get_string(js->gc->account, "ft_proxies", NULL);
 	if (ft_proxies) {
@@ -454,6 +459,8 @@
 			jabber_google_roster_init(js);
 		} else if (!strcmp("http://jabber.org/protocol/commands", var)) {
 			js->server_caps |= JABBER_CAP_ADHOC;
+		} else if (!strcmp("urn:xmpp:blocking", var)) {
+			js->server_caps |= JABBER_CAP_BLOCKING;
 		}
 	}
 
--- a/libpurple/protocols/jabber/jabber.c	Fri Jan 02 22:23:58 2009 +0000
+++ b/libpurple/protocols/jabber/jabber.c	Fri Jan 02 22:28:34 2009 +0000
@@ -31,6 +31,7 @@
 #include "message.h"
 #include "notify.h"
 #include "pluginpref.h"
+#include "privacy.h"
 #include "proxy.h"
 #include "prpl.h"
 #include "request.h"
@@ -150,7 +151,7 @@
 	char hostname[256]; /* current hostname */
 
 	/* Empty resource == don't send any */
-	if (*input == '\0')
+	if (input == NULL || *input == '\0')
 		return NULL;
 
 	if (strstr(input, "__HOSTNAME__") == NULL)
@@ -1454,6 +1455,106 @@
 	js->idle = idle ? time(NULL) - idle : idle;
 }
 
+static void jabber_blocklist_parse(JabberStream *js, xmlnode *packet, gpointer data)
+{
+	xmlnode *blocklist, *item;
+	PurpleAccount *account;
+
+	blocklist = xmlnode_get_child_with_namespace(packet,
+			"blocklist", "urn:xmpp:blocking");
+	account = purple_connection_get_account(js->gc);
+
+	if (blocklist == NULL)
+		return;
+
+	item = xmlnode_get_child(blocklist, "item");
+	while (item != NULL) {
+		const char *jid = xmlnode_get_attrib(item, "jid");
+
+		purple_privacy_deny_add(account, jid, TRUE);
+		item = xmlnode_get_next_twin(item);
+	}
+}
+
+void jabber_request_block_list(JabberStream *js)
+{
+	JabberIq *iq;
+	xmlnode *blocklist;
+
+	iq = jabber_iq_new(js, JABBER_IQ_GET);
+
+	blocklist = xmlnode_new_child(iq->node, "blocklist");
+	xmlnode_set_namespace(blocklist, "urn:xmpp:blocking");
+
+	jabber_iq_set_callback(iq, jabber_blocklist_parse, NULL);
+
+	jabber_iq_send(iq);
+}
+
+void jabber_add_deny(PurpleConnection *gc, const char *who)
+{
+	JabberStream *js;
+	JabberIq *iq;
+	xmlnode *block, *item;
+
+	js = gc->proto_data;
+	if (js == NULL)
+		return;
+
+	if (js->server_caps & JABBER_CAP_GOOGLE_ROSTER)
+	{
+		jabber_google_roster_add_deny(gc, who);
+		return;
+	}
+
+	if (!(js->server_caps & JABBER_CAP_BLOCKING))
+	{
+		purple_notify_error(NULL, _("Server doesn't support blocking"),
+							_("Server doesn't support blocking"), NULL);
+		return;
+	}
+
+	iq = jabber_iq_new(js, JABBER_IQ_SET);
+
+	block = xmlnode_new_child(iq->node, "block");
+	xmlnode_set_namespace(block, "urn:xmpp:blocking");
+
+	item = xmlnode_new_child(block, "item");
+	xmlnode_set_attrib(item, "jid", who);
+
+	jabber_iq_send(iq);
+}
+
+void jabber_rem_deny(PurpleConnection *gc, const char *who)
+{
+	JabberStream *js;
+	JabberIq *iq;
+	xmlnode *unblock, *item;
+
+	js = gc->proto_data;
+	if (js == NULL)
+		return;
+
+	if (js->server_caps & JABBER_CAP_GOOGLE_ROSTER)
+	{
+		jabber_google_roster_rem_deny(gc, who);
+		return;
+	}
+
+	if (!(js->server_caps & JABBER_CAP_BLOCKING))
+		return;
+
+	iq = jabber_iq_new(js, JABBER_IQ_SET);
+
+	unblock = xmlnode_new_child(iq->node, "unblock");
+	xmlnode_set_namespace(unblock, "urn:xmpp:blocking");
+
+	item = xmlnode_new_child(unblock, "item");
+	xmlnode_set_attrib(item, "jid", who);
+
+	jabber_iq_send(iq);
+}
+
 void jabber_add_feature(const char *shortname, const char *namespace, JabberFeatureEnabled cb) {
 	JabberFeature *feat;
 
--- a/libpurple/protocols/jabber/jabber.h	Fri Jan 02 22:23:58 2009 +0000
+++ b/libpurple/protocols/jabber/jabber.h	Fri Jan 02 22:28:34 2009 +0000
@@ -42,7 +42,8 @@
 
 	JABBER_CAP_PING			  = 1 << 11,
 	JABBER_CAP_ADHOC		  = 1 << 12,
-	
+	JABBER_CAP_BLOCKING       = 1 << 13,
+
 	JABBER_CAP_RETRIEVED      = 1 << 31
 } JabberCapabilities;
 
@@ -294,6 +295,9 @@
 void jabber_login(PurpleAccount *account);
 void jabber_close(PurpleConnection *gc);
 void jabber_idle_set(PurpleConnection *gc, int idle);
+void jabber_request_block_list(JabberStream *js);
+void jabber_add_deny(PurpleConnection *gc, const char *who);
+void jabber_rem_deny(PurpleConnection *gc, const char *who);
 void jabber_keepalive(PurpleConnection *gc);
 void jabber_register_gateway(JabberStream *js, const char *gateway);
 void jabber_register_account(PurpleAccount *account);
--- a/libpurple/protocols/jabber/libxmpp.c	Fri Jan 02 22:23:58 2009 +0000
+++ b/libpurple/protocols/jabber/libxmpp.c	Fri Jan 02 22:28:34 2009 +0000
@@ -77,9 +77,9 @@
 	jabber_roster_remove_buddy,		/* remove_buddy */
 	NULL,							/* remove_buddies */
 	NULL,							/* add_permit */
-	jabber_google_roster_add_deny,				/* add_deny */
+	jabber_add_deny,				/* add_deny */
 	NULL,							/* rem_permit */
-	jabber_google_roster_rem_deny,				/* rem_deny */
+	jabber_rem_deny,				/* rem_deny */
 	NULL,							/* set_permit_deny */
 	jabber_chat_join,				/* join_chat */
 	NULL,							/* reject_chat */
--- a/libpurple/protocols/jabber/parser.c	Fri Jan 02 22:23:58 2009 +0000
+++ b/libpurple/protocols/jabber/parser.c	Fri Jan 02 22:28:34 2009 +0000
@@ -37,7 +37,7 @@
 {
 	JabberStream *js = user_data;
 	xmlnode *node;
-	int i;
+	int i, j;
 
 	if(!element_name) {
 		return;
@@ -57,7 +57,7 @@
 				g_free(js->stream_id);
 				js->stream_id = attrib;
 			} else {
-				g_free(attrib);	
+				g_free(attrib);
 			}
 		}
 		if(js->protocol_version == JABBER_PROTO_0_9)
@@ -72,8 +72,21 @@
 		else
 			node = xmlnode_new((const char*) element_name);
 		xmlnode_set_namespace(node, (const char*) namespace);
+		xmlnode_set_prefix(node, (const char *)prefix);
 
+		if (nb_namespaces != 0) {
+			node->namespace_map = g_hash_table_new_full(
+				g_str_hash, g_str_equal, g_free, g_free);
+
+			for (i = 0, j = 0; i < nb_namespaces; i++, j += 2) {
+				const char *key = (const char *)namespaces[j];
+				const char *val = (const char *)namespaces[j + 1];
+				g_hash_table_insert(node->namespace_map,
+					g_strdup(key ? key : ""), g_strdup(val ? val : ""));
+			}
+		}
 		for(i=0; i < nb_attributes * 5; i+=5) {
+			const char *prefix = (const char *)attributes[i + 1];
 			char *txt;
 			int attrib_len = attributes[i+4] - attributes[i+3];
 			char *attrib = g_malloc(attrib_len + 1);
@@ -90,6 +103,9 @@
 			attrib = purple_unescape_html(txt);
 			g_free(txt);
 			xmlnode_set_attrib_with_namespace(node, (const char*) attributes[i], attrib_ns, attrib);
+			if (prefix && *prefix) {
+				node->prefix = g_strdup(prefix);
+			}
 			g_free(attrib);
 			g_free(attrib_ns);
 		}
--- a/libpurple/protocols/msn/error.c	Fri Jan 02 22:23:58 2009 +0000
+++ b/libpurple/protocols/msn/error.c	Fri Jan 02 22:28:34 2009 +0000
@@ -27,191 +27,178 @@
 const char *
 msn_error_get_text(unsigned int type, gboolean *debug)
 {
-	static char msg[MSN_BUF_LEN];
+	static char msg[256];
+	const char *result;
 	*debug = FALSE;
 
 	switch (type) {
 		case 0:
-			g_snprintf(msg, sizeof(msg),
-			           _("Unable to parse message"));
+			result = _("Unable to parse message");
 			*debug = TRUE;
 			break;
 		case 200:
-			g_snprintf(msg, sizeof(msg),
-			           _("Syntax Error (probably a client bug)"));
+			result = _("Syntax Error (probably a client bug)");
 			*debug = TRUE;
 			break;
 		case 201:
-			g_snprintf(msg, sizeof(msg),
-			           _("Invalid email address"));
+			result = _("Invalid email address");
 			break;
 		case 205:
-			g_snprintf(msg, sizeof(msg), _("User does not exist"));
+			result = _("User does not exist");
 			break;
 		case 206:
-			g_snprintf(msg, sizeof(msg),
-			           _("Fully qualified domain name missing"));
+			result = _("Fully qualified domain name missing");
 			break;
 		case 207:
-			g_snprintf(msg, sizeof(msg), _("Already logged in"));
+			result = _("Already logged in");
 			break;
 		case 208:
-			g_snprintf(msg, sizeof(msg), _("Invalid username"));
+			result = _("Invalid username");
 			break;
 		case 209:
-			g_snprintf(msg, sizeof(msg), _("Invalid friendly name"));
+			result = _("Invalid friendly name");
 			break;
 		case 210:
-			g_snprintf(msg, sizeof(msg), _("List full"));
+			result = _("List full");
 			break;
 		case 215:
-			g_snprintf(msg, sizeof(msg), _("Already there"));
+			result = _("Already there");
 			*debug = TRUE;
 			break;
 		case 216:
-			g_snprintf(msg, sizeof(msg), _("Not on list"));
+			result = _("Not on list");
 			break;
 		case 217:
-			g_snprintf(msg, sizeof(msg), _("User is offline"));
+			result = _("User is offline");
 			break;
 		case 218:
-			g_snprintf(msg, sizeof(msg), _("Already in the mode"));
+			result = _("Already in the mode");
 			*debug = TRUE;
 			break;
 		case 219:
-			g_snprintf(msg, sizeof(msg), _("Already in opposite list"));
+			result = _("Already in opposite list");
 			*debug = TRUE;
 			break;
 		case 223:
-			g_snprintf(msg, sizeof(msg), _("Too many groups"));
+			result = _("Too many groups");
 			break;
 		case 224:
-			g_snprintf(msg, sizeof(msg), _("Invalid group"));
+			result = _("Invalid group");
 			break;
 		case 225:
-			g_snprintf(msg, sizeof(msg), _("User not in group"));
+			result = _("User not in group");
 			break;
 		case 229:
-			g_snprintf(msg, sizeof(msg), _("Group name too long"));
+			result = _("Group name too long");
 			break;
 		case 230:
-			g_snprintf(msg, sizeof(msg), _("Cannot remove group zero"));
+			result = _("Cannot remove group zero");
 			*debug = TRUE;
 			break;
 		case 231:
-			g_snprintf(msg, sizeof(msg),
-			           _("Tried to add a user to a group "
-			             "that doesn't exist"));
+			result = _("Tried to add a user to a group that doesn't exist");
 			break;
 		case 280:
-			g_snprintf(msg, sizeof(msg), _("Switchboard failed"));
+			result = _("Switchboard failed");
 			*debug = TRUE;
 			break;
 		case 281:
-			g_snprintf(msg, sizeof(msg), _("Notify transfer failed"));
+			result = _("Notify transfer failed");
 			*debug = TRUE;
 			break;
 
 		case 300:
-			g_snprintf(msg, sizeof(msg), _("Required fields missing"));
+			result = _("Required fields missing");
 			*debug = TRUE;
 			break;
 		case 301:
-			g_snprintf(msg, sizeof(msg), _("Too many hits to a FND"));
+			result = _("Too many hits to a FND");
 			*debug = TRUE;
 			break;
 		case 302:
-			g_snprintf(msg, sizeof(msg), _("Not logged in"));
+			result = _("Not logged in");
 			break;
 
 		case 500:
-			g_snprintf(msg, sizeof(msg),
-			           _("Service temporarily unavailable"));
+			result = _("Service temporarily unavailable");
 			break;
 		case 501:
-			g_snprintf(msg, sizeof(msg), _("Database server error"));
+			result = _("Database server error");
 			*debug = TRUE;
 			break;
 		case 502:
-			g_snprintf(msg, sizeof(msg), _("Command disabled"));
+			result = _("Command disabled");
 			*debug = TRUE;
 			break;
 		case 510:
-			g_snprintf(msg, sizeof(msg), _("File operation error"));
+			result = _("File operation error");
 			*debug = TRUE;
 			break;
 		case 520:
-			g_snprintf(msg, sizeof(msg), _("Memory allocation error"));
+			result = _("Memory allocation error");
 			*debug = TRUE;
 			break;
 		case 540:
-			g_snprintf(msg, sizeof(msg),
-			           _("Wrong CHL value sent to server"));
+			result = _("Wrong CHL value sent to server");
 			*debug = TRUE;
 			break;
 
 		case 600:
-			g_snprintf(msg, sizeof(msg), _("Server busy"));
+			result = _("Server busy");
 			break;
 		case 601:
-			g_snprintf(msg, sizeof(msg), _("Server unavailable"));
+			result = _("Server unavailable");
 			break;
 		case 602:
-			g_snprintf(msg, sizeof(msg),
-			           _("Peer notification server down"));
+			result = _("Peer notification server down");
 			*debug = TRUE;
 			break;
 		case 603:
-			g_snprintf(msg, sizeof(msg), _("Database connect error"));
+			result = _("Database connect error");
 			*debug = TRUE;
 			break;
 		case 604:
-			g_snprintf(msg, sizeof(msg),
-					   _("Server is going down (abandon ship)"));
+			result = _("Server is going down (abandon ship)");
 			break;
 		case 605:
-			g_snprintf(msg, sizeof(msg), _("Server unavailable"));
+			result = _("Server unavailable");
 			break;
 
 		case 707:
-			g_snprintf(msg, sizeof(msg),
-			           _("Error creating connection"));
+			result = _("Error creating connection");
 			*debug = TRUE;
 			break;
 		case 710:
-			g_snprintf(msg, sizeof(msg),
-			           _("CVR parameters are either unknown "
-			             "or not allowed"));
+			result = _("CVR parameters are either unknown or not allowed");
 			*debug = TRUE;
 			break;
 		case 711:
-			g_snprintf(msg, sizeof(msg), _("Unable to write"));
+			result = _("Unable to write");
 			break;
 		case 712:
-			g_snprintf(msg, sizeof(msg), _("Session overload"));
+			result = _("Session overload");
 			*debug = TRUE;
 			break;
 		case 713:
-			g_snprintf(msg, sizeof(msg), _("User is too active"));
+			result = _("User is too active");
 			break;
 		case 714:
-			g_snprintf(msg, sizeof(msg), _("Too many sessions"));
+			result = _("Too many sessions");
 			break;
 		case 715:
-			g_snprintf(msg, sizeof(msg), _("Passport not verified"));
+			result = _("Passport not verified");
 			break;
 		case 717:
-			g_snprintf(msg, sizeof(msg), _("Bad friend file"));
+			result = _("Bad friend file");
 			*debug = TRUE;
 			break;
 		case 731:
-			g_snprintf(msg, sizeof(msg), _("Not expected"));
+			result = _("Not expected");
 			*debug = TRUE;
 			break;
 
 		case 800:
-			g_snprintf(msg, sizeof(msg),
-			           _("Friendly name changes too rapidly"));
+			result = _("Friendly name changes too rapidly");
 			break;
 
 		case 910:
@@ -220,37 +207,34 @@
 		case 919:
 		case 921:
 		case 922:
-			g_snprintf(msg, sizeof(msg), _("Server too busy"));
+			result = _("Server too busy");
 			break;
 		case 911:
 		case 917:
-			g_snprintf(msg, sizeof(msg), _("Authentication failed"));
+			result = _("Authentication failed");
 			break;
 		case 913:
-			g_snprintf(msg, sizeof(msg), _("Not allowed when offline"));
+			result = _("Not allowed when offline");
 			break;
 		case 914:
 		case 915:
 		case 916:
-			g_snprintf(msg, sizeof(msg), _("Server unavailable"));
+			result = _("Server unavailable");
 			break;
 		case 920:
-			g_snprintf(msg, sizeof(msg), _("Not accepting new users"));
+			result = _("Not accepting new users");
 			break;
 		case 923:
-			g_snprintf(msg, sizeof(msg),
-			           _("Kids Passport without parental consent"));
+			result = _("Kids Passport without parental consent");
 			break;
 		case 924:
-			g_snprintf(msg, sizeof(msg),
-			           _("Passport account not yet verified"));
+			result = _("Passport account not yet verified");
 			break;
 		case 927:
-			g_snprintf(msg, sizeof(msg),
-			           _("Passport account suspended"));
+			result = _("Passport account suspended");
 			break;
 		case 928:
-			g_snprintf(msg, sizeof(msg), _("Bad ticket"));
+			result = _("Bad ticket");
 			*debug = TRUE;
 			break;
 
@@ -258,23 +242,25 @@
 			g_snprintf(msg, sizeof(msg),
 			           _("Unknown Error Code %d"), type);
 			*debug = TRUE;
+			result = msg;
 			break;
 	}
 
-	return msg;
+	return result;
 }
 
 void
 msn_error_handle(MsnSession *session, unsigned int type)
 {
-	char buf[MSN_BUF_LEN];
+	char *buf;
 	gboolean debug;
 
-	g_snprintf(buf, sizeof(buf), _("MSN Error: %s\n"),
-	           msn_error_get_text(type, &debug));
+	buf = g_strdup_printf(_("MSN Error: %s\n"),
+	                      msn_error_get_text(type, &debug));
 	if (debug)
 		purple_debug_warning("msn", "error %d: %s\n", type, buf);
 	else
 		purple_notify_error(session->account->gc, NULL, buf, NULL);
+	g_free(buf);
 }
 
--- a/libpurple/protocols/msn/oim.c	Fri Jan 02 22:23:58 2009 +0000
+++ b/libpurple/protocols/msn/oim.c	Fri Jan 02 22:28:34 2009 +0000
@@ -596,6 +596,7 @@
 	MsnMessage *message;
 	const char *date;
 	const char *from;
+	const char *boundary;
 	char *decode_msg = NULL;
 	gsize body_len;
 	char **tokens;
@@ -608,27 +609,14 @@
 	                          MSG_OIM_LINE_DEM, MSG_OIM_BODY_DEM);
 	purple_debug_info("msn", "oim body:{%s}\n", message->body);
 
-	if (!strcmp(msn_message_get_attr(message, "X-OIMProxy"), "MOSMS")) {
-		char *boundary;
+	boundary = msn_message_get_attr(message, "boundary");
+
+	if (boundary != NULL) {
+		char *bounds;
 		char **part;
 
-		from = msn_message_get_attr(message, "X-OIM-originatingSource");
-
-		/* Match number to user's mobile number, FROM is a phone number
-		   if the other side pages you using your phone number */
-		if (!strncmp(from, "tel:+", 5)) {
-			MsnUser *user =	msn_userlist_find_user_with_mobile_phone(
-					rdata->oim->session->userlist, from + 4);
-
-			if (user && user->passport)
-				passport = g_strdup(user->passport);
-		}
-		if (passport == NULL)
-			passport = g_strdup(from);
-
-		boundary = g_strdup_printf("--%s" MSG_OIM_LINE_DEM,
-		                           msn_message_get_attr(message, "boundary"));
-		tokens = g_strsplit(message->body, boundary, 0);
+		bounds = g_strdup_printf("--%s" MSG_OIM_LINE_DEM, boundary);
+		tokens = g_strsplit(message->body, bounds, 0);
 
 		/* tokens+1 to skip the "This is a multipart message..." text */
 		for (part = tokens+1; *part != NULL; part++) {
@@ -648,18 +636,33 @@
 		}
 
 		g_strfreev(tokens);
-		g_free(boundary);
+		g_free(bounds);
 
 		if (decode_msg == NULL) {
 			purple_debug_error("msn", "Couldn't find text/plain OIM message.\n");
-			g_free(passport);
+			msn_message_destroy(message);
 			return;
 		}
 	} else {
+		decode_msg = (char *)purple_base64_decode(message->body, &body_len);
+	}
+
+	from = msn_message_get_attr(message, "X-OIM-originatingSource");
+
+	/* Match number to user's mobile number, FROM is a phone number
+	   if the other side pages you using your phone number */
+	if (!strncmp(from, "tel:+", 5)) {
+		MsnUser *user =	msn_userlist_find_user_with_mobile_phone(
+				rdata->oim->session->userlist, from + 4);
+
+		if (user && user->passport)
+			passport = g_strdup(user->passport);
+	}
+
+	if (passport == NULL) {
 		char *start, *end;
 
 		from = msn_message_get_attr(message, "From");
-		decode_msg = (char *)purple_base64_decode(message->body, &body_len);
 
 		tokens = g_strsplit(from, " ", 2);
 		if (tokens[1] != NULL)
@@ -687,6 +690,7 @@
 
 	g_free(passport);
 	g_free(decode_msg);
+	msn_message_destroy(message);
 }
 
 /* Parse the XML data,
--- a/libpurple/protocols/myspace/session.h	Fri Jan 02 22:23:58 2009 +0000
+++ b/libpurple/protocols/myspace/session.h	Fri Jan 02 22:28:34 2009 +0000
@@ -35,7 +35,7 @@
 	guint userid;                       /**< This user's numeric user ID */
 	gchar *username;                    /**< This user's unique username */
 	gboolean show_only_to_list;
-	int privacy_mode;
+	int privacy_mode;                   /**< This is a bitmask */
 	int offline_message_mode;
 	gint fd;                            /**< File descriptor to/from server */
 
--- a/libpurple/protocols/myspace/user.c	Fri Jan 02 22:23:58 2009 +0000
+++ b/libpurple/protocols/myspace/user.c	Fri Jan 02 22:28:34 2009 +0000
@@ -412,10 +412,11 @@
 	}
 
 	if (msim_msg_get_integer(msg, "dsn") == MG_OWN_IM_INFO_DSN &&
-		msim_msg_get_integer(msg, "lid") == MG_OWN_IM_INFO_LID) {
+		msim_msg_get_integer(msg, "lid") == MG_OWN_IM_INFO_LID)
+	{
 		/*
 		 * Some of this info will be available on the buddy list if the
-		 * has themselves as their own buddy.
+		 * user has themselves as their own buddy.
 		 *
 		 * Much of the info is already available in MsimSession,
 		 * stored in msim_we_are_logged_on().
@@ -437,7 +438,7 @@
 				"idlist", MSIM_TYPE_STRING,
 						g_strdup_printf("w%d|c%d",
 								session->show_only_to_list ? 1 : 0,
-								session->privacy_mode),
+								session->privacy_mode & 1),
 				NULL);
 	} else if (msim_msg_get_integer(msg, "dsn") == MG_OWN_MYSPACE_INFO_DSN &&
 			msim_msg_get_integer(msg, "lid") == MG_OWN_MYSPACE_INFO_LID) {
--- a/libpurple/protocols/oscar/odc.c	Fri Jan 02 22:23:58 2009 +0000
+++ b/libpurple/protocols/oscar/odc.c	Fri Jan 02 22:28:34 2009 +0000
@@ -567,6 +567,7 @@
 	{
 		purple_debug_info("oscar", "Unknown ODC frame type 0x%04hx, "
 				"subtype 0x%04hx.\n", frame->type, frame->subtype);
+		g_free(frame);
 		return;
 	}
 
@@ -607,6 +608,7 @@
 			g_free(tmp);
 
 			peer_connection_destroy(conn, OSCAR_DISCONNECT_LOCAL_CLOSED, NULL);
+			g_free(frame);
 			return;
 		}
 
--- a/libpurple/protocols/qq/AUTHORS	Fri Jan 02 22:23:58 2009 +0000
+++ b/libpurple/protocols/qq/AUTHORS	Fri Jan 02 22:28:34 2009 +0000
@@ -1,7 +1,7 @@
 Code Contributors
 =========
 puzzlebird	: original author
-gfhuang		: patches for libpurple 2.0.0beta2, maintainer
+gfhuang(poppyer): patches for libpurple 2.0.0beta2, maintainer
 Yuan Qingyun	: patches for libpurple 1.5.0, maintainer
 henryouly	: file transfer, udp sock5 proxy and qq_show, maintainer
 hzhr		: maintainer
--- a/libpurple/protocols/qq/ChangeLog	Fri Jan 02 22:23:58 2009 +0000
+++ b/libpurple/protocols/qq/ChangeLog	Fri Jan 02 22:28:34 2009 +0000
@@ -1,3 +1,10 @@
+2008.12.25 - flos <lonicerae(at)gmail.com>
+	* References #7821
+	* Updated authors
+
+2008.12.17 - flos <lonicerae(at)gmail.com>
+	* Minor fixed in buddy_info.c
+
 2008.12.06 - flos <lonicerae(at)gmail.com>
 	* Removed version checking script in Makefiles since our developers all migrated to monotone
 	* Use our development revision as OPENQ_VERSION in qq.c
--- a/libpurple/protocols/qq/buddy_info.c	Fri Jan 02 22:23:58 2009 +0000
+++ b/libpurple/protocols/qq/buddy_info.c	Fri Jan 02 22:28:34 2009 +0000
@@ -790,7 +790,7 @@
 		bytes += qq_get32(&onlineTime, data + bytes);
 		bytes += qq_get16(&level, data + bytes);
 		bytes += qq_get16(&timeRemainder, data + bytes);
-		purple_debug_info("QQ", "level: %d, uid %d, tmOnline: %d, tmRemainder: %d\n",
+		purple_debug_info("QQ", "level: %d, uid %u, tmOnline: %d, tmRemainder: %d\n",
 				level, uid, onlineTime, timeRemainder);
 
 		bd = qq_buddy_data_find(gc, uid);
@@ -825,12 +825,12 @@
 	bytes += qq_get32(&onlineTime, data + bytes);
 	bytes += qq_get16(&level, data + bytes);
 	bytes += qq_get16(&timeRemainder, data + bytes);
-	purple_debug_info("QQ", "level: %d, uid %d, tmOnline: %d, tmRemainder: %d\n",
+	purple_debug_info("QQ", "level: %d, uid %u, tmOnline: %d, tmRemainder: %d\n",
 			level, uid, onlineTime, timeRemainder);
 
 	bd = qq_buddy_data_find(gc, uid);
 	if (bd == NULL) {
-		purple_debug_error("QQ", "Got levels of %d not in my buddy list\n", uid);
+		purple_debug_error("QQ", "Got levels of %u not in my buddy list\n", uid);
 		return;
 	}
 
--- a/libpurple/protocols/qq/group_internal.c	Fri Jan 02 22:23:58 2009 +0000
+++ b/libpurple/protocols/qq/group_internal.c	Fri Jan 02 22:28:34 2009 +0000
@@ -30,7 +30,7 @@
 #include "group_internal.h"
 #include "utils.h"
 
-static qq_room_data *room_data_new(guint32 id, guint32 ext_id, gchar *title)
+static qq_room_data *room_data_new(guint32 id, guint32 ext_id, const gchar *title)
 {
 	qq_room_data *rmd;
 
@@ -62,9 +62,9 @@
 
 	value = g_hash_table_lookup(data, QQ_ROOM_KEY_INTERNAL_ID);
 	id = value ? strtoul(value, NULL, 10) : 0;
-	value= g_hash_table_lookup(data, QQ_ROOM_KEY_EXTERNAL_ID);
+	value = g_hash_table_lookup(data, QQ_ROOM_KEY_EXTERNAL_ID);
 	ext_id = value ? strtoul(value, NULL, 10) : 0;
-	value = g_strdup(g_hash_table_lookup(data, QQ_ROOM_KEY_TITLE_UTF8));
+	value = g_hash_table_lookup(data, QQ_ROOM_KEY_TITLE_UTF8);
 
 	rmd = room_data_new(id, ext_id, value);
 	rmd->my_role = QQ_ROOM_ROLE_YES;
--- a/libpurple/protocols/qq/group_opt.c	Fri Jan 02 22:23:58 2009 +0000
+++ b/libpurple/protocols/qq/group_opt.c	Fri Jan 02 22:28:34 2009 +0000
@@ -416,11 +416,6 @@
 
 	bytes += qq_get_vstr(&reason, QQ_CHARSET_DEFAULT, data + bytes);
 
-	add_req = g_new0(qq_room_req, 1);
-	add_req->gc = gc;
-	add_req->id = id;
-	add_req->member = member_id;
-
 	purple_debug_info("QQ", "%u requested to join room, ext id %u\n", member_id, ext_id);
 
 	rmd = qq_room_data_find(gc, id);
@@ -442,6 +437,11 @@
 	who = uid_to_purple_name(member_id);
 	msg = g_strdup_printf(_("%u request to join Qun %u"), member_id, ext_id);
 
+	add_req = g_new0(qq_room_req, 1);
+	add_req->gc = gc;
+	add_req->id = id;
+	add_req->member = member_id;
+
 	purple_request_action(gc, _("QQ Qun Operation"),
 			msg, reason,
 			PURPLE_DEFAULT_ACTION_NONE,
--- a/libpurple/protocols/qq/qq.c	Fri Jan 02 22:23:58 2009 +0000
+++ b/libpurple/protocols/qq/qq.c	Fri Jan 02 22:28:34 2009 +0000
@@ -627,7 +627,7 @@
 	g_string_append(info, "puzzlebird<br>\n");
 	g_string_append(info, "<br>\n");
 	g_string_append(info, _("<p><b>Code Contributors</b>:<br>\n"));
-	g_string_append(info, "gfhuang : patches for libpurple 2.0.0beta2, maintainer<br>\n");
+	g_string_append(info, "gfhuang(poppyer) : patches for libpurple 2.0.0beta2, maintainer<br>\n");
 	g_string_append(info, "Yuan Qingyun : patches for libpurple 1.5.0, maintainer<br>\n");
 	g_string_append(info, "henryouly : file transfer, udp sock5 proxy and qq_show, maintainer<br>\n");
 	g_string_append(info, "hzhr : maintainer<br>\n");
--- a/libpurple/protocols/qq/qq_network.c	Fri Jan 02 22:23:58 2009 +0000
+++ b/libpurple/protocols/qq/qq_network.c	Fri Jan 02 22:28:34 2009 +0000
@@ -468,7 +468,7 @@
 
 static void udp_pending(gpointer data, gint source, PurpleInputCondition cond)
 {
-	PurpleConnection *gc = (PurpleConnection *) data;
+	PurpleConnection *gc = NULL;
 	qq_data *qd;
 	guint8 *buf;
 	gint buf_len;
--- a/libpurple/protocols/sametime/sametime.c	Fri Jan 02 22:23:58 2009 +0000
+++ b/libpurple/protocols/sametime/sametime.c	Fri Jan 02 22:28:34 2009 +0000
@@ -3741,7 +3741,6 @@
   gc->flags |= PURPLE_CONNECTION_NO_IMAGES;
 
   user = g_strdup(purple_account_get_username(account));
-  pass = g_strdup(purple_account_get_password(account));
 
   host = strrchr(user, ':');
   if(host) {
@@ -3758,10 +3757,12 @@
   if(! host || ! *host) {
     /* somehow, we don't have a host to connect to. Well, we need one
        to actually continue, so let's ask the user directly. */
+    g_free(user);
     prompt_host(gc);
     return;
   }
 
+  pass = g_strdup(purple_account_get_password(account));
   port = purple_account_get_int(account, MW_KEY_PORT, MW_PLUGIN_DEFAULT_PORT);
 
   DEBUG_INFO("user: '%s'\n", user);
--- a/libpurple/server.c	Fri Jan 02 22:23:58 2009 +0000
+++ b/libpurple/server.c	Fri Jan 02 22:28:34 2009 +0000
@@ -811,7 +811,7 @@
 {
 	PurpleAccount *account;
 	char buf2[BUF_LONG];
-	struct chat_invite_data *cid = g_new0(struct chat_invite_data, 1);
+	struct chat_invite_data *cid;
 	int plugin_return;
 
 	account = purple_connection_get_account(gc);
@@ -824,6 +824,8 @@
 		}
 	}
 
+	cid = g_new0(struct chat_invite_data, 1);
+
 	plugin_return = GPOINTER_TO_INT(purple_signal_emit_return_1(
 					purple_conversations_get_handle(),
 					"chat-invited", account, who, name, message, data));
--- a/libpurple/util.c	Fri Jan 02 22:23:58 2009 +0000
+++ b/libpurple/util.c	Fri Jan 02 22:28:34 2009 +0000
@@ -1676,20 +1676,18 @@
 							  size = "xx-small";
 							  break;
 							case 2:
-							  size = "x-small";
+							  size = "small";
 							  break;
 							case 3:
-							  size = "small";
+							  size = "medium";
 							  break;
 							case 4:
-							  size = "medium";
+							  size = "large";
 							  break;
 							case 5:
-							  size = "large";
+							  size = "x-large";
 							  break;
 							case 6:
-							  size = "x-large";
-							  break;
 							case 7:
 							  size = "xx-large";
 							  break;
--- a/libpurple/xmlnode.c	Fri Jan 02 22:23:58 2009 +0000
+++ b/libpurple/xmlnode.c	Fri Jan 02 22:28:34 2009 +0000
@@ -662,7 +662,7 @@
 	vsnprintf(errmsg, sizeof(errmsg), msg, args);
 	va_end(args);
 
-	purple_debug_error("xmlnode", "Error parsing xml file: %s\n", errmsg);
+	purple_debug_error("xmlnode", "Error parsing xml file: %s", errmsg);
 }
 
 static xmlSAXHandler xmlnode_parser_libxml = {
--- a/pidgin/gtkblist.c	Fri Jan 02 22:23:58 2009 +0000
+++ b/pidgin/gtkblist.c	Fri Jan 02 22:28:34 2009 +0000
@@ -627,7 +627,7 @@
 			break;
 		case PURPLE_BLIST_GROUP_NODE:
 			dest = purple_find_group(arg2);
-			if (dest != NULL && strcmp(arg2, purple_group_get_name(PURPLE_GROUP(node)))) {
+			if (dest != NULL && purple_utf8_strcasecmp(arg2, purple_group_get_name(PURPLE_GROUP(node)))) {
 				pidgin_dialogs_merge_groups(PURPLE_GROUP(node), arg2);
 			} else {
 				purple_blist_rename_group(PURPLE_GROUP(node), arg2);
--- a/pidgin/gtkimhtml.c	Fri Jan 02 22:23:58 2009 +0000
+++ b/pidgin/gtkimhtml.c	Fri Jan 02 22:28:34 2009 +0000
@@ -3113,15 +3113,15 @@
 							else if (g_ascii_strcasecmp(size, "smaller") == 0
 								  || g_ascii_strcasecmp(size, "x-small") == 0)
 								font->size = 2;
-							else if (g_ascii_strcasecmp(size, "larger") == 0
-								  || g_ascii_strcasecmp(size, "medium") == 0)
+							else if (g_ascii_strcasecmp(size, "medium") == 0)
+								font->size = 3;
+							else if (g_ascii_strcasecmp(size, "large") == 0
+								  || g_ascii_strcasecmp(size, "larger") == 0)
 								font->size = 4;
-							else if (g_ascii_strcasecmp(size, "large") == 0)
+							else if (g_ascii_strcasecmp(size, "x-large") == 0)
 								font->size = 5;
-							else if (g_ascii_strcasecmp(size, "x-large") == 0)
+							else if (g_ascii_strcasecmp(size, "xx-large") == 0)
 								font->size = 6;
-							else if (g_ascii_strcasecmp(size, "xx-large") == 0)
-								font->size = 7;
 
 							/*
 							 * TODO: Handle other values, like percentages, or
--- a/po/ca.po	Fri Jan 02 22:23:58 2009 +0000
+++ b/po/ca.po	Fri Jan 02 22:28:34 2009 +0000
@@ -33,8 +33,8 @@
 msgstr ""
 "Project-Id-Version: Pidgin\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2008-12-17 21:51+0100\n"
-"PO-Revision-Date: 2008-12-15 02:34+0100\n"
+"POT-Creation-Date: 2008-12-19 17:53+0100\n"
+"PO-Revision-Date: 2008-12-20 17:15+0100\n"
 "Last-Translator: Josep Puigdemont i Casamajó <josep.puigdemont@gmail.com>\n"
 "Language-Team: Catalan <tradgnome@softcatala.net>\n"
 "MIME-Version: 1.0\n"
@@ -442,7 +442,7 @@
 msgstr "Els grups buits"
 
 msgid "Offline buddies"
-msgstr "Els amics desconnectats"
+msgstr "Amics desconnectats"
 
 msgid "Sort"
 msgstr "Ordena"
@@ -1530,10 +1530,10 @@
 msgstr "Fora de línia"
 
 msgid "Online Buddies"
-msgstr "Els amics desconnectats"
+msgstr "Amics connectats"
 
 msgid "Offline Buddies"
-msgstr "Els amics desconnectats"
+msgstr "Amics desconnectats"
 
 msgid "Online/Offline"
 msgstr "En línia/fora de línia"
@@ -4021,7 +4021,7 @@
 msgstr "Directori de cerca"
 
 msgid "_Room:"
-msgstr "Sa_la:"
+msgstr "_Sala:"
 
 msgid "_Server:"
 msgstr "_Servidor:"
@@ -10512,7 +10512,7 @@
 "Introduïu la informació necessària sobre el xat al qual vulgueu entrar.\n"
 
 msgid "_Account:"
-msgstr "_Compte:"
+msgstr "C_ompte:"
 
 msgid "_Block"
 msgstr "_Bloca"
@@ -10568,7 +10568,7 @@
 
 #. join button
 msgid "_Join"
-msgstr "En_tra"
+msgstr "_Entra"
 
 msgid "Auto-Join"
 msgstr "Entra automàticament"
@@ -10615,7 +10615,7 @@
 msgstr "/Amics/_Visualitza el registre de l'usuari..."
 
 msgid "/Buddies/Sh_ow"
-msgstr "/Amics/M_ostra"
+msgstr "/Amics/Mos_tra"
 
 msgid "/Buddies/Show/_Offline Buddies"
 msgstr "/Amics/Mostra/Amics des_connectats"
@@ -10669,7 +10669,7 @@
 msgstr "/Eines/_Connectors"
 
 msgid "/Tools/Pr_eferences"
-msgstr "/Eines/Preferè_ncies"
+msgstr "/Eines/Pre_ferències"
 
 msgid "/Tools/Pr_ivacy"
 msgstr "/Eines/_Privadesa"
@@ -10678,7 +10678,7 @@
 msgstr "/Eines/Em_oticona"
 
 msgid "/Tools/_File Transfers"
-msgstr "/Eines/Transferència de _fitxers"
+msgstr "/Eines/_Transferència de fitxers"
 
 msgid "/Tools/R_oom List"
 msgstr "/Eines/_Llista de sales"
@@ -10897,13 +10897,13 @@
 "la llista d'amics.\n"
 
 msgid "A_lias:"
-msgstr "À_lies:"
+msgstr "Àl_ies:"
 
 msgid "Auto_join when account becomes online."
-msgstr "Entra _automàticament quant el compte estigui connectat."
+msgstr "_Entra automàticament quant el compte estigui connectat."
 
 msgid "_Remain in chat after window is closed."
-msgstr "_Continua al xat quan la finestra es tanqui."
+msgstr "Co_ntinua al xat quan la finestra es tanqui."
 
 msgid "Please enter the name of the group to be added."
 msgstr "Introduïu el nom del grup que vulgueu afegir."
@@ -11787,7 +11787,7 @@
 msgstr "Temps restant:"
 
 msgid "Close this window when all transfers _finish"
-msgstr "Tanca aquesta finestra quan totes les transferències hagin _finalitzat"
+msgstr "Tanca aquesta _finestra quan totes les transferències hagin finalitzat"
 
 msgid "C_lear finished transfers"
 msgstr "_Neteja les transferències acabades"
@@ -12315,7 +12315,7 @@
 msgstr "<b>Nom del fitxer:</b>"
 
 msgid "Configure Pl_ugin"
-msgstr "Config_ura el connector"
+msgstr "_Configura el connector"
 
 msgid "<b>Plugin Details</b>"
 msgstr "<b>Detalls del connector</b>"
@@ -12329,46 +12329,46 @@
 msgstr "Avisa dels Whom"
 
 msgid "_Buddy name:"
-msgstr "Nom de l'_amic:"
+msgstr "_Nom de l'amic:"
 
 msgid "Si_gns on"
-msgstr "Es _connecti"
+msgstr "Es conn_ecti"
 
 msgid "Signs o_ff"
-msgstr "Es _desconnecti"
+msgstr "Es de_sconnecti"
 
 msgid "Goes a_way"
 msgstr "Passi a _absent"
 
 msgid "Ret_urns from away"
-msgstr "To_rni a estar present"
+msgstr "_Torni a estar present"
 
 msgid "Becomes _idle"
 msgstr "Passi a _inactiu"
 
 msgid "Is no longer i_dle"
-msgstr "Ja no estigui i_nactiu"
+msgstr "_Ja no estigui inactiu"
 
 msgid "Starts _typing"
-msgstr "Comenci a _escriure"
+msgstr "Comenci a esc_riure"
 
 msgid "P_auses while typing"
-msgstr "S'_aturi mentre tecleja"
+msgstr "S'at_uri mentre tecleja"
 
 msgid "Stops t_yping"
-msgstr "Pari d'e_scriure"
+msgstr "_Pari d'escriure"
 
 msgid "Sends a _message"
 msgstr "Enviï un _missatge"
 
 msgid "Ope_n an IM window"
-msgstr "Obre u_na finestra de MI"
+msgstr "Obre una _finestra de MI"
 
 msgid "_Pop up a notification"
-msgstr "Mostra una _notificació emergent"
+msgstr "Mostra una notificació emer_gent"
 
 msgid "Send a _message"
-msgstr "Envia un _missatge"
+msgstr "En_via un missatge"
 
 msgid "E_xecute a command"
 msgstr "E_xecuta una ordre"
@@ -12376,17 +12376,21 @@
 msgid "P_lay a sound"
 msgstr "Reproduei_x un so"
 
+# Sense accelerador expressament (josep)
 msgid "Brows_e..."
-msgstr "Nav_ega..."
-
+msgstr "Navega..."
+
+# Sense accelerador expressament (josep)
 msgid "Br_owse..."
-msgstr "Na_vega..."
-
+msgstr "Navega..."
+
+# Sense accelerador expressament (josep)
 msgid "Pre_view"
-msgstr "Pre_visualitza"
-
+msgstr "Previsualitza"
+
+# Sense accelerador expressament (josep)
 msgid "P_ounce only when my status is not Available"
-msgstr "Avisa n_omés quan el meu estat no sigui disponible"
+msgstr "Avisa només quan el meu estat no estigui disponible"
 
 msgid "_Recurring"
 msgstr "_Recurrent"
@@ -12420,7 +12424,7 @@
 msgstr "Icona d'estat"
 
 msgid "_Show system tray icon:"
-msgstr "Mostra la icona d'estat:"
+msgstr "_Mostra la icona d'estat:"
 
 msgid "On unread messages"
 msgstr "Si hi ha missatges sense llegir"
@@ -12440,10 +12444,10 @@
 msgstr "Pestanyes"
 
 msgid "Show IMs and chats in _tabbed windows"
-msgstr "Mostra MI i xats en finestres amb _pestanyes"
+msgstr "Mostra MI i _xats en finestres amb pestanyes"
 
 msgid "Show close b_utton on tabs"
-msgstr "Mosta el b_otó de tancar a les pestanyes"
+msgstr "Mosta el _botó de tancar a les pestanyes"
 
 msgid "_Placement:"
 msgstr "_Posicionament:"
@@ -12467,10 +12471,10 @@
 msgstr "Vertical dret"
 
 msgid "N_ew conversations:"
-msgstr "Converses noves:"
+msgstr "Converses _noves:"
 
 msgid "Show _formatting on incoming messages"
-msgstr "Mostra el format dels missatges entrants"
+msgstr "Mostra el _format dels missatges entrants"
 
 msgid "Close IMs immediately when the tab is closed"
 msgstr "Tanca la missatgeria quan es tanqui la pestanya"
@@ -12485,10 +12489,10 @@
 msgstr "_Notifica als amics quan els escrigui"
 
 msgid "Highlight _misspelled words"
-msgstr "Ressalta les paraules _mal escrites"
+msgstr "_Ressalta les paraules mal escrites"
 
 msgid "Use smooth-scrolling"
-msgstr "Utilitza el desplaçament suau"
+msgstr "Empra el desplaçament suau"
 
 msgid "F_lash window when IMs are received"
 msgstr "_Fes que la finestra faci un flaix quan hi arribin missatges"
@@ -12503,13 +12507,13 @@
 msgstr "Tipus de lletra"
 
 msgid "Use document font from _theme"
-msgstr "Empra el tipus de lletra del document del _tema"
+msgstr "_Empra el tipus de lletra del document del tema"
 
 msgid "Use font from _theme"
 msgstr "Empra el tipus de lletra del _tema"
 
 msgid "Conversation _font:"
-msgstr "_Tipus de lletra de la conversa:"
+msgstr "Tipus de _lletra de la conversa:"
 
 msgid "Default Formatting"
 msgstr "Format per defecte"
@@ -12519,7 +12523,7 @@
 "that support formatting."
 msgstr ""
 "Així és com els missatges de text sortints apareixeran quan feu servir "
-"protocols que implementin el text formatat."
+"protocols que permetin el text formatat."
 
 msgid "Cannot start proxy configuration program."
 msgstr ""
@@ -12538,7 +12542,7 @@
 msgstr "Detecta l'_adreça IP automàticament"
 
 msgid "Public _IP:"
-msgstr "_IP pública:"
+msgstr "IP _pública:"
 
 msgid "Ports"
 msgstr "Ports"
@@ -12547,7 +12551,7 @@
 msgstr "_Habilita la desviació automàtica de ports de l'encaminador"
 
 msgid "_Manually specify range of ports to listen on"
-msgstr "Especifica _manualment el rang de ports on escoltar"
+msgstr "_Especifica manualment el rang de ports on escoltar"
 
 msgid "_Start port:"
 msgstr "Port _inicial:"
@@ -12654,13 +12658,13 @@
 msgstr "_Format del registre:"
 
 msgid "Log all _instant messages"
-msgstr "_Registra tots els missatges instantanis"
+msgstr "Registra tots els _missatges instantanis"
 
 msgid "Log all c_hats"
 msgstr "Registra tots els _xats"
 
 msgid "Log all _status changes to system log"
-msgstr "Regi_stra tots els canvis d'estat al registre del sistema"
+msgstr "Registra tots els _canvis d'estat al registre del sistema"
 
 msgid "Sound Selection"
 msgstr "Selecció de sons"
@@ -12707,10 +12711,10 @@
 "(%s per al nom de fitxer)"
 
 msgid "M_ute sounds"
-msgstr "In_habilita els sons"
+msgstr "_Inhabilita els sons"
 
 msgid "Sounds when conversation has _focus"
-msgstr "Sons quan la conversa tingui el _focus"
+msgstr "_Sons quan la conversa tingui el focus"
 
 msgid "_Enable sounds:"
 msgstr "_Habilita els sons:"
@@ -12722,13 +12726,13 @@
 msgstr "Reprodueix"
 
 msgid "_Browse..."
-msgstr "Nav_ega..."
+msgstr "_Navega..."
 
 msgid "_Reset"
 msgstr "_Reinicia"
 
 msgid "_Report idle time:"
-msgstr "Informa del _temps d'inactivitat:"
+msgstr "_Informa del temps d'inactivitat:"
 
 msgid "Based on keyboard or mouse use"
 msgstr "Basat en l'ús del teclat o el ratolí"
@@ -12744,23 +12748,23 @@
 msgstr "Auto-absència"
 
 msgid "Change status when _idle"
-msgstr "Canvia l'estat quan estigui _inactiu"
+msgstr "_Canvia l'estat quan estigui inactiu"
 
 msgid "_Minutes before becoming idle:"
 msgstr "_Minuts abans de passar a inactiu:"
 
 msgid "Change _status to:"
-msgstr "Canvia l'e_stat a:"
+msgstr "Canvia l'_estat a:"
 
 #. Signon status stuff
 msgid "Status at Startup"
 msgstr "L'estat en iniciar"
 
 msgid "Use status from last _exit at startup"
-msgstr "_En iniciar, empra el mateix estat que en sortir per darrer cop"
+msgstr "En i_niciar, empra el mateix estat que en sortir per darrer cop"
 
 msgid "Status to a_pply at startup:"
-msgstr "Es_tatus a utilitzar en iniciar:"
+msgstr "Estat a _utilitzar en iniciar:"
 
 msgid "Interface"
 msgstr "Interfície"
@@ -12800,7 +12804,7 @@
 
 #. Remove All button
 msgid "Remove Al_l"
-msgstr "Suprimeix-ho _tot"
+msgstr "S_uprimeix-ho tot"
 
 msgid "Permit User"
 msgstr "Permet l'usuari"
@@ -12859,11 +12863,11 @@
 
 #. list button
 msgid "_Get List"
-msgstr "_Aconsegueix la llista"
+msgstr "Aconsegueix la _llista"
 
 #. add button
 msgid "_Add Chat"
-msgstr "_Afegeix el xat"
+msgstr "Afegeix el _xat"
 
 # He omès "saved", que sembla que no hi cal (josep)
 msgid "Are you sure you want to delete the selected saved statuses?"
@@ -13075,7 +13079,7 @@
 msgstr "Tanca les _pestanyes"
 
 msgid "_Get Info"
-msgstr "_Aconsegueix informació"
+msgstr "Aconsegueix _informació"
 
 msgid "_Invite"
 msgstr "Conv_ida"
@@ -13226,7 +13230,7 @@
 msgstr "Missatges ressaltats"
 
 msgid "System Messages"
-msgstr "Missatge del sistema"
+msgstr "Missatges del sistema"
 
 msgid "Sent Messages"
 msgstr "Missatges enviats"
@@ -13349,10 +13353,9 @@
 msgid "New Person"
 msgstr "Nova persona"
 
-# FIXME: seleccioneu un amic?
 #. "Select Buddy" button
 msgid "Select Buddy"
-msgstr "Seleccioneu un amic"
+msgstr "Selecciona"
 
 #. Add the label.
 msgid ""
--- a/po/ca@valencia.po	Fri Jan 02 22:23:58 2009 +0000
+++ b/po/ca@valencia.po	Fri Jan 02 22:28:34 2009 +0000
@@ -33,8 +33,8 @@
 msgstr ""
 "Project-Id-Version: Pidgin\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2008-12-17 21:53+0100\n"
-"PO-Revision-Date: 2008-12-15 02:34+0100\n"
+"POT-Creation-Date: 2008-12-19 17:53+0100\n"
+"PO-Revision-Date: 2008-12-20 17:15+0100\n"
 "Last-Translator: Josep Puigdemont i Casamajó <josep.puigdemont@gmail.com>\n"
 "Language-Team: Catalan <tradgnome@softcatala.net>\n"
 "MIME-Version: 1.0\n"
@@ -100,7 +100,7 @@
 msgstr "No hi ha connectors de protocol instal·lats."
 
 msgid "(You probably forgot to 'make install'.)"
-msgstr "(Segurament vos heu oblidat de fer un «make install».)"
+msgstr "(Segurament us heu oblidat de fer un «make install».)"
 
 msgid "Modify Account"
 msgstr "Modifica el compte"
@@ -412,8 +412,8 @@
 "Please enter the username or alias of the person whose log you would like to "
 "view."
 msgstr ""
-"Introduïu el nom d'usuari o l'àlies de la persona de la qual vulgueu vore el "
-"registre."
+"Introduïu el nom d'usuari o l'àlies de la persona de la qual vulgueu veure "
+"el registre."
 
 #. Create the "Options" frame.
 msgid "Options"
@@ -441,7 +441,7 @@
 msgstr "Els grups buits"
 
 msgid "Offline buddies"
-msgstr "Els amics desconnectats"
+msgstr "Amics desconnectats"
 
 msgid "Sort"
 msgstr "Ordena"
@@ -992,7 +992,7 @@
 msgid ""
 "Please open the debug window and try again to see the exact error message."
 msgstr ""
-"Obriu la finestra de depuració i proveu de nou si podeu vore el missatge "
+"Obriu la finestra de depuració i proveu de nou si podeu veure el missatge "
 "d'error exacte."
 
 msgid "Select plugin to install"
@@ -1112,11 +1112,11 @@
 
 #, c-format
 msgid "%s has started typing to you (%s)"
-msgstr "%s vos ha començat a escriure (%s)"
+msgstr "%s us ha començat a escriure (%s)"
 
 #, c-format
 msgid "%s has paused while typing to you (%s)"
-msgstr "%s s'ha aturat mentre vos escrivia (%s)"
+msgstr "%s s'ha aturat mentre us escrivia (%s)"
 
 #, c-format
 msgid "%s has signed on (%s)"
@@ -1132,7 +1132,7 @@
 
 #, c-format
 msgid "%s has stopped typing to you (%s)"
-msgstr "%s ha deixat d'escriure-vos (%s)"
+msgstr "%s ha deixat d'escriure-us (%s)"
 
 #, c-format
 msgid "%s has signed off (%s)"
@@ -1148,7 +1148,7 @@
 
 #, c-format
 msgid "%s has sent you a message. (%s)"
-msgstr "%s vos ha enviat un missatge. (%s)"
+msgstr "%s us ha enviat un missatge. (%s)"
 
 #, c-format
 msgid "Unknown pounce event. Please report this!"
@@ -1450,7 +1450,7 @@
 
 #, c-format
 msgid "%s sent you a message"
-msgstr "%s vos ha enviat un missatge"
+msgstr "%s us ha enviat un missatge"
 
 #, c-format
 msgid "%s said your nick in %s"
@@ -1458,7 +1458,7 @@
 
 #, c-format
 msgid "%s sent a message in %s"
-msgstr "%s vos ha enviat un missatge a %s"
+msgstr "%s us ha enviat un missatge a %s"
 
 msgid "Buddy signs on/off"
 msgstr "Un amic es connecte/desconnecti"
@@ -1528,10 +1528,10 @@
 msgstr "Fora de línia"
 
 msgid "Online Buddies"
-msgstr "Els amics desconnectats"
+msgstr "Amics connectats"
 
 msgid "Offline Buddies"
-msgstr "Els amics desconnectats"
+msgstr "Amics desconnectats"
 
 msgid "Online/Offline"
 msgstr "En línia/fora de línia"
@@ -1736,7 +1736,7 @@
 "could mean that you are not connecting to the service you believe you are."
 msgstr ""
 "El certificat de «%s» sembla indicar que és de «%s». Això podria voler dir que "
-"vos esteu connectant a un servici diferent del que vos penseu."
+"us esteu connectant a un servici diferent del que us penseu."
 
 #. Make messages
 #, c-format
@@ -1806,7 +1806,7 @@
 
 #, c-format
 msgid "You are now known as %s"
-msgstr "Ara vos feu dir %s"
+msgstr "Ara us feu dir %s"
 
 #, c-format
 msgid "%s is now known as %s"
@@ -1917,11 +1917,11 @@
 
 #, c-format
 msgid "%s wants to send you %s (%s)"
-msgstr "%s vos vol enviar %s (%s)"
+msgstr "%s us vol enviar %s (%s)"
 
 #, c-format
 msgid "%s wants to send you a file"
-msgstr "%s vos vol enviar un fitxer"
+msgstr "%s us vol enviar un fitxer"
 
 #, c-format
 msgid "Accept file transfer request from %s?"
@@ -1939,7 +1939,7 @@
 
 #, c-format
 msgid "%s is offering to send file %s"
-msgstr "%s vos oferix enviar el fitxer %s"
+msgstr "%s us oferix enviar el fitxer %s"
 
 #, c-format
 msgid "%s is not a valid filename.\n"
@@ -2345,7 +2345,7 @@
 #. *  summary
 #. *  description
 msgid "Allows control by entering commands in a file."
-msgstr "Vos permet controlar introduint ordes en un fitxer."
+msgstr "Us permet controlar introduint ordes en un fitxer."
 
 msgid "Minutes"
 msgstr "Minuts"
@@ -2379,7 +2379,7 @@
 msgstr "Desestablix el temps d'inactivitat de tots els comptes inactius"
 
 msgid "Allows you to hand-configure how long you've been idle"
-msgstr "Vos permet configurar a mà durant quant de temps heu estat inactiu"
+msgstr "Us permet configurar a mà durant quant de temps heu estat inactiu"
 
 #. *< type
 #. *< ui_requirement
@@ -2484,7 +2484,7 @@
 msgid ""
 "You are currently disconnected. Messages will not be received unless you are "
 "logged in."
-msgstr "Esteu desconnectat. No rebreu missatges a no ser que vos connecteu."
+msgstr "Esteu desconnectat. No rebreu missatges a no ser que us connecteu."
 
 msgid "Message could not be sent because the maximum length was exceeded."
 msgstr ""
@@ -2681,8 +2681,8 @@
 "Causes conversation windows to appear as other users begin to message you.  "
 "This works for AIM, ICQ, XMPP, Sametime, and Yahoo!"
 msgstr ""
-"Fa que apareguen finestres de conversa així que altres usuaris vos comencen "
-"a enviar missatges. Funciona per a AIM, ICQ, XMPP, Sametime, i Yahoo!"
+"Fa que apareguen finestres de conversa així que altres usuaris us comencen a "
+"enviar missatges. Funciona per a AIM, ICQ, XMPP, Sametime, i Yahoo!"
 
 msgid "You feel a disturbance in the force..."
 msgstr "Sentireu un certa pertorbació en la força..."
@@ -2713,7 +2713,7 @@
 #. *  summary
 #. *  description
 msgid "Test to see that all signals are working properly."
-msgstr "Prova per vore si tots els senyals funcionen correctament."
+msgstr "Prova per veure si tots els senyals funcionen correctament."
 
 #. *< type
 #. *< ui_requirement
@@ -2729,7 +2729,7 @@
 #. *  summary
 #. *  description
 msgid "Tests to see that most things are working."
-msgstr "Proves per vore si la majoria de coses funcionen."
+msgstr "Proves per veure si la majoria de coses funcionen."
 
 #. Scheme name
 msgid "X.509 Certificates"
@@ -3170,7 +3170,7 @@
 msgstr "el tema actual és: %s"
 
 msgid "No topic is set"
-msgstr "No hi ha cap tema establert"
+msgstr "No hi ha cap tema establit"
 
 msgid "File Transfer Failed"
 msgstr "Ha fallat la transferència del fitxer"
@@ -3273,7 +3273,7 @@
 
 #, c-format
 msgid "Ban on %s by %s, set %s ago"
-msgstr "Bandejament a %s de %s, establert fa %s"
+msgstr "Bandejament a %s de %s, establit fa %s"
 
 #, c-format
 msgid "Ban on %s"
@@ -3284,7 +3284,7 @@
 
 #, c-format
 msgid "You are banned from %s."
-msgstr "Vos han bandejat de %s"
+msgstr "Us han bandejat de %s"
 
 msgid "Banned"
 msgstr "Bandejat"
@@ -3374,12 +3374,12 @@
 
 #, c-format
 msgid "You have been kicked by %s: (%s)"
-msgstr "%s vos ha fet fora: (%s)"
+msgstr "%s us ha fet fora: (%s)"
 
 #. Remove user from channel
 #, c-format
 msgid "Kicked by %s (%s)"
-msgstr "%s vos ha fet fora (%s)"
+msgstr "%s us ha fet fora (%s)"
 
 #, c-format
 msgid "mode (%s %s) by %s"
@@ -3730,7 +3730,7 @@
 "All items below are optional. Enter only the information with which you feel "
 "comfortable."
 msgstr ""
-"Les dades següents són opcionals. Introduïu només la informació que vos "
+"Les dades següents són opcionals. Introduïu només la informació que us "
 "sembli."
 
 msgid "Client"
@@ -4018,7 +4018,7 @@
 msgstr "Directori de cerca"
 
 msgid "_Room:"
-msgstr "Sa_la:"
+msgstr "_Sala:"
 
 msgid "_Server:"
 msgstr "_Servidor:"
@@ -4484,7 +4484,7 @@
 
 #, c-format
 msgid "%s has buzzed you!"
-msgstr "%s vos ha botzinat!"
+msgstr "%s us ha botzinat!"
 
 #, c-format
 msgid "Buzzing %s..."
@@ -4541,7 +4541,7 @@
 msgstr "ping &lt;jid&gt;:\tfa ping a un usuari/component/servidor."
 
 msgid "buzz: Buzz a user to get their attention"
-msgstr "buzz: fa sonar una botzina a un usuari per tal de que vos pare atenció"
+msgstr "buzz: fa sonar una botzina a un usuari per tal de que us pare atenció"
 
 #. *< type
 #. *< ui_requirement
@@ -4696,7 +4696,7 @@
 "This information is visible to all contacts on your contact list, so choose "
 "something appropriate."
 msgstr ""
-"Esta informació la poden vore tots els contactes de la vostra llista "
+"Esta informació la poden veure tots els contactes de la vostra llista "
 "d'amics, escolliu quelcom apropiat."
 
 msgid "Set Nickname..."
@@ -4978,7 +4978,7 @@
 
 #, c-format
 msgid "%s has nudged you!"
-msgstr "%s vos ha donat un cop de colze!"
+msgstr "%s us ha donat un cop de colze!"
 
 #, c-format
 msgid "Nudging %s..."
@@ -4994,7 +4994,7 @@
 msgstr "Establiu el vostre nom amistós."
 
 msgid "This is the name that other MSN buddies will see you as."
-msgstr "Este és el nom amb el que els amics de l'MSN vos veuran."
+msgstr "Este és el nom amb el que els amics de l'MSN us veuran."
 
 msgid "Set your home phone number."
 msgstr "Establix el número de telèfon de casa."
@@ -5049,7 +5049,7 @@
 msgstr "Treballant"
 
 msgid "Has you"
-msgstr "Vos té"
+msgstr "Us té"
 
 msgid "Home Phone Number"
 msgstr "Número de telèfon de casa"
@@ -5306,7 +5306,7 @@
 msgstr "Mostra emoticones personalitzades"
 
 msgid "nudge: nudge a user to get their attention"
-msgstr "nudge: doneu un cop de colze a un usuari perquè vos pare atenció"
+msgstr "nudge: doneu un cop de colze a un usuari perquè us pare atenció"
 
 msgid "Windows Live ID authentication:Unable to connect"
 msgstr "Autenticació amb el Windows Live ID: no s'ha pogut connectar"
@@ -5327,7 +5327,7 @@
 
 #, c-format
 msgid "%s just sent you a Nudge!"
-msgstr "%s vos ha donat un cop de colze!"
+msgstr "%s us ha donat un cop de colze!"
 
 #. char *adl = g_strndup(payload, len);
 #, c-format
@@ -5389,16 +5389,16 @@
 "sign in."
 msgstr[0] ""
 "El servidor d'MSN es reiniciarà per raons de manteniment d'ací a %d minut. "
-"Se vos desconnectarà automàticament al cap d'este temps. Finalitzeu "
-"qualsevol conversa en actiu.\n"
-"\n"
-"Després que el manteniment s'haja completat, vos podreu tornar a connectar."
+"Se us desconnectarà automàticament al cap d'este temps. Finalitzeu qualsevol "
+"conversa en actiu.\n"
+"\n"
+"Després que el manteniment s'haja completat, us podreu tornar a connectar."
 msgstr[1] ""
 "El servidor d'MSN es reiniciarà per raons de manteniment d'ací a %d minuts. "
-"Se vos desconnectarà automàticament al cap d'este temps. Finalitzeu "
-"qualsevol conversa en actiu.\n"
-"\n"
-"Després que el manteniment s'haja completat, vos podreu tornar a connectar."
+"Se us desconnectarà automàticament al cap d'este temps. Finalitzeu qualsevol "
+"conversa en actiu.\n"
+"\n"
+"Després que el manteniment s'haja completat, us podreu tornar a connectar."
 
 msgid ""
 "Message was not sent because the system is unavailable. This normally "
@@ -5444,7 +5444,7 @@
 msgstr "S'ha produït un error en analitzar HTTP."
 
 msgid "You have signed on from another location."
-msgstr "Vos heu connectat des d'un altre lloc."
+msgstr "Us heu connectat des d'un altre lloc."
 
 msgid "The MSN servers are temporarily unavailable. Please wait and try again."
 msgstr ""
@@ -5531,11 +5531,11 @@
 
 #, c-format
 msgid "%s has added you to his or her buddy list."
-msgstr "%s vos ha afegit a la seua llista d'amics."
+msgstr "%s us ha afegit a la seua llista d'amics."
 
 #, c-format
 msgid "%s has removed you from his or her buddy list."
-msgstr "%s vos ha suprimit de la seua llista d'amics."
+msgstr "%s us ha suprimit de la seua llista d'amics."
 
 msgid "Delete Buddy from Address Book?"
 msgstr "Voleu suprimir l'amic de la llibreta d'adreces?"
@@ -5767,7 +5767,7 @@
 msgstr "Este nom d'usuari està disponible. Voleu fer-lo servir?"
 
 msgid "ONCE SET, THIS CANNOT BE CHANGED!"
-msgstr "Un cop l'hagueu establert no el podreu canviar!"
+msgstr "Un cop l'hagueu establit no el podreu canviar!"
 
 msgid "MySpaceIM - Please Set a Username"
 msgstr "MySpaceIM - Establiu un nom d'usuari"
@@ -5796,7 +5796,7 @@
 
 #, fuzzy, c-format
 msgid "%s has zapped you!"
-msgstr "%s vos ha afegit [%s]"
+msgstr "%s us ha afegit [%s]"
 
 #, fuzzy, c-format
 msgid "Zapping %s..."
@@ -5809,7 +5809,7 @@
 
 #, fuzzy, c-format
 msgid "%s has whacked you!"
-msgstr "%s vos ha afegit [%s]"
+msgstr "%s us ha afegit [%s]"
 
 #, fuzzy, c-format
 msgid "Whacking %s..."
@@ -5823,7 +5823,7 @@
 
 #, c-format
 msgid "%s has torched you!"
-msgstr "%s vos ha calat foc!"
+msgstr "%s us ha calat foc!"
 
 #, c-format
 msgid "Torching %s..."
@@ -5836,7 +5836,7 @@
 # Sí, sembla que siguem a l'època victoriana... (josep)
 #, c-format
 msgid "%s has smooched you!"
-msgstr "%s vos ha morrejat!"
+msgstr "%s us ha morrejat!"
 
 #, c-format
 msgid "Smooching %s..."
@@ -5848,7 +5848,7 @@
 
 #, c-format
 msgid "%s has hugged you!"
-msgstr "%s vos ha abraçat!"
+msgstr "%s us ha abraçat!"
 
 #, c-format
 msgid "Hugging %s..."
@@ -5860,7 +5860,7 @@
 
 #, c-format
 msgid "%s has slapped you!"
-msgstr "%s vos ha bufetejat!"
+msgstr "%s us ha bufetejat!"
 
 #, c-format
 msgid "Slapping %s..."
@@ -5872,7 +5872,7 @@
 
 #, c-format
 msgid "%s has goosed you!"
-msgstr "%s vos ha pessigat el cul!"
+msgstr "%s us ha pessigat el cul!"
 
 #, c-format
 msgid "Goosing %s..."
@@ -6009,7 +6009,7 @@
 msgstr "La versió del protocol no és compatible"
 
 msgid "The user has blocked you"
-msgstr "L'usuari vos ha blocat"
+msgstr "L'usuari us ha blocat"
 
 msgid ""
 "This evaluation version does not allow more than ten users to log in at one "
@@ -6165,7 +6165,7 @@
 
 msgid "You have been logged out because you logged in at another workstation."
 msgstr ""
-"Se vos ha desconnectat perquè heu entrat a través d'una altra estació de "
+"Se us ha desconnectat perquè heu entrat a través d'una altra estació de "
 "treball."
 
 #, c-format
@@ -6180,7 +6180,7 @@
 "to connect to."
 msgstr ""
 "No s'ha pogut connectar al servidor. Introduïu l'adreça del servidor al qual "
-"vos vulgueu connectar."
+"us vulgueu connectar."
 
 msgid "Error. SSL support is not installed."
 msgstr "Error. No hi ha instal·lades les biblioteques per a SSL."
@@ -6277,15 +6277,15 @@
 msgstr "No s'ha pogut establir una connexió amb l'usuari remot."
 
 msgid "Direct IM established"
-msgstr "S'ha establert una connexió directa de MI"
+msgstr "S'ha establit una connexió directa de MI"
 
 #, c-format
 msgid ""
 "%s tried to send you a %s file, but we only allow files up to %s over Direct "
 "IM.  Try using file transfer instead.\n"
 msgstr ""
-"%s vos ha intentat enviar un fitxer %s, però ara mateix només permetem "
-"enviar fitxers de fins a %s a través de MI directa. Proveu-ho fent servir la "
+"%s us ha intentat enviar un fitxer %s, però ara mateix només permetem enviar "
+"fitxers de fins a %s a través de MI directa. Proveu-ho fent servir la "
 "transferència de fitxers.\n"
 
 # FIXME
@@ -6574,7 +6574,7 @@
 "You may be disconnected shortly.  You may want to use TOC until this is "
 "fixed.  Check %s for updates."
 msgstr ""
-"Se vos pot desconnectar d'ací a poc temps. Si voleu, podeu emprar TOC fins "
+"Se us pot desconnectar d'ací a poc temps. Si voleu, podeu emprar TOC fins "
 "que això es resolgui. Comproveu si hi ha actualitzacions a %s."
 
 # FIXME: hash (josep)
@@ -6584,8 +6584,8 @@
 #, c-format
 msgid "You may be disconnected shortly.  Check %s for updates."
 msgstr ""
-"Se vos pot desconnectar d'ací a poc temps. Comproveu si hi ha "
-"actualitzacions a %s."
+"Se us pot desconnectar d'ací a poc temps. Comproveu si hi ha actualitzacions "
+"a %s."
 
 msgid "Unable to get a valid login hash."
 msgstr "No s'ha pogut obtindre un hash d'entrada vàlid."
@@ -6597,7 +6597,7 @@
 msgstr "No s'ha pogut inicialitzar la connexió"
 
 msgid "Please authorize me so I can add you to my buddy list."
-msgstr "Autoritzeu-me perquè vos puga afegir a la meua llista d'amics."
+msgstr "Autoritzeu-me perquè us puga afegir a la meua llista d'amics."
 
 msgid "Authorization Request Message:"
 msgstr "Missatge de petició d'autorització:"
@@ -6617,7 +6617,7 @@
 "following reason:\n"
 "%s"
 msgstr ""
-"L'usuari %u vos ha denegat la vostra sol·licitud d'afegir-lo a la vostra "
+"L'usuari %u us ha denegat la vostra sol·licitud d'afegir-lo a la vostra "
 "llista d'amics pel següent motiu:\n"
 "%s"
 
@@ -6627,7 +6627,7 @@
 #. Someone has granted you authorization
 #, c-format
 msgid "The user %u has granted your request to add them to your buddy list."
-msgstr "L'usuari %u vos ha permés afegir-lo a la vostra llista d'amics."
+msgstr "L'usuari %u us ha permés afegir-lo a la vostra llista d'amics."
 
 #, c-format
 msgid ""
@@ -6667,7 +6667,7 @@
 
 #, c-format
 msgid "ICQ user %u has sent you a buddy: %s (%s)"
-msgstr "L'usuari %u d'ICQ vos ha enviat un amic: %s (%s)"
+msgstr "L'usuari %u d'ICQ us ha enviat un amic: %s (%s)"
 
 msgid "Do you want to add this buddy to your buddy list?"
 msgstr "Voleu afegir este amic a la vostra llista d'amics?"
@@ -6768,7 +6768,7 @@
 
 #, c-format
 msgid "You have been disconnected from chat room %s."
-msgstr "Se vos ha desconnectat de la conversa %s."
+msgstr "Se us ha desconnectat de la conversa %s."
 
 msgid "Mobile Phone"
 msgstr "Telèfon mòbil"
@@ -6890,7 +6890,7 @@
 "fully connected."
 msgstr ""
 "Probablement heu demanat establir el vostre perfil abans d'acabar amb el "
-"procés de connexió. El vostre perfil seguix sense estar establert; intenteu "
+"procés de connexió. El vostre perfil seguix sense estar establit; intenteu "
 "establir-lo de nou quan el procés de connexió haja finalitzat."
 
 #, c-format
@@ -6971,7 +6971,7 @@
 "The user %s has given you permission to add him or her to your buddy list.  "
 "Do you want to add this user?"
 msgstr ""
-"L'usuari %s vos ha donat permís perquè l'afegiu a la vostra llista d'amics. "
+"L'usuari %s us ha donat permís perquè l'afegiu a la vostra llista d'amics. "
 "Voleu afegir-lo?"
 
 msgid "Authorization Given"
@@ -6980,7 +6980,7 @@
 #. Granted
 #, c-format
 msgid "The user %s has granted your request to add them to your buddy list."
-msgstr "L'usuari %s vos ha permés afegir-lo a la vostra llista d'amics."
+msgstr "L'usuari %s us ha permés afegir-lo a la vostra llista d'amics."
 
 msgid "Authorization Granted"
 msgstr "S'ha concedit l'autorització"
@@ -6992,7 +6992,7 @@
 "following reason:\n"
 "%s"
 msgstr ""
-"L'usuari %s vos ha denegat la petició d'afegir-lo a la vostra llista d'amics "
+"L'usuari %s us ha denegat la petició d'afegir-lo a la vostra llista d'amics "
 "pels motius següents:\n"
 "%s"
 
@@ -7261,7 +7261,7 @@
 msgstr "Número de telèfon"
 
 msgid "Authorize adding"
-msgstr "Autoritzar que vos afegisquen"
+msgstr "Autoritzar que us afegisquen"
 
 msgid "Cellphone Number"
 msgstr "Número de mòbil"
@@ -7369,7 +7369,7 @@
 
 #, c-format
 msgid "Failed removing me from %d's buddy list"
-msgstr "No vos heu pogut suprimir de la llista d'amics de %d"
+msgstr "No us heu pogut suprimir de la llista d'amics de %d"
 
 msgid "No reason given"
 msgstr "No s'ha indicat cap motiu"
@@ -7377,7 +7377,7 @@
 #. only need to get value
 #, c-format
 msgid "You have been added by %s"
-msgstr "%s vos ha afegit"
+msgstr "%s us ha afegit"
 
 msgid "Would you like to add him?"
 msgstr "Voleu afegir-lo?"
@@ -7453,7 +7453,7 @@
 
 #, c-format
 msgid "Qun %u denied from joining"
-msgstr "No se vos ha permés entrar al Qun %u"
+msgstr "No se us ha permés entrar al Qun %u"
 
 msgid "QQ Qun Operation"
 msgstr "Operació Qun QQ"
@@ -7506,8 +7506,7 @@
 
 #, c-format
 msgid "<b>Joining Qun %u is approved by admin %u for %s</b>"
-msgstr ""
-"<b>L'administrador %2$u vos ha permés unir-vos al Qun %1$u per %3$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>"
@@ -7633,7 +7632,6 @@
 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"
 
-#, fuzzy
 msgid "<i>Feel free to join us!</i> :)"
 msgstr "<i>No dubteu a col·laborar amb nosaltres!</i> :)"
 
@@ -8488,8 +8486,8 @@
 "able to join."
 msgstr ""
 "L'autenticació del canal es fa servir per evitar-ne l'accés no autoritzat. "
-"L'autenticació es pot basar en frases clau i signatures. Si s'ha establert "
-"una frase clau, serà necessària per a poder-hi entrar. Si s'han establert "
+"L'autenticació es pot basar en frases clau i signatures. Si s'ha establit "
+"una frase clau, serà necessària per a poder-hi entrar. Si s'han establit "
 "claus públiques del canal, només els usuaris que tinguen les seues claus "
 "públiques llistades al canal hi podran entrar."
 
@@ -8641,15 +8639,15 @@
 
 #, c-format
 msgid "You have been kicked off <I>%s</I> by <I>%s</I> (%s)"
-msgstr "<I>%2$s</I> vos ha fet fora de <I>%1$s</I> (%3$s)"
+msgstr "<I>%2$s</I> us ha fet fora de <I>%1$s</I> (%3$s)"
 
 #, c-format
 msgid "You have been killed by %s (%s)"
-msgstr "%s vos ha matat (%s)"
+msgstr "%s us ha matat (%s)"
 
 #, c-format
 msgid "Killed by %s (%s)"
-msgstr "%s vos ha matat (%s)"
+msgstr "%s us ha matat (%s)"
 
 msgid "Server signoff"
 msgstr "Desconnexió del servidor"
@@ -8832,7 +8830,7 @@
 msgstr "El tipus de la clau pública no està suportat"
 
 msgid "Disconnected by server"
-msgstr "El servidor vos ha desconnectat"
+msgstr "El servidor us ha desconnectat"
 
 msgid "Error during connecting to SILC Server"
 msgstr "S'ha produït un error en connectar al servidor SILC"
@@ -8929,7 +8927,7 @@
 msgstr ""
 "Podeu permetre que altres usuaris vegin informació sobre el vostre estat en "
 "línia, així com informació personal. Empleneu la informació que vulgueu que "
-"altres usuaris puguen vore."
+"altres usuaris puguen veure."
 
 msgid "Message of the Day"
 msgstr "Frase del dia"
@@ -9346,7 +9344,7 @@
 msgstr "El connector per al protocol SIP/SIMPLE"
 
 msgid "Publish status (note: everyone may watch you)"
-msgstr "Publica l'estat (nota: tothom vos pot estar observant)"
+msgstr "Publica l'estat (nota: tothom us pot estar observant)"
 
 msgid "Use UDP"
 msgstr "Utilitza UDP"
@@ -9410,7 +9408,7 @@
 
 #, c-format
 msgid "You missed an IM from %s because it was too big."
-msgstr "Vos heu perdut un missatge instantani de %s perquè era massa gran."
+msgstr "Us heu perdut un missatge instantani de %s perquè era massa gran."
 
 #, c-format
 msgid "You missed an IM from %s because it was sent too fast."
@@ -9475,7 +9473,7 @@
 "You have been connecting and disconnecting too frequently.  Wait ten minutes "
 "and try again.  If you continue to try, you will need to wait even longer."
 msgstr ""
-"Vos heu estat connectant i desconnectant amb massa freqüència. Espereu deu "
+"Us heu estat connectant i desconnectant amb massa freqüència. Espereu deu "
 "minuts i torneu-ho a provar. Si continueu intentant-ho, haureu d'esperar "
 "encara més."
 
@@ -9537,7 +9535,7 @@
 
 #, c-format
 msgid "%s requests you to send them a file"
-msgstr "%s vos demana que li envieu un fitxer"
+msgstr "%s us demana que li envieu un fitxer"
 
 #. *< type
 #. *< ui_requirement
@@ -9555,8 +9553,8 @@
 #, c-format
 msgid "%s has sent you a webcam invite, which is not yet supported."
 msgstr ""
-"%s vos ha enviat una invitació a la seua càmera web, però això encara no "
-"està implementat."
+"%s us ha enviat una invitació a la seua càmera web, però això encara no està "
+"implementat."
 
 msgid "Your Yahoo! message did not get sent."
 msgstr "No s'ha pogut enviar el vostre missatge de Yahoo!"
@@ -9570,15 +9568,14 @@
 "%s has (retroactively) denied your request to add them to your list for the "
 "following reason: %s."
 msgstr ""
-"%s vos ha denegat (retroactivament) la petició d'afegir-lo a la vostra "
-"llista pel següent motiu:\n"
+"%s us ha denegat (retroactivament) la petició d'afegir-lo a la vostra llista "
+"pel següent motiu:\n"
 "%s"
 
 #, c-format
 msgid "%s has (retroactively) denied your request to add them to your list."
 msgstr ""
-"%s vos ha denegat (retroactivament) la petició d'afegir-lo a la vostra "
-"llista."
+"%s us ha denegat (retroactivament) la petició d'afegir-lo a la vostra llista."
 
 msgid "Add buddy rejected"
 msgstr "S'ha rebutjat afegir l'amic"
@@ -9590,7 +9587,7 @@
 "Check %s for updates."
 msgstr ""
 "El servidor Yahoo ha demanat l'ús d'un mètode d'autenticació que no és "
-"reconegut. Probablement no vos podreu connectar al Yahoo. Comproveu si hi ha "
+"reconegut. Probablement no us podreu connectar al Yahoo. Comproveu si hi ha "
 "actualitzacions a %s."
 
 msgid "Failed Yahoo! Authentication"
@@ -9700,7 +9697,7 @@
 msgstr "Quin ID voleu activar?"
 
 msgid "Join whom in chat?"
-msgstr "A qui vos voleu unir al xat?"
+msgstr "A qui us voleu unir al xat?"
 
 msgid "Activate ID..."
 msgstr "Activa l'ID..."
@@ -9804,7 +9801,7 @@
 "If you wish to view this profile, you will need to visit this link in your "
 "web browser:"
 msgstr ""
-"Si voleu vore este perfil, haureu de visitar este enllaç amb el navegador:"
+"Si voleu veure este perfil, haureu de visitar este enllaç amb el navegador:"
 
 msgid "Yahoo! ID"
 msgstr "ID de Yahoo!"
@@ -10087,7 +10084,7 @@
 
 #, c-format
 msgid "%s has requested your attention!"
-msgstr "%s vos ha demanat l'atenció!"
+msgstr "%s us ha demanat l'atenció!"
 
 #. *
 #. * A wrapper for purple_request_action() that uses @c Yes and @c No buttons.
@@ -10411,7 +10408,7 @@
 
 #. This is an easter egg. See the comment on the previous line in the source.
 msgid "you can see the butterflies mating"
-msgstr "podreu vore les papallones aparellant-se"
+msgstr "podreu veure les papallones aparellant-se"
 
 msgid "Proxy Options"
 msgstr "Opcions del servidor intermediari"
@@ -10505,7 +10502,7 @@
 "Introduïu la informació necessària sobre el xat al qual vulgueu entrar.\n"
 
 msgid "_Account:"
-msgstr "_Compte:"
+msgstr "C_ompte:"
 
 msgid "_Block"
 msgstr "_Bloca"
@@ -10561,7 +10558,7 @@
 
 #. join button
 msgid "_Join"
-msgstr "En_tra"
+msgstr "_Entra"
 
 msgid "Auto-Join"
 msgstr "Entra automàticament"
@@ -10608,7 +10605,7 @@
 msgstr "/Amics/_Visualitza el registre de l'usuari..."
 
 msgid "/Buddies/Sh_ow"
-msgstr "/Amics/M_ostra"
+msgstr "/Amics/Mos_tra"
 
 msgid "/Buddies/Show/_Offline Buddies"
 msgstr "/Amics/Mostra/Amics des_connectats"
@@ -10662,7 +10659,7 @@
 msgstr "/Eines/_Connectors"
 
 msgid "/Tools/Pr_eferences"
-msgstr "/Eines/Preferè_ncies"
+msgstr "/Eines/Pre_ferències"
 
 msgid "/Tools/Pr_ivacy"
 msgstr "/Eines/_Privadesa"
@@ -10671,7 +10668,7 @@
 msgstr "/Eines/Em_oticona"
 
 msgid "/Tools/_File Transfers"
-msgstr "/Eines/Transferència de _fitxers"
+msgstr "/Eines/_Transferència de fitxers"
 
 msgid "/Tools/R_oom List"
 msgstr "/Eines/_Llista de sales"
@@ -10812,9 +10809,9 @@
 msgid_plural ""
 "%d accounts were disabled because you signed on from another location:"
 msgstr[0] ""
-"S'ha inhabilitat %d compte perquè vos heu connectat des d'un altre lloc:"
+"S'ha inhabilitat %d compte perquè us heu connectat des d'un altre lloc:"
 msgstr[1] ""
-"S'han inhabilitat %d comptes perquè vos heu connectat des d'un altre lloc:"
+"S'han inhabilitat %d comptes perquè us heu connectat des d'un altre lloc:"
 
 msgid "<b>Username:</b>"
 msgstr "<b>Nom d'usuari:</b>"
@@ -10890,13 +10887,13 @@
 "la llista d'amics.\n"
 
 msgid "A_lias:"
-msgstr "À_lies:"
+msgstr "Àl_ies:"
 
 msgid "Auto_join when account becomes online."
-msgstr "Entra _automàticament quant el compte estiga connectat."
+msgstr "_Entra automàticament quant el compte estiga connectat."
 
 msgid "_Remain in chat after window is closed."
-msgstr "_Continua al xat quan la finestra es tanque."
+msgstr "Co_ntinua al xat quan la finestra es tanque."
 
 msgid "Please enter the name of the group to be added."
 msgstr "Introduïu el nom del grup que vulgueu afegir."
@@ -11340,7 +11337,7 @@
 msgstr "Català"
 
 msgid "Valencian-Catalan"
-msgstr "Valencià-català"
+msgstr "Valencià (català meridional)"
 
 msgid "Czech"
 msgstr "Txec"
@@ -11560,7 +11557,7 @@
 "(versió 2 o posterior). Hi ha una còpia de la GPL dins del fitxer «COPYING» "
 "que es distribuix amb el %s. Els drets d'autor del %s pertanyen als seus "
 "col·laboradors. El fitxer «COPYRIGHT» conté una llista completa de tots els "
-"contribuïdors. No vos proporcionem cap mena de garantia amb este programa."
+"contribuïdors. No us proporcionem cap mena de garantia amb este programa."
 "<BR><BR>"
 
 #, c-format
@@ -11601,7 +11598,7 @@
 "Please enter the username or alias of the person whose info you would like "
 "to view."
 msgstr ""
-"Introduïu el nom d'usuari o àlies de la persona de la qual vulgueu vore la "
+"Introduïu el nom d'usuari o àlies de la persona de la qual vulgueu veure la "
 "informació."
 
 msgid "View User Log"
@@ -11780,7 +11777,7 @@
 msgstr "Temps restant:"
 
 msgid "Close this window when all transfers _finish"
-msgstr "Tanca esta finestra quan totes les transferències hagen _finalitzat"
+msgstr "Tanca esta _finestra quan totes les transferències hagen finalitzat"
 
 msgid "C_lear finished transfers"
 msgstr "_Neteja les transferències acabades"
@@ -12308,7 +12305,7 @@
 msgstr "<b>Nom del fitxer:</b>"
 
 msgid "Configure Pl_ugin"
-msgstr "Config_ura el connector"
+msgstr "_Configura el connector"
 
 msgid "<b>Plugin Details</b>"
 msgstr "<b>Detalls del connector</b>"
@@ -12322,46 +12319,46 @@
 msgstr "Avisa dels Whom"
 
 msgid "_Buddy name:"
-msgstr "Nom de l'_amic:"
+msgstr "_Nom de l'amic:"
 
 msgid "Si_gns on"
-msgstr "Es _connecte"
+msgstr "Es conn_ecti"
 
 msgid "Signs o_ff"
-msgstr "Es _desconnecte"
+msgstr "Es de_sconnecti"
 
 msgid "Goes a_way"
 msgstr "Passe a _absent"
 
 msgid "Ret_urns from away"
-msgstr "To_rni a estar present"
+msgstr "_Torne a estar present"
 
 msgid "Becomes _idle"
 msgstr "Passe a _inactiu"
 
 msgid "Is no longer i_dle"
-msgstr "Ja no estiga i_nactiu"
+msgstr "_Ja no estiga inactiu"
 
 msgid "Starts _typing"
-msgstr "Comence a _escriure"
+msgstr "Comence a esc_riure"
 
 msgid "P_auses while typing"
-msgstr "S'_ature mentre tecleja"
+msgstr "S'at_uri mentre tecleja"
 
 msgid "Stops t_yping"
-msgstr "Pare d'e_scriure"
+msgstr "_Pare d'escriure"
 
 msgid "Sends a _message"
 msgstr "Envie un _missatge"
 
 msgid "Ope_n an IM window"
-msgstr "Obri u_na finestra de MI"
+msgstr "Obri una _finestra de MI"
 
 msgid "_Pop up a notification"
-msgstr "Mostra una _notificació emergent"
+msgstr "Mostra una notificació emer_gent"
 
 msgid "Send a _message"
-msgstr "Envia un _missatge"
+msgstr "En_via un missatge"
 
 msgid "E_xecute a command"
 msgstr "E_xecuta una orde"
@@ -12369,17 +12366,21 @@
 msgid "P_lay a sound"
 msgstr "Reproduei_x un so"
 
+# Sense accelerador expressament (josep)
 msgid "Brows_e..."
-msgstr "Nav_ega..."
-
+msgstr "Navega..."
+
+# Sense accelerador expressament (josep)
 msgid "Br_owse..."
-msgstr "Na_vega..."
-
+msgstr "Navega..."
+
+# Sense accelerador expressament (josep)
 msgid "Pre_view"
-msgstr "Pre_visualitza"
-
+msgstr "Previsualitza"
+
+# Sense accelerador expressament (josep)
 msgid "P_ounce only when my status is not Available"
-msgstr "Avisa n_omés quan el meu estat no siga disponible"
+msgstr "Avisa només quan el meu estat no estiga disponible"
 
 msgid "_Recurring"
 msgstr "_Recurrent"
@@ -12413,7 +12414,7 @@
 msgstr "Icona d'estat"
 
 msgid "_Show system tray icon:"
-msgstr "Mostra la icona d'estat:"
+msgstr "_Mostra la icona d'estat:"
 
 msgid "On unread messages"
 msgstr "Si hi ha missatges sense llegir"
@@ -12433,10 +12434,10 @@
 msgstr "Pestanyes"
 
 msgid "Show IMs and chats in _tabbed windows"
-msgstr "Mostra MI i xats en finestres amb _pestanyes"
+msgstr "Mostra MI i _xats en finestres amb pestanyes"
 
 msgid "Show close b_utton on tabs"
-msgstr "Mosta el b_otó de tancar a les pestanyes"
+msgstr "Mosta el _botó de tancar a les pestanyes"
 
 msgid "_Placement:"
 msgstr "_Posicionament:"
@@ -12460,10 +12461,10 @@
 msgstr "Vertical dret"
 
 msgid "N_ew conversations:"
-msgstr "Converses noves:"
+msgstr "Converses _noves:"
 
 msgid "Show _formatting on incoming messages"
-msgstr "Mostra el format dels missatges entrants"
+msgstr "Mostra el _format dels missatges entrants"
 
 msgid "Close IMs immediately when the tab is closed"
 msgstr "Tanca la missatgeria quan es tanque la pestanya"
@@ -12478,10 +12479,10 @@
 msgstr "_Notifica als amics quan els escriga"
 
 msgid "Highlight _misspelled words"
-msgstr "Ressalta les paraules _mal escrites"
+msgstr "_Ressalta les paraules mal escrites"
 
 msgid "Use smooth-scrolling"
-msgstr "Utilitza el desplaçament suau"
+msgstr "Empra el desplaçament suau"
 
 msgid "F_lash window when IMs are received"
 msgstr "_Fes que la finestra faci un flaix quan hi arriben missatges"
@@ -12496,13 +12497,13 @@
 msgstr "Tipus de lletra"
 
 msgid "Use document font from _theme"
-msgstr "Empra el tipus de lletra del document del _tema"
+msgstr "_Empra el tipus de lletra del document del tema"
 
 msgid "Use font from _theme"
 msgstr "Empra el tipus de lletra del _tema"
 
 msgid "Conversation _font:"
-msgstr "_Tipus de lletra de la conversa:"
+msgstr "Tipus de _lletra de la conversa:"
 
 msgid "Default Formatting"
 msgstr "Format per defecte"
@@ -12512,7 +12513,7 @@
 "that support formatting."
 msgstr ""
 "Així és com els missatges de text eixints apareixeran quan feu servir "
-"protocols que implementen el text formatat."
+"protocols que permeten el text formatat."
 
 msgid "Cannot start proxy configuration program."
 msgstr ""
@@ -12531,7 +12532,7 @@
 msgstr "Detecta l'_adreça IP automàticament"
 
 msgid "Public _IP:"
-msgstr "_IP pública:"
+msgstr "IP _pública:"
 
 msgid "Ports"
 msgstr "Ports"
@@ -12540,7 +12541,7 @@
 msgstr "_Habilita la desviació automàtica de ports de l'encaminador"
 
 msgid "_Manually specify range of ports to listen on"
-msgstr "Especifica _manualment el rang de ports on escoltar"
+msgstr "_Especifica manualment el rang de ports on escoltar"
 
 msgid "_Start port:"
 msgstr "Port _inicial:"
@@ -12647,13 +12648,13 @@
 msgstr "_Format del registre:"
 
 msgid "Log all _instant messages"
-msgstr "_Registra tots els missatges instantanis"
+msgstr "Registra tots els _missatges instantanis"
 
 msgid "Log all c_hats"
 msgstr "Registra tots els _xats"
 
 msgid "Log all _status changes to system log"
-msgstr "Regi_stra tots els canvis d'estat al registre del sistema"
+msgstr "Registra tots els _canvis d'estat al registre del sistema"
 
 msgid "Sound Selection"
 msgstr "Selecció de sons"
@@ -12700,10 +12701,10 @@
 "(%s per al nom de fitxer)"
 
 msgid "M_ute sounds"
-msgstr "In_habilita els sons"
+msgstr "_Inhabilita els sons"
 
 msgid "Sounds when conversation has _focus"
-msgstr "Sons quan la conversa tinga el _focus"
+msgstr "_Sons quan la conversa tinga el focus"
 
 msgid "_Enable sounds:"
 msgstr "_Habilita els sons:"
@@ -12715,13 +12716,13 @@
 msgstr "Reproduix"
 
 msgid "_Browse..."
-msgstr "Nav_ega..."
+msgstr "_Navega..."
 
 msgid "_Reset"
 msgstr "_Reinicia"
 
 msgid "_Report idle time:"
-msgstr "Informa del _temps d'inactivitat:"
+msgstr "_Informa del temps d'inactivitat:"
 
 msgid "Based on keyboard or mouse use"
 msgstr "Basat en l'ús del teclat o el ratolí"
@@ -12737,23 +12738,23 @@
 msgstr "Auto-absència"
 
 msgid "Change status when _idle"
-msgstr "Canvia l'estat quan estiga _inactiu"
+msgstr "_Canvia l'estat quan estiga inactiu"
 
 msgid "_Minutes before becoming idle:"
 msgstr "_Minuts abans de passar a inactiu:"
 
 msgid "Change _status to:"
-msgstr "Canvia l'e_stat a:"
+msgstr "Canvia l'_estat a:"
 
 #. Signon status stuff
 msgid "Status at Startup"
 msgstr "L'estat en iniciar"
 
 msgid "Use status from last _exit at startup"
-msgstr "_En iniciar, empra el mateix estat que en eixir per darrer cop"
+msgstr "En i_niciar, empra el mateix estat que en eixir per darrer cop"
 
 msgid "Status to a_pply at startup:"
-msgstr "Es_tatus a utilitzar en iniciar:"
+msgstr "Estat a _utilitzar en iniciar:"
 
 msgid "Interface"
 msgstr "Interfície"
@@ -12793,27 +12794,27 @@
 
 #. Remove All button
 msgid "Remove Al_l"
-msgstr "Suprimix-ho _tot"
+msgstr "S_uprimix-ho tot"
 
 msgid "Permit User"
 msgstr "Permet l'usuari"
 
 msgid "Type a user you permit to contact you."
-msgstr "Escriviu quin usuari permeteu que vos contacti."
+msgstr "Escriviu quin usuari permeteu que us contacti."
 
 msgid "Please enter the name of the user you wish to be able to contact you."
-msgstr "Introduïu el nom de l'usuari que vulgueu que vos puga contactar."
+msgstr "Introduïu el nom de l'usuari que vulgueu que us puga contactar."
 
 msgid "_Permit"
 msgstr "_Permet"
 
 #, c-format
 msgid "Allow %s to contact you?"
-msgstr "Voleu permetre que %s vos puga contactar?"
+msgstr "Voleu permetre que %s us puga contactar?"
 
 #, c-format
 msgid "Are you sure you wish to allow %s to contact you?"
-msgstr "Esteu segur que voleu permetre que %s vos puga contactar?"
+msgstr "Esteu segur que voleu permetre que %s us puga contactar?"
 
 msgid "Block User"
 msgstr "Bloca un usuari"
@@ -12852,11 +12853,11 @@
 
 #. list button
 msgid "_Get List"
-msgstr "_Aconseguix la llista"
+msgstr "Aconseguix la _llista"
 
 #. add button
 msgid "_Add Chat"
-msgstr "_Afig el xat"
+msgstr "Afig el _xat"
 
 # He omès "saved", que sembla que no hi cal (josep)
 msgid "Are you sure you want to delete the selected saved statuses?"
@@ -13068,7 +13069,7 @@
 msgstr "Tanca les _pestanyes"
 
 msgid "_Get Info"
-msgstr "_Aconseguix informació"
+msgstr "Aconseguix _informació"
 
 msgid "_Invite"
 msgstr "Conv_ida"
@@ -13196,14 +13197,14 @@
 msgid ""
 "Allows for controlling the values associated with different buddy states."
 msgstr ""
-"Vos permet canviar els valors associats als diferents estats dels amics."
+"Us permet canviar els valors associats als diferents estats dels amics."
 
 #. *< description
 msgid ""
 "Allows for changing the point values of idle/away/offline states for buddies "
 "in contact priority computations."
 msgstr ""
-"Vos permet canviar els valors dels estats inactiu, absent i desconnectat pel "
+"Us permet canviar els valors dels estats inactiu, absent i desconnectat pel "
 "càlcul de la prioritat dels amics."
 
 msgid "Conversation Colors"
@@ -13219,7 +13220,7 @@
 msgstr "Missatges ressaltats"
 
 msgid "System Messages"
-msgstr "Missatge del sistema"
+msgstr "Missatges del sistema"
 
 msgid "Sent Messages"
 msgstr "Missatges enviats"
@@ -13342,10 +13343,9 @@
 msgid "New Person"
 msgstr "Nova persona"
 
-# FIXME: seleccioneu un amic?
 #. "Select Buddy" button
 msgid "Select Buddy"
-msgstr "Seleccioneu un amic"
+msgstr "Selecciona"
 
 #. Add the label.
 msgid ""
@@ -13442,7 +13442,7 @@
 #. *  description
 msgid "Test to see that all ui signals are working properly."
 msgstr ""
-"Prova per vore si tots els senyals de la interfície d'usuari funcionen "
+"Prova per veure si tots els senyals de la interfície d'usuari funcionen "
 "correctament."
 
 #, c-format
@@ -13631,7 +13631,7 @@
 #. *  description
 msgid "Provides a variety of ways of notifying you of unread messages."
 msgstr ""
-"Vos proporciona diferents maneres de notificar-vos la presència de missatges "
+"Us proporciona diferents maneres de notificar-vos la presència de missatges "
 "sense llegir."
 
 #. *< type
@@ -13657,7 +13657,7 @@
 "- It sends a message to people on your list immediately when they sign on"
 msgstr ""
 "Este és un connector realment interessant que fa moltes coses:\n"
-"- mostra qui ha escrit el programa quan vos connecteu\n"
+"- mostra qui ha escrit el programa quan us connecteu\n"
 "- escriu a l'inrevés tots els missatges rebuts\n"
 "- envia un missatge a tots els amics immediatament després que es connecten"
 
@@ -13754,19 +13754,19 @@
 msgstr "En brut"
 
 msgid "Lets you send raw input to text-based protocols."
-msgstr "Vos permet enviar dades en brut als protocols en mode text."
+msgstr "Us permet enviar dades en brut als protocols en mode text."
 
 msgid ""
 "Lets you send raw input to text-based protocols (XMPP, MSN, IRC, TOC). Hit "
 "'Enter' in the entry box to send. Watch the debug window."
 msgstr ""
-"Vos permet enviar dades en brut als protocols en mode text (XMPP, MSN, IRC, "
+"Us permet enviar dades en brut als protocols en mode text (XMPP, MSN, IRC, "
 "TOC). Premeu la tecla de retorn del quadre d'entrada per enviar-les. "
 "Observeu la finestra de depuració."
 
 #, c-format
 msgid "You can upgrade to %s %s today."
-msgstr "Podeu actualitzar-vos a %s %s avui."
+msgstr "Podeu actualitzar-vos a %s %s hui."
 
 msgid "New Version Available"
 msgstr "Nova versió disponible"
@@ -13797,7 +13797,7 @@
 "Checks periodically for new releases and notifies the user with the "
 "ChangeLog."
 msgstr ""
-"Comprova periòdicament si hi ha versions noves i vos ho notifica juntament "
+"Comprova periòdicament si hi ha versions noves i us ho notifica juntament "
 "amb el seu registre de canvis."
 
 #. *< major version
@@ -13874,7 +13874,7 @@
 msgid "Replaces text in outgoing messages according to user-defined rules."
 msgstr ""
 "Substituix el text dels missatges que s'envien emprant les regles que hàgeu "
-"establert."
+"establit."
 
 # FIXME (josep)
 #. *< type
--- a/po/fr.po	Fri Jan 02 22:23:58 2009 +0000
+++ b/po/fr.po	Fri Jan 02 22:28:34 2009 +0000
@@ -4964,7 +4964,7 @@
 msgstr "Erreur MSN : %s\n"
 
 msgid "Other Contacts"
-msgstr "AUtres contacts"
+msgstr "Autres contacts"
 
 msgid "Non-IM Contacts"
 msgstr "Contacts non instantanés"