changeset 30280:ab0c6287e9a5

propagate from branch 'im.pidgin.pidgin' (head 7f7ef3aa89b9c72fb9cb9d2eb1916d051a108d17) to branch 'im.pidgin.pidgin.mxit' (head 695a97f9710d782a912735770e97840290fff5d9)
author andrew.victor@mxit.com
date Wed, 02 Jun 2010 06:27:24 +0000
parents 29e714e980b2 (current diff) ee1af22b7242 (diff)
children 594f99ea88e6
files
diffstat 18 files changed, 498 insertions(+), 350 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog	Fri May 28 21:10:09 2010 +0000
+++ b/ChangeLog	Wed Jun 02 06:27:24 2010 +0000
@@ -1,8 +1,11 @@
 Pidgin and Finch: The Pimpin' Penguin IM Clients That're Good for the Soul
 
-version 2.7.1 (??/??/????):
+version 2.7.1 (??/??/2010):
 	General:
 	* Build fixes on OpenSolaris.  (Brian Lu)
+	* Add configure option --enable-trayicon-compat which installs tray
+	  icons into directories that are compatible with older versions of
+	  hicolor-icon-theme (0.9).
 
 	Pidgin:
 	* Restore the tray icon's blinking functionality.
@@ -24,6 +27,22 @@
 	* Allow connecting to servers that advertise EXTERNAL (broken in
 	  2.7.0)
 
+	MXit:
+	* Replace the MXit-specific mood management with the new standard Moods
+	  API.
+	* Add the standard MXit emoticons.
+	* Improve the handling of users being kicked from MultiMX rooms.
+	* MXit doesn't allow you to see your buddy's Email Address or Title,
+	  so remove those two fields from the "Buddy Information" page.
+	* Show buddy's Registration Country in their profile.
+	* Increment protocol version to v6.0
+	* If an invite you sent was rejected with a reason, display that
+	  message in the buddy tooltip.
+	* CAPTCHA value is a required field during account activation.
+	  (Resolves issue on Maemo)
+	* When your avatar image is changed, don't forget the user's profile
+	  information.
+
 	Windows-Specific Changes:
 	* Fix a regression introduced in 2.7.0 that caused Window Flashing not
 	  to work.
--- a/configure.ac	Fri May 28 21:10:09 2010 +0000
+++ b/configure.ac	Wed Jun 02 06:27:24 2010 +0000
@@ -322,6 +322,8 @@
 	fi
 fi #enable_i18n
 
+AM_CONDITIONAL(INSTALL_I18N, test "x$enable_i18n" = "xyes")
+
 dnl #######################################################################
 dnl # Check for GLib 2.12 (required)
 dnl #######################################################################
@@ -1342,7 +1344,7 @@
 fi
 
 if test "x$SUNCC" = "xyes"; then
-        CFLAGS="-features=extensions" 
+        CFLAGS="$CFLAGS -features=extensions" 
 fi
 AC_SUBST(CFLAGS)
 
@@ -2464,7 +2466,12 @@
 
 AM_CONDITIONAL(INSTALL_PIXMAPS, test "x$enable_pixmaps" = "xyes")
 
-AM_CONDITIONAL(INSTALL_I18N, test "x$enable_i18n" = "xyes")
+dnl #######################################################################
+dnl # Tweak status tray icon installation directory
+dnl #######################################################################
+AC_ARG_ENABLE(trayicon-compat, AC_HELP_STRING([--enable-trayicon-compat], [install tray icons in location compatible with older releases of hicolor-icon-theme]), enable_traycompat="$enableval", enable_traycompat=no)
+
+AM_CONDITIONAL(ENABLE_TRAYCOMPAT, test "x$enable_traycompat" = "xyes")
 
 dnl #######################################################################
 dnl # Check for Doxygen and dot (part of GraphViz)
@@ -2635,6 +2642,7 @@
 echo Use external libzephyr........ : $zephyr
 echo Use external libgadu.......... : $gadu_libs
 echo Install pixmaps............... : $enable_pixmaps
+echo Old tray icon compatibility... : $enable_traycompat
 echo Install translations.......... : $enable_i18n
 echo Has you....................... : yes
 echo
@@ -2662,7 +2670,7 @@
 fi
 if test "x$enable_i18n" = "xno" ; then
 	echo
-	echo Warning: You have disabled the building and intallation of translation
+	echo Warning: You have disabled the building and installation of translation
 	echo data.  This will prevent building pidgin.desktop and the GConf schemas.
 	echo Be sure you know what you are doing.
 fi
--- a/libpurple/dbus-analyze-functions.py	Fri May 28 21:10:09 2010 +0000
+++ b/libpurple/dbus-analyze-functions.py	Wed Jun 02 06:27:24 2010 +0000
@@ -170,7 +170,7 @@
                 return self.inputpurplestructure(type, name)
 
             # special case for *_get_data functions, be careful here...
-            elif (type[0] == "size_t") and (name == "len"):
+            elif (type[0] == "size_t" or type[0] == "gsize") and name == "len":
                 return self.inputgetdata(type, name)
             
             # unknown pointers are always replaced with NULL
--- a/libpurple/protocols/jabber/auth.c	Fri May 28 21:10:09 2010 +0000
+++ b/libpurple/protocols/jabber/auth.c	Wed Jun 02 06:27:24 2010 +0000
@@ -158,7 +158,7 @@
 
 		if (mech_name && *mech_name)
 			mechanisms = g_slist_prepend(mechanisms, mech_name);
-		else if (mech_name)
+		else
 			g_free(mech_name);
 
 	}
--- a/libpurple/protocols/jabber/chat.h	Fri May 28 21:10:09 2010 +0000
+++ b/libpurple/protocols/jabber/chat.h	Wed Jun 02 06:27:24 2010 +0000
@@ -102,8 +102,6 @@
 gboolean jabber_chat_role_user(JabberChat *chat, const char *who,
 		const char *role, const char *why);
 gboolean jabber_chat_role_list(JabberChat *chat, const char *role);
-gboolean jabber_chat_kick_user(JabberChat *chat, const char *who,
-		const char *why);
 
 PurpleRoomlist *jabber_roomlist_get_list(PurpleConnection *gc);
 void jabber_roomlist_cancel(PurpleRoomlist *list);
--- a/libpurple/protocols/msn/directconn.c	Fri May 28 21:10:09 2010 +0000
+++ b/libpurple/protocols/msn/directconn.c	Wed Jun 02 06:27:24 2010 +0000
@@ -314,13 +314,13 @@
 }
 
 void
-msn_dc_fallback_to_p2p(MsnDirectConn *dc)
+msn_dc_fallback_to_sb(MsnDirectConn *dc)
 {
 	MsnSlpLink *slplink;
 	MsnSlpCall *slpcall;
 	GQueue *queue = NULL;
 
-	purple_debug_info("msn", "msn_dc_try_fallback_to_p2p %p\n", dc);
+	purple_debug_info("msn", "msn_dc_fallback_to_sb %p\n", dc);
 
 	g_return_if_fail(dc != NULL);
 
@@ -677,7 +677,7 @@
 		purple_debug_warning("msn", "msn_dc_recv_cb: recv error\n");
 
 		if(dc->state != DC_STATE_ESTABLISHED)
-			msn_dc_fallback_to_p2p(dc);
+			msn_dc_fallback_to_sb(dc);
 		else
 			msn_dc_destroy(dc);
 		return;
@@ -687,7 +687,7 @@
 		purple_debug_info("msn", "msn_dc_recv_cb: recv EOF\n");
 
 		if(dc->state != DC_STATE_ESTABLISHED)
-			msn_dc_fallback_to_p2p(dc);
+			msn_dc_fallback_to_sb(dc);
 		else
 			msn_dc_destroy(dc);
 		return;
@@ -720,8 +720,8 @@
 			return;
 
 		case DC_PROCESS_FALLBACK:
-			purple_debug_warning("msn", "msn_dc_recv_cb: packet processing error, fall back to p2p\n");
-			msn_dc_fallback_to_p2p(dc);
+			purple_debug_warning("msn", "msn_dc_recv_cb: packet processing error, fall back to SB\n");
+			msn_dc_fallback_to_sb(dc);
 			return;
 
 		}
@@ -822,7 +822,7 @@
 	}
 
 	dc->connect_timeout_handle = 0;
-	msn_dc_fallback_to_p2p(dc);
+	msn_dc_fallback_to_sb(dc);
 
 	return FALSE;
 }
@@ -870,7 +870,7 @@
 		} else {
 			/*
 			 * Connection failed
-			 * Fall back to P2P transfer
+			 * Fall back to SB transfer
 			 */
 			msn_dc_outgoing_connection_timeout_cb(dc);
 		}
@@ -878,9 +878,9 @@
 	} else {
 		/*
 		 * Both internal and external connection attempts failed.
-		 * Fall back to p2p transfer.
+		 * Fall back to SB transfer.
 		 */
-		msn_dc_fallback_to_p2p(dc);
+		msn_dc_fallback_to_sb(dc);
 	}
 
 	return FALSE;
--- a/libpurple/protocols/msn/directconn.h	Fri May 28 21:10:09 2010 +0000
+++ b/libpurple/protocols/msn/directconn.h	Wed Jun 02 06:27:24 2010 +0000
@@ -145,7 +145,7 @@
  * create a listening socket.
  */
 void
-msn_dc_fallback_to_p2p(MsnDirectConn *dc);
+msn_dc_fallback_to_sb(MsnDirectConn *dc);
 
 /*
  * Increases the slpcall counter in DC. The direct connection remains open
--- a/libpurple/protocols/msn/slp.c	Fri May 28 21:10:09 2010 +0000
+++ b/libpurple/protocols/msn/slp.c	Wed Jun 02 06:27:24 2010 +0000
@@ -360,7 +360,7 @@
 
 			} else {
 				/* We weren't able to create a listener either. Use SB. */
-				msn_dc_fallback_to_p2p(dc);
+				msn_dc_fallback_to_sb(dc);
 			}
 
 		} else {
@@ -928,6 +928,25 @@
 	}
 }
 
+static void
+got_error(MsnSlpCall *slpcall,
+          const char *error, const char *type, const char *content)
+{
+	/* It's not valid. Kill this off. */
+	purple_debug_error("msn", "Received non-OK result: %s\n",
+	                   error ? error : "Unknown");
+
+	if (type && !strcmp(type, "application/x-msnmsgr-transreqbody")) {
+		MsnDirectConn *dc = slpcall->slplink->dc;
+		if (dc) {
+			msn_dc_fallback_to_sb(dc);
+			return;
+		}
+	}
+
+	slpcall->wasted = TRUE;
+}
+
 MsnSlpCall *
 msn_slp_sip_recv(MsnSlpLink *slplink, const char *body)
 {
@@ -1004,38 +1023,31 @@
 
 		g_return_val_if_fail(slpcall != NULL, NULL);
 
+		content_type = get_token(body, "Content-Type: ", "\r\n");
+
+		content = get_token(body, "\r\n\r\n", NULL);
+
 		if (strncmp(status, "200 OK", 6))
 		{
-			/* It's not valid. Kill this off. */
-			char temp[32];
+			char *error = NULL;
 			const char *c;
 
 			/* Eww */
 			if ((c = strchr(status, '\r')) || (c = strchr(status, '\n')) ||
 				(c = strchr(status, '\0')))
 			{
-				size_t offset =  c - status;
-				if (offset >= sizeof(temp))
-					offset = sizeof(temp) - 1;
-
-				strncpy(temp, status, offset);
-				temp[offset] = '\0';
+				size_t len = c - status;
+				error = g_strndup(status, len);
 			}
 
-			purple_debug_error("msn", "Received non-OK result: %s\n", temp);
+			got_error(slpcall, error, content_type, content);
+			g_free(error);
 
-			slpcall->wasted = TRUE;
-
-			/* msn_slpcall_destroy(slpcall); */
-			return slpcall;
+		} else {
+			/* Everything's just dandy */
+			got_ok(slpcall, content_type, content);
 		}
 
-		content_type = get_token(body, "Content-Type: ", "\r\n");
-
-		content = get_token(body, "\r\n\r\n", NULL);
-
-		got_ok(slpcall, content_type, content);
-
 		g_free(content_type);
 		g_free(content);
 	}
--- a/libpurple/protocols/msn/slplink.c	Fri May 28 21:10:09 2010 +0000
+++ b/libpurple/protocols/msn/slplink.c	Wed Jun 02 06:27:24 2010 +0000
@@ -91,8 +91,10 @@
 
 	g_return_if_fail(slplink != NULL);
 
-	if (slplink->swboard != NULL)
+	if (slplink->swboard != NULL) {
 		slplink->swboard->slplinks = g_list_remove(slplink->swboard->slplinks, slplink);
+		slplink->swboard = NULL;
+	}
 
 	if (slplink->refs > 1) {
 		slplink->refs--;
--- a/libpurple/protocols/qq/qq_base.c	Fri May 28 21:10:09 2010 +0000
+++ b/libpurple/protocols/qq/qq_base.c	Wed Jun 02 06:27:24 2010 +0000
@@ -588,9 +588,14 @@
 		inet_ntoa(qd->my_ip), qd->my_port);
 
 	tm_local = localtime(&server_time);
-	purple_debug_info("QQ", "Server time: %d-%d-%d, %d:%d:%d\n",
-			(1900 +tm_local->tm_year), (1 + tm_local->tm_mon), tm_local->tm_mday,
-			tm_local->tm_hour, tm_local->tm_min, tm_local->tm_sec);
+
+	if (tm_local != NULL)
+		purple_debug_info("QQ", "Server time: %d-%d-%d, %d:%d:%d\n",
+				(1900 +tm_local->tm_year), (1 + tm_local->tm_mon), tm_local->tm_mday,
+				tm_local->tm_hour, tm_local->tm_min, tm_local->tm_sec);
+	else
+		purple_debug_error("QQ", "Server time could not be parsed\n");
+
 	return TRUE;
 }
 
--- a/pidgin/gtkblist.c	Fri May 28 21:10:09 2010 +0000
+++ b/pidgin/gtkblist.c	Wed Jun 02 06:27:24 2010 +0000
@@ -3455,7 +3455,7 @@
 				PurpleAccount *account = (PurpleAccount *) accounts->data;
 				PurpleConnection *gc = purple_account_get_connection(account);
 
-				if (gc->flags & PURPLE_CONNECTION_SUPPORT_MOODS) {
+				if (gc && gc->flags & PURPLE_CONNECTION_SUPPORT_MOODS) {
 					update_status_with_mood(account, mood, NULL);
 				}
 			}
--- a/pidgin/pixmaps/Makefile.am	Fri May 28 21:10:09 2010 +0000
+++ b/pidgin/pixmaps/Makefile.am	Wed Jun 02 06:27:24 2010 +0000
@@ -587,11 +587,31 @@
 		$(TOOLBAR_32) \
 		$(TOOLBAR_48) \
 		$(TRAY_THEME) \
+		$(TRAY_16_ICO)
+if ENABLE_TRAYCOMPAT
+# Install in a location compatible with hicolor-icon-theme 0.9
+
+pidginpixmaptray16dir = $(datadir)/pixmaps/pidgin/tray/hicolor/16x16/actions
+dist_pidginpixmaptray16_DATA = $(TRAY_16)
+
+pidginpixmaptray22dir = $(datadir)/pixmaps/pidgin/tray/hicolor/22x22/actions
+dist_pidginpixmaptray22_DATA = $(TRAY_22)
+
+pidginpixmaptray32dir = $(datadir)/pixmaps/pidgin/tray/hicolor/32x32/actions
+dist_pidginpixmaptray32_DATA = $(TRAY_32)
+
+pidginpixmaptray48dir = $(datadir)/pixmaps/pidgin/tray/hicolor/48x48/actions
+dist_pidginpixmaptray48_DATA = $(TRAY_48)
+
+else
+# Install in the "correct" locations
+
+nobase_dist_pidginpixmap_DATA += \
 		$(TRAY_16) \
-		$(TRAY_16_ICO) \
 		$(TRAY_22) \
 		$(TRAY_32) \
 		$(TRAY_48)
+endif
 
 nobase_dist_pidginicons_DATA = \
 		$(ICONS_16) \
--- a/pidgin/pixmaps/Makefile.mingw	Fri May 28 21:10:09 2010 +0000
+++ b/pidgin/pixmaps/Makefile.mingw	Wed Jun 02 06:27:24 2010 +0000
@@ -42,7 +42,10 @@
 	fi;
 	rm -f ./Makefile.am.mingw
 
-./Makefile.am.mingw: ./Makefile.am
-	sed -e 's/^if\ INSTALL_PIXMAPS/ifeq (\$$(INSTALL_PIXMAPS), 1)/' ./Makefile.am > $@
+./Makefile.am.mingw: ./Makefile.am ./Makefile.mingw
+	sed \
+		-e 's/^if\ INSTALL_PIXMAPS/ifeq (\$$(INSTALL_PIXMAPS), 1)/' \
+		-e 's/^if\ ENABLE_TRAYCOMPAT/ifeq (\$$(ENABLE_TRAYCOMPAT), 1)/' \
+		$< > $@
         include $@
 
--- a/pidgin/pixmaps/tray/hicolor/index.theme	Fri May 28 21:10:09 2010 +0000
+++ b/pidgin/pixmaps/tray/hicolor/index.theme	Wed Jun 02 06:27:24 2010 +0000
@@ -2,28 +2,55 @@
 Name=Pidgin
 Comment=Icon theme for Pidgin tray icons
 Hidden=True
-Directories=16x16/status,22x22/status,32x32/status,48x48/status,scalable/status
+Directories=16x16/actions,16x16/status,22x22/actions,22x22/status,32x32/actions,32x32/status,48x48/actions,48x48/status,scalable/actions,scalable/status
+
+[16x16/actions]
+Size=16
+Context=Actions
+Type=Threshold
 
 [16x16/status]
 Size=16
 Context=Status
 Type=Threshold
 
+[22x22/actions]
+Size=22
+Context=Actions
+Type=Threshold
+
 [22x22/status]
 Size=22
 Context=Status
 Type=Threshold
 
+[32x32/actions]
+Size=32
+Context=Actions
+Type=Threshold
+
 [32x32/status]
 Size=32
 Context=Status
 Type=Threshold
 
+[48x48/actions]
+Size=48
+Context=Actions
+Type=Threshold
+
 [48x48/status]
 Size=48
 Context=Status
 Type=Threshold
 
+[scalable/actions]
+MinSize=1
+Size=128
+MaxSize=256
+Context=Actions
+Type=Scalable
+
 [scalable/status]
 MinSize=1
 Size=128
--- a/pidgin/plugins/gevolution/add_buddy_dialog.c	Fri May 28 21:10:09 2010 +0000
+++ b/pidgin/plugins/gevolution/add_buddy_dialog.c	Wed Jun 02 06:27:24 2010 +0000
@@ -546,19 +546,11 @@
 	gtk_combo_box_set_active(GTK_COMBO_BOX(dialog->addrbooks_combo), 0);
 
 	/* Group box */
-	hbox = gtk_hbox_new(FALSE, 6);
-	gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0);
-	gtk_widget_show(hbox);
-
-	label = gtk_label_new(_("Group:"));
-	gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5);
-	gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0);
-	gtk_widget_show(label);
-
 	dialog->group_combo =
-		pidgin_text_combo_box_entry_new(NULL, gevo_get_groups());
-	gtk_box_pack_start(GTK_BOX(hbox), dialog->group_combo, TRUE, TRUE, 0);
-	gtk_widget_show(dialog->group_combo);
+		pidgin_text_combo_box_entry_new(group, gevo_get_groups());
+	pidgin_add_widget_to_vbox(GTK_BOX(vbox), _("Group:"), NULL,
+							  dialog->group_combo, TRUE, NULL);
+	gtk_widget_show_all(dialog->group_combo);
 
 	/* Cool. Now we only have a little left... */
 
--- a/pidgin/plugins/gevolution/gevolution.c	Fri May 28 21:10:09 2010 +0000
+++ b/pidgin/plugins/gevolution/gevolution.c	Wed Jun 02 06:27:24 2010 +0000
@@ -36,11 +36,20 @@
 
 #include "gevolution.h"
 
+#if 0
+/* These are private headers that we probably should never have been
+ * including. Maybe very early versions of e-d-s required this?
+ *
+ * also, bonobo has gone away as of e-d-s 2.29.1, and this plugin still
+ * seems to work even on e-d-s 1.10.3 without us touching it.
+ * Maybe it's not really working though. I'm sure we'll find out.
+ */
 #include <libedata-book/Evolution-DataServer-Addressbook.h>
 
 #include <libedata-book/e-data-book-factory.h>
 /* TODO: bonobo is going away eventually, we'll need to find an alternative */
 #include <bonobo/bonobo-main.h>
+#endif
 
 #include <glib.h>
 
@@ -227,12 +236,12 @@
 		char *app = g_find_program_in_path("evolution");
 		if (app != NULL)
 		{
-			char *command_line = g_strdup_printf("%s mailto:%s", app, mail);
-			char *quoted = g_shell_quote(command_line);
+			char *quoted = g_shell_quote(mail);
+			char *command_line = g_strdup_printf("%s mailto:%s", app, quoted);
 			g_free(app);
 			g_free(mail);
 
-			g_spawn_command_line_async(quoted, NULL);
+			g_spawn_command_line_async(command_line, NULL);
 			g_free(command_line);
 			g_free(quoted);
 		}
@@ -326,7 +335,9 @@
 static gboolean
 plugin_load(PurplePlugin *plugin)
 {
+#if 0
 	bonobo_activate();
+#endif
 
 	backup_blist_ui_ops = purple_blist_get_ui_ops();
 
@@ -372,7 +383,9 @@
 static void
 plugin_destroy(PurplePlugin *plugin)
 {
+#if 0
 	bonobo_debug_shutdown();
+#endif
 }
 
 static void
@@ -575,14 +588,20 @@
 	 *
 	 * So, in conclusion, this is an evil hack, but it doesn't harm anything
 	 * and it works.
+	 *
+	 * And for some reason it's needed even when we don't init bonobo ourselves
+	 * at all, so the above explanation is suspect. This is required even with
+	 * e-d-s >= 2.29.1 where bonobo is no longer in the picture.
 	 */
 	g_module_make_resident(plugin->handle);
 
+#if 0
 	if (!bonobo_init_full(NULL, NULL, bonobo_activation_orb_get(),
 						  CORBA_OBJECT_NIL, CORBA_OBJECT_NIL))
 	{
 		purple_debug_error("evolution", "Unable to initialize bonobo.\n");
 	}
+#endif
 }
 
 PURPLE_INIT_PLUGIN(gevolution, init_plugin, info)
--- a/pidgin/plugins/gevolution/new_person_dialog.c	Fri May 28 21:10:09 2010 +0000
+++ b/pidgin/plugins/gevolution/new_person_dialog.c	Wed Jun 02 06:27:24 2010 +0000
@@ -293,9 +293,10 @@
 						 G_CALLBACK(username_changed_cb), dialog);
 
 		/* Group */
-		dialog->group_combo = pidgin_text_combo_box_entry_new(NULL,
+		dialog->group_combo = pidgin_text_combo_box_entry_new(group,
 			gevo_get_groups());
 		add_pref_box(sg, vbox, _("Group:"), dialog->group_combo);
+		gtk_widget_show_all(dialog->group_combo);
 
 		/* Separator */
 		sep = gtk_hseparator_new();
--- a/po/ca@valencia.po	Fri May 28 21:10:09 2010 +0000
+++ b/po/ca@valencia.po	Wed Jun 02 06:27:24 2010 +0000
@@ -33,8 +33,8 @@
 msgstr ""
 "Project-Id-Version: Pidgin\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-05-17 23:18-0400\n"
-"PO-Revision-Date: 2010-05-04 23:17+0200\n"
+"POT-Creation-Date: 2010-05-27 09:57-0400\n"
+"PO-Revision-Date: 2010-05-25 21:51+0200\n"
 "Last-Translator: Josep Puigdemont i Casamajó <josep.puigdemont@gmail.com>\n"
 "Language-Team: Catalan <tradgnome@softcatala.net>\n"
 "MIME-Version: 1.0\n"
@@ -322,7 +322,8 @@
 "En suprimir este contacte, també se suprimiran tots els amics que hi haja"
 
 msgid "Removing this group will also remove all the buddies in the group"
-msgstr "En suprimir este grup, també se suprimiran tots els amics que hi haja"
+msgstr ""
+"En suprimir este grup, també se suprimiran tots els amics que hi haja"
 
 #, c-format
 msgid "Are you sure you want to remove %s?"
@@ -581,7 +582,8 @@
 
 msgid "Syntax Error:  You typed the wrong number of arguments to that command."
 msgstr ""
-"Error de sintaxi: heu escrit un nombre d'arguments equivocat per a esta orde."
+"Error de sintaxi: heu escrit un nombre d'arguments equivocat per a esta "
+"orde."
 
 msgid "Your command failed for an unknown reason."
 msgstr "L'orde ha fallat per motius desconeguts."
@@ -641,7 +643,6 @@
 msgid "Conversation"
 msgstr "Conversa"
 
-# FIXME ?
 msgid "Clear Scrollback"
 msgstr "Neteja la finestra"
 
@@ -754,8 +755,8 @@
 "de les diferents classes de missatge en les finestres de conversa.<br>    "
 "&lt;classe&gt;: receive (rep), send (envia), highlight (ressalta), action "
 "(acció), timestamp (marca de temps)<br>    &lt;primer pla/fons&gt;: black "
-"(negre), red (roig), green (verd), blue (blau), white (blanc), gray (gris), "
-"darkgray (gris fosc), magenta, cyan (cian), default (per defecte)"
+"(negre), red (roig), green (verd), blue (blau), white (blanc), gray "
+"(gris), darkgray (gris fosc), magenta, cyan (cian), default (per defecte)"
 "<br><br>EXEMPLE:<br>    msgcolor send cyan default"
 
 msgid "Unable to open file."
@@ -1058,7 +1059,6 @@
 msgid "Edit Buddy Pounce"
 msgstr "Edita l'avís per a l'amic"
 
-# FIXME
 msgid "Pounce Who"
 msgstr "Avisa dels Who"
 
@@ -1385,6 +1385,7 @@
 msgid "Saved Statuses"
 msgstr "Estats alçats"
 
+#. title
 msgid "Title"
 msgstr "Títol"
 
@@ -1510,7 +1511,6 @@
 msgid "Beep too!"
 msgstr "Fes pip també!"
 
-# FIXME
 msgid "Set URGENT for the terminal window."
 msgstr "Estableix URGENT per a la finestra del terminal."
 
@@ -1948,7 +1948,6 @@
 msgid "Thread creation failure: %s"
 msgstr "S'ha produït un error en crear un fil: %s"
 
-#. Data is assumed to be the destination bn
 msgid "Unknown reason"
 msgstr "Motiu desconegut"
 
@@ -2168,7 +2167,8 @@
 "True if the command used to handle this type of URL should be run in a "
 "terminal."
 msgstr ""
-"Cert si l'orde emprada per este tipus d'URL s'ha d'executar en un terminal."
+"Cert si l'orde emprada per este tipus d'URL s'ha d'executar en un "
+"terminal."
 
 msgid "Whether the specified command should handle \"aim\" URLs"
 msgstr "Si l'orde especificada ha de gestionar URL «aim»"
@@ -2721,8 +2721,8 @@
 "Prepends a newline to messages so that the rest of the message appears below "
 "the username in the conversation window."
 msgstr ""
-"Afig una línia nova abans de cada missatge de manera que, en les finestres "
-"de conversa, els missatges apareixen sota el nom d'usuari."
+"Afig una línia nova abans de cada missatge de manera que, en les "
+"finestres de conversa, els missatges apareixen sota el nom d'usuari."
 
 msgid "Offline Message Emulation"
 msgstr "Emulació de missatge de fora de línia"
@@ -2767,7 +2767,6 @@
 msgid "One Time Password"
 msgstr "Contrasenya d'un sol ús"
 
-# FIXME ?
 #. *< type
 #. *< ui_requirement
 #. *< flags
@@ -2791,7 +2790,8 @@
 msgstr ""
 "Vos permet forçar que les contrasenyes siguen d'un sol ús per a comptes dels "
 "quals no s'alcen les contrasenyes.\n"
-"Nota: per poder fer servir això, cal que no s'alce la contrasenya del compte."
+"Nota: per poder fer servir això, cal que no s'alce la contrasenya del "
+"compte."
 
 #. *< type
 #. *< ui_requirement
@@ -2818,8 +2818,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 vos 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..."
@@ -3223,6 +3223,9 @@
 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"
 
@@ -3652,8 +3655,8 @@
 "must be a channel operator to do this."
 msgstr ""
 "devoice &lt;sobrenom1&gt; [sobrenom2] ...:  treu l'estat de veu a algú, "
-"prevenint que parlin al canal si este està moderat (+m). Heu de ser operador "
-"del canal per poder fer això."
+"prevenint que parlin al canal si este està moderat (+m). Heu de ser "
+"operador del canal per poder fer això."
 
 msgid ""
 "invite &lt;nick&gt; [room]:  Invite someone to join you in the specified "
@@ -3884,7 +3887,7 @@
 "The server does support channel binding, but did not appear to advertise "
 "it.  This indicates a likely MITM attack"
 msgstr ""
-"Aques servidor permet vincular canals, tot i que no ho havia anunciat. Això "
+"Este servidor permet vincular canals, tot i que no ho havia anunciat. Això "
 "podria ser indicatiu d'un atac informàtic \"man-in-the-middle\""
 
 msgid "Server does not support channel binding"
@@ -3967,6 +3970,7 @@
 msgid "Postal Code"
 msgstr "Codi postal"
 
+#. purple_notify_user_info_add_pair( info, _( "Email" ), profile->email );
 msgid "Country"
 msgstr "País"
 
@@ -3981,8 +3985,6 @@
 msgid "Organization Unit"
 msgstr "Secció de l'organització"
 
-#. title
-#. optional information
 msgid "Job Title"
 msgstr "Títol de la faena"
 
@@ -3990,6 +3992,7 @@
 msgstr "Rol"
 
 #. birthday
+#. birthday (required)
 msgid "Birthday"
 msgstr "Data de naixement"
 
@@ -4849,7 +4852,7 @@
 msgstr "Error desconegut en la presència"
 
 msgid "An error occurred on the in-band bytestream transfer\n"
-msgstr "S'ha produit un error en el fluxe de transferència de dades en banda\n"
+msgstr "S'ha produït un error en el flux de transferència de dades en banda\n"
 
 msgid "Transfer was closed."
 msgstr "La transferència s'ha tancat."
@@ -4904,7 +4907,7 @@
 msgstr "Ansiós"
 
 msgid "Aroused"
-msgstr ""
+msgstr "Animat"
 
 msgid "Ashamed"
 msgstr "Avergonyit"
@@ -4937,7 +4940,7 @@
 msgstr "Acontentat"
 
 msgid "Cranky"
-msgstr ""
+msgstr "Empipat"
 
 msgid "Crazy"
 msgstr "Boig"
@@ -5003,7 +5006,7 @@
 msgstr "Calent"
 
 msgid "Humbled"
-msgstr ""
+msgstr "Avergonyit"
 
 msgid "Humiliated"
 msgstr "Humiliat"
@@ -5018,7 +5021,7 @@
 msgstr "Impressionat"
 
 msgid "In awe"
-msgstr ""
+msgstr "Reverent"
 
 msgid "In love"
 msgstr "Enamorat"
@@ -5051,7 +5054,7 @@
 msgstr "Malèvol"
 
 msgid "Moody"
-msgstr "Animat"
+msgstr "Llunàtic"
 
 msgid "Nervous"
 msgstr "Nerviós"
@@ -5459,7 +5462,8 @@
 #, c-format
 msgid ""
 "MSN servers are currently blocking the following regular expressions:<br/>%s"
-msgstr "Actualment, servidors MSN bloquen estes expressions regulars:<br/>%s"
+msgstr ""
+"Actualment, servidors MSN bloquen estes expressions regulars:<br/>%s"
 
 msgid "This account does not have email enabled."
 msgstr "Este compte no té el correu habilitat."
@@ -5735,6 +5739,9 @@
 msgid "Show custom smileys"
 msgstr "Mostra emoticones personalitzades"
 
+msgid "Allow direct connections"
+msgstr "Permet connexions directes"
+
 msgid "nudge: nudge a user to get their attention"
 msgstr "nudge: doneu un cop de colze a un usuari perquè vos pare atenció"
 
@@ -5975,7 +5982,11 @@
 "Encara no s'ha pogut recuperar la informació del vostre perfil. Torneu-ho a "
 "intentar més tard."
 
+msgid "Your MXitId"
+msgstr "El vostre MXitID"
+
 #. pin
+#. pin (required)
 msgid "PIN"
 msgstr "PIN"
 
@@ -6051,7 +6062,7 @@
 msgid "MXit Login Name"
 msgstr "Nom d'usuari de MXit"
 
-#. nick name
+#. nick name (required)
 msgid "Nick Name"
 msgstr "Sobrenom"
 
@@ -6100,7 +6111,7 @@
 msgid "Security Code"
 msgstr "Codi de seguretat"
 
-#. ask for input
+#. ask for input (required)
 msgid "Enter Security Code"
 msgstr "Introduïu el codi de seguretat"
 
@@ -6126,7 +6137,11 @@
 msgid "Status Message"
 msgstr "Missatge d'estat"
 
+msgid "Rejection Message"
+msgstr "Missatge de rebuig"
+
 # Segons la viquipèdia
+#. hidden number
 msgid "Hidden Number"
 msgstr "Nombre ocult"
 
@@ -6414,8 +6429,8 @@
 
 msgid "No suitable MySpaceIM account could be found to open this myim URL."
 msgstr ""
-"No s'ha pogut trobar cap compte adequat a MySpaceIM per poder obrir este URL "
-"myim."
+"No s'ha pogut trobar cap compte adequat a MySpaceIM per poder obrir este "
+"URL myim."
 
 msgid "Enable the proper MySpaceIM account and try again."
 msgstr "Habiliteu el compte MySpaceIM adequat i proveu-ho de nou."
@@ -6709,7 +6724,8 @@
 "This evaluation version does not allow more than ten users to log in at one "
 "time"
 msgstr ""
-"Esta versió d'avaluació no permet que entren més de deu usuaris a la vegada"
+"Esta versió d'avaluació no permet que entren més de deu usuaris a la "
+"vegada"
 
 msgid "The user is either offline or you are blocked"
 msgstr "L'usuari està fora de línia o bé esteu blocat"
@@ -6725,8 +6741,8 @@
 #, c-format
 msgid "Unable to send message. Could not get details for user (%s)."
 msgstr ""
-"No s'ha pogut enviar el missatge. No s'han pogut obtindre detalls de "
-"l'usuari (%s)."
+"No s'ha pogut enviar el missatge. No s'han pogut obtindre detalls de l'usuari "
+"(%s)."
 
 #, c-format
 msgid "Unable to add %s to your buddy list (%s)."
@@ -6932,6 +6948,63 @@
 msgid "Invalid chat room name"
 msgstr "El nom de sala de xat no és vàlid"
 
+msgid "Invalid error"
+msgstr "Error invàlid"
+
+msgid "Cannot receive IM due to parental controls"
+msgstr "Els controls parentals no permeten que es puga rebre MI"
+
+msgid "Cannot send SMS without accepting terms"
+msgstr "No es poden enviar SMS si no s'accepten els termes"
+
+msgid "Cannot send SMS"
+msgstr "No s'ha pogut enviar l'SMS"
+
+#. SMS_WITHOUT_DISCLAIMER is weird
+msgid "Cannot send SMS to this country"
+msgstr "No es poden enviar SMS a este país"
+
+#. Undocumented
+msgid "Cannot send SMS to unknown country"
+msgstr "No es poden enviar SMS a un país desconegut"
+
+msgid "Bot accounts cannot initiate IMs"
+msgstr "Els robots no poden iniciar MI"
+
+msgid "Bot account cannot IM this user"
+msgstr "Este robot no pot fer MI amb este usuari"
+
+msgid "Bot account reached IM limit"
+msgstr "Este robot ha superat el límit de MI"
+
+msgid "Bot account reached daily IM limit"
+msgstr "Este robot ha superat el límit de MI diari"
+
+msgid "Bot account reached monthly IM limit"
+msgstr "Este robot ha superat el límit de MI mensual"
+
+msgid "Unable to receive offline messages"
+msgstr "No s'han pogut rebre els missatges fora de línia"
+
+msgid "Offline message store full"
+msgstr "El dipòsit per a missatge de fora de línia és ple"
+
+#, c-format
+msgid "Unable to send message: %s (%s)"
+msgstr "No s'ha pogut enviar el missatge: %s (%s)"
+
+#, c-format
+msgid "Unable to send message: %s"
+msgstr "No s'ha pogut enviar el missatge: %s"
+
+#, c-format
+msgid "Unable to send message to %s: %s (%s)"
+msgstr "No s'ha pogut enviar el missatge a %s: %s (%s)"
+
+#, c-format
+msgid "Unable to send message to %s: %s"
+msgstr "No s'ha pogut enviar el missatge a %s: %s"
+
 msgid "Thinking"
 msgstr "Pensant"
 
@@ -7076,8 +7149,8 @@
 "%s tried to send you a %s file, but we only allow files up to %s over Direct "
 "IM.  Try using file transfer instead.\n"
 msgstr ""
-"%s 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 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 "
 "transferència de fitxers.\n"
 
 # FIXME
@@ -7085,116 +7158,6 @@
 msgid "File %s is %s, which is larger than the maximum size of %s."
 msgstr "El fitxer %s és %s, que és més gran que la mida màxima de %s."
 
-msgid "Invalid error"
-msgstr "Error invàlid"
-
-msgid "Invalid SNAC"
-msgstr "SNAC invàlid"
-
-msgid "Rate to host"
-msgstr "Velocitat cap a l'ordinador"
-
-msgid "Rate to client"
-msgstr "Velocitat cap al client"
-
-msgid "Service unavailable"
-msgstr "Servei no disponible"
-
-msgid "Service not defined"
-msgstr "Servei no definit"
-
-msgid "Obsolete SNAC"
-msgstr "SNAC obsolet"
-
-msgid "Not supported by host"
-msgstr "El servidor no ho permet"
-
-msgid "Not supported by client"
-msgstr "El client no ho permet"
-
-msgid "Refused by client"
-msgstr "Rebutjat pel client"
-
-msgid "Reply too big"
-msgstr "Resposta massa gran"
-
-msgid "Responses lost"
-msgstr "S'han perdut respostes"
-
-msgid "Request denied"
-msgstr "Petició denegada"
-
-msgid "Busted SNAC payload"
-msgstr "Càrrega SNAC malmesa"
-
-msgid "Insufficient rights"
-msgstr "Drets insuficients"
-
-msgid "In local permit/deny"
-msgstr "En la llista de permés/denegat local"
-
-msgid "Warning level too high (sender)"
-msgstr "Nivell d'avís massa alt (remitent)"
-
-msgid "Warning level too high (receiver)"
-msgstr "Nivell d'avís massa alt (receptor)"
-
-msgid "User temporarily unavailable"
-msgstr "Usuari no disponible temporalment"
-
-msgid "No match"
-msgstr "Cap coincidència"
-
-msgid "List overflow"
-msgstr "Sobreeiximent de la llista"
-
-msgid "Request ambiguous"
-msgstr "Petició ambigua"
-
-msgid "Queue full"
-msgstr "Cua plena"
-
-msgid "Not while on AOL"
-msgstr "No es pot fer mentre estiga a AOL"
-
-msgid "Cannot receive IM due to parental controls"
-msgstr "Els controls parentals no permeten que es puga rebre MI"
-
-msgid "Cannot send SMS without accepting terms"
-msgstr "No es poden enviar SMS si no s'accepten els termes"
-
-msgid "Cannot send SMS"
-msgstr "No s'ha pogut enviar l'SMS"
-
-#. SMS_WITHOUT_DISCLAIMER is weird
-msgid "Cannot send SMS to this country"
-msgstr "No es poden enviar SMS a este país"
-
-#. Undocumented
-msgid "Cannot send SMS to unknown country"
-msgstr "No es poden enviar SMS a un país desconegut"
-
-msgid "Bot accounts cannot initiate IMs"
-msgstr "Els robots no poden iniciar MI"
-
-msgid "Bot account cannot IM this user"
-msgstr "Este robot no pot fer MI amb este usuari"
-
-msgid "Bot account reached IM limit"
-msgstr "Este robot ha superat el límit de MI"
-
-msgid "Bot account reached daily IM limit"
-msgstr "Este robot ha superat el límit de MI diari"
-
-msgid "Bot account reached monthly IM limit"
-msgstr "Este robot ha superat el límit de MI mensual"
-
-msgid "Unable to receive offline messages"
-msgstr "No s'han pogut rebre els missatges fora de línia"
-
-msgid "Offline message store full"
-msgstr "El dipòsit per a missatge de fora de línia és ple"
-
 msgid ""
 "(There was an error receiving this message.  The buddy you are speaking with "
 "is probably using a different encoding than expected.  If you know what "
@@ -7211,8 +7174,9 @@
 "(There was an error receiving this message.  Either you and %s have "
 "different encodings selected, or %s has a buggy client.)"
 msgstr ""
-"(S'ha produït un error en rebre este missatge. És molt possible que %s empri "
-"una codificació diferent a la vostra, o que %s tinga un client defectuós)"
+"(S'ha produït un error en rebre este missatge. És molt possible que %s "
+"empri una codificació diferent a la vostra, o que %s tinga un client "
+"defectuós)"
 
 #. Label
 msgid "Buddy Icon"
@@ -7347,9 +7311,9 @@
 "a valid email address, or start with a letter and contain only letters, "
 "numbers and spaces, or contain only numbers."
 msgstr ""
-"No s'ha pogut entrar com a %s perquè este nom d'usuari no és vàlid. Els noms "
-"d'usuari han de ser adreces de correu vàlides, o començar amb una lletra i "
-"contindre només lletres, nombres o espais, o només nombres."
+"No s'ha pogut entrar com a %s perquè este nom d'usuari no és vàlid. Els "
+"noms d'usuari han de ser adreces de correu vàlides, o començar amb una "
+"lletra i contindre només lletres, nombres o espais, o només nombres."
 
 #, c-format
 msgid "You may be disconnected shortly.  If so, check %s for updates."
@@ -7545,28 +7509,9 @@
 msgstr[1] "Heu perdut %hu missatges de %s per motius desconeguts."
 
 #, c-format
-msgid "Unable to send message: %s (%s)"
-msgstr "No s'ha pogut enviar el missatge: %s (%s)"
-
-#, c-format
-msgid "Unable to send message: %s"
-msgstr "No s'ha pogut enviar el missatge: %s"
-
-#, c-format
-msgid "Unable to send message to %s: %s (%s)"
-msgstr "No s'ha pogut enviar el missatge a %s: %s (%s)"
-
-#, c-format
-msgid "Unable to send message to %s: %s"
-msgstr "No s'ha pogut enviar el missatge a %s: %s"
-
-#, c-format
 msgid "User information not available: %s"
 msgstr "La informació de l'usuari no està disponible: %s"
 
-msgid "Unknown reason."
-msgstr "Motiu desconegut."
-
 msgid "Online Since"
 msgstr "En línia des de"
 
@@ -7903,8 +7848,8 @@
 "You can re-request authorization from these buddies by right-clicking on "
 "them and selecting \"Re-request Authorization.\""
 msgstr ""
-"Podeu tornar a demanar l'autorització d'estos amics fent-hi clic a sobre amb "
-"el botó dret del ratolí, i seleccionant «Torna a demanar l'autorització»."
+"Podeu tornar a demanar l'autorització d'estos amics fent-hi clic a sobre "
+"amb el botó dret del ratolí, i seleccionant «Torna a demanar l'autorització»."
 
 msgid "Find Buddy by Email"
 msgstr "Troba un amic per l'adreça de correu"
@@ -8368,8 +8313,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 vos ha permés unir-vos al Qun %1$u per %3$s</b>"
 
 #, c-format
 msgid "<b>Removed buddy %u.</b>"
@@ -8499,8 +8443,7 @@
 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> :)"
+msgid "<i>Feel free to join vos!</i> :)"
 msgstr "<i>No dubteu a col·laborar amb nosaltres!</i> :)"
 
 #, c-format
@@ -8836,8 +8779,8 @@
 "\"Create New Conference\" if you'd like to create a new conference to invite "
 "this user to."
 msgstr ""
-"Seleccioneu a quina conferència, de les d'ací sota, voleu convidar l'usuari %"
-"s. Seleccioneu «Crea una nova conferència» si voleu crear-ne una de nova on "
+"Seleccioneu a quina conferència, de les d'ací sota, voleu convidar l'usuari "
+"%s. Seleccioneu «Crea una nova conferència» si voleu crear-ne una de nova on "
 "convidar-hi l'usuari."
 
 msgid "Invite to Conference"
@@ -9820,7 +9763,8 @@
 msgstr "topic [&lt;tema nou&gt;]: mostra o canvia el tema"
 
 msgid "join &lt;channel&gt; [&lt;password&gt;]:  Join a chat on this network"
-msgstr "join &lt;canal&gt; [&lt;contrasenya&gt;]: entra en un xat d'esta xarxa"
+msgstr ""
+"join &lt;canal&gt; [&lt;contrasenya&gt;]: entra en un xat d'esta xarxa"
 
 msgid "list:  List channels on this network"
 msgstr "list:  llista els canals en esta xarxa"
@@ -9949,8 +9893,9 @@
 msgid "HMAC"
 msgstr "HMAC"
 
+# FIXME: Calc de la versió castellana
 msgid "Use Perfect Forward Secrecy"
-msgstr ""
+msgstr "Empra «confidencialitat directa perfecta»"
 
 msgid "Public key authentication"
 msgstr "Autenticació per clau pública"
@@ -9959,7 +9904,7 @@
 msgstr "Bloca la MI sense intercanvi de claus"
 
 msgid "Block messages to whiteboard"
-msgstr "Bloca els misstges a la pissarra"
+msgstr "Bloca els missatges a la pissarra"
 
 msgid "Automatically open whiteboard"
 msgstr "Obri la pissarra automàticament"
@@ -10213,7 +10158,7 @@
 msgstr "Bloca invitacions a conferències i sales de xat"
 
 msgid "Use account proxy for SSL connections"
-msgstr "Empra un compte per al servidor intermediàri per a connexions SSL"
+msgstr "Empra un compte per al servidor intermediari per a connexions SSL"
 
 msgid "Chat room list URL"
 msgstr "URL de la llista de sales de xat"
@@ -10237,8 +10182,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 vos ha enviat una invitació a la seua càmera web, però això encara no està "
+"implementat."
 
 msgid "Your SMS was not delivered"
 msgstr "No s'ha enviat l'SMS"
@@ -10255,15 +10200,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 vos 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 vos ha denegat (retroactivament) la petició d'afegir-lo a la vostra llista."
 
 msgid "Add buddy rejected"
 msgstr "S'ha rebutjat afegir l'amic"
@@ -10492,7 +10436,8 @@
 "If you wish to view this profile, you will need to visit this link in your "
 "web browser:"
 msgstr ""
-"Si voleu veure 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!"
@@ -10534,9 +10479,9 @@
 "does not exist; however, Yahoo! sometimes does fail to find a user's "
 "profile. If you know that the user exists, please try again later."
 msgstr ""
-"No s'ha pogut obtindre el perfil de l'usuari. El més segur és que l'usuari "
-"no existisca, tot i que a vegades Yahoo! no pot trobar els perfils d'usuari. "
-"Si sabeu del cert que l'usuari existeix, torneu-ho a intentar més tard."
+"No s'ha pogut obtindre el perfil de l'usuari. El més segur és que l'usuari no "
+"existisca, tot i que a vegades Yahoo! no pot trobar els perfils d'usuari. Si "
+"sabeu del cert que l'usuari existeix, torneu-ho a intentar més tard."
 
 msgid "The user's profile is empty."
 msgstr "El perfil d'usuari està buit."
@@ -10564,8 +10509,8 @@
 "Unknown error. You may need to logout and wait five minutes before being "
 "able to rejoin a chatroom"
 msgstr ""
-"S'ha produït un error desconegut. Potser caldrà que eixiu i espereu uns cinc "
-"minuts abans d'intentar tornar a entrar a la sala de xat"
+"S'ha produït un error desconegut. Potser caldrà que eixiu i espereu uns "
+"cinc minuts abans d'intentar tornar a entrar a la sala de xat"
 
 #, c-format
 msgid "You are now chatting in %s."
@@ -10645,11 +10590,13 @@
 
 msgid "inst &lt;instance&gt;: Set the instance to be used on this class"
 msgstr ""
-"inst &lt;instància&gt;: especifica la instància a fer servir en esta classe"
+"inst &lt;instància&gt;: especifica la instància a fer servir en esta "
+"classe"
 
 msgid "topic &lt;instance&gt;: Set the instance to be used on this class"
 msgstr ""
-"topic &lt;instància&gt;: especifica la instància a fer servir en esta classe"
+"topic &lt;instància&gt;: especifica la instància a fer servir en esta "
+"classe"
 
 msgid "sub &lt;class&gt; &lt;instance&gt; &lt;recipient&gt;: Join a new chat"
 msgstr ""
@@ -11135,8 +11082,8 @@
 "voleu que el %s es connecte amb més comptes de missatgeria instantània (MI), "
 "torneu a prémer <b>Afig</b> fins a configurar-los tots.\n"
 "\n"
-"Podeu tornar a esta finestra per afegir, editar o suprimir comptes, a partir "
-"del menú <b>Comptes->Gestiona els comptes</b> a finestra de la llista "
+"Podeu tornar a esta finestra per afegir, editar o suprimir comptes, a "
+"partir del menú <b>Comptes->Gestiona els comptes</b> a finestra de la llista "
 "d'amics."
 
 #. Buddy List
@@ -11272,8 +11219,8 @@
 "choosing 'Expand' from the contact's context menu"
 msgstr ""
 "En fusionar estos contactes fareu que compartisquen una mateixa entrada en "
-"la llista d'amics i en la finestra de conversa. Més avant els podreu separar "
-"amb l'opció 'Expandeix' del menú contextual del contacte."
+"la llista d'amics i en la finestra de conversa. Més avant els podreu "
+"separar amb l'opció 'Expandeix' del menú contextual del contacte."
 
 msgid "Please update the necessary fields."
 msgstr "Actualitzeu els camps necessaris."
@@ -12180,9 +12127,8 @@
 msgid "Arabic"
 msgstr "Àrab"
 
-#, fuzzy
 msgid "Assamese"
-msgstr "Avergonyit"
+msgstr "Assamés"
 
 msgid "Belarusian Latin"
 msgstr "Bielorús (llatí)"
@@ -12311,9 +12257,8 @@
 msgid "Macedonian"
 msgstr "Macedoni"
 
-#, fuzzy
 msgid "Malayalam"
-msgstr "Malai"
+msgstr "Malaiàlam"
 
 msgid "Mongolian"
 msgstr "Mongol"
@@ -12466,11 +12411,11 @@
 "<br/>"
 msgstr ""
 "<font size=\"4\"><b>Ajuda d'altres usuaris del Pidgin</b>:</font> <a href="
-"\"mailto:support@pidgin.im\">support@pidgin.im</a><br/>Esta és una llista de "
-"correu <b>pública</b>. (<a href=\"http://pidgin.im/pipermail/support/"
+"\"mailto:support@pidgin.im\">support@pidgin.im</a><br/>Esta és una llista "
+"de correu <b>pública</b>. (<a href=\"http://pidgin.im/pipermail/support/"
 "\">arxiu</a>)<br/>No vos podem ajudar amb connectors d'altres proveïdors.<br/"
-">En esta llista s'hi empra principalment l'<b>anglés</b>. Podeu escriure-hi "
-"en un altre idioma, però és possible que les respostes no siguen de gaire "
+">En esta llista s'hi empra principalment l'<b>anglés</b>. Podeu escriure-"
+"hi en un altre idioma, però és possible que les respostes no siguen de gaire "
 "ajuda.<br/>"
 
 #, c-format
@@ -12872,8 +12817,8 @@
 "This smiley is disabled because a custom smiley exists for this shortcut:\n"
 " %s"
 msgstr ""
-"Esta emoticona està inhabilitada perquè hi ha una emoticona personalitzada "
-"per esta drecera:\n"
+"Esta emoticona està inhabilitada perquè hi ha una emoticona "
+"personalitzada per esta drecera:\n"
 " %s"
 
 msgid "Smile!"
@@ -13055,7 +13000,6 @@
 msgid "display this help and exit"
 msgstr "mostra esta ajuda i ix"
 
-# FIXME: entrades/registres?
 msgid "allow multiple instances"
 msgstr "permet diverses instàncies"
 
@@ -13112,7 +13056,8 @@
 #, c-format
 msgid "Exiting because another libpurple client is already running.\n"
 msgstr ""
-"Ara s'eixirà atès que ja hi ha un altre client del libpurple executant-se.\n"
+"Ara s'eixirà atès que ja hi ha un altre client del libpurple executant-"
+"se.\n"
 
 msgid "/_Media"
 msgstr "/_Medi"
@@ -13233,7 +13178,6 @@
 msgid "Modify Buddy Pounce"
 msgstr "Modifica l'avís per a l'amic"
 
-# FIXME
 #. Create the "Pounce on Whom" frame.
 msgid "Pounce on Whom"
 msgstr "Avisa dels Whom"
@@ -13643,7 +13587,7 @@
 #. This is a global option that affects SOCKS4 usage even with
 #. * account-specific proxy settings
 msgid "Use remote _DNS with SOCKS4 proxies"
-msgstr "Empra _DNS remot amb servidors intermediàris SOCKS4"
+msgstr "Empra _DNS remot amb servidors intermediaris SOCKS4"
 
 msgid "Proxy t_ype:"
 msgstr "_Tipus de servidor intermediari:"
@@ -13984,8 +13928,8 @@
 "You can send this image as a file transfer, embed it into this message, or "
 "use it as the buddy icon for this user."
 msgstr ""
-"Podeu enviar esta imatge com una transferència de fitxer, incrustar-la en el "
-"missatge, o emprar-la com a icona d'amic per a este usuari."
+"Podeu enviar esta imatge com una transferència de fitxer, incrustar-la en "
+"el missatge, o emprar-la com a icona d'amic per a este usuari."
 
 msgid "Set as buddy icon"
 msgstr "Estableix com a icona de l'amic"
@@ -14003,15 +13947,15 @@
 "You can send this image as a file transfer, or use it as the buddy icon for "
 "this user."
 msgstr ""
-"Podeu enviar esta imatge com una transferència de fitxer, o emprar-la com a "
-"icona d'amic per a este usuari."
+"Podeu enviar esta imatge com una transferència de fitxer, o emprar-la com "
+"a icona d'amic per a este usuari."
 
 msgid ""
 "You can insert this image into this message, or use it as the buddy icon for "
 "this user"
 msgstr ""
-"Podeu incrustar esta imatge en el missatge o utilitzar-la com a icona per a "
-"este usuari."
+"Podeu incrustar esta imatge en el missatge o utilitzar-la com a icona per "
+"a este usuari."
 
 #. I don't know if we really want to do anything here.  Most of
 #. * the desktop item types are crap like "MIME Type" (I have no
@@ -15208,8 +15152,7 @@
 
 msgid "Remove Buddy List window transparency on focus"
 msgstr ""
-"Treu la transparència de la finestra de la llista d'amics en obtindre el "
-"focus"
+"Treu la transparència de la finestra de la llista d'amics en obtindre el focus"
 
 #. *< type
 #. *< ui_requirement
@@ -15233,8 +15176,8 @@
 "\n"
 "* Note: This plugin requires Win2000 or greater."
 msgstr ""
-"Este connector habilita la transparència variables en finestres de conversa, "
-"i la llista d'amics.\n"
+"Este connector habilita la transparència variables en finestres de "
+"conversa, i la llista d'amics.\n"
 "\n"
 "* Nota: este connector requereix Windows 2000 o superior."
 
@@ -15301,124 +15244,223 @@
 msgid "This plugin is useful for debugging XMPP servers or clients."
 msgstr "Este connector és útil per a depurar servidors o clients XMPP."
 
+#. $(^Name) is the current Version name (e.g. Pidgin 2.7.0).  $_CLICK will become a translated version of "Click Next to continue."
 msgid ""
 "$(^Name) is released under the GNU General Public License (GPL). The license "
 "is provided here for information purposes only. $_CLICK"
 msgstr ""
-
+"$(^Name) és distribuït sota llicència GPL. Podeu consultar la llicència, "
+"només per proposits informatius, ací.  $_CLICK"
+
+#. Installer Subsection Detailed Description
 msgid "A multi-platform GUI toolkit, used by Pidgin"
-msgstr ""
+msgstr "Una eina IGU multiplataforma, utilitzada per Pidgin"
 
 msgid ""
 "An instance of Pidgin is currently running.  Please exit Pidgin and try "
 "again."
 msgstr ""
-
+"Hi ha una instància del Pidgin executant-se. Ix del Pidgin i torna a "
+"intentar-ho."
+
+#. Installer Subsection Detailed Description
 msgid "Core Pidgin files and dlls"
-msgstr ""
-
+msgstr "Fitxers i dlls del nucli de Pidgin"
+
+#. Installer Subsection Detailed Description
 msgid "Create a Start Menu entry for Pidgin"
-msgstr ""
-
+msgstr "Crear una entrada Pidgin al Menu Inici"
+
+#. Installer Subsection Detailed Description
 msgid "Create a shortcut to Pidgin on the Desktop"
-msgstr ""
-
+msgstr "Afegir un enllaç directe al Pidgin a l'Escriptori"
+
+#. Installer Subsection Text
 msgid "Debug Symbols (for reporting crashes)"
-msgstr ""
-
-#, fuzzy
+msgstr "Símbols de depuració (per informar d'errades)"
+
+#. Installer Subsection Text
 msgid "Desktop"
-msgstr "Valor predeterminat de l'escriptori"
-
+msgstr "Escriptori"
+
+#. $R2 will display the URL that the GTK+ Runtime failed to download from
 msgid ""
 "Error Downloading the GTK+ Runtime ($R2).$\\rThis is required for Pidgin to "
 "function; if retrying fails, you may need to use the 'Offline Installer' "
 "from http://pidgin.im/download/windows/ ."
 msgstr ""
-
+"S'ha produït un error en baixar l'entorn d'execució GTK+ ($R2).$\\rEl Pidgin "
+"requereix este entorn per a poder-s'executar. Si ho torneu a provar i no "
+"funciona, haureu de fer servir l'instal·lador «fora de línia» de http://"
+"pidgin.im/download/windows/ ."
+
+#. $R2 will display the URL that the Debug Symbols failed to download from
 msgid ""
 "Error Installing Debug Symbols ($R2).$\\rIf retrying fails, you may need to "
 "use the 'Offline Installer' from http://pidgin.im/download/windows/ ."
 msgstr ""
-
+"S'ha produït un error en instal·lar els símbols de depuració ($R2).$\\rSi "
+"falla en reintentar-ho, haureu de fer servir l'instal·lador «fora de línia» "
+"de http://pidgin.im/download/windows/ ."
+
+#. $R3 will display the URL that the Dictionary failed to download from
 #, no-c-format
 msgid ""
 "Error Installing Spellchecking ($R3).$\\rIf retrying fails, manual "
 "installation instructions are at: http://developer.pidgin.im/wiki/Installing%"
 "20Pidgin#manual_win32_spellcheck_installation"
 msgstr ""
-
-#, fuzzy
+"S'ha produït un error en instal·lar el corrector ortogràfic ($R3).$\\rSi "
+"falla en reintentar-ho, podeu seguir les instruccions d'instal·lació manual "
+"d'ací: http://developer.pidgin.im/wiki/Installing%"
+"20Pidgin#manual_win32_spellcheck_installation"
+
+#. Installer Subsection Text
 msgid "GTK+ Runtime (required if not present)"
-msgstr "Versió del mòdul d'execució de GTK+"
-
-#, fuzzy
+msgstr "Entorn d'Execució GTK+ (necessari si no està instal·lat)"
+
+#. Installer Subsection Text
 msgid "Localizations"
-msgstr "Ubicació"
-
-#. License Page
-#, fuzzy
+msgstr "Localitzacions"
+
+#. "Next >" appears on a button on the License Page of the Installer
 msgid "Next >"
-msgstr "Text"
-
-#. Components Page
-#, fuzzy
+msgstr "Següent >"
+
+#. Installer Subsection Text
 msgid "Pidgin Instant Messaging Client (required)"
-msgstr "Missatger d'Internet Pidgin"
-
-#. GTK+ Section Prompts
+msgstr "Client Pidgin de Missatgeria Instantània (necessari)"
+
 msgid ""
 "Pidgin requires a compatible GTK+ Runtime (which doesn't appear to be "
 "already present).$\\rAre you sure you want to skip installing the GTK+ "
 "Runtime?"
 msgstr ""
-
-#, fuzzy
+"El Pidgin requereix un entorn d'execució GTK+ compatible (que no pareix que "
+"tingueu instal·lat).$\\rEsteu segur que en voleu ometre la instal·lació?"
+
+#. Installer Subsection Text
 msgid "Shortcuts"
-msgstr "Drecera"
-
+msgstr "Enllaços directes"
+
+#. Installer Subsection Detailed Description
 msgid "Shortcuts for starting Pidgin"
-msgstr ""
-
-#. Spellcheck Section Prompts
+msgstr "Enllaços directes per iniciar el Pidgin"
+
+#. Installer Subsection Text
 msgid "Spellchecking Support"
-msgstr ""
-
-#, fuzzy
+msgstr "Suport a la Verificació de l'Ortografia "
+
+#. Installer Subsection Text
 msgid "Start Menu"
-msgstr "Inicialització"
-
+msgstr "Menu Inici"
+
+#. Installer Subsection Detailed Description
 msgid ""
 "Support for Spellchecking.  (Internet connection required for installation)"
 msgstr ""
-
-#, fuzzy
+"Suport per a Verificació de l'Ortografia.  (és necesaria connexió a internet "
+"per dur a terme la instal.lació)"
+
 msgid "The installer is already running."
-msgstr "Ja hi ha algú amb el sobrenom «%s»."
-
-#. Uninstall Section Prompts
+msgstr "L'instal.lador encara està executant-se."
+
 msgid ""
 "The uninstaller could not find registry entries for Pidgin.$\\rIt is likely "
 "that another user installed this application."
 msgstr ""
-
-#. URL Handler section
-#, fuzzy
+"L'instal.lador podria no trobar les entrades del registre de Pidgin.$"
+"\\rProbablement un altre usuari ha instal.lat esta aplicació."
+
+#. Installer Subsection Text
 msgid "URI Handlers"
-msgstr "Gestor d'URL myim"
-
-#. Pidgin Section Prompts and Texts
+msgstr "Gestors d'URI"
+
 msgid ""
 "Unable to uninstall the currently installed version of Pidgin. The new "
 "version will be installed without removing the currently installed version."
 msgstr ""
-
-#. Installer Finish Page
+"No s'ha pogut desinstal·lar la versió actual del Pidgin. La nova versió "
+"s'instal·larà sense suprimir-ne la que hi ha actualment instal·lada."
+
+#. Text displayed on Installer Finish Page
 msgid "Visit the Pidgin Web Page"
-msgstr ""
+msgstr "Visita la pàgina web de Pidgin per Windows"
 
 msgid "You do not have permission to uninstall this application."
-msgstr ""
+msgstr "No tens permís per desinstal.lar esta aplicació."
+
+#~ msgid "Invalid SNAC"
+#~ msgstr "SNAC invàlid"
+
+#~ msgid "Rate to host"
+#~ msgstr "Velocitat cap a l'ordinador"
+
+#~ msgid "Rate to client"
+#~ msgstr "Velocitat cap al client"
+
+#~ msgid "Service unavailable"
+#~ msgstr "Servei no disponible"
+
+#~ msgid "Service not defined"
+#~ msgstr "Servei no definit"
+
+#~ msgid "Obsolete SNAC"
+#~ msgstr "SNAC obsolet"
+
+#~ msgid "Not supported by host"
+#~ msgstr "El servidor no ho permet"
+
+#~ msgid "Not supported by client"
+#~ msgstr "El client no ho permet"
+
+#~ msgid "Refused by client"
+#~ msgstr "Rebutjat pel client"
+
+#~ msgid "Reply too big"
+#~ msgstr "Resposta massa gran"
+
+#~ msgid "Responses lost"
+#~ msgstr "S'han perdut respostes"
+
+#~ msgid "Request denied"
+#~ msgstr "Petició denegada"
+
+#~ msgid "Busted SNAC payload"
+#~ msgstr "Càrrega SNAC malmesa"
+
+#~ msgid "Insufficient rights"
+#~ msgstr "Drets insuficients"
+
+#~ msgid "In local permit/deny"
+#~ msgstr "En la llista de permès/denegat local"
+
+#~ msgid "Warning level too high (sender)"
+#~ msgstr "Nivell d'avís massa alt (remitent)"
+
+#~ msgid "Warning level too high (receiver)"
+#~ msgstr "Nivell d'avís massa alt (receptor)"
+
+#~ msgid "User temporarily unavailable"
+#~ msgstr "Usuari no disponible temporalment"
+
+#~ msgid "No match"
+#~ msgstr "Cap coincidència"
+
+#~ msgid "List overflow"
+#~ msgstr "Sobreeiximent de la llista"
+
+#~ msgid "Request ambiguous"
+#~ msgstr "Petició ambigua"
+
+#~ msgid "Queue full"
+#~ msgstr "Cua plena"
+
+#~ msgid "Not while on AOL"
+#~ msgstr "No es pot fer mentre estigui a AOL"
+
+#~ msgid "Unknown reason."
+#~ msgstr "Motiu desconegut."
 
 #~ msgid "Current Mood"
 #~ msgstr "Estat d'ànim actual"
@@ -15430,7 +15472,7 @@
 #~ msgstr "Canvieu el vostre estat d'ànim"
 
 #~ msgid "How do you feel right now?"
-#~ msgstr "Com vos trobeu ara mateix?"
+#~ msgstr "Com us trobeu ara mateix?"
 
 #~ msgid "Change Mood..."
 #~ msgstr "Canvia l'estat d'ànim..."