changeset 29687:42c64c41cf87

propagate from branch 'im.pidgin.pidgin' (head 46523386d682c917679b3de662d51a5bda0da46b) to branch 'im.pidgin.cpw.attention_ui' (head 39d8ac60b05e7766f90db850144c9e963076cec9)
author Marcus Lundblad <ml@update.uu.se>
date Mon, 08 Jun 2009 18:28:31 +0000
parents 33b81994d74c (current diff) f5222e5ae468 (diff)
children 8b17877d3294
files libpurple/conversation.c libpurple/protocols/jabber/jabber.c libpurple/protocols/jabber/message.c libpurple/protocols/msn/msn.c libpurple/protocols/yahoo/yahoo.c pidgin/gtkconv.c pidgin/pidginstock.c
diffstat 92 files changed, 31927 insertions(+), 2029 deletions(-) [+]
line wrap: on
line diff
--- a/COPYRIGHT	Mon May 25 19:27:33 2009 +0000
+++ b/COPYRIGHT	Mon Jun 08 18:28:31 2009 +0000
@@ -333,6 +333,7 @@
 Diego Petten
 Nathan Peterson
 Sebastián E. Peyrott
+Andrea Piccinelli
 Celso Pinto
 Joao Luís Marques Pinto
 Aleksander Piotrowski
@@ -451,6 +452,7 @@
 Mark Tiefenbruck
 Andrew Tinney
 Jeffery To
+Krzysztof Tobola (kreez)
 Warren Togami
 Stu Tomlinson
 Bill Tompkins
--- a/ChangeLog	Mon May 25 19:27:33 2009 +0000
+++ b/ChangeLog	Mon Jun 08 18:28:31 2009 +0000
@@ -18,10 +18,17 @@
 	  from you on MSN.
 	* DNS servers are re-read when DNS queries fail in case the system has
 	  moved to a new network and the old servers are not accessible.
+	* Gadu-Gadu accounts can specify a server to which to connect.
+	  (Krzysztof "kreez" Tobola)
+	* Modifying the MSN privacy list for buddies not added by you (i.e.
+	  spammers and other generally unwanted users) should no longer cause
+	  a 240 error and disconnection.
 
 	XMPP:
-	* Voice & Video support with Jingle (XEP-0166, 0167, 0176, & 0177), and
-	  voice support with GTalk and GMail. (Mike "Maiku" Ruprecht)
+	* Voice & Video support with Jingle (XEP-0166, 0167, 0176, & 0177), voice
+	  support with GTalk and voice and video support with the GMail web
+	  client. (Mike "Maiku" Ruprecht)
+	* Added a Service Discovery Browser plugin for Pidgin. (Andrei Mozzhuhin)
 	* Support for in-band bytestreams for file transfers (XEP-0047). (Marcus
 	  Lundblad)
 	* Support for sending and receiving attentions (equivalent to "buzz"
@@ -39,6 +46,8 @@
 	* /affiliate and /role will now list the room members with the specified
 	  affiliation/role if possible. (Andrei Mozzhuhin)
 	* Put section breaks between resources in "Get Info" to improve readability.
+	* Silently remove invalid XML 1.0 entities (e.g. ASCII control characters)
+	  from sent messages.
 	* XHTML markup is only included in outgoing messages when the message
 	  contains formatting.
 	* Show when the user was last logged in when doing "Get Info" on an offline
@@ -48,11 +57,14 @@
 	  chat to avoid getting too many fetch requests).
 	* Fix an issue with Jabber (pre-XMPP) servers and the user's preference
 	  to require SSL not being respected.
+	* Fix an issue where Cyrus SASL DIGEST MD5 authentication might fail if
+	  the username, password, or realm (the JID domain) contain non-ASCII
+	  characters.
+	* Show emblem for mobile, handheld, and web clients and bots (if the other
+	  client supports it).
 
 	Yahoo:
-	* P2P file transfers. (Sulabh Mahajan)
-	* MSN Interoperability by adding MSN buddies as 'msn/user@example.com'.
-	  (Sulabh Mahajan)
+	* P2P file transfers.  (Sulabh Mahajan)
 	* Sending text messages (address to +<countrycode><phone number>).
 	  (Sulabh Mahajan)
 	* Addition of MSN buddies to Yahoo accounts by adding them as
@@ -82,12 +94,53 @@
 	  rejoin.
 	* Always set unseen-count and unseen-state on conversations.
 	  (Joshua Stein)
+	* Fix a bug in 'Conversation Colors' plugin for RTL messages.
+	* Pressing the Left and Right arrow keys in the buddy list will expand and
+	  collapse buddy groups or contacts. (Peter Ruibal)
+	* Support saving animated custom smileys as animated images or animated
+	  custom smileys. (Andrea Piccinelli)
 
 	Finch:
 	* The hardware cursor is updated correctly. This will be useful
 	  especially for users of braille terminals, screen readers etc.
 	* Added a TinyURL plugin, which aids copying longer URLs.
 
+	Pidgin GTK+ Theme Control Plugin:
+	* Removed mouse cursor color preferences.
+	* Added "Typing Notification Color" preference.
+	* Added "Disable Typing Notification Text" preference.
+	* Preferences have been reorganized into three tabs for Colors, Fonts, and
+	  Miscellaneous categories.
+
+version 2.5.6 (05/19/2009):
+	libpurple:
+	* Improve sleep behavior by aggregation of longer timeouts on second
+	  boundaries to allow better power saving.  (Arunan Balasubramaniam)
+	* Fix various crashes on exit.
+	* Make XML parsing more resilient to interactions with other libraries.
+	  This, along with the fix for libxml2 bug 564217, fixes the crashes
+	  on connect in XMPP with recent gst-plugins-bad (see #8830 for details).
+	* Many security related fixes.
+
+	IRC:
+	* Correctly handle WHOIS for users who are joined to a large number of
+	  channels.
+	* Notify the user if a /nick command fails, rather than trying
+	  fallback nicks.
+
+	MSN:
+	* Fix a race condition causing occasional Pidgin crashes.
+	* Fix some errors about the friendly name changing too fast caused
+	  by MSN/Yahoo integration buddies.
+
+	XMPP:
+	* Less likely to pop up a new conversation window in disregard of
+	  the "Hide new IM conversations" preference.
+
+	Yahoo:
+	* Fix a crash when sending very long messages.
+	* Fix a bug where UTF-8 status messages get garbled when going idle.
+
 version 2.5.5 (03/01/2009):
 	libpurple:
 	* Fix a crash when removing an account with an unknown protocol id.
--- a/ChangeLog.API	Mon May 25 19:27:33 2009 +0000
+++ b/ChangeLog.API	Mon Jun 08 18:28:31 2009 +0000
@@ -33,11 +33,13 @@
 		* purple_global_proxy_set_info
 		* purple_group_destroy
 		* purple_log_get_activity_score
+		* purple_markup_is_rtl
 		* purple_network_force_online
 		* purple_network_set_stun_server
 		* purple_network_set_turn_server
 		* purple_network_get_stun_ip
 		* purple_network_get_turn_ip
+		* purple_proxy_connect_udp
 		* purple_prpl_get_media_caps
 		* purple_prpl_got_account_actions
 		* purple_prpl_initiate_media
@@ -45,6 +47,8 @@
 		* purple_request_field_get_ui_data
 		* purple_request_field_set_ui_data
 		* purple_strequal
+		* purple_utf8_strip_unprintables
+		* purple_util_fetch_url_request_len_with_account
 		* xmlnode_from_file
 		* xmlnode_get_parent
 		* xmlnode_set_attrib_full
@@ -55,6 +59,15 @@
 		  which was completely non-deterministic.  If you want to remove
 		  the attribute with no namespace, then use NULL with
 		  xmlnode_remove_with_namespace.
+		* Plugins may now emit the jabber-sending-xmlnode signal in order
+		  to send stanzas; this method is preferred to the prpl send_raw
+		  function as other plugins listening to the signal see them.
+		* The conversation-updated signal with a PURPLE_CONV_UPDATE_TYPING
+		  update type is emitted when receiving an IM.  Previously, the
+		  typing state was modified (and the buddy-typing-stopped signal
+		  emitted), but this signal was not emitted.
+		* Added a client_type field in the get_ui_info core UI op. See
+		  core.h for details.
 
 		Deprecated:
 		* buddy-added and buddy-removed blist signals
@@ -70,6 +83,7 @@
 		* purple_status_set_attr_string
 		* purple_presence_add_status
 		* purple_presence_add_list
+		* purple_util_fetch_url_request_len
 		* xmlnode_set_attrib_with_namespace
 		* xmlnode_set_attrib_with_prefix
 
@@ -84,6 +98,7 @@
 		* pidgin_blist_set_theme
 		* pidgin_blist_get_theme
 		* pidgin_prefs_labeled_password
+		* pidgin_smiley_editor_set_data
 		* pidgin_sound_is_customized
 		* pidgin_utils_init, pidgin_utils_uninit
 		* pidgin_notify_pounce_add
--- a/configure.ac	Mon May 25 19:27:33 2009 +0000
+++ b/configure.ac	Mon Jun 08 18:28:31 2009 +0000
@@ -144,7 +144,7 @@
 	;;
 esac
 
-ALL_LINGUAS="af am ar az be@latin bg bn bs ca ca@valencia cs da de dz el en_AU en_CA en_GB eo es et eu fa fi fr ga gl gu he hi hu id it ja ka km kn ko ku lo lt mk mn my_MM nb ne nl nn oc pa pl pt_BR pt ps ro ru si sk sl sq sr sr@latin sv ta te th tr uk ur vi xh zh_CN zh_HK zh_TW"
+ALL_LINGUAS="af am ar az be@latin bg bn bs ca ca@valencia cs da de dz el en_AU en_CA en_GB eo es et eu fa fi fr ga gl gu he hi hu hy id it ja ka km kn ko ku lo lt mk mn my_MM nb ne nl nn oc pa pl pt_BR pt ps ro ru si sk sl sq sr sr@latin sv sw ta te th tr uk ur vi xh zh_CN zh_HK zh_TW"
 AM_GLIB_GNU_GETTEXT
 
 dnl If we don't have msgfmt, then po/ is going to fail -- ensure that
@@ -2476,6 +2476,7 @@
 		   pidgin/pixmaps/emotes/small/16/Makefile
 		   pidgin/plugins/Makefile
 		   pidgin/plugins/cap/Makefile
+		   pidgin/plugins/disco/Makefile
 		   pidgin/plugins/gestures/Makefile
 		   pidgin/plugins/gevolution/Makefile
 		   pidgin/plugins/musicmessaging/Makefile
--- a/finch/finch.c	Mon May 25 19:27:33 2009 +0000
+++ b/finch/finch.c	Mon Jun 08 18:28:31 2009 +0000
@@ -65,6 +65,7 @@
 		g_hash_table_insert(ui_info, "version", VERSION);
 		g_hash_table_insert(ui_info, "website", "http://pidgin.im");
 		g_hash_table_insert(ui_info, "dev_website", "http://developer.pidgin.im");
+		g_hash_table_insert(ui_info, "client_type", "console");
 	}
 
 	return ui_info;
--- a/finch/gntblist.c	Mon May 25 19:27:33 2009 +0000
+++ b/finch/gntblist.c	Mon Jun 08 18:28:31 2009 +0000
@@ -1921,11 +1921,11 @@
 		if (gnt_tree_is_searching(GNT_TREE(ggblist->tree)))
 			gnt_bindable_perform_action_named(GNT_BINDABLE(ggblist->tree), "end-search", NULL);
 		remove_peripherals(ggblist);
-	} else if (strcmp(text, GNT_KEY_CTRL_O) == 0) {
-		purple_prefs_set_bool(PREF_ROOT "/showoffline",
-				!purple_prefs_get_bool(PREF_ROOT "/showoffline"));
 	} else if (strcmp(text, GNT_KEY_INS) == 0) {
-		purple_blist_request_add_buddy(NULL, NULL, NULL, NULL);
+		PurpleBlistNode *node = gnt_tree_get_selection_data(GNT_TREE(ggblist->tree));
+		purple_blist_request_add_buddy(NULL, NULL,
+				node && PURPLE_BLIST_NODE_IS_GROUP(node) ? purple_group_get_name(PURPLE_GROUP(node)) : NULL,
+				NULL);
 	} else if (!gnt_tree_is_searching(GNT_TREE(ggblist->tree))) {
 		if (strcmp(text, "t") == 0) {
 			finch_blist_toggle_tag_buddy(gnt_tree_get_selection_data(GNT_TREE(ggblist->tree)));
--- a/finch/gntnotify.c	Mon May 25 19:27:33 2009 +0000
+++ b/finch/gntnotify.c	Mon Jun 08 18:28:31 2009 +0000
@@ -208,6 +208,9 @@
 	void *ret;
 	static int key = 0;
 
+	if (count == 0)
+		return NULL;
+
 	if (!detailed)
 	{
 		g_string_append_printf(message,
--- a/libpurple/blist.c	Mon May 25 19:27:33 2009 +0000
+++ b/libpurple/blist.c	Mon Jun 08 18:28:31 2009 +0000
@@ -977,18 +977,26 @@
 	PurpleConversation *conv;
 	PurpleBlistNode *bnode;
 	char *old_alias;
+	char *new_alias = NULL;
 
 	g_return_if_fail(contact != NULL);
 
-	if (!purple_strings_are_different(contact->alias, alias))
+	if ((alias != NULL) && (*alias != '\0'))
+		new_alias = purple_utf8_strip_unprintables(alias);
+
+	if (!purple_strings_are_different(contact->alias, new_alias)) {
+		g_free(new_alias);
 		return;
+	}
 
 	old_alias = contact->alias;
 
-	if ((alias != NULL) && (*alias != '\0'))
-		contact->alias = g_strdup(alias);
-	else
+	if ((new_alias != NULL) && (*new_alias != '\0'))
+		contact->alias = new_alias;
+	else {
 		contact->alias = NULL;
+		g_free(new_alias); /* could be "\0" */
+	}
 
 	purple_blist_schedule_save();
 
@@ -1014,18 +1022,26 @@
 {
 	PurpleBlistUiOps *ops = purple_blist_get_ui_ops();
 	char *old_alias;
+	char *new_alias = NULL;
 
 	g_return_if_fail(chat != NULL);
 
-	if (!purple_strings_are_different(chat->alias, alias))
+	if ((alias != NULL) && (*alias != '\0'))
+		new_alias = purple_utf8_strip_unprintables(alias);
+
+	if (!purple_strings_are_different(chat->alias, new_alias)) {
+		g_free(new_alias);
 		return;
+	}
 
 	old_alias = chat->alias;
 
-	if ((alias != NULL) && (*alias != '\0'))
-		chat->alias = g_strdup(alias);
-	else
+	if ((new_alias != NULL) && (*new_alias != '\0'))
+		chat->alias = new_alias;
+	else {
 		chat->alias = NULL;
+		g_free(new_alias); /* could be "\0" */
+	}
 
 	purple_blist_schedule_save();
 
@@ -1042,18 +1058,26 @@
 	PurpleBlistUiOps *ops = purple_blist_get_ui_ops();
 	PurpleConversation *conv;
 	char *old_alias;
+	char *new_alias = NULL;
 
 	g_return_if_fail(buddy != NULL);
 
-	if (!purple_strings_are_different(buddy->alias, alias))
+	if ((alias != NULL) && (*alias != '\0'))
+		new_alias = purple_utf8_strip_unprintables(alias);
+
+	if (!purple_strings_are_different(buddy->alias, new_alias)) {
+		g_free(new_alias);
 		return;
+	}
 
 	old_alias = buddy->alias;
 
-	if ((alias != NULL) && (*alias != '\0'))
+	if ((new_alias != NULL) && (*new_alias != '\0'))
 		buddy->alias = g_strdup(alias);
-	else
+	else {
 		buddy->alias = NULL;
+		g_free(new_alias); /* could be "\0" */
+	}
 
 	purple_blist_schedule_save();
 
@@ -1075,18 +1099,26 @@
 	PurpleBlistUiOps *ops = purple_blist_get_ui_ops();
 	PurpleConversation *conv;
 	char *old_alias;
+	char *new_alias = NULL;
 
 	g_return_if_fail(buddy != NULL);
 
-	if (!purple_strings_are_different(buddy->server_alias, alias))
+	if ((alias != NULL) && (*alias != '\0') && g_utf8_validate(alias, -1, NULL))
+		new_alias = purple_utf8_strip_unprintables(alias);
+
+	if (!purple_strings_are_different(buddy->server_alias, new_alias)) {
+		g_free(new_alias);
 		return;
+	}
 
 	old_alias = buddy->server_alias;
 
-	if ((alias != NULL) && (*alias != '\0') && g_utf8_validate(alias, -1, NULL))
-		buddy->server_alias = g_strdup(alias);
-	else
+	if ((new_alias != NULL) && (*new_alias != '\0'))
+		buddy->server_alias = new_alias;
+	else {
 		buddy->server_alias = NULL;
+		g_free(new_alias); /* could be "\0"; */
+	}
 
 	purple_blist_schedule_save();
 
@@ -1106,19 +1138,24 @@
 /*
  * TODO: If merging, prompt the user if they want to merge.
  */
-void purple_blist_rename_group(PurpleGroup *source, const char *new_name)
+void purple_blist_rename_group(PurpleGroup *source, const char *name)
 {
 	PurpleBlistUiOps *ops = purple_blist_get_ui_ops();
 	PurpleGroup *dest;
 	gchar *old_name;
+	gchar *new_name;
 	GList *moved_buddies = NULL;
 	GSList *accts;
 
 	g_return_if_fail(source != NULL);
-	g_return_if_fail(new_name != NULL);
-
-	if (*new_name == '\0' || purple_strequal(new_name, source->name))
+	g_return_if_fail(name != NULL);
+
+	new_name = purple_utf8_strip_unprintables(name);
+
+	if (*new_name == '\0' || purple_strequal(new_name, source->name)) {
+		g_free(new_name);
 		return;
+	}
 
 	dest = purple_find_group(new_name);
 	if (dest != NULL && purple_utf8_strcasecmp(source->name, dest->name) != 0) {
@@ -1160,6 +1197,7 @@
 		old_name = g_strdup(source->name);
 		purple_blist_remove_group(source);
 		source = dest;
+		g_free(new_name);
 	} else {
 		/* A simple rename */
 		PurpleBlistNode *cnode, *bnode;
@@ -1172,7 +1210,7 @@
 		}
 
 		old_name = source->name;
-		source->name = g_strdup(new_name);
+		source->name = new_name;
 	}
 
 	/* Save our changes */
@@ -1184,7 +1222,7 @@
 
 	/* Notify all PRPLs */
 	/* TODO: Is this condition needed?  Seems like it would always be TRUE */
-	if(old_name && purple_strequal(source->name, old_name)) {
+	if(old_name && !purple_strequal(source->name, old_name)) {
 		for (accts = purple_group_get_accounts(source); accts; accts = g_slist_remove(accts, accts->data)) {
 			PurpleAccount *account = accts->data;
 			PurpleConnection *gc = NULL;
@@ -1246,7 +1284,7 @@
 	chat = g_new0(PurpleChat, 1);
 	chat->account = account;
 	if ((alias != NULL) && (*alias != '\0'))
-		chat->alias = g_strdup(alias);
+		chat->alias = purple_utf8_strip_unprintables(alias);
 	chat->components = components;
 	purple_blist_node_initialize_settings((PurpleBlistNode *)chat);
 	((PurpleBlistNode *)chat)->type = PURPLE_BLIST_CHAT_NODE;
@@ -1273,13 +1311,13 @@
 	PurpleBlistUiOps *ops = purple_blist_get_ui_ops();
 	PurpleBuddy *buddy;
 
-	g_return_val_if_fail(account != NULL, FALSE);
-	g_return_val_if_fail(name != NULL, FALSE);
+	g_return_val_if_fail(account != NULL, NULL);
+	g_return_val_if_fail(name != NULL, NULL);
 
 	buddy = g_new0(PurpleBuddy, 1);
 	buddy->account  = account;
-	buddy->name     = g_strdup(name);
-	buddy->alias    = g_strdup(alias);
+	buddy->name     = purple_utf8_strip_unprintables(name);
+	buddy->alias    = purple_utf8_strip_unprintables(alias);
 	buddy->presence = purple_presence_new_for_buddy(buddy);
 	((PurpleBlistNode *)buddy)->type = PURPLE_BLIST_BUDDY_NODE;
 
@@ -1705,7 +1743,7 @@
 		return group;
 
 	group = g_new0(PurpleGroup, 1);
-	group->name = g_strdup(name);
+	group->name = purple_utf8_strip_unprintables(name);
 	group->totalsize = 0;
 	group->currentsize = 0;
 	group->online = 0;
--- a/libpurple/conversation.c	Mon May 25 19:27:33 2009 +0000
+++ b/libpurple/conversation.c	Mon Jun 08 18:28:31 2009 +0000
@@ -55,7 +55,6 @@
 	im = PURPLE_CONV_IM(c);
 
 	purple_conv_im_set_typing_state(im, PURPLE_NOT_TYPING);
-	purple_conv_im_update_typing(im);
 	purple_conv_im_stop_typing_timeout(im);
 
 	return FALSE;
@@ -1060,6 +1059,8 @@
 								   "buddy-typing-stopped", im->conv->account, im->conv->name);
 				break;
 		}
+
+		purple_conv_im_update_typing(im);
 	}
 }
 
--- a/libpurple/core.h	Mon May 25 19:27:33 2009 +0000
+++ b/libpurple/core.h	Mon Jun 08 18:28:31 2009 +0000
@@ -186,6 +186,10 @@
  *
  *   <dt><tt>dev_website</tt></dt>
  *   <dd>the UI's development/support website, such as http://developer.pidgin.im.</dd>
+ *
+ *   <dt><tt>client_type</tt></dt>
+ *   <dd>the type of UI (pc, console, phone, handheld, web, bot)</dd>
+ *   
  * </dl>
  *
  * @return A GHashTable with strings for keys and values.  This
--- a/libpurple/media.c	Mon May 25 19:27:33 2009 +0000
+++ b/libpurple/media.c	Mon Jun 08 18:28:31 2009 +0000
@@ -43,6 +43,7 @@
 #ifdef USE_VV
 
 #include <gst/farsight/fs-conference-iface.h>
+#include <gst/farsight/fs-element-added-notifier.h>
 
 /** @copydoc _PurpleMediaSession */
 typedef struct _PurpleMediaSession PurpleMediaSession;
@@ -2380,6 +2381,18 @@
 	stream->connected_cb_id = purple_timeout_add(0,
 			(GSourceFunc)purple_media_connected_cb, stream);
 }
+
+static void
+purple_media_element_added_cb(FsElementAddedNotifier *self,
+		GstBin *bin, GstElement *element, gpointer user_data)
+{
+	/*
+	 * Hack to make H264 work with Gmail video.
+	 */
+	if (!strncmp(GST_ELEMENT_NAME(element), "x264", 4)) {
+		g_object_set(GST_OBJECT(element), "cabac", FALSE, NULL);
+	}
+}
 #endif  /* USE_VV */
 
 gboolean
@@ -2403,7 +2416,7 @@
 
 	if (!session) {
 		GError *err = NULL;
-		GList *codec_conf = NULL;
+		GList *codec_conf = NULL, *iter = NULL;
 		gchar *filename = NULL;
 		PurpleMediaSessionType session_type;
 		GstElement *src = NULL;
@@ -2420,15 +2433,6 @@
 			return FALSE;
 		}
 
-	/* XXX: SPEEX has a latency of 5 or 6 seconds for me */
-#if 0
-	/* SPEEX is added through the configuration */
-		codec_conf = g_list_prepend(codec_conf, fs_codec_new(FS_CODEC_ID_ANY,
-				"SPEEX", FS_MEDIA_TYPE_AUDIO, 8000));
-		codec_conf = g_list_prepend(codec_conf, fs_codec_new(FS_CODEC_ID_ANY,
-				"SPEEX", FS_MEDIA_TYPE_AUDIO, 16000));
-#endif
-
 		filename = g_build_filename(purple_user_dir(), "fs-codec.conf", NULL);
 		codec_conf = fs_codec_list_from_keyfile(filename, &err);
 		g_free(filename);
@@ -2445,6 +2449,25 @@
 			g_error_free(err);
 		}
 
+		/*
+		 * Add SPEEX if the configuration file doesn't exist or
+		 * there isn't a speex entry.
+		 */
+		for (iter = codec_conf; iter; iter = g_list_next(iter)) {
+			FsCodec *codec = iter->data;
+			if (!g_ascii_strcasecmp(codec->encoding_name, "speex"))
+				break;
+		}
+
+		if (iter == NULL) {
+			codec_conf = g_list_prepend(codec_conf,
+					fs_codec_new(FS_CODEC_ID_ANY,
+					"SPEEX", FS_MEDIA_TYPE_AUDIO, 8000));
+			codec_conf = g_list_prepend(codec_conf,
+					fs_codec_new(FS_CODEC_ID_ANY,
+					"SPEEX", FS_MEDIA_TYPE_AUDIO, 16000));
+		}
+
 		fs_session_set_codec_preferences(session->session, codec_conf, NULL);
 
 		/*
@@ -2456,6 +2479,19 @@
 			g_object_set(G_OBJECT(session->session),
 					"no-rtcp-timeout", 0, NULL);
 
+		/*
+		 * Hack to make x264 work with Gmail video.
+		 */
+		if (is_nice && !strcmp(sess_id, "google-video")) {
+			FsElementAddedNotifier *notifier =
+					fs_element_added_notifier_new();
+			g_signal_connect(G_OBJECT(notifier), "element-added",
+					G_CALLBACK(purple_media_element_added_cb),
+					stream);
+			fs_element_added_notifier_add(notifier,
+					GST_BIN(media->priv->conference));
+		}
+
 		fs_codec_list_destroy(codec_conf);
 
 		session->id = g_strdup(sess_id);
@@ -2670,7 +2706,8 @@
 	PurpleMediaStream *stream;
 	g_return_val_if_fail(PURPLE_IS_MEDIA(media), NULL);
 	stream = purple_media_get_stream(media, sess_id, participant);
-	return purple_media_candidate_list_from_fs(stream->local_candidates);
+	return stream ? purple_media_candidate_list_from_fs(
+			stream->local_candidates) : NULL;
 #else
 	return NULL;
 #endif
--- a/libpurple/plugins/psychic.c	Mon May 25 19:27:33 2009 +0000
+++ b/libpurple/plugins/psychic.c	Mon Jun 08 18:28:31 2009 +0000
@@ -74,6 +74,7 @@
 			      time(NULL));
     }
 
+    /* Necessary because we may be creating a new conversation window. */
     purple_conv_im_set_typing_state(PURPLE_CONV_IM(gconv), PURPLE_TYPING);
   }
 }
--- a/libpurple/plugins/signals-test.c	Mon May 25 19:27:33 2009 +0000
+++ b/libpurple/plugins/signals-test.c	Mon Jun 08 18:28:31 2009 +0000
@@ -661,6 +661,32 @@
 	return FALSE;
 }
 
+static gboolean
+jabber_watched_iq(PurpleConnection *pc, const char *type, const char *id,
+                  const char *from, xmlnode *child)
+{
+	purple_debug_misc("signals test", "jabber watched IQ (type=%s, id=%s, from=%s)\n"
+	                  "child %p name=%s, namespace=%s\n",
+	                  type, id, from, child, child->name,
+	                  xmlnode_get_namespace(child));
+
+	if (g_str_equal(type, "get") || g_str_equal(type, "set")) {
+		/* Send the requisite reply */
+		xmlnode *iq = xmlnode_new("iq");
+		xmlnode_set_attrib(iq, "to", from);
+		xmlnode_set_attrib(iq, "id", id);
+		xmlnode_set_attrib(iq, "type", "result");
+
+		purple_signal_emit(purple_connection_get_prpl(pc),
+		                   "jabber-sending-xmlnode", pc, &iq);
+		if (iq != NULL)
+			xmlnode_free(iq);
+	}
+
+	/* Cookie monster eats IQ stanzas; the prpl shouldn't keep processing */
+	return TRUE;
+}
+
 /**************************************************************************
  * Plugin stuff
  **************************************************************************/
@@ -830,6 +856,16 @@
 		                      PURPLE_CALLBACK(jabber_message_received), NULL);
 		purple_signal_connect(jabber_handle, "jabber-receiving-presence", plugin,
 		                      PURPLE_CALLBACK(jabber_presence_received), NULL);
+
+		/* IQ namespace signals */
+		purple_signal_emit(jabber_handle, "jabber-register-namespace-watcher",
+		                   "bogus_node", "super-duper-namespace");
+		/* The above is equivalent to doing:
+			int result = GPOINTER_TO_INT(purple_plugin_ipc_call(jabber_handle, "register_namespace_watcher", &ok, "bogus_node", "super-duper-namespace"));
+		 */
+
+		purple_signal_connect(jabber_handle, "jabber-watched-iq", plugin,
+		                      PURPLE_CALLBACK(jabber_watched_iq), NULL);
 	}
 
 	return TRUE;
@@ -838,8 +874,19 @@
 static gboolean
 plugin_unload(PurplePlugin *plugin)
 {
+	void *jabber_handle = purple_plugins_find_with_id("prpl-jabber");
+
 	purple_signals_disconnect_by_handle(plugin);
 
+	if (jabber_handle) {
+		/* Unregister watched namespaces */
+		purple_signal_emit(jabber_handle, "jabber-unregister-namespace-watcher",
+		                   "bogus_node", "super-duper-namespace");
+		/* The above is equivalent to doing:
+		   int result = GPOINTER_TO_INT(purple_plugin_ipc_call(jabber_handle, "unregister_namespace_watcher", &ok, "bogus_node", "super-duper-namespace"));
+		 */
+	}
+
 	return TRUE;
 }
 
--- a/libpurple/protocols/gg/buddylist.c	Mon May 25 19:27:33 2009 +0000
+++ b/libpurple/protocols/gg/buddylist.c	Mon Jun 08 18:28:31 2009 +0000
@@ -40,57 +40,33 @@
 {
 	GGPInfo *info = gc->proto_data;
 	PurpleAccount *account = purple_connection_get_account(gc);
-
-	PurpleBlistNode *gnode, *cnode, *bnode;
-	PurpleBuddy *buddy;
-	uin_t *userlist = NULL;
-	gchar *types = NULL;
-	int size = 0, ret = 0;
+	GSList *buddies;
+	uin_t *userlist;
+	gchar *types;
+	int i = 0, ret = 0;
+	int size;
 
-	for (gnode = purple_blist_get_root();
-	     gnode != NULL;
-	     gnode = purple_blist_node_get_sibling_next(gnode))
-	{
-		if (!PURPLE_BLIST_NODE_IS_GROUP(gnode))
-			continue;
-
-		for (cnode = purple_blist_node_get_first_child(gnode);
-		     cnode != NULL;
-		     cnode = purple_blist_node_get_sibling_next(cnode))
-		{
-			if (!PURPLE_BLIST_NODE_IS_CONTACT(cnode))
-				continue;
+	buddies = purple_find_buddies(account, NULL);
 
-			for (bnode = purple_blist_node_get_first_child(cnode);
-			     bnode != NULL;
-			     bnode = purple_blist_node_get_sibling_next(bnode))
-			{
-				const gchar *name = NULL;
-
-				if (!PURPLE_BLIST_NODE_IS_BUDDY(bnode))
-					continue;
-
-				buddy = (PurpleBuddy *)bnode;
+	size = g_slist_length(buddies);
+	userlist = g_new(uin_t, size);
+	types    = g_new(gchar, size);
 
-				if (purple_buddy_get_account(buddy) != account)
-					continue;
-
-				name = purple_buddy_get_name(buddy);
+	for (buddies = purple_find_buddies(account, NULL); buddies;
+			buddies = g_slist_delete_link(buddies, buddies), ++i)
+	{
+		PurpleBuddy *buddy = buddies->data;
+		const gchar *name = purple_buddy_get_name(buddy);
 
-				size++;
-				userlist = (uin_t *) g_renew(uin_t, userlist, size);
-				types    = (gchar *) g_renew(gchar, types, size);
-				userlist[size - 1] = ggp_str_to_uin(name);
-				types[size - 1]    = GG_USER_NORMAL;
-				purple_debug_info("gg", "ggp_buddylist_send: adding %d\n",
-						userlist[size - 1]);
-			}
-		}
+		userlist[i] = ggp_str_to_uin(name);
+		types[i]    = GG_USER_NORMAL;
+		purple_debug_info("gg", "ggp_buddylist_send: adding %d\n",
+		                  userlist[i]);
 	}
 
 	ret = gg_notify_ex(info->session, userlist, types, size);
 	purple_debug_info("gg", "send: ret=%d; size=%d\n", ret, size);
-	
+
 	if (userlist) {
 		g_free(userlist);
 		g_free(types);
@@ -178,105 +154,28 @@
 }
 /* }}} */
 
-/* void ggp_buddylist_offline(PurpleConnection *gc) {{{ */
-void ggp_buddylist_offline(PurpleConnection *gc)
-{
-	PurpleAccount *account = purple_connection_get_account(gc);
-	PurpleBlistNode *gnode, *cnode, *bnode;
-	PurpleBuddy *buddy;
-
-	for (gnode = purple_blist_get_root();
-	     gnode != NULL;
-	     gnode = purple_blist_node_get_sibling_next(gnode))
-	{
-		if (!PURPLE_BLIST_NODE_IS_GROUP(gnode))
-			continue;
-
-		for (cnode = purple_blist_node_get_first_child(gnode);
-		     cnode != NULL;
-		     cnode = purple_blist_node_get_sibling_next(cnode))
-		{
-			if (!PURPLE_BLIST_NODE_IS_CONTACT(cnode))
-				continue;
-
-			for (bnode = purple_blist_node_get_first_child(cnode);
-			     bnode != NULL;
-			     bnode = purple_blist_node_get_sibling_next(bnode))
-			{
-				const gchar *name = NULL;
-
-				if (!PURPLE_BLIST_NODE_IS_BUDDY(bnode))
-					continue;
-
-				buddy = (PurpleBuddy *)bnode;
-				
-				name = purple_buddy_get_name(buddy);
-
-				if (purple_buddy_get_account(buddy) != account)
-					continue;
-
-				purple_prpl_got_user_status(
-					account, name, "offline", NULL);
-
-				purple_debug_info("gg",
-					"ggp_buddylist_offline: gone: %s\n",
-					name);
-			}
-		}
-	}
-}
-/* }}} */
-
 /* char *ggp_buddylist_dump(PurpleAccount *account) {{{ */
 char *ggp_buddylist_dump(PurpleAccount *account)
 {
-	PurpleBlistNode *gnode, *cnode, *bnode;
-	PurpleGroup *group;
-	PurpleBuddy *buddy;
+	GSList *buddies;
 	GString *buddylist = g_string_sized_new(1024);
 	char *ptr;
 
-	for (gnode = purple_blist_get_root();
-	     gnode != NULL;
-	     gnode = purple_blist_node_get_sibling_next(gnode))
-	{
-		if (!PURPLE_BLIST_NODE_IS_GROUP(gnode))
-			continue;
-
-		group = (PurpleGroup *)gnode;
-
-		for (cnode = purple_blist_node_get_first_child(gnode);
-		     cnode != NULL;
-		     cnode = purple_blist_node_get_sibling_next(cnode))
-		{
-			if (!PURPLE_BLIST_NODE_IS_CONTACT(cnode))
-				continue;
+	for (buddies = purple_find_buddies(account, NULL); buddies;
+			buddies = g_slist_delete_link(buddies, buddies)) {
+		PurpleBuddy *buddy = buddies->data;
+		PurpleGroup *group = purple_buddy_get_group(buddy);
+		const char *bname = purple_buddy_get_name(buddy);
+		const char *gname = purple_group_get_name(group);
+		const char *alias = purple_buddy_get_alias(buddy);
 
-			for (bnode = purple_blist_node_get_first_child(cnode);
-			     bnode != NULL;
-			     bnode = purple_blist_node_get_sibling_next(bnode))
-			{
-				const gchar *name, *alias, *gname;
-
-				if (!PURPLE_BLIST_NODE_IS_BUDDY(bnode))
-					continue;
-
-				buddy = (PurpleBuddy *)bnode;
-				if (purple_buddy_get_account(buddy) != account)
-					continue;
+		if (alias == NULL)
+			alias = bname;
 
-				name = purple_buddy_get_name(buddy);
-				alias = purple_buddy_get_alias(buddy);
-				if(alias == NULL)
-					alias = name;
-				gname = purple_group_get_name(group);
-
-				g_string_append_printf(buddylist,
-						"%s;%s;%s;%s;%s;%s;%s;%s%s\r\n",
-						alias, alias, alias, alias,
-						"", gname, name, "", "");
-			}
-		}
+		g_string_append_printf(buddylist,
+				"%s;%s;%s;%s;%s;%s;%s;%s%s\r\n",
+				alias, alias, alias, alias,
+				"", gname, bname, "", "");
 	}
 
 	ptr = charset_convert(buddylist->str, "UTF-8", "CP1250");
--- a/libpurple/protocols/gg/buddylist.h	Mon May 25 19:27:33 2009 +0000
+++ b/libpurple/protocols/gg/buddylist.h	Mon Jun 08 18:28:31 2009 +0000
@@ -31,7 +31,7 @@
 ggp_buddylist_send(PurpleConnection *gc);
 
 /**
- * Load buddylist from server into the rooster.
+ * Load buddylist from server into the roster.
  *
  * @param gc PurpleConnection
  * @param buddylist Pointer to the buddylist that will be loaded.
@@ -41,14 +41,6 @@
 ggp_buddylist_load(PurpleConnection *gc, char *buddylist);
 
 /**
- * Set offline status for all buddies.
- *
- * @param gc Connection handler
- */
-void
-ggp_buddylist_offline(PurpleConnection *gc);
-
-/**
  * Get all the buddies in the current account.
  *
  * @param account Current account.
--- a/libpurple/protocols/gg/gg.c	Mon May 25 19:27:33 2009 +0000
+++ b/libpurple/protocols/gg/gg.c	Mon Jun 08 18:28:31 2009 +0000
@@ -1759,6 +1759,7 @@
 	PurpleStatus *status;
 	struct gg_login_params *glp;
 	GGPInfo *info;
+	const char *address;
 
 	if (ggp_setup_proxy(account) == -1)
 		return;
@@ -1789,6 +1790,26 @@
 	glp->status = ggp_to_gg_status(status, &glp->status_descr);
 	glp->tls = 0;
 
+	address = purple_account_get_string(account, "gg_server", "");
+	if (address && *address) {
+		struct in_addr *addr = gg_gethostbyname(address);
+
+		purple_debug_info("gg", "Using gg server given by user (%s)\n", address);
+
+		if (addr == NULL) {
+			purple_debug_error("gg", "gg_gethostbyname returned error (%d): %s\n",
+			                   errno, g_strerror(errno));
+			purple_connection_error_reason(gc,
+				PURPLE_CONNECTION_ERROR_NETWORK_ERROR, /* should this be a settings error? */
+				_("Unable to resolve server"));
+			return;
+		}
+
+		glp->server_addr = inet_addr(inet_ntoa(*addr));
+		glp->server_port = 8074;
+	} else
+		purple_debug_info("gg", "Trying to retrieve address from gg appmsg service\n");
+
 	info->session = gg_login(glp);
 	if (info->session == NULL) {
 		purple_connection_error_reason (gc,
@@ -1837,8 +1858,6 @@
 	if (gc->inpa > 0)
 		purple_input_remove(gc->inpa);
 
-	ggp_buddylist_offline(gc);
-
 	purple_debug_info("gg", "Connection closed.\n");
 }
 
@@ -2369,6 +2388,11 @@
 	prpl_info.protocol_options = g_list_append(prpl_info.protocol_options,
 						   option);
 
+	option = purple_account_option_string_new(_("GG server"),
+			"gg_server", "");
+	prpl_info.protocol_options = g_list_append(prpl_info.protocol_options,
+			option);
+
 	my_protocol = plugin;
 
 	gg_debug_handler = purple_gg_debug_handler;
--- a/libpurple/protocols/irc/cmds.c	Mon May 25 19:27:33 2009 +0000
+++ b/libpurple/protocols/irc/cmds.c	Mon Jun 08 18:28:31 2009 +0000
@@ -142,10 +142,10 @@
 		if (purple_conversation_get_type(convo) == PURPLE_CONV_TYPE_CHAT)
 			serv_got_chat_in(gc, purple_conv_chat_get_id(PURPLE_CONV_CHAT(convo)),
 			                 purple_connection_get_display_name(gc),
-			                 0, action, time(NULL));
+			                 PURPLE_MESSAGE_SEND, action, time(NULL));
 		else
 			purple_conv_im_write(PURPLE_CONV_IM(convo), purple_connection_get_display_name(gc),
-			                     action, 0, time(NULL));
+			                     action, PURPLE_MESSAGE_SEND, time(NULL));
 		g_free(action);
 	}
 
--- a/libpurple/protocols/irc/irc.c	Mon May 25 19:27:33 2009 +0000
+++ b/libpurple/protocols/irc/irc.c	Mon Jun 08 18:28:31 2009 +0000
@@ -306,7 +306,7 @@
 	if (strpbrk(username, " \t\v\r\n") != NULL) {
 		purple_connection_error_reason (gc,
 			PURPLE_CONNECTION_ERROR_INVALID_SETTINGS,
-			_("IRC nicks may not contain whitespace"));
+			_("IRC nick and server may not contain whitespace"));
 		return;
 	}
 
--- a/libpurple/protocols/irc/msgs.c	Mon May 25 19:27:33 2009 +0000
+++ b/libpurple/protocols/irc/msgs.c	Mon Jun 08 18:28:31 2009 +0000
@@ -78,7 +78,7 @@
 {
 	PurpleConnection *gc;
 	PurpleStatus *status;
-	PurpleBlistNode *gnode, *cnode, *bnode;
+	GSList *buddies;
 	PurpleAccount *account;
 
 	if ((gc = purple_account_get_connection(irc->account)) == NULL
@@ -97,33 +97,13 @@
 	}
 
 	/* this used to be in the core, but it's not now */
-	for (gnode = purple_blist_get_root();
-	     gnode;
-	     gnode = purple_blist_node_get_sibling_next(gnode))
+	for (buddies = purple_find_buddies(account, NULL); buddies;
+			buddies = g_slist_delete_link(buddies, buddies))
 	{
-		if(!PURPLE_BLIST_NODE_IS_GROUP(gnode))
-			continue;
-		for(cnode = purple_blist_node_get_first_child(gnode);
-		    cnode;
-		    cnode = purple_blist_node_get_sibling_next(cnode))
-		{
-			if(!PURPLE_BLIST_NODE_IS_CONTACT(cnode))
-				continue;
-			for(bnode = purple_blist_node_get_first_child(cnode);
-			    bnode;
-			    bnode = purple_blist_node_get_sibling_next(bnode))
-			{
-				PurpleBuddy *b;
-				if(!PURPLE_BLIST_NODE_IS_BUDDY(bnode))
-					continue;
-				b = (PurpleBuddy *)bnode;
-				if(purple_buddy_get_account(b) == account) {
-					struct irc_buddy *ib = g_new0(struct irc_buddy, 1);
-					ib->name = g_strdup(purple_buddy_get_name(b));
-					g_hash_table_insert(irc->buddies, ib->name, ib);
-				}
-			}
-		}
+		PurpleBuddy *b = buddies->data;
+		struct irc_buddy *ib = g_new0(struct irc_buddy, 1);
+		ib->name = g_strdup(purple_buddy_get_name(b));
+		g_hash_table_insert(irc->buddies, ib->name, ib);
 	}
 
 	irc_blist_timeout(irc);
--- a/libpurple/protocols/jabber/auth.c	Mon May 25 19:27:33 2009 +0000
+++ b/libpurple/protocols/jabber/auth.c	Mon Jun 08 18:28:31 2009 +0000
@@ -989,7 +989,20 @@
 			response = xmlnode_new("response");
 			xmlnode_set_namespace(response, "urn:ietf:params:xml:ns:xmpp-sasl");
 			if (clen > 0) {
-				enc_out = purple_base64_encode((unsigned char*)c_out, clen);
+				/* Cyrus SASL 2.1.22 appears to contain code to add the charset
+				 * to the response but there is no possibility it will be executed.
+				 * My reading of the digestmd5 plugin indicates the username and
+				 * realm are always encoded in UTF-8 (they seem to be the values
+				 * we pass in), so we need to ensure charset=utf-8 is set.
+				 */
+				if (strstr(c_out, ",charset="))
+					enc_out = purple_base64_encode((unsigned char*)c_out, clen);
+				else {
+					char *tmp = g_strdup_printf("%s,charset=utf-8", c_out);
+					enc_out = purple_base64_encode((unsigned char*)tmp, clen + 14);
+					g_free(tmp);
+				}
+
 				xmlnode_insert_data(response, enc_out, -1);
 				g_free(enc_out);
 			}
--- a/libpurple/protocols/jabber/buddy.c	Mon May 25 19:27:33 2009 +0000
+++ b/libpurple/protocols/jabber/buddy.c	Mon Jun 08 18:28:31 2009 +0000
@@ -47,7 +47,7 @@
 	char *jid;
 	GSList *ids;
 	GHashTable *resources;
-	int timeout_handle;
+	guint timeout_handle;
 	GSList *vcard_imgids;
 	PurpleNotifyUserInfo *user_info;
 	long last_seconds;
@@ -69,7 +69,7 @@
 		gboolean create)
 {
 	JabberBuddy *jb;
-	const char *realname;
+	char *realname;
 
 	if (js->buddies == NULL)
 		return NULL;
@@ -81,8 +81,9 @@
 
 	if(!jb && create) {
 		jb = g_new0(JabberBuddy, 1);
-		g_hash_table_insert(js->buddies, g_strdup(realname), jb);
-	}
+		g_hash_table_insert(js->buddies, realname, jb);
+	} else
+		g_free(realname);
 
 	return jb;
 }
@@ -2520,3 +2521,22 @@
 	return jabber_resource_has_capability(jbr, cap);
 }
 
+const gchar *
+jabber_resource_get_identity_category_type(const JabberBuddyResource *jbr,
+	const gchar *category)
+{
+	const GList *iter = NULL;
+	
+	if (jbr->caps.info) {
+		for (iter = jbr->caps.info->identities ; iter ; iter = g_list_next(iter)) {
+			const JabberIdentity *identity = 
+				(JabberIdentity *) iter->data;
+		
+			if (strcmp(identity->category, category) == 0) {
+				return identity->type;
+			}
+		}
+	}
+		
+	return NULL;
+}
--- a/libpurple/protocols/jabber/buddy.h	Mon May 25 19:27:33 2009 +0000
+++ b/libpurple/protocols/jabber/buddy.h	Mon Jun 08 18:28:31 2009 +0000
@@ -123,4 +123,8 @@
 										const gchar *cap);
 gboolean jabber_buddy_has_capability(const JabberBuddy *jb, const gchar *cap);
 
+const gchar *
+jabber_resource_get_identity_category_type(const JabberBuddyResource *jbr,
+	const gchar *category);
+
 #endif /* PURPLE_JABBER_BUDDY_H_ */
--- a/libpurple/protocols/jabber/disco.c	Mon May 25 19:27:33 2009 +0000
+++ b/libpurple/protocols/jabber/disco.c	Mon Jun 08 18:28:31 2009 +0000
@@ -1,5 +1,5 @@
 /*
- * purple - Jabber Protocol Plugin
+ * purple - Jabber Service Discovery
  *
  * Copyright (C) 2003, Nathan Walp <faceprint@faceprint.com>
  *
@@ -22,6 +22,7 @@
 #include "internal.h"
 #include "prefs.h"
 #include "debug.h"
+#include "request.h"
 
 #include "adhoccommands.h"
 #include "buddy.h"
@@ -40,6 +41,11 @@
 	JabberDiscoInfoCallback *callback;
 };
 
+struct _jabber_disco_items_cb_data {
+	gpointer data;
+	JabberDiscoItemsCallback *callback;
+};
+
 #define SUPPORT_FEATURE(x) { \
 	feature = xmlnode_new_child(query, "feature"); \
 	xmlnode_set_attrib(feature, "var", x); \
@@ -148,14 +154,26 @@
 			 */
 			xmlnode *feature = xmlnode_new_child(query, "feature");
 			xmlnode_set_attrib(feature, "var", "http://www.google.com/xmpp/protocol/voice/v1");
+		} else if (g_str_equal(node, CAPS0115_NODE "#" "video-v1")) {
+			/*
+			 * HUGE HACK! We advertise this ext (see jabber_presence_create_js
+			 * where we add <c/> to the <presence/>) for the Google Talk
+			 * clients that don't actually check disco#info features.
+			 *
+			 * This specific feature is redundant but is what
+			 * node='http://mail.google.com/xmpp/client/caps', ver='1.1'
+			 * advertises as 'video-v1'.
+			 */
+			xmlnode *feature = xmlnode_new_child(query, "feature");
+			xmlnode_set_attrib(feature, "var", "http://www.google.com/xmpp/protocol/video/v1");
 #endif
 		} else {
 			xmlnode *error, *inf;
-				
+
 			/* XXX: gross hack, implement jabber_iq_set_type or something */
 			xmlnode_set_attrib(iq->node, "type", "error");
 			iq->type = JABBER_IQ_ERROR;
-			
+
 			error = xmlnode_new_child(query, "error");
 			xmlnode_set_attrib(error, "code", "404");
 			xmlnode_set_attrib(error, "type", "cancel");
@@ -164,13 +182,42 @@
 		}
 		g_free(node_uri);
 		jabber_iq_send(iq);
-	} else if(type == JABBER_IQ_RESULT) {
+	} else if (type == JABBER_IQ_SET) {
+		/* wtf? seriously. wtf‽ */
+		JabberIq *iq = jabber_iq_new(js, JABBER_IQ_ERROR);
+		xmlnode *error, *bad_request;
+
+		/* Free the <query/> */
+		xmlnode_free(xmlnode_get_child(iq->node, "query"));
+		/* Add an error */
+		error = xmlnode_new_child(iq->node, "error");
+		xmlnode_set_attrib(error, "type", "modify");
+		bad_request = xmlnode_new_child(error, "bad-request");
+		xmlnode_set_namespace(bad_request, "urn:ietf:params:xml:ns:xmpp-stanzas");
+
+		jabber_iq_set_id(iq, id);
+		xmlnode_set_attrib(iq->node, "to", from);
+
+		jabber_iq_send(iq);
+	}
+}
+
+static void jabber_disco_info_cb(JabberStream *js, const char *from,
+                                 JabberIqType type, const char *id,
+                                 xmlnode *packet, gpointer data)
+{
+	struct _jabber_disco_info_cb_data *jdicd = data;
+	xmlnode *query;
+
+	query = xmlnode_get_child_with_namespace(packet, "query",
+				"http://jabber.org/protocol/disco#info");
+
+	if (type == JABBER_IQ_RESULT && query) {
 		xmlnode *child;
 		JabberID *jid;
 		JabberBuddy *jb;
 		JabberBuddyResource *jbr = NULL;
 		JabberCapabilities capabilities = JABBER_CAP_NONE;
-		struct _jabber_disco_info_cb_data *jdicd;
 
 		if((jid = jabber_id_new(from))) {
 			if(jid->resource && (jb = jabber_buddy_find(js, from, TRUE)))
@@ -181,7 +228,7 @@
 		if(jbr)
 			capabilities = jbr->capabilities;
 
-		for(child = in_query->child; child; child = child->next) {
+		for(child = query->child; child; child = child->next) {
 			if(child->type != XMLNODE_TYPE_TAG)
 				continue;
 
@@ -233,6 +280,8 @@
 					capabilities |= JABBER_CAP_IQ_REGISTER;
 				else if(!strcmp(var, "urn:xmpp:ping"))
 					capabilities |= JABBER_CAP_PING;
+				else if(!strcmp(var, "http://jabber.org/protocol/disco#items"))
+					capabilities |= JABBER_CAP_ITEMS;
 				else if(!strcmp(var, "http://jabber.org/protocol/commands")) {
 					capabilities |= JABBER_CAP_ADHOC;
 				}
@@ -248,19 +297,12 @@
 		if(jbr)
 			jbr->capabilities = capabilities;
 
-		if((jdicd = g_hash_table_lookup(js->disco_callbacks, from))) {
-			jdicd->callback(js, from, capabilities, jdicd->data);
-			g_hash_table_remove(js->disco_callbacks, from);
-		}
-	} else if(type == JABBER_IQ_ERROR) {
+		jdicd->callback(js, from, capabilities, jdicd->data);
+	} else { /* type == JABBER_IQ_ERROR or query == NULL */
 		JabberID *jid;
 		JabberBuddy *jb;
 		JabberBuddyResource *jbr = NULL;
 		JabberCapabilities capabilities = JABBER_CAP_NONE;
-		struct _jabber_disco_info_cb_data *jdicd;
-
-		if(!(jdicd = g_hash_table_lookup(js->disco_callbacks, from)))
-			return;
 
 		if((jid = jabber_id_new(from))) {
 			if(jid->resource && (jb = jabber_buddy_find(js, from, TRUE)))
@@ -272,7 +314,6 @@
 			capabilities = jbr->capabilities;
 
 		jdicd->callback(js, from, capabilities, jdicd->data);
-		g_hash_table_remove(js->disco_callbacks, from);
 	}
 }
 
@@ -517,10 +558,10 @@
 	jdicd->data = data;
 	jdicd->callback = callback;
 
-	g_hash_table_insert(js->disco_callbacks, g_strdup(who), jdicd);
-
 	iq = jabber_iq_new_query(js, JABBER_IQ_GET, "http://jabber.org/protocol/disco#info");
 	xmlnode_set_attrib(iq->node, "to", who);
 
+	jabber_iq_set_callback(iq, jabber_disco_info_cb, jdicd);
 	jabber_iq_send(iq);
 }
+
--- a/libpurple/protocols/jabber/disco.h	Mon May 25 19:27:33 2009 +0000
+++ b/libpurple/protocols/jabber/disco.h	Mon Jun 08 18:28:31 2009 +0000
@@ -1,5 +1,5 @@
 /**
- * @file disco.h service discovery handlers
+ * @file disco.h Jabber Service Discovery
  *
  * purple
  *
@@ -24,9 +24,18 @@
 
 #include "jabber.h"
 
+typedef struct _JabberDiscoItem {
+	const char *jid;  /* MUST */
+	const char *node; /* SHOULD */
+	const char *name; /* MAY */
+} JabberDiscoItem;
+
 typedef void (JabberDiscoInfoCallback)(JabberStream *js, const char *who,
 		JabberCapabilities capabilities, gpointer data);
 
+typedef void (JabberDiscoItemsCallback)(JabberStream *js, const char *jid,
+		const char *node, GSList *items, gpointer data);
+
 void jabber_disco_info_parse(JabberStream *js, const char *from,
                              JabberIqType type, const char *id, xmlnode *in_query);
 void jabber_disco_items_parse(JabberStream *js, const char *from,
--- a/libpurple/protocols/jabber/google.c	Mon May 25 19:27:33 2009 +0000
+++ b/libpurple/protocols/jabber/google.c	Mon Jun 08 18:28:31 2009 +0000
@@ -36,6 +36,9 @@
 
 #ifdef USE_VV
 
+#define NS_GOOGLE_VIDEO "http://www.google.com/session/video"
+#define NS_GOOGLE_PHONE "http://www.google.com/session/phone"
+
 typedef struct {
 	char *id;
 	char *initiator;
@@ -55,6 +58,7 @@
 	PurpleMedia *media;
 	JabberStream *js;
 	char *remote_jid;
+	gboolean video;
 } GoogleSession;
 
 static gboolean
@@ -104,9 +108,13 @@
 google_session_send_candidates(PurpleMedia *media, gchar *session_id,
 		gchar *participant, GoogleSession *session)
 {
-	GList *candidates = purple_media_get_local_candidates(session->media, "google-voice",
-							      session->remote_jid);
+	GList *candidates = purple_media_get_local_candidates(
+			session->media, session_id, session->remote_jid);
 	PurpleMediaCandidate *transport;
+	gboolean video = FALSE;
+
+	if (!strcmp(session_id, "google-video"))
+		video = TRUE;
 
 	for (;candidates;candidates = candidates->next) {
 		JabberIq *iq;
@@ -114,11 +122,10 @@
 		PurpleMediaCandidateType type;
 		xmlnode *sess;
 		xmlnode *candidate;
+		guint component_id;
 		transport = (PurpleMediaCandidate*)(candidates->data);
-
-		if (purple_media_candidate_get_component_id(transport)
-				!= PURPLE_MEDIA_COMPONENT_RTP)
-			continue;
+		component_id = purple_media_candidate_get_component_id(
+				transport);
 
 		iq = jabber_iq_new(session->js, JABBER_IQ_SET);
 		sess = google_session_create_xmlnode(session, "candidates");
@@ -139,7 +146,11 @@
 
 		xmlnode_set_attrib(candidate, "address", ip);
 		xmlnode_set_attrib(candidate, "port", port);
-		xmlnode_set_attrib(candidate, "name", "rtp");
+		xmlnode_set_attrib(candidate, "name",
+				component_id == PURPLE_MEDIA_COMPONENT_RTP ?
+				video ? "video_rtp" : "rtp" :
+				component_id == PURPLE_MEDIA_COMPONENT_RTCP ?
+				video ? "video_rtcp" : "rtcp" : "none");
 		xmlnode_set_attrib(candidate, "username", username);
 		/*
 		 * As of this writing, Farsight 2 in Google compatibility
@@ -205,13 +216,38 @@
 			google_session_send_candidates(session->media,
 					"google-voice", session->remote_jid,
 					session);
+			google_session_send_candidates(session->media,
+					"google-video", session->remote_jid,
+					session);
 			xmlnode_set_attrib(iq->node, "to", session->remote_jid);
 			xmlnode_set_attrib(iq->node, "from", me);
 			sess = google_session_create_xmlnode(session, "accept");
 		}
 		xmlnode_insert_child(iq->node, sess);
 		desc = xmlnode_new_child(sess, "description");
-		xmlnode_set_namespace(desc, "http://www.google.com/session/phone");
+		if (session->video)
+			xmlnode_set_namespace(desc, NS_GOOGLE_VIDEO);
+		else
+			xmlnode_set_namespace(desc, NS_GOOGLE_PHONE);
+
+		codecs = purple_media_get_codecs(media, "google-video");
+
+		for (iter = codecs; iter; iter = g_list_next(iter)) {
+			PurpleMediaCodec *codec = (PurpleMediaCodec*)iter->data;
+			gchar *id = g_strdup_printf("%d",
+					purple_media_codec_get_id(codec));
+			gchar *encoding_name =
+					purple_media_codec_get_encoding_name(codec);
+			payload = xmlnode_new_child(desc, "payload-type");
+			xmlnode_set_attrib(payload, "id", id);
+			xmlnode_set_attrib(payload, "name", encoding_name);
+			xmlnode_set_attrib(payload, "width", "320");
+			xmlnode_set_attrib(payload, "height", "200");
+			xmlnode_set_attrib(payload, "framerate", "30");
+			g_free(encoding_name);
+			g_free(id);
+		}
+		purple_media_codec_list_free(codecs);
 
 		codecs = purple_media_get_codecs(media, "google-voice");
 
@@ -224,8 +260,17 @@
 			gchar *clock_rate = g_strdup_printf("%d",
 					purple_media_codec_get_clock_rate(codec));
 			payload = xmlnode_new_child(desc, "payload-type");
+			if (session->video)
+				xmlnode_set_namespace(payload, NS_GOOGLE_PHONE);
 			xmlnode_set_attrib(payload, "id", id);
-			xmlnode_set_attrib(payload, "name", encoding_name);
+			/*
+			 * Hack to make Gmail accept speex as the codec.
+			 * It shouldn't have to be case sensitive.
+			 */
+			if (purple_strequal(encoding_name, "SPEEX"))
+				xmlnode_set_attrib(payload, "name", "speex");
+			else
+				xmlnode_set_attrib(payload, "name", encoding_name);
 			xmlnode_set_attrib(payload, "clockrate", clock_rate);
 			g_free(clock_rate);
 			g_free(encoding_name);
@@ -235,10 +280,14 @@
 
 		jabber_iq_send(iq);
 
-		if (is_initiator)
+		if (is_initiator) {
 			google_session_send_candidates(session->media,
 					"google-voice", session->remote_jid,
 					session);
+			google_session_send_candidates(session->media,
+					"google-video", session->remote_jid,
+					session);
+		}
 
 		g_signal_handlers_disconnect_by_func(G_OBJECT(session->media),
 				G_CALLBACK(google_session_ready), session);
@@ -339,6 +388,9 @@
 	session->js = js;
 	session->remote_jid = jid;
 
+	if (type & PURPLE_MEDIA_VIDEO)
+		session->video = TRUE;
+
 	session->media = purple_media_manager_create_media(
 			purple_media_manager_get(),
 			purple_connection_get_account(js->gc),
@@ -349,8 +401,12 @@
 	params = jabber_google_session_get_params(js, &num_params);
 
 	if (purple_media_add_stream(session->media, "google-voice",
-				session->remote_jid, PURPLE_MEDIA_AUDIO,
-				TRUE, "nice", num_params, params) == FALSE) {
+			session->remote_jid, PURPLE_MEDIA_AUDIO,
+			TRUE, "nice", num_params, params) == FALSE ||
+			(session->video && purple_media_add_stream(
+			session->media, "google-video",
+			session->remote_jid, PURPLE_MEDIA_VIDEO,
+			TRUE, "nice", num_params, params) == FALSE)) {
 		purple_media_error(session->media, "Error adding stream.");
 		purple_media_stream_info(session->media,
 				PURPLE_MEDIA_INFO_HANGUP, NULL, NULL, TRUE);
@@ -378,10 +434,10 @@
 google_session_handle_initiate(JabberStream *js, GoogleSession *session, xmlnode *sess, const char *iq_id)
 {
 	JabberIq *result;
-	GList *codecs = NULL;
+	GList *codecs = NULL, *video_codecs = NULL;
 	xmlnode *desc_element, *codec_element;
 	PurpleMediaCodec *codec;
-	const char *id, *encoding_name,  *clock_rate;
+	const char *xmlns;
 	GParameter *params;
 	guint num_params;
 
@@ -390,6 +446,19 @@
 		return;
 	}
 
+	desc_element = xmlnode_get_child(sess, "description");
+	xmlns = xmlnode_get_namespace(desc_element);
+
+	if (purple_strequal(xmlns, NS_GOOGLE_PHONE))
+		session->video = FALSE;
+	else if (purple_strequal(xmlns, NS_GOOGLE_VIDEO))
+		session->video = TRUE;
+	else {
+		purple_debug_error("jabber", "Received initiate with "
+				"invalid namespace %s.\n", xmlns);
+		return;
+	}
+
 	session->media = purple_media_manager_create_media(
 			purple_media_manager_get(),
 			purple_connection_get_account(js->gc),
@@ -401,7 +470,11 @@
 
 	if (purple_media_add_stream(session->media, "google-voice",
 			session->remote_jid, PURPLE_MEDIA_AUDIO, FALSE,
-			"nice", num_params, params) == FALSE) {
+			"nice", num_params, params) == FALSE ||
+			(session->video && purple_media_add_stream(
+			session->media, "google-video",
+			session->remote_jid, PURPLE_MEDIA_VIDEO,
+			FALSE, "nice", num_params, params) == FALSE)) {
 		purple_media_error(session->media, "Error adding stream.");
 		purple_media_stream_info(session->media,
 				PURPLE_MEDIA_INFO_HANGUP, NULL, NULL, TRUE);
@@ -412,23 +485,55 @@
 
 	g_free(params);
 
-	desc_element = xmlnode_get_child(sess, "description");
+	for (codec_element = xmlnode_get_child(desc_element, "payload-type");
+	     codec_element; codec_element = codec_element->next) {
+		const char *id, *encoding_name,  *clock_rate,
+				*width, *height, *framerate;
+		gboolean video;
+		if (codec_element->name &&
+				strcmp(codec_element->name, "payload-type"))
+			continue;
 
-	for (codec_element = xmlnode_get_child(desc_element, "payload-type");
-	     codec_element;
-	     codec_element = xmlnode_get_next_twin(codec_element)) {
+		xmlns = xmlnode_get_namespace(codec_element);
 		encoding_name = xmlnode_get_attrib(codec_element, "name");
 		id = xmlnode_get_attrib(codec_element, "id");
-		clock_rate = xmlnode_get_attrib(codec_element, "clockrate");
+
+		if (!session->video ||
+				(xmlns && !strcmp(xmlns, NS_GOOGLE_PHONE))) {
+			clock_rate = xmlnode_get_attrib(
+					codec_element, "clockrate");
+			video = FALSE;
+		} else {
+			width = xmlnode_get_attrib(codec_element, "width");
+			height = xmlnode_get_attrib(codec_element, "height");
+			framerate = xmlnode_get_attrib(
+					codec_element, "framerate");
+			clock_rate = "90000";
+			video = TRUE;
+		}
 
 		if (id) {
-			codec = purple_media_codec_new(atoi(id), encoding_name, PURPLE_MEDIA_AUDIO,
-					     clock_rate ? atoi(clock_rate) : 0);
-			codecs = g_list_append(codecs, codec);
+			codec = purple_media_codec_new(atoi(id), encoding_name,
+					video ?	PURPLE_MEDIA_VIDEO :
+					PURPLE_MEDIA_AUDIO,
+					clock_rate ? atoi(clock_rate) : 0);
+			if (video)
+				video_codecs = g_list_append(
+						video_codecs, codec);
+			else
+				codecs = g_list_append(codecs, codec);
 		}
 	}
 
-	purple_media_set_remote_codecs(session->media, "google-voice", session->remote_jid, codecs);
+	if (codecs)
+		purple_media_set_remote_codecs(session->media, "google-voice",
+				session->remote_jid, codecs);
+	if (video_codecs)
+		purple_media_set_remote_codecs(session->media, "google-video",
+				session->remote_jid, video_codecs);
+
+	purple_media_codec_list_free(codecs);
+	purple_media_codec_list_free(video_codecs);
 
 	g_signal_connect_swapped(G_OBJECT(session->media), "accepted",
 			G_CALLBACK(google_session_ready), session);
@@ -442,8 +547,6 @@
 	g_signal_connect(G_OBJECT(session->media), "stream-info",
 			G_CALLBACK(google_session_stream_info_cb), session);
 
-	purple_media_codec_list_free(codecs);
-
 	result = jabber_iq_new(js, JABBER_IQ_RESULT);
 	jabber_iq_set_id(result, iq_id);
 	xmlnode_set_attrib(result->node, "to", session->remote_jid);
@@ -454,19 +557,22 @@
 google_session_handle_candidates(JabberStream  *js, GoogleSession *session, xmlnode *sess, const char *iq_id)
 {
 	JabberIq *result;
-	GList *list = NULL;
+	GList *list = NULL, *video_list = NULL;
 	xmlnode *cand;
 	static int name = 0;
 	char n[4];
 
-	for (cand = xmlnode_get_child(sess, "candidate"); cand; cand = xmlnode_get_next_twin(cand)) {
+	for (cand = xmlnode_get_child(sess, "candidate"); cand;
+			cand = xmlnode_get_next_twin(cand)) {
 		PurpleMediaCandidate *info;
+		const gchar *cname = xmlnode_get_attrib(cand, "name");
 		const gchar *type = xmlnode_get_attrib(cand, "type");
 		const gchar *protocol = xmlnode_get_attrib(cand, "protocol");
 		const gchar *address = xmlnode_get_attrib(cand, "address");
 		const gchar *port = xmlnode_get_attrib(cand, "port");
+		guint component_id;
 
-		if (type && address && port) {
+		if (cname && type && address && port) {
 			PurpleMediaCandidateType candidate_type;
 
 			g_snprintf(n, sizeof(n), "S%d", name++);
@@ -480,7 +586,13 @@
 			else
 				candidate_type = PURPLE_MEDIA_CANDIDATE_TYPE_HOST;
 
-			info = purple_media_candidate_new(n, PURPLE_MEDIA_COMPONENT_RTP,
+			if (purple_strequal(cname, "rtcp") ||
+					purple_strequal(cname, "video_rtcp"))
+				component_id = PURPLE_MEDIA_COMPONENT_RTCP;
+			else
+				component_id = PURPLE_MEDIA_COMPONENT_RTP;
+
+			info = purple_media_candidate_new(n, component_id,
 					candidate_type,
 					purple_strequal(protocol, "udp") ?
 							PURPLE_MEDIA_NETWORK_PROTOCOL_UDP :
@@ -489,12 +601,23 @@
 					atoi(port));
 			g_object_set(info, "username", xmlnode_get_attrib(cand, "username"),
 					"password", xmlnode_get_attrib(cand, "password"), NULL);
-			list = g_list_append(list, info);
+			if (!strncmp(cname, "video_", 6))
+				video_list = g_list_append(video_list, info);
+			else
+				list = g_list_append(list, info);
 		}
 	}
 
-	purple_media_add_remote_candidates(session->media, "google-voice", session->remote_jid, list);
+	if (list)
+		purple_media_add_remote_candidates(
+				session->media, "google-voice",
+				session->remote_jid, list);
+	if (video_list)
+		purple_media_add_remote_candidates(
+				session->media, "google-video",
+				session->remote_jid, video_list);
 	purple_media_candidate_list_free(list);
+	purple_media_candidate_list_free(video_list);
 
 	result = jabber_iq_new(js, JABBER_IQ_RESULT);
 	jabber_iq_set_id(result, iq_id);
@@ -506,28 +629,57 @@
 google_session_handle_accept(JabberStream *js, GoogleSession *session, xmlnode *sess, const char *iq_id)
 {
 	xmlnode *desc_element = xmlnode_get_child(sess, "description");
-	xmlnode *codec_element = xmlnode_get_child(desc_element, "payload-type");
-	GList *codecs = NULL;
+	xmlnode *codec_element = xmlnode_get_child(
+			desc_element, "payload-type");
+	GList *codecs = NULL, *video_codecs = NULL;
 	JabberIq *result = NULL;
+	const gchar *xmlns = xmlnode_get_namespace(desc_element);
+	gboolean video = (xmlns && !strcmp(xmlns, NS_GOOGLE_VIDEO));
+
+	for (; codec_element; codec_element = codec_element->next) {
+		const gchar *xmlns, *encoding_name, *id,
+				*clock_rate, *width, *height, *framerate;
+		gboolean video_codec = FALSE;
+
+		if (!purple_strequal(codec_element->name, "payload-type"))
+			continue;
 
-	for (; codec_element; codec_element =
-			xmlnode_get_next_twin(codec_element)) {
-		const gchar *encoding_name =
-				xmlnode_get_attrib(codec_element, "name");
-		const gchar *id = xmlnode_get_attrib(codec_element, "id");
-		const gchar *clock_rate =
-				xmlnode_get_attrib(codec_element, "clockrate");
+		xmlns = xmlnode_get_namespace(codec_element);
+		encoding_name =	xmlnode_get_attrib(codec_element, "name");
+		id = xmlnode_get_attrib(codec_element, "id");
+
+		if (!video || purple_strequal(xmlns, NS_GOOGLE_PHONE))
+			clock_rate = xmlnode_get_attrib(
+					codec_element, "clockrate");
+		else {
+			clock_rate = "90000";
+			width = xmlnode_get_attrib(codec_element, "width");
+			height = xmlnode_get_attrib(codec_element, "height");
+			framerate = xmlnode_get_attrib(
+					codec_element, "framerate");
+			video_codec = TRUE;
+		}
 
 		if (id && encoding_name) {
-			PurpleMediaCodec *codec = purple_media_codec_new(atoi(id),
-					encoding_name, PURPLE_MEDIA_AUDIO,
+			PurpleMediaCodec *codec = purple_media_codec_new(
+					atoi(id), encoding_name,
+					video_codec ? PURPLE_MEDIA_VIDEO :
+					PURPLE_MEDIA_AUDIO,
 					clock_rate ? atoi(clock_rate) : 0);
-			codecs = g_list_append(codecs, codec);
+			if (video_codec)
+				video_codecs = g_list_append(
+						video_codecs, codec);
+			else
+				codecs = g_list_append(codecs, codec);
 		}
 	}
 
-	purple_media_set_remote_codecs(session->media, "google-voice",
-			session->remote_jid, codecs);
+	if (codecs)
+		purple_media_set_remote_codecs(session->media, "google-voice",
+				session->remote_jid, codecs);
+	if (video_codecs)
+		purple_media_set_remote_codecs(session->media, "google-video",
+				session->remote_jid, video_codecs);
 
 	purple_media_stream_info(session->media, PURPLE_MEDIA_INFO_ACCEPT,
 			NULL, NULL, FALSE);
@@ -667,6 +819,8 @@
 
 			purple_notify_emails(js->gc, count, FALSE, NULL, NULL, default_tos, NULL, NULL, NULL);
 			g_free(bare_jid);
+		} else {
+			purple_notify_emails(js->gc, count, FALSE, NULL, NULL, NULL, NULL, NULL, NULL);
 		}
 
 		return;
--- a/libpurple/protocols/jabber/google.h	Mon May 25 19:27:33 2009 +0000
+++ b/libpurple/protocols/jabber/google.h	Mon Jun 08 18:28:31 2009 +0000
@@ -28,6 +28,7 @@
 #include "media.h"
 
 #define GOOGLE_VOICE_CAP "http://www.google.com/xmpp/protocol/voice/v1"
+#define GOOGLE_VIDEO_CAP "http://www.google.com/xmpp/protocol/video/v1"
 #define GOOGLE_JINGLE_INFO_NAMESPACE "google:jingleinfo"
 
 void jabber_gmail_init(JabberStream *js);
--- a/libpurple/protocols/jabber/iq.c	Mon May 25 19:27:33 2009 +0000
+++ b/libpurple/protocols/jabber/iq.c	Mon Jun 08 18:28:31 2009 +0000
@@ -495,6 +495,8 @@
 	jabber_iq_register_handler("session", "http://www.google.com/session",
 		jabber_google_session_parse);
 #endif
+	jabber_iq_register_handler("block", "urn:xmpp:blocking", jabber_blocklist_parse_push);
+	jabber_iq_register_handler("unblock", "urn:xmpp:blocking", jabber_blocklist_parse_push);
 	jabber_iq_register_handler("time", "urn:xmpp:time", jabber_iq_time_parse);
 
 }
--- a/libpurple/protocols/jabber/jabber.c	Mon May 25 19:27:33 2009 +0000
+++ b/libpurple/protocols/jabber/jabber.c	Mon Jun 08 18:28:31 2009 +0000
@@ -23,6 +23,7 @@
 #include "account.h"
 #include "accountopt.h"
 #include "blist.h"
+#include "core.h"
 #include "cmds.h"
 #include "connection.h"
 #include "conversation.h"
@@ -84,10 +85,6 @@
 						  "xmlns:stream='http://etherx.jabber.org/streams' "
 						  "version='1.0'>",
 						  js->user->domain);
-	if (js->reinit)
-		/* Close down the current stream to keep the XML parser happy */
-		jabber_parser_close_stream(js);
-
 	/* setup the parser fresh for each stream */
 	jabber_parser_setup(js);
 	jabber_send_raw(js, open_stream, -1);
@@ -453,28 +450,31 @@
 	return len;
 }
 
-void jabber_send(JabberStream *js, xmlnode *packet)
+void jabber_send_signal_cb(PurpleConnection *pc, xmlnode **packet,
+                           gpointer unused)
 {
 	char *txt;
 	int len;
 
-	purple_signal_emit(jabber_plugin, "jabber-sending-xmlnode", js->gc, &packet);
-
-	/* if we get NULL back, we're done processing */
-	if(NULL == packet)
+	if (NULL == packet)
 		return;
 
-	txt = xmlnode_to_str(packet, &len);
-	jabber_send_raw(js, txt, len);
+	txt = xmlnode_to_str(*packet, &len);
+	jabber_send_raw(purple_connection_get_protocol_data(pc), txt, len);
 	g_free(txt);
 }
 
+void jabber_send(JabberStream *js, xmlnode *packet)
+{
+	purple_signal_emit(jabber_plugin, "jabber-sending-xmlnode", js->gc, &packet);
+}
+
 static gboolean jabber_keepalive_timeout(PurpleConnection *gc)
 {
 	JabberStream *js = gc->proto_data;
 	purple_connection_error_reason(gc, PURPLE_CONNECTION_ERROR_NETWORK_ERROR,
 					_("Ping timeout"));
-	js->keepalive_timeout = -1;
+	js->keepalive_timeout = 0;
 	return FALSE;
 }
 
@@ -482,7 +482,7 @@
 {
 	JabberStream *js = gc->proto_data;
 
-	if (js->keepalive_timeout == -1) {
+	if (js->keepalive_timeout == 0) {
 		jabber_keepalive_ping(js);
 		js->keepalive_timeout = purple_timeout_add_seconds(120,
 				(GSourceFunc)(jabber_keepalive_timeout), gc);
@@ -687,9 +687,6 @@
 
 static void tls_init(JabberStream *js)
 {
-	/* Close down the current stream to keep the XML parser happy */
-	jabber_parser_close_stream(js);
-
 	purple_input_remove(js->gc->inpa);
 	js->gc->inpa = 0;
 	js->gsc = purple_ssl_connect_with_host_fd(js->gc->account, js->fd,
@@ -773,8 +770,6 @@
 	js->fd = -1;
 	js->iq_callbacks = g_hash_table_new_full(g_str_hash, g_str_equal,
 			g_free, g_free);
-	js->disco_callbacks = g_hash_table_new_full(g_str_hash, g_str_equal,
-			g_free, g_free);
 	js->buddies = g_hash_table_new_full(g_str_hash, g_str_equal,
 			g_free, (GDestroyNotify)jabber_buddy_free);
 	js->chats = g_hash_table_new_full(g_str_hash, g_str_equal,
@@ -783,7 +778,7 @@
 	js->next_id = g_random_int();
 	js->write_buffer = purple_circ_buffer_new(512);
 	js->old_length = 0;
-	js->keepalive_timeout = -1;
+	js->keepalive_timeout = 0;
 	/* Set the default protocol version to 1.0. Overridden in parser.c. */
 	js->protocol_version = JABBER_PROTO_1_0;
 	js->sessions = NULL;
@@ -1096,6 +1091,24 @@
 	jabber_iq_send(iq);
 }
 
+static const struct {
+	const char *name;
+	const char *label;
+} registration_fields[] = {
+	{ "email",   N_("Email") },
+	{ "nick",    N_("Nickname") },
+	{ "first",   N_("First name") },
+	{ "last",    N_("Last name") },
+	{ "address", N_("Address") },
+	{ "city",    N_("City") },
+	{ "state",   N_("State") },
+	{ "zip",     N_("Postal code") },
+	{ "phone",   N_("Phone") },
+	{ "url",     N_("URL") },
+	{ "date",    N_("Date") },
+	{ NULL, NULL }
+};
+
 void jabber_register_parse(JabberStream *js, const char *from, JabberIqType type,
                            const char *id, xmlnode *query)
 {
@@ -1103,18 +1116,15 @@
 	PurpleRequestFields *fields;
 	PurpleRequestFieldGroup *group;
 	PurpleRequestField *field;
-	xmlnode *x, *y;
+	xmlnode *x, *y, *node;
 	char *instructions;
 	JabberRegisterCBData *cbdata;
 	gboolean registered = FALSE;
+	int i;
 
 	if (type != JABBER_IQ_RESULT)
 		return;
 
-	if (!from)
-		from = js->serverFQDN;
-	g_return_if_fail(from != NULL);
-
 	if(js->registration) {
 		/* get rid of the login thingy */
 		purple_connection_set_state(js->gc, PURPLE_CONNECTED);
@@ -1163,74 +1173,53 @@
 	group = purple_request_field_group_new(NULL);
 	purple_request_fields_add_group(fields, group);
 
-	if(js->registration)
-		field = purple_request_field_string_new("username", _("Username"), js->user->node, FALSE);
-	else
-		field = purple_request_field_string_new("username", _("Username"), NULL, FALSE);
-
-	purple_request_field_group_add_field(group, field);
-
-	if(js->registration)
-		field = purple_request_field_string_new("password", _("Password"),
-									purple_connection_get_password(js->gc), FALSE);
-	else
-		field = purple_request_field_string_new("password", _("Password"), NULL, FALSE);
-
-	purple_request_field_string_set_masked(field, TRUE);
-	purple_request_field_group_add_field(group, field);
-
-	if(xmlnode_get_child(query, "name")) {
+	if((node = xmlnode_get_child(query, "username"))) {
+		char *data = xmlnode_get_data(node);
+		if(js->registration)
+			field = purple_request_field_string_new("username", _("Username"), data ? data : js->user->node, FALSE);
+		else
+			field = purple_request_field_string_new("username", _("Username"), data, FALSE);
+
+		purple_request_field_group_add_field(group, field);
+		g_free(data);
+	}
+	if((node = xmlnode_get_child(query, "password"))) {
+		if(js->registration)
+			field = purple_request_field_string_new("password", _("Password"),
+										purple_connection_get_password(js->gc), FALSE);
+		else {
+			char *data = xmlnode_get_data(node);
+			field = purple_request_field_string_new("password", _("Password"), data, FALSE);
+			g_free(data);
+		}
+
+		purple_request_field_string_set_masked(field, TRUE);
+		purple_request_field_group_add_field(group, field);
+	}
+
+	if((node = xmlnode_get_child(query, "name"))) {
 		if(js->registration)
 			field = purple_request_field_string_new("name", _("Name"),
 													purple_account_get_alias(js->gc->account), FALSE);
-		else
-			field = purple_request_field_string_new("name", _("Name"), NULL, FALSE);
-		purple_request_field_group_add_field(group, field);
-	}
-	if(xmlnode_get_child(query, "email")) {
-		field = purple_request_field_string_new("email", _("Email"), NULL, FALSE);
-		purple_request_field_group_add_field(group, field);
-	}
-	if(xmlnode_get_child(query, "nick")) {
-		field = purple_request_field_string_new("nick", _("Nickname"), NULL, FALSE);
-		purple_request_field_group_add_field(group, field);
-	}
-	if(xmlnode_get_child(query, "first")) {
-		field = purple_request_field_string_new("first", _("First name"), NULL, FALSE);
-		purple_request_field_group_add_field(group, field);
-	}
-	if(xmlnode_get_child(query, "last")) {
-		field = purple_request_field_string_new("last", _("Last name"), NULL, FALSE);
-		purple_request_field_group_add_field(group, field);
-	}
-	if(xmlnode_get_child(query, "address")) {
-		field = purple_request_field_string_new("address", _("Address"), NULL, FALSE);
+		else {
+			char *data = xmlnode_get_data(node);
+			field = purple_request_field_string_new("name", _("Name"), data, FALSE);
+			g_free(data);
+		}
 		purple_request_field_group_add_field(group, field);
 	}
-	if(xmlnode_get_child(query, "city")) {
-		field = purple_request_field_string_new("city", _("City"), NULL, FALSE);
-		purple_request_field_group_add_field(group, field);
-	}
-	if(xmlnode_get_child(query, "state")) {
-		field = purple_request_field_string_new("state", _("State"), NULL, FALSE);
-		purple_request_field_group_add_field(group, field);
-	}
-	if(xmlnode_get_child(query, "zip")) {
-		field = purple_request_field_string_new("zip", _("Postal code"), NULL, FALSE);
-		purple_request_field_group_add_field(group, field);
+
+	for (i = 0; registration_fields[i].name != NULL; ++i) {
+		if ((node = xmlnode_get_child(query, registration_fields[i].name))) {
+			char *data = xmlnode_get_data(node);
+			field = purple_request_field_string_new(registration_fields[i].name,
+			                                        _(registration_fields[i].label),
+			                                        data, FALSE);
+			purple_request_field_group_add_field(group, field);
+			g_free(data);
+		}
 	}
-	if(xmlnode_get_child(query, "phone")) {
-		field = purple_request_field_string_new("phone", _("Phone"), NULL, FALSE);
-		purple_request_field_group_add_field(group, field);
-	}
-	if(xmlnode_get_child(query, "url")) {
-		field = purple_request_field_string_new("url", _("URL"), NULL, FALSE);
-		purple_request_field_group_add_field(group, field);
-	}
-	if(xmlnode_get_child(query, "date")) {
-		field = purple_request_field_string_new("date", _("Date"), NULL, FALSE);
-		purple_request_field_group_add_field(group, field);
-	}
+
 	if(registered) {
 		field = purple_request_field_bool_new("unregister", _("Unregister"), FALSE);
 		purple_request_field_group_add_field(group, field);
@@ -1303,12 +1292,10 @@
 	js->registration = TRUE;
 	js->iq_callbacks = g_hash_table_new_full(g_str_hash, g_str_equal,
 			g_free, g_free);
-	js->disco_callbacks = g_hash_table_new_full(g_str_hash, g_str_equal,
-			g_free, g_free);
 	js->user = jabber_id_new(purple_account_get_username(account));
 	js->next_id = g_random_int();
 	js->old_length = 0;
-	js->keepalive_timeout = -1;
+	js->keepalive_timeout = 0;
 
 	if(!js->user) {
 		purple_connection_error_reason (gc,
@@ -1493,8 +1480,6 @@
 
 	if(js->iq_callbacks)
 		g_hash_table_destroy(js->iq_callbacks);
-	if(js->disco_callbacks)
-		g_hash_table_destroy(js->disco_callbacks);
 	if(js->buddies)
 		g_hash_table_destroy(js->buddies);
 	if(js->chats)
@@ -1563,7 +1548,7 @@
 	g_free(js->old_track);
 	g_free(js->expected_rspauth);
 
-	if (js->keepalive_timeout != -1)
+	if (js->keepalive_timeout != 0)
 		purple_timeout_remove(js->keepalive_timeout);
 
 	g_free(js->srv_rec);
@@ -1652,6 +1637,73 @@
 	jabber_presence_send(js, FALSE);
 }
 
+void jabber_blocklist_parse_push(JabberStream *js, const char *from,
+                                 JabberIqType type, const char *id,
+                                 xmlnode *child)
+{
+	JabberIq *result;
+	xmlnode *item;
+	PurpleAccount *account;
+	gboolean is_block;
+
+	if (!jabber_is_own_account(js, from)) {
+		xmlnode *error, *x;
+		result = jabber_iq_new(js, JABBER_IQ_ERROR);
+		xmlnode_set_attrib(result->node, "id", id);
+		if (from)
+			xmlnode_set_attrib(result->node, "to", from);
+
+		error = xmlnode_new_child(result->node, "error");
+		xmlnode_set_attrib(error, "type", "cancel");
+		x = xmlnode_new_child(error, "not-allowed");
+		xmlnode_set_namespace(x, "urn:ietf:params:xml:ns:xmpp-stanzas");
+
+		jabber_iq_send(result);
+		return;
+	}
+
+	account = purple_connection_get_account(js->gc);
+	is_block = g_str_equal(child->name, "block");
+
+	item = xmlnode_get_child(child, "item");
+	if (!is_block && item == NULL) {
+		/* Unblock everyone */
+		purple_debug_info("jabber", "Received unblock push. Unblocking everyone.\n");
+
+		while (account->deny != NULL) {
+			purple_privacy_deny_remove(account, account->deny->data, TRUE);
+		}
+	} else if (item == NULL) {
+		/* An empty <block/> is bogus */
+		xmlnode *error, *x;
+		result = jabber_iq_new(js, JABBER_IQ_ERROR);
+		xmlnode_set_attrib(result->node, "id", id);
+
+		error = xmlnode_new_child(result->node, "error");
+		xmlnode_set_attrib(error, "type", "modify");
+		x = xmlnode_new_child(error, "bad-request");
+		xmlnode_set_namespace(x, "urn:ietf:params:xml:ns:xmpp-stanzas");
+
+		jabber_iq_send(result);
+		return;
+	} else {
+		for ( ; item; item = xmlnode_get_next_twin(item)) {
+			const char *jid = xmlnode_get_attrib(item, "jid");
+			if (jid == NULL || *jid == '\0')
+				continue;
+
+			if (is_block)
+				purple_privacy_deny_add(account, jid, TRUE);
+			else
+				purple_privacy_deny_remove(account, jid, TRUE);
+		}
+	}
+
+	result = jabber_iq_new(js, JABBER_IQ_RESULT);
+	xmlnode_set_attrib(result->node, "id", id);
+	jabber_iq_send(result);
+}
+
 static void jabber_blocklist_parse(JabberStream *js, const char *from,
                                    JabberIqType type, const char *id,
                                    xmlnode *packet, gpointer data)
@@ -1663,13 +1715,23 @@
 			"blocklist", "urn:xmpp:blocking");
 	account = purple_connection_get_account(js->gc);
 
-	if (blocklist == NULL)
+	if (type == JABBER_IQ_ERROR || blocklist == NULL)
 		return;
 
+	/* This is the only privacy method supported by XEP-0191 */
+	if (account->perm_deny != PURPLE_PRIVACY_DENY_USERS)
+		account->perm_deny = PURPLE_PRIVACY_DENY_USERS;
+
+	/*
+	 * TODO: When account->deny is something more than a hash table, this can
+	 * be re-written to find the set intersection and difference.
+	 */
+	while (account->deny)
+		purple_privacy_deny_remove(account, account->deny->data, TRUE);
+
 	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);
 	}
@@ -1858,6 +1920,28 @@
 					!(jb->subscription & JABBER_SUB_TO)))
 			return "not-authorized";
 	}
+
+	if (jb) {
+		JabberBuddyResource *jbr = jabber_buddy_find_resource(jb, NULL);
+		if (jbr) {
+			const gchar *client_type = 
+				jabber_resource_get_identity_category_type(jbr, "client");
+		
+			if (client_type) {
+				if (strcmp(client_type, "phone") == 0) {
+					return "mobile";
+				} else if (strcmp(client_type, "web") == 0) {
+					return "external";
+				} else if (strcmp(client_type, "handheld") == 0) {
+					return "hiptop";
+				} else if (strcmp(client_type, "bot") == 0) {
+					return "bot";
+				}
+				/* the default value "pc" falls through and has no emblem */
+			}
+		}
+	}
+		
 	return NULL;
 }
 
@@ -2876,7 +2960,7 @@
 	return (caps & (PURPLE_MEDIA_CAPS_AUDIO | PURPLE_MEDIA_CAPS_AUDIO_SINGLE_DIRECTION));
 }
 
-static gboolean
+gboolean
 jabber_video_enabled(JabberStream *js, const char *namespace)
 {
 	PurpleMediaManager *manager = purple_media_manager_get();
@@ -3116,8 +3200,12 @@
 				caps |= PURPLE_MEDIA_CAPS_MODIFY_SESSION |
 						PURPLE_MEDIA_CAPS_CHANGE_DIRECTION;
 		}
-		if (jabber_resource_has_capability(jbr, GOOGLE_VOICE_CAP))
+		if (jabber_resource_has_capability(jbr, GOOGLE_VOICE_CAP)) {
 			caps |= PURPLE_MEDIA_CAPS_AUDIO;
+			if (jabber_resource_has_capability(jbr,
+					GOOGLE_VIDEO_CAP))
+				caps |= PURPLE_MEDIA_CAPS_AUDIO_VIDEO;
+		}
 		return caps;
 	}
 
@@ -3328,9 +3416,26 @@
 void
 jabber_init_plugin(PurplePlugin *plugin)
 {
+	GHashTable *ui_info = purple_core_get_ui_info();
+	const gchar *ui_type;
+	const gchar *type = "pc"; /* default client type, if unknown or 
+								unspecified */
+
 	jabber_plugin = plugin;
 
-	jabber_add_identity("client", "pc", NULL, PACKAGE);
+	ui_type = ui_info ? g_hash_table_lookup(ui_info, "client_type") : NULL;
+	if (ui_type) {
+		if (strcmp(ui_type, "pc") == 0 ||
+			strcmp(ui_type, "console") == 0 ||
+			strcmp(ui_type, "phone") == 0 ||
+			strcmp(ui_type, "handheld") == 0 ||
+			strcmp(ui_type, "web") == 0 ||
+			strcmp(ui_type, "bot") == 0) {
+			type = ui_type;
+		}
+	}
+
+	jabber_add_identity("client", type, NULL, PACKAGE);
 
 	/* initialize jabber_features list */
 	jabber_add_feature("jabber:iq:last", 0);
@@ -3382,6 +3487,21 @@
 							 purple_marshal_VOID__POINTER,
 							 NULL, 1,
 							 purple_value_new(PURPLE_TYPE_STRING));
+
+	/* Modifying these? Look at libxmpp.c:load_plugin for the signal versions */
+	purple_plugin_ipc_register(plugin, "register_namespace_watcher",
+	                           PURPLE_CALLBACK(jabber_iq_signal_register),
+	                           purple_marshal_VOID__POINTER_POINTER,
+	                           NULL, 2,
+	                           purple_value_new(PURPLE_TYPE_STRING),  /* node */
+	                           purple_value_new(PURPLE_TYPE_STRING)); /* namespace */
+
+	purple_plugin_ipc_register(plugin, "unregister_namespace_watcher",
+	                           PURPLE_CALLBACK(jabber_iq_signal_unregister),
+	                           purple_marshal_VOID__POINTER_POINTER,
+	                           NULL, 2,
+	                           purple_value_new(PURPLE_TYPE_STRING),  /* node */
+	                           purple_value_new(PURPLE_TYPE_STRING)); /* namespace */
 }
 
 void
--- a/libpurple/protocols/jabber/jabber.h	Mon May 25 19:27:33 2009 +0000
+++ b/libpurple/protocols/jabber/jabber.h	Mon Jun 08 18:28:31 2009 +0000
@@ -44,6 +44,8 @@
 	JABBER_CAP_ADHOC		  = 1 << 12,
 	JABBER_CAP_BLOCKING       = 1 << 13,
 
+	JABBER_CAP_ITEMS          = 1 << 14,
+
 	JABBER_CAP_RETRIEVED      = 1 << 31
 } JabberCapabilities;
 
@@ -53,12 +55,12 @@
 #include <glib.h>
 #include "circbuffer.h"
 #include "connection.h"
+#include "dnsquery.h"
 #include "dnssrv.h"
 #include "media.h"
 #include "mediamanager.h"
 #include "roomlist.h"
 #include "sslconn.h"
-#include "dnsquery.h"
 
 #include "iq.h"
 #include "jutil.h"
@@ -153,7 +155,6 @@
 	GList *user_directories;
 
 	GHashTable *iq_callbacks;
-	GHashTable *disco_callbacks;
 	int next_id;
 
 	GList *bs_proxies;
@@ -244,7 +245,7 @@
 	char *certificate_CN;
 
 	/* A purple timeout tag for the keepalive */
-	int keepalive_timeout;
+	guint keepalive_timeout;
 
 	PurpleSrvResponse *srv_rec;
 	guint srv_rec_idx;
@@ -301,6 +302,8 @@
 void jabber_process_packet(JabberStream *js, xmlnode **packet);
 void jabber_send(JabberStream *js, xmlnode *data);
 void jabber_send_raw(JabberStream *js, const char *data, int len);
+void jabber_send_signal_cb(PurpleConnection *pc, xmlnode **packet,
+                           gpointer unused);
 
 void jabber_stream_set_state(JabberStream *js, JabberStreamState state);
 
@@ -347,6 +350,9 @@
 void jabber_login(PurpleAccount *account);
 void jabber_close(PurpleConnection *gc);
 void jabber_idle_set(PurpleConnection *gc, int idle);
+void jabber_blocklist_parse_push(JabberStream *js, const char *from,
+                                 JabberIqType type, const char *id,
+                                 xmlnode *child);
 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);
@@ -363,6 +369,7 @@
 GList *jabber_actions(PurplePlugin *plugin, gpointer context);
 
 gboolean jabber_audio_enabled(JabberStream *js, const char *unused);
+gboolean jabber_video_enabled(JabberStream *js, const char *unused);
 gboolean jabber_initiate_media(PurpleAccount *account, const char *who,
 		PurpleMediaSessionType type);
 PurpleMediaCaps jabber_get_media_caps(PurpleAccount *account, const char *who);
--- a/libpurple/protocols/jabber/jutil.c	Mon May 25 19:27:33 2009 +0000
+++ b/libpurple/protocols/jabber/jutil.c	Mon Jun 08 18:28:31 2009 +0000
@@ -260,9 +260,10 @@
 	if (!jid)
 		return FALSE;
 
-	equal = (g_str_equal(jid->node, js->user->node) &&
+	equal = (purple_strequal(jid->node, js->user->node) &&
 	         g_str_equal(jid->domain, js->user->domain) &&
-	         jid->resource == NULL);
+	         (jid->resource == NULL ||
+	             g_str_equal(jid->resource, js->user->resource)));
 	jabber_id_free(jid);
 	return equal;
 }
--- a/libpurple/protocols/jabber/libxmpp.c	Mon May 25 19:27:33 2009 +0000
+++ b/libpurple/protocols/jabber/libxmpp.c	Mon Jun 08 18:28:31 2009 +0000
@@ -34,6 +34,7 @@
 #include "iq.h"
 #include "jabber.h"
 #include "chat.h"
+#include "disco.h"
 #include "message.h"
 #include "roster.h"
 #include "si.h"
@@ -117,6 +118,7 @@
 	jabber_unregister_account,		/* unregister_user */
 	jabber_send_attention,			/* send_attention */
 	jabber_attention_types,			/* attention_types */
+
 	sizeof(PurplePluginProtocolInfo),       /* struct_size */
 	NULL, /* get_account_text_table */
 	jabber_initiate_media,          /* initiate_media */
@@ -135,6 +137,14 @@
 			purple_value_new(PURPLE_TYPE_SUBTYPE, PURPLE_SUBTYPE_CONNECTION),
 			purple_value_new_outgoing(PURPLE_TYPE_SUBTYPE, PURPLE_SUBTYPE_XMLNODE));
 
+	/*
+	 * Do not remove this or the plugin will fail. Completely. You have been
+	 * warned!
+	 */
+	purple_signal_connect_priority(plugin, "jabber-sending-xmlnode",
+			plugin, PURPLE_CALLBACK(jabber_send_signal_cb),
+			NULL, PURPLE_SIGNAL_PRIORITY_HIGHEST);
+
 	purple_signal_register(plugin, "jabber-sending-text",
 			     purple_marshal_VOID__POINTER_POINTER, NULL, 2,
 			     purple_value_new(PURPLE_TYPE_SUBTYPE, PURPLE_SUBTYPE_CONNECTION),
@@ -168,6 +178,7 @@
 			purple_value_new(PURPLE_TYPE_STRING), /* from */
 			purple_value_new(PURPLE_TYPE_SUBTYPE, PURPLE_SUBTYPE_XMLNODE)); /* child */
 
+	/* Modifying these? Look at jabber_init_plugin for the ipc versions */
 	purple_signal_register(plugin, "jabber-register-namespace-watcher",
 			purple_marshal_VOID__POINTER_POINTER,
 			NULL, 2,
--- a/libpurple/protocols/jabber/message.c	Mon May 25 19:27:33 2009 +0000
+++ b/libpurple/protocols/jabber/message.c	Mon Jun 08 18:28:31 2009 +0000
@@ -1200,7 +1200,9 @@
 			jm->typing_style |= JM_TS_JEP_0022;
 	}
 
-	purple_markup_html_to_xhtml(msg, &xhtml, &jm->body);
+	tmp = purple_utf8_strip_unprintables(msg);
+	purple_markup_html_to_xhtml(tmp, &xhtml, &jm->body);
+	g_free(tmp);
 	tmp = jabber_message_smileyfy_xhtml(jm, xhtml);
 	if (tmp) {
 		g_free(xhtml);
@@ -1241,7 +1243,9 @@
 	jm->to = g_strdup_printf("%s@%s", chat->room, chat->server);
 	jm->id = jabber_get_next_id(jm->js);
 
+	tmp = purple_utf8_strip_unprintables(msg);
 	purple_markup_html_to_xhtml(msg, &xhtml, &jm->body);
+	g_free(tmp);
 	tmp = jabber_message_smileyfy_xhtml(jm, xhtml);
 	if (tmp) {
 		g_free(xhtml);
--- a/libpurple/protocols/jabber/parser.c	Mon May 25 19:27:33 2009 +0000
+++ b/libpurple/protocols/jabber/parser.c	Mon Jun 08 18:28:31 2009 +0000
@@ -207,12 +207,6 @@
 	jabber_parser_free(js);
 }
 
-void
-jabber_parser_close_stream(JabberStream *js)
-{
-	xmlParseChunk(js->context, "</stream:stream>", 16 /* length */, 0);
-}
-
 void jabber_parser_free(JabberStream *js) {
 	if (js->context) {
 		xmlParseChunk(js->context, NULL,0,1);
--- a/libpurple/protocols/jabber/parser.h	Mon May 25 19:27:33 2009 +0000
+++ b/libpurple/protocols/jabber/parser.h	Mon Jun 08 18:28:31 2009 +0000
@@ -25,7 +25,6 @@
 #include "jabber.h"
 
 void jabber_parser_setup(JabberStream *js);
-void jabber_parser_close_stream(JabberStream *js);
 void jabber_parser_free(JabberStream *js);
 void jabber_parser_process(JabberStream *js, const char *buf, int len);
 
--- a/libpurple/protocols/jabber/ping.c	Mon May 25 19:27:33 2009 +0000
+++ b/libpurple/protocols/jabber/ping.c	Mon Jun 08 18:28:31 2009 +0000
@@ -32,10 +32,12 @@
                                      JabberIqType type, const char *id,
                                      xmlnode *packet, gpointer data)
 {
-	if (js->keepalive_timeout >= 0) {
+	if (js->keepalive_timeout != 0) {
+		purple_debug_misc("jabber", "Keepalive PONG\n");
 		purple_timeout_remove(js->keepalive_timeout);
-		js->keepalive_timeout = -1;
-	}
+		js->keepalive_timeout = 0;
+	} else
+		purple_debug_warning("jabber", "Keepalive PONG with no outstanding timeout!\n");
 }
 
 void
--- a/libpurple/protocols/jabber/presence.c	Mon May 25 19:27:33 2009 +0000
+++ b/libpurple/protocols/jabber/presence.c	Mon Jun 08 18:28:31 2009 +0000
@@ -245,6 +245,7 @@
 {
 	xmlnode *show, *status, *presence, *pri, *c;
 	const char *show_string = NULL;
+	gboolean audio_enabled, video_enabled;
 
 	presence = xmlnode_new("presence");
 
@@ -300,9 +301,18 @@
 	 * just assume that if we specify a 'voice-v1' ext (ignoring that
 	 * these are to be assigned no semantic value), we support receiving voice
 	 * calls.
+	 *
+	 * Ditto for 'video-v1'.
 	 */
-	if (jabber_audio_enabled(js, NULL /* unused */))
+	audio_enabled = jabber_audio_enabled(js, NULL /* unused */);
+	video_enabled = jabber_video_enabled(js, NULL /* unused */);
+
+	if (audio_enabled && video_enabled)
+		xmlnode_set_attrib(c, "ext", "voice-v1 video-v1");
+	else if (audio_enabled)
 		xmlnode_set_attrib(c, "ext", "voice-v1");
+	else if (video_enabled)
+		xmlnode_set_attrib(c, "ext", "video-v1");
 #endif
 
 	return presence;
--- a/libpurple/protocols/jabber/roster.c	Mon May 25 19:27:33 2009 +0000
+++ b/libpurple/protocols/jabber/roster.c	Mon Jun 08 18:28:31 2009 +0000
@@ -282,9 +282,23 @@
 		return;
 
 	if(grps) {
+		GString *out = g_string_new(NULL);
 		groups = grps;
+
+		for (l = groups; l; l = l->next) {
+			out = g_string_append(out, (const char *)l->data);
+			if (l->next)
+				out = g_string_append(out, ", ");
+		}
+
+		purple_debug_info("jabber", "jabber_roster_update(%s): [Source: grps]: groups: %s\n",
+		                  name, out->str);
+		g_string_free(out, TRUE);
+
 	} else {
 		GSList *buddies = purple_find_buddies(js->gc->account, name);
+		GString *out = g_string_new(NULL);
+
 		if(!buddies)
 			return;
 		while(buddies) {
@@ -293,6 +307,15 @@
 			groups = g_slist_append(groups, (char *)purple_group_get_name(g));
 			buddies = g_slist_remove(buddies, b);
 		}
+		for (l = groups; l; l = l->next) {
+			out = g_string_append(out, (const char *)l->data);
+			if (l->next)
+				out = g_string_append(out, ", ");
+		}
+
+		purple_debug_info("jabber", "jabber_roster_update(%s): [Source: local blist]: groups: %s\n",
+		                  name, out->str);
+		g_string_free(out, TRUE);
 	}
 
 	iq = jabber_iq_new_query(js, JABBER_IQ_SET, "jabber:iq:roster");
@@ -340,6 +363,9 @@
 
 	jb = jabber_buddy_find(js, name, FALSE);
 
+	purple_debug_info("jabber", "jabber_roster_add_buddy(): Adding %s\n",
+	                  name);
+
 	jabber_roster_update(js, who, NULL);
 
 	my_bare_jid = g_strdup_printf("%s@%s", js->user->node, js->user->domain);
@@ -369,6 +395,9 @@
 	if(b != NULL) {
 		purple_blist_alias_buddy(b, alias);
 
+		purple_debug_info("jabber", "jabber_roster_alias_change(): Aliased %s to %s\n",
+				name, alias ? alias : "(null)");
+
 		jabber_roster_update(gc->proto_data, name, NULL);
 	}
 }
@@ -395,6 +424,10 @@
 			groups = g_slist_append(groups, (char*)gname);
 		buddies = g_slist_remove(buddies, b);
 	}
+
+	purple_debug_info("jabber", "jabber_roster_group_change(): Moving %s from %s to %s\n",
+	                  name, old_group, new_group);
+
 	jabber_roster_update(gc->proto_data, name, groups);
 	g_slist_free(groups);
 }
@@ -428,6 +461,9 @@
 			buddies = g_slist_remove(buddies, tmpbuddy);
 		}
 
+		purple_debug_info("jabber", "jabber_roster_remove_buddy(): Removing %s from %s\n",
+		                  purple_buddy_get_name(buddy), purple_group_get_name(group));
+
 		jabber_roster_update(gc->proto_data, name, groups);
 		g_slist_free(groups);
 	} else {
@@ -439,6 +475,9 @@
 		xmlnode_set_attrib(item, "jid", name);
 		xmlnode_set_attrib(item, "subscription", "remove");
 
+		purple_debug_info("jabber", "jabber_roster_remove_buddy(): Removing %s\n",
+		                  purple_buddy_get_name(buddy));
+
 		jabber_iq_send(iq);
 	}
 }
--- a/libpurple/protocols/msn/msn.c	Mon May 25 19:27:33 2009 +0000
+++ b/libpurple/protocols/msn/msn.c	Mon Jun 08 18:28:31 2009 +0000
@@ -1283,7 +1283,7 @@
 			imdata->gc = gc;
 			imdata->who = who;
 			imdata->msg = body_str;
-			imdata->flags = flags;
+			imdata->flags = flags & ~PURPLE_MESSAGE_SEND;
 			imdata->when = time(NULL);
 			purple_timeout_add(0, msn_send_me_im, imdata);
 		}
@@ -1382,56 +1382,36 @@
 	msn_change_status(session);
 }
 
-#if 0
+/*
+ * Actually adds a buddy once we have the response from FQY
+ */
 static void
-fake_userlist_add_buddy(MsnUserList *userlist,
-					   const char *who, int list_id,
-					   const char *group_name)
+add_pending_buddy(MsnSession *session,
+                  const char *who,
+                  MsnNetwork network,
+                  MsnUser *user)
 {
-	MsnUser *user;
-	static int group_id_c = 1;
-	int group_id;
-
-	group_id = -1;
-
-	if (group_name != NULL)
-	{
-		MsnGroup *group;
-		group = msn_group_new(userlist, group_id_c, group_name);
-		group_id = group_id_c++;
-	}
-
-	user = msn_userlist_find_user(userlist, who);
-
-	if (user == NULL)
-	{
-		user = msn_user_new(userlist, who, NULL);
+	MsnUserList *userlist = session->userlist;
+	MsnUser *user2;
+	char *group;
+
+	g_return_if_fail(user != NULL);
+
+	group = msn_user_remove_pending_group(user);
+
+	user2 = msn_userlist_find_user(userlist, who);
+	if (user2 != NULL) {
+		/* User already in userlist, so just update it. */
+		msn_user_destroy(user);
+		user = user2;
+	} else {
 		msn_userlist_add_user(userlist, user);
 	}
-	else
-		if (user->list_op & (1 << list_id))
-		{
-			if (list_id == MSN_LIST_FL)
-			{
-				if (group_id >= 0)
-					if (g_list_find(user->group_ids,
-									GINT_TO_POINTER(group_id)))
-						return;
-			}
-			else
-				return;
-		}
-
-	if (group_id >= 0)
-	{
-		/* This is wrong... user->group_ids contains g_strdup()'d data now */
-		user->group_ids = g_list_append(user->group_ids,
-										GINT_TO_POINTER(group_id));
-	}
-
-	user->list_op |= (1 << list_id);
+
+	msn_user_set_network(user, network);
+	msn_userlist_add_buddy(userlist, who, group);
+	g_free(group);
 }
-#endif
 
 static void
 msn_add_buddy(PurpleConnection *gc, PurpleBuddy *buddy, PurpleGroup *group)
@@ -1449,23 +1429,11 @@
 	purple_debug_info("msn", "Add user:%s to group:%s\n", who, gname ? gname : "(null)");
 	if (!session->logged_in)
 	{
-#if 0
-		fake_userlist_add_buddy(session->sync_userlist, who, MSN_LIST_FL,
-								group ? group->name : NULL);
-#else
 		purple_debug_error("msn", "msn_add_buddy called before connected\n");
-#endif
 
 		return;
 	}
 
-#if 0
-	if (group != NULL && group->name != NULL)
-		purple_debug_info("msn", "msn_add_buddy: %s, %s\n", who, group->name);
-	else
-		purple_debug_info("msn", "msn_add_buddy: %s\n", who);
-#endif
-
 	/* XXX - Would group ever be NULL here?  I don't think so...
 	 * shx: Yes it should; MSN handles non-grouped buddies, and this is only
 	 * internal. */
@@ -1478,13 +1446,15 @@
 		char **tokens;
 		char *fqy;
 		/* We need to check the network for this buddy first */
-		msn_userlist_save_pending_buddy(userlist, who, gname);
+		user = msn_user_new(userlist, who, NULL);
+		msn_user_set_pending_group(user, gname);
+		msn_user_set_network(user, MSN_NETWORK_UNKNOWN);
 		tokens = g_strsplit(who, "@", 2);
 		fqy = g_strdup_printf("<ml><d n=\"%s\"><c n=\"%s\"/></d></ml>",
 		                      tokens[1],
 		                      tokens[0]);
 		msn_notification_send_fqy(session, fqy, strlen(fqy),
-		                          (MsnFqyCb)msn_userlist_add_pending_buddy);
+		                          (MsnFqyCb)add_pending_buddy, user);
 		g_free(fqy);
 		g_strfreev(tokens);
 	}
--- a/libpurple/protocols/msn/notification.c	Mon May 25 19:27:33 2009 +0000
+++ b/libpurple/protocols/msn/notification.c	Mon Jun 08 18:28:31 2009 +0000
@@ -479,6 +479,12 @@
 /**************************************************************************
  * Buddy Lists
  **************************************************************************/
+
+typedef struct MsnFqyCbData {
+	MsnFqyCb cb;
+	gpointer data;
+} MsnFqyCbData;
+
 /* add contact to xmlnode */
 static void
 msn_add_contact_xml(MsnSession *session, xmlnode *mlNode,const char *passport, MsnListOp list_op, MsnNetwork networkId)
@@ -551,24 +557,40 @@
 	msn_cmdproc_send_trans(cmdproc, trans);
 }
 
+static void
+msn_notification_post_rml(MsnCmdProc *cmdproc, const char *payload, int payload_len)
+{
+	MsnTransaction *trans;
+	purple_debug_info("msn", "Sending RML with payload: %s\n", payload);
+	trans = msn_transaction_new(cmdproc, "RML", "%i", payload_len);
+	msn_transaction_set_payload(trans, payload, payload_len);
+	msn_cmdproc_send_trans(cmdproc, trans);
+}
+
 void
 msn_notification_send_fqy(MsnSession *session,
                           const char *payload, int payload_len,
-                          MsnFqyCb cb)
+                          MsnFqyCb cb,
+                          gpointer cb_data)
 {
 	MsnTransaction *trans;
 	MsnCmdProc *cmdproc;
+	MsnFqyCbData *data;
 
 	cmdproc = session->notification->cmdproc;
 
+	data = g_new(MsnFqyCbData, 1);
+	data->cb = cb;
+	data->data = cb_data;
+
 	trans = msn_transaction_new(cmdproc, "FQY", "%d", payload_len);
 	msn_transaction_set_payload(trans, payload, payload_len);
-	msn_transaction_set_data(trans, cb);
+	msn_transaction_set_data(trans, data);
 	msn_cmdproc_send_trans(cmdproc, trans);
 }
 
 static void
-update_contact_network(MsnSession *session, const char *passport, MsnNetwork network)
+update_contact_network(MsnSession *session, const char *passport, MsnNetwork network, gpointer unused)
 {
 	MsnUser *user;
 
@@ -684,7 +706,7 @@
 				payload = xmlnode_to_str(fqy_node, &payload_len);
 
 				msn_notification_send_fqy(session, payload, payload_len,
-				                          update_contact_network);
+				                          update_contact_network, NULL);
 
 				g_free(payload);
 				xmlnode_free(fqy_node);
@@ -709,7 +731,7 @@
 		payload = xmlnode_to_str(fqy_node, &payload_len);
 
 		msn_notification_send_fqy(session, payload, payload_len,
-		                          update_contact_network);
+		                          update_contact_network, NULL);
 
 		g_free(payload);
 	}
@@ -926,8 +948,13 @@
 
 			purple_debug_info("msn", "FQY response says %s is from network %d\n",
 			                  passport, network);
-			if (cmd->trans->data)
-				((MsnFqyCb)cmd->trans->data)(session, passport, network);
+			if (cmd->trans->data) {
+				MsnFqyCbData *fqy_data = cmd->trans->data;
+				fqy_data->cb(session, passport, network, fqy_data->data);
+				/* TODO: This leaks, but the server responds to FQY multiple times, so we
+				         can't free it yet. We need to figure out somewhere else to do so.
+				g_free(fqy_data); */
+			}
 
 			g_free(passport);
 		}
@@ -952,7 +979,7 @@
 	   FQY error, it's probably going to disconnect us. So it isn't necessary
 	   to tell the handler about it. */
 	else if (trans->data)
-		((MsnFqyCb)trans->data)(session, NULL, MSN_NETWORK_UNKNOWN); */
+		((MsnFqyCb)trans->data)(session, NULL, MSN_NETWORK_UNKNOWN, NULL);
 #endif
 }
 
@@ -981,85 +1008,6 @@
 }
 
 static void
-add_error(MsnCmdProc *cmdproc, MsnTransaction *trans, int error)
-{
-	MsnSession *session;
-	PurpleAccount *account;
-	PurpleConnection *gc;
-	const char *list, *passport;
-	char *reason = NULL;
-	char *msg = NULL;
-	char **params;
-
-	session = cmdproc->session;
-	account = session->account;
-	gc = purple_account_get_connection(account);
-	params = g_strsplit(trans->params, " ", 0);
-
-	list     = params[0];
-	passport = params[1];
-
-	if (!strcmp(list, "FL"))
-		msg = g_strdup_printf(_("Unable to add user on %s (%s)"),
-							  purple_account_get_username(account),
-							  purple_account_get_protocol_name(account));
-	else if (!strcmp(list, "BL"))
-		msg = g_strdup_printf(_("Unable to block user on %s (%s)"),
-							  purple_account_get_username(account),
-							  purple_account_get_protocol_name(account));
-	else if (!strcmp(list, "AL"))
-		msg = g_strdup_printf(_("Unable to permit user on %s (%s)"),
-							  purple_account_get_username(account),
-							  purple_account_get_protocol_name(account));
-
-	if (!strcmp(list, "FL"))
-	{
-		if (error == 210)
-		{
-			reason = g_strdup_printf(_("%s could not be added because "
-									   "your buddy list is full."), passport);
-		}
-	}
-
-	if (reason == NULL)
-	{
-		if (error == 208)
-		{
-			reason = g_strdup_printf(_("%s is not a valid passport account."),
-									 passport);
-		}
-		else if (error == 500)
-		{
-			reason = g_strdup(_("Service Temporarily Unavailable."));
-		}
-		else
-		{
-			reason = g_strdup(_("Unknown error."));
-		}
-	}
-
-	if (msg != NULL)
-	{
-		purple_notify_error(gc, NULL, msg, reason);
-		g_free(msg);
-	}
-
-	if (!strcmp(list, "FL"))
-	{
-		PurpleBuddy *buddy;
-
-		buddy = purple_find_buddy(account, passport);
-
-		if (buddy != NULL)
-			purple_blist_remove_buddy(buddy);
-	}
-
-	g_free(reason);
-
-	g_strfreev(params);
-}
-
-static void
 qng_cmd(MsnCmdProc *cmdproc, MsnCommand *cmd)
 {
 	/* TODO: Call PNG after the timeout specified. */
@@ -1946,10 +1894,54 @@
 	g_hash_table_destroy(table);
 }
 
+/**************************************************************************
+ * Dispatch server list management 
+ **************************************************************************/
+typedef struct MsnAddRemoveListData {
+	MsnCmdProc *cmdproc;
+	MsnUser *user;
+	MsnListOp list_op;
+	gboolean add;
+} MsnAddRemoveListData;
+
+static void
+modify_unknown_buddy_on_list(MsnSession *session, const char *passport,
+                             MsnNetwork network, gpointer data)
+{
+	MsnAddRemoveListData *addrem = data;
+	MsnCmdProc *cmdproc;
+	xmlnode *node;
+	char *payload;
+	int payload_len;
+
+	cmdproc = addrem->cmdproc;
+
+	/* Update user first */
+	msn_user_set_network(addrem->user, network);
+
+	node = xmlnode_new("ml");
+	node->child = NULL;
+
+	msn_add_contact_xml(session, node, passport,
+	                    addrem->list_op, network);
+
+	payload = xmlnode_to_str(node, &payload_len);
+	xmlnode_free(node);
+
+	if (addrem->add)
+		msn_notification_post_adl(cmdproc, payload, payload_len);
+	else
+		msn_notification_post_rml(cmdproc, payload, payload_len);
+
+	g_free(payload);
+	g_free(addrem);
+}
+
 void
 msn_notification_add_buddy_to_list(MsnNotification *notification, MsnListId list_id,
 							  MsnUser *user)
 {
+	MsnAddRemoveListData *addrem;
 	MsnCmdProc *cmdproc;
 	MsnListOp list_op = 1 << list_id;
 	xmlnode *adl_node;
@@ -1964,11 +1956,23 @@
 	msn_add_contact_xml(notification->session, adl_node, user->passport,
 	                    list_op, user->networkid);
 
-	payload = xmlnode_to_str(adl_node,&payload_len);
+	payload = xmlnode_to_str(adl_node, &payload_len);
 	xmlnode_free(adl_node);
 
-	msn_notification_post_adl(notification->servconn->cmdproc,
-						payload,payload_len);
+	if (user->networkid != MSN_NETWORK_UNKNOWN) {
+		msn_notification_post_adl(cmdproc, payload, payload_len);
+
+	} else {
+		addrem = g_new(MsnAddRemoveListData, 1);
+		addrem->cmdproc = cmdproc;
+		addrem->user = user;
+		addrem->list_op = list_op;
+		addrem->add = TRUE;
+
+		msn_notification_send_fqy(notification->session, payload, payload_len,
+		                          modify_unknown_buddy_on_list, addrem);
+	}
+
 	g_free(payload);
 }
 
@@ -1976,8 +1980,8 @@
 msn_notification_rem_buddy_from_list(MsnNotification *notification, MsnListId list_id,
 						   MsnUser *user)
 {
+	MsnAddRemoveListData *addrem;
 	MsnCmdProc *cmdproc;
-	MsnTransaction *trans;
 	MsnListOp list_op = 1 << list_id;
 	xmlnode *rml_node;
 	char *payload;
@@ -1994,10 +1998,20 @@
 	payload = xmlnode_to_str(rml_node, &payload_len);
 	xmlnode_free(rml_node);
 
-	purple_debug_info("msn", "Send RML with payload:\n%s\n", payload);
-	trans = msn_transaction_new(cmdproc, "RML","%" G_GSIZE_FORMAT, strlen(payload));
-	msn_transaction_set_payload(trans, payload, strlen(payload));
-	msn_cmdproc_send_trans(cmdproc, trans);
+	if (user->networkid != MSN_NETWORK_UNKNOWN) {
+		msn_notification_post_rml(cmdproc, payload, payload_len);
+
+	} else {
+		addrem = g_new(MsnAddRemoveListData, 1);
+		addrem->cmdproc = cmdproc;
+		addrem->user = user;
+		addrem->list_op = list_op;
+		addrem->add = FALSE;
+
+		msn_notification_send_fqy(notification->session, payload, payload_len,
+		                          modify_unknown_buddy_on_list, addrem);
+	}
+
 	g_free(payload);
 }
 
@@ -2052,7 +2066,6 @@
 
 	msn_table_add_cmd(cbs_table, NULL, "241", adl_241_error_cmd);
 
-	msn_table_add_error(cbs_table, "ADD", add_error);
 	msn_table_add_error(cbs_table, "ADL", adl_error);
 	msn_table_add_error(cbs_table, "FQY", fqy_error);
 	msn_table_add_error(cbs_table, "USR", usr_error);
--- a/libpurple/protocols/msn/notification.h	Mon May 25 19:27:33 2009 +0000
+++ b/libpurple/protocols/msn/notification.h	Mon Jun 08 18:28:31 2009 +0000
@@ -58,7 +58,7 @@
 	gboolean in_use;
 };
 
-typedef void (*MsnFqyCb)(MsnSession *session, const char *passport, MsnNetwork network);
+typedef void (*MsnFqyCb)(MsnSession *session, const char *passport, MsnNetwork network, gpointer data);
 
 #include "state.h"
 void uum_send_msg(MsnSession *session,MsnMessage *msg);
@@ -73,7 +73,7 @@
 
 void msn_notification_send_fqy(MsnSession *session,
                                const char *payload, int payload_len,
-                               MsnFqyCb cb);
+                               MsnFqyCb cb, gpointer cb_data);
 
 MsnNotification *msn_notification_new(MsnSession *session);
 void msn_notification_destroy(MsnNotification *notification);
--- a/libpurple/protocols/msn/session.c	Mon May 25 19:27:33 2009 +0000
+++ b/libpurple/protocols/msn/session.c	Mon Jun 08 18:28:31 2009 +0000
@@ -261,9 +261,9 @@
 static void
 msn_session_sync_users(MsnSession *session)
 {
-	PurpleBlistNode *gnode, *cnode, *bnode;
 	PurpleConnection *gc = purple_account_get_connection(session->account);
 	GList *to_remove = NULL;
+	GSList *buddies;
 
 	g_return_if_fail(gc != NULL);
 
@@ -271,60 +271,36 @@
 	 * being logged in. This no longer happens, so we manually iterate
 	 * over the whole buddy list to identify sync issues.
 	 */
-	for (gnode = purple_blist_get_root(); gnode;
-			gnode = purple_blist_node_get_sibling_next(gnode)) {
-		PurpleGroup *group = (PurpleGroup *)gnode;
-		const char *group_name;
-		if(!PURPLE_BLIST_NODE_IS_GROUP(gnode))
-			continue;
-		group_name = purple_group_get_name(group);
-		for(cnode = purple_blist_node_get_first_child(gnode);
-				cnode;
-				cnode = purple_blist_node_get_sibling_next(cnode)) {
-			if(!PURPLE_BLIST_NODE_IS_CONTACT(cnode))
-				continue;
-			for(bnode = purple_blist_node_get_first_child(cnode);
-					bnode;
-					bnode = purple_blist_node_get_sibling_next(bnode)) {
-				PurpleBuddy *b;
-				if(!PURPLE_BLIST_NODE_IS_BUDDY(bnode))
-					continue;
-				b = (PurpleBuddy *)bnode;
-				if(purple_buddy_get_account(b) == purple_connection_get_account(gc)) {
-					MsnUser *remote_user;
-					gboolean found = FALSE;
-
-					remote_user = msn_userlist_find_user(session->userlist, purple_buddy_get_name(b));
+	for (buddies = purple_find_buddies(session->account, NULL); buddies;
+			buddies = g_slist_delete_link(buddies, buddies)) {
+		PurpleBuddy *buddy = buddies->data;
+		const gchar *buddy_name = purple_buddy_get_name(buddy);
+		const gchar *group_name = purple_group_get_name(purple_buddy_get_group(buddy));
+		MsnUser *remote_user;
+		gboolean found = FALSE;
 
-					if ((remote_user != NULL) && (remote_user->list_op & MSN_LIST_FL_OP))
-					{
-						GList *l;
-
-						for (l = remote_user->group_ids; l != NULL; l = l->next)
-						{
-							const char *name = msn_userlist_find_group_name(remote_user->userlist, l->data);
-							if (name && !g_ascii_strcasecmp(group_name, name))
-							{
-								found = TRUE;
-								break;
-							}
-						}
-					}
+		remote_user = msn_userlist_find_user(session->userlist, buddy_name);
+		if (remote_user && remote_user->list_op & MSN_LIST_FL_OP) {
+			GList *l;
+			for (l = remote_user->group_ids; l; l = l->next) {
+				const char *name = msn_userlist_find_group_name(remote_user->userlist, l->data);
+				if (name && !g_ascii_strcasecmp(group_name, name)) {
+					found = TRUE;
+					break;
+				}
+			}
 
-					/* We don't care if they're in a different group, as long as they're on the
-					 * list somewhere. If we check for the group, we cause pain, agony and
-					 * suffering for people who decide to re-arrange their buddy list elsewhere.
-					 */
-					if (!found)
-					{
-						if ((remote_user == NULL) || !(remote_user->list_op & MSN_LIST_FL_OP)) {
-							/* The user is not on the server list */
-							msn_show_sync_issue(session, purple_buddy_get_name(b), group_name);
-						} else {
-							/* The user is not in that group on the server list */
-							to_remove = g_list_prepend(to_remove, b);
-						}
-					}
+			/* We don't care if they're in a different group, as long as they're on the
+			 * list somewhere. If we check for the group, we cause pain, agony and
+			 * suffering for people who decide to re-arrange their buddy list elsewhere.
+			 */
+			if (!found) {
+				if ((remote_user == NULL) || !(remote_user->list_op & MSN_LIST_FL_OP)) {
+					/* The user is not on the server list */
+					msn_show_sync_issue(session, buddy_name, group_name);
+				} else {
+					/* The user is not in that group on the server list */
+					to_remove = g_list_prepend(to_remove, buddy);
 				}
 			}
 		}
--- a/libpurple/protocols/msn/state.c	Mon May 25 19:27:33 2009 +0000
+++ b/libpurple/protocols/msn/state.c	Mon Jun 08 18:28:31 2009 +0000
@@ -21,6 +21,10 @@
  * along with this program; if not, write to the Free Software
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02111-1301  USA
  */
+
+#include "internal.h"
+#include "core.h"
+
 #include "msn.h"
 #include "state.h"
 
@@ -288,10 +292,29 @@
 	MsnUser *user;
 	MsnObject *msnobj;
 	const char *state_text;
+	GHashTable *ui_info = purple_core_get_ui_info();
+	MsnClientCaps caps = MSN_CLIENT_ID;
 
 	g_return_if_fail(session != NULL);
 	g_return_if_fail(session->notification != NULL);
 
+	/* set client caps based on what the UI tells us it is... */
+	if (ui_info) {
+		const gchar *client_type = g_hash_table_lookup(ui_info, "client_type");
+		if (client_type) {
+			if (strcmp(client_type, "phone") == 0 ||
+				strcmp(client_type, "handheld") == 0) {
+				caps |= MSN_CLIENT_CAP_WIN_MOBILE;
+			} else if (strcmp(client_type, "web") == 0) {
+				caps |= MSN_CLIENT_CAP_WEBMSGR;
+			} else if (strcmp(client_type, "bot") == 0) {
+				caps |= MSN_CLIENT_CAP_BOT;
+			}
+			/* MSN doesn't a "console" type... 
+			 What, they have no ncurses UI? :-) */
+		}
+	}
+
 	account = session->account;
 	cmdproc = session->notification->cmdproc;
 	user = session->user;
@@ -307,8 +330,7 @@
 
 	if (msnobj == NULL)
 	{
-		msn_cmdproc_send(cmdproc, "CHG", "%s %d", state_text,
-						 MSN_CLIENT_ID);
+		msn_cmdproc_send(cmdproc, "CHG", "%s %d", state_text, caps);
 	}
 	else
 	{
@@ -317,7 +339,7 @@
 		msnobj_str = msn_object_to_string(msnobj);
 
 		msn_cmdproc_send(cmdproc, "CHG", "%s %d %s", state_text,
-						 MSN_CLIENT_ID, purple_url_encode(msnobj_str));
+						 caps, purple_url_encode(msnobj_str));
 
 		g_free(msnobj_str);
 	}
--- a/libpurple/protocols/msn/userlist.c	Mon May 25 19:27:33 2009 +0000
+++ b/libpurple/protocols/msn/userlist.c	Mon Jun 08 18:28:31 2009 +0000
@@ -601,69 +601,6 @@
 	msn_add_contact_to_group(userlist->session, state, who, group_id);
 }
 
-/*
- * Save a buddy address/group until we get back response from FQY
- */
-void
-msn_userlist_save_pending_buddy(MsnUserList *userlist,
-                               const char *who,
-                               const char *group_name)
-{
-	MsnUser *user;
-
-	g_return_if_fail(userlist != NULL);
-
-	user = msn_user_new(userlist, who, NULL);
-	msn_user_set_pending_group(user, group_name);
-	msn_user_set_network(user, MSN_NETWORK_UNKNOWN);
-	userlist->pending = g_list_prepend(userlist->pending, user);
-}
-
-/*
- * Actually adds a buddy once we have the response from FQY
- */
-void
-msn_userlist_add_pending_buddy(MsnSession *session,
-                               const char *who,
-                               /*MsnNetwork*/ int network)
-{
-	MsnUserList *userlist = session->userlist;
-	MsnUser *user = NULL;
-	MsnUser *user2;
-	GList *l;
-	char *group;
-
-	for (l = userlist->pending; l != NULL; l = l->next)
-	{
-		user = (MsnUser *)l->data;
-
-		if (!g_ascii_strcasecmp(who, user->passport)) {
-			userlist->pending = g_list_delete_link(userlist->pending, l);
-			break;
-		}
-	}
-
-	if (user == NULL) {
-		purple_debug_error("msn", "Attempting to add a pending user that does not exist.\n");
-		return;
-	}
-
-	group = msn_user_remove_pending_group(user);
-
-	user2 = msn_userlist_find_user(userlist, who);
-	if (user2 != NULL) {
-		/* User already in userlist, so just update it. */
-		msn_user_destroy(user);
-		user = user2;
-	} else {
-		msn_userlist_add_user(userlist, user);
-	}
-
-	msn_user_set_network(user, network);
-	msn_userlist_add_buddy(userlist, who, group);
-	g_free(group);
-}
-
 void
 msn_userlist_add_buddy_to_list(MsnUserList *userlist, const char *who,
 							MsnListId list_id)
@@ -783,7 +720,6 @@
 void
 msn_userlist_load(MsnSession *session)
 {
-	PurpleBlistNode *gnode, *cnode, *bnode;
 	PurpleAccount *account = session->account;
 	PurpleConnection *gc = purple_account_get_connection(account);
 	GSList *l;
@@ -791,34 +727,14 @@
 
 	g_return_if_fail(gc != NULL);
 
-	for (gnode = purple_blist_get_root(); gnode;
-			gnode = purple_blist_node_get_sibling_next(gnode))
-	{
-		if (!PURPLE_BLIST_NODE_IS_GROUP(gnode))
-			continue;
-		for (cnode = purple_blist_node_get_first_child(gnode);
-				cnode;
-				cnode = purple_blist_node_get_sibling_next(cnode))
-		{
-			if (!PURPLE_BLIST_NODE_IS_CONTACT(cnode))
-				continue;
-			for (bnode = purple_blist_node_get_first_child(cnode);
-					bnode;
-					bnode = purple_blist_node_get_sibling_next(bnode))
-			{
-				PurpleBuddy *b;
-				if (!PURPLE_BLIST_NODE_IS_BUDDY(bnode))
-					continue;
-				b = (PurpleBuddy *)bnode;
-				if (purple_buddy_get_account(b) == account)
-				{
-					user = msn_userlist_find_add_user(session->userlist,
-						purple_buddy_get_name(b), NULL);
-					purple_buddy_set_protocol_data(b, user);
-					msn_user_set_op(user, MSN_LIST_FL_OP);
-				}
-			}
-		}
+	for (l = purple_find_buddies(account, NULL); l != NULL;
+			l = g_slist_delete_link(l, l)) {
+		PurpleBuddy *buddy = l->data;
+
+		user = msn_userlist_find_add_user(session->userlist,
+			purple_buddy_get_name(buddy), NULL);
+		purple_buddy_set_protocol_data(buddy, user);
+		msn_user_set_op(user, MSN_LIST_FL_OP);
 	}
 	for (l = session->account->permit; l != NULL; l = l->next)
 	{
--- a/libpurple/protocols/msn/userlist.h	Mon May 25 19:27:33 2009 +0000
+++ b/libpurple/protocols/msn/userlist.h	Mon Jun 08 18:28:31 2009 +0000
@@ -47,7 +47,6 @@
 
 	GList *users; /* Contains MsnUsers */
 	GList *groups; /* Contains MsnGroups */
-	GList *pending; /* MsnUsers pending addition (waiting for FQY response) */
 
 	GQueue *buddy_icon_requests;
 	int buddy_icon_window;
@@ -87,12 +86,6 @@
 void msn_userlist_rem_buddy(MsnUserList *userlist, const char *who);
 void msn_userlist_add_buddy(MsnUserList *userlist,
 			    const char *who, const char *group_name);
-void msn_userlist_save_pending_buddy(MsnUserList *userlist,
-                                     const char *who,
-                                     const char *group_name);
-void msn_userlist_add_pending_buddy(MsnSession *session,
-                                    const char *who,
-                                    /*MsnNetwork*/ int network);
 void msn_userlist_move_buddy(MsnUserList *userlist, const char *who,
 						    const char *old_group_name,
 						    const char *new_group_name);
--- a/libpurple/protocols/msnp9/session.c	Mon May 25 19:27:33 2009 +0000
+++ b/libpurple/protocols/msnp9/session.c	Mon Jun 08 18:28:31 2009 +0000
@@ -221,68 +221,51 @@
 static void
 msn_session_sync_users(MsnSession *session)
 {
-	PurpleBlistNode *gnode, *cnode, *bnode;
 	PurpleConnection *gc = purple_account_get_connection(session->account);
 	GList *to_remove = NULL;
+	GSList *buddies;
 
 	g_return_if_fail(gc != NULL);
 
 	/* The core used to use msn_add_buddy to add all buddies before
 	 * being logged in. This no longer happens, so we manually iterate
 	 * over the whole buddy list to identify sync issues. */
+	for (buddies = purple_find_buddies(session->account, NULL); buddies;
+			buddies = g_slist_delete_link(buddies, buddies)) {
+		PurpleBuddy *buddy = buddies->data;
+		const char *buddy_name = purple_buddy_get_name(buddy);
+		const char *group_name = purple_group_get_name(purple_buddy_get_group(buddy));
+		MsnUser *remote_user;
+		gboolean found = FALSE;
 
-	for (gnode = purple_blist_get_root(); gnode; gnode = gnode->next) {
-		PurpleGroup *group = (PurpleGroup *)gnode;
-		const char *group_name = group->name;
-		if(!PURPLE_BLIST_NODE_IS_GROUP(gnode))
-			continue;
-		for(cnode = gnode->child; cnode; cnode = cnode->next) {
-			if(!PURPLE_BLIST_NODE_IS_CONTACT(cnode))
-				continue;
-			for(bnode = cnode->child; bnode; bnode = bnode->next) {
-				PurpleBuddy *b;
-				if(!PURPLE_BLIST_NODE_IS_BUDDY(bnode))
-					continue;
-				b = (PurpleBuddy *)bnode;
-				if(purple_buddy_get_account(b) == purple_connection_get_account(gc)) {
-					MsnUser *remote_user;
-					gboolean found = FALSE;
+		remote_user = msn_userlist_find_user(session->userlist, buddy_name);
 
-					remote_user = msn_userlist_find_user(session->userlist, purple_buddy_get_name(b));
+		if (remote_user && remote_user->list_op & MSN_LIST_FL_OP) {
+			int group_id;
+			GList *l;
 
-					if ((remote_user != NULL) && (remote_user->list_op & MSN_LIST_FL_OP))
-					{
-						int group_id;
-						GList *l;
+			group_id = msn_userlist_find_group_id(remote_user->userlist,
+					group_name);
 
-						group_id = msn_userlist_find_group_id(remote_user->userlist,
-								group_name);
-
-						for (l = remote_user->group_ids; l != NULL; l = l->next)
-						{
-							if (group_id == GPOINTER_TO_INT(l->data))
-							{
-								found = TRUE;
-								break;
-							}
-						}
-
-					}
+			for (l = remote_user->group_ids; l; l = l->next) {
+				if (group_id == GPOINTER_TO_INT(l->data)) {
+					found = TRUE;
+					break;
+				}
+			}
 
-					/* We don't care if they're in a different group, as long as they're on the
-					 * list somewhere. If we check for the group, we cause pain, agony and
-					 * suffering for people who decide to re-arrange their buddy list elsewhere.
-					 */
-					if (!found)
-					{
-						if ((remote_user == NULL) || !(remote_user->list_op & MSN_LIST_FL_OP)) {
-							/* The user is not on the server list */
-							msn_show_sync_issue(session, purple_buddy_get_name(b), group_name);
-						} else {
-							/* The user is not in that group on the server list */
-							to_remove = g_list_prepend(to_remove, b);
-						}
-					}
+			/* We don't care if they're in a different group, as long as they're on the
+			 * list somewhere. If we check for the group, we cause pain, agony and
+			 * suffering for people who decide to re-arrange their buddy list elsewhere.
+			 */
+			if (!found)
+			{
+				if ((remote_user == NULL) || !(remote_user->list_op & MSN_LIST_FL_OP)) {
+					/* The user is not on the server list */
+					msn_show_sync_issue(session, buddy_name, group_name);
+				} else {
+					/* The user is not in that group on the server list */
+					to_remove = g_list_prepend(to_remove, buddy);
 				}
 			}
 		}
--- a/libpurple/protocols/myspace/myspace.c	Mon May 25 19:27:33 2009 +0000
+++ b/libpurple/protocols/myspace/myspace.c	Mon Jun 08 18:28:31 2009 +0000
@@ -1118,10 +1118,6 @@
 	guint buddy_count;
 
 	body = msim_msg_get_dictionary(reply, "body");
-	if (!body) {
-		/* No friends. Not an error. */
-		return;
-	}
 
 	buddy_count = 0;
 
@@ -1477,28 +1473,22 @@
  * @return TRUE if successful.
  */
 static gboolean
-msim_incoming_im(MsimSession *session, MsimMessage *msg)
+msim_incoming_im(MsimSession *session, MsimMessage *msg, const gchar *username)
 {
-	gchar *username, *msg_msim_markup, *msg_purple_markup;
+	gchar *msg_msim_markup, *msg_purple_markup;
 	gchar *userid;
 	time_t time_received;
 	PurpleConversation *conv;
 
-	g_return_val_if_fail(MSIM_SESSION_VALID(session), FALSE);
-	g_return_val_if_fail(msg != NULL, FALSE);
-
-	username = msim_msg_get_string(msg, "_username");
 	/* I know this isn't really a string... but we need it to be one for
 	 * purple_find_conversation_with_account(). */
 	userid = msim_msg_get_string(msg, "f");
-	g_return_val_if_fail(username != NULL, FALSE);
 
 	purple_debug_info("msim_incoming_im", "UserID is %s", userid);
 
 	if (msim_is_userid(username)) {
 		purple_debug_info("msim", "Ignoring message from spambot (%s) on account %s\n",
 				username, purple_account_get_username(session->account));
-		g_free(username);
 		return FALSE;
 	}
 
@@ -1523,14 +1513,13 @@
 
 	serv_got_im(session->gc, username, msg_purple_markup, PURPLE_MESSAGE_RECV, time_received);
 
-	g_free(username);
 	g_free(msg_purple_markup);
 
 	return TRUE;
 }
 
 /**
- * Handle an incoming action message.
+ * Handle an incoming action message or an IM.
  *
  * @param session
  * @param msg
@@ -1538,7 +1527,7 @@
  * @return TRUE if successful.
  */
 static gboolean
-msim_incoming_action(MsimSession *session, MsimMessage *msg)
+msim_incoming_action_or_im(MsimSession *session, MsimMessage *msg)
 {
 	gchar *msg_text, *username;
 	gboolean rc;
@@ -1552,7 +1541,8 @@
 	username = msim_msg_get_string(msg, "_username");
 	g_return_val_if_fail(username != NULL, FALSE);
 
-	purple_debug_info("msim", "msim_incoming_action: action <%s> from <%s>\n",
+	purple_debug_info("msim",
+			"msim_incoming_action_or_im: action <%s> from <%s>\n",
 			msg_text, username);
 
 	if (g_str_equal(msg_text, "%typing%")) {
@@ -1566,13 +1556,16 @@
 	} else if (strstr(msg_text, "!!!GroupCount=")) {
 		/* TODO: support group chats. I think the number in msg_text has
 		 * something to do with the 'gid' field. */
-		purple_debug_info("msim", "msim_incoming_action: TODO: implement #4691, group chats: %s\n", msg_text);
+		purple_debug_info("msim",
+				"msim_incoming_action_or_im: "
+				"TODO: implement #4691, group chats: %s\n", msg_text);
 
 		rc = TRUE;
 	} else if (strstr(msg_text, "!!!Offline=")) {
 		/* TODO: support group chats. This one might mean a user
 		 * went offline or exited the chat. */
-		purple_debug_info("msim", "msim_incoming_action: TODO: implement #4691, group chats: %s\n", msg_text);
+		purple_debug_info("msim", "msim_incoming_action_or_im: "
+				"TODO: implement #4691, group chats: %s\n", msg_text);
 
 		rc = TRUE;
 	} else if (msim_msg_get_integer(msg, "aid") != 0) {
@@ -1583,9 +1576,7 @@
 
 		rc = TRUE;
 	} else {
-		msim_unrecognized(session, msg,
-				"got to msim_incoming_action but unrecognized value for 'msg'");
-		rc = FALSE;
+		rc = msim_incoming_im(session, msg, username);
 	}
 
 	g_free(msg_text);
@@ -1670,10 +1661,9 @@
 	switch (bm) {
 		case MSIM_BM_STATUS:
 			return msim_incoming_status(session, msg);
-		case MSIM_BM_INSTANT:
-			return msim_incoming_im(session, msg);
-		case MSIM_BM_ACTION:
-			return msim_incoming_action(session, msg);
+		case MSIM_BM_INSTANT_ACTION_OR_IM:
+		case MSIM_BM_DELAYABLE_ACTION_OR_IM:
+			return msim_incoming_action_or_im(session, msg);
 		case MSIM_BM_MEDIA:
 			return msim_incoming_media(session, msg);
 		case MSIM_BM_UNOFFICIAL_CLIENT:
@@ -1681,7 +1671,8 @@
 		default:
 			/* Not really an IM, but show it for informational
 			 * purposes during development. */
-			return msim_incoming_im(session, msg);
+			/* TODO: This is probably wrong */
+			return msim_incoming_action_or_im(session, msg);
 	}
 }
 
@@ -2294,7 +2285,7 @@
 
 	message_msim = html_to_msim_markup(session, message);
 
-	if (msim_send_bm(session, who, message_msim, MSIM_BM_INSTANT)) {
+	if (msim_send_bm(session, who, message_msim, MSIM_BM_DELAYABLE_ACTION_OR_IM)) {
 		/* Return 1 to have Purple show this IM as being sent, 0 to not. I always
 		 * return 1 even if the message could not be sent, since I don't know if
 		 * it has failed yet--because the IM is only sent after the userid is
@@ -2347,7 +2338,7 @@
 	}
 
 	purple_debug_info("msim", "msim_send_typing(%s): %d (%s)\n", name, state, typing_str);
-	msim_send_bm(session, name, typing_str, MSIM_BM_ACTION);
+	msim_send_bm(session, name, typing_str, MSIM_BM_INSTANT_ACTION_OR_IM);
 	return 0;
 }
 
--- a/libpurple/protocols/myspace/myspace.h	Mon May 25 19:27:33 2009 +0000
+++ b/libpurple/protocols/myspace/myspace.h	Mon Jun 08 18:28:31 2009 +0000
@@ -127,12 +127,12 @@
 #define MSIM_FINAL_STRING           "\\final\\" /**< Message end marker */
 
 /* Messages */
-#define MSIM_BM_INSTANT             1
-#define MSIM_BM_STATUS              100
-#define MSIM_BM_ACTION              121
-#define MSIM_BM_MEDIA               122
-#define MSIM_BM_PROFILE             124
-#define MSIM_BM_UNOFFICIAL_CLIENT   200
+#define MSIM_BM_DELAYABLE_ACTION_OR_IM  1
+#define MSIM_BM_STATUS                  100
+#define MSIM_BM_INSTANT_ACTION_OR_IM    121
+#define MSIM_BM_MEDIA                   122
+#define MSIM_BM_PROFILE                 124
+#define MSIM_BM_UNOFFICIAL_CLIENT       200
 
 /* Authentication algorithm for login2 */
 #define MSIM_AUTH_ALGORITHM         196610
--- a/libpurple/protocols/myspace/zap.c	Mon May 25 19:27:33 2009 +0000
+++ b/libpurple/protocols/myspace/zap.c	Mon Jun 08 18:28:31 2009 +0000
@@ -109,7 +109,7 @@
 	/* Construct and send the actual zap command. */
 	zap_string = g_strdup_printf("!!!ZAP_SEND!!!=RTE_BTN_ZAPS_%d", code);
 
-	if (!msim_send_bm(session, username, zap_string, MSIM_BM_ACTION)) {
+	if (!msim_send_bm(session, username, zap_string, MSIM_BM_INSTANT_ACTION_OR_IM)) {
 		purple_debug_info("msim_send_zap",
 				"msim_send_bm failed: zapping %s with %s\n",
 				username, zap_string);
--- a/libpurple/protocols/oscar/oscar.c	Mon May 25 19:27:33 2009 +0000
+++ b/libpurple/protocols/oscar/oscar.c	Mon Jun 08 18:28:31 2009 +0000
@@ -6541,47 +6541,35 @@
 {
 	PurpleConnection *gc = (PurpleConnection *) action->context;
 	OscarData *od = purple_connection_get_protocol_data(gc);
-	gchar *nombre, *text, *tmp;
-	PurpleBlistNode *gnode, *cnode, *bnode;
+	gchar *text, *tmp;
+	GSList *buddies;
 	PurpleAccount *account;
 	int num=0;
 
 	text = g_strdup("");
 	account = purple_connection_get_account(gc);
 
-	for (gnode = purple_blist_get_root(); gnode;
-			gnode = purple_blist_node_get_sibling_next(gnode)) {
-		PurpleGroup *group = (PurpleGroup *)gnode;
-		const char *gname;
-		if(!PURPLE_BLIST_NODE_IS_GROUP(gnode))
-			continue;
-		gname = purple_group_get_name(group);
-		for (cnode = purple_blist_node_get_first_child(gnode);
-				cnode;
-				cnode = purple_blist_node_get_sibling_next(cnode)) {
-			if(!PURPLE_BLIST_NODE_IS_CONTACT(cnode))
-				continue;
-			for (bnode = purple_blist_node_get_first_child(cnode);
-					bnode;
-					bnode = purple_blist_node_get_sibling_next(bnode)) {
-				PurpleBuddy *buddy = (PurpleBuddy *)bnode;
-				const char *bname;
-				if(!PURPLE_BLIST_NODE_IS_BUDDY(bnode))
-					continue;
-				bname = purple_buddy_get_name(buddy);
-				if (purple_buddy_get_account(buddy) == account && aim_ssi_waitingforauth(od->ssi.local, gname, bname)) {
-					if (purple_buddy_get_alias_only(buddy))
-						nombre = g_strdup_printf(" %s (%s)", bname, purple_buddy_get_alias_only(buddy));
-					else
-						nombre = g_strdup_printf(" %s", bname);
-					tmp = g_strdup_printf("%s%s<br>", text, nombre);
-					g_free(text);
-					text = tmp;
-					g_free(nombre);
-					num++;
-				}
-			}
+	buddies = purple_find_buddies(account, NULL);
+	while (buddies) {
+		PurpleBuddy *buddy;
+		const gchar *bname, *gname;
+
+		buddy = buddies->data;
+		bname = purple_buddy_get_name(buddy);
+		gname = purple_group_get_name(purple_buddy_get_group(buddy));
+		if (aim_ssi_waitingforauth(od->ssi.local, gname, bname)) {
+			const gchar *alias = purple_buddy_get_alias_only(buddy);
+			if (alias)
+				tmp = g_strdup_printf("%s %s (%s)<br>", text, bname, alias);
+			else
+				tmp = g_strdup_printf("%s %s<br>", text, bname);
+			g_free(text);
+			text = tmp;
+
+			num++;
 		}
+
+		buddies = g_slist_delete_link(buddies, buddies);
 	}
 
 	if (!num) {
--- a/libpurple/protocols/silc/buddy.c	Mon May 25 19:27:33 2009 +0000
+++ b/libpurple/protocols/silc/buddy.c	Mon Jun 08 18:28:31 2009 +0000
@@ -1407,35 +1407,16 @@
 
 void silcpurple_send_buddylist(PurpleConnection *gc)
 {
-	PurpleBlistNode *gnode, *cnode, *bnode;
-	PurpleBuddy *buddy;
+	GSList *buddies;
 	PurpleAccount *account;
 
 	account = purple_connection_get_account(gc);
 
-	for (gnode = purple_blist_get_root();
-			gnode != NULL;
-			gnode = purple_blist_node_get_sibling_next(gnode))
+	for (buddies = purple_find_buddies(account, NULL); buddies;
+			buddies = g_slist_delete_link(buddies, buddies))
 	{
-		if (!PURPLE_BLIST_NODE_IS_GROUP(gnode))
-			continue;
-		for (cnode = purple_blist_node_get_first_child(gnode);
-				cnode != NULL;
-				cnode = purple_blist_node_get_sibling_next(cnode))
-		{
-			if (!PURPLE_BLIST_NODE_IS_CONTACT(cnode))
-				continue;
-			for (bnode = purple_blist_node_get_first_child(cnode);
-					bnode != NULL;
-					bnode = purple_blist_node_get_sibling_next(bnode))
-			{
-				if (!PURPLE_BLIST_NODE_IS_BUDDY(bnode))
-					continue;
-				buddy = (PurpleBuddy *)bnode;
-				if (purple_buddy_get_account(buddy) == account)
-					silcpurple_add_buddy_i(gc, buddy, TRUE);
-			}
-		}
+		PurpleBuddy *buddy = buddies->data;
+		silcpurple_add_buddy_i(gc, buddy, TRUE);
 	}
 }
 
--- a/libpurple/protocols/silc/ops.c	Mon May 25 19:27:33 2009 +0000
+++ b/libpurple/protocols/silc/ops.c	Mon Jun 08 18:28:31 2009 +0000
@@ -839,7 +839,7 @@
 
 			b = NULL;
 			if (public_key) {
-				PurpleBlistNode *gnode, *cnode, *bnode;
+				GSList *buddies;
 				const char *f;
 
 				pk = silc_pkcs_public_key_encode(public_key, &pk_len);
@@ -857,29 +857,13 @@
 				silc_free(pk);
 
 				/* Find buddy by associated public key */
-				for (gnode = purple_blist_get_root(); gnode;
-				     gnode = purple_blist_node_get_sibling_next(gnode)) {
-					if (!PURPLE_BLIST_NODE_IS_GROUP(gnode))
-						continue;
-					for (cnode = purple_blist_node_get_first_child(gnode);
-							cnode;
-							cnode = purple_blist_node_get_sibling_next(cnode)) {
-						if( !PURPLE_BLIST_NODE_IS_CONTACT(cnode))
-							continue;
-						for (bnode = purple_blist_node_get_first_child(cnode);
-								bnode;
-								bnode = purple_blist_node_get_sibling_next(bnode)) {
-							if (!PURPLE_BLIST_NODE_IS_BUDDY(bnode))
-								continue;
-							b = (PurpleBuddy *)bnode;
-							if (purple_buddy_get_account(b) != account)
-								continue;
-							f = purple_blist_node_get_string(bnode, "public-key");
-							if (f && !strcmp(f, buf))
-								goto cont;
-							b = NULL;
-						}
-					}
+				for (buddies = purple_find_buddies(account, NULL); buddies;
+						buddies = g_slist_delete_link(buddies, buddies)) {
+					b = buddies->data;
+					f = purple_blist_node_get_string(PURPLE_BLIST_NODE(b), "public-key");
+					if (purple_strequal(f, buf))
+						goto cont;
+					b = NULL;
 				}
 			}
 		cont:
--- a/libpurple/protocols/simple/simple.c	Mon May 25 19:27:33 2009 +0000
+++ b/libpurple/protocols/simple/simple.c	Mon Jun 08 18:28:31 2009 +0000
@@ -213,27 +213,18 @@
 }
 
 static void simple_get_buddies(PurpleConnection *gc) {
-	PurpleBlistNode *gnode, *cnode, *bnode;
+	GSList *buddies;
 	PurpleAccount *account;
 
 	purple_debug_info("simple", "simple_get_buddies\n");
 
 	account = purple_connection_get_account(gc);
-	for(gnode = purple_blist_get_root(); gnode;
-			gnode = purple_blist_node_get_sibling_next(gnode)) {
-		if(!PURPLE_BLIST_NODE_IS_GROUP(gnode)) continue;
-		for(cnode = purple_blist_node_get_first_child(gnode);
-				cnode;
-				cnode = purple_blist_node_get_sibling_next(cnode)) {
-			if(!PURPLE_BLIST_NODE_IS_CONTACT(cnode)) continue;
-			for(bnode = purple_blist_node_get_first_child(cnode);
-					bnode;
-					bnode = purple_blist_node_get_sibling_next(bnode)) {
-				if(!PURPLE_BLIST_NODE_IS_BUDDY(bnode)) continue;
-				if(purple_buddy_get_account((PurpleBuddy*)bnode) == account)
-					simple_add_buddy(gc, (PurpleBuddy*)bnode, (PurpleGroup *)gnode);
-			}
-		}
+	buddies = purple_find_buddies(account, NULL);
+	while (buddies) {
+		PurpleBuddy *buddy = buddies->data;
+		simple_add_buddy(gc, buddy, purple_buddy_get_group(buddy));
+
+		buddies = g_slist_delete_link(buddies, buddies);
 	}
 }
 
--- a/libpurple/protocols/yahoo/yahoo.c	Mon May 25 19:27:33 2009 +0000
+++ b/libpurple/protocols/yahoo/yahoo.c	Mon Jun 08 18:28:31 2009 +0000
@@ -147,7 +147,6 @@
 static void yahoo_process_status(PurpleConnection *gc, struct yahoo_packet *pkt)
 {
 	PurpleAccount *account = purple_connection_get_account(gc);
-	struct yahoo_data *yd = gc->proto_data;
 	GSList *l = pkt->hash;
 	YahooFriend *f = NULL;
 	char *name = NULL;
@@ -168,29 +167,7 @@
 
 		switch (pair->key) {
 		case 0: /* we won't actually do anything with this */
-			break;
-		case 1: /* we don't get the full buddy list here. */
-			if (!yd->logged_in) {
-				purple_connection_set_display_name(gc, pair->value);
-				purple_connection_set_state(gc, PURPLE_CONNECTED);
-				yd->logged_in = TRUE;
-				if (yd->picture_upload_todo) {
-					yahoo_buddy_icon_upload(gc, yd->picture_upload_todo);
-					yd->picture_upload_todo = NULL;
-				}
-				yahoo_set_status(account, purple_account_get_active_status(account));
-
-				/* this requests the list. i have a feeling that this is very evil
-				 *
-				 * scs.yahoo.com sends you the list before this packet without  it being
-				 * requested
-				 *
-				 * do_import(gc, NULL);
-				 * newpkt = yahoo_packet_new(YAHOO_SERVICE_LIST, YAHOO_STATUS_OFFLINE, 0);
-				 * yahoo_packet_send_and_free(newpkt, yd);
-				 */
-
-				}
+		case 1: /* we won't actually do anything with this */
 			break;
 		case 8: /* how many online buddies we have */
 			break;
@@ -577,6 +554,18 @@
 	}
 
 	g_hash_table_foreach(ht, yahoo_do_group_cleanup, NULL);
+	
+	/* Now that we have processed the buddy list, we can say yahoo has connected */
+	purple_connection_set_display_name(gc, purple_normalize(account, purple_account_get_username(account)));
+	purple_connection_set_state(gc, PURPLE_CONNECTED);
+	yd->logged_in = TRUE;
+	if (yd->picture_upload_todo) {
+		yahoo_buddy_icon_upload(gc, yd->picture_upload_todo);
+		yd->picture_upload_todo = NULL;
+	}
+	yahoo_set_status(account, purple_account_get_active_status(account));
+	purple_debug_info("yahoo","Authentication: Connection established\n");
+
 	g_hash_table_destroy(ht);
 	g_free(norm_bud);
 	g_free(temp);
@@ -1586,7 +1575,8 @@
 
 	to_y64(base64_string, md5_digest, 16);
 
-	pkt = yahoo_packet_new(YAHOO_SERVICE_AUTHRESP, YAHOO_STATUS_WEBLOGIN, yd->session_id);
+	purple_debug_info("yahoo", "yahoo status: %d\n", yd->current_status);
+	pkt = yahoo_packet_new(YAHOO_SERVICE_AUTHRESP, yd->current_status, yd->session_id);
 	if(yd->jp) {
 		yahoo_packet_hash(pkt, "ssssssss",
 					1, name,
@@ -1753,7 +1743,7 @@
 					break;
 				case 1213:
 					/* security lock from too many failed login attempts */
-					error_reason = g_strdup(_("Account locked: Too many failed login attempts"));
+					error_reason = g_strdup(_("Account locked: Too many failed login attempts.\nLogging into the Yahoo! website may fix this."));
 					error = PURPLE_CONNECTION_ERROR_OTHER_ERROR;
 					break;
 				case 1235:
@@ -1761,9 +1751,10 @@
 					error_reason = g_strdup(_("Username does not exist"));
 					error = PURPLE_CONNECTION_ERROR_INVALID_USERNAME;
 					break;
+				case 1214:
 				case 1236:
 					/* indicates a lock of some description */
-					error_reason = g_strdup(_("Account locked: See the debug log"));
+					error_reason = g_strdup(_("Account locked: Unknown reason.\nLogging into the Yahoo! website may fix this."));
 					error = PURPLE_CONNECTION_ERROR_OTHER_ERROR;
 					break;
 				case 100:
@@ -1792,7 +1783,10 @@
 				"yahoojp", 0);
 
 			url = g_strdup_printf(yahoojp ? YAHOOJP_LOGIN_URL : YAHOO_LOGIN_URL, token);
-			url_data = purple_util_fetch_url_request(url, TRUE, YAHOO_CLIENT_USERAGENT, TRUE, NULL, FALSE, yahoo_auth16_stage2, auth_data);
+			url_data = purple_util_fetch_url_request_len_with_account(
+					purple_connection_get_account(gc), url, TRUE,
+					YAHOO_CLIENT_USERAGENT, TRUE, NULL, FALSE, -1,
+					yahoo_auth16_stage2, auth_data);
 			g_free(url);
 			g_free(token);
 		}
@@ -1828,7 +1822,11 @@
 	g_free(encoded_password);
 	g_free(encoded_username);
 
-	url_data = purple_util_fetch_url_request(url, TRUE, YAHOO_CLIENT_USERAGENT, TRUE, NULL, FALSE, yahoo_auth16_stage1_cb, auth_data);
+	url_data = purple_util_fetch_url_request_len_with_account(
+			purple_connection_get_account(gc), url, TRUE,
+			YAHOO_CLIENT_USERAGENT, TRUE, NULL, FALSE, -1,
+			yahoo_auth16_stage1_cb, auth_data);
+
 	g_free(url);
 }
 
@@ -3950,8 +3948,9 @@
 		use_whole_url ? base_url : "",
 		yd->cookie_t, yd->cookie_y);
 
-	url_data = purple_util_fetch_url_request(base_url, use_whole_url,
-			YAHOO_CLIENT_USERAGENT, TRUE, request, FALSE,
+	url_data = purple_util_fetch_url_request_len_with_account(
+			purple_connection_get_account(gc), base_url, use_whole_url,
+			YAHOO_CLIENT_USERAGENT, TRUE, request, FALSE, -1,
 			yahoo_get_inbox_token_cb, gc);
 
 	g_free(request);
@@ -4112,8 +4111,9 @@
 	if ((gc->account->proxy_info) && (gc->account->proxy_info->type == PURPLE_PROXY_HTTP))
 	    use_whole_url = TRUE;
 
-	url_data = purple_util_fetch_url_request(YAHOO_SMS_CARRIER_URL, use_whole_url,
-			YAHOO_CLIENT_USERAGENT, TRUE, request, FALSE,
+	url_data = purple_util_fetch_url_request_len_with_account(
+			purple_connection_get_account(gc), YAHOO_SMS_CARRIER_URL, use_whole_url,
+			YAHOO_CLIENT_USERAGENT, TRUE, request, FALSE, -1,
 			yahoo_get_sms_carrier_cb, data);
 
 	g_free(request);
--- a/libpurple/protocols/yahoo/yahoo_aliases.c	Mon May 25 19:27:33 2009 +0000
+++ b/libpurple/protocols/yahoo/yahoo_aliases.c	Mon Jun 08 18:28:31 2009 +0000
@@ -175,9 +175,9 @@
 				  webaddress);
 
 	/* We have a URL and some header information, let's connect and get some aliases  */
-	url_data = purple_util_fetch_url_request(url, use_whole_url, NULL, TRUE,
-						 request, FALSE,
-						 yahoo_fetch_aliases_cb, cb);
+	url_data = purple_util_fetch_url_request_len_with_account(purple_connection_get_account(gc),
+				url, use_whole_url, NULL, TRUE, request, FALSE, -1,
+				yahoo_fetch_aliases_cb, cb);
 	if (url_data != NULL)
 		yd->url_datas = g_slist_prepend(yd->url_datas, url_data);
 
@@ -347,7 +347,9 @@
 				  content);
 
 	/* We have a URL and some header information, let's connect and update the alias  */
-	url_data = purple_util_fetch_url_request(url, use_whole_url, NULL, TRUE, request, FALSE, yahoo_update_alias_cb, cb);
+	url_data = purple_util_fetch_url_request_len_with_account(
+			purple_connection_get_account(gc), url, use_whole_url, NULL, TRUE,
+			request, FALSE, -1, yahoo_update_alias_cb, cb);
 	if (url_data != NULL)
 		yd->url_datas = g_slist_prepend(yd->url_datas, url_data);
 
--- a/libpurple/protocols/zephyr/zephyr.c	Mon May 25 19:27:33 2009 +0000
+++ b/libpurple/protocols/zephyr/zephyr.c	Mon Jun 08 18:28:31 2009 +0000
@@ -1254,45 +1254,32 @@
 
 #ifdef WIN32
 
-static gint check_loc(gpointer_data)
+static gint check_loc(gpointer data)
 {
-	PurpleBlistNode *gnode, *cnode, *bnode;
+	GSList *buddies;
 	ZLocations_t locations;
+	PurpleConnection *gc = data;
+	zephyr_account *zephyr = gc->proto_data;
+	PurpleAccount *account = purple_connection_get_account(gc);
 	int numlocs;
 	int one = 1;
 
-	for (gnode = purple_blist_get_root(); gnode;
-			gnode = purple_blist_node_get_sibling_next(gnode)) {
-		if (!PURPLE_BLIST_NODE_IS_GROUP(gnode))
-			continue;
-		for (cnode = purple_blist_node_get_first_child(gnode);
-				cnode;
-				cnode = purple_blist_node_get_sibling_next(cnode)) {
-			if (!PURPLE_BLIST_NODE_IS_CONTACT(cnode))
-				continue;
-			for (bnode = purple_blist_node_get_first_child(cnode);
-					bnode;
-					bnode = purple_blist_node_get_sibling_next(bnode)) {
-				PurpleBuddy *b = (PurpleBuddy *) bnode;
-
-				if (!PURPLE_BLIST_NODE_IS_BUDDY(bnode))
-					continue;
-				if (purple_buddy_get_account(b)->gc == zgc) {
-					char *chk;
-					const char *bname = purple_buddy_get_name(b);
-					chk = local_zephyr_normalize(bname);
-					ZLocateUser(chk,&numlocs, ZAUTH);
-					if (numlocs) {
-						int i;
-						for(i=0;i<numlocs;i++) {
-							ZGetLocations(&locations,&one);
-							serv_got_update(zgc,bname,1,0,0,0,0);
-						}
-					}
-				}
+	for (buddies = purple_find_buddies(account, NULL); buddies;
+			buddies = g_slist_delete_link(buddies, buddies)) {
+		PurpleBuddy *b = buddies->data;
+		char *chk;
+		const char *bname = purple_buddy_get_name(b);
+		chk = local_zephyr_normalize(bname);
+		ZLocateUser(chk,&numlocs, ZAUTH);
+		if (numlocs) {
+			int i;
+			for(i=0;i<numlocs;i++) {
+				ZGetLocations(&locations,&one);
+				serv_got_update(zgc,bname,1,0,0,0,0);
 			}
 		}
 	}
+
 	return TRUE;
 }
 
@@ -1300,7 +1287,7 @@
 
 static gint check_loc(gpointer data)
 {
-	PurpleBlistNode *gnode, *cnode, *bnode;
+	GSList *buddies;
 	ZAsyncLocateData_t ald;
 	PurpleConnection *gc = (PurpleConnection *)data;
 	zephyr_account *zephyr = gc->proto_data;
@@ -1312,65 +1299,49 @@
 		ald.version = NULL;
 	}
 
-	for (gnode = purple_blist_get_root(); gnode;
-			gnode = purple_blist_node_get_sibling_next(gnode)) {
-		if (!PURPLE_BLIST_NODE_IS_GROUP(gnode))
-			continue;
-		for (cnode = purple_blist_node_get_first_child(gnode);
-				cnode;
-				cnode = purple_blist_node_get_sibling_next(cnode)) {
-			if (!PURPLE_BLIST_NODE_IS_CONTACT(cnode))
-				continue;
-			for (bnode = purple_blist_node_get_first_child(cnode);
-					bnode;
-					bnode = purple_blist_node_get_sibling_next(bnode)) {
-				PurpleBuddy *b = (PurpleBuddy *) bnode;
+	for (buddies = purple_find_buddies(account, NULL); buddies;
+			buddies = g_slist_delete_link(buddies, buddies)) {
+		PurpleBuddy *b = buddies->data;
 
-				if (!PURPLE_BLIST_NODE_IS_BUDDY(bnode))
-					continue;
-				if (purple_buddy_get_account(b) == account) {
-					const char *chk;
-					const char *name = purple_buddy_get_name(b);
+		const char *chk;
+		const char *name = purple_buddy_get_name(b);
 
-					chk = local_zephyr_normalize(zephyr,name);
-					purple_debug_info("zephyr","chk: %s b->name %s\n",chk,name);
-					/* XXX add real error reporting */
-					/* doesn't matter if this fails or not; we'll just move on to the next one */
-					if (use_zeph02(zephyr)) {
+		chk = local_zephyr_normalize(zephyr,name);
+		purple_debug_info("zephyr","chk: %s b->name %s\n",chk,name);
+		/* XXX add real error reporting */
+		/* doesn't matter if this fails or not; we'll just move on to the next one */
+		if (use_zeph02(zephyr)) {
 #ifdef WIN32
-						int numlocs;
-						int one=1;
-						ZLocateUser(chk,&numlocs,ZAUTH);
-						if (numlocs) {
-							int i;
-							for(i=0;i<numlocs;i++) {
-								ZGetLocations(&locations,&one);
-								if (nlocs>0) 
-									purple_prpl_got_user_status(account,name,"available",NULL);
-								else 
-									purple_prpl_got_user_status(account,name,"offline",NULL);
-							}
-						}
-#else
-						ZRequestLocations(chk, &ald, UNACKED, ZAUTH);
-						g_free(ald.user);
-						g_free(ald.version);
-#endif /* WIN32 */
-					} else 
-						if (use_tzc(zephyr)) {
-							gchar *zlocstr = g_strdup_printf("((tzcfodder . zlocate) \"%s\")\n",chk);
-							size_t len = strlen(zlocstr);
-							size_t result = write(zephyr->totzc[ZEPHYR_FD_WRITE],zlocstr,len);
-							if (result != len) {
-								purple_debug_error("zephyr", "Unable to write a message: %s\n", g_strerror(errno));
-							}
-							g_free(zlocstr);
-						}
+			int numlocs;
+			int one=1;
+			ZLocateUser(chk,&numlocs,ZAUTH);
+			if (numlocs) {
+				int i;
+				for(i=0;i<numlocs;i++) {
+					ZGetLocations(&locations,&one);
+					if (nlocs>0) 
+						purple_prpl_got_user_status(account,name,"available",NULL);
+					else 
+						purple_prpl_got_user_status(account,name,"offline",NULL);
 				}
 			}
-		}
+#else
+			ZRequestLocations(chk, &ald, UNACKED, ZAUTH);
+			g_free(ald.user);
+			g_free(ald.version);
+#endif /* WIN32 */
+		} else 
+			if (use_tzc(zephyr)) {
+				gchar *zlocstr = g_strdup_printf("((tzcfodder . zlocate) \"%s\")\n",chk);
+				size_t len = strlen(zlocstr);
+				size_t result = write(zephyr->totzc[ZEPHYR_FD_WRITE],zlocstr,len);
+				if (result != len) {
+					purple_debug_error("zephyr", "Unable to write a message: %s\n", g_strerror(errno));
+				}
+				g_free(zlocstr);
+			}
 	}
-	
+
 	return TRUE;
 }
 
@@ -1955,8 +1926,7 @@
 
 static void write_anyone(PurpleConnection *gc)
 {
-	PurpleBlistNode *gnode, *cnode, *bnode;
-	PurpleBuddy *b;
+	GSList *buddies;
 	char *fname;
 	FILE *fd;
 	PurpleAccount *account;
@@ -1969,29 +1939,12 @@
 	}
 
 	account = purple_connection_get_account(gc);
-	for (gnode = purple_blist_get_root();
-			gnode;
-			gnode = purple_blist_node_get_sibling_next(gnode)) {
-		if (!PURPLE_BLIST_NODE_IS_GROUP(gnode))
-			continue;
-		for (cnode = purple_blist_node_get_first_child(gnode);
-				cnode;
-				cnode = purple_blist_node_get_sibling_next(cnode)) {
-			if (!PURPLE_BLIST_NODE_IS_CONTACT(cnode))
-				continue;
-			for (bnode = purple_blist_node_get_first_child(cnode);
-					bnode;
-					bnode = purple_blist_node_get_sibling_next(bnode)) {
-				if (!PURPLE_BLIST_NODE_IS_BUDDY(bnode))
-					continue;
-				b = (PurpleBuddy *) bnode;
-				if (purple_buddy_get_account(b) == account) {
-					gchar *stripped_user = zephyr_strip_local_realm(zephyr, purple_buddy_get_name(b));
-					fprintf(fd, "%s\n", stripped_user);
-					g_free(stripped_user);
-				}
-			}
-		}
+	for (buddies = purple_find_buddies(account, NULL); buddies;
+			buddies = g_slist_delete_link(buddies, buddies)) {
+		PurpleBuddy *b = buddies->data;
+		gchar *stripped_user = zephyr_strip_local_realm(zephyr, purple_buddy_get_name(b));
+		fprintf(fd, "%s\n", stripped_user);
+		g_free(stripped_user);
 	}
 
 	fclose(fd);
--- a/libpurple/proxy.c	Mon May 25 19:27:33 2009 +0000
+++ b/libpurple/proxy.c	Mon Jun 08 18:28:31 2009 +0000
@@ -47,6 +47,7 @@
 	gchar *host;
 	int port;
 	int fd;
+	int socket_type;
 	guint inpa;
 	PurpleProxyInfo *gpi;
 	PurpleDnsQueryData *query_data;
@@ -676,6 +677,68 @@
 }
 
 static void
+proxy_connect_udp_none(PurpleProxyConnectData *connect_data, struct sockaddr *addr, socklen_t addrlen)
+{
+	int flags;
+
+	purple_debug_info("proxy", "UDP Connecting to %s:%d with no proxy\n",
+			connect_data->host, connect_data->port);
+
+	connect_data->fd = socket(addr->sa_family, SOCK_DGRAM, 0);
+	if (connect_data->fd < 0)
+	{
+		purple_proxy_connect_data_disconnect_formatted(connect_data,
+				_("Unable to create socket:\n%s"), g_strerror(errno));
+		return;
+	}
+
+	flags = fcntl(connect_data->fd, F_GETFL);
+	fcntl(connect_data->fd, F_SETFL, flags | O_NONBLOCK);
+#ifndef _WIN32
+	fcntl(connect_data->fd, F_SETFD, FD_CLOEXEC);
+#endif
+
+	if (connect(connect_data->fd, addr, addrlen) != 0)
+	{
+		if ((errno == EINPROGRESS) || (errno == EINTR))
+		{
+			purple_debug_info("proxy", "UDP Connection in progress\n");
+			connect_data->inpa = purple_input_add(connect_data->fd,
+					PURPLE_INPUT_WRITE, socket_ready_cb, connect_data);
+		}
+		else
+		{
+			purple_proxy_connect_data_disconnect(connect_data, g_strerror(errno));
+		}
+	}
+	else
+	{
+		/*
+		 * The connection happened IMMEDIATELY... strange, but whatever.
+		 */
+		int error = ETIMEDOUT;
+		int ret;
+
+		purple_debug_info("proxy", "UDP Connected immediately.\n");
+
+		ret = purple_input_get_error(connect_data->fd, &error);
+		if ((ret != 0) || (error != 0))
+		{
+			if (ret != 0)
+				error = errno;
+			purple_proxy_connect_data_disconnect(connect_data, g_strerror(error));
+			return;
+		}
+
+		/*
+		 * We want to call the "connected" callback eventually, but we
+		 * don't want to call it before we return, just in case.
+		 */
+		purple_timeout_add(10, clean_connect, connect_data);
+	}
+}
+
+static void
 proxy_connect_none(PurpleProxyConnectData *connect_data, struct sockaddr *addr, socklen_t addrlen)
 {
 	int flags;
@@ -2042,6 +2105,12 @@
 #endif
 	purple_debug_info("proxy", "Attempting connection to %s\n", ipaddr);
 
+	if (connect_data->socket_type == SOCK_DGRAM) {
+		proxy_connect_udp_none(connect_data, addr, addrlen);
+		g_free(addr);
+		return;
+	}
+
 	switch (purple_proxy_info_get_type(connect_data->gpi)) {
 		case PURPLE_PROXY_NONE:
 			proxy_connect_none(connect_data, addr, addrlen);
@@ -2193,6 +2262,7 @@
 
 	connect_data = g_new0(PurpleProxyConnectData, 1);
 	connect_data->fd = -1;
+	connect_data->socket_type = SOCK_STREAM;
 	connect_data->handle = handle;
 	connect_data->connect_cb = connect_cb;
 	connect_data->data = data;
@@ -2243,6 +2313,71 @@
 	return connect_data;
 }
 
+PurpleProxyConnectData *
+purple_proxy_connect_udp(void *handle, PurpleAccount *account,
+				   const char *host, int port,
+				   PurpleProxyConnectFunction connect_cb, gpointer data)
+{
+	const char *connecthost = host;
+	int connectport = port;
+	PurpleProxyConnectData *connect_data;
+
+	g_return_val_if_fail(host       != NULL, NULL);
+	g_return_val_if_fail(port       >  0,    NULL);
+	g_return_val_if_fail(connect_cb != NULL, NULL);
+
+	connect_data = g_new0(PurpleProxyConnectData, 1);
+	connect_data->fd = -1;
+	connect_data->socket_type = SOCK_DGRAM;
+	connect_data->handle = handle;
+	connect_data->connect_cb = connect_cb;
+	connect_data->data = data;
+	connect_data->host = g_strdup(host);
+	connect_data->port = port;
+	connect_data->gpi = purple_proxy_get_setup(account);
+
+	if ((purple_proxy_info_get_type(connect_data->gpi) != PURPLE_PROXY_NONE) &&
+		(purple_proxy_info_get_host(connect_data->gpi) == NULL ||
+		 purple_proxy_info_get_port(connect_data->gpi) <= 0)) {
+
+		purple_notify_error(NULL, NULL, _("Invalid proxy settings"), _("Either the host name or port number specified for your given proxy type is invalid."));
+		purple_proxy_connect_data_destroy(connect_data);
+		return NULL;
+	}
+
+	switch (purple_proxy_info_get_type(connect_data->gpi))
+	{
+		case PURPLE_PROXY_NONE:
+			break;
+
+		case PURPLE_PROXY_HTTP:
+		case PURPLE_PROXY_SOCKS4:
+		case PURPLE_PROXY_SOCKS5:
+		case PURPLE_PROXY_USE_ENVVAR:
+			purple_debug_info("proxy", "Ignoring Proxy type (%d) for UDP.\n",
+			                  purple_proxy_info_get_type(connect_data->gpi));
+			break;
+
+		default:
+			purple_debug_error("proxy", "Invalid Proxy type (%d) specified.\n",
+			                   purple_proxy_info_get_type(connect_data->gpi));
+			purple_proxy_connect_data_destroy(connect_data);
+			return NULL;
+	}
+
+	connect_data->query_data = purple_dnsquery_a(connecthost,
+			connectport, connection_host_resolved, connect_data);
+	if (connect_data->query_data == NULL)
+	{
+		purple_proxy_connect_data_destroy(connect_data);
+		return NULL;
+	}
+
+	handles = g_slist_prepend(handles, connect_data);
+
+	return connect_data;
+}
+
 /*
  * Combine some of this code with purple_proxy_connect()
  */
@@ -2260,6 +2395,7 @@
 
 	connect_data = g_new0(PurpleProxyConnectData, 1);
 	connect_data->fd = -1;
+	connect_data->socket_type = SOCK_STREAM;
 	connect_data->handle = handle;
 	connect_data->connect_cb = connect_cb;
 	connect_data->data = data;
--- a/libpurple/proxy.h	Mon May 25 19:27:33 2009 +0000
+++ b/libpurple/proxy.h	Mon Jun 08 18:28:31 2009 +0000
@@ -257,6 +257,35 @@
 			PurpleProxyConnectFunction connect_cb, gpointer data);
 
 /**
+ * Makes a connection to the specified host and port.  Note that this
+ * function name can be misleading--although it is called "proxy
+ * connect," it is used for establishing any outgoing UDP connection,
+ * whether through a proxy or not.
+ *
+ * @param handle     A handle that should be associated with this
+ *                   connection attempt.  The handle can be used
+ *                   to cancel the connection attempt using the
+ *                   purple_proxy_connect_cancel_with_handle()
+ *                   function.
+ * @param account    The account making the connection.
+ * @param host       The destination host.
+ * @param port       The destination port.
+ * @param connect_cb The function to call when the connection is
+ *                   established.  If the connection failed then
+ *                   fd will be -1 and error message will be set
+ *                   to something descriptive (hopefully).
+ * @param data       User-defined data.
+ *
+ * @return NULL if there was an error, or a reference to an
+ *         opaque data structure that can be used to cancel
+ *         the pending connection, if needed.
+ */
+PurpleProxyConnectData *purple_proxy_connect_udp(void *handle,
+			PurpleAccount *account,
+			const char *host, int port,
+			PurpleProxyConnectFunction connect_cb, gpointer data);
+
+/**
  * Makes a connection through a SOCKS5 proxy.
  *
  * @param handle     A handle that should be associated with this
--- a/libpurple/server.c	Mon May 25 19:27:33 2009 +0000
+++ b/libpurple/server.c	Mon Jun 08 18:28:31 2009 +0000
@@ -728,7 +728,6 @@
 		im = PURPLE_CONV_IM(conv);
 
 		purple_conv_im_set_typing_state(im, state);
-		purple_conv_im_update_typing(im);
 	} else {
 		switch (state)
 		{
@@ -766,7 +765,6 @@
 
 		purple_conv_im_stop_typing_timeout(im);
 		purple_conv_im_set_typing_state(im, PURPLE_NOT_TYPING);
-		purple_conv_im_update_typing(im);
 	}
 	else
 	{
--- a/libpurple/theme.c	Mon May 25 19:27:33 2009 +0000
+++ b/libpurple/theme.c	Mon Jun 08 18:28:31 2009 +0000
@@ -241,9 +241,12 @@
 static gchar *
 theme_clean_text(const gchar *text)
 {
-	gchar *clean_text = g_markup_escape_text(text, -1);
-	g_strdelimit(clean_text, "\n", ' ');
-	purple_str_strip_char(clean_text, '\r');
+	gchar *clean_text = NULL;
+	if (text != NULL) {
+		clean_text = g_markup_escape_text(text, -1);
+		g_strdelimit(clean_text, "\n", ' ');
+		purple_str_strip_char(clean_text, '\r');
+	}
 	return clean_text;
 }
 
@@ -389,9 +392,10 @@
 {
 	const gchar *filename = purple_theme_get_image(theme);
 
-	g_return_val_if_fail(filename, NULL);
-
-	return g_build_filename(purple_theme_get_dir(PURPLE_THEME(theme)), filename, NULL);
+	if (filename)
+		return g_build_filename(purple_theme_get_dir(PURPLE_THEME(theme)), filename, NULL);
+	else
+		return NULL;
 }
 
 void
--- a/libpurple/util.c	Mon May 25 19:27:33 2009 +0000
+++ b/libpurple/util.c	Mon Jun 08 18:28:31 2009 +0000
@@ -1041,6 +1041,35 @@
 	return ret;
 }
 
+gboolean purple_markup_is_rtl(const char *html)
+{
+	GData *attributes;
+	const gchar *start, *end;
+	gboolean res = FALSE;
+
+	if (purple_markup_find_tag("span", html, &start, &end, &attributes))
+	{
+		/* tmp is a member of attributes and is free with g_datalist_clear call */
+		const char *tmp = g_datalist_get_data(&attributes, "dir");
+		if (tmp && !g_ascii_strcasecmp(tmp, "RTL"))
+			res = TRUE;
+		if (!res)
+		{
+			tmp = g_datalist_get_data(&attributes, "style");
+			if (tmp)
+			{
+				char *tmp2 = purple_markup_get_css_property(tmp, "direction");
+				if (tmp2 && !g_ascii_strcasecmp(tmp2, "RTL"))
+					res = TRUE;
+				g_free(tmp2);
+			}
+
+		}
+		g_datalist_clear(&attributes);
+	}
+	return res;
+}
+
 gboolean
 purple_markup_find_tag(const char *needle, const char *haystack,
 					 const char **start, const char **end, GData **attributes)
@@ -4008,7 +4037,7 @@
 		const char *request, gboolean include_headers,
 		PurpleUtilFetchUrlCallback callback, void *user_data)
 {
-	return purple_util_fetch_url_request_len(url, full,
+	return purple_util_fetch_url_request_len_with_account(NULL, url, full,
 					     user_agent, http11,
 					     request, include_headers, -1,
 					     callback, user_data);
@@ -4020,6 +4049,17 @@
 		const char *request, gboolean include_headers, gssize max_len,
 		PurpleUtilFetchUrlCallback callback, void *user_data)
 {
+	return purple_util_fetch_url_request_len_with_account(NULL, url, full,
+			user_agent, http11, request, include_headers, max_len, callback,
+			user_data);
+}
+
+PurpleUtilFetchUrlData *
+purple_util_fetch_url_request_len_with_account(PurpleAccount *account,
+		const char *url, gboolean full,	const char *user_agent, gboolean http11,
+		const char *request, gboolean include_headers, gssize max_len,
+		PurpleUtilFetchUrlCallback callback, void *user_data)
+{
 	PurpleUtilFetchUrlData *gfud;
 
 	g_return_val_if_fail(url      != NULL, NULL);
@@ -4057,11 +4097,11 @@
 		}
 
 		gfud->is_ssl = TRUE;
-		gfud->ssl_connection = purple_ssl_connect(NULL,
+		gfud->ssl_connection = purple_ssl_connect(account,
 				gfud->website.address, gfud->website.port,
 				ssl_url_fetch_connect_cb, ssl_url_fetch_error_cb, gfud);
 	} else {
-		gfud->connect_data = purple_proxy_connect(NULL, NULL,
+		gfud->connect_data = purple_proxy_connect(NULL, account,
 				gfud->website.address, gfud->website.port,
 				url_fetch_connect_cb, gfud);
 	}
@@ -4384,6 +4424,37 @@
 	return g_string_free(workstr, FALSE);
 }
 
+gchar *
+purple_utf8_strip_unprintables(const gchar *str)
+{
+	gchar *workstr, *iter;
+
+	if (str == NULL)
+		/* Act like g_strdup */
+		return NULL;
+
+	g_return_val_if_fail(g_utf8_validate(str, -1, NULL), NULL);
+
+	workstr = iter = g_new(gchar, strlen(str) + 1);
+	while (*str) {
+		gunichar c = g_utf8_get_char(str);
+		const gchar *next = g_utf8_next_char(str);
+		size_t len = next - str;
+
+		if (g_unichar_isprint(c)) {
+			memcpy(iter, str, len);
+			iter += len;
+		}
+
+		str = next;
+	}
+
+	/* nul-terminate the new string */
+	*iter = '\0';
+
+	return workstr;
+}
+
 /*
  * This function is copied from g_strerror() but changed to use
  * gai_strerror().
--- a/libpurple/util.h	Mon May 25 19:27:33 2009 +0000
+++ b/libpurple/util.h	Mon Jun 08 18:28:31 2009 +0000
@@ -506,8 +506,6 @@
  *
  * @return The text with HTML entities literalized.  You must g_free
  *         this string when finished with it.
- *
- * @see purple_escape_html
  */
 char *purple_unescape_html(const char *html);
 
@@ -581,6 +579,16 @@
  */
 char * purple_markup_get_css_property(const gchar *style, const gchar *opt);
 
+/**
+ * Check if the given HTML contains RTL text.
+ *
+ * @param html  The HTML text.
+ *
+ * @return  TRUE if the text contains RTL text, FALSE otherwise.
+ *
+ * @since 2.6.0
+ */
+gboolean purple_markup_is_rtl(const char *html);
 
 /*@}*/
 
@@ -1106,9 +1114,33 @@
  * @param max_len    The maximum number of bytes to retrieve (-1 for unlimited)
  * @param callback   The callback function.
  * @param data       The user data to pass to the callback function.
+ * @deprecated       In 3.0.0, this will go away.
+ */
+PurpleUtilFetchUrlData *purple_util_fetch_url_request_len(const gchar *url,
+		gboolean full, const gchar *user_agent, gboolean http11,
+		const gchar *request, gboolean include_headers, gssize max_len,
+		PurpleUtilFetchUrlCallback callback, gpointer data);
+
+/**
+ * Fetches the data from a URL, and passes it to a callback function.
+ *
+ * @param account    The account for which the request is needed, or NULL.
+ * @param url        The URL.
+ * @param full       TRUE if this is the full URL, or FALSE if it's a
+ *                   partial URL.
+ * @param user_agent The user agent field to use, or NULL.
+ * @param http11     TRUE if HTTP/1.1 should be used to download the file.
+ * @param request    A HTTP request to send to the server instead of the
+ *                   standard GET
+ * @param include_headers
+ *                   If TRUE, include the HTTP headers in the response.
+ * @param max_len    The maximum number of bytes to retrieve (-1 for unlimited)
+ * @param callback   The callback function.
+ * @param data       The user data to pass to the callback function.
  * @deprecated       In 3.0.0, we'll rename this to "purple_util_fetch_url_request" and get rid of the old one
  */
-PurpleUtilFetchUrlData *purple_util_fetch_url_request_len(const gchar *url,
+PurpleUtilFetchUrlData *purple_util_fetch_url_request_len_with_account(
+		PurpleAccount *account, const gchar *url,
 		gboolean full, const gchar *user_agent, gboolean http11,
 		const gchar *request, gboolean include_headers, gssize max_len,
 		PurpleUtilFetchUrlCallback callback, gpointer data);
@@ -1216,6 +1248,22 @@
 gchar *purple_utf8_salvage(const char *str);
 
 /**
+ * Removes unprintable characters from a UTF-8 string. These characters
+ * (in particular low-ASCII characters) are invalid in XML 1.0 and thus
+ * are not allowed in XMPP and are rejected by libxml2 by default. This
+ * function uses g_unichar_isprint to determine what characters should
+ * be stripped. The returned string must be freed by the caller.
+ *
+ * @param str A valid UTF-8 string.
+ *
+ * @return A newly allocated UTF-8 string without the unprintable characters.
+ * @since 2.6.0
+ *
+ * @see g_unichar_isprint
+ */
+gchar *purple_utf8_strip_unprintables(const gchar *str);
+
+/**
  * Return the UTF-8 version of gai_strerror().  It calls gai_strerror()
  * then converts the result to UTF-8.  This function is analogous to
  * g_strerror().
--- a/pidgin/gtkblist.c	Mon May 25 19:27:33 2009 +0000
+++ b/pidgin/gtkblist.c	Mon Jun 08 18:28:31 2009 +0000
@@ -1611,8 +1611,9 @@
 {
 	PurpleBlistNode *node;
 	GValue val;
-	GtkTreeIter iter;
+	GtkTreeIter iter, parent;
 	GtkTreeSelection *sel;
+	GtkTreePath *path;
 
 	sel = gtk_tree_view_get_selection(GTK_TREE_VIEW(tv));
 	if(!gtk_tree_selection_get_selected(sel, NULL, &iter))
@@ -1636,8 +1637,62 @@
 		}
 		if(buddy)
 			pidgin_retrieve_user_info(buddy->account->gc, buddy->name);
-	} else if (event->keyval == GDK_F2) {
-		gtk_blist_menu_alias_cb(tv, node);
+	} else {
+		switch (event->keyval) {
+			case GDK_F2:
+				gtk_blist_menu_alias_cb(tv, node);
+				break;
+
+			case GDK_Left:
+				path = gtk_tree_model_get_path(GTK_TREE_MODEL(gtkblist->treemodel), &iter);
+				if (gtk_tree_view_row_expanded(GTK_TREE_VIEW(tv), path)) {
+					/* Collapse the Group */
+					gtk_tree_view_collapse_row(GTK_TREE_VIEW(tv), path);
+					gtk_tree_path_free(path);
+					return TRUE;
+				} else {
+					/* Select the Parent */
+					if (gtk_tree_model_get_iter(GTK_TREE_MODEL(gtkblist->treemodel), &iter, path)) {
+						if (gtk_tree_model_iter_parent(GTK_TREE_MODEL(gtkblist->treemodel), &parent, &iter)) {
+							gtk_tree_path_free(path);
+							path = gtk_tree_model_get_path(GTK_TREE_MODEL(gtkblist->treemodel), &parent);
+							gtk_tree_view_set_cursor(GTK_TREE_VIEW(tv), path, NULL, FALSE);
+							gtk_tree_path_free(path);
+							return TRUE;
+						}
+					}
+				}
+				gtk_tree_path_free(path);
+				break;
+
+			case GDK_Right:
+				path = gtk_tree_model_get_path(GTK_TREE_MODEL(gtkblist->treemodel), &iter);
+				if (!gtk_tree_view_row_expanded(GTK_TREE_VIEW(tv), path)) {
+					/* Expand the Group */
+					if (PURPLE_BLIST_NODE_IS_CONTACT(node)) {
+						pidgin_blist_expand_contact_cb(NULL, node);
+						gtk_tree_path_free(path);
+						return TRUE;
+					} else if (!PURPLE_BLIST_NODE_IS_BUDDY(node)) {
+						gtk_tree_view_expand_row(GTK_TREE_VIEW(tv), path, FALSE);
+						gtk_tree_path_free(path);
+						return TRUE;
+					}
+				} else {
+					/* Select the First Child */
+					if (gtk_tree_model_get_iter(GTK_TREE_MODEL(gtkblist->treemodel), &parent, path)) {
+						if (gtk_tree_model_iter_nth_child(GTK_TREE_MODEL(gtkblist->treemodel), &iter, &parent, 0)) {
+							gtk_tree_path_free(path);
+							path = gtk_tree_model_get_path(GTK_TREE_MODEL(gtkblist->treemodel), &iter);
+							gtk_tree_view_set_cursor(GTK_TREE_VIEW(tv), path, NULL, FALSE);
+							gtk_tree_path_free(path);
+							return TRUE;
+						}
+					}
+				}
+				gtk_tree_path_free(path);
+				break;
+		}
 	}
 
 	return FALSE;
@@ -5556,9 +5611,12 @@
 	gtkblist = PIDGIN_BLIST(list);
 	priv = PIDGIN_BUDDY_LIST_GET_PRIVATE(gtkblist);
 
+	if (priv->current_theme)
+		g_object_unref(priv->current_theme);
+
 	theme_name = purple_prefs_get_string(PIDGIN_PREFS_ROOT "/blist/theme");
 	if (theme_name && *theme_name)
-		priv->current_theme = PIDGIN_BLIST_THEME(purple_theme_manager_find_theme(theme_name, "blist"));
+		priv->current_theme = g_object_ref(PIDGIN_BLIST_THEME(purple_theme_manager_find_theme(theme_name, "blist")));
 	else
 		priv->current_theme = NULL;
 
@@ -6164,10 +6222,9 @@
 
 	if (count > 0 || purple_prefs_get_bool(PIDGIN_PREFS_ROOT "/blist/show_empty_groups"))
 		show = TRUE;
-	else if (PURPLE_BLIST_NODE_IS_BUDDY(node)) { /* Or chat? */
-		if (buddy_is_displayable((PurpleBuddy*)node))
-			show = TRUE;
-	} else if (!show_offline && PURPLE_BLIST_NODE_IS_GROUP(node)) {
+	else if (PURPLE_BLIST_NODE_IS_BUDDY(node) && buddy_is_displayable((PurpleBuddy*)node)) { /* Or chat? */
+		show = TRUE;
+	} else if (!show_offline) {
 		show = pidgin_blist_group_has_show_offline_buddy(group);
 	}
 
@@ -6691,6 +6748,8 @@
 	gtkblist->arrow_cursor = NULL;
 
 	priv = PIDGIN_BUDDY_LIST_GET_PRIVATE(gtkblist);
+	if (priv->current_theme)
+		g_object_unref(priv->current_theme);
 	g_free(priv);
 
 	g_free(gtkblist);
@@ -7261,7 +7320,10 @@
 	else
 		purple_prefs_set_string(PIDGIN_PREFS_ROOT "/blist/theme", "");
 
-	priv->current_theme = theme;
+	if (priv->current_theme)
+		g_object_unref(priv->current_theme);
+
+	priv->current_theme = theme ? g_object_ref(theme) : NULL;
 
 	pidgin_blist_build_layout(list);
 
--- a/pidgin/gtkconv.c	Mon May 25 19:27:33 2009 +0000
+++ b/pidgin/gtkconv.c	Mon Jun 08 18:28:31 2009 +0000
@@ -5652,38 +5652,6 @@
 #endif
 }
 
-/* Returns true if the given HTML contains RTL text */
-static gboolean
-html_is_rtl(const char *html)
-{
-	GData *attributes;
-	const gchar *start, *end;
-	gboolean res = FALSE;
-
-	if (purple_markup_find_tag("span", html, &start, &end, &attributes))
-	{
-		/* tmp is a member of attributes and is free with g_datalist_clear call */
-		const char *tmp = g_datalist_get_data(&attributes, "dir");
-		if (tmp && !g_ascii_strcasecmp(tmp, "RTL"))
-			res = TRUE;
-		if (!res)
-		{
-			tmp = g_datalist_get_data(&attributes, "style");
-			if (tmp)
-			{
-				char *tmp2 = purple_markup_get_css_property(tmp, "direction");
-				if (tmp2 && !g_ascii_strcasecmp(tmp2, "RTL"))
-					res = TRUE;
-				g_free(tmp2);
-			}
-
-		}
-		g_datalist_clear(&attributes);
-	}
-	return res;
-}
-
-
 static void
 pidgin_conv_write_conv(PurpleConversation *conv, const char *name, const char *alias,
 						const char *message, PurpleMessageFlags flags,
@@ -5845,7 +5813,7 @@
 	}
 
 	/* Bi-Directional support - set timestamp direction using unicode characters */
-	is_rtl_message = html_is_rtl(message);
+	is_rtl_message = purple_markup_is_rtl(message);
 	/* Enforce direction only if message is RTL - doesn't effect LTR users */
 	if (is_rtl_message)
 		str_embed_direction_chars(&mdate);
--- a/pidgin/gtkdialogs.c	Mon May 25 19:27:33 2009 +0000
+++ b/pidgin/gtkdialogs.c	Mon Jun 08 18:28:31 2009 +0000
@@ -74,7 +74,7 @@
 static const struct developer developers[] = {
 	{"Daniel 'datallah' Atallah",	NULL, NULL},
 	{"Paul 'darkrain42' Aurich",	NULL, NULL },
-	{"John 'rekkanoryo' Bailey",	N_("bug master"), "rekkanoryo@pidgin.im"},
+	{"John 'rekkanoryo' Bailey",	N_("bug master"), NULL},
 	{"Ethan 'Paco-Paco' Blanton",	NULL, NULL},
 	{"Hylke Bons",			N_("artist"), "h.bons@student.rug.nl"},
 	{"Thomas Butter",				NULL, NULL},
@@ -186,6 +186,7 @@
 	{N_("Hebrew"),              "he", "Shalom Craimer", "scraimer@gmail.com"},
 	{N_("Hindi"),               "hi", "Ravishankar Shrivastava", "raviratlami@yahoo.com"},
 	{N_("Hungarian"),           "hu", "Kelemen Gábor", "kelemeng@gnome.hu"},
+	{N_("Armenian"),            "hy", "David Avsharyan", "avsharyan@gmail.com"},
 	{N_("Indonesian"),          "id", "Rai S. Regawa", "raireg@yahoo.com"},
 	{N_("Italian"),             "it", "Claudio Satriano", "satriano@na.infn.it"},
 	{N_("Japanese"),            "ja", "Takashi Aihana", "aihana@gnome.gr.jp"},
@@ -223,6 +224,7 @@
 	{N_("Sinhala"),             "si", "Danishka Navin", "snavin@redhat.com"},
 	{N_("Sinhala"),             "si", "Yajith Ajantha Dayarathna", "yajith@gmail.com"},
 	{N_("Swedish"),             "sv", "Peter Hjalmarsson", "xake@telia.com"},
+	{N_("Swahili"),             "sw", "Paul Msegeya", "msegeya@gmail.com"},
 	{N_("Tamil"),               "ta", "Viveka Nathan K", "vivekanathan@users.sourceforge.net"},
 	{N_("Telugu"),              "te", "Mr. Subbaramaih", "info.gist@cdac.in"},
 	{N_("Thai"),                "th", "Isriya Paireepairit", "markpeak@gmail.com"},
--- a/pidgin/gtkimhtml.c	Mon May 25 19:27:33 2009 +0000
+++ b/pidgin/gtkimhtml.c	Mon Jun 08 18:28:31 2009 +0000
@@ -3867,12 +3867,15 @@
 }
 
 static void
-gtk_imhtml_custom_smiley_save(GtkWidget *w, GtkIMHtmlImage *image)
-{
+gtk_imhtml_custom_smiley_save(GtkWidget *w, GtkIMHtmlImageSave *save)
+{
+	GtkIMHtmlImage *image = (GtkIMHtmlImage *)save->image;
+	
 	/* Create an add dialog */
 	PidginSmiley *editor = pidgin_smiley_edit(NULL, NULL);
 	pidgin_smiley_editor_set_shortcut(editor, image->filename);
 	pidgin_smiley_editor_set_image(editor, image->pixbuf);
+	pidgin_smiley_editor_set_data(editor, save->data, save->datasize);
 }
 
 /*
@@ -3907,7 +3910,7 @@
 				item = gtk_image_menu_item_new_with_mnemonic(_("_Add Custom Smiley..."));
 				gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(item), img);
 				g_signal_connect(G_OBJECT(item), "activate",
-								 G_CALLBACK(gtk_imhtml_custom_smiley_save), image);
+								 G_CALLBACK(gtk_imhtml_custom_smiley_save), save);
 				gtk_menu_shell_append(GTK_MENU_SHELL(menu), item);
 			}
 
@@ -5062,6 +5065,7 @@
 			gtk_widget_show(img);
 			g_object_set_data_full(G_OBJECT(anchor), "gtkimhtml_plaintext", text, g_free);
 			g_object_set_data(G_OBJECT(anchor), "gtkimhtml_tiptext", text);
+			g_object_set_data_full(G_OBJECT(anchor), "gtkimhtml_htmltext", g_strdup(smiley), g_free);
 			gtk_text_view_add_child_at_anchor(GTK_TEXT_VIEW(imhtml), ebox, anchor);
 		}
 	} else {
--- a/pidgin/gtkmain.c	Mon May 25 19:27:33 2009 +0000
+++ b/pidgin/gtkmain.c	Mon Jun 08 18:28:31 2009 +0000
@@ -353,6 +353,7 @@
 		g_hash_table_insert(ui_info, "version", VERSION);
 		g_hash_table_insert(ui_info, "website", "http://pidgin.im");
 		g_hash_table_insert(ui_info, "dev_website", "http://developer.pidgin.im");
+		g_hash_table_insert(ui_info, "client_type", "pc");
 	}
 
 	return ui_info;
--- a/pidgin/gtknotify.c	Mon May 25 19:27:33 2009 +0000
+++ b/pidgin/gtknotify.c	Mon Jun 08 18:28:31 2009 +0000
@@ -120,7 +120,7 @@
 {
 	PIDGIN_NOTIFY_MAIL,
 	PIDGIN_NOTIFY_POUNCE,
-        PIDGIN_NOTIFY_TYPES
+	PIDGIN_NOTIFY_TYPES
 } PidginNotifyType;
 
 static PidginNotifyDialog *mail_dialog = NULL;
@@ -1379,7 +1379,6 @@
 
 	spec_dialog = g_new0(PidginNotifyDialog, 1);
 	spec_dialog->dialog = dialog;
-	spec_dialog->open_button = button;
 
 	spec_dialog->treemodel = treemodel;
 	spec_dialog->treeview = gtk_tree_view_new_with_model(GTK_TREE_MODEL(spec_dialog->treemodel));
@@ -1399,6 +1398,7 @@
 
 		button = gtk_dialog_add_button(GTK_DIALOG(dialog),
 						 PIDGIN_STOCK_OPEN_MAIL, GTK_RESPONSE_YES);
+		spec_dialog->open_button = button;
 
 		gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(spec_dialog->treeview), FALSE);
 
@@ -1496,7 +1496,7 @@
 		mail_dialog = spec_dialog;
 	else if (type == PIDGIN_NOTIFY_POUNCE) {
 		pounce_dialog = spec_dialog;
-        }
+	}
 
 	return spec_dialog->dialog;
 
--- a/pidgin/gtkprefs.c	Mon May 25 19:27:33 2009 +0000
+++ b/pidgin/gtkprefs.c	Mon Jun 08 18:28:31 2009 +0000
@@ -1163,14 +1163,15 @@
 static void
 prefs_set_blist_theme_cb(GtkComboBox *combo_box, gpointer user_data)
 {
-	PidginBlistTheme *theme;
+	PidginBlistTheme *theme = NULL;
 	GtkTreeIter iter;
 	gchar *name = NULL;
 
 	g_return_if_fail(gtk_combo_box_get_active_iter(combo_box, &iter));
 	gtk_tree_model_get(GTK_TREE_MODEL(prefs_blist_themes), &iter, 2, &name, -1);
 
-	theme = PIDGIN_BLIST_THEME(purple_theme_manager_find_theme(name, "blist"));
+	if (name && *name)
+		theme = PIDGIN_BLIST_THEME(purple_theme_manager_find_theme(name, "blist"));
 	g_free(name);
 
 	pidgin_blist_set_theme(theme);
--- a/pidgin/gtksmiley.c	Mon May 25 19:27:33 2009 +0000
+++ b/pidgin/gtksmiley.c	Mon Jun 08 18:28:31 2009 +0000
@@ -47,6 +47,8 @@
 	GtkWidget *smiley_image;
 	gchar *filename;
 	GdkPixbuf *custom_pixbuf;
+	gpointer data; /** @since 2.6.0 */
+	gsize datasize; /** @since 2.6.0 */
 };
 
 typedef struct
@@ -277,7 +279,6 @@
 		purple_debug_info("gtksmiley", "adding a new smiley\n");
 
 		if (s->filename == NULL) {
-			/* Get the smiley from the custom pixbuf */
 			gchar *buffer = NULL;
 			gsize size = 0;
 			gchar *filename;
@@ -296,8 +297,16 @@
 				}
 			}
 
-			gdk_pixbuf_save_to_buffer(s->custom_pixbuf, &buffer, &size,
-				"png", NULL, "compression", "9", NULL, NULL);
+			if (s->data && s->datasize) {
+				/* Cached data & size in memory */
+				buffer = s->data;
+				size = s->datasize;
+			}
+			else {
+				/* Get the smiley from the custom pixbuf */
+				gdk_pixbuf_save_to_buffer(s->custom_pixbuf, &buffer, &size,
+					"png", NULL, "compression", "9", NULL, NULL);
+			}
 			filename = purple_util_get_image_filename(buffer, size);
 			s->filename = g_build_filename(dirname, filename, NULL);
 			purple_util_write_data_to_file_absolute(s->filename, buffer, size);
@@ -465,6 +474,13 @@
 		gtk_image_set_from_pixbuf(GTK_IMAGE(editor->smiley_image), image);
 }
 
+void
+pidgin_smiley_editor_set_data(PidginSmiley *editor, gpointer *data, gsize datasize)
+{
+	editor->data = data;
+	editor->datasize = datasize;
+}
+
 /******************************************************************************
  * Delete smiley
  *****************************************************************************/
--- a/pidgin/gtksmiley.h	Mon May 25 19:27:33 2009 +0000
+++ b/pidgin/gtksmiley.h	Mon Jun 08 18:28:31 2009 +0000
@@ -100,4 +100,15 @@
  */
 void pidgin_smiley_editor_set_image(PidginSmiley *editor, GdkPixbuf *image);
 
+/**
+ * Sets the image data in a smiley add dialog
+ *
+ * @param editor A smiley editor dialog
+ * @param data A pointer to smiley's data
+ * @param datasize The size of smiley's data
+ *
+ * @since 2.6.0
+ */
+void pidgin_smiley_editor_set_data(PidginSmiley *editor, gpointer *data, gsize datasize);
+
 #endif /* PIDGIN_GTKSMILEY_H */
--- a/pidgin/gtkutils.c	Mon May 25 19:27:33 2009 +0000
+++ b/pidgin/gtkutils.c	Mon Jun 08 18:28:31 2009 +0000
@@ -525,7 +525,7 @@
 	GtkWidget *item = gtk_menu_get_active(GTK_MENU(menu));
 	if (p_item)
 		(*p_item) = item;
-	return g_object_get_data(G_OBJECT(item), "aop_per_item_data");
+	return item ? g_object_get_data(G_OBJECT(item), "aop_per_item_data") : NULL;
 }
 
 static void
--- a/pidgin/pidginstock.c	Mon May 25 19:27:33 2009 +0000
+++ b/pidgin/pidginstock.c	Mon Jun 08 18:28:31 2009 +0000
@@ -114,121 +114,122 @@
 };
 
 typedef struct {
-  const char *name;
-  const char *dir;
-  const char *filename;
-  gboolean microscopic;
-  gboolean extra_small;
-  gboolean small;
-  gboolean medium;
-  gboolean large;
-  gboolean huge;
-  gboolean rtl;
-  const char *translucent_name;
+	const char *name;
+ 	const char *dir;
+	const char *filename;
+	gboolean microscopic;
+	gboolean extra_small;
+	gboolean small;
+	gboolean medium;
+	gboolean large;
+	gboolean huge;
+	gboolean rtl;
+	const char *translucent_name;
 } SizedStockIcon;
 
 const SizedStockIcon sized_stock_icons [] = {
 
-	{ PIDGIN_STOCK_STATUS_IGNORED,	"emblems", "blocked.png",	FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL  },
-	{ PIDGIN_STOCK_STATUS_FOUNDER,	"emblems", "founder.png",	FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL  },
-	{ PIDGIN_STOCK_STATUS_OPERATOR,	"emblems", "operator.png",	FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL  },
-	{ PIDGIN_STOCK_STATUS_HALFOP, 	"emblems", "half-operator.png",	FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL  },
-	{ PIDGIN_STOCK_STATUS_VOICE, 	"emblems", "voice.png",		FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL  },
+	{ PIDGIN_STOCK_STATUS_IGNORED,  "emblems", "blocked.png",       FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL },
+	{ PIDGIN_STOCK_STATUS_FOUNDER,  "emblems", "founder.png",       FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL },
+	{ PIDGIN_STOCK_STATUS_OPERATOR, "emblems", "operator.png",      FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL },
+	{ PIDGIN_STOCK_STATUS_HALFOP,   "emblems", "half-operator.png",	FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL },
+	{ PIDGIN_STOCK_STATUS_VOICE,    "emblems", "voice.png",         FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL },
 
-	{ PIDGIN_STOCK_DIALOG_AUTH,	"dialogs", "auth.png",		FALSE, TRUE, FALSE, FALSE, FALSE, TRUE, FALSE, NULL  },
-	{ PIDGIN_STOCK_DIALOG_COOL,	"dialogs", "cool.png", 		FALSE, FALSE, FALSE, FALSE, FALSE, TRUE, FALSE, NULL  },
-	{ PIDGIN_STOCK_DIALOG_ERROR,	"dialogs", "error.png",		FALSE, TRUE, FALSE, FALSE, FALSE, TRUE, FALSE, NULL  },
-	{ PIDGIN_STOCK_DIALOG_INFO,	"dialogs", "info.png",		FALSE, TRUE, FALSE, FALSE, FALSE, TRUE, FALSE, NULL  },
-	{ PIDGIN_STOCK_DIALOG_MAIL,	"dialogs", "mail.png",		FALSE, TRUE, FALSE, FALSE, FALSE, TRUE, FALSE, NULL  },
-	{ PIDGIN_STOCK_DIALOG_QUESTION,	"dialogs", "question.png",	FALSE, TRUE, FALSE, FALSE, FALSE, TRUE, FALSE, NULL  },
-	{ PIDGIN_STOCK_DIALOG_WARNING,	"dialogs", "warning.png",	FALSE, FALSE, FALSE, FALSE, FALSE, TRUE, FALSE, NULL  },
+	{ PIDGIN_STOCK_DIALOG_AUTH,     "dialogs", "auth.png",      FALSE, TRUE,  FALSE, FALSE, FALSE, TRUE,  FALSE, NULL },
+	{ PIDGIN_STOCK_DIALOG_COOL,     "dialogs", "cool.png",      FALSE, FALSE, FALSE, FALSE, FALSE, TRUE,  FALSE, NULL },
+	{ PIDGIN_STOCK_DIALOG_ERROR,    "dialogs", "error.png",     FALSE, TRUE,  FALSE, FALSE, FALSE, TRUE,  FALSE, NULL },
+	{ PIDGIN_STOCK_DIALOG_INFO,     "dialogs", "info.png",      FALSE, TRUE,  FALSE, FALSE, FALSE, TRUE,  FALSE, NULL },
+	{ PIDGIN_STOCK_DIALOG_MAIL,     "dialogs", "mail.png",      FALSE, TRUE,  FALSE, FALSE, FALSE, TRUE,  FALSE, NULL },
+	{ PIDGIN_STOCK_DIALOG_QUESTION, "dialogs", "question.png",  FALSE, TRUE,  FALSE, FALSE, FALSE, TRUE,  FALSE, NULL },
+	{ PIDGIN_STOCK_DIALOG_WARNING,  "dialogs", "warning.png",   FALSE, FALSE, FALSE, FALSE, FALSE, TRUE,  FALSE, NULL },
 
-	{ PIDGIN_STOCK_ANIMATION_CONNECT0, "animations", "process-working0.png",FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL  },
-	{ PIDGIN_STOCK_ANIMATION_CONNECT1, "animations", "process-working1.png",FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL  },
-	{ PIDGIN_STOCK_ANIMATION_CONNECT2, "animations", "process-working2.png",FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL  },
-	{ PIDGIN_STOCK_ANIMATION_CONNECT3, "animations", "process-working3.png",FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL  },
-	{ PIDGIN_STOCK_ANIMATION_CONNECT4, "animations", "process-working4.png",FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL  },
-	{ PIDGIN_STOCK_ANIMATION_CONNECT5, "animations", "process-working5.png",FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL  },
-	{ PIDGIN_STOCK_ANIMATION_CONNECT6, "animations", "process-working6.png",FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL  },
-	{ PIDGIN_STOCK_ANIMATION_CONNECT7, "animations", "process-working7.png",FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL  },
-	{ PIDGIN_STOCK_ANIMATION_CONNECT8, "animations", "process-working8.png",FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL  },
-	{ PIDGIN_STOCK_ANIMATION_CONNECT9, "animations", "process-working9.png",FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL  },
-	{ PIDGIN_STOCK_ANIMATION_CONNECT10, "animations", "process-working10.png",FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL  },
-	{ PIDGIN_STOCK_ANIMATION_CONNECT11, "animations", "process-working11.png",FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL  },
-	{ PIDGIN_STOCK_ANIMATION_CONNECT12, "animations", "process-working12.png",FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL  },
-	{ PIDGIN_STOCK_ANIMATION_CONNECT13, "animations", "process-working13.png",FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL  },
-	{ PIDGIN_STOCK_ANIMATION_CONNECT14, "animations", "process-working14.png",FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL  },
-	{ PIDGIN_STOCK_ANIMATION_CONNECT15, "animations", "process-working15.png",FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL  },
-	{ PIDGIN_STOCK_ANIMATION_CONNECT16, "animations", "process-working16.png",FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL  },
-	{ PIDGIN_STOCK_ANIMATION_CONNECT17, "animations", "process-working17.png",FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL  },
-	{ PIDGIN_STOCK_ANIMATION_CONNECT18, "animations", "process-working18.png",FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL  },
-	{ PIDGIN_STOCK_ANIMATION_CONNECT19, "animations", "process-working19.png",FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL  },
-	{ PIDGIN_STOCK_ANIMATION_CONNECT20, "animations", "process-working20.png",FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL  },
-	{ PIDGIN_STOCK_ANIMATION_CONNECT21, "animations", "process-working21.png",FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL  },
-	{ PIDGIN_STOCK_ANIMATION_CONNECT22, "animations", "process-working22.png",FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL  },
-	{ PIDGIN_STOCK_ANIMATION_CONNECT23, "animations", "process-working23.png",FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL  },
-	{ PIDGIN_STOCK_ANIMATION_CONNECT24, "animations", "process-working24.png",FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL  },
-	{ PIDGIN_STOCK_ANIMATION_CONNECT25, "animations", "process-working25.png",FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL  },
-	{ PIDGIN_STOCK_ANIMATION_CONNECT26, "animations", "process-working26.png",FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL  },
-	{ PIDGIN_STOCK_ANIMATION_CONNECT27, "animations", "process-working27.png",FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL  },
-	{ PIDGIN_STOCK_ANIMATION_CONNECT28, "animations", "process-working28.png",FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL  },
-	{ PIDGIN_STOCK_ANIMATION_CONNECT29, "animations", "process-working29.png",FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL  },
-	{ PIDGIN_STOCK_ANIMATION_CONNECT30, "animations", "process-working30.png",FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL  },
-	{ PIDGIN_STOCK_ANIMATION_TYPING0,  "animations", "typing0.png",FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL  },
-	{ PIDGIN_STOCK_ANIMATION_TYPING1,  "animations", "typing1.png",FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL  },
-	{ PIDGIN_STOCK_ANIMATION_TYPING2,  "animations", "typing2.png",FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL  },
-	{ PIDGIN_STOCK_ANIMATION_TYPING3,  "animations", "typing3.png",FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL  },
-	{ PIDGIN_STOCK_ANIMATION_TYPING4,  "animations", "typing4.png",FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL  },
-	{ PIDGIN_STOCK_ANIMATION_TYPING5,  "animations", "typing5.png",FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL  },
+	{ PIDGIN_STOCK_ANIMATION_CONNECT0,  "animations", "process-working0.png",  FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL },
+	{ PIDGIN_STOCK_ANIMATION_CONNECT1,  "animations", "process-working1.png",  FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL },
+	{ PIDGIN_STOCK_ANIMATION_CONNECT2,  "animations", "process-working2.png",  FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL },
+	{ PIDGIN_STOCK_ANIMATION_CONNECT3,  "animations", "process-working3.png",  FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL },
+	{ PIDGIN_STOCK_ANIMATION_CONNECT4,  "animations", "process-working4.png",  FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL },
+	{ PIDGIN_STOCK_ANIMATION_CONNECT5,  "animations", "process-working5.png",  FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL },
+	{ PIDGIN_STOCK_ANIMATION_CONNECT6,  "animations", "process-working6.png",  FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL },
+	{ PIDGIN_STOCK_ANIMATION_CONNECT7,  "animations", "process-working7.png",  FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL },
+	{ PIDGIN_STOCK_ANIMATION_CONNECT8,  "animations", "process-working8.png",  FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL },
+	{ PIDGIN_STOCK_ANIMATION_CONNECT9,  "animations", "process-working9.png",  FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL },
+	{ PIDGIN_STOCK_ANIMATION_CONNECT10, "animations", "process-working10.png", FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL },
+	{ PIDGIN_STOCK_ANIMATION_CONNECT11, "animations", "process-working11.png", FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL },
+	{ PIDGIN_STOCK_ANIMATION_CONNECT12, "animations", "process-working12.png", FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL },
+	{ PIDGIN_STOCK_ANIMATION_CONNECT13, "animations", "process-working13.png", FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL },
+	{ PIDGIN_STOCK_ANIMATION_CONNECT14, "animations", "process-working14.png", FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL },
+	{ PIDGIN_STOCK_ANIMATION_CONNECT15, "animations", "process-working15.png", FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL },
+	{ PIDGIN_STOCK_ANIMATION_CONNECT16, "animations", "process-working16.png", FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL },
+	{ PIDGIN_STOCK_ANIMATION_CONNECT17, "animations", "process-working17.png", FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL },
+	{ PIDGIN_STOCK_ANIMATION_CONNECT18, "animations", "process-working18.png", FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL },
+	{ PIDGIN_STOCK_ANIMATION_CONNECT19, "animations", "process-working19.png", FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL },
+	{ PIDGIN_STOCK_ANIMATION_CONNECT20, "animations", "process-working20.png", FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL },
+	{ PIDGIN_STOCK_ANIMATION_CONNECT21, "animations", "process-working21.png", FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL },
+	{ PIDGIN_STOCK_ANIMATION_CONNECT22, "animations", "process-working22.png", FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL },
+	{ PIDGIN_STOCK_ANIMATION_CONNECT23, "animations", "process-working23.png", FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL },
+	{ PIDGIN_STOCK_ANIMATION_CONNECT24, "animations", "process-working24.png", FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL },
+	{ PIDGIN_STOCK_ANIMATION_CONNECT25, "animations", "process-working25.png", FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL },
+	{ PIDGIN_STOCK_ANIMATION_CONNECT26, "animations", "process-working26.png", FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL },
+	{ PIDGIN_STOCK_ANIMATION_CONNECT27, "animations", "process-working27.png", FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL },
+	{ PIDGIN_STOCK_ANIMATION_CONNECT28, "animations", "process-working28.png", FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL },
+	{ PIDGIN_STOCK_ANIMATION_CONNECT29, "animations", "process-working29.png", FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL },
+	{ PIDGIN_STOCK_ANIMATION_CONNECT30, "animations", "process-working30.png", FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL },
 
-	{ PIDGIN_STOCK_TOOLBAR_BGCOLOR,		"toolbar", "change-bgcolor.png", FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL  },
-	{ PIDGIN_STOCK_TOOLBAR_BLOCK,		"emblems", "blocked.png",	 FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL  },
-	{ PIDGIN_STOCK_TOOLBAR_FGCOLOR,		"toolbar", "change-fgcolor.png", FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL  },
-	{ PIDGIN_STOCK_TOOLBAR_SMILEY,		"toolbar", "emote-select.png",	 FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL  },
-	{ PIDGIN_STOCK_TOOLBAR_FONT_FACE,	"toolbar", "font-face.png",	 FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL  },
-	{ PIDGIN_STOCK_TOOLBAR_TEXT_SMALLER,	"toolbar", "font-size-down.png", FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL  },
-	{ PIDGIN_STOCK_TOOLBAR_TEXT_LARGER,	"toolbar", "font-size-up.png",	 FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL  },
-	{ PIDGIN_STOCK_TOOLBAR_INSERT,		"toolbar", "insert.png", 	 FALSE,	TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL  },
-	{ PIDGIN_STOCK_TOOLBAR_INSERT_IMAGE,	"toolbar", "insert-image.png",	 FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL  },
-	{ PIDGIN_STOCK_TOOLBAR_INSERT_LINK,	"toolbar", "insert-link.png",	 FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL  },
-	{ PIDGIN_STOCK_TOOLBAR_MESSAGE_NEW,	"toolbar", "message-new.png",	 FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL  },
-	{ PIDGIN_STOCK_TOOLBAR_PENDING,		"toolbar", "message-new.png",	 FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL  },
-	{ PIDGIN_STOCK_TOOLBAR_PLUGINS,		"toolbar", "plugins.png",	 FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL  },
-	{ PIDGIN_STOCK_TOOLBAR_UNBLOCK,		"toolbar", "unblock.png",	 FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL  },
-	{ PIDGIN_STOCK_TOOLBAR_SELECT_AVATAR,	"toolbar", "select-avatar.png",	 FALSE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, NULL  },
-	{ PIDGIN_STOCK_TOOLBAR_SEND_FILE,	"toolbar", "send-file.png",	 FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL  },
-	{ PIDGIN_STOCK_TOOLBAR_TRANSFER,	"toolbar", "transfer.png",	 FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL  },
+	{ PIDGIN_STOCK_ANIMATION_TYPING0,  "animations", "typing0.png", FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL },
+	{ PIDGIN_STOCK_ANIMATION_TYPING1,  "animations", "typing1.png", FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL },
+	{ PIDGIN_STOCK_ANIMATION_TYPING2,  "animations", "typing2.png", FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL },
+	{ PIDGIN_STOCK_ANIMATION_TYPING3,  "animations", "typing3.png", FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL },
+	{ PIDGIN_STOCK_ANIMATION_TYPING4,  "animations", "typing4.png", FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL },
+	{ PIDGIN_STOCK_ANIMATION_TYPING5,  "animations", "typing5.png", FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL },
+
+	{ PIDGIN_STOCK_TOOLBAR_BGCOLOR,         "toolbar", "change-bgcolor.png", FALSE, TRUE,  FALSE, FALSE, FALSE, FALSE, FALSE, NULL },
+	{ PIDGIN_STOCK_TOOLBAR_BLOCK,           "emblems", "blocked.png",        FALSE, TRUE,  FALSE, FALSE, FALSE, FALSE, FALSE, NULL },
+	{ PIDGIN_STOCK_TOOLBAR_FGCOLOR,         "toolbar", "change-fgcolor.png", FALSE, TRUE,  FALSE, FALSE, FALSE, FALSE, FALSE, NULL },
+	{ PIDGIN_STOCK_TOOLBAR_SMILEY,          "toolbar", "emote-select.png",   FALSE, TRUE,  FALSE, FALSE, FALSE, FALSE, FALSE, NULL },
+	{ PIDGIN_STOCK_TOOLBAR_FONT_FACE,       "toolbar", "font-face.png",      FALSE, TRUE,  FALSE, FALSE, FALSE, FALSE, FALSE, NULL },
+	{ PIDGIN_STOCK_TOOLBAR_TEXT_SMALLER,    "toolbar", "font-size-down.png", FALSE, TRUE,  FALSE, FALSE, FALSE, FALSE, FALSE, NULL },
+	{ PIDGIN_STOCK_TOOLBAR_TEXT_LARGER,     "toolbar", "font-size-up.png",	 FALSE, TRUE,  FALSE, FALSE, FALSE, FALSE, FALSE, NULL },
+	{ PIDGIN_STOCK_TOOLBAR_INSERT,          "toolbar", "insert.png",         FALSE, TRUE,  FALSE, FALSE, FALSE, FALSE, FALSE, NULL },
+	{ PIDGIN_STOCK_TOOLBAR_INSERT_IMAGE,    "toolbar", "insert-image.png",	 FALSE, TRUE,  FALSE, FALSE, FALSE, FALSE, FALSE, NULL },
+	{ PIDGIN_STOCK_TOOLBAR_INSERT_LINK,     "toolbar", "insert-link.png",	 FALSE, TRUE,  FALSE, FALSE, FALSE, FALSE, FALSE, NULL },
+	{ PIDGIN_STOCK_TOOLBAR_MESSAGE_NEW,     "toolbar", "message-new.png",	 FALSE, TRUE,  FALSE, FALSE, FALSE, FALSE, FALSE, NULL },
+	{ PIDGIN_STOCK_TOOLBAR_PENDING,         "toolbar", "message-new.png",	 FALSE, TRUE,  FALSE, FALSE, FALSE, FALSE, FALSE, NULL },
+	{ PIDGIN_STOCK_TOOLBAR_PLUGINS,         "toolbar", "plugins.png",        FALSE, TRUE,  FALSE, FALSE, FALSE, FALSE, FALSE, NULL },
+	{ PIDGIN_STOCK_TOOLBAR_UNBLOCK,         "toolbar", "unblock.png",        FALSE, TRUE,  FALSE, FALSE, FALSE, FALSE, FALSE, NULL },
+	{ PIDGIN_STOCK_TOOLBAR_SELECT_AVATAR,   "toolbar", "select-avatar.png",  FALSE, FALSE, TRUE,  FALSE, FALSE, FALSE, FALSE, NULL },
+	{ PIDGIN_STOCK_TOOLBAR_SEND_FILE,       "toolbar", "send-file.png",      FALSE, TRUE,  FALSE, FALSE, FALSE, FALSE, FALSE, NULL },
+	{ PIDGIN_STOCK_TOOLBAR_TRANSFER,        "toolbar", "transfer.png",       FALSE, TRUE,  FALSE, FALSE, FALSE, FALSE, FALSE, NULL },
 #ifdef USE_VV
-	{ PIDGIN_STOCK_TOOLBAR_AUDIO_CALL, "toolbar", "audio-call.png", FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL  },
-	{ PIDGIN_STOCK_TOOLBAR_VIDEO_CALL, "toolbar", "video-call.png", FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL  },
-	{ PIDGIN_STOCK_TOOLBAR_AUDIO_VIDEO_CALL, "toolbar", "audio-video-call.png", FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL  },
+	{ PIDGIN_STOCK_TOOLBAR_AUDIO_CALL,       "toolbar", "audio-call.png",       FALSE, TRUE,  FALSE, FALSE, FALSE, FALSE, FALSE, NULL },
+	{ PIDGIN_STOCK_TOOLBAR_VIDEO_CALL,       "toolbar", "video-call.png",       FALSE, TRUE,  FALSE, FALSE, FALSE, FALSE, FALSE, NULL },
+	{ PIDGIN_STOCK_TOOLBAR_AUDIO_VIDEO_CALL, "toolbar", "audio-video-call.png", FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL },
 #endif
 	{ PIDGIN_STOCK_TOOLBAR_SEND_ATTENTION, "toolbar", "get-attention.png", FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL  }
 };
 
 const SizedStockIcon sized_status_icons [] = {
 
-	{ PIDGIN_STOCK_STATUS_AVAILABLE, "status", "available.png", 	TRUE, TRUE, TRUE, TRUE, TRUE, FALSE, FALSE, PIDGIN_STOCK_STATUS_AVAILABLE_I },
-	{ PIDGIN_STOCK_STATUS_AWAY, 	 "status", "away.png",		TRUE, TRUE, TRUE, TRUE, TRUE, FALSE, FALSE, PIDGIN_STOCK_STATUS_AWAY_I },
-	{ PIDGIN_STOCK_STATUS_BUSY, 	 "status", "busy.png", 		TRUE, TRUE, TRUE, TRUE, TRUE, FALSE, FALSE, PIDGIN_STOCK_STATUS_BUSY_I },
-	{ PIDGIN_STOCK_STATUS_CHAT, 	 "status", "chat.png",		TRUE, TRUE, TRUE, TRUE, TRUE, FALSE, FALSE, NULL },
-	{ PIDGIN_STOCK_STATUS_INVISIBLE, "status", "invisible.png",	TRUE, TRUE, TRUE, TRUE, TRUE, FALSE, FALSE, NULL },
-	{ PIDGIN_STOCK_STATUS_XA, 	 "status", "extended-away.png",	TRUE, TRUE, TRUE, TRUE, TRUE, FALSE, TRUE,  PIDGIN_STOCK_STATUS_XA_I },
-	{ PIDGIN_STOCK_STATUS_LOGIN, 	 "status", "log-in.png",	TRUE, TRUE, TRUE, TRUE, TRUE, FALSE, TRUE,  NULL },
-	{ PIDGIN_STOCK_STATUS_LOGOUT, 	 "status", "log-out.png",	TRUE, TRUE, TRUE, TRUE, TRUE, FALSE, TRUE,  NULL },
-	{ PIDGIN_STOCK_STATUS_OFFLINE, 	 "status", "offline.png",	TRUE, TRUE, TRUE, TRUE, TRUE, FALSE, FALSE, PIDGIN_STOCK_STATUS_OFFLINE_I  },
-	{ PIDGIN_STOCK_STATUS_PERSON, 	 "status", "person.png",	TRUE, TRUE, TRUE, TRUE, TRUE, FALSE, FALSE, NULL  },
-	{ PIDGIN_STOCK_STATUS_MESSAGE, 	 "toolbar", "message-new.png",  TRUE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL  },
+	{ PIDGIN_STOCK_STATUS_AVAILABLE, "status",  "available.png",     TRUE, TRUE, TRUE,  TRUE,  TRUE,  FALSE, FALSE, PIDGIN_STOCK_STATUS_AVAILABLE_I },
+	{ PIDGIN_STOCK_STATUS_AWAY,      "status",  "away.png",          TRUE, TRUE, TRUE,  TRUE,  TRUE,  FALSE, FALSE, PIDGIN_STOCK_STATUS_AWAY_I },
+	{ PIDGIN_STOCK_STATUS_BUSY,      "status",  "busy.png",          TRUE, TRUE, TRUE,  TRUE,  TRUE,  FALSE, FALSE, PIDGIN_STOCK_STATUS_BUSY_I },
+	{ PIDGIN_STOCK_STATUS_CHAT,      "status",  "chat.png",          TRUE, TRUE, TRUE,  TRUE,  TRUE,  FALSE, FALSE, NULL },
+	{ PIDGIN_STOCK_STATUS_INVISIBLE, "status",  "invisible.png",     TRUE, TRUE, TRUE,  TRUE,  TRUE,  FALSE, FALSE, NULL },
+	{ PIDGIN_STOCK_STATUS_XA,        "status",  "extended-away.png", TRUE, TRUE, TRUE,  TRUE,  TRUE,  FALSE, TRUE,  PIDGIN_STOCK_STATUS_XA_I },
+	{ PIDGIN_STOCK_STATUS_LOGIN,     "status",  "log-in.png",        TRUE, TRUE, TRUE,  TRUE,  TRUE,  FALSE, TRUE,  NULL },
+	{ PIDGIN_STOCK_STATUS_LOGOUT,    "status",  "log-out.png",       TRUE, TRUE, TRUE,  TRUE,  TRUE,  FALSE, TRUE,  NULL },
+	{ PIDGIN_STOCK_STATUS_OFFLINE,   "status",  "offline.png",       TRUE, TRUE, TRUE,  TRUE,  TRUE,  FALSE, FALSE, PIDGIN_STOCK_STATUS_OFFLINE_I  },
+	{ PIDGIN_STOCK_STATUS_PERSON,    "status",  "person.png",        TRUE, TRUE, TRUE,  TRUE,  TRUE,  FALSE, FALSE, NULL },
+	{ PIDGIN_STOCK_STATUS_MESSAGE,   "toolbar", "message-new.png",   TRUE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL },
 
-	{ PIDGIN_STOCK_TRAY_AVAILABLE,	"tray", "tray-online.png",	  FALSE, TRUE, TRUE, TRUE, TRUE, FALSE, FALSE, NULL  },
-	{ PIDGIN_STOCK_TRAY_INVISIBLE,	"tray", "tray-invisible.png",	  FALSE, TRUE, TRUE, TRUE, TRUE, FALSE, FALSE, NULL  },
-	{ PIDGIN_STOCK_TRAY_AWAY,	"tray", "tray-away.png",	  FALSE, TRUE, TRUE, TRUE, TRUE, FALSE, FALSE, NULL  },
-	{ PIDGIN_STOCK_TRAY_BUSY,	"tray", "tray-busy.png", 	  FALSE, TRUE, TRUE, TRUE, TRUE, FALSE, FALSE, NULL  },
-	{ PIDGIN_STOCK_TRAY_XA,		"tray", "tray-extended-away.png", FALSE, TRUE, TRUE, TRUE, TRUE, FALSE, FALSE, NULL  },
-	{ PIDGIN_STOCK_TRAY_OFFLINE,	"tray", "tray-offline.png",	  FALSE, TRUE, TRUE, TRUE, TRUE, FALSE, FALSE, NULL  },
-	{ PIDGIN_STOCK_TRAY_CONNECT,	"tray", "tray-connecting.png",	  FALSE, TRUE, TRUE, TRUE, TRUE, FALSE, FALSE, NULL  },
-	{ PIDGIN_STOCK_TRAY_PENDING,	"tray", "tray-new-im.png", 	  FALSE, TRUE, TRUE, TRUE, TRUE, FALSE, FALSE, NULL  },
-	{ PIDGIN_STOCK_TRAY_EMAIL,	"tray", "tray-message.png",	  FALSE, TRUE, TRUE, TRUE, TRUE, FALSE, FALSE, NULL  }
+	{ PIDGIN_STOCK_TRAY_AVAILABLE, "tray", "tray-online.png",        FALSE, TRUE, TRUE, TRUE, TRUE, FALSE, FALSE, NULL },
+	{ PIDGIN_STOCK_TRAY_INVISIBLE, "tray", "tray-invisible.png",     FALSE, TRUE, TRUE, TRUE, TRUE, FALSE, FALSE, NULL },
+	{ PIDGIN_STOCK_TRAY_AWAY,      "tray", "tray-away.png",          FALSE, TRUE, TRUE, TRUE, TRUE, FALSE, FALSE, NULL },
+	{ PIDGIN_STOCK_TRAY_BUSY,      "tray", "tray-busy.png",          FALSE, TRUE, TRUE, TRUE, TRUE, FALSE, FALSE, NULL },
+	{ PIDGIN_STOCK_TRAY_XA,        "tray", "tray-extended-away.png", FALSE, TRUE, TRUE, TRUE, TRUE, FALSE, FALSE, NULL },
+	{ PIDGIN_STOCK_TRAY_OFFLINE,   "tray", "tray-offline.png",       FALSE, TRUE, TRUE, TRUE, TRUE, FALSE, FALSE, NULL },
+	{ PIDGIN_STOCK_TRAY_CONNECT,   "tray", "tray-connecting.png",    FALSE, TRUE, TRUE, TRUE, TRUE, FALSE, FALSE, NULL },
+	{ PIDGIN_STOCK_TRAY_PENDING,   "tray", "tray-new-im.png",        FALSE, TRUE, TRUE, TRUE, TRUE, FALSE, FALSE, NULL },
+	{ PIDGIN_STOCK_TRAY_EMAIL,     "tray", "tray-message.png",       FALSE, TRUE, TRUE, TRUE, TRUE, FALSE, FALSE, NULL }
 };
 
 /*****************************************************************************
@@ -288,36 +289,36 @@
 static void
 do_alphashift(GdkPixbuf *dest, GdkPixbuf *src)
 {
-        gint i, j;
-        gint width, height, has_alpha, srcrowstride, destrowstride;
-        guchar *target_pixels;
-        guchar *original_pixels;
-        guchar *pixsrc;
-        guchar *pixdest;
-        guchar a;
+	gint i, j;
+	gint width, height, has_alpha, srcrowstride, destrowstride;
+	guchar *target_pixels;
+	guchar *original_pixels;
+	guchar *pixsrc;
+	guchar *pixdest;
+	guchar a;
 
-        has_alpha = gdk_pixbuf_get_has_alpha (src);
-        if (!has_alpha)
-          return;
+	has_alpha = gdk_pixbuf_get_has_alpha (src);
+	if (!has_alpha)
+		return;
 
-        width = gdk_pixbuf_get_width (src);
-        height = gdk_pixbuf_get_height (src);
-        srcrowstride = gdk_pixbuf_get_rowstride (src);
-        destrowstride = gdk_pixbuf_get_rowstride (dest);
-        target_pixels = gdk_pixbuf_get_pixels (dest);
-        original_pixels = gdk_pixbuf_get_pixels (src);
+	width = gdk_pixbuf_get_width (src);
+	height = gdk_pixbuf_get_height (src);
+	srcrowstride = gdk_pixbuf_get_rowstride (src);
+	destrowstride = gdk_pixbuf_get_rowstride (dest);
+	target_pixels = gdk_pixbuf_get_pixels (dest);
+	original_pixels = gdk_pixbuf_get_pixels (src);
 
-        for (i = 0; i < height; i++) {
-                pixdest = target_pixels + i*destrowstride;
-                pixsrc = original_pixels + i*srcrowstride;
-                for (j = 0; j < width; j++) {
-                        *(pixdest++) = *(pixsrc++);
-                        *(pixdest++) = *(pixsrc++);
-                        *(pixdest++) = *(pixsrc++);
-                        a = *(pixsrc++);
-                        *(pixdest++) = a / 2;
-                }
-        }
+	for (i = 0; i < height; i++) {
+		pixdest = target_pixels + i*destrowstride;
+		pixsrc = original_pixels + i*srcrowstride;
+		for (j = 0; j < width; j++) {
+			*(pixdest++) = *(pixsrc++);
+			*(pixdest++) = *(pixsrc++);
+			*(pixdest++) = *(pixsrc++);
+			a = *(pixsrc++);
+			*(pixdest++) = a / 2;
+		}
+	}
 }
 
 static gchar *
@@ -435,9 +436,9 @@
 
 	if (theme != NULL) {
 		purple_prefs_set_string(PIDGIN_PREFS_ROOT "/status/icon-theme",
-				        purple_theme_get_name(PURPLE_THEME(theme)));
+		                        purple_theme_get_name(PURPLE_THEME(theme)));
 		purple_prefs_set_path(PIDGIN_PREFS_ROOT "/status/icon-theme-dir",
-				      purple_theme_get_dir(PURPLE_THEME(theme)));
+		                      purple_theme_get_dir(PURPLE_THEME(theme)));
 	}
 	else {
 		purple_prefs_set_string(PIDGIN_PREFS_ROOT "/status/icon-theme", "");
@@ -457,11 +458,12 @@
 		if (sized_status_icons[i].translucent_name)
 			translucent = gtk_icon_set_new();
 
-#define ADD_SIZED_ICON(name, size) if (sized_status_icons[i].name) { \
-					add_sized_icon(normal, name, PIDGIN_ICON_THEME(theme), size, sized_status_icons[i], FALSE); \
-					if (sized_status_icons[i].translucent_name) \
-						add_sized_icon(translucent, name, PIDGIN_ICON_THEME(theme), size, sized_status_icons[i], TRUE); \
-				   }
+#define ADD_SIZED_ICON(name, size) \
+		if (sized_status_icons[i].name) { \
+			add_sized_icon(normal, name, PIDGIN_ICON_THEME(theme), size, sized_status_icons[i], FALSE); \
+			if (sized_status_icons[i].translucent_name) \
+				add_sized_icon(translucent, name, PIDGIN_ICON_THEME(theme), size, sized_status_icons[i], TRUE); \
+		}
 		ADD_SIZED_ICON(microscopic, "11");
 		ADD_SIZED_ICON(extra_small, "16");
 		ADD_SIZED_ICON(small, "22");
@@ -479,7 +481,6 @@
 		}
 	}
 
-
 	gtk_widget_destroy(win);
 	g_object_unref(G_OBJECT(icon_factory));
 	reload_settings();
@@ -494,9 +495,9 @@
 
 	if (theme != NULL) {
 		purple_prefs_set_string(PIDGIN_PREFS_ROOT "/stock/icon-theme",
-				        purple_theme_get_name(PURPLE_THEME(theme)));
+		                        purple_theme_get_name(PURPLE_THEME(theme)));
 		purple_prefs_set_path(PIDGIN_PREFS_ROOT "/stock/icon-theme-dir",
-				      purple_theme_get_dir(PURPLE_THEME(theme)));
+		                      purple_theme_get_dir(PURPLE_THEME(theme)));
 	}
 	else {
 		purple_prefs_set_string(PIDGIN_PREFS_ROOT "/stock/icon-theme", "");
@@ -549,8 +550,9 @@
 	{
 		GtkIconSet *iconset = gtk_icon_set_new();
 
-#define ADD_SIZED_ICON(name, size) if (sized_stock_icons[i].name) \
-					add_sized_icon(iconset, name, PIDGIN_ICON_THEME(theme), size, sized_stock_icons[i], FALSE);
+#define ADD_SIZED_ICON(name, size) \
+		if (sized_stock_icons[i].name) \
+			add_sized_icon(iconset, name, PIDGIN_ICON_THEME(theme), size, sized_stock_icons[i], FALSE);
 		ADD_SIZED_ICON(microscopic, "11");
 		ADD_SIZED_ICON(extra_small, "16");
 		ADD_SIZED_ICON(small, "22");
@@ -593,10 +595,10 @@
 	/* register custom icon sizes */
 	microscopic =  gtk_icon_size_register(PIDGIN_ICON_SIZE_TANGO_MICROSCOPIC, 11, 11);
 	extra_small =  gtk_icon_size_register(PIDGIN_ICON_SIZE_TANGO_EXTRA_SMALL, 16, 16);
-	small =        gtk_icon_size_register(PIDGIN_ICON_SIZE_TANGO_SMALL, 22, 22);
-	medium =       gtk_icon_size_register(PIDGIN_ICON_SIZE_TANGO_MEDIUM, 32, 32);
-	large =        gtk_icon_size_register(PIDGIN_ICON_SIZE_TANGO_LARGE, 48, 48);
-	huge =         gtk_icon_size_register(PIDGIN_ICON_SIZE_TANGO_HUGE, 64, 64);
+	small       =  gtk_icon_size_register(PIDGIN_ICON_SIZE_TANGO_SMALL, 22, 22);
+	medium      =  gtk_icon_size_register(PIDGIN_ICON_SIZE_TANGO_MEDIUM, 32, 32);
+	large       =  gtk_icon_size_register(PIDGIN_ICON_SIZE_TANGO_LARGE, 48, 48);
+	huge        =  gtk_icon_size_register(PIDGIN_ICON_SIZE_TANGO_HUGE, 64, 64);
 
 	pidgin_stock_load_stock_icon_theme(NULL);
 
@@ -608,7 +610,9 @@
 		pidgin_stock_load_status_icon_theme(theme);
 		g_object_unref(G_OBJECT(theme));
 
-	} else pidgin_stock_load_status_icon_theme(NULL);
+	}
+	else
+		pidgin_stock_load_status_icon_theme(NULL);
 
 	/* Register the stock items. */
 	gtk_stock_add_static(stock_items, G_N_ELEMENTS(stock_items));
--- a/pidgin/plugins/Makefile.am	Mon May 25 19:27:33 2009 +0000
+++ b/pidgin/plugins/Makefile.am	Mon Jun 08 18:28:31 2009 +0000
@@ -1,4 +1,4 @@
-DIST_SUBDIRS = cap gestures gevolution musicmessaging perl ticker
+DIST_SUBDIRS = cap disco gestures gevolution musicmessaging perl ticker
 
 if BUILD_GEVOLUTION
 GEVOLUTION_DIR = gevolution
@@ -26,6 +26,7 @@
 	$(GEVOLUTION_DIR) \
 	$(MUSICMESSAGING_DIR) \
 	$(PERL_DIR) \
+	disco \
 	ticker
 
 plugindir = $(libdir)/pidgin
--- a/pidgin/plugins/convcolors.c	Mon May 25 19:27:33 2009 +0000
+++ b/pidgin/plugins/convcolors.c	Mon Jun 08 18:28:31 2009 +0000
@@ -101,6 +101,7 @@
 	gboolean bold, italic, underline;
 	int f;
 	const char *color;
+	gboolean rtl = FALSE;
 
 	for (i = 0; formats[i].prefix; i++)
 		if (flags & formats[i].flag)
@@ -126,6 +127,7 @@
 	bold = (f & FONT_BOLD);
 	italic = (f & FONT_ITALIC);
 	underline = (f & FONT_UNDERLINE);
+	rtl = purple_markup_is_rtl(*displaying);
 
 	if (purple_prefs_get_bool(PREF_IGNORE))
 	{
@@ -156,11 +158,13 @@
 	}
 
 	t = *displaying;
-	*displaying = g_strdup_printf("%s%s%s%s%s%s%s",
+	*displaying = g_strdup_printf("%s%s%s%s%s%s%s%s%s",
 						bold ? "<B>" : "</B>",
 						italic ? "<I>" : "</I>",
 						underline ? "<U>" : "</U>",
-						t, 
+						rtl ? "<SPAN style=\"direction:rtl;text-align:right;\">" : "",
+						t,
+						rtl ? "</SPAN>" : "",
 						bold ? "</B>" : "<B>",
 						italic ? "</I>" : "<I>",
 						underline ? "</U>" : "<U>"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/pidgin/plugins/disco/Makefile.am	Mon Jun 08 18:28:31 2009 +0000
@@ -0,0 +1,23 @@
+plugindir = $(libdir)/pidgin
+
+xmppdisco_la_LDFLAGS = -module -avoid-version
+
+if PLUGINS
+
+plugin_LTLIBRARIES = xmppdisco.la
+
+xmppdisco_la_SOURCES = \
+	gtkdisco.c \
+	xmppdisco.c
+
+xmppdisco_la_LIBADD = $(GTK_LIBS)
+
+endif
+
+AM_CPPFLAGS = \
+	-DDATADIR=\"$(datadir)\" \
+	-I$(top_srcdir)/libpurple \
+	-I$(top_builddir)/libpurple \
+	-I$(top_srcdir)/pidgin \
+	$(DEBUG_CFLAGS) \
+	$(GTK_CFLAGS)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/pidgin/plugins/disco/gtkdisco.c	Mon Jun 08 18:28:31 2009 +0000
@@ -0,0 +1,754 @@
+/**
+ * @file gtkdisco.c GTK+ Service Discovery UI
+ * @ingroup pidgin
+ */
+
+/* pidgin
+ *
+ * Pidgin is the legal property of its developers, whose names are too numerous
+ * to list here.  Please refer to the COPYRIGHT file distributed with this
+ * source distribution.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02111-1301  USA
+ */
+
+#include "internal.h"
+#include "debug.h"
+#include "gtkutils.h"
+#include "pidgin.h"
+#include "request.h"
+#include "pidgintooltip.h"
+
+#include "gtkdisco.h"
+#include "xmppdisco.h"
+
+GList *dialogs = NULL;
+
+enum {
+	PIXBUF_COLUMN = 0,
+	NAME_COLUMN,
+	DESCRIPTION_COLUMN,
+	SERVICE_COLUMN,
+	NUM_OF_COLUMNS
+};
+
+static void
+pidgin_disco_list_destroy(PidginDiscoList *list)
+{
+	g_hash_table_destroy(list->services);
+	if (list->dialog && list->dialog->discolist == list)
+		list->dialog->discolist = NULL;
+
+	if (list->tree) {
+		gtk_widget_destroy(list->tree);
+		list->tree = NULL;
+	}
+
+	g_free((gchar*)list->server);
+	g_free(list);
+}
+
+PidginDiscoList *pidgin_disco_list_ref(PidginDiscoList *list)
+{
+	g_return_val_if_fail(list != NULL, NULL);
+
+	++list->ref;
+	purple_debug_misc("xmppdisco", "reffing list, ref count now %d\n", list->ref);
+
+	return list;
+}
+
+void pidgin_disco_list_unref(PidginDiscoList *list)
+{
+	g_return_if_fail(list != NULL);
+
+	--list->ref;
+
+	purple_debug_misc("xmppdisco", "unreffing list, ref count now %d\n", list->ref);
+	if (list->ref == 0)
+		pidgin_disco_list_destroy(list);
+}
+
+void pidgin_disco_list_set_in_progress(PidginDiscoList *list, gboolean in_progress)
+{
+	PidginDiscoDialog *dialog = list->dialog;
+
+	if (!dialog)
+		return;
+
+	list->in_progress = in_progress;
+
+	if (in_progress) {
+		gtk_widget_set_sensitive(dialog->account_widget, FALSE);
+		gtk_widget_set_sensitive(dialog->stop_button, TRUE);
+		gtk_widget_set_sensitive(dialog->browse_button, FALSE);
+	} else {
+		gtk_progress_bar_set_fraction(GTK_PROGRESS_BAR(dialog->progress), 0.0);
+
+		gtk_widget_set_sensitive(dialog->account_widget, TRUE);
+
+		gtk_widget_set_sensitive(dialog->stop_button, FALSE);
+		gtk_widget_set_sensitive(dialog->browse_button, TRUE);
+/*
+		gtk_widget_set_sensitive(dialog->register_button, FALSE);
+		gtk_widget_set_sensitive(dialog->add_button, FALSE);
+*/
+	}
+}
+
+static void pidgin_disco_create_tree(PidginDiscoList *pdl);
+
+static void dialog_select_account_cb(GObject *w, PurpleAccount *account,
+                                     PidginDiscoDialog *dialog)
+{
+	dialog->account = account;
+	gtk_widget_set_sensitive(dialog->browse_button, account != NULL);
+}
+
+static void register_button_cb(GtkWidget *unused, PidginDiscoDialog *dialog)
+{
+	xmpp_disco_service_register(dialog->selected);
+}
+
+static void discolist_cancel_cb(PidginDiscoList *pdl, const char *server)
+{
+	pidgin_disco_list_set_in_progress(pdl, FALSE);
+	pidgin_disco_list_unref(pdl);
+}
+
+static void discolist_ok_cb(PidginDiscoList *pdl, const char *server)
+{
+	gtk_widget_set_sensitive(pdl->dialog->browse_button, TRUE);
+
+	if (!server || !*server) {
+		purple_notify_error(my_plugin, _("Invalid Server"), _("Invalid Server"),
+		                    NULL);
+
+		pidgin_disco_list_set_in_progress(pdl, FALSE);
+		pidgin_disco_list_unref(pdl);
+		return;
+	}
+
+	pdl->server = g_strdup(server);
+	pidgin_disco_list_set_in_progress(pdl, TRUE);
+	xmpp_disco_start(pdl);
+}
+
+static void browse_button_cb(GtkWidget *button, PidginDiscoDialog *dialog)
+{
+	PurpleConnection *pc;
+	PidginDiscoList *pdl;
+	const char *username;
+	const char *at, *slash;
+	char *server = NULL;
+
+	pc = purple_account_get_connection(dialog->account);
+	if (!pc)
+		return;
+
+	gtk_widget_set_sensitive(dialog->browse_button, FALSE);
+	gtk_widget_set_sensitive(dialog->add_button, FALSE);
+	gtk_widget_set_sensitive(dialog->register_button, FALSE);
+
+	if (dialog->discolist != NULL) {
+		if (dialog->discolist->tree) {
+			gtk_widget_destroy(dialog->discolist->tree);
+			dialog->discolist->tree = NULL;
+		}
+		pidgin_disco_list_unref(dialog->discolist);
+	}
+
+	pdl = dialog->discolist = g_new0(PidginDiscoList, 1);
+	pdl->services = g_hash_table_new_full(NULL, NULL, NULL,
+			(GDestroyNotify)gtk_tree_row_reference_free);
+	pdl->pc = pc;
+	/* We keep a copy... */
+	pidgin_disco_list_ref(pdl);
+
+	pdl->dialog = dialog;
+	pidgin_disco_create_tree(pdl);
+
+	if (dialog->account_widget)
+		gtk_widget_set_sensitive(dialog->account_widget, FALSE);
+
+	username = purple_account_get_username(dialog->account);
+	at = g_utf8_strchr(username, -1, '@');
+	slash = g_utf8_strchr(username, -1, '/');
+	if (at && !slash) {
+		server = g_strdup_printf("%s", at + 1);
+	} else if (at && slash && at + 1 < slash) {
+		server = g_strdup_printf("%.*s", (int)(slash - (at + 1)), at + 1);
+	}
+
+	if (server == NULL)
+		/* This shouldn't ever happen since the account is connected */
+		server = g_strdup("jabber.org");
+
+	purple_request_input(my_plugin, _("Server name request"), _("Enter an XMPP Server"),
+			_("Select an XMPP server to query"),
+			server, FALSE, FALSE, NULL,
+			_("Find Services"), PURPLE_CALLBACK(discolist_ok_cb),
+			_("Cancel"), PURPLE_CALLBACK(discolist_cancel_cb),
+			purple_connection_get_account(pc), NULL, NULL, pdl);
+
+	g_free(server);
+}
+
+static void add_to_blist_cb(GtkWidget *unused, PidginDiscoDialog *dialog)
+{
+	XmppDiscoService *service = dialog->selected;
+	PurpleAccount *account;
+	const char *jid;
+
+	g_return_if_fail(service != NULL);
+
+	account = purple_connection_get_account(service->list->pc);
+	jid = service->jid;
+
+	if (service->type == XMPP_DISCO_SERVICE_TYPE_CHAT)
+		purple_blist_request_add_chat(account, NULL, NULL, jid);
+	else
+		purple_blist_request_add_buddy(account, jid, NULL, NULL);
+}
+
+static gboolean
+service_click_cb(GtkTreeView *tree, GdkEventButton *event, gpointer user_data)
+{
+	PidginDiscoList *pdl;
+	XmppDiscoService *service;
+	GtkWidget *menu;
+
+	GtkTreePath *path;
+	GtkTreeIter iter;
+	GValue val;
+
+	if (event->button != 3 || event->type != GDK_BUTTON_PRESS)
+		return FALSE;
+
+	pdl = user_data;
+
+	/* Figure out what was clicked */
+	if (!gtk_tree_view_get_path_at_pos(tree, event->x, event->y, &path,
+		                               NULL, NULL, NULL))
+		return FALSE;
+	gtk_tree_model_get_iter(GTK_TREE_MODEL(pdl->model), &iter, path);
+	gtk_tree_path_free(path);
+	val.g_type = 0;
+	gtk_tree_model_get_value(GTK_TREE_MODEL(pdl->model), &iter, SERVICE_COLUMN,
+	                         &val);
+	service = g_value_get_pointer(&val);
+
+	if (!service)
+		return FALSE;
+
+	menu = gtk_menu_new();
+
+	if (service->flags & XMPP_DISCO_ADD)
+		pidgin_new_item_from_stock(menu, _("Add to Buddy List"), GTK_STOCK_ADD,
+		                           G_CALLBACK(add_to_blist_cb), pdl->dialog,
+		                           0, 0, NULL);
+
+	if (service->flags & XMPP_DISCO_REGISTER) {
+		GtkWidget *item = pidgin_new_item(menu, _("Register"));
+		g_signal_connect(G_OBJECT(item), "activate",
+		                 G_CALLBACK(register_button_cb), pdl->dialog);
+	}
+
+	gtk_widget_show_all(menu);
+	gtk_menu_popup(GTK_MENU(menu), NULL, NULL, NULL, NULL, event->button,
+	               event->time);
+	return FALSE;
+}
+
+static void
+selection_changed_cb(GtkTreeSelection *selection, PidginDiscoList *pdl)
+{
+	GtkTreeIter iter;
+	GValue val;
+	PidginDiscoDialog *dialog = pdl->dialog;
+
+	if (gtk_tree_selection_get_selected(selection, NULL, &iter)) {
+		val.g_type = 0;
+		gtk_tree_model_get_value(GTK_TREE_MODEL(pdl->model), &iter, SERVICE_COLUMN, &val);
+		dialog->selected = g_value_get_pointer(&val);
+		if (!dialog->selected) {
+			gtk_widget_set_sensitive(dialog->add_button, FALSE);
+			gtk_widget_set_sensitive(dialog->register_button, FALSE);
+			return;
+		}
+
+		gtk_widget_set_sensitive(dialog->add_button, dialog->selected->flags & XMPP_DISCO_ADD);
+		gtk_widget_set_sensitive(dialog->register_button, dialog->selected->flags & XMPP_DISCO_REGISTER);
+	} else {
+		gtk_widget_set_sensitive(dialog->add_button, FALSE);
+		gtk_widget_set_sensitive(dialog->register_button, FALSE);
+	}
+}
+
+static void
+row_expanded_cb(GtkTreeView *tree, GtkTreeIter *arg1, GtkTreePath *rg2,
+                gpointer user_data)
+{
+	PidginDiscoList *pdl;
+	XmppDiscoService *service;
+	GValue val;
+
+	pdl = user_data;
+
+	val.g_type = 0;
+	gtk_tree_model_get_value(GTK_TREE_MODEL(pdl->model), arg1, SERVICE_COLUMN,
+	                         &val);
+	service = g_value_get_pointer(&val);
+	xmpp_disco_service_expand(service);
+}
+
+static void
+row_activated_cb(GtkTreeView       *tree_view,
+                 GtkTreePath       *path,
+                 GtkTreeViewColumn *column,
+                 gpointer           user_data)
+{
+	PidginDiscoList *pdl = user_data;
+	GtkTreeIter iter;
+	XmppDiscoService *service;
+	GValue val;
+
+	if (!gtk_tree_model_get_iter(GTK_TREE_MODEL(pdl->model), &iter, path))
+		return;
+
+	val.g_type = 0;
+	gtk_tree_model_get_value(GTK_TREE_MODEL(pdl->model), &iter, SERVICE_COLUMN,
+	                         &val);
+	service = g_value_get_pointer(&val);
+
+	if (service->flags & XMPP_DISCO_BROWSE)
+		if (gtk_tree_view_row_expanded(GTK_TREE_VIEW(pdl->tree), path))
+			gtk_tree_view_collapse_row(GTK_TREE_VIEW(pdl->tree), path);
+		else
+			gtk_tree_view_expand_row(GTK_TREE_VIEW(pdl->tree), path, FALSE);
+	else if (service->flags & XMPP_DISCO_REGISTER)
+		register_button_cb(NULL, pdl->dialog);
+	else if (service->flags & XMPP_DISCO_ADD)
+		add_to_blist_cb(NULL, pdl->dialog);
+}
+
+static void
+destroy_win_cb(GtkWidget *window, gpointer d)
+{
+	PidginDiscoDialog *dialog = d;
+	PidginDiscoList *list = dialog->discolist;
+
+	if (list) {
+		list->dialog = NULL;
+
+		if (list->in_progress)
+			list->in_progress = FALSE;
+
+		pidgin_disco_list_unref(list);
+	}
+
+	dialogs = g_list_remove(dialogs, d);
+	g_free(dialog);
+}
+
+static void stop_button_cb(GtkButton *button, PidginDiscoDialog *dialog)
+{
+	pidgin_disco_list_set_in_progress(dialog->discolist, FALSE);
+}
+
+static void close_button_cb(GtkButton *button, PidginDiscoDialog *dialog)
+{
+	GtkWidget *window = dialog->window;
+
+	gtk_widget_destroy(window);
+}
+
+static gboolean account_filter_func(PurpleAccount *account)
+{
+	return purple_strequal(purple_account_get_protocol_id(account), XMPP_PLUGIN_ID);
+}
+
+static gboolean
+disco_paint_tooltip(GtkWidget *tipwindow, gpointer data)
+{
+	PangoLayout *layout = g_object_get_data(G_OBJECT(tipwindow), "tooltip-plugin");
+	gtk_paint_layout(tipwindow->style, tipwindow->window, GTK_STATE_NORMAL, FALSE,
+			NULL, tipwindow, "tooltip",
+			6, 6, layout);
+	return TRUE;
+}
+
+static gboolean
+disco_create_tooltip(GtkWidget *tipwindow, GtkTreePath *path,
+		gpointer data, int *w, int *h)
+{
+	PidginDiscoList *pdl = data;
+	GtkTreeIter iter;
+	PangoLayout *layout;
+	int width, height;
+	XmppDiscoService *service;
+	GValue val;
+	const char *type = NULL;
+	char *markup, *jid, *name, *desc = NULL;
+
+	if (!gtk_tree_model_get_iter(GTK_TREE_MODEL(pdl->model), &iter, path))
+		return FALSE;
+
+	val.g_type = 0;
+	gtk_tree_model_get_value(GTK_TREE_MODEL(pdl->model), &iter, SERVICE_COLUMN,
+	                         &val);
+	service = g_value_get_pointer(&val);
+
+	switch (service->type) {
+		case XMPP_DISCO_SERVICE_TYPE_UNSET:
+			type = _("Unknown");
+			break;
+
+		case XMPP_DISCO_SERVICE_TYPE_GATEWAY:
+			type = _("Gateway");
+			break;
+
+		case XMPP_DISCO_SERVICE_TYPE_DIRECTORY:
+			type = _("Directory");
+			break;
+
+		case XMPP_DISCO_SERVICE_TYPE_CHAT:
+			type = _("Chat");
+			break;
+
+		case XMPP_DISCO_SERVICE_TYPE_PUBSUB_COLLECTION:
+			type = _("PubSub Collection");
+			break;
+
+		case XMPP_DISCO_SERVICE_TYPE_PUBSUB_LEAF:
+			type = _("PubSub Leaf");
+			break;
+
+		case XMPP_DISCO_SERVICE_TYPE_OTHER:
+			type = _("Other");
+			break;
+	}
+
+	markup = g_strdup_printf("<span size='x-large' weight='bold'>%s</span>\n<b>%s:</b> %s%s%s",
+	                         name = g_markup_escape_text(service->name, -1),
+	                         type,
+	                         jid = g_markup_escape_text(service->jid, -1),
+	                         service->description ? _("\n<b>Description:</b> ") : "",
+	                         service->description ? desc = g_markup_escape_text(service->description, -1) : "");
+
+	layout = gtk_widget_create_pango_layout(tipwindow, NULL);
+	pango_layout_set_markup(layout, markup, -1);
+	pango_layout_set_wrap(layout, PANGO_WRAP_WORD);
+	pango_layout_set_width(layout, 500000);
+	pango_layout_get_size(layout, &width, &height);
+	g_object_set_data_full(G_OBJECT(tipwindow), "tooltip-plugin", layout, g_object_unref);
+
+	if (w)
+		*w = PANGO_PIXELS(width) + 12;
+	if (h)
+		*h = PANGO_PIXELS(height) + 12;
+
+	g_free(markup);
+	g_free(jid);
+	g_free(name);
+	g_free(desc);
+
+	return TRUE;
+}
+
+static void pidgin_disco_create_tree(PidginDiscoList *pdl)
+{
+	GtkCellRenderer *text_renderer, *pixbuf_renderer;
+	GtkTreeViewColumn *column;
+	GtkTreeSelection *selection;
+
+	pdl->model = gtk_tree_store_new(NUM_OF_COLUMNS,
+			GDK_TYPE_PIXBUF,	/* PIXBUF_COLUMN */
+			G_TYPE_STRING,		/* NAME_COLUMN */
+			G_TYPE_STRING,		/* DESCRIPTION_COLUMN */
+			G_TYPE_POINTER		/* SERVICE_COLUMN */
+	);
+
+	pdl->tree = gtk_tree_view_new_with_model(GTK_TREE_MODEL(pdl->model));
+	gtk_tree_view_set_rules_hint(GTK_TREE_VIEW(pdl->tree), TRUE);
+
+	selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(pdl->tree));
+	g_signal_connect(G_OBJECT(selection), "changed",
+					 G_CALLBACK(selection_changed_cb), pdl);
+
+	g_object_unref(pdl->model);
+
+	gtk_container_add(GTK_CONTAINER(pdl->dialog->sw), pdl->tree);
+	gtk_widget_show(pdl->tree);
+
+	text_renderer = gtk_cell_renderer_text_new();
+	pixbuf_renderer = gtk_cell_renderer_pixbuf_new();
+
+	column = gtk_tree_view_column_new();
+	gtk_tree_view_column_set_title(column, _("Name"));
+
+	gtk_tree_view_column_pack_start(column, pixbuf_renderer, FALSE);
+	gtk_tree_view_column_set_attributes(column, pixbuf_renderer,
+			"pixbuf", PIXBUF_COLUMN, NULL);
+
+	gtk_tree_view_column_pack_start(column, text_renderer, TRUE);
+	gtk_tree_view_column_set_attributes(column, text_renderer,
+			"text", NAME_COLUMN, NULL);
+
+	gtk_tree_view_column_set_sizing(GTK_TREE_VIEW_COLUMN(column),
+	                                GTK_TREE_VIEW_COLUMN_GROW_ONLY);
+	gtk_tree_view_column_set_resizable(GTK_TREE_VIEW_COLUMN(column), TRUE);
+	gtk_tree_view_column_set_sort_column_id(GTK_TREE_VIEW_COLUMN(column), NAME_COLUMN);
+	gtk_tree_view_column_set_reorderable(GTK_TREE_VIEW_COLUMN(column), TRUE);
+	gtk_tree_view_append_column(GTK_TREE_VIEW(pdl->tree), column);
+
+	column = gtk_tree_view_column_new_with_attributes(_("Description"), text_renderer,
+				"text", DESCRIPTION_COLUMN, NULL);
+	gtk_tree_view_column_set_sizing(GTK_TREE_VIEW_COLUMN(column),
+	                                GTK_TREE_VIEW_COLUMN_GROW_ONLY);
+	gtk_tree_view_column_set_resizable(GTK_TREE_VIEW_COLUMN(column), TRUE);
+	gtk_tree_view_column_set_sort_column_id(GTK_TREE_VIEW_COLUMN(column), DESCRIPTION_COLUMN);
+	gtk_tree_view_column_set_reorderable(GTK_TREE_VIEW_COLUMN(column), TRUE);
+	gtk_tree_view_append_column(GTK_TREE_VIEW(pdl->tree), column);
+
+	g_signal_connect(G_OBJECT(pdl->tree), "button-press-event", G_CALLBACK(service_click_cb), pdl);
+	g_signal_connect(G_OBJECT(pdl->tree), "row-expanded", G_CALLBACK(row_expanded_cb), pdl);
+	g_signal_connect(G_OBJECT(pdl->tree), "row-activated", G_CALLBACK(row_activated_cb), pdl);
+
+	pidgin_tooltip_setup_for_treeview(pdl->tree, pdl,
+	                                  disco_create_tooltip,
+	                                  disco_paint_tooltip);
+}
+
+void pidgin_disco_signed_off_cb(PurpleConnection *pc)
+{
+	GList *node;
+
+	for (node = dialogs; node; node = node->next) {
+		PidginDiscoDialog *dialog = node->data;
+		PidginDiscoList *list = dialog->discolist;
+
+		if (list && list->pc == pc) {
+			if (list->in_progress)
+				pidgin_disco_list_set_in_progress(list, FALSE);
+
+			if (list->tree) {
+				gtk_widget_destroy(list->tree);
+				list->tree = NULL;
+			}
+
+			pidgin_disco_list_unref(list);
+			dialog->discolist = NULL;
+
+			gtk_widget_set_sensitive(dialog->browse_button,
+					pidgin_account_option_menu_get_selected(dialog->account_widget) != NULL);
+
+			gtk_widget_set_sensitive(dialog->register_button, FALSE);
+			gtk_widget_set_sensitive(dialog->add_button, FALSE);
+		}
+	}
+}
+
+void pidgin_disco_dialogs_destroy_all(void)
+{
+	while (dialogs) {
+		PidginDiscoDialog *dialog = dialogs->data;
+
+		gtk_widget_destroy(dialog->window);
+		/* destroy_win_cb removes the dialog from the list */
+	}
+}
+
+PidginDiscoDialog *pidgin_disco_dialog_new(void)
+{
+	PidginDiscoDialog *dialog;
+	GtkWidget *window, *vbox, *vbox2, *bbox;
+
+	dialog = g_new0(PidginDiscoDialog, 1);
+	dialogs = g_list_prepend(dialogs, dialog);
+
+	/* Create the window. */
+	dialog->window = window = pidgin_create_dialog(_("Service Discovery"), PIDGIN_HIG_BORDER, "service discovery", TRUE);
+
+	g_signal_connect(G_OBJECT(window), "destroy",
+					 G_CALLBACK(destroy_win_cb), dialog);
+
+	/* Create the parent vbox for everything. */
+	vbox = pidgin_dialog_get_vbox_with_properties(GTK_DIALOG(window), FALSE, PIDGIN_HIG_BORDER);
+
+	vbox2 = gtk_vbox_new(FALSE, PIDGIN_HIG_BORDER);
+	gtk_container_add(GTK_CONTAINER(vbox), vbox2);
+	gtk_widget_show(vbox2);
+
+	/* accounts dropdown list */
+	dialog->account_widget = pidgin_account_option_menu_new(NULL, FALSE,
+	                         G_CALLBACK(dialog_select_account_cb), account_filter_func, dialog);
+	dialog->account = pidgin_account_option_menu_get_selected(dialog->account_widget);
+	pidgin_add_widget_to_vbox(GTK_BOX(vbox2), _("_Account:"), NULL, dialog->account_widget, TRUE, NULL);
+
+	/* scrolled window */
+	dialog->sw = gtk_scrolled_window_new(NULL, NULL);
+	gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(dialog->sw),
+	                                    GTK_SHADOW_IN);
+	gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(dialog->sw),
+	                               GTK_POLICY_AUTOMATIC,
+	                               GTK_POLICY_AUTOMATIC);
+	gtk_box_pack_start(GTK_BOX(vbox2), dialog->sw, TRUE, TRUE, 0);
+	gtk_widget_set_size_request(dialog->sw, -1, 250);
+	gtk_widget_show(dialog->sw);
+
+	/* progress bar */
+	dialog->progress = gtk_progress_bar_new();
+	gtk_progress_bar_set_pulse_step(GTK_PROGRESS_BAR(dialog->progress), 0.1);
+	gtk_box_pack_start(GTK_BOX(vbox2), dialog->progress, FALSE, FALSE, 0);
+	gtk_widget_show(dialog->progress);
+
+	/* button box */
+	bbox = pidgin_dialog_get_action_area(GTK_DIALOG(window));
+	gtk_box_set_spacing(GTK_BOX(bbox), PIDGIN_HIG_BOX_SPACE);
+	gtk_button_box_set_layout(GTK_BUTTON_BOX(bbox), GTK_BUTTONBOX_END);
+
+	/* stop button */
+	dialog->stop_button =
+		pidgin_dialog_add_button(GTK_DIALOG(window), GTK_STOCK_STOP,
+		                         G_CALLBACK(stop_button_cb), dialog);
+	gtk_widget_set_sensitive(dialog->stop_button, FALSE);
+
+	/* browse button */
+	dialog->browse_button =
+		pidgin_pixbuf_button_from_stock(_("_Browse"), GTK_STOCK_REFRESH,
+		                                PIDGIN_BUTTON_HORIZONTAL);
+	gtk_box_pack_start(GTK_BOX(bbox), dialog->browse_button, FALSE, FALSE, 0);
+	g_signal_connect(G_OBJECT(dialog->browse_button), "clicked",
+	                 G_CALLBACK(browse_button_cb), dialog);
+	gtk_widget_set_sensitive(dialog->browse_button, dialog->account != NULL);
+	gtk_widget_show(dialog->browse_button);
+
+	/* register button */
+	dialog->register_button =
+		pidgin_dialog_add_button(GTK_DIALOG(dialog->window), _("Register"),
+		                         G_CALLBACK(register_button_cb), dialog);
+	gtk_widget_set_sensitive(dialog->register_button, FALSE);
+
+	/* add button */
+	dialog->add_button =
+		pidgin_pixbuf_button_from_stock(_("_Add"), GTK_STOCK_ADD,
+	                                    PIDGIN_BUTTON_HORIZONTAL);
+	gtk_box_pack_start(GTK_BOX(bbox), dialog->add_button, FALSE, FALSE, 0);
+	g_signal_connect(G_OBJECT(dialog->add_button), "clicked",
+	                 G_CALLBACK(add_to_blist_cb), dialog);
+	gtk_widget_set_sensitive(dialog->add_button, FALSE);
+	gtk_widget_show(dialog->add_button);
+
+	/* close button */
+	dialog->close_button =
+		pidgin_dialog_add_button(GTK_DIALOG(window), GTK_STOCK_CLOSE,
+		                         G_CALLBACK(close_button_cb), dialog);
+
+	/* show the dialog window and return the dialog */
+	gtk_widget_show(dialog->window);
+
+	return dialog;
+}
+
+void pidgin_disco_add_service(PidginDiscoList *pdl, XmppDiscoService *service, XmppDiscoService *parent)
+{
+	PidginDiscoDialog *dialog;
+	GtkTreeIter iter, parent_iter, child;
+	char *filename = NULL;
+	GdkPixbuf *pixbuf = NULL;
+	gboolean append = TRUE;
+
+	dialog = pdl->dialog;
+	g_return_if_fail(dialog != NULL);
+
+	if (service != NULL)
+		purple_debug_info("xmppdisco", "Adding service \"%s\"\n", service->name);
+	else
+		purple_debug_info("xmppdisco", "Service \"%s\" has no childrens\n", parent->name);
+
+	gtk_progress_bar_pulse(GTK_PROGRESS_BAR(dialog->progress));
+
+	if (parent) {
+		GtkTreeRowReference *rr;
+		GtkTreePath *path;
+
+		rr = g_hash_table_lookup(pdl->services, parent);
+		path = gtk_tree_row_reference_get_path(rr);
+		if (path) {
+			gtk_tree_model_get_iter(GTK_TREE_MODEL(pdl->model), &parent_iter, path);
+			gtk_tree_path_free(path);
+
+			if (gtk_tree_model_iter_children(GTK_TREE_MODEL(pdl->model), &child,
+			                                 &parent_iter)) {
+				PidginDiscoList *tmp;
+				gtk_tree_model_get(GTK_TREE_MODEL(pdl->model), &child,
+				                   SERVICE_COLUMN, &tmp, -1);
+				if (!tmp)
+					append = FALSE;
+			}
+		}
+	}
+
+	if (service == NULL) {
+		if (parent != NULL && !append)
+			gtk_tree_store_remove(pdl->model, &child);
+		return;
+	}
+
+	if (append)
+		gtk_tree_store_append(pdl->model, &iter, (parent ? &parent_iter : NULL));
+	else
+		iter = child;
+
+	if (service->flags & XMPP_DISCO_BROWSE) {
+		GtkTreeRowReference *rr;
+		GtkTreePath *path;
+
+		gtk_tree_store_append(pdl->model, &child, &iter);
+
+		path = gtk_tree_model_get_path(GTK_TREE_MODEL(pdl->model), &iter);
+		rr = gtk_tree_row_reference_new(GTK_TREE_MODEL(pdl->model), path);
+		g_hash_table_insert(pdl->services, service, rr);
+		gtk_tree_path_free(path);
+	}
+
+	if (service->type == XMPP_DISCO_SERVICE_TYPE_GATEWAY && service->gateway_type) {
+		char *tmp = g_strconcat(service->gateway_type, ".png", NULL);
+		filename = g_build_filename(DATADIR, "pixmaps", "pidgin", "protocols", "16", tmp, NULL);
+		g_free(tmp);
+#if 0
+	} else if (service->type == XMPP_DISCO_SERVICE_TYPE_USER) {
+		filename = g_build_filename(DATADIR, "pixmaps", "pidgin", "status", "16", "person.png", NULL);
+#endif
+	} else if (service->type == XMPP_DISCO_SERVICE_TYPE_CHAT)
+		filename = g_build_filename(DATADIR, "pixmaps", "pidgin", "status", "16", "chat.png", NULL);
+
+	if (filename) {
+		pixbuf = gdk_pixbuf_new_from_file(filename, NULL);
+		g_free(filename);
+	}
+
+	gtk_tree_store_set(pdl->model, &iter,
+			PIXBUF_COLUMN, pixbuf,
+			NAME_COLUMN, service->name,
+			DESCRIPTION_COLUMN, service->description,
+			SERVICE_COLUMN, service,
+			-1);
+
+	if (pixbuf)
+		g_object_unref(pixbuf);
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/pidgin/plugins/disco/gtkdisco.h	Mon Jun 08 18:28:31 2009 +0000
@@ -0,0 +1,80 @@
+/* pidgin
+ *
+ * Pidgin is the legal property of its developers, whose names are too numerous
+ * to list here.  Please refer to the COPYRIGHT file distributed with this
+ * source distribution.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02111-1301 USA
+ */
+
+#ifndef PIDGIN_XMPP_DISCO_UI_H
+#define PIDGIN_XMPP_DISCO_UI_H
+
+typedef struct _PidginDiscoDialog PidginDiscoDialog;
+typedef struct _PidginDiscoList PidginDiscoList;
+
+#include "xmppdisco.h"
+
+struct _PidginDiscoDialog {
+	GtkWidget *window;
+	GtkWidget *account_widget;
+
+	GtkWidget *sw;
+	GtkWidget *progress;
+
+	GtkWidget *stop_button;
+	GtkWidget *browse_button;
+	GtkWidget *register_button;
+	GtkWidget *add_button;
+	GtkWidget *close_button;
+	XmppDiscoService *selected;
+
+	PurpleAccount *account;
+	PidginDiscoList *discolist;
+};
+
+struct _PidginDiscoList {
+	PurpleConnection *pc;
+	gboolean in_progress;
+	const gchar *server;
+
+	gint ref;
+	guint fetch_count;
+
+	PidginDiscoDialog *dialog;
+	GtkTreeStore *model;
+	GtkWidget *tree;
+	GHashTable *services;
+};
+
+/**
+ * Shows a new service discovery dialog.
+ */
+PidginDiscoDialog *pidgin_disco_dialog_new(void);
+
+/**
+ * Destroy all the open dialogs (called when unloading the plugin).
+ */
+void pidgin_disco_dialogs_destroy_all(void);
+void pidgin_disco_signed_off_cb(PurpleConnection *pc);
+
+void pidgin_disco_add_service(PidginDiscoList *list, XmppDiscoService *service,
+                              XmppDiscoService *parent);
+
+PidginDiscoList *pidgin_disco_list_ref(PidginDiscoList *list);
+void pidgin_disco_list_unref(PidginDiscoList *list);
+
+void pidgin_disco_list_set_in_progress(PidginDiscoList *list, gboolean in_progress);
+#endif /* PIDGIN_XMPP_DISCO_UI_H */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/pidgin/plugins/disco/xmppdisco.c	Mon Jun 08 18:28:31 2009 +0000
@@ -0,0 +1,680 @@
+/*
+ * Purple - XMPP Service Disco Browser
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02111-1301 USA
+ *
+ */
+
+/* TODO list (a little bit of a brain dump):
+	* Support more actions than "register" and "add" based on context.
+		- Subscribe to pubsub nodes (just...because?)
+		- Execute ad-hoc commands
+		- Change 'Register' to 'Unregister' if we're registered?
+		- Administer MUCs
+	* Enumerate pubsub node contents.
+		- PEP too? (useful development tool at times)
+	* See if we can better handle the ad-hoc commands that ejabberd returns
+	  when disco'ing a server as an administrator:
+from disco#items:
+	<item jid='darkrain42.org' node='announce' name='Announcements'/>
+disco#info:
+	<iq from='darkrain42.org' type='result'>
+		<query xmlns='http://jabber.org/protocol/disco#info' node='announce'/>
+	</iq>
+	* For services that are a JID w/o a node, handle fetching ad-hoc commands?
+*/
+
+#include "internal.h"
+#include "pidgin.h"
+
+#include "debug.h"
+#include "signals.h"
+#include "version.h"
+
+#include "gtkconv.h"
+#include "gtkimhtml.h"
+#include "gtkplugin.h"
+
+#include "xmppdisco.h"
+#include "gtkdisco.h"
+
+/* Variables */
+PurplePlugin *my_plugin = NULL;
+static GHashTable *iq_callbacks = NULL;
+static gboolean iq_listening = FALSE;
+
+typedef void (*XmppIqCallback)(PurpleConnection *pc, const char *type,
+                               const char *id, const char *from, xmlnode *iq,
+                               gpointer data);
+
+struct xmpp_iq_cb_data
+{
+	gpointer context;
+	PurpleConnection *pc;
+	XmppIqCallback cb;
+};
+
+struct item_data {
+	PidginDiscoList *list;
+	XmppDiscoService *parent;
+	char *name;
+	char *node; /* disco#info replies don't always include the node */
+};
+
+static char*
+generate_next_id()
+{
+	static guint32 index = 0;
+
+	if (index == 0) {
+		do {
+			index = g_random_int();
+		} while (index == 0);
+	}
+
+	return g_strdup_printf("purpledisco%x", index++);
+}
+
+static gboolean
+remove_iq_callbacks_by_pc(gpointer key, gpointer value, gpointer user_data)
+{
+	struct xmpp_iq_cb_data *cb_data = value;
+
+	if (cb_data && cb_data->pc == user_data) {
+		/*
+		 * This is a hack. All the IQ callback datas in this code are
+		 * the same structure so that we can free them here. Ideally they'd
+		 * be objects and this would be polymorphic. That's overkill, here.
+		 */
+		struct item_data *item_data = cb_data->context;
+
+		if (item_data) {
+			pidgin_disco_list_unref(item_data->list);
+			g_free(item_data->name);
+			g_free(item_data->node);
+			g_free(item_data);
+		}
+
+		return TRUE;
+	} else
+		return FALSE;
+}
+
+static gboolean
+xmpp_iq_received(PurpleConnection *pc, const char *type, const char *id,
+                 const char *from, xmlnode *iq)
+{
+	struct xmpp_iq_cb_data *cb_data;
+
+	cb_data = g_hash_table_lookup(iq_callbacks, id);
+	if (!cb_data)
+		return FALSE;
+
+	cb_data->cb(cb_data->pc, type, id, from, iq, cb_data->context);
+
+	g_hash_table_remove(iq_callbacks, id);
+	if (g_hash_table_size(iq_callbacks) == 0) {
+		PurplePlugin *prpl = purple_connection_get_prpl(pc);
+		iq_listening = FALSE;
+		purple_signal_disconnect(prpl, "jabber-receiving-iq", my_plugin,
+		                         PURPLE_CALLBACK(xmpp_iq_received));
+	}
+
+	/* Om nom nom nom */
+	return TRUE;
+}
+
+static void
+xmpp_iq_register_callback(PurpleConnection *pc, gchar *id, gpointer data,
+                          XmppIqCallback cb)
+{
+	struct xmpp_iq_cb_data *cbdata = g_new0(struct xmpp_iq_cb_data, 1);
+
+	cbdata->context = data;
+	cbdata->cb = cb;
+	cbdata->pc = pc;
+
+	g_hash_table_insert(iq_callbacks, id, cbdata);
+
+	if (!iq_listening) {
+		PurplePlugin *prpl = purple_plugins_find_with_id(XMPP_PLUGIN_ID);
+		iq_listening = TRUE;
+		purple_signal_connect(prpl, "jabber-receiving-iq", my_plugin,
+		                      PURPLE_CALLBACK(xmpp_iq_received), NULL);
+	}
+}
+
+static void
+xmpp_disco_info_do(PurpleConnection *pc, gpointer cbdata, const char *jid,
+                   const char *node, XmppIqCallback cb)
+{
+	xmlnode *iq, *query;
+	char *id = generate_next_id();
+
+	iq = xmlnode_new("iq");
+	xmlnode_set_attrib(iq, "type", "get");
+	xmlnode_set_attrib(iq, "to", jid);
+	xmlnode_set_attrib(iq, "id", id);
+
+	query = xmlnode_new_child(iq, "query");
+	xmlnode_set_namespace(query, NS_DISCO_INFO);
+	if (node)
+		xmlnode_set_attrib(query, "node", node);
+
+	/* Steals id */
+	xmpp_iq_register_callback(pc, id, cbdata, cb);
+
+	purple_signal_emit(purple_connection_get_prpl(pc), "jabber-sending-xmlnode",
+	                   pc, &iq);
+	if (iq != NULL)
+		xmlnode_free(iq);
+}
+
+static void
+xmpp_disco_items_do(PurpleConnection *pc, gpointer cbdata, const char *jid,
+                    const char *node, XmppIqCallback cb)
+{
+	xmlnode *iq, *query;
+	char *id = generate_next_id();
+
+	iq = xmlnode_new("iq");
+	xmlnode_set_attrib(iq, "type", "get");
+	xmlnode_set_attrib(iq, "to", jid);
+	xmlnode_set_attrib(iq, "id", id);
+
+	query = xmlnode_new_child(iq, "query");
+	xmlnode_set_namespace(query, NS_DISCO_ITEMS);
+	if (node)
+		xmlnode_set_attrib(query, "node", node);
+
+	/* Steals id */
+	xmpp_iq_register_callback(pc, id, cbdata, cb);
+
+	purple_signal_emit(purple_connection_get_prpl(pc), "jabber-sending-xmlnode",
+	                   pc, &iq);
+	if (iq != NULL)
+		xmlnode_free(iq);
+}
+
+static XmppDiscoServiceType
+disco_service_type_from_identity(xmlnode *identity)
+{
+	const char *category, *type;
+
+	if (!identity)
+		return XMPP_DISCO_SERVICE_TYPE_OTHER;
+
+	category = xmlnode_get_attrib(identity, "category");
+	type = xmlnode_get_attrib(identity, "type");
+
+	if (!category)
+		return XMPP_DISCO_SERVICE_TYPE_OTHER;
+
+	if (g_str_equal(category, "conference"))
+		return XMPP_DISCO_SERVICE_TYPE_CHAT;
+	else if (g_str_equal(category, "directory"))
+		return XMPP_DISCO_SERVICE_TYPE_DIRECTORY;
+	else if (g_str_equal(category, "gateway"))
+		return XMPP_DISCO_SERVICE_TYPE_GATEWAY;
+	else if (g_str_equal(category, "pubsub")) {
+		if (!type || g_str_equal(type, "collection"))
+			return XMPP_DISCO_SERVICE_TYPE_PUBSUB_COLLECTION;
+		else if (g_str_equal(type, "leaf"))
+			return XMPP_DISCO_SERVICE_TYPE_PUBSUB_LEAF;
+		else if (g_str_equal(type, "service"))
+			return XMPP_DISCO_SERVICE_TYPE_OTHER;
+		else {
+			purple_debug_warning("xmppdisco", "Unknown pubsub type '%s'\n", type);
+			return XMPP_DISCO_SERVICE_TYPE_OTHER;
+		}
+	}
+
+	return XMPP_DISCO_SERVICE_TYPE_OTHER;
+}
+
+static const struct {
+	const char *from;
+	const char *to;
+} disco_type_mappings[] = {
+	{ "gadu-gadu", "gadu-gadu" }, /* the prpl is prpl-gg, but list_icon returns "gadu-gadu" */
+	{ "sametime",  "meanwhile" },
+	{ "myspaceim", "myspace" },
+	{ "xmpp",      "jabber" }, /* prpl-jabber (mentioned in case the prpl is renamed so this line will match) */
+	{ NULL,        NULL }
+};
+
+static const gchar *
+disco_type_from_string(const gchar *str)
+{
+	int i = 0;
+
+	g_return_val_if_fail(str != NULL, "");
+
+	for ( ; disco_type_mappings[i].from; ++i) {
+		if (!strcasecmp(str, disco_type_mappings[i].from))
+			return disco_type_mappings[i].to;
+	}
+
+	/* fallback to the string itself */
+	return str;
+}
+
+static void
+got_info_cb(PurpleConnection *pc, const char *type, const char *id,
+            const char *from, xmlnode *iq, gpointer data)
+{
+	struct item_data *item_data = data;
+	PidginDiscoList *list = item_data->list;
+	xmlnode *query;
+
+	--list->fetch_count;
+
+	if (!list->in_progress)
+		goto out;
+
+	if (g_str_equal(type, "result") &&
+			(query = xmlnode_get_child(iq, "query"))) {
+		xmlnode *identity = xmlnode_get_child(query, "identity");
+		XmppDiscoService *service;
+		xmlnode *feature;
+
+		service = g_new0(XmppDiscoService, 1);
+		service->list = item_data->list;
+		purple_debug_info("xmppdisco", "parent for %s is %p\n", from, item_data->parent);
+		service->parent = item_data->parent;
+		service->flags = 0;
+		service->type = disco_service_type_from_identity(identity);
+
+		if (item_data->node) {
+			if (item_data->name) {
+				service->name = item_data->name;
+				item_data->name = NULL;
+			} else
+				service->name = g_strdup(item_data->node);
+
+			service->node = item_data->node;
+			item_data->node = NULL;
+
+			if (service->type == XMPP_DISCO_SERVICE_TYPE_PUBSUB_COLLECTION)
+				service->flags |= XMPP_DISCO_BROWSE;
+		} else
+			service->name = g_strdup(from);
+
+		if (!service->node)
+			/* Only support adding JIDs, not JID+node combos */
+			service->flags |= XMPP_DISCO_ADD;
+
+		if (item_data->name) {
+			service->description = item_data->name;
+			item_data->name = NULL;
+		} else if (identity)
+			service->description = g_strdup(xmlnode_get_attrib(identity, "name"));
+
+		/* TODO: Overlap with service->name a bit */
+		service->jid = g_strdup(from);
+
+		for (feature = xmlnode_get_child(query, "feature"); feature;
+				feature = xmlnode_get_next_twin(feature)) {
+			const char *var;
+			if (!(var = xmlnode_get_attrib(feature, "var")))
+				continue;
+
+			if (g_str_equal(var, NS_REGISTER))
+				service->flags |= XMPP_DISCO_REGISTER;
+			else if (g_str_equal(var, NS_DISCO_ITEMS))
+				service->flags |= XMPP_DISCO_BROWSE;
+			else if (g_str_equal(var, NS_MUC)) {
+				service->flags |= XMPP_DISCO_BROWSE;
+				service->type = XMPP_DISCO_SERVICE_TYPE_CHAT;
+			}
+		}
+
+		if (service->type == XMPP_DISCO_SERVICE_TYPE_GATEWAY)
+			service->gateway_type = g_strdup(disco_type_from_string(
+					xmlnode_get_attrib(identity, "type")));
+
+		pidgin_disco_add_service(list, service, service->parent);
+	}
+
+out:
+	if (list->fetch_count == 0)
+		pidgin_disco_list_set_in_progress(list, FALSE);
+
+	g_free(item_data->name);
+	g_free(item_data->node);
+	g_free(item_data);
+	pidgin_disco_list_unref(list);
+}
+
+static void
+got_items_cb(PurpleConnection *pc, const char *type, const char *id,
+             const char *from, xmlnode *iq, gpointer data)
+{
+	struct item_data *item_data = data;
+	PidginDiscoList *list = item_data->list;
+	xmlnode *query;
+	gboolean has_items = FALSE;
+
+	--list->fetch_count;
+
+	if (!list->in_progress)
+		goto out;
+
+	if (g_str_equal(type, "result") &&
+			(query = xmlnode_get_child(iq, "query"))) {
+		xmlnode *item;
+
+		for (item = xmlnode_get_child(query, "item"); item;
+				item = xmlnode_get_next_twin(item)) {
+			const char *jid = xmlnode_get_attrib(item, "jid");
+			const char *name = xmlnode_get_attrib(item, "name");
+			const char *node = xmlnode_get_attrib(item, "node");
+
+			has_items = TRUE;
+
+			if (item_data->parent->type == XMPP_DISCO_SERVICE_TYPE_CHAT) {
+				/* This is a hacky first-order approximation. Any MUC
+				 * component that has a >1 level hierarchy (a Yahoo MUC
+				 * transport component probably does) will violate this.
+				 *
+				 * On the other hand, this is better than querying all the
+				 * chats at conference.jabber.org to enumerate them.
+				 */
+				XmppDiscoService *service = g_new0(XmppDiscoService, 1);
+				service->list = item_data->list;
+				service->parent = item_data->parent;
+				service->flags = XMPP_DISCO_ADD;
+				service->type = XMPP_DISCO_SERVICE_TYPE_CHAT;
+
+				service->name = g_strdup(name);
+				service->jid = g_strdup(jid);
+				service->node = g_strdup(node);
+				pidgin_disco_add_service(list, service, item_data->parent);
+			} else {
+				struct item_data *item_data2 = g_new0(struct item_data, 1);
+
+				item_data2->list = item_data->list;
+				item_data2->parent = item_data->parent;
+				item_data2->name = g_strdup(name);
+				item_data2->node = g_strdup(node);
+
+				++list->fetch_count;
+				pidgin_disco_list_ref(list);
+				xmpp_disco_info_do(pc, item_data2, jid, node, got_info_cb);
+			}
+		}
+	}
+
+	if (!has_items)
+		pidgin_disco_add_service(list, NULL, item_data->parent);
+
+out:
+	if (list->fetch_count == 0)
+		pidgin_disco_list_set_in_progress(list, FALSE);
+
+	g_free(item_data);
+	pidgin_disco_list_unref(list);
+}
+
+static void
+server_items_cb(PurpleConnection *pc, const char *type, const char *id,
+                const char *from, xmlnode *iq, gpointer data)
+{
+	struct item_data *cb_data = data;
+	PidginDiscoList *list = cb_data->list;
+	xmlnode *query;
+
+	g_free(cb_data);
+	--list->fetch_count;
+
+	if (g_str_equal(type, "result") &&
+			(query = xmlnode_get_child(iq, "query"))) {
+		xmlnode *item;
+
+		for (item = xmlnode_get_child(query, "item"); item;
+				item = xmlnode_get_next_twin(item)) {
+			const char *jid = xmlnode_get_attrib(item, "jid");
+			const char *name = xmlnode_get_attrib(item, "name");
+			const char *node = xmlnode_get_attrib(item, "node");
+			struct item_data *item_data;
+
+			if (!jid)
+				continue;
+
+			item_data = g_new0(struct item_data, 1);
+			item_data->list = list;
+			item_data->name = g_strdup(name);
+			item_data->node = g_strdup(node);
+
+			++list->fetch_count;
+			pidgin_disco_list_ref(list);
+			xmpp_disco_info_do(pc, item_data, jid, node, got_info_cb);
+		}
+	}
+
+	if (list->fetch_count == 0)
+		pidgin_disco_list_set_in_progress(list, FALSE);
+
+	pidgin_disco_list_unref(list);
+}
+
+static void
+server_info_cb(PurpleConnection *pc, const char *type, const char *id,
+               const char *from, xmlnode *iq, gpointer data)
+{
+	struct item_data *cb_data = data;
+	PidginDiscoList *list = cb_data->list;
+	xmlnode *query;
+	xmlnode *error;
+	gboolean items = FALSE;
+
+	--list->fetch_count;
+
+	if (g_str_equal(type, "result") &&
+			(query = xmlnode_get_child(iq, "query"))) {
+		xmlnode *feature;
+
+		for (feature = xmlnode_get_child(query, "feature"); feature;
+				feature = xmlnode_get_next_twin(feature)) {
+			const char *var = xmlnode_get_attrib(feature, "var");
+			if (purple_strequal(var, NS_DISCO_ITEMS)) {
+				items = TRUE;
+				break;
+			}
+		}
+
+		if (items) {
+			xmpp_disco_items_do(pc, cb_data, from, NULL /* node */, server_items_cb);
+			++list->fetch_count;
+			pidgin_disco_list_ref(list);
+		}
+	}
+	else {
+		error = xmlnode_get_child(iq, "error");
+		if (xmlnode_get_child(error, "remote-server-not-found")
+		 || xmlnode_get_child(error, "jid-malformed")) {
+			purple_notify_error(my_plugin, _("Error"),
+			                    _("Server does not exist"),
+ 			                    NULL);
+		}
+		else {
+			purple_notify_error(my_plugin, _("Error"),
+			                    _("Server does not support service discovery"),
+			                    NULL);
+		}
+		pidgin_disco_list_set_in_progress(list, FALSE);
+		g_free(cb_data);
+	}
+
+	pidgin_disco_list_unref(list);
+}
+
+void xmpp_disco_start(PidginDiscoList *list)
+{
+	struct item_data *cb_data;
+
+	g_return_if_fail(list != NULL);
+
+	++list->fetch_count;
+	pidgin_disco_list_ref(list);
+
+	cb_data = g_new0(struct item_data, 1);
+	cb_data->list = list;
+
+	xmpp_disco_info_do(list->pc, cb_data, list->server, NULL, server_info_cb);
+}
+
+void xmpp_disco_service_expand(XmppDiscoService *service)
+{
+	struct item_data *item_data;
+
+	g_return_if_fail(service != NULL);
+
+	if (service->expanded)
+		return;
+
+	item_data = g_new0(struct item_data, 1);
+	item_data->list = service->list;
+	item_data->parent = service;
+
+	++service->list->fetch_count;
+	pidgin_disco_list_ref(service->list);
+
+	pidgin_disco_list_set_in_progress(service->list, TRUE);
+
+	xmpp_disco_items_do(service->list->pc, item_data, service->jid, service->node,
+	                    got_items_cb);
+	service->expanded = TRUE;
+}
+
+void xmpp_disco_service_register(XmppDiscoService *service)
+{
+	xmlnode *iq, *query;
+	char *id = generate_next_id();
+
+	iq = xmlnode_new("iq");
+	xmlnode_set_attrib(iq, "type", "get");
+	xmlnode_set_attrib(iq, "to", service->jid);
+	xmlnode_set_attrib(iq, "id", id);
+
+	query = xmlnode_new_child(iq, "query");
+	xmlnode_set_namespace(query, NS_REGISTER);
+
+	purple_signal_emit(purple_connection_get_prpl(service->list->pc),
+			"jabber-sending-xmlnode", service->list->pc, &iq);
+	if (iq != NULL)
+		xmlnode_free(iq);
+	g_free(id);
+}
+
+static void
+create_dialog(PurplePluginAction *action)
+{
+	pidgin_disco_dialog_new();
+}
+
+static GList *
+actions(PurplePlugin *plugin, gpointer context)
+{
+	GList *l = NULL;
+	PurplePluginAction *action = NULL;
+
+	action = purple_plugin_action_new(_("XMPP Service Discovery"),
+	                                  create_dialog);
+	l = g_list_prepend(l, action);
+
+	return l;
+}
+
+static void
+signed_off_cb(PurpleConnection *pc, gpointer unused)
+{
+	/* Deal with any dialogs */
+	pidgin_disco_signed_off_cb(pc);
+
+	/* Remove all the IQ callbacks for this connection */
+	g_hash_table_foreach_remove(iq_callbacks, remove_iq_callbacks_by_pc, pc);
+}
+
+static gboolean
+plugin_load(PurplePlugin *plugin)
+{
+	PurplePlugin *xmpp_prpl;
+
+	my_plugin = plugin;
+
+	xmpp_prpl = purple_plugins_find_with_id(XMPP_PLUGIN_ID);
+	if (NULL == xmpp_prpl)
+		return FALSE;
+
+	purple_signal_connect(purple_connections_get_handle(), "signing-off",
+	                      plugin, PURPLE_CALLBACK(signed_off_cb), NULL);
+
+	iq_callbacks = g_hash_table_new_full(g_str_hash, g_str_equal, g_free, g_free);
+
+	return TRUE;
+}
+
+static gboolean
+plugin_unload(PurplePlugin *plugin)
+{
+	g_hash_table_destroy(iq_callbacks);
+	iq_callbacks = NULL;
+
+	purple_signals_disconnect_by_handle(plugin);
+	pidgin_disco_dialogs_destroy_all();
+
+	return TRUE;
+}
+
+static PurplePluginInfo info =
+{
+	PURPLE_PLUGIN_MAGIC,
+	PURPLE_MAJOR_VERSION,
+	PURPLE_MINOR_VERSION,
+	PURPLE_PLUGIN_STANDARD,
+	PIDGIN_PLUGIN_TYPE,
+	0,
+	NULL,
+	PURPLE_PRIORITY_DEFAULT,
+	"gtk-xmppdisco",
+	N_("XMPP Service Discovery"),
+	DISPLAY_VERSION,
+	N_("Allows browsing and registering services."),
+	N_("This plugin is useful for registering with legacy transports or other "
+	   "XMPP services."),
+	"Paul Aurich <paul@darkrain42.org>",
+	PURPLE_WEBSITE,
+	plugin_load,
+	plugin_unload,
+	NULL,               /**< destroy    */
+	NULL,               /**< ui_info    */
+	NULL,               /**< extra_info */
+	NULL,               /**< prefs_info */
+	actions,
+
+	/* padding */
+	NULL,
+	NULL,
+	NULL,
+	NULL
+};
+
+static void
+init_plugin(PurplePlugin *plugin)
+{
+}
+
+PURPLE_INIT_PLUGIN(xmppdisco, init_plugin, info)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/pidgin/plugins/disco/xmppdisco.h	Mon Jun 08 18:28:31 2009 +0000
@@ -0,0 +1,107 @@
+/* pidgin
+ *
+ * Pidgin is the legal property of its developers, whose names are too numerous
+ * to list here.  Please refer to the COPYRIGHT file distributed with this
+ * source distribution.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02111-1301 USA
+ */
+
+#ifndef PIDGIN_XMPP_DISCO_H
+#define PIDGIN_XMPP_DISCO_H
+
+typedef struct _XmppDiscoService XmppDiscoService;
+
+#include "gtkdisco.h"
+
+#define XMPP_PLUGIN_ID      "prpl-jabber"
+#define NS_DISCO_INFO       "http://jabber.org/protocol/disco#info"
+#define NS_DISCO_ITEMS      "http://jabber.org/protocol/disco#items"
+#define NS_MUC              "http://jabber.org/protocol/muc"
+#define NS_REGISTER         "jabber:iq:register"
+
+#include "plugin.h"
+extern PurplePlugin *my_plugin;
+
+/**
+ * The types of services.
+ */
+typedef enum
+{
+	XMPP_DISCO_SERVICE_TYPE_UNSET,
+	/**
+	 * A registerable gateway to another protocol. An example would be
+	 * XMPP legacy transports.
+	 */
+	XMPP_DISCO_SERVICE_TYPE_GATEWAY,
+
+	/**
+	 * A directory (e.g. allows the user to search for other users).
+	 */
+	XMPP_DISCO_SERVICE_TYPE_DIRECTORY,
+
+	/**
+	 * A chat (multi-user conversation).
+	 */
+	XMPP_DISCO_SERVICE_TYPE_CHAT,
+
+	/**
+	 * A pubsub collection (contains nodes)
+	 */
+	XMPP_DISCO_SERVICE_TYPE_PUBSUB_COLLECTION,
+
+	/**
+	 * A pubsub leaf (contains stuff, not nodes).
+	 */
+	XMPP_DISCO_SERVICE_TYPE_PUBSUB_LEAF,
+
+	/**
+	 * Something else. Do we need more categories?
+	 */
+	XMPP_DISCO_SERVICE_TYPE_OTHER
+} XmppDiscoServiceType;
+
+/**
+ * The flags of services.
+ */
+typedef enum
+{
+	XMPP_DISCO_NONE          = 0x0000,
+	XMPP_DISCO_ADD           = 0x0001, /**< Supports an 'add' operation */
+	XMPP_DISCO_BROWSE        = 0x0002, /**< Supports browsing */
+	XMPP_DISCO_REGISTER      = 0x0004  /**< Supports a 'register' operation */
+} XmppDiscoServiceFlags;
+
+struct _XmppDiscoService {
+	PidginDiscoList *list;
+	gchar *name;
+	gchar *description;
+
+	gchar *gateway_type;
+	XmppDiscoServiceType type;
+	XmppDiscoServiceFlags flags;
+
+	XmppDiscoService *parent;
+	gchar *jid;
+	gchar *node;
+	gboolean expanded;
+};
+
+void xmpp_disco_start(PidginDiscoList *list);
+
+void xmpp_disco_service_expand(XmppDiscoService *service);
+void xmpp_disco_service_register(XmppDiscoService *service);
+
+#endif /* PIDGIN_XMPP_DISCO_H */
--- a/pidgin/plugins/pidginrc.c	Mon May 25 19:27:33 2009 +0000
+++ b/pidgin/plugins/pidginrc.c	Mon Jun 08 18:28:31 2009 +0000
@@ -28,34 +28,31 @@
 static guint pref_callback;
 
 static const gchar *color_prefs[] = {
-	"/plugins/gtk/purplerc/color/GtkWidget::cursor-color",
-	"/plugins/gtk/purplerc/color/GtkWidget::secondary-cursor-color",
 	"/plugins/gtk/purplerc/color/GtkIMHtml::hyperlink-color",
 	"/plugins/gtk/purplerc/color/GtkIMHtml::hyperlink-visited-color",
 	"/plugins/gtk/purplerc/color/GtkIMHtml::send-name-color",
 	"/plugins/gtk/purplerc/color/GtkIMHtml::receive-name-color",
 	"/plugins/gtk/purplerc/color/GtkIMHtml::highlight-name-color",
-	"/plugins/gtk/purplerc/color/GtkIMHtml::action-name-color"
+	"/plugins/gtk/purplerc/color/GtkIMHtml::action-name-color",
+	"/plugins/gtk/purplerc/color/GtkIMHtml::typing-notification-color"
 };
 static const gchar *color_prefs_set[] = {
-	"/plugins/gtk/purplerc/set/color/GtkWidget::cursor-color",
-	"/plugins/gtk/purplerc/set/color/GtkWidget::secondary-cursor-color",
 	"/plugins/gtk/purplerc/set/color/GtkIMHtml::hyperlink-color",
 	"/plugins/gtk/purplerc/set/color/GtkIMHtml::hyperlink-visited-color",
 	"/plugins/gtk/purplerc/set/color/GtkIMHtml::send-name-color",
 	"/plugins/gtk/purplerc/set/color/GtkIMHtml::receive-name-color",
 	"/plugins/gtk/purplerc/set/color/GtkIMHtml::highlight-name-color",
-	"/plugins/gtk/purplerc/set/color/GtkIMHtml::action-name-color"
+	"/plugins/gtk/purplerc/set/color/GtkIMHtml::action-name-color",
+	"/plugins/gtk/purplerc/set/color/GtkIMHtml::typing-notification-color"
 };
 static const gchar *color_names[] = {
-	N_("Cursor Color"),
-	N_("Secondary Cursor Color"),
 	N_("Hyperlink Color"),
 	N_("Visited Hyperlink Color"),
 	N_("Sent Message Name Color"),
 	N_("Received Message Name Color"),
 	N_("Highlighted Message Name Color"),
-	N_("Action Message Name Color")
+	N_("Action Message Name Color"),
+	N_("Typing Notification Color")
 };
 static GtkWidget *color_widgets[G_N_ELEMENTS(color_prefs)];
 
@@ -126,6 +123,10 @@
 
 	g_string_append(style_string, "style \"purplerc_style\"\n{");
 
+	if(purple_prefs_get_bool("/plugins/gtk/purplerc/set/disable-typing-notification")) {
+		g_string_append(style_string, "\tGtkIMHtml::typing-notification-enable = 0\n");
+	}
+
 	for (i = 0; i < G_N_ELEMENTS(color_prefs); i++) {
 		if (purple_prefs_get_bool(color_prefs_set[i])) {
 			const gchar *pref;
@@ -349,103 +350,27 @@
 }
 
 static GtkWidget *
-purplerc_get_config_frame(PurplePlugin *plugin)
+purplerc_make_interface_vbox(void)
 {
-	/* Note: Intentionally not using the size group argument to the
-	 * pidgin_prefs_labeled_* functions they only add the text label to
-	 * the size group not the whole thing, which isn't what I want. */
+	GtkWidget *vbox = NULL, *hbox = NULL, *check = NULL;
+	GtkSizeGroup *labelsg = NULL;
 	gint i;
-	gchar *tmp;
-	GtkWidget *check = NULL, *widget = NULL;
-	GtkWidget *ret = NULL, *hbox = NULL, *frame = NULL;
-	GtkSizeGroup *labelsg = NULL, *widgetsg = NULL, *buttonsg = NULL;
-#ifndef _WIN32
-	const gchar *homepath = "$HOME";
-#else
-	const gchar *homepath = "\%APPDATA\%";
-#endif
-
-	ret = gtk_vbox_new(FALSE, PIDGIN_HIG_CAT_SPACE);
-	gtk_container_set_border_width(GTK_CONTAINER(ret), PIDGIN_HIG_BORDER);
-
-	labelsg  = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL);
-	widgetsg = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL);
-	buttonsg = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL);
-
-	frame = pidgin_make_frame(ret, _("General"));
-	/* interface font */
-	hbox = gtk_hbox_new(FALSE, PIDGIN_HIG_CAT_SPACE);
-	gtk_box_pack_start(GTK_BOX(frame), hbox, FALSE, FALSE, 0);
-
-	check = pidgin_prefs_checkbox(_("GTK+ Interface Font"),
-	                              "/plugins/gtk/purplerc/set/gtk-font-name",
-	                              hbox);
-	gtk_size_group_add_widget(labelsg, check);
-
-	widget = pidgin_pixbuf_button_from_stock("", GTK_STOCK_SELECT_FONT,
-	                                         PIDGIN_BUTTON_HORIZONTAL);
-	gtk_box_pack_start(GTK_BOX(hbox), widget, FALSE, FALSE, 0);
-	gtk_size_group_add_widget(widgetsg, widget);
-	gtk_widget_set_sensitive(widget,
-	                         purple_prefs_get_bool("/plugins/gtk/purplerc/set/gtk-font-name"));
-	g_signal_connect(G_OBJECT(check), "toggled",
-	                 G_CALLBACK(pidgin_toggle_sensitive), widget);
-	g_signal_connect(G_OBJECT(widget), "clicked",
-	                 G_CALLBACK(purplerc_set_font), GINT_TO_POINTER(-1));
 
-	/* key theme name */
-	hbox = gtk_hbox_new(FALSE, PIDGIN_HIG_CAT_SPACE);
-	gtk_box_pack_start(GTK_BOX(frame), hbox, FALSE, FALSE, 0);
-
-	check = pidgin_prefs_checkbox(_("GTK+ Text Shortcut Theme"),
-	                              "/plugins/gtk/purplerc/set/gtk-key-theme-name",
-	                              hbox);
-	gtk_size_group_add_widget(labelsg, check);
-
-	widget = pidgin_prefs_labeled_entry(hbox, "",
-	                                    "/plugins/gtk/purplerc/gtk-key-theme-name",
-	                                    NULL);
-	/*
-	gtk_size_group_add_widget(widgetsg, widget);
-	*/
-	gtk_widget_set_sensitive(widget,
-	                         purple_prefs_get_bool("/plugins/gtk/purplerc/set/gtk-key-theme-name"));
-	g_signal_connect(G_OBJECT(check), "toggled",
-	                 G_CALLBACK(pidgin_toggle_sensitive), widget);
+	vbox = gtk_vbox_new(FALSE, PIDGIN_HIG_CAT_SPACE);
+	labelsg = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL);
 
-	/*
-	for (i = 0; i < G_N_ELEMENTS(widget_bool_prefs); i++) {
-		hbox = gtk_hbox_new(FALSE, PIDGIN_HIG_CAT_SPACE);
-		gtk_box_pack_start(GTK_BOX(frame), hbox, FALSE, FALSE, 0);
-
-		check = pidgin_prefs_checkbox(_(widget_bool_names[i]),
-		                              widget_bool_prefs_set[i], hbox);
-		gtk_size_group_add_widget(labelsg, check);
+	gtk_container_set_border_width(GTK_CONTAINER(vbox), PIDGIN_HIG_BORDER);
 
-		widget_bool_widgets[i] = pidgin_prefs_checkbox("", widget_bool_prefs[i], hbox);
-		*
-		gtk_size_group_add_widget(widgetsb, widget_bool_widgets[i]);
-		*
-		gtk_widget_set_sensitive(widget_bool_widgets[i],
-		                         purple_prefs_get_bool(widget_bool_prefs_set[i]));
-		g_signal_connect(G_OBJECT(check), "toggled",
-		                 G_CALLBACK(pidgin_toggle_sensitive),
-		                 widget_bool_widgets[i]);
-	}
-	*/
-
-	frame = pidgin_make_frame(ret, _("Interface colors"));
-	/* imhtml stuff */
 	for (i = 0; i < G_N_ELEMENTS(color_prefs); i++) {
 		hbox = gtk_hbox_new(FALSE, PIDGIN_HIG_CAT_SPACE);
-		gtk_box_pack_start(GTK_BOX(frame), hbox, FALSE, FALSE, 0);
+		gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0);
 
 		check = pidgin_prefs_checkbox(_(color_names[i]),
 		                              color_prefs_set[i], hbox);
 		gtk_size_group_add_widget(labelsg, check);
 
-		color_widgets[i] = pidgin_pixbuf_button_from_stock("", GTK_STOCK_SELECT_COLOR, PIDGIN_BUTTON_HORIZONTAL);
-		gtk_size_group_add_widget(widgetsg, color_widgets[i]);
+		color_widgets[i] = pidgin_pixbuf_button_from_stock("",
+				GTK_STOCK_SELECT_COLOR, PIDGIN_BUTTON_HORIZONTAL);
 		gtk_box_pack_start(GTK_BOX(hbox), color_widgets[i], FALSE,
 		                   FALSE, 0);
 		gtk_widget_set_sensitive(color_widgets[i],
@@ -458,39 +383,51 @@
 		                 GINT_TO_POINTER(i));
 	}
 
-	frame = pidgin_make_frame(ret, _("Widget Sizes"));
-	/* widget size stuff */
-	for (i = 0; i < G_N_ELEMENTS(widget_size_prefs); i++) {
-		hbox = gtk_hbox_new(FALSE, PIDGIN_HIG_CAT_SPACE);
-		gtk_box_pack_start(GTK_BOX(frame), hbox, FALSE, FALSE, 0);
+	g_object_unref(labelsg);
+
+	return vbox;
+}
 
-		check = pidgin_prefs_checkbox(_(widget_size_names[i]),
-		                              widget_size_prefs_set[i], hbox);
-		gtk_size_group_add_widget(labelsg, check);
+static GtkWidget *
+purplerc_make_fonts_vbox(void)
+{
+	GtkWidget *vbox = NULL, *hbox = NULL, *check = NULL, *widget = NULL;
+	GtkSizeGroup *labelsg = NULL;
+	int i;
+
+	vbox = gtk_vbox_new(FALSE, PIDGIN_HIG_CAT_SPACE);
+	labelsg = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL);
+
+	gtk_container_set_border_width(GTK_CONTAINER(vbox), PIDGIN_HIG_BORDER);
 
-		widget_size_widgets[i] = pidgin_prefs_labeled_spin_button(hbox, "", widget_size_prefs[i], 0, 50, NULL);
-		/*
-		gtk_size_group_add_widget(widgetsg, widget_size_widgets[i]);
-		*/
-		gtk_widget_set_sensitive(widget_size_widgets[i],
-		                         purple_prefs_get_bool(widget_size_prefs_set[i]));
-		g_signal_connect(G_OBJECT(check), "toggled",
-		                 G_CALLBACK(pidgin_toggle_sensitive),
-		                 widget_size_widgets[i]);
-	}
+	hbox = gtk_hbox_new(FALSE, PIDGIN_HIG_CAT_SPACE);
+	gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0);
+
+	check = pidgin_prefs_checkbox(_("GTK+ Interface Font"),
+	                              "/plugins/gtk/purplerc/set/gtk-font-name",
+	                              hbox);
+	gtk_size_group_add_widget(labelsg, check);
 
-	frame = pidgin_make_frame(ret, _("Fonts"));
-	/* imhtml font stuff */
+	widget = pidgin_pixbuf_button_from_stock("", GTK_STOCK_SELECT_FONT,
+	                                         PIDGIN_BUTTON_HORIZONTAL);
+	gtk_box_pack_start(GTK_BOX(hbox), widget, FALSE, FALSE, 0);
+	gtk_widget_set_sensitive(widget,
+	                         purple_prefs_get_bool("/plugins/gtk/purplerc/set/gtk-font-name"));
+	g_signal_connect(G_OBJECT(check), "toggled",
+	                 G_CALLBACK(pidgin_toggle_sensitive), widget);
+	g_signal_connect(G_OBJECT(widget), "clicked",
+	                 G_CALLBACK(purplerc_set_font), GINT_TO_POINTER(-1));
+
 	for (i = 0; i < G_N_ELEMENTS(font_prefs); i++) {
 		hbox = gtk_hbox_new(FALSE, PIDGIN_HIG_CAT_SPACE);
-		gtk_box_pack_start(GTK_BOX(frame), hbox, FALSE, FALSE, 0);
+		gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0);
 
 		check = pidgin_prefs_checkbox(_(font_names[i]),
 		                              font_prefs_set[i], hbox);
 		gtk_size_group_add_widget(labelsg, check);
 
-		font_widgets[i] = pidgin_pixbuf_button_from_stock("", GTK_STOCK_SELECT_FONT, PIDGIN_BUTTON_HORIZONTAL);
-		gtk_size_group_add_widget(widgetsg, font_widgets[i]);
+		font_widgets[i] = pidgin_pixbuf_button_from_stock("",
+				GTK_STOCK_SELECT_FONT, PIDGIN_BUTTON_HORIZONTAL);
 		gtk_box_pack_start(GTK_BOX(hbox), font_widgets[i], FALSE,
 		                   FALSE, 0);
 		gtk_widget_set_sensitive(font_widgets[i],
@@ -503,6 +440,127 @@
 		                 GINT_TO_POINTER(i));
 	}
 
+	g_object_unref(labelsg);
+
+	return vbox;
+}
+
+static GtkWidget *
+purplerc_make_misc_vbox(void)
+{
+	/* Note: Intentionally not using the size group argument to the
+	 * pidgin_prefs_labeled_* functions they only add the text label to
+	 * the size group not the whole thing, which isn't what I want. */
+	GtkWidget *vbox = NULL, *hbox = NULL, *check = NULL, *widget = NULL;
+	GtkSizeGroup *labelsg = NULL;
+	int i;
+
+	vbox = gtk_vbox_new(FALSE, PIDGIN_HIG_CAT_SPACE);
+	labelsg = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL);
+
+	gtk_container_set_border_width(GTK_CONTAINER(vbox), PIDGIN_HIG_BORDER);
+
+	hbox = gtk_hbox_new(FALSE, PIDGIN_HIG_CAT_SPACE);
+	gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0);
+
+	check = pidgin_prefs_checkbox(_("GTK+ Text Shortcut Theme"),
+	                              "/plugins/gtk/purplerc/set/gtk-key-theme-name",
+	                              hbox);
+	gtk_size_group_add_widget(labelsg, check);
+
+	widget = pidgin_prefs_labeled_entry(hbox, "",
+	                                    "/plugins/gtk/purplerc/gtk-key-theme-name",
+	                                    NULL);
+	gtk_widget_set_sensitive(widget,
+	                         purple_prefs_get_bool("/plugins/gtk/purplerc/set/gtk-key-theme-name"));
+	g_signal_connect(G_OBJECT(check), "toggled",
+	                 G_CALLBACK(pidgin_toggle_sensitive), widget);
+
+	for (i = 0; i < G_N_ELEMENTS(widget_size_prefs); i++) {
+		hbox = gtk_hbox_new(FALSE, PIDGIN_HIG_CAT_SPACE);
+		gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0);
+
+		check = pidgin_prefs_checkbox(_(widget_size_names[i]),
+		                              widget_size_prefs_set[i], hbox);
+		gtk_size_group_add_widget(labelsg, check);
+
+		widget_size_widgets[i] = pidgin_prefs_labeled_spin_button(hbox, "", widget_size_prefs[i], 0, 50, NULL);
+		gtk_widget_set_sensitive(widget_size_widgets[i],
+		                         purple_prefs_get_bool(widget_size_prefs_set[i]));
+		g_signal_connect(G_OBJECT(check), "toggled",
+		                 G_CALLBACK(pidgin_toggle_sensitive),
+		                 widget_size_widgets[i]);
+	}
+
+	hbox = gtk_hbox_new(FALSE, PIDGIN_HIG_CAT_SPACE);
+	gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0);
+
+	check = pidgin_prefs_checkbox(_("Disable Typing Notification Text"),
+			"/plugins/gtk/purplerc/set/disable-typing-notification", hbox);
+
+	/* Widget boolean stuff */
+	/*
+	for (i = 0; i < G_N_ELEMENTS(widget_bool_prefs); i++) {
+		hbox = gtk_hbox_new(FALSE, PIDGIN_HIG_CAT_SPACE);
+		gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0);
+
+		check = pidgin_prefs_checkbox(_(widget_bool_names[i]),
+		                              widget_bool_prefs_set[i], hbox);
+		gtk_size_group_add_widget(labelsg, check);
+
+		widget_bool_widgets[i] = pidgin_prefs_checkbox("", widget_bool_prefs[i], hbox);
+
+		gtk_widget_set_sensitive(widget_bool_widgets[i],
+		                         purple_prefs_get_bool(widget_bool_prefs_set[i]));
+		g_signal_connect(G_OBJECT(check), "toggled",
+		                 G_CALLBACK(pidgin_toggle_sensitive),
+		                 widget_bool_widgets[i]);
+	}
+	*/
+
+	g_object_unref(labelsg);
+
+	return vbox;
+}
+
+static GtkWidget *
+purplerc_get_config_frame(PurplePlugin *plugin)
+{
+	gchar *tmp;
+	GtkWidget *check = NULL, *label = NULL;
+	GtkWidget *ret = NULL, *hbox = NULL, *frame = NULL, *note = NULL;
+#ifndef _WIN32
+	const gchar *homepath = "$HOME";
+#else
+	const gchar *homepath = "\%APPDATA\%";
+#endif
+
+	ret = gtk_vbox_new(FALSE, PIDGIN_HIG_CAT_SPACE);
+	note = gtk_notebook_new();
+	label = gtk_label_new(NULL);
+	hbox = gtk_hbox_new(FALSE, PIDGIN_HIG_CAT_SPACE);
+
+	gtk_container_set_border_width(GTK_CONTAINER(ret), PIDGIN_HIG_BORDER);
+
+	tmp = g_strdup_printf("<span weight=\"bold\">%s</span>", _("GTK+ Theme Control Settings"));
+	gtk_label_set_markup(GTK_LABEL(label), tmp);
+	g_free(tmp);
+
+	gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0);
+	gtk_box_pack_start(GTK_BOX(ret), hbox, FALSE, FALSE, 0);
+	gtk_box_pack_start(GTK_BOX(ret), note, FALSE, FALSE, 0);
+
+	label = gtk_label_new(_("Colors"));
+	gtk_notebook_insert_page(GTK_NOTEBOOK(note), purplerc_make_interface_vbox(), label, -1);
+
+	label = gtk_label_new(_("Fonts"));
+	gtk_notebook_insert_page(GTK_NOTEBOOK(note), purplerc_make_fonts_vbox(), label, -1);
+
+	label = gtk_label_new(_("Miscellaneous"));
+	gtk_notebook_insert_page(GTK_NOTEBOOK(note), purplerc_make_misc_vbox(), label, -1);
+
+	gtk_box_pack_start(GTK_BOX(ret), gtk_hseparator_new(), TRUE, TRUE, 0);
+
 	frame = pidgin_make_frame(ret, _("Gtkrc File Tools"));
 
 	hbox = gtk_hbox_new(FALSE, PIDGIN_HIG_CAT_SPACE);
@@ -512,22 +570,17 @@
 	                      homepath, G_DIR_SEPARATOR_S ".purple" G_DIR_SEPARATOR_S);
 	check = gtk_button_new_with_label(tmp);
 	g_free(tmp);
-	gtk_box_pack_start(GTK_BOX(hbox), check, FALSE, FALSE, 0);
-	gtk_size_group_add_widget(buttonsg, check);
+	gtk_box_pack_start(GTK_BOX(hbox), check, TRUE, TRUE, 0);
 	g_signal_connect(G_OBJECT(check), "clicked",
 	                 G_CALLBACK(purplerc_write), NULL);
 
 	check = gtk_button_new_with_label(_("Re-read gtkrc files"));
-	gtk_box_pack_start(GTK_BOX(hbox), check, FALSE, FALSE, 0);
-	gtk_size_group_add_widget(buttonsg, check);
+	gtk_box_pack_start(GTK_BOX(hbox), check, TRUE, TRUE, 0);
 	g_signal_connect(G_OBJECT(check), "clicked",
 	                 G_CALLBACK(purplerc_reread), NULL);
 
 	gtk_widget_show_all(ret);
 
-	g_object_unref(labelsg);
-	g_object_unref(widgetsg);
-	g_object_unref(buttonsg);
 
 	return ret;
 }
@@ -621,6 +674,15 @@
 		purple_prefs_add_bool(widget_bool_prefs_set[i], FALSE);
 	}
 	*/
+
+	purple_prefs_add_bool("/plugins/gtk/purplerc/disable-typing-notification", FALSE);
+	purple_prefs_add_bool("/plugins/gtk/purplerc/set/disable-typing-notification", FALSE);
+
+	/* remove old cursor color prefs */
+	purple_prefs_remove("/plugins/gtk/purplerc/color/GtkWidget::cursor-color");
+	purple_prefs_remove("/plugins/gtk/purplerc/color/GtkWidget::secondary-cursor-color");
+	purple_prefs_remove("/plugins/gtk/purplerc/set/color/GtkWidget::cursor-color");
+	purple_prefs_remove("/plugins/gtk/purplerc/set/color/GtkWidget::secondary-cursor-color");
 }
 
 PURPLE_INIT_PLUGIN(purplerc, purplerc_init, purplerc_info)
--- a/pidgin/plugins/themeedit-icon.h	Mon May 25 19:27:33 2009 +0000
+++ b/pidgin/plugins/themeedit-icon.h	Mon Jun 08 18:28:31 2009 +0000
@@ -1,2 +1,28 @@
+/* Pidgin
+ *
+ * Pidgin is the legal property of its developers, whose names are too numerous
+ * to list here.  Please refer to the COPYRIGHT file distributed with this
+ * source distribution.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02111-1301  USA
+ */
+
+#ifndef _THEMEEDIT_ICON_H_
+#define _THEMEEDIT_ICON_H_
+
 void pidgin_icon_theme_edit(PurplePluginAction *);
 
+#endif
+
--- a/pidgin/plugins/xmppconsole.c	Mon May 25 19:27:33 2009 +0000
+++ b/pidgin/plugins/xmppconsole.c	Mon Jun 08 18:28:31 2009 +0000
@@ -62,58 +62,62 @@
 
 	g_return_val_if_fail(node != NULL, NULL);
 
-	if(pretty && depth) {
+	if (pretty && depth) {
 		tab = g_strnfill(depth, '\t');
 		text = g_string_append(text, tab);
 	}
 
 	node_name = g_markup_escape_text(node->name, -1);
-	g_string_append_printf(text, "<font color='"
-			       BRACKET_COLOR "'>&lt;</font><font color='"
-			       TAG_COLOR "'><b>%s</b></font>", node_name);
+	g_string_append_printf(text,
+	                       "<font color='" BRACKET_COLOR "'>&lt;</font>"
+	                       "<font color='" TAG_COLOR "'><b>%s</b></font>",
+	                       node_name);
 
 	if (node->xmlns) {
-		if((!node->parent || 
-		    !node->parent->xmlns || 
-		    strcmp(node->xmlns, node->parent->xmlns)) &&
-		   strcmp(node->xmlns, "jabber:client"))
+		if ((!node->parent ||
+		     !node->parent->xmlns ||
+		     strcmp(node->xmlns, node->parent->xmlns)) &&
+		    strcmp(node->xmlns, "jabber:client"))
 		{
 			char *xmlns = g_markup_escape_text(node->xmlns, -1);
-			g_string_append_printf(text, " <font color='"
-					       ATTR_NAME_COLOR "'><b>xmlns</b></font>='<font color='"
-					       XMLNS_COLOR "'><b>%s</b></font>'", xmlns);
+			g_string_append_printf(text,
+			                       " <font color='" ATTR_NAME_COLOR "'><b>xmlns</b></font>="
+			                       "'<font color='" XMLNS_COLOR "'><b>%s</b></font>'",
+			                       xmlns);
 			g_free(xmlns);
 		}
 	}
-	for(c = node->child; c; c = c->next)
+	for (c = node->child; c; c = c->next)
 	{
-		if(c->type == XMLNODE_TYPE_ATTRIB) {
+		if (c->type == XMLNODE_TYPE_ATTRIB) {
 			esc = g_markup_escape_text(c->name, -1);
 			esc2 = g_markup_escape_text(c->data, -1);
-			g_string_append_printf(text, " <font color='"
-					       ATTR_NAME_COLOR "'><b>%s</b></font>='<font color='"
-					       ATTR_VALUE_COLOR "'>%s</font>'", esc, esc2);
+			g_string_append_printf(text,
+			                       " <font color='" ATTR_NAME_COLOR "'><b>%s</b></font>="
+			                       "'<font color='" ATTR_VALUE_COLOR "'>%s</font>'",
+			                       esc, esc2);
 			g_free(esc);
 			g_free(esc2);
-		} else if(c->type == XMLNODE_TYPE_TAG || c->type == XMLNODE_TYPE_DATA) {
-			if(c->type == XMLNODE_TYPE_DATA)
+		} else if (c->type == XMLNODE_TYPE_TAG || c->type == XMLNODE_TYPE_DATA) {
+			if (c->type == XMLNODE_TYPE_DATA)
 				pretty = FALSE;
 			need_end = TRUE;
 		}
 	}
 
-	if(need_end) {
-		g_string_append_printf(text, 
-			       "<font color='"BRACKET_COLOR"'>&gt;</font>%s", pretty ? "<br>" : "");
+	if (need_end) {
+		g_string_append_printf(text,
+		                       "<font color='"BRACKET_COLOR"'>&gt;</font>%s",
+		                       pretty ? "<br>" : "");
 
-		for(c = node->child; c; c = c->next)
+		for (c = node->child; c; c = c->next)
 		{
-			if(c->type == XMLNODE_TYPE_TAG) {
+			if (c->type == XMLNODE_TYPE_TAG) {
 				int esc_len;
 				esc = xmlnode_to_pretty_str(c, &esc_len, depth+1);
 				text = g_string_append_len(text, esc, esc_len);
 				g_free(esc);
-			} else if(c->type == XMLNODE_TYPE_DATA && c->data_sz > 0) {
+			} else if (c->type == XMLNODE_TYPE_DATA && c->data_sz > 0) {
 				esc = g_markup_escape_text(c->data, c->data_sz);
 				text = g_string_append(text, esc);
 				g_free(esc);
@@ -122,11 +126,14 @@
 
 		if(tab && pretty)
 			text = g_string_append(text, tab);
-		g_string_append_printf(text, "<font color='"BRACKET_COLOR"'>&lt;</font>/<font color='"
-				       TAG_COLOR"'><b>%s</b></font><font color='"BRACKET_COLOR
-				       "'>&gt;</font><br>", node_name);
+		g_string_append_printf(text,
+		                       "<font color='" BRACKET_COLOR "'>&lt;</font>/"
+		                       "<font color='" TAG_COLOR "'><b>%s</b></font>"
+		                       "<font color='" BRACKET_COLOR "'>&gt;</font><br>",
+		                       node_name);
 	} else {
-		g_string_append_printf(text, "/<font color='"BRACKET_COLOR"'>&gt;</font><br>");
+		g_string_append_printf(text,
+		                       "/<font color='" BRACKET_COLOR "'>&gt;</font><br>");
 	}
 
 	g_free(node_name);
@@ -163,10 +170,10 @@
 	if (!console || console->gc != gc)
 		return;
 	node = xmlnode_from_str(*packet, -1);
-		
+
 	if (!node)
 		return;
-	
+
 	str = xmlnode_to_pretty_str(node, NULL, 0);
 	formatted = g_strdup_printf("<body bgcolor='#dcecc4'><pre>%s</pre></body>", str);
 	gtk_imhtml_append_text(GTK_IMHTML(console->imhtml), formatted, 0);
@@ -204,37 +211,35 @@
 static void entry_changed_cb(GtkTextBuffer *buffer, void *data)
 {
 	char *xmlstr, *str;
-        GtkTextIter iter;
-        int wrapped_lines;
-        int lines;
-        GdkRectangle oneline;
-        int height;
-        int pad_top, pad_inside, pad_bottom;
+	GtkTextIter iter;
+	int wrapped_lines;
+	int lines;
+	GdkRectangle oneline;
+	int height;
+	int pad_top, pad_inside, pad_bottom;
 	GtkTextIter start, end;
 	xmlnode *node;
-	
-        wrapped_lines = 1;
-        gtk_text_buffer_get_start_iter(buffer, &iter);
-        gtk_text_view_get_iter_location(GTK_TEXT_VIEW(console->entry), &iter, &oneline);
-        while (gtk_text_view_forward_display_line(GTK_TEXT_VIEW(console->entry), &iter))
-                wrapped_lines++;
 
-        lines = gtk_text_buffer_get_line_count(buffer);
+	wrapped_lines = 1;
+	gtk_text_buffer_get_start_iter(buffer, &iter);
+	gtk_text_view_get_iter_location(GTK_TEXT_VIEW(console->entry), &iter, &oneline);
+	while (gtk_text_view_forward_display_line(GTK_TEXT_VIEW(console->entry), &iter))
+		wrapped_lines++;
+
+	lines = gtk_text_buffer_get_line_count(buffer);
 
-        /* Show a maximum of 64 lines */
-        lines = MIN(lines, 6);
-        wrapped_lines = MIN(wrapped_lines, 6);
+	/* Show a maximum of 64 lines */
+	lines = MIN(lines, 6);
+	wrapped_lines = MIN(wrapped_lines, 6);
 
-        pad_top = gtk_text_view_get_pixels_above_lines(GTK_TEXT_VIEW(console->entry));
-        pad_bottom = gtk_text_view_get_pixels_below_lines(GTK_TEXT_VIEW(console->entry));
-        pad_inside = gtk_text_view_get_pixels_inside_wrap(GTK_TEXT_VIEW(console->entry));
+	pad_top = gtk_text_view_get_pixels_above_lines(GTK_TEXT_VIEW(console->entry));
+	pad_bottom = gtk_text_view_get_pixels_below_lines(GTK_TEXT_VIEW(console->entry));
+	pad_inside = gtk_text_view_get_pixels_inside_wrap(GTK_TEXT_VIEW(console->entry));
 
-        height = (oneline.height + pad_top + pad_bottom) * lines;
-        height += (oneline.height + pad_inside) * (wrapped_lines - lines);
+	height = (oneline.height + pad_top + pad_bottom) * lines;
+	height += (oneline.height + pad_inside) * (wrapped_lines - lines);
 
-        gtk_widget_set_size_request(console->sw, -1, height+6);
-
-
+	gtk_widget_set_size_request(console->sw, -1, height + 6);
 
 	gtk_text_buffer_get_start_iter(buffer, &start);
 	gtk_text_buffer_get_end_iter(buffer, &end);
@@ -287,7 +292,7 @@
 	to_entry = gtk_entry_new();
 	gtk_entry_set_activates_default (GTK_ENTRY (to_entry), TRUE);
 	gtk_box_pack_start(GTK_BOX(hbox), to_entry, FALSE, FALSE, 0);
-	
+
 	hbox = gtk_hbox_new(FALSE, 3);
 	gtk_box_pack_start(GTK_BOX(GTK_DIALOG(dialog)->vbox), hbox, FALSE, FALSE, 0);
 	label = gtk_label_new("Type:");
@@ -302,7 +307,7 @@
 	gtk_combo_box_append_text(GTK_COMBO_BOX(type_combo), "error");
 	gtk_combo_box_set_active(GTK_COMBO_BOX(type_combo), 0);
 	gtk_box_pack_start(GTK_BOX(hbox), type_combo, FALSE, FALSE, 0);
-	
+
 	gtk_widget_show_all(GTK_DIALOG(dialog)->vbox);
 
 	result = gtk_dialog_run(GTK_DIALOG(dialog));
@@ -310,16 +315,16 @@
 		gtk_widget_destroy(dialog);
 		return;
 	}
-	
+
 	to = gtk_entry_get_text(GTK_ENTRY(to_entry));
 
-	stanza = g_strdup_printf("<iq %s%s%s id='console%x' type='%s'></iq>", 
+	stanza = g_strdup_printf("<iq %s%s%s id='console%x' type='%s'></iq>",
 				 to && *to ? "to='" : "",
 				 to && *to ? to : "",
 				 to && *to ? "'" : "",
 				 g_random_int(),
 				 gtk_combo_box_get_active_text(GTK_COMBO_BOX(type_combo)));
-	
+
 	buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(console->entry));
 	gtk_text_buffer_set_text(buffer, stanza, -1);
 	gtk_text_buffer_get_iter_at_offset(buffer, &iter, strstr(stanza, "</iq>") - stanza);
@@ -328,25 +333,24 @@
 
 	gtk_widget_destroy(dialog);
 	g_object_unref(sg);
-
 }
 
 static void presence_clicked_cb(GtkWidget *w, gpointer nul)
 {
-	GtkWidget *hbox, 
-  		  *to_entry, 
-		  *status_entry,
-		  *priority_entry,
-		  *label,
-   		  *show_combo,
-		  *type_combo;
+	GtkWidget *hbox;
+	GtkWidget *to_entry;
+	GtkWidget *status_entry;
+	GtkWidget *priority_entry;
+	GtkWidget *label;
+	GtkWidget *show_combo;
+	GtkWidget *type_combo;
 	GtkSizeGroup *sg = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL);
 	GtkTextIter iter;
 	GtkTextBuffer *buffer;
 	const char *to, *type, *status, *show, *priority;
 	int result;
 	char *stanza;
-	
+
 	GtkWidget *dialog = gtk_dialog_new_with_buttons("<presence/>",
 							GTK_WINDOW(console->window),
 							GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT,
@@ -370,7 +374,7 @@
 	to_entry = gtk_entry_new();
 	gtk_entry_set_activates_default (GTK_ENTRY (to_entry), TRUE);
 	gtk_box_pack_start(GTK_BOX(hbox), to_entry, FALSE, FALSE, 0);
-	
+
 	hbox = gtk_hbox_new(FALSE, 3);
 	gtk_box_pack_start(GTK_BOX(GTK_DIALOG(dialog)->vbox), hbox, FALSE, FALSE, 0);
 	label = gtk_label_new("Type:");
@@ -417,7 +421,6 @@
 	gtk_entry_set_activates_default (GTK_ENTRY (status_entry), TRUE);
 	gtk_box_pack_start(GTK_BOX(hbox), status_entry, FALSE, FALSE, 0);
 
-
 	hbox = gtk_hbox_new(FALSE, 3);
 	gtk_box_pack_start(GTK_BOX(GTK_DIALOG(dialog)->vbox), hbox, FALSE, FALSE, 0);
 
@@ -430,7 +433,6 @@
 	gtk_spin_button_set_value(GTK_SPIN_BUTTON(priority_entry), 0);
 	gtk_box_pack_start(GTK_BOX(hbox), priority_entry, FALSE, FALSE, 0);
 
-	
 	gtk_widget_show_all(GTK_DIALOG(dialog)->vbox);
 
 	result = gtk_dialog_run(GTK_DIALOG(dialog));
@@ -438,7 +440,7 @@
 		gtk_widget_destroy(dialog);
 		return;
 	}
-	
+
 	to = gtk_entry_get_text(GTK_ENTRY(to_entry));
 	type = gtk_combo_box_get_active_text(GTK_COMBO_BOX(type_combo));
 	if (!strcmp(type, "default"))
@@ -451,32 +453,30 @@
 	if (!strcmp(priority, "0"))
 		priority = "";
 
+	stanza = g_strdup_printf("<presence %s%s%s id='console%x' %s%s%s>"
+	                         "%s%s%s%s%s%s%s%s%s"
+	                         "</presence>",
+	                         *to ? "to='" : "",
+	                         *to ? to : "",
+	                         *to ? "'" : "",
+	                         g_random_int(),
 
+	                         *type ? "type='" : "",
+	                         *type ? type : "",
+	                         *type ? "'" : "",
 
-	stanza = g_strdup_printf("<presence %s%s%s id='console%x' %s%s%s>"
-				 "%s%s%s%s%s%s%s%s%s"
-				 "</presence>", 
-				 *to ? "to='" : "",
-				 *to ? to : "",
-				 *to ? "'" : "",
-				 g_random_int(),
-				 
-				 *type ? "type='" : "",
-				 *type ? type : "",
-				 *type ? "'" : "",
-				 
-				 *show ? "<show>" : "",
-				 *show ? show : "",
-				 *show ? "</show>" : "",
+	                         *show ? "<show>" : "",
+	                         *show ? show : "",
+	                         *show ? "</show>" : "",
 
-				 *status ? "<status>" : "",
-				 *status ? status : "",
-				 *status ? "</status>" : "",
-				       
-				 *priority ? "<priority>" : "",
-				 *priority ? priority : "",
-				 *priority ? "</priority>" : "");
-	
+	                         *status ? "<status>" : "",
+	                         *status ? status : "",
+	                         *status ? "</status>" : "",
+
+	                         *priority ? "<priority>" : "",
+	                         *priority ? priority : "",
+	                         *priority ? "</priority>" : "");
+
 	buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(console->entry));
 	gtk_text_buffer_set_text(buffer, stanza, -1);
 	gtk_text_buffer_get_iter_at_offset(buffer, &iter, strstr(stanza, "</presence>") - stanza);
@@ -489,13 +489,13 @@
 
 static void message_clicked_cb(GtkWidget *w, gpointer nul)
 {
-	GtkWidget *hbox, 
-		  *to_entry, 
-		  *body_entry, 
-   		  *thread_entry,
-		  *subject_entry,
-		  *label, 
-		  *type_combo;
+	GtkWidget *hbox;
+	GtkWidget *to_entry;
+	GtkWidget *body_entry;
+	GtkWidget *thread_entry;
+	GtkWidget *subject_entry;
+	GtkWidget *label;
+	GtkWidget *type_combo;
 	GtkSizeGroup *sg = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL);
 	GtkTextIter iter;
 	GtkTextBuffer *buffer;
@@ -554,7 +554,6 @@
 	gtk_entry_set_activates_default (GTK_ENTRY (body_entry), TRUE);
 	gtk_box_pack_start(GTK_BOX(hbox), body_entry, FALSE, FALSE, 0);
 
-
 	hbox = gtk_hbox_new(FALSE, 3);
 	gtk_box_pack_start(GTK_BOX(GTK_DIALOG(dialog)->vbox), hbox, FALSE, FALSE, 0);
 
@@ -578,7 +577,7 @@
 	thread_entry = gtk_entry_new();
 	gtk_entry_set_activates_default (GTK_ENTRY (thread_entry), TRUE);
 	gtk_box_pack_start(GTK_BOX(hbox), thread_entry, FALSE, FALSE, 0);
-	
+
 	gtk_widget_show_all(GTK_DIALOG(dialog)->vbox);
 
 	result = gtk_dialog_run(GTK_DIALOG(dialog));
@@ -586,34 +585,34 @@
 		gtk_widget_destroy(dialog);
 		return;
 	}
-	
+
 	to = gtk_entry_get_text(GTK_ENTRY(to_entry));
 	body = gtk_entry_get_text(GTK_ENTRY(body_entry));
 	thread = gtk_entry_get_text(GTK_ENTRY(thread_entry));
 	subject = gtk_entry_get_text(GTK_ENTRY(subject_entry));
 
 	stanza = g_strdup_printf("<message %s%s%s id='console%x' type='%s'>"
-				 "%s%s%s%s%s%s%s%s%s"
-				 "</message>",
-				 
-				 *to ? "to='" : "",
-				 *to ? to : "",
-				 *to ? "'" : "",
-				 g_random_int(),
-				 gtk_combo_box_get_active_text(GTK_COMBO_BOX(type_combo)),
-				 
-				 *body ? "<body>" : "",
-				 *body ? body : "",
-				 *body ? "</body>" : "",
-				 
-				 *subject ? "<subject>" : "",
-				 *subject ? subject : "",
-				 *subject ? "</subject>" : "",
-				 
-				 *thread ? "<thread>" : "",
-				 *thread ? thread : "",
-				 *thread ? "</thread>" : "");
-	
+	                         "%s%s%s%s%s%s%s%s%s"
+	                         "</message>",
+
+	                         *to ? "to='" : "",
+	                         *to ? to : "",
+	                         *to ? "'" : "",
+	                         g_random_int(),
+	                         gtk_combo_box_get_active_text(GTK_COMBO_BOX(type_combo)),
+
+	                         *body ? "<body>" : "",
+	                         *body ? body : "",
+	                         *body ? "</body>" : "",
+
+	                         *subject ? "<subject>" : "",
+	                         *subject ? subject : "",
+	                         *subject ? "</subject>" : "",
+
+	                         *thread ? "<thread>" : "",
+	                         *thread ? thread : "",
+	                         *thread ? "</thread>" : "");
+
 	buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(console->entry));
 	gtk_text_buffer_set_text(buffer, stanza, -1);
 	gtk_text_buffer_get_iter_at_offset(buffer, &iter, strstr(stanza, "</message>") - stanza);
@@ -629,11 +628,11 @@
 {
 	if (!console)
 		return;
-	
+
 	gtk_combo_box_append_text(GTK_COMBO_BOX(console->dropdown), purple_account_get_username(gc->account));
 	console->accounts = g_list_append(console->accounts, gc);
 	console->count++;
-	
+
 	if (console->count > 1)
 		gtk_widget_show_all(console->hbox);
 }
@@ -666,7 +665,7 @@
 
 	if (gc == console->gc) {
 		console->gc = NULL;
-		gtk_imhtml_append_text(GTK_IMHTML(console->imhtml), 
+		gtk_imhtml_append_text(GTK_IMHTML(console->imhtml),
 				       _("<font color='#777777'>Logged out.</font>"), 0);
 	}
 }
@@ -689,7 +688,7 @@
 			    plugin, PURPLE_CALLBACK(signed_on_cb), NULL);
 	purple_signal_connect(purple_connections_get_handle(), "signed-off",
 			    plugin, PURPLE_CALLBACK(signed_off_cb), NULL);
-	
+
 	return TRUE;
 }
 
@@ -716,18 +715,18 @@
 
 	if (!console)
 		return;
-	
-	account = purple_accounts_find(gtk_combo_box_get_active_text(GTK_COMBO_BOX(console->dropdown)), 
+
+	account = purple_accounts_find(gtk_combo_box_get_active_text(GTK_COMBO_BOX(console->dropdown)),
 				    "prpl-jabber");
 	if (!account || !account->gc)
 		return;
-	
+
 	console->gc = account->gc;
 	gtk_imhtml_clear(GTK_IMHTML(console->imhtml));
 }
 
-static void 
-create_console(PurplePluginAction *action) 
+static void
+create_console(PurplePluginAction *action)
 {
 	GtkWidget *vbox = gtk_vbox_new(FALSE, 6);
 	GtkWidget *sw = gtk_scrolled_window_new(NULL, NULL);
@@ -743,7 +742,7 @@
 		gtk_window_present(GTK_WINDOW(console->window));
 		return;
 	}
-	
+
 	console = g_new0(XmppConsole, 1);
 
 	console->window = pidgin_create_window(_("XMPP Console"), PIDGIN_HIG_BORDER, NULL, TRUE);
@@ -773,32 +772,32 @@
 	g_signal_connect(G_OBJECT(console->dropdown), "changed", G_CALLBACK(dropdown_changed_cb), NULL);
 
 	gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(sw), GTK_SHADOW_ETCHED_IN);
-	gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw), 
+	gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw),
 				       GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
 
 	console->imhtml = gtk_imhtml_new(NULL, NULL);
 	gtk_box_pack_start(GTK_BOX(vbox), sw, TRUE, TRUE, 0);
 	if (console->count == 0)
-		gtk_imhtml_append_text(GTK_IMHTML(console->imhtml), 
+		gtk_imhtml_append_text(GTK_IMHTML(console->imhtml),
 				       _("<font color='#777777'>Not connected to XMPP</font>"), 0);
 	gtk_container_add(GTK_CONTAINER(sw), console->imhtml);
-	
+
 	toolbar = gtk_toolbar_new();
-#if GTK_CHECK_VERSION(2,4,0)	
+#if GTK_CHECK_VERSION(2,4,0)
 	button = gtk_tool_button_new(NULL, "<iq/>");
 	g_signal_connect(G_OBJECT(button), "clicked", G_CALLBACK(iq_clicked_cb), NULL);
 	gtk_container_add(GTK_CONTAINER(toolbar), GTK_WIDGET(button));
 #else
-	gtk_toolbar_append_item(GTK_TOOLBAR(toolbar), "<iq/>", 
+	gtk_toolbar_append_item(GTK_TOOLBAR(toolbar), "<iq/>",
 			           _("Insert an <iq/> stanza."), "foo", NULL, GTK_SIGNAL_FUNC(iq_clicked_cb), NULL);
 #endif
 
-#if GTK_CHECK_VERSION(2,4,0)	
+#if GTK_CHECK_VERSION(2,4,0)
 	button = gtk_tool_button_new(NULL, "<presence/>");
 	g_signal_connect(G_OBJECT(button), "clicked", G_CALLBACK(presence_clicked_cb), NULL);
 	gtk_container_add(GTK_CONTAINER(toolbar), GTK_WIDGET(button));
 #else
-	gtk_toolbar_append_item(GTK_TOOLBAR(toolbar), "<presence/>", 
+	gtk_toolbar_append_item(GTK_TOOLBAR(toolbar), "<presence/>",
 			           _("Insert a <presence/> stanza."), NULL, gtk_label_new(NULL), GTK_SIGNAL_FUNC(presence_clicked_cb), NULL);
 #endif
 
@@ -807,17 +806,17 @@
 	g_signal_connect(G_OBJECT(button), "clicked", G_CALLBACK(message_clicked_cb), NULL);
 	gtk_container_add(GTK_CONTAINER(toolbar), GTK_WIDGET(button));
 #else
-	gtk_toolbar_append_item(GTK_TOOLBAR(toolbar), "<message/>", 
+	gtk_toolbar_append_item(GTK_TOOLBAR(toolbar), "<message/>",
 			           _("Insert a <message/> stanza."), "foo", gtk_label_new(NULL), GTK_SIGNAL_FUNC(message_clicked_cb), NULL);
 #endif
-	
+
 	gtk_box_pack_start(GTK_BOX(vbox), toolbar, FALSE, FALSE, 0);
-	
+
 	sw = gtk_scrolled_window_new(NULL, NULL);
 	gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(sw), GTK_SHADOW_ETCHED_IN);
-	gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw), 
+	gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw),
 				       GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
-	
+
 	console->entry = gtk_imhtml_new(NULL, NULL);
 	gtk_imhtml_set_whole_buffer_formatting_only(GTK_IMHTML(console->entry), TRUE);
 	g_signal_connect(G_OBJECT(console->entry),"message_send", G_CALLBACK(message_send_cb), console);
@@ -843,7 +842,7 @@
 
 	act = purple_plugin_action_new(_("XMPP Console"), create_console);
 	l = g_list_append(l, act);
-	
+
 	return l;
 }
 
@@ -853,28 +852,28 @@
 	PURPLE_PLUGIN_MAGIC,
 	PURPLE_MAJOR_VERSION,
 	PURPLE_MINOR_VERSION,
-	PURPLE_PLUGIN_STANDARD,                             /**< type           */
-	PIDGIN_PLUGIN_TYPE,                             /**< ui_requirement */
-	0,                                                /**< flags          */
-	NULL,                                             /**< dependencies   */
-	PURPLE_PRIORITY_DEFAULT,                            /**< priority       */
+	PURPLE_PLUGIN_STANDARD,                       /**< type           */
+	PIDGIN_PLUGIN_TYPE,                           /**< ui_requirement */
+	0,                                            /**< flags          */
+	NULL,                                         /**< dependencies   */
+	PURPLE_PRIORITY_DEFAULT,                      /**< priority       */
 
-	"gtk-xmpp",                                       /**< id             */
-	N_("XMPP Console"),                                  /**< name           */
-	DISPLAY_VERSION,                                  /**< version        */
-	                                                  /**  summary        */
+	"gtk-xmpp",                                   /**< id             */
+	N_("XMPP Console"),                           /**< name           */
+	DISPLAY_VERSION,                              /**< version        */
+	                                              /**  summary        */
 	N_("Send and receive raw XMPP stanzas."),
-	                                                  /**  description    */
+	                                              /**  description    */
 	N_("This plugin is useful for debbuging XMPP servers or clients."),
-	"Sean Egan <seanegan@gmail.com>",                 /**< author         */
-	PURPLE_WEBSITE,                                     /**< homepage       */
+	"Sean Egan <seanegan@gmail.com>",             /**< author         */
+	PURPLE_WEBSITE,                               /**< homepage       */
 
-	plugin_load,                                      /**< load           */
-	plugin_unload,                                    /**< unload         */
-	NULL,                                             /**< destroy        */
+	plugin_load,                                  /**< load           */
+	plugin_unload,                                /**< unload         */
+	NULL,                                         /**< destroy        */
 
 	NULL,                                         /**< ui_info        */
-	NULL,                                             /**< extra_info     */
+	NULL,                                         /**< extra_info     */
 	NULL,
 	actions,
 
--- a/pidgin/win32/nsis/pidgin-installer.nsi	Mon May 25 19:27:33 2009 +0000
+++ b/pidgin/win32/nsis/pidgin-installer.nsi	Mon Jun 08 18:28:31 2009 +0000
@@ -717,6 +717,7 @@
     Delete "$INSTDIR\ca-certs\GTE_CyberTrust_Global_Root.pem"
     Delete "$INSTDIR\ca-certs\Microsoft_Internet_Authority.pem"
     Delete "$INSTDIR\ca-certs\Microsoft_Secure_Server_Authority.pem"
+    Delete "$INSTDIR\ca-certs\StartCom_Certification_Authority.pem"
     Delete "$INSTDIR\ca-certs\StartCom_Free_SSL_CA.pem"
     Delete "$INSTDIR\ca-certs\Verisign_Class3_Primary_CA.pem"
     Delete "$INSTDIR\ca-certs\VeriSign_Class_3_Public_Primary_Certification_Authority_-_G5.pem"
--- a/po/ChangeLog	Mon May 25 19:27:33 2009 +0000
+++ b/po/ChangeLog	Mon Jun 08 18:28:31 2009 +0000
@@ -1,6 +1,13 @@
 Pidgin and Finch: The Pimpin' Penguin IM Clients That're Good for the Soul
 
 version 2.6.0
+	* Armenian translation added (David Avsharyan)
+	* Lao translation updated (Anousak Souphavah)
+	* Slovenian translation updated (Martin Srebotnjak)
+	* Swahili translation added (Paul Msegeya)
+
+version 2.5.6
+	* German translation updated (Björn Vogt)
 
 version 2.5.5
 	* Afrikaans translation updated (Friedel Wolff)
--- a/po/ca.po	Mon May 25 19:27:33 2009 +0000
+++ b/po/ca.po	Mon Jun 08 18:28:31 2009 +0000
@@ -33,8 +33,8 @@
 msgstr ""
 "Project-Id-Version: Pidgin\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-05-17 14:59+0200\n"
-"PO-Revision-Date: 2009-05-17 15:05+0200\n"
+"POT-Creation-Date: 2009-06-06 22:44+0200\n"
+"PO-Revision-Date: 2009-06-06 22: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"
@@ -3198,6 +3198,10 @@
 msgid "Chat _name:"
 msgstr "_Nom del xat:"
 
+#. should this be a settings error?
+msgid "Unable to resolve server"
+msgstr "No s'ha pogut resoldre el nom del servidor"
+
 msgid "Chat error"
 msgstr "Error en el xat"
 
@@ -3246,6 +3250,9 @@
 msgid "Gadu-Gadu User"
 msgstr "Usuari Gadu-Gadu"
 
+msgid "GG server"
+msgstr "Servidor GG"
+
 #, c-format
 msgid "Unknown command: %s"
 msgstr "Ordre desconeguda: %s"
@@ -3288,8 +3295,9 @@
 msgid "_Password:"
 msgstr "_Contrasenya:"
 
-msgid "IRC nicks may not contain whitespace"
-msgstr "Els sobrenoms d'IRC no poden contenir espais en blanc"
+msgid "IRC nick and server may not contain whitespace"
+msgstr ""
+"Els sobrenoms i els noms de servidor d'IRC no poden contenir espais en blanc"
 
 #. 1. connect to server
 #. connect to the server
@@ -3763,6 +3771,9 @@
 msgid "Server does not use any supported authentication method"
 msgstr "No hi ha cap mètode d'autenticació compatible amb aquest servidor"
 
+msgid "You require encryption, but it is not available on this server."
+msgstr "Requeriu xifratge, però no està disponible en aquest servidor."
+
 msgid "Invalid challenge from server"
 msgstr "Repte del servidor invàlid"
 
@@ -4223,9 +4234,6 @@
 msgid "Roles:"
 msgstr "Rols:"
 
-msgid "You require encryption, but it is not available on this server."
-msgstr "Requeriu xifratge, però no està disponible en aquest servidor."
-
 msgid "Ping timeout"
 msgstr "Temps d'espera del ping"
 
@@ -4273,9 +4281,6 @@
 msgid "Unregistration Failed"
 msgstr "No s'ha pogut cancel·lar el registre"
 
-msgid "Already Registered"
-msgstr "Ja esteu registrat"
-
 msgid "State"
 msgstr "Estat"
 
@@ -4288,6 +4293,9 @@
 msgid "Date"
 msgstr "Data"
 
+msgid "Already Registered"
+msgstr "Ja esteu registrat"
+
 msgid "Unregister"
 msgstr "Cancel·la el registre"
 
@@ -5499,17 +5507,6 @@
 msgstr "Autenticació amb el Windows Live ID: la resposta no és vàlida"
 
 #, c-format
-msgid "%s is not a valid group."
-msgstr "%s no és un nom de grup vàlid"
-
-msgid "Unknown error."
-msgstr "Error desconegut."
-
-#, c-format
-msgid "%s on %s (%s)"
-msgstr "%s a %s (%s)"
-
-#, c-format
 msgid "%s just sent you a Nudge!"
 msgstr "%s us ha donat un cop de colze!"
 
@@ -5550,15 +5547,12 @@
 msgid "Service Temporarily Unavailable."
 msgstr "El servei no està disponible temporalment."
 
+msgid "Unknown error."
+msgstr "Error desconegut."
+
 msgid "Mobile message was not sent because it was too long."
 msgstr "No s'ha enviat el missatge al mòbil perquè era massa llarg."
 
-msgid "Unable to rename group"
-msgstr "No s'ha pogut canviar el nom del grup"
-
-msgid "Unable to delete group"
-msgstr "No s'ha pogut suprimir el grup"
-
 #, c-format
 msgid ""
 "The MSN server will shut down for maintenance in %d minute. You will "
@@ -5716,14 +5710,6 @@
 msgstr ""
 "No s'ha pogut enviar el missatge perquè s'ha produït un error desconegut:"
 
-#, c-format
-msgid "%s has added you to his or her buddy list."
-msgstr "%s us ha afegit a la seva llista d'amics."
-
-#, c-format
-msgid "%s has removed you from his or her buddy list."
-msgstr "%s us ha suprimit de la seva llista d'amics."
-
 msgid "Delete Buddy from Address Book?"
 msgstr "Voleu suprimir l'amic de la llibreta d'adreces?"
 
@@ -5753,6 +5739,28 @@
 msgstr "Connector per al protocol MSN"
 
 #, c-format
+msgid "%s is not a valid group."
+msgstr "%s no és un nom de grup vàlid"
+
+#, c-format
+msgid "%s on %s (%s)"
+msgstr "%s a %s (%s)"
+
+msgid "Unable to rename group"
+msgstr "No s'ha pogut canviar el nom del grup"
+
+msgid "Unable to delete group"
+msgstr "No s'ha pogut suprimir el grup"
+
+#, c-format
+msgid "%s has added you to his or her buddy list."
+msgstr "%s us ha afegit a la seva llista d'amics."
+
+#, c-format
+msgid "%s has removed you from his or her buddy list."
+msgstr "%s us ha suprimit de la seva llista d'amics."
+
+#, c-format
 msgid "No such user: %s"
 msgstr "Aquest usuari no existeix: %s"
 
@@ -6629,6 +6637,9 @@
 msgid "iChat AV"
 msgstr "iChat AV"
 
+msgid "Live Video"
+msgstr "Vídeo en directe"
+
 msgid "Camera"
 msgstr "Càmera"
 
@@ -9619,16 +9630,24 @@
 msgstr "La contrasenya no és correcta"
 
 #. security lock from too many failed login attempts
-msgid "Account locked: Too many failed login attempts"
-msgstr "S'ha blocat el compte: s'ha intentat entrar massa vegades"
+msgid ""
+"Account locked: Too many failed login attempts.\n"
+"Logging into the Yahoo! website may fix this."
+msgstr ""
+"El compte està blocat perquè s'ha intentat entrar massa cops.\n"
+"Això es pot solucionar entrant al web de Yahoo!"
 
 #. the username does not exist
 msgid "Username does not exist"
 msgstr "L'usuari no existeix"
 
 #. indicates a lock of some description
-msgid "Account locked: See the debug log"
-msgstr "El compte està blocat: vegeu el registre de depuració"
+msgid ""
+"Account locked: Unknown reason.\n"
+"Logging into the Yahoo! website may fix this."
+msgstr ""
+"El compte està blocat, però no se'n coneix el motiu.\n"
+"Això es pot solucionar entrant al web de Yahoo!"
 
 #. username or password missing
 msgid "Username or password missing"
@@ -11495,6 +11514,9 @@
 msgid "Hungarian"
 msgstr "Hongarès"
 
+msgid "Armenian"
+msgstr "Armeni"
+
 msgid "Indonesian"
 msgstr "Indonesi"
 
@@ -11592,6 +11614,9 @@
 msgid "Swedish"
 msgstr "Suec"
 
+msgid "Swahili"
+msgstr " Suahili"
+
 msgid "Tamil"
 msgstr "Tàmil"
 
@@ -13891,12 +13916,6 @@
 "- escriu a l'inrevés tots els missatges rebuts\n"
 "- envia un missatge a tots els amics immediatament després que es connectin"
 
-msgid "Cursor Color"
-msgstr "Color del cursor"
-
-msgid "Secondary Cursor Color"
-msgstr "Color secundari del cursor"
-
 msgid "Hyperlink Color"
 msgstr "Color dels hiperenllaços"
 
@@ -13906,6 +13925,9 @@
 msgid "Highlighted Message Name Color"
 msgstr "Nom del color per als missatges ressaltats"
 
+msgid "Typing Notification Color"
+msgstr "Color per a les notificacions de quan s'escriu"
+
 msgid "GtkTreeView Horizontal Separation"
 msgstr "Separació horitzontal del GtkTreeView"
 
@@ -13935,35 +13957,21 @@
 msgid "GTK+ Text Shortcut Theme"
 msgstr "Tema de la drecera de text de GTK+"
 
-#.
-#. for (i = 0; i < G_N_ELEMENTS(widget_bool_prefs); i++) {
-#. hbox = gtk_hbox_new(FALSE, PIDGIN_HIG_CAT_SPACE);
-#. gtk_box_pack_start(GTK_BOX(frame), hbox, FALSE, FALSE, 0);
-#.
-#. check = pidgin_prefs_checkbox(_(widget_bool_names[i]),
-#. widget_bool_prefs_set[i], hbox);
-#. gtk_size_group_add_widget(labelsg, check);
-#.
-#. widget_bool_widgets[i] = pidgin_prefs_checkbox("", widget_bool_prefs[i], hbox);
-#. *
-#. gtk_size_group_add_widget(widgetsb, widget_bool_widgets[i]);
-#. *
-#. gtk_widget_set_sensitive(widget_bool_widgets[i],
-#. purple_prefs_get_bool(widget_bool_prefs_set[i]));
-#. g_signal_connect(G_OBJECT(check), "toggled",
-#. G_CALLBACK(pidgin_toggle_sensitive),
-#. widget_bool_widgets[i]);
-#. }
-#.
-msgid "Interface colors"
-msgstr "Colors de la interfície"
-
-msgid "Widget Sizes"
-msgstr "Mides del giny"
+msgid "Disable Typing Notification Text"
+msgstr "Inhabilita les notificacions de que s'està escrivint"
+
+msgid "GTK+ Theme Control Settings"
+msgstr "Configuració dels temes GTK+"
+
+msgid "Colors"
+msgstr "Colors"
 
 msgid "Fonts"
 msgstr "Tipus de lletra"
 
+msgid "Miscellaneous"
+msgstr "Miscel·lània"
+
 msgid "Gtkrc File Tools"
 msgstr "Eines de fitxer Gtkrc"
 
@@ -14319,8 +14327,23 @@
 msgid "This plugin is useful for debbuging XMPP servers or clients."
 msgstr "Aquest connector és útil per a depurar servidors i clients XMPP."
 
-#~ msgid "Live Video"
-#~ msgstr "Vídeo en directe"
+#~ msgid "Account locked: Too many failed login attempts"
+#~ msgstr "S'ha blocat el compte: s'ha intentat entrar massa vegades"
+
+#~ msgid "Account locked: See the debug log"
+#~ msgstr "El compte està blocat: vegeu el registre de depuració"
+
+#~ msgid "Cursor Color"
+#~ msgstr "Color del cursor"
+
+#~ msgid "Secondary Cursor Color"
+#~ msgstr "Color secundari del cursor"
+
+#~ msgid "Interface colors"
+#~ msgstr "Colors de la interfície"
+
+#~ msgid "Widget Sizes"
+#~ msgstr "Mides del giny"
 
 #~ msgid "Invite message"
 #~ msgstr "Missatge d'invitació"
@@ -16345,9 +16368,6 @@
 #~ msgid "Invisible for friends only"
 #~ msgstr "Només invisible per als amics"
 
-#~ msgid "Unable to resolve hostname."
-#~ msgstr "No s'ha pogut resoldre el nom de l'ordinador."
-
 #~ msgid "Error while writing to socket."
 #~ msgstr "S'ha produït un error en escriure al sòcol."
 
@@ -16557,9 +16577,6 @@
 #~ msgid "/Buddies/Log Out"
 #~ msgstr "/Amics/Desconnecta"
 
-#~ msgid "Miscellaneous error"
-#~ msgstr "Error miscel·lani"
-
 #~ msgid "Unknown error when attempting to authorize with MSN login server."
 #~ msgstr ""
 #~ "S'ha produït un error desconegut en intentar autoritzar amb el servidor "
--- a/po/de.po	Mon May 25 19:27:33 2009 +0000
+++ b/po/de.po	Mon Jun 08 18:28:31 2009 +0000
@@ -11,9 +11,9 @@
 msgstr ""
 "Project-Id-Version: de\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-05-15 19:56+0200\n"
-"PO-Revision-Date: 2009-05-15 19:56+0200\n"
-"Last-Translator: Jochen Kemnade <jochenkemnade@web.de>\n"
+"POT-Creation-Date: 2009-06-01 12:31+0200\n"
+"PO-Revision-Date: 2009-06-01 12:31+0200\n"
+"Last-Translator: Björn Voigt <bjoern@cs.tu-berlin.de>\n"
 "Language-Team: Deutsch <de@li.org>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -1788,6 +1788,8 @@
 msgid "+++ %s signed off"
 msgstr "+++ %s hat sich abgemeldet"
 
+#. Unknown error
+#. Unknown error!
 msgid "Unknown error"
 msgstr "Unbekannter Fehler"
 
@@ -3257,8 +3259,8 @@
 msgid "_Password:"
 msgstr "_Passwort:"
 
-msgid "IRC nicks may not contain whitespace"
-msgstr "IRC-Nicknamen dürfen keine Leerzeichen enthalten"
+msgid "IRC nick and server may not contain whitespace"
+msgstr "IRC- Server und -Nicknamen dürfen keine Leerzeichen enthalten"
 
 #. 1. connect to server
 #. connect to the server
@@ -3741,6 +3743,10 @@
 msgid "Server does not use any supported authentication method"
 msgstr "Der Server benutzt keine der unterstützten Authentifizierungsmethoden"
 
+msgid "You require encryption, but it is not available on this server."
+msgstr ""
+"Sie fordern Verschlüsselung, aber diese ist auf dem Server nicht verfügbar."
+
 msgid "Invalid challenge from server"
 msgstr "Ungültige Challenge vom Server"
 
@@ -3748,15 +3754,13 @@
 msgstr "SASL-Fehler"
 
 msgid "The BOSH connection manager terminated your session."
-msgstr ""
-
-#, fuzzy
+msgstr "Der BOSH-Verbindungsmanager hat Ihre Sitzung beendet."
+
 msgid "No session ID given"
-msgstr "Kein Grund angegeben"
-
-#, fuzzy
+msgstr "Keine Sitzungs-ID angegeben"
+
 msgid "Unsupported version of BOSH protocol"
-msgstr "Nicht-unterstützte Version"
+msgstr "Nicht-unterstützte Version des BOSH-Protokolls"
 
 msgid "Unable to establish a connection with the server"
 msgstr "Die Verbindung mit dem Server konnte nicht hergestellt werden"
@@ -4006,7 +4010,7 @@
 msgid "Resource"
 msgstr "Ressource"
 
-#, fuzzy, c-format
+#, c-format
 msgid "%s ago"
 msgstr "vor %s"
 
@@ -4194,10 +4198,6 @@
 msgid "Roles:"
 msgstr "Funktion"
 
-msgid "You require encryption, but it is not available on this server."
-msgstr ""
-"Sie fordern Verschlüsselung, aber diese ist auf dem Server nicht verfügbar."
-
 msgid "Ping timeout"
 msgstr "Ping-Zeitüberschreitung"
 
@@ -5424,17 +5424,6 @@
 msgstr "Windows Live ID-Authentifikation:Ungültige Antwort"
 
 #, c-format
-msgid "%s is not a valid group."
-msgstr "%s ist keine gültige Gruppe."
-
-msgid "Unknown error."
-msgstr "Unbekannter Fehler."
-
-#, c-format
-msgid "%s on %s (%s)"
-msgstr "%s auf %s (%s)"
-
-#, c-format
 msgid "%s just sent you a Nudge!"
 msgstr "%s hat Sie gerade angestoßen!"
 
@@ -5475,15 +5464,12 @@
 msgid "Service Temporarily Unavailable."
 msgstr "Dienst momentan nicht verfügbar."
 
+msgid "Unknown error."
+msgstr "Unbekannter Fehler."
+
 msgid "Mobile message was not sent because it was too long."
 msgstr "Mobile Nachricht wurde nicht gesendet, da sie zu lang war."
 
-msgid "Unable to rename group"
-msgstr "Kann die Gruppe nicht umbenennen"
-
-msgid "Unable to delete group"
-msgstr "Kann die Gruppe nicht löschen"
-
 #, c-format
 msgid ""
 "The MSN server will shut down for maintenance in %d minute. You will "
@@ -5647,14 +5633,6 @@
 "Nachricht konnte nicht gesendet werden, da ein unbekannter Fehler "
 "aufgetreten ist:"
 
-#, c-format
-msgid "%s has added you to his or her buddy list."
-msgstr "Der Benutzer %s hat Sie zu seiner Buddy-Liste hinzugefügt."
-
-#, c-format
-msgid "%s has removed you from his or her buddy list."
-msgstr "Der Benutzer %s hat Sie von seiner Buddy-Liste gelöscht."
-
 msgid "Delete Buddy from Address Book?"
 msgstr "Buddy aus dem Adressbuch löschen?"
 
@@ -5684,6 +5662,28 @@
 msgstr "MSN-Protokoll-Plugin"
 
 #, c-format
+msgid "%s is not a valid group."
+msgstr "%s ist keine gültige Gruppe."
+
+#, c-format
+msgid "%s on %s (%s)"
+msgstr "%s auf %s (%s)"
+
+msgid "Unable to rename group"
+msgstr "Kann die Gruppe nicht umbenennen"
+
+msgid "Unable to delete group"
+msgstr "Kann die Gruppe nicht löschen"
+
+#, c-format
+msgid "%s has added you to his or her buddy list."
+msgstr "Der Benutzer %s hat Sie zu seiner Buddy-Liste hinzugefügt."
+
+#, c-format
+msgid "%s has removed you from his or her buddy list."
+msgstr "Der Benutzer %s hat Sie von seiner Buddy-Liste gelöscht."
+
+#, c-format
 msgid "No such user: %s"
 msgstr "Kein solcher Benutzer: %s"
 
@@ -6557,6 +6557,9 @@
 msgid "iChat AV"
 msgstr "iChat AV"
 
+msgid "Live Video"
+msgstr "Live-Video"
+
 msgid "Camera"
 msgstr "Kamera"
 
@@ -9556,6 +9559,30 @@
 msgid "Add buddy rejected"
 msgstr "Hinzufügen des Buddys zurückgewiesen"
 
+#. Some error in the received stream
+msgid "Received invalid data"
+msgstr "Ungültige Daten empfangen"
+
+#. Password incorrect
+msgid "Incorrect Password"
+msgstr "Falsches Passwort"
+
+#. security lock from too many failed login attempts
+msgid "Account locked: Too many failed login attempts"
+msgstr "Konto gesperrt: Zu viele erfolglose Login-Versuche"
+
+#. the username does not exist
+msgid "Username does not exist"
+msgstr "Benutzername existiert nicht"
+
+#. indicates a lock of some description
+msgid "Account locked: See the debug log"
+msgstr "Konto gesperrt: Sehen Sie in den Debug-Mitschnitt"
+
+#. username or password missing
+msgid "Username or password missing"
+msgstr "Benutzername oder Passwort fehlt"
+
 #, c-format
 msgid ""
 "The Yahoo server has requested the use of an unrecognized authentication "
@@ -10465,8 +10492,9 @@
 msgid "Please update the necessary fields."
 msgstr "Bitte aktualisieren Sie die erforderlichen Felder."
 
-msgid "Room _List"
-msgstr "Ra_umliste"
+#, fuzzy
+msgid "A_ccount"
+msgstr "Konto"
 
 msgid ""
 "Please enter the appropriate information about the chat you would like to "
@@ -10475,8 +10503,8 @@
 "Bitte geben Sie geeignete Informationen über den Chat ein, den Sie betreten "
 "wollen.\n"
 
-msgid "_Account:"
-msgstr "_Konto:"
+msgid "Room _List"
+msgstr "Ra_umliste"
 
 msgid "_Block"
 msgstr "_Sperren"
@@ -10596,7 +10624,7 @@
 msgstr "/Buddys/Anzeigen/_Offline-Buddys"
 
 msgid "/Buddies/Show/_Empty Groups"
-msgstr "/Buddys/Anzeigen/_leere Gruppen"
+msgstr "/Buddys/Anzeigen/_Leere Gruppen"
 
 msgid "/Buddies/Show/Buddy _Details"
 msgstr "/Buddys/Anzeigen/Buddy-_Details"
@@ -10837,7 +10865,7 @@
 msgstr "/Buddys/Anzeigen/Offline-Buddys"
 
 msgid "/Buddies/Show/Empty Groups"
-msgstr "/Buddys/Anzeigen/leere Gruppen"
+msgstr "/Buddys/Anzeigen/Leere Gruppen"
 
 msgid "/Buddies/Show/Buddy Details"
 msgstr "/Buddys/Anzeigen/Buddy-Details"
@@ -11410,6 +11438,9 @@
 msgid "Hungarian"
 msgstr "Ungarisch"
 
+msgid "Armenian"
+msgstr "Armenisch"
+
 msgid "Indonesian"
 msgstr "Indonesisch"
 
@@ -11506,6 +11537,9 @@
 msgid "Swedish"
 msgstr "Schwedisch"
 
+msgid "Swahili"
+msgstr "Swahili"
+
 msgid "Tamil"
 msgstr "Tamilisch"
 
@@ -12365,6 +12399,9 @@
 msgid "Pounce on Whom"
 msgstr "Bei wem alarmieren"
 
+msgid "_Account:"
+msgstr "_Konto:"
+
 msgid "_Buddy name:"
 msgstr "_Buddy-Name:"
 
@@ -13025,6 +13062,9 @@
 msgid "Custom Smiley Manager"
 msgstr "Verwaltung für benutzerdefinierte Smileys"
 
+msgid "Select Buddy Icon"
+msgstr "Buddy-Icon auswählen"
+
 msgid "Click to change your buddyicon for this account."
 msgstr "Klicken Sie hier, um Ihr Buddy-Icon für dieses Konto zu ändern."
 
@@ -14183,19 +14223,3 @@
 msgid "This plugin is useful for debbuging XMPP servers or clients."
 msgstr ""
 "Dieses Plugin ist nützlich zur Fehlersuche in XMPP-Servern oder -Clients."
-
-#~ msgid "Live Video"
-#~ msgstr "Live-Video"
-
-#~ msgid "Invite message"
-#~ msgstr "Einladungsnachricht"
-
-#~ msgid ""
-#~ "Please enter the name of the user you wish to invite,\n"
-#~ "along with an optional invite message."
-#~ msgstr ""
-#~ "Bitte geben Sie den Benutzernamen der Person ein, die Sie einladen "
-#~ "möchten zusammen mit einer optionalen Einladungsnachricht."
-
-#~ msgid "ST_UN server:"
-#~ msgstr "ST_UN Server:"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/po/hy.po	Mon Jun 08 18:28:31 2009 +0000
@@ -0,0 +1,13365 @@
+# translation of am.po to Armenian
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# David Avsharyan <avsharyan@gmail.com>, 2009.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: am\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2009-05-26 20:21-0700\n"
+"PO-Revision-Date: 2009-05-20 17:37+0400\n"
+"Last-Translator: David Avsharyan <avsharyan@gmail.com>\n"
+"Language-Team: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
+
+#. Translators may want to transliterate the name.
+#. It is not to be translated.
+msgid "Finch"
+msgstr "Սերինոս"
+
+#, c-format
+msgid "%s. Try `%s -h' for more information.\n"
+msgstr "%s. Ավելի շատ ինֆորմացիայի համար հավագեք `%s -h'.\n"
+
+#, c-format
+msgid ""
+"%s\n"
+"Usage: %s [OPTION]...\n"
+"\n"
+"  -c, --config=DIR    use DIR for config files\n"
+"  -d, --debug         print debugging messages to stderr\n"
+"  -h, --help          display this help and exit\n"
+"  -n, --nologin       don't automatically login\n"
+"  -v, --version       display the current version and exit\n"
+msgstr ""
+"%s\n"
+"Կիրառում: %s [OPTION]...\n"
+"\n"
+"  -c, --config=DIR    օգտագործել DIR կոնֆիգուրացիոն ֆայլերի համար\n"
+"  -d, --debug         կարգաբերվող հաղորդագրությունները տպել դեպի ստանդարտ "
+"սխալների հոսք\n"
+"  -h, --help          ցույց տալ այս օգնությունը և դուրս գալ\n"
+"  -n, --nologin       ոչ ինքնաբերաբար մուտք\n"
+"  -v, --version       ցույց տալ ընթացիկ տարբերակը և դուրս գալ\n"
+
+#, c-format
+msgid ""
+"%s encountered errors migrating your settings from %s to %s. Please "
+"investigate and complete the migration by hand. Please report this error at "
+"http://developer.pidgin.im"
+msgstr ""
+
+#, fuzzy
+msgid "Error"
+msgstr "Սխալներզ"
+
+msgid "Account was not added"
+msgstr ""
+
+msgid "Username of an account must be non-empty."
+msgstr "Օգտագործողի անունը  ..."
+
+msgid "New mail notifications"
+msgstr "Նոր նամակի ծանուցումներ"
+
+msgid "Remember password"
+msgstr "Հիշել գաղտնաբառը"
+
+msgid "There are no protocol plugins installed."
+msgstr "Այնտեղ տեղադրված չէ պրոտոկոլի ավելացումներ․"
+
+msgid "(You probably forgot to 'make install'.)"
+msgstr "(Հավանաբար դուք  մոռացել եք անեք 'make install'.)"
+
+msgid "Modify Account"
+msgstr "Ձևափոխել Հաշիվը"
+
+msgid "New Account"
+msgstr "Նոր Հաշիվ"
+
+msgid "Protocol:"
+msgstr "Արձանագրություն։"
+
+msgid "Username:"
+msgstr "Օգտագործողի անունը։"
+
+msgid "Password:"
+msgstr "Գաղտնաբառ։"
+
+msgid "Alias:"
+msgstr "Փոխանուն։"
+
+#. Register checkbox
+msgid "Create this account on the server"
+msgstr "Ստեղծել այս հաշիվը սերվերի վրա"
+
+#. Cancel button
+#. Cancel
+msgid "Cancel"
+msgstr "Չեղյալ համարել"
+
+#. Save button
+#. Save
+msgid "Save"
+msgstr "Պահպանել"
+
+#, c-format
+msgid "Are you sure you want to delete %s?"
+msgstr "Դուք համոզված եք, որ ցանկանում եք ջնջել %s?"
+
+msgid "Delete Account"
+msgstr "Ջնջել Հաշիվը"
+
+#. Delete button
+msgid "Delete"
+msgstr "Ջնջել"
+
+msgid "Accounts"
+msgstr "Հաշիվներ"
+
+msgid "You can enable/disable accounts from the following list."
+msgstr "Դուք կարող եք միացնել/անջատել հաշիվները հետևյալ ցանկից․"
+
+#. Add button
+msgid "Add"
+msgstr "Ավելացնել"
+
+#. Modify button
+msgid "Modify"
+msgstr "Փոփոխել"
+
+#, c-format
+msgid "%s%s%s%s has made %s his or her buddy%s%s"
+msgstr ""
+
+msgid "Add buddy to your list?"
+msgstr ""
+
+#, c-format
+msgid "%s%s%s%s wants to add %s to his or her buddy list%s%s"
+msgstr ""
+
+msgid "Authorize buddy?"
+msgstr ""
+
+msgid "Authorize"
+msgstr "Լիազորում"
+
+msgid "Deny"
+msgstr "Մերժել"
+
+#, c-format
+msgid ""
+"Online: %d\n"
+"Total: %d"
+msgstr ""
+"Կապի մեջ: %d\n"
+"Ընդհանուր: %d"
+
+#, c-format
+msgid "Account: %s (%s)"
+msgstr "Հաշիվ: %s (%s"
+
+#, c-format
+msgid ""
+"\n"
+"Last Seen: %s ago"
+msgstr ""
+"\n"
+"Last Seen: %s ago"
+
+msgid "Default"
+msgstr ""
+
+msgid "You must provide a username for the buddy."
+msgstr ""
+
+msgid "You must provide a group."
+msgstr ""
+
+msgid "You must select an account."
+msgstr ""
+
+msgid "The selected account is not online."
+msgstr ""
+
+msgid "Error adding buddy"
+msgstr ""
+
+msgid "Username"
+msgstr ""
+
+msgid "Alias (optional)"
+msgstr ""
+
+msgid "Add in group"
+msgstr ""
+
+msgid "Account"
+msgstr ""
+
+msgid "Add Buddy"
+msgstr ""
+
+msgid "Please enter buddy information."
+msgstr ""
+
+msgid "Chats"
+msgstr ""
+
+#. Extract their Name and put it in
+msgid "Name"
+msgstr ""
+
+msgid "Alias"
+msgstr ""
+
+msgid "Group"
+msgstr ""
+
+msgid "Auto-join"
+msgstr ""
+
+msgid "Add Chat"
+msgstr ""
+
+msgid "You can edit more information from the context menu later."
+msgstr ""
+
+msgid "Error adding group"
+msgstr ""
+
+msgid "You must give a name for the group to add."
+msgstr ""
+
+msgid "Add Group"
+msgstr ""
+
+msgid "Enter the name of the group"
+msgstr ""
+
+msgid "Edit Chat"
+msgstr ""
+
+msgid "Please Update the necessary fields."
+msgstr ""
+
+msgid "Edit"
+msgstr ""
+
+msgid "Edit Settings"
+msgstr ""
+
+msgid "Information"
+msgstr ""
+
+msgid "Retrieving..."
+msgstr ""
+
+msgid "Get Info"
+msgstr ""
+
+msgid "Add Buddy Pounce"
+msgstr ""
+
+msgid "Send File"
+msgstr ""
+
+msgid "Blocked"
+msgstr ""
+
+msgid "Show when offline"
+msgstr ""
+
+#, c-format
+msgid "Please enter the new name for %s"
+msgstr ""
+
+msgid "Rename"
+msgstr ""
+
+msgid "Set Alias"
+msgstr ""
+
+msgid "Enter empty string to reset the name."
+msgstr ""
+
+msgid "Removing this contact will also remove all the buddies in the contact"
+msgstr ""
+
+msgid "Removing this group will also remove all the buddies in the group"
+msgstr ""
+
+#, c-format
+msgid "Are you sure you want to remove %s?"
+msgstr ""
+
+#. XXX: anything to do with the returned ui-handle?
+msgid "Confirm Remove"
+msgstr ""
+
+msgid "Remove"
+msgstr ""
+
+#. Buddy List
+msgid "Buddy List"
+msgstr ""
+
+msgid "Place tagged"
+msgstr ""
+
+msgid "Toggle Tag"
+msgstr ""
+
+msgid "View Log"
+msgstr ""
+
+#. General
+msgid "Nickname"
+msgstr ""
+
+#. Never know what those translations might end up like...
+#. Idle stuff
+msgid "Idle"
+msgstr ""
+
+msgid "On Mobile"
+msgstr ""
+
+msgid "New..."
+msgstr ""
+
+msgid "Saved..."
+msgstr ""
+
+msgid "Plugins"
+msgstr ""
+
+msgid "Block/Unblock"
+msgstr ""
+
+msgid "Block"
+msgstr ""
+
+msgid "Unblock"
+msgstr ""
+
+msgid ""
+"Please enter the username or alias of the person you would like to Block/"
+"Unblock."
+msgstr ""
+
+#. Not multiline
+#. Not masked?
+#. No hints?
+msgid "OK"
+msgstr "OK"
+
+msgid "New Instant Message"
+msgstr ""
+
+msgid "Please enter the username or alias of the person you would like to IM."
+msgstr ""
+
+msgid "Channel"
+msgstr "Ալիք"
+
+msgid "Join a Chat"
+msgstr "Միանալ զրույցին"
+
+msgid "Please enter the name of the chat you want to join."
+msgstr ""
+
+msgid "Join"
+msgstr "Միանալ"
+
+msgid ""
+"Please enter the username or alias of the person whose log you would like to "
+"view."
+msgstr ""
+
+#. Create the "Options" frame.
+msgid "Options"
+msgstr ""
+
+msgid "Send IM..."
+msgstr ""
+
+msgid "Block/Unblock..."
+msgstr "Փակել/Բացել"
+
+msgid "Join Chat..."
+msgstr "Միանալ զրույցին ... "
+
+msgid "View Log..."
+msgstr "Նայել գրառումները․․․"
+
+msgid "View All Logs"
+msgstr "Նայել մատյանի բոլոր գրառումները"
+
+msgid "Show"
+msgstr "Ցույց տալ"
+
+msgid "Empty groups"
+msgstr "Դատարկ խմբեր"
+
+msgid "Offline buddies"
+msgstr ""
+
+msgid "Sort"
+msgstr "Դասակարգել"
+
+msgid "By Status"
+msgstr "Ըստ "
+
+msgid "Alphabetically"
+msgstr ""
+
+msgid "By Log Size"
+msgstr ""
+
+msgid "Buddy"
+msgstr ""
+
+msgid "Chat"
+msgstr "Զրույց"
+
+msgid "Grouping"
+msgstr ""
+
+msgid "Certificate Import"
+msgstr ""
+
+msgid "Specify a hostname"
+msgstr ""
+
+msgid "Type the host name this certificate is for."
+msgstr ""
+
+#, c-format
+msgid ""
+"File %s could not be imported.\n"
+"Make sure that the file is readable and in PEM format.\n"
+msgstr ""
+
+msgid "Certificate Import Error"
+msgstr ""
+
+msgid "X.509 certificate import failed"
+msgstr ""
+
+msgid "Select a PEM certificate"
+msgstr ""
+
+#, c-format
+msgid ""
+"Export to file %s failed.\n"
+"Check that you have write permission to the target path\n"
+msgstr ""
+
+msgid "Certificate Export Error"
+msgstr ""
+
+msgid "X.509 certificate export failed"
+msgstr ""
+
+msgid "PEM X.509 Certificate Export"
+msgstr ""
+
+#, c-format
+msgid "Certificate for %s"
+msgstr ""
+
+#, c-format
+msgid ""
+"Common name: %s\n"
+"\n"
+"SHA1 fingerprint:\n"
+"%s"
+msgstr ""
+
+msgid "SSL Host Certificate"
+msgstr ""
+
+#, c-format
+msgid "Really delete certificate for %s?"
+msgstr ""
+
+msgid "Confirm certificate delete"
+msgstr ""
+
+msgid "Certificate Manager"
+msgstr ""
+
+#. Creating the user splits
+msgid "Hostname"
+msgstr ""
+
+msgid "Info"
+msgstr ""
+
+#. Close button
+msgid "Close"
+msgstr ""
+
+#, c-format
+msgid "%s (%s)"
+msgstr ""
+
+#, c-format
+msgid "%s disconnected."
+msgstr ""
+
+#, c-format
+msgid ""
+"%s\n"
+"\n"
+"Finch will not attempt to reconnect the account until you correct the error "
+"and re-enable the account."
+msgstr ""
+
+msgid "Re-enable Account"
+msgstr ""
+
+msgid ""
+"The account has disconnected and you are no longer in this chat. You will be "
+"automatically rejoined in the chat when the account reconnects."
+msgstr ""
+
+msgid "No such command."
+msgstr ""
+
+msgid "Syntax Error:  You typed the wrong number of arguments to that command."
+msgstr ""
+
+msgid "Your command failed for an unknown reason."
+msgstr ""
+
+msgid "That command only works in chats, not IMs."
+msgstr ""
+
+msgid "That command only works in IMs, not chats."
+msgstr ""
+
+msgid "That command doesn't work on this protocol."
+msgstr ""
+
+msgid "Message was not sent, because you are not signed on."
+msgstr ""
+
+#, c-format
+msgid "%s (%s -- %s)"
+msgstr ""
+
+#, c-format
+msgid "%s [%s]"
+msgstr ""
+
+#, c-format
+msgid ""
+"\n"
+"%s is typing..."
+msgstr ""
+
+msgid "You have left this chat."
+msgstr ""
+
+msgid "Logging started. Future messages in this conversation will be logged."
+msgstr ""
+
+msgid ""
+"Logging stopped. Future messages in this conversation will not be logged."
+msgstr ""
+
+msgid "Send To"
+msgstr ""
+
+msgid "Conversation"
+msgstr ""
+
+msgid "Clear Scrollback"
+msgstr ""
+
+msgid "Show Timestamps"
+msgstr ""
+
+msgid "Add Buddy Pounce..."
+msgstr ""
+
+msgid "Invite..."
+msgstr ""
+
+msgid "Enable Logging"
+msgstr ""
+
+msgid "Enable Sounds"
+msgstr ""
+
+msgid "<AUTO-REPLY> "
+msgstr ""
+
+#, c-format
+msgid "List of %d user:\n"
+msgid_plural "List of %d users:\n"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Supported debug options are:  version"
+msgstr ""
+
+msgid "No such command (in this context)."
+msgstr ""
+
+msgid ""
+"Use \"/help &lt;command&gt;\" for help on a specific command.\n"
+"The following commands are available in this context:\n"
+msgstr ""
+
+#, c-format
+msgid ""
+"%s is not a valid message class. See '/help msgcolor' for valid message "
+"classes."
+msgstr ""
+
+#, c-format
+msgid "%s is not a valid color. See '/help msgcolor' for valid colors."
+msgstr ""
+
+msgid ""
+"say &lt;message&gt;:  Send a message normally as if you weren't using a "
+"command."
+msgstr ""
+
+msgid "me &lt;action&gt;:  Send an IRC style action to a buddy or chat."
+msgstr ""
+
+msgid ""
+"debug &lt;option&gt;:  Send various debug information to the current "
+"conversation."
+msgstr ""
+
+msgid "clear: Clears the conversation scrollback."
+msgstr ""
+
+msgid "help &lt;command&gt;:  Help on a specific command."
+msgstr ""
+
+msgid "users:  Show the list of users in the chat."
+msgstr ""
+
+msgid "plugins: Show the plugins window."
+msgstr ""
+
+msgid "buddylist: Show the buddylist."
+msgstr ""
+
+msgid "accounts: Show the accounts window."
+msgstr ""
+
+msgid "debugwin: Show the debug window."
+msgstr ""
+
+msgid "prefs: Show the preference window."
+msgstr ""
+
+msgid "statuses: Show the savedstatuses window."
+msgstr ""
+
+msgid ""
+"msgcolor &lt;class&gt; &lt;foreground&gt; &lt;background&gt;: Set the color "
+"for different classes of messages in the conversation window.<br>    &lt;"
+"class&gt;: receive, send, highlight, action, timestamp<br>    &lt;foreground/"
+"background&gt;: black, red, green, blue, white, gray, darkgray, magenta, "
+"cyan, default<br><br>EXAMPLE:<br>    msgcolor send cyan default"
+msgstr ""
+
+msgid "Unable to open file."
+msgstr ""
+
+msgid "Debug Window"
+msgstr ""
+
+#. XXX: Setting the GROW_Y for the following widgets don't make sense. But right now
+#. * it's necessary to make the width of the debug window resizable ... like I said,
+#. * it doesn't make sense. The bug is likely in the packing in gntbox.c.
+#.
+msgid "Clear"
+msgstr ""
+
+msgid "Filter:"
+msgstr ""
+
+msgid "Pause"
+msgstr ""
+
+#, c-format
+msgid "File Transfers - %d%% of %d file"
+msgid_plural "File Transfers - %d%% of %d files"
+msgstr[0] ""
+msgstr[1] ""
+
+#. Create the window.
+msgid "File Transfers"
+msgstr ""
+
+msgid "Progress"
+msgstr ""
+
+msgid "Filename"
+msgstr ""
+
+msgid "Size"
+msgstr ""
+
+msgid "Speed"
+msgstr ""
+
+msgid "Remaining"
+msgstr ""
+
+#. XXX: Use of ggp_str_to_uin() is an ugly hack!
+msgid "Status"
+msgstr ""
+
+msgid "Close this window when all transfers finish"
+msgstr ""
+
+msgid "Clear finished transfers"
+msgstr ""
+
+msgid "Stop"
+msgstr ""
+
+msgid "Waiting for transfer to begin"
+msgstr ""
+
+msgid "Canceled"
+msgstr ""
+
+msgid "Failed"
+msgstr ""
+
+#, c-format
+msgid "%.2f KiB/s"
+msgstr ""
+
+msgid "Sent"
+msgstr ""
+
+msgid "Received"
+msgstr ""
+
+msgid "Finished"
+msgstr ""
+
+#, c-format
+msgid "The file was saved as %s."
+msgstr ""
+
+msgid "Sending"
+msgstr ""
+
+msgid "Receiving"
+msgstr ""
+
+#, c-format
+msgid "Conversation in %s on %s"
+msgstr ""
+
+#, c-format
+msgid "Conversation with %s on %s"
+msgstr ""
+
+msgid "%B %Y"
+msgstr ""
+
+msgid ""
+"System events will only be logged if the \"Log all status changes to system "
+"log\" preference is enabled."
+msgstr ""
+
+msgid ""
+"Instant messages will only be logged if the \"Log all instant messages\" "
+"preference is enabled."
+msgstr ""
+
+msgid ""
+"Chats will only be logged if the \"Log all chats\" preference is enabled."
+msgstr ""
+
+msgid "No logs were found"
+msgstr ""
+
+msgid "Total log size:"
+msgstr ""
+
+#. Search box *********
+msgid "Scroll/Search: "
+msgstr ""
+
+#, c-format
+msgid "Conversations in %s"
+msgstr ""
+
+#, c-format
+msgid "Conversations with %s"
+msgstr ""
+
+msgid "All Conversations"
+msgstr ""
+
+msgid "System Log"
+msgstr ""
+
+msgid "Calling ... "
+msgstr ""
+
+msgid "Hangup"
+msgstr ""
+
+#. Number of actions
+msgid "Accept"
+msgstr ""
+
+msgid "Reject"
+msgstr ""
+
+msgid "Call in progress."
+msgstr ""
+
+msgid "The call has been terminated."
+msgstr ""
+
+#, c-format
+msgid "%s wishes to start an audio session with you."
+msgstr ""
+
+#, c-format
+msgid "%s is trying to start an unsupported media session type with you."
+msgstr ""
+
+msgid "You have rejected the call."
+msgstr ""
+
+msgid "call: Make an audio call."
+msgstr ""
+
+msgid "Emails"
+msgstr ""
+
+msgid "You have mail!"
+msgstr ""
+
+msgid "Sender"
+msgstr ""
+
+msgid "Subject"
+msgstr ""
+
+#, c-format
+msgid "%s (%s) has %d new message."
+msgid_plural "%s (%s) has %d new messages."
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "New Mail"
+msgstr ""
+
+#, c-format
+msgid "Info for %s"
+msgstr ""
+
+msgid "Buddy Information"
+msgstr ""
+
+msgid "Continue"
+msgstr ""
+
+msgid "IM"
+msgstr ""
+
+msgid "Invite"
+msgstr ""
+
+msgid "(none)"
+msgstr ""
+
+msgid "URI"
+msgstr ""
+
+msgid "ERROR"
+msgstr ""
+
+msgid "loading plugin failed"
+msgstr ""
+
+msgid "unloading plugin failed"
+msgstr ""
+
+#, c-format
+msgid ""
+"Name: %s\n"
+"Version: %s\n"
+"Description: %s\n"
+"Author: %s\n"
+"Website: %s\n"
+"Filename: %s\n"
+msgstr ""
+
+msgid "Plugin need to be loaded before you can configure it."
+msgstr ""
+
+msgid "No configuration options for this plugin."
+msgstr ""
+
+msgid "Error loading plugin"
+msgstr ""
+
+msgid "The selected file is not a valid plugin."
+msgstr ""
+
+msgid ""
+"Please open the debug window and try again to see the exact error message."
+msgstr ""
+
+msgid "Select plugin to install"
+msgstr ""
+
+msgid "You can (un)load plugins from the following list."
+msgstr ""
+
+msgid "Install Plugin..."
+msgstr ""
+
+msgid "Configure Plugin"
+msgstr ""
+
+#. copy the preferences to tmp values...
+#. * I liked "take affect immediately" Oh well :-(
+#. (that should have been "effect," right?)
+#. Back to instant-apply! I win!  BU-HAHAHA!
+#. Create the window
+msgid "Preferences"
+msgstr ""
+
+msgid "Please enter a buddy to pounce."
+msgstr ""
+
+msgid "New Buddy Pounce"
+msgstr ""
+
+msgid "Edit Buddy Pounce"
+msgstr ""
+
+msgid "Pounce Who"
+msgstr ""
+
+#. Account:
+msgid "Account:"
+msgstr ""
+
+msgid "Buddy name:"
+msgstr ""
+
+#. Create the "Pounce When Buddy..." frame.
+msgid "Pounce When Buddy..."
+msgstr ""
+
+msgid "Signs on"
+msgstr ""
+
+msgid "Signs off"
+msgstr ""
+
+msgid "Goes away"
+msgstr ""
+
+msgid "Returns from away"
+msgstr ""
+
+msgid "Becomes idle"
+msgstr ""
+
+msgid "Is no longer idle"
+msgstr ""
+
+msgid "Starts typing"
+msgstr ""
+
+msgid "Pauses while typing"
+msgstr ""
+
+msgid "Stops typing"
+msgstr ""
+
+msgid "Sends a message"
+msgstr ""
+
+#. Create the "Action" frame.
+msgid "Action"
+msgstr ""
+
+msgid "Open an IM window"
+msgstr ""
+
+msgid "Pop up a notification"
+msgstr ""
+
+msgid "Send a message"
+msgstr ""
+
+msgid "Execute a command"
+msgstr ""
+
+msgid "Play a sound"
+msgstr ""
+
+msgid "Pounce only when my status is not Available"
+msgstr ""
+
+msgid "Recurring"
+msgstr ""
+
+msgid "Cannot create pounce"
+msgstr ""
+
+msgid "You do not have any accounts."
+msgstr ""
+
+msgid "You must create an account first before you can create a pounce."
+msgstr ""
+
+#, c-format
+msgid "Are you sure you want to delete the pounce on %s for %s?"
+msgstr ""
+
+msgid "Buddy Pounces"
+msgstr ""
+
+#, c-format
+msgid "%s has started typing to you (%s)"
+msgstr ""
+
+#, c-format
+msgid "%s has paused while typing to you (%s)"
+msgstr ""
+
+#, c-format
+msgid "%s has signed on (%s)"
+msgstr ""
+
+#, c-format
+msgid "%s has returned from being idle (%s)"
+msgstr ""
+
+#, c-format
+msgid "%s has returned from being away (%s)"
+msgstr ""
+
+#, c-format
+msgid "%s has stopped typing to you (%s)"
+msgstr ""
+
+#, c-format
+msgid "%s has signed off (%s)"
+msgstr ""
+
+#, c-format
+msgid "%s has become idle (%s)"
+msgstr ""
+
+#, c-format
+msgid "%s has gone away. (%s)"
+msgstr ""
+
+#, c-format
+msgid "%s has sent you a message. (%s)"
+msgstr ""
+
+msgid "Unknown pounce event. Please report this!"
+msgstr ""
+
+msgid "Based on keyboard use"
+msgstr ""
+
+msgid "From last sent message"
+msgstr ""
+
+msgid "Never"
+msgstr ""
+
+msgid "Show Idle Time"
+msgstr ""
+
+msgid "Show Offline Buddies"
+msgstr ""
+
+msgid "Notify buddies when you are typing"
+msgstr ""
+
+msgid "Log format"
+msgstr ""
+
+msgid "Log IMs"
+msgstr ""
+
+msgid "Log chats"
+msgstr ""
+
+msgid "Log status change events"
+msgstr ""
+
+msgid "Report Idle time"
+msgstr ""
+
+msgid "Change status when idle"
+msgstr ""
+
+msgid "Minutes before changing status"
+msgstr ""
+
+msgid "Change status to"
+msgstr ""
+
+msgid "Conversations"
+msgstr ""
+
+msgid "Logging"
+msgstr ""
+
+msgid "You must fill all the required fields."
+msgstr ""
+
+msgid "The required fields are underlined."
+msgstr ""
+
+msgid "Not implemented yet."
+msgstr ""
+
+msgid "Save File..."
+msgstr ""
+
+msgid "Open File..."
+msgstr ""
+
+msgid "Choose Location..."
+msgstr ""
+
+msgid "Hit 'Enter' to find more rooms of this category."
+msgstr ""
+
+msgid "Get"
+msgstr ""
+
+#. Create the window.
+msgid "Room List"
+msgstr ""
+
+msgid "Buddy logs in"
+msgstr ""
+
+msgid "Buddy logs out"
+msgstr ""
+
+msgid "Message received"
+msgstr ""
+
+msgid "Message received begins conversation"
+msgstr ""
+
+msgid "Message sent"
+msgstr ""
+
+msgid "Person enters chat"
+msgstr ""
+
+msgid "Person leaves chat"
+msgstr ""
+
+msgid "You talk in chat"
+msgstr ""
+
+msgid "Others talk in chat"
+msgstr ""
+
+msgid "Someone says your username in chat"
+msgstr ""
+
+msgid "GStreamer Failure"
+msgstr ""
+
+msgid "GStreamer failed to initialize."
+msgstr ""
+
+msgid "(default)"
+msgstr ""
+
+msgid "Select Sound File ..."
+msgstr ""
+
+msgid "Sound Preferences"
+msgstr ""
+
+msgid "Profiles"
+msgstr ""
+
+msgid "Automatic"
+msgstr ""
+
+msgid "Console Beep"
+msgstr ""
+
+msgid "Command"
+msgstr ""
+
+msgid "No Sound"
+msgstr ""
+
+msgid "Sound Method"
+msgstr ""
+
+msgid "Method: "
+msgstr ""
+
+#, c-format
+msgid ""
+"Sound Command\n"
+"(%s for filename)"
+msgstr ""
+
+#. Sound options
+msgid "Sound Options"
+msgstr ""
+
+msgid "Sounds when conversation has focus"
+msgstr ""
+
+msgid "Always"
+msgstr ""
+
+msgid "Only when available"
+msgstr ""
+
+msgid "Only when not available"
+msgstr ""
+
+msgid "Volume(0-100):"
+msgstr ""
+
+#. Sound events
+msgid "Sound Events"
+msgstr ""
+
+msgid "Event"
+msgstr ""
+
+msgid "File"
+msgstr ""
+
+msgid "Test"
+msgstr ""
+
+msgid "Reset"
+msgstr ""
+
+msgid "Choose..."
+msgstr ""
+
+#, c-format
+msgid "Are you sure you want to delete \"%s\""
+msgstr ""
+
+msgid "Delete Status"
+msgstr ""
+
+msgid "Saved Statuses"
+msgstr ""
+
+msgid "Title"
+msgstr ""
+
+msgid "Type"
+msgstr ""
+
+#. Statuses are almost all the same. Define a macro to reduce code repetition.
+#. PurpleStatusPrimitive
+#. id - use default
+#. name - use default
+#. saveable
+#. user_settable
+#. not independent
+#. Attributes - each status can have a message.
+msgid "Message"
+msgstr ""
+
+#. Use
+msgid "Use"
+msgstr ""
+
+msgid "Invalid title"
+msgstr ""
+
+msgid "Please enter a non-empty title for the status."
+msgstr ""
+
+msgid "Duplicate title"
+msgstr ""
+
+msgid "Please enter a different title for the status."
+msgstr ""
+
+msgid "Substatus"
+msgstr ""
+
+msgid "Status:"
+msgstr ""
+
+msgid "Message:"
+msgstr ""
+
+msgid "Edit Status"
+msgstr ""
+
+msgid "Use different status for following accounts"
+msgstr ""
+
+#. Save & Use
+msgid "Save & Use"
+msgstr ""
+
+msgid "Certificates"
+msgstr ""
+
+msgid "Sounds"
+msgstr ""
+
+msgid "Statuses"
+msgstr ""
+
+msgid "Error loading the plugin."
+msgstr ""
+
+msgid "Couldn't find X display"
+msgstr ""
+
+msgid "Couldn't find window"
+msgstr ""
+
+msgid "This plugin cannot be loaded because it was not built with X11 support."
+msgstr ""
+
+msgid "GntClipboard"
+msgstr ""
+
+msgid "Clipboard plugin"
+msgstr ""
+
+msgid ""
+"When the gnt clipboard contents change, the contents are made available to "
+"X, if possible."
+msgstr ""
+
+#, c-format
+msgid "%s just signed on"
+msgstr ""
+
+#, c-format
+msgid "%s just signed off"
+msgstr ""
+
+#, c-format
+msgid "%s sent you a message"
+msgstr ""
+
+#, c-format
+msgid "%s said your nick in %s"
+msgstr ""
+
+#, c-format
+msgid "%s sent a message in %s"
+msgstr ""
+
+msgid "Buddy signs on/off"
+msgstr ""
+
+msgid "You receive an IM"
+msgstr ""
+
+msgid "Someone speaks in a chat"
+msgstr ""
+
+msgid "Someone says your name in a chat"
+msgstr ""
+
+msgid "Notify with a toaster when"
+msgstr ""
+
+msgid "Beep too!"
+msgstr ""
+
+msgid "Set URGENT for the terminal window."
+msgstr ""
+
+msgid "GntGf"
+msgstr ""
+
+msgid "Toaster plugin"
+msgstr ""
+
+#, c-format
+msgid "<b>Conversation with %s on %s:</b><br>"
+msgstr ""
+
+msgid "History Plugin Requires Logging"
+msgstr ""
+
+msgid ""
+"Logging can be enabled from Tools -> Preferences -> Logging.\n"
+"\n"
+"Enabling logs for instant messages and/or chats will activate history for "
+"the same conversation type(s)."
+msgstr ""
+
+msgid "GntHistory"
+msgstr ""
+
+msgid "Shows recently logged conversations in new conversations."
+msgstr ""
+
+msgid ""
+"When a new conversation is opened this plugin will insert the last "
+"conversation into the current conversation."
+msgstr ""
+
+msgid "Online"
+msgstr ""
+
+msgid "Offline"
+msgstr ""
+
+msgid "Online Buddies"
+msgstr ""
+
+msgid "Offline Buddies"
+msgstr ""
+
+msgid "Online/Offline"
+msgstr ""
+
+msgid "Meebo"
+msgstr ""
+
+msgid "No Grouping"
+msgstr ""
+
+msgid "Nested Subgroup"
+msgstr ""
+
+msgid "Nested Grouping (experimental)"
+msgstr ""
+
+msgid "Provides alternate buddylist grouping options."
+msgstr ""
+
+msgid "Lastlog"
+msgstr ""
+
+#. Translator Note: The "backlog" is the conversation buffer/history.
+msgid "lastlog: Searches for a substring in the backlog."
+msgstr ""
+
+msgid "GntLastlog"
+msgstr ""
+
+msgid "Lastlog plugin."
+msgstr ""
+
+#, c-format
+msgid ""
+"\n"
+"Fetching TinyURL..."
+msgstr ""
+
+msgid "Only create TinyURL for urls of this length or greater"
+msgstr ""
+
+msgid "TinyURL (or other) address prefix"
+msgstr ""
+
+msgid "TinyURL"
+msgstr ""
+
+msgid "TinyURL plugin"
+msgstr ""
+
+msgid "When receiving a message with URL(s), TinyURL for easier copying"
+msgstr ""
+
+msgid "accounts"
+msgstr ""
+
+msgid "Password is required to sign on."
+msgstr ""
+
+#, c-format
+msgid "Enter password for %s (%s)"
+msgstr ""
+
+msgid "Enter Password"
+msgstr ""
+
+msgid "Save password"
+msgstr ""
+
+#, c-format
+msgid "Missing protocol plugin for %s"
+msgstr ""
+
+msgid "Connection Error"
+msgstr ""
+
+msgid "New passwords do not match."
+msgstr ""
+
+msgid "Fill out all fields completely."
+msgstr ""
+
+msgid "Original password"
+msgstr ""
+
+msgid "New password"
+msgstr ""
+
+msgid "New password (again)"
+msgstr ""
+
+#, c-format
+msgid "Change password for %s"
+msgstr ""
+
+msgid "Please enter your current password and your new password."
+msgstr ""
+
+#, c-format
+msgid "Change user information for %s"
+msgstr ""
+
+msgid "Set User Info"
+msgstr ""
+
+msgid "Unknown"
+msgstr ""
+
+msgid "Buddies"
+msgstr ""
+
+msgid "buddy list"
+msgstr ""
+
+msgid "(DOES NOT MATCH)"
+msgstr ""
+
+#. Make messages
+#, c-format
+msgid "%s has presented the following certificate for just-this-once use:"
+msgstr ""
+
+#, c-format
+msgid ""
+"Common name: %s %s\n"
+"Fingerprint (SHA1): %s"
+msgstr ""
+
+#. TODO: Find what the handle ought to be
+msgid "Single-use Certificate Verification"
+msgstr ""
+
+#. Scheme name
+#. Pool name
+msgid "Certificate Authorities"
+msgstr ""
+
+#. Scheme name
+#. Pool name
+msgid "SSL Peers Cache"
+msgstr ""
+
+#. Make messages
+#, c-format
+msgid "Accept certificate for %s?"
+msgstr ""
+
+#. TODO: Find what the handle ought to be
+msgid "SSL Certificate Verification"
+msgstr ""
+
+msgid "_View Certificate..."
+msgstr ""
+
+#. Prompt the user to authenticate the certificate
+#. vrq will be completed by user_auth
+#, c-format
+msgid ""
+"The certificate presented by \"%s\" is self-signed. It cannot be "
+"automatically checked."
+msgstr ""
+
+#, c-format
+msgid "The certificate chain presented for %s is not valid."
+msgstr ""
+
+#. TODO: Make this error either block the ensuing SSL
+#. connection error until the user dismisses this one, or
+#. stifle it.
+#. TODO: Probably wrong.
+#. TODO: Probably wrong
+msgid "SSL Certificate Error"
+msgstr ""
+
+msgid "Invalid certificate chain"
+msgstr ""
+
+#. vrq will be completed by user_auth
+msgid ""
+"You have no database of root certificates, so this certificate cannot be "
+"validated."
+msgstr ""
+
+#. vrq will be completed by user_auth
+msgid ""
+"The root certificate this one claims to be issued by is unknown to Pidgin."
+msgstr ""
+
+#, c-format
+msgid ""
+"The certificate chain presented by %s does not have a valid digital "
+"signature from the Certificate Authority from which it claims to have a "
+"signature."
+msgstr ""
+
+msgid "Invalid certificate authority signature"
+msgstr ""
+
+#. Prompt the user to authenticate the certificate
+#. TODO: Provide the user with more guidance about why he is
+#. being prompted
+#. vrq will be completed by user_auth
+#, c-format
+msgid ""
+"The certificate presented by \"%s\" claims to be from \"%s\" instead.  This "
+"could mean that you are not connecting to the service you believe you are."
+msgstr ""
+
+#. Make messages
+#, c-format
+msgid ""
+"Common name: %s\n"
+"\n"
+"Fingerprint (SHA1): %s\n"
+"\n"
+"Activation date: %s\n"
+"Expiration date: %s\n"
+msgstr ""
+
+#. TODO: Find what the handle ought to be
+msgid "Certificate Information"
+msgstr ""
+
+msgid "Registration Error"
+msgstr ""
+
+msgid "Unregistration Error"
+msgstr ""
+
+#, c-format
+msgid "+++ %s signed on"
+msgstr ""
+
+#, c-format
+msgid "+++ %s signed off"
+msgstr ""
+
+#. Unknown error
+#. Unknown error!
+msgid "Unknown error"
+msgstr ""
+
+msgid "Unable to send message: The message is too large."
+msgstr ""
+
+#, c-format
+msgid "Unable to send message to %s."
+msgstr ""
+
+msgid "The message is too large."
+msgstr ""
+
+msgid "Unable to send message."
+msgstr ""
+
+msgid "Send Message"
+msgstr ""
+
+msgid "_Send Message"
+msgstr ""
+
+#, c-format
+msgid "%s entered the room."
+msgstr ""
+
+#, c-format
+msgid "%s [<I>%s</I>] entered the room."
+msgstr ""
+
+#, c-format
+msgid "You are now known as %s"
+msgstr ""
+
+#, c-format
+msgid "%s is now known as %s"
+msgstr ""
+
+#, c-format
+msgid "%s left the room."
+msgstr ""
+
+#, c-format
+msgid "%s left the room (%s)."
+msgstr ""
+
+msgid "Invite to chat"
+msgstr ""
+
+#. Put our happy label in it.
+msgid ""
+"Please enter the name of the user you wish to invite, along with an optional "
+"invite message."
+msgstr ""
+
+#, c-format
+msgid "Failed to get connection: %s"
+msgstr ""
+
+#, c-format
+msgid "Failed to get name: %s"
+msgstr ""
+
+#, c-format
+msgid "Failed to get serv name: %s"
+msgstr ""
+
+msgid "Purple's D-BUS server is not running for the reason listed below"
+msgstr ""
+
+msgid "No name"
+msgstr ""
+
+msgid "Unable to create new resolver process\n"
+msgstr ""
+
+msgid "Unable to send request to resolver process\n"
+msgstr ""
+
+#, c-format
+msgid ""
+"Error resolving %s:\n"
+"%s"
+msgstr ""
+
+#, c-format
+msgid "Error resolving %s: %d"
+msgstr ""
+
+#, c-format
+msgid ""
+"Error reading from resolver process:\n"
+"%s"
+msgstr ""
+
+#, c-format
+msgid "Resolver process exited without answering our request"
+msgstr ""
+
+#, c-format
+msgid "Thread creation failure: %s"
+msgstr ""
+
+msgid "Unknown reason"
+msgstr ""
+
+#, c-format
+msgid ""
+"Error reading %s: \n"
+"%s.\n"
+msgstr ""
+
+#, c-format
+msgid ""
+"Error writing %s: \n"
+"%s.\n"
+msgstr ""
+
+#, c-format
+msgid ""
+"Error accessing %s: \n"
+"%s.\n"
+msgstr ""
+
+msgid "Directory is not writable."
+msgstr ""
+
+msgid "Cannot send a file of 0 bytes."
+msgstr ""
+
+msgid "Cannot send a directory."
+msgstr ""
+
+#, c-format
+msgid "%s is not a regular file. Cowardly refusing to overwrite it.\n"
+msgstr ""
+
+#, c-format
+msgid "%s wants to send you %s (%s)"
+msgstr ""
+
+#, c-format
+msgid "%s wants to send you a file"
+msgstr ""
+
+#, c-format
+msgid "Accept file transfer request from %s?"
+msgstr ""
+
+#, c-format
+msgid ""
+"A file is available for download from:\n"
+"Remote host: %s\n"
+"Remote port: %d"
+msgstr ""
+
+#, c-format
+msgid "%s is offering to send file %s"
+msgstr ""
+
+#, c-format
+msgid "%s is not a valid filename.\n"
+msgstr ""
+
+#, c-format
+msgid "Offering to send %s to %s"
+msgstr ""
+
+#, c-format
+msgid "Starting transfer of %s from %s"
+msgstr ""
+
+#, c-format
+msgid "Transfer of file %s complete"
+msgstr ""
+
+msgid "File transfer complete"
+msgstr ""
+
+#, c-format
+msgid "You canceled the transfer of %s"
+msgstr ""
+
+msgid "File transfer cancelled"
+msgstr ""
+
+#, c-format
+msgid "%s canceled the transfer of %s"
+msgstr ""
+
+#, c-format
+msgid "%s canceled the file transfer"
+msgstr ""
+
+#, c-format
+msgid "File transfer to %s failed."
+msgstr ""
+
+#, c-format
+msgid "File transfer from %s failed."
+msgstr ""
+
+msgid "Run the command in a terminal"
+msgstr ""
+
+msgid "The command used to handle \"aim\" URLs, if enabled."
+msgstr ""
+
+msgid "The command used to handle \"gg\" URLs, if enabled."
+msgstr ""
+
+msgid "The command used to handle \"icq\" URLs, if enabled."
+msgstr ""
+
+msgid "The command used to handle \"irc\" URLs, if enabled."
+msgstr ""
+
+msgid "The command used to handle \"msnim\" URLs, if enabled."
+msgstr ""
+
+msgid "The command used to handle \"sip\" URLs, if enabled."
+msgstr ""
+
+msgid "The command used to handle \"xmpp\" URLs, if enabled."
+msgstr ""
+
+msgid "The command used to handle \"ymsgr\" URLs, if enabled."
+msgstr ""
+
+msgid "The handler for \"aim\" URLs"
+msgstr ""
+
+msgid "The handler for \"gg\" URLs"
+msgstr ""
+
+msgid "The handler for \"icq\" URLs"
+msgstr ""
+
+msgid "The handler for \"irc\" URLs"
+msgstr ""
+
+msgid "The handler for \"msnim\" URLs"
+msgstr ""
+
+msgid "The handler for \"sip\" URLs"
+msgstr ""
+
+msgid "The handler for \"xmpp\" URLs"
+msgstr ""
+
+msgid "The handler for \"ymsgr\" URLs"
+msgstr ""
+
+msgid ""
+"True if the command specified in the \"command\" key should handle \"aim\" "
+"URLs."
+msgstr ""
+
+msgid ""
+"True if the command specified in the \"command\" key should handle \"gg\" "
+"URLs."
+msgstr ""
+
+msgid ""
+"True if the command specified in the \"command\" key should handle \"icq\" "
+"URLs."
+msgstr ""
+
+msgid ""
+"True if the command specified in the \"command\" key should handle \"irc\" "
+"URLs."
+msgstr ""
+
+msgid ""
+"True if the command specified in the \"command\" key should handle \"msnim\" "
+"URLs."
+msgstr ""
+
+msgid ""
+"True if the command specified in the \"command\" key should handle \"sip\" "
+"URLs."
+msgstr ""
+
+msgid ""
+"True if the command specified in the \"command\" key should handle \"xmpp\" "
+"URLs."
+msgstr ""
+
+msgid ""
+"True if the command specified in the \"command\" key should handle \"ymsgr\" "
+"URLs."
+msgstr ""
+
+msgid ""
+"True if the command used to handle this type of URL should be run in a "
+"terminal."
+msgstr ""
+
+msgid "Whether the specified command should handle \"aim\" URLs"
+msgstr ""
+
+msgid "Whether the specified command should handle \"gg\" URLs"
+msgstr ""
+
+msgid "Whether the specified command should handle \"icq\" URLs"
+msgstr ""
+
+msgid "Whether the specified command should handle \"irc\" URLs"
+msgstr ""
+
+msgid "Whether the specified command should handle \"msnim\" URLs"
+msgstr ""
+
+msgid "Whether the specified command should handle \"sip\" URLs"
+msgstr ""
+
+msgid "Whether the specified command should handle \"xmpp\" URLs"
+msgstr ""
+
+msgid "Whether the specified command should handle \"ymsgr\" URLs"
+msgstr ""
+
+msgid "<b><font color=\"red\">The logger has no read function</font></b>"
+msgstr ""
+
+msgid "HTML"
+msgstr ""
+
+msgid "Plain text"
+msgstr ""
+
+msgid "Old flat format"
+msgstr ""
+
+msgid "Logging of this conversation failed."
+msgstr ""
+
+msgid "XML"
+msgstr ""
+
+#, c-format
+msgid ""
+"<font color=\"#16569E\"><font size=\"2\">(%s)</font> <b>%s &lt;AUTO-"
+"REPLY&gt;:</b></font> %s<br/>\n"
+msgstr ""
+
+#, c-format
+msgid ""
+"<font color=\"#A82F2F\"><font size=\"2\">(%s)</font> <b>%s &lt;AUTO-"
+"REPLY&gt;:</b></font> %s<br/>\n"
+msgstr ""
+
+msgid "<font color=\"red\"><b>Unable to find log path!</b></font>"
+msgstr ""
+
+#, c-format
+msgid "<font color=\"red\"><b>Could not read file: %s</b></font>"
+msgstr ""
+
+#, c-format
+msgid "(%s) %s <AUTO-REPLY>: %s\n"
+msgstr ""
+
+#, c-format
+msgid "You are using %s, but this plugin requires %s."
+msgstr ""
+
+msgid "This plugin has not defined an ID."
+msgstr ""
+
+#, c-format
+msgid "Plugin magic mismatch %d (need %d)"
+msgstr ""
+
+#, c-format
+msgid "ABI version mismatch %d.%d.x (need %d.%d.x)"
+msgstr ""
+
+msgid ""
+"Plugin does not implement all required functions (list_icon, login and close)"
+msgstr ""
+
+#, c-format
+msgid ""
+"The required plugin %s was not found. Please install this plugin and try "
+"again."
+msgstr ""
+
+msgid "Unable to load the plugin"
+msgstr ""
+
+#, c-format
+msgid "The required plugin %s was unable to load."
+msgstr ""
+
+msgid "Unable to load your plugin."
+msgstr ""
+
+#, c-format
+msgid "%s requires %s, but it failed to unload."
+msgstr ""
+
+msgid "Autoaccept"
+msgstr ""
+
+msgid "Auto-accept file transfer requests from selected users."
+msgstr ""
+
+#, c-format
+msgid "Autoaccepted file transfer of \"%s\" from \"%s\" completed."
+msgstr ""
+
+msgid "Autoaccept complete"
+msgstr ""
+
+#, c-format
+msgid "When a file-transfer request arrives from %s"
+msgstr ""
+
+msgid "Set Autoaccept Setting"
+msgstr ""
+
+msgid "_Save"
+msgstr ""
+
+msgid "_Cancel"
+msgstr ""
+
+msgid "Ask"
+msgstr ""
+
+msgid "Auto Accept"
+msgstr ""
+
+msgid "Auto Reject"
+msgstr ""
+
+msgid "Autoaccept File Transfers..."
+msgstr ""
+
+#. XXX: Is there a better way than this? There really should be.
+msgid ""
+"Path to save the files in\n"
+"(Please provide the full path)"
+msgstr ""
+
+msgid "Automatically reject from users not in buddy list"
+msgstr ""
+
+msgid ""
+"Notify with a popup when an autoaccepted file transfer is complete\n"
+"(only when there's no conversation with the sender)"
+msgstr ""
+
+msgid "Create a new directory for each user"
+msgstr ""
+
+msgid "Notes"
+msgstr ""
+
+msgid "Enter your notes below..."
+msgstr ""
+
+msgid "Edit Notes..."
+msgstr ""
+
+#. *< major version
+#. *< minor version
+#. *< type
+#. *< ui_requirement
+#. *< flags
+#. *< dependencies
+#. *< priority
+#. *< id
+msgid "Buddy Notes"
+msgstr ""
+
+#. *< name
+#. *< version
+msgid "Store notes on particular buddies."
+msgstr ""
+
+#. *< summary
+msgid "Adds the option to store notes for buddies on your buddy list."
+msgstr ""
+
+#. *< type
+#. *< ui_requirement
+#. *< flags
+#. *< dependencies
+#. *< priority
+#. *< id
+msgid "Cipher Test"
+msgstr ""
+
+#. *< name
+#. *< version
+#. *  summary
+#. *  description
+msgid "Tests the ciphers that ship with libpurple."
+msgstr ""
+
+#. *< type
+#. *< ui_requirement
+#. *< flags
+#. *< dependencies
+#. *< priority
+#. *< id
+msgid "DBus Example"
+msgstr ""
+
+#. *< name
+#. *< version
+#. *  summary
+#. *  description
+msgid "DBus Plugin Example"
+msgstr ""
+
+#. *< type
+#. *< ui_requirement
+#. *< flags
+#. *< dependencies
+#. *< priority
+#. *< id
+msgid "File Control"
+msgstr ""
+
+#. *< name
+#. *< version
+#. *  summary
+#. *  description
+msgid "Allows control by entering commands in a file."
+msgstr ""
+
+msgid "Minutes"
+msgstr ""
+
+#. This is a cultural reference.  Dy'er Mak'er is a song by Led Zeppelin.
+#. If that doesn't translate well into your language, drop the 's before translating.
+msgid "I'dle Mak'er"
+msgstr ""
+
+msgid "Set Account Idle Time"
+msgstr ""
+
+msgid "_Set"
+msgstr ""
+
+msgid "None of your accounts are idle."
+msgstr ""
+
+msgid "Unset Account Idle Time"
+msgstr ""
+
+msgid "_Unset"
+msgstr ""
+
+msgid "Set Idle Time for All Accounts"
+msgstr ""
+
+msgid "Unset Idle Time for All Idled Accounts"
+msgstr ""
+
+msgid "Allows you to hand-configure how long you've been idle"
+msgstr ""
+
+#. *< type
+#. *< ui_requirement
+#. *< flags
+#. *< dependencies
+#. *< priority
+#. *< id
+msgid "IPC Test Client"
+msgstr ""
+
+#. *< name
+#. *< version
+#. *  summary
+msgid "Test plugin IPC support, as a client."
+msgstr ""
+
+#. *  description
+msgid ""
+"Test plugin IPC support, as a client. This locates the server plugin and "
+"calls the commands registered."
+msgstr ""
+
+#. *< type
+#. *< ui_requirement
+#. *< flags
+#. *< dependencies
+#. *< priority
+#. *< id
+msgid "IPC Test Server"
+msgstr ""
+
+#. *< name
+#. *< version
+#. *  summary
+msgid "Test plugin IPC support, as a server."
+msgstr ""
+
+#. *  description
+msgid "Test plugin IPC support, as a server. This registers the IPC commands."
+msgstr ""
+
+msgid "Join/Part Hiding Configuration"
+msgstr ""
+
+msgid "Minimum Room Size"
+msgstr ""
+
+msgid "User Inactivity Timeout (in minutes)"
+msgstr ""
+
+msgid "Apply hiding rules to buddies"
+msgstr ""
+
+#. *< type
+#. *< ui_requirement
+#. *< flags
+#. *< dependencies
+#. *< priority
+#. *< id
+msgid "Join/Part Hiding"
+msgstr ""
+
+#. *< name
+#. *< version
+#. *  summary
+msgid "Hides extraneous join/part messages."
+msgstr ""
+
+#. *  description
+msgid ""
+"This plugin hides join/part messages in large rooms, except for those users "
+"actively taking part in a conversation."
+msgstr ""
+
+#. This is used in the place of a timezone abbreviation if the
+#. * offset is way off.  The user should never really see it, but
+#. * it's here just in case.  The parens are to make it clear it's
+#. * not a real timezone.
+msgid "(UTC)"
+msgstr ""
+
+msgid "User is offline."
+msgstr ""
+
+msgid "Auto-response sent:"
+msgstr ""
+
+#, c-format
+msgid "%s has signed off."
+msgstr ""
+
+msgid "One or more messages may have been undeliverable."
+msgstr ""
+
+msgid "You were disconnected from the server."
+msgstr ""
+
+msgid ""
+"You are currently disconnected. Messages will not be received unless you are "
+"logged in."
+msgstr ""
+
+msgid "Message could not be sent because the maximum length was exceeded."
+msgstr ""
+
+msgid "Message could not be sent."
+msgstr ""
+
+#. The names of IM clients are marked for translation at the request of
+#. translators who wanted to transliterate them.  Many translators
+#. choose to leave them alone.  Choose what's best for your language.
+msgid "Adium"
+msgstr ""
+
+#. The names of IM clients are marked for translation at the request of
+#. translators who wanted to transliterate them.  Many translators
+#. choose to leave them alone.  Choose what's best for your language.
+msgid "Fire"
+msgstr ""
+
+#. The names of IM clients are marked for translation at the request of
+#. translators who wanted to transliterate them.  Many translators
+#. choose to leave them alone.  Choose what's best for your language.
+msgid "Messenger Plus!"
+msgstr ""
+
+#. The names of IM clients are marked for translation at the request of
+#. translators who wanted to transliterate them.  Many translators
+#. choose to leave them alone.  Choose what's best for your language.
+msgid "QIP"
+msgstr ""
+
+#. The names of IM clients are marked for translation at the request of
+#. translators who wanted to transliterate them.  Many translators
+#. choose to leave them alone.  Choose what's best for your language.
+msgid "MSN Messenger"
+msgstr ""
+
+#. The names of IM clients are marked for translation at the request of
+#. translators who wanted to transliterate them.  Many translators
+#. choose to leave them alone.  Choose what's best for your language.
+msgid "Trillian"
+msgstr ""
+
+#. The names of IM clients are marked for translation at the request of
+#. translators who wanted to transliterate them.  Many translators
+#. choose to leave them alone.  Choose what's best for your language.
+msgid "aMSN"
+msgstr ""
+
+#. Add general preferences.
+msgid "General Log Reading Configuration"
+msgstr ""
+
+msgid "Fast size calculations"
+msgstr ""
+
+msgid "Use name heuristics"
+msgstr ""
+
+#. Add Log Directory preferences.
+msgid "Log Directory"
+msgstr ""
+
+#. *< type
+#. *< ui_requirement
+#. *< flags
+#. *< dependencies
+#. *< priority
+#. *< id
+msgid "Log Reader"
+msgstr ""
+
+#. *< name
+#. *< version
+#. * summary
+msgid "Includes other IM clients' logs in the log viewer."
+msgstr ""
+
+#. * description
+msgid ""
+"When viewing logs, this plugin will include logs from other IM clients. "
+"Currently, this includes Adium, MSN Messenger, and Trillian.\n"
+"\n"
+"WARNING: This plugin is still alpha code and may crash frequently.  Use it "
+"at your own risk!"
+msgstr ""
+
+msgid "Mono Plugin Loader"
+msgstr ""
+
+msgid "Loads .NET plugins with Mono."
+msgstr ""
+
+msgid "Add new line in IMs"
+msgstr ""
+
+msgid "Add new line in Chats"
+msgstr ""
+
+#. *< magic
+#. *< major version
+#. *< minor version
+#. *< type
+#. *< ui_requirement
+#. *< flags
+#. *< dependencies
+#. *< priority
+#. *< id
+msgid "New Line"
+msgstr ""
+
+#. *< name
+#. *< version
+msgid "Prepends a newline to displayed message."
+msgstr ""
+
+#. *< summary
+msgid ""
+"Prepends a newline to messages so that the rest of the message appears below "
+"the username in the conversation window."
+msgstr ""
+
+msgid "Offline Message Emulation"
+msgstr ""
+
+msgid "Save messages sent to an offline user as pounce."
+msgstr ""
+
+msgid ""
+"The rest of the messages will be saved as pounce. You can edit/delete the "
+"pounce from the `Buddy Pounce' dialog."
+msgstr ""
+
+#, c-format
+msgid ""
+"\"%s\" is currently offline. Do you want to save the rest of the messages in "
+"a pounce and automatically send them when \"%s\" logs back in?"
+msgstr ""
+
+msgid "Offline Message"
+msgstr ""
+
+msgid "You can edit/delete the pounce from the `Buddy Pounces' dialog"
+msgstr ""
+
+msgid "Yes"
+msgstr ""
+
+msgid "No"
+msgstr ""
+
+msgid "Save offline messages in pounce"
+msgstr ""
+
+msgid "Do not ask. Always save in pounce."
+msgstr ""
+
+msgid "One Time Password"
+msgstr ""
+
+#. *< type
+#. *< ui_requirement
+#. *< flags
+#. *< dependencies
+#. *< priority
+#. *< id
+msgid "One Time Password Support"
+msgstr ""
+
+#. *< name
+#. *< version
+#. *  summary
+msgid "Enforce that passwords are used only once."
+msgstr ""
+
+#. *  description
+msgid ""
+"Allows you to enforce on a per-account basis that passwords not being saved "
+"are only used in a single successful connection.\n"
+"Note: The account password must not be saved for this to work."
+msgstr ""
+
+#. *< type
+#. *< ui_requirement
+#. *< flags
+#. *< dependencies
+#. *< priority
+#. *< id
+msgid "Perl Plugin Loader"
+msgstr ""
+
+#. *< name
+#. *< version
+#. *< summary
+msgid "Provides support for loading perl plugins."
+msgstr ""
+
+msgid "Psychic Mode"
+msgstr ""
+
+msgid "Psychic mode for incoming conversation"
+msgstr ""
+
+msgid ""
+"Causes conversation windows to appear as other users begin to message you.  "
+"This works for AIM, ICQ, XMPP, Sametime, and Yahoo!"
+msgstr ""
+
+msgid "You feel a disturbance in the force..."
+msgstr ""
+
+msgid "Only enable for users on the buddy list"
+msgstr ""
+
+msgid "Disable when away"
+msgstr ""
+
+msgid "Display notification message in conversations"
+msgstr ""
+
+msgid "Raise psychic conversations"
+msgstr ""
+
+#. *< type
+#. *< ui_requirement
+#. *< flags
+#. *< dependencies
+#. *< priority
+#. *< id
+msgid "Signals Test"
+msgstr ""
+
+#. *< name
+#. *< version
+#. *  summary
+#. *  description
+msgid "Test to see that all signals are working properly."
+msgstr ""
+
+#. *< type
+#. *< ui_requirement
+#. *< flags
+#. *< dependencies
+#. *< priority
+#. *< id
+msgid "Simple Plugin"
+msgstr ""
+
+#. *< name
+#. *< version
+#. *  summary
+#. *  description
+msgid "Tests to see that most things are working."
+msgstr ""
+
+#. Scheme name
+msgid "X.509 Certificates"
+msgstr ""
+
+#. *< type
+#. *< ui_requirement
+#. *< flags
+#. *< dependencies
+#. *< priority
+#. *< id
+msgid "GNUTLS"
+msgstr ""
+
+#. *< name
+#. *< version
+#. *  summary
+#. *  description
+msgid "Provides SSL support through GNUTLS."
+msgstr ""
+
+#. *< type
+#. *< ui_requirement
+#. *< flags
+#. *< dependencies
+#. *< priority
+#. *< id
+msgid "NSS"
+msgstr ""
+
+#. *< name
+#. *< version
+#. *  summary
+#. *  description
+msgid "Provides SSL support through Mozilla NSS."
+msgstr ""
+
+#. *< type
+#. *< ui_requirement
+#. *< flags
+#. *< dependencies
+#. *< priority
+#. *< id
+msgid "SSL"
+msgstr ""
+
+#. *< name
+#. *< version
+#. *  summary
+#. *  description
+msgid "Provides a wrapper around SSL support libraries."
+msgstr ""
+
+#, c-format
+msgid "%s is no longer away."
+msgstr ""
+
+#, c-format
+msgid "%s has gone away."
+msgstr ""
+
+#, c-format
+msgid "%s has become idle."
+msgstr ""
+
+#, c-format
+msgid "%s is no longer idle."
+msgstr ""
+
+#, c-format
+msgid "%s has signed on."
+msgstr ""
+
+msgid "Notify When"
+msgstr ""
+
+msgid "Buddy Goes _Away"
+msgstr ""
+
+msgid "Buddy Goes _Idle"
+msgstr ""
+
+msgid "Buddy _Signs On/Off"
+msgstr ""
+
+#. *< type
+#. *< ui_requirement
+#. *< flags
+#. *< dependencies
+#. *< priority
+#. *< id
+msgid "Buddy State Notification"
+msgstr ""
+
+#. *< name
+#. *< version
+#. *  summary
+#. *  description
+msgid ""
+"Notifies in a conversation window when a buddy goes or returns from away or "
+"idle."
+msgstr ""
+
+msgid "Tcl Plugin Loader"
+msgstr ""
+
+msgid "Provides support for loading Tcl plugins"
+msgstr ""
+
+msgid ""
+"Unable to detect ActiveTCL installation. If you wish to use TCL plugins, "
+"install ActiveTCL from http://www.activestate.com\n"
+msgstr ""
+
+msgid ""
+"The Apple Bonjour For Windows toolkit wasn't found, see the FAQ at: http://d."
+"pidgin.im/BonjourWindows for more information."
+msgstr ""
+
+msgid "Unable to listen for incoming IM connections\n"
+msgstr ""
+
+msgid ""
+"Unable to establish connection with the local mDNS server.  Is it running?"
+msgstr ""
+
+msgid "First name"
+msgstr ""
+
+msgid "Last name"
+msgstr ""
+
+msgid "Email"
+msgstr ""
+
+msgid "AIM Account"
+msgstr ""
+
+msgid "XMPP Account"
+msgstr ""
+
+#. *< type
+#. *< ui_requirement
+#. *< flags
+#. *< dependencies
+#. *< priority
+#. *< id
+#. *< name
+#. *< version
+#. *  summary
+#. *  description
+msgid "Bonjour Protocol Plugin"
+msgstr ""
+
+msgid "Purple Person"
+msgstr ""
+
+#. Creating the options for the protocol
+msgid "Local Port"
+msgstr ""
+
+msgid "Bonjour"
+msgstr ""
+
+#, c-format
+msgid "%s has closed the conversation."
+msgstr ""
+
+msgid "Unable to send the message, the conversation couldn't be started."
+msgstr ""
+
+msgid "Cannot open socket"
+msgstr ""
+
+msgid "Could not bind socket to port"
+msgstr ""
+
+msgid "Could not listen on socket"
+msgstr ""
+
+msgid "Error communicating with local mDNSResponder."
+msgstr ""
+
+msgid "Invalid proxy settings"
+msgstr ""
+
+msgid ""
+"Either the host name or port number specified for your given proxy type is "
+"invalid."
+msgstr ""
+
+msgid "Token Error"
+msgstr ""
+
+msgid "Unable to fetch the token.\n"
+msgstr ""
+
+msgid "Save Buddylist..."
+msgstr ""
+
+msgid "Your buddylist is empty, nothing was written to the file."
+msgstr ""
+
+msgid "Buddylist saved successfully!"
+msgstr ""
+
+#, c-format
+msgid "Couldn't write buddy list for %s to %s"
+msgstr ""
+
+msgid "Couldn't load buddylist"
+msgstr ""
+
+msgid "Load Buddylist..."
+msgstr ""
+
+msgid "Buddylist loaded successfully!"
+msgstr ""
+
+msgid "Save buddylist..."
+msgstr ""
+
+msgid "Load buddylist from file..."
+msgstr ""
+
+msgid "Fill in the registration fields."
+msgstr ""
+
+msgid "Passwords do not match."
+msgstr ""
+
+msgid "Unable to register new account. Error occurred.\n"
+msgstr ""
+
+msgid "New Gadu-Gadu Account Registered"
+msgstr ""
+
+msgid "Registration completed successfully!"
+msgstr ""
+
+msgid "Password"
+msgstr ""
+
+msgid "Password (retype)"
+msgstr ""
+
+msgid "Enter current token"
+msgstr ""
+
+msgid "Current token"
+msgstr ""
+
+msgid "Register New Gadu-Gadu Account"
+msgstr ""
+
+msgid "Please, fill in the following fields"
+msgstr ""
+
+msgid "City"
+msgstr ""
+
+msgid "Year of birth"
+msgstr ""
+
+msgid "Gender"
+msgstr ""
+
+msgid "Male or female"
+msgstr ""
+
+msgid "Male"
+msgstr ""
+
+msgid "Female"
+msgstr ""
+
+msgid "Only online"
+msgstr ""
+
+msgid "Find buddies"
+msgstr ""
+
+msgid "Please, enter your search criteria below"
+msgstr ""
+
+msgid "Fill in the fields."
+msgstr ""
+
+msgid "Your current password is different from the one that you specified."
+msgstr ""
+
+msgid "Unable to change password. Error occurred.\n"
+msgstr ""
+
+msgid "Change password for the Gadu-Gadu account"
+msgstr ""
+
+msgid "Password was changed successfully!"
+msgstr ""
+
+msgid "Current password"
+msgstr ""
+
+msgid "Please, enter your current password and your new password for UIN: "
+msgstr ""
+
+msgid "Change Gadu-Gadu Password"
+msgstr ""
+
+#, c-format
+msgid "Select a chat for buddy: %s"
+msgstr ""
+
+msgid "Add to chat..."
+msgstr ""
+
+#. Global
+msgid "Available"
+msgstr ""
+
+#. get_yahoo_status_from_purple_status() returns YAHOO_STATUS_CUSTOM for
+#. * the generic away state (YAHOO_STATUS_TYPE_AWAY) with no message
+#. Away stuff
+msgid "Away"
+msgstr ""
+
+msgid "UIN"
+msgstr ""
+
+msgid "First Name"
+msgstr ""
+
+msgid "Birth Year"
+msgstr ""
+
+msgid "Unable to display the search results."
+msgstr ""
+
+msgid "Gadu-Gadu Public Directory"
+msgstr ""
+
+msgid "Search results"
+msgstr ""
+
+msgid "No matching users found"
+msgstr ""
+
+msgid "There are no users matching your search criteria."
+msgstr ""
+
+msgid "Unable to read socket"
+msgstr ""
+
+msgid "Buddy list downloaded"
+msgstr ""
+
+msgid "Your buddy list was downloaded from the server."
+msgstr ""
+
+msgid "Buddy list uploaded"
+msgstr ""
+
+msgid "Your buddy list was stored on the server."
+msgstr ""
+
+msgid "Connection failed."
+msgstr ""
+
+msgid "Add to chat"
+msgstr ""
+
+msgid "Chat _name:"
+msgstr ""
+
+msgid "Chat error"
+msgstr ""
+
+msgid "This chat name is already in use"
+msgstr ""
+
+msgid "Not connected to the server."
+msgstr ""
+
+msgid "Find buddies..."
+msgstr ""
+
+msgid "Change password..."
+msgstr ""
+
+msgid "Upload buddylist to Server"
+msgstr ""
+
+msgid "Download buddylist from Server"
+msgstr ""
+
+msgid "Delete buddylist from Server"
+msgstr ""
+
+msgid "Save buddylist to file..."
+msgstr ""
+
+#. magic
+#. major_version
+#. minor_version
+#. plugin type
+#. ui_requirement
+#. flags
+#. dependencies
+#. priority
+#. id
+#. name
+#. version
+msgid "Gadu-Gadu Protocol Plugin"
+msgstr ""
+
+#. summary
+msgid "Polish popular IM"
+msgstr ""
+
+msgid "Gadu-Gadu User"
+msgstr ""
+
+#, c-format
+msgid "Unknown command: %s"
+msgstr ""
+
+#, c-format
+msgid "current topic is: %s"
+msgstr ""
+
+msgid "No topic is set"
+msgstr ""
+
+msgid "File Transfer Failed"
+msgstr ""
+
+msgid "Could not open a listening port."
+msgstr ""
+
+msgid "Error displaying MOTD"
+msgstr ""
+
+msgid "No MOTD available"
+msgstr ""
+
+msgid "There is no MOTD associated with this connection."
+msgstr ""
+
+#, c-format
+msgid "MOTD for %s"
+msgstr ""
+
+msgid "Server has disconnected"
+msgstr ""
+
+msgid "View MOTD"
+msgstr ""
+
+msgid "_Channel:"
+msgstr ""
+
+msgid "_Password:"
+msgstr ""
+
+msgid "IRC nicks may not contain whitespace"
+msgstr ""
+
+#. 1. connect to server
+#. connect to the server
+msgid "Connecting"
+msgstr ""
+
+msgid "SSL support unavailable"
+msgstr ""
+
+msgid "Couldn't create socket"
+msgstr ""
+
+msgid "Couldn't connect to host"
+msgstr ""
+
+msgid "Read error"
+msgstr ""
+
+msgid "Users"
+msgstr ""
+
+msgid "Topic"
+msgstr ""
+
+#. *< type
+#. *< ui_requirement
+#. *< flags
+#. *< dependencies
+#. *< priority
+#. *< id
+#. *< name
+#. *< version
+msgid "IRC Protocol Plugin"
+msgstr ""
+
+#. *  summary
+msgid "The IRC Protocol Plugin that Sucks Less"
+msgstr ""
+
+#. host to connect to
+msgid "Server"
+msgstr ""
+
+#. port to connect to
+msgid "Port"
+msgstr ""
+
+msgid "Encodings"
+msgstr ""
+
+msgid "Auto-detect incoming UTF-8"
+msgstr ""
+
+msgid "Real name"
+msgstr ""
+
+#.
+#. option = purple_account_option_string_new(_("Quit message"), "quitmsg", IRC_DEFAULT_QUIT);
+#. prpl_info.protocol_options = g_list_append(prpl_info.protocol_options, option);
+#.
+msgid "Use SSL"
+msgstr ""
+
+msgid "Bad mode"
+msgstr ""
+
+#, c-format
+msgid "Ban on %s by %s, set %s ago"
+msgstr ""
+
+#, c-format
+msgid "Ban on %s"
+msgstr ""
+
+msgid "End of ban list"
+msgstr ""
+
+#, c-format
+msgid "You are banned from %s."
+msgstr ""
+
+msgid "Banned"
+msgstr ""
+
+#, c-format
+msgid "Cannot ban %s: banlist is full"
+msgstr ""
+
+msgid " <i>(ircop)</i>"
+msgstr ""
+
+msgid " <i>(identified)</i>"
+msgstr ""
+
+msgid "Nick"
+msgstr ""
+
+msgid "Currently on"
+msgstr ""
+
+msgid "Idle for"
+msgstr ""
+
+msgid "Online since"
+msgstr ""
+
+msgid "<b>Defining adjective:</b>"
+msgstr ""
+
+msgid "Glorious"
+msgstr ""
+
+#, c-format
+msgid "%s has changed the topic to: %s"
+msgstr ""
+
+#, c-format
+msgid "%s has cleared the topic."
+msgstr ""
+
+#, c-format
+msgid "The topic for %s is: %s"
+msgstr ""
+
+#, c-format
+msgid "Unknown message '%s'"
+msgstr ""
+
+msgid "Unknown message"
+msgstr ""
+
+msgid "The IRC server received a message it did not understand."
+msgstr ""
+
+#, c-format
+msgid "Users on %s: %s"
+msgstr ""
+
+msgid "Time Response"
+msgstr ""
+
+msgid "The IRC server's local time is:"
+msgstr ""
+
+msgid "No such channel"
+msgstr ""
+
+#. does this happen?
+msgid "no such channel"
+msgstr ""
+
+msgid "User is not logged in"
+msgstr ""
+
+msgid "No such nick or channel"
+msgstr ""
+
+msgid "Could not send"
+msgstr ""
+
+#, c-format
+msgid "Joining %s requires an invitation."
+msgstr ""
+
+msgid "Invitation only"
+msgstr ""
+
+#, c-format
+msgid "You have been kicked by %s: (%s)"
+msgstr ""
+
+#. Remove user from channel
+#, c-format
+msgid "Kicked by %s (%s)"
+msgstr ""
+
+#, c-format
+msgid "mode (%s %s) by %s"
+msgstr ""
+
+msgid "Invalid nickname"
+msgstr ""
+
+msgid ""
+"Your selected nickname was rejected by the server.  It probably contains "
+"invalid characters."
+msgstr ""
+
+msgid ""
+"Your selected account name was rejected by the server.  It probably contains "
+"invalid characters."
+msgstr ""
+
+#. We only want to do the following dance if the connection
+#. has not been successfully completed.  If it has, just
+#. notify the user that their /nick command didn't go.
+#, c-format
+msgid "The nickname \"%s\" is already being used."
+msgstr ""
+
+msgid "Nickname in use"
+msgstr ""
+
+msgid "Cannot change nick"
+msgstr ""
+
+msgid "Could not change nick"
+msgstr ""
+
+#, c-format
+msgid "You have parted the channel%s%s"
+msgstr ""
+
+msgid "Error: invalid PONG from server"
+msgstr ""
+
+#, c-format
+msgid "PING reply -- Lag: %lu seconds"
+msgstr ""
+
+#, c-format
+msgid "Cannot join %s: Registration is required."
+msgstr ""
+
+msgid "Cannot join channel"
+msgstr ""
+
+msgid "Nick or channel is temporarily unavailable."
+msgstr ""
+
+#, c-format
+msgid "Wallops from %s"
+msgstr ""
+
+msgid "action &lt;action to perform&gt;:  Perform an action."
+msgstr ""
+
+msgid ""
+"away [message]:  Set an away message, or use no message to return from being "
+"away."
+msgstr ""
+
+msgid "ctcp <nick> <msg>: sends ctcp msg to nick."
+msgstr ""
+
+msgid "chanserv: Send a command to chanserv"
+msgstr ""
+
+msgid ""
+"deop &lt;nick1&gt; [nick2] ...:  Remove channel operator status from "
+"someone. You must be a channel operator to do this."
+msgstr ""
+
+msgid ""
+"devoice &lt;nick1&gt; [nick2] ...:  Remove channel voice status from "
+"someone, preventing them from speaking if the channel is moderated (+m). You "
+"must be a channel operator to do this."
+msgstr ""
+
+msgid ""
+"invite &lt;nick&gt; [room]:  Invite someone to join you in the specified "
+"channel, or the current channel."
+msgstr ""
+
+msgid ""
+"j &lt;room1&gt;[,room2][,...] [key1[,key2][,...]]:  Enter one or more "
+"channels, optionally providing a channel key for each if needed."
+msgstr ""
+
+msgid ""
+"join &lt;room1&gt;[,room2][,...] [key1[,key2][,...]]:  Enter one or more "
+"channels, optionally providing a channel key for each if needed."
+msgstr ""
+
+msgid ""
+"kick &lt;nick&gt; [message]:  Remove someone from a channel. You must be a "
+"channel operator to do this."
+msgstr ""
+
+msgid ""
+"list:  Display a list of chat rooms on the network. <i>Warning, some servers "
+"may disconnect you upon doing this.</i>"
+msgstr ""
+
+msgid "me &lt;action to perform&gt;:  Perform an action."
+msgstr ""
+
+msgid "memoserv: Send a command to memoserv"
+msgstr ""
+
+msgid ""
+"mode &lt;+|-&gt;&lt;A-Za-z&gt; &lt;nick|channel&gt;:  Set or unset a channel "
+"or user mode."
+msgstr ""
+
+msgid ""
+"msg &lt;nick&gt; &lt;message&gt;:  Send a private message to a user (as "
+"opposed to a channel)."
+msgstr ""
+
+msgid "names [channel]:  List the users currently in a channel."
+msgstr ""
+
+msgid "nick &lt;new nickname&gt;:  Change your nickname."
+msgstr ""
+
+msgid "nickserv: Send a command to nickserv"
+msgstr ""
+
+msgid "notice &lt;target&lt;:  Send a notice to a user or channel."
+msgstr ""
+
+msgid ""
+"op &lt;nick1&gt; [nick2] ...:  Grant channel operator status to someone. You "
+"must be a channel operator to do this."
+msgstr ""
+
+msgid ""
+"operwall &lt;message&gt;:  If you don't know what this is, you probably "
+"can't use it."
+msgstr ""
+
+msgid "operserv: Send a command to operserv"
+msgstr ""
+
+msgid ""
+"part [room] [message]:  Leave the current channel, or a specified channel, "
+"with an optional message."
+msgstr ""
+
+msgid ""
+"ping [nick]:  Asks how much lag a user (or the server if no user specified) "
+"has."
+msgstr ""
+
+msgid ""
+"query &lt;nick&gt; &lt;message&gt;:  Send a private message to a user (as "
+"opposed to a channel)."
+msgstr ""
+
+msgid "quit [message]:  Disconnect from the server, with an optional message."
+msgstr ""
+
+msgid "quote [...]:  Send a raw command to the server."
+msgstr ""
+
+msgid ""
+"remove &lt;nick&gt; [message]:  Remove someone from a room. You must be a "
+"channel operator to do this."
+msgstr ""
+
+msgid "time: Displays the current local time at the IRC server."
+msgstr ""
+
+msgid "topic [new topic]:  View or change the channel topic."
+msgstr ""
+
+msgid "umode &lt;+|-&gt;&lt;A-Za-z&gt;:  Set or unset a user mode."
+msgstr ""
+
+msgid "version [nick]: send CTCP VERSION request to a user"
+msgstr ""
+
+msgid ""
+"voice &lt;nick1&gt; [nick2] ...:  Grant channel voice status to someone. You "
+"must be a channel operator to do this."
+msgstr ""
+
+msgid ""
+"wallops &lt;message&gt;:  If you don't know what this is, you probably can't "
+"use it."
+msgstr ""
+
+msgid "whois [server] &lt;nick&gt;:  Get information on a user."
+msgstr ""
+
+msgid "whowas &lt;nick&gt;: Get information on a user that has logged off."
+msgstr ""
+
+#, c-format
+msgid "Reply time from %s: %lu seconds"
+msgstr ""
+
+msgid "PONG"
+msgstr ""
+
+msgid "CTCP PING reply"
+msgstr ""
+
+msgid "Disconnected."
+msgstr ""
+
+msgid "Unknown Error"
+msgstr ""
+
+msgid "Ad-Hoc Command Failed"
+msgstr ""
+
+msgid "execute"
+msgstr ""
+
+msgid "Server requires TLS/SSL for login.  No TLS/SSL support found."
+msgstr ""
+
+msgid "You require encryption, but no TLS/SSL support found."
+msgstr ""
+
+msgid "Server requires plaintext authentication over an unencrypted stream"
+msgstr ""
+
+#, c-format
+msgid ""
+"%s requires plaintext authentication over an unencrypted connection.  Allow "
+"this and continue authentication?"
+msgstr ""
+
+msgid "Plaintext Authentication"
+msgstr ""
+
+msgid "Invalid response from server."
+msgstr ""
+
+msgid "Server does not use any supported authentication method"
+msgstr ""
+
+msgid "You require encryption, but it is not available on this server."
+msgstr ""
+
+msgid "Invalid challenge from server"
+msgstr ""
+
+msgid "SASL error"
+msgstr ""
+
+msgid "The BOSH connection manager terminated your session."
+msgstr ""
+
+msgid "No session ID given"
+msgstr ""
+
+msgid "Unsupported version of BOSH protocol"
+msgstr ""
+
+msgid "Unable to establish a connection with the server"
+msgstr ""
+
+#, c-format
+msgid ""
+"Could not establish a connection with the server:\n"
+"%s"
+msgstr ""
+
+msgid "Unable to establish SSL connection"
+msgstr ""
+
+msgid "Unable to create socket"
+msgstr ""
+
+msgid "Write error"
+msgstr ""
+
+msgid "Full Name"
+msgstr ""
+
+msgid "Family Name"
+msgstr ""
+
+msgid "Given Name"
+msgstr ""
+
+msgid "URL"
+msgstr ""
+
+msgid "Street Address"
+msgstr ""
+
+msgid "Extended Address"
+msgstr ""
+
+msgid "Locality"
+msgstr ""
+
+msgid "Region"
+msgstr ""
+
+msgid "Postal Code"
+msgstr ""
+
+msgid "Country"
+msgstr ""
+
+#. lots of clients (including purple) do this, but it's
+#. * out of spec
+msgid "Telephone"
+msgstr ""
+
+msgid "Organization Name"
+msgstr ""
+
+msgid "Organization Unit"
+msgstr ""
+
+msgid "Role"
+msgstr ""
+
+msgid "Birthday"
+msgstr ""
+
+msgid "Description"
+msgstr ""
+
+msgid "Edit XMPP vCard"
+msgstr ""
+
+msgid ""
+"All items below are optional. Enter only the information with which you feel "
+"comfortable."
+msgstr ""
+
+msgid "Client"
+msgstr ""
+
+msgid "Operating System"
+msgstr ""
+
+msgid "Local Time"
+msgstr ""
+
+msgid "Last Activity"
+msgstr ""
+
+msgid "Service Discovery Info"
+msgstr ""
+
+msgid "Service Discovery Items"
+msgstr ""
+
+msgid "Extended Stanza Addressing"
+msgstr ""
+
+msgid "Multi-User Chat"
+msgstr ""
+
+msgid "Multi-User Chat Extended Presence Information"
+msgstr ""
+
+msgid "In-Band Bytestreams"
+msgstr ""
+
+msgid "Ad-Hoc Commands"
+msgstr ""
+
+msgid "PubSub Service"
+msgstr ""
+
+msgid "SOCKS5 Bytestreams"
+msgstr ""
+
+msgid "Out of Band Data"
+msgstr ""
+
+msgid "XHTML-IM"
+msgstr ""
+
+msgid "In-Band Registration"
+msgstr ""
+
+msgid "User Location"
+msgstr ""
+
+msgid "User Avatar"
+msgstr ""
+
+msgid "Chat State Notifications"
+msgstr ""
+
+msgid "Software Version"
+msgstr ""
+
+msgid "Stream Initiation"
+msgstr ""
+
+msgid "File Transfer"
+msgstr ""
+
+msgid "User Mood"
+msgstr ""
+
+msgid "User Activity"
+msgstr ""
+
+msgid "Entity Capabilities"
+msgstr ""
+
+msgid "Encrypted Session Negotiations"
+msgstr ""
+
+msgid "User Tune"
+msgstr ""
+
+msgid "Roster Item Exchange"
+msgstr ""
+
+msgid "Reachability Address"
+msgstr ""
+
+msgid "User Profile"
+msgstr ""
+
+msgid "Jingle"
+msgstr ""
+
+msgid "Jingle Audio"
+msgstr ""
+
+msgid "User Nickname"
+msgstr ""
+
+msgid "Jingle ICE UDP"
+msgstr ""
+
+msgid "Jingle ICE TCP"
+msgstr ""
+
+msgid "Jingle Raw UDP"
+msgstr ""
+
+msgid "Jingle Video"
+msgstr ""
+
+msgid "Jingle DTMF"
+msgstr ""
+
+msgid "Message Receipts"
+msgstr ""
+
+msgid "Public Key Publishing"
+msgstr ""
+
+msgid "User Chatting"
+msgstr ""
+
+msgid "User Browsing"
+msgstr ""
+
+msgid "User Gaming"
+msgstr ""
+
+msgid "User Viewing"
+msgstr ""
+
+msgid "Ping"
+msgstr ""
+
+msgid "Stanza Encryption"
+msgstr ""
+
+msgid "Entity Time"
+msgstr ""
+
+msgid "Delayed Delivery"
+msgstr ""
+
+msgid "Collaborative Data Objects"
+msgstr ""
+
+msgid "File Repository and Sharing"
+msgstr ""
+
+msgid "STUN Service Discovery for Jingle"
+msgstr ""
+
+msgid "Simplified Encrypted Session Negotiation"
+msgstr ""
+
+msgid "Hop Check"
+msgstr ""
+
+msgid "Capabilities"
+msgstr ""
+
+msgid "Priority"
+msgstr ""
+
+msgid "Resource"
+msgstr ""
+
+#, c-format
+msgid "%s ago"
+msgstr ""
+
+msgid "Logged off"
+msgstr ""
+
+msgid "Middle Name"
+msgstr ""
+
+msgid "Address"
+msgstr ""
+
+msgid "P.O. Box"
+msgstr ""
+
+msgid "Photo"
+msgstr ""
+
+msgid "Logo"
+msgstr ""
+
+msgid "Un-hide From"
+msgstr ""
+
+msgid "Temporarily Hide From"
+msgstr ""
+
+#. && NOT ME
+msgid "Cancel Presence Notification"
+msgstr ""
+
+msgid "(Re-)Request authorization"
+msgstr ""
+
+#. if(NOT ME)
+#. shouldn't this just happen automatically when the buddy is
+#. removed?
+msgid "Unsubscribe"
+msgstr ""
+
+msgid "Log In"
+msgstr ""
+
+msgid "Log Out"
+msgstr ""
+
+msgid "Chatty"
+msgstr ""
+
+msgid "Extended Away"
+msgstr ""
+
+msgid "Do Not Disturb"
+msgstr ""
+
+msgid "JID"
+msgstr ""
+
+msgid "Last Name"
+msgstr ""
+
+msgid "The following are the results of your search"
+msgstr ""
+
+#. current comment from Jabber User Directory users.jabber.org
+msgid ""
+"Find a contact by entering the search criteria in the given fields. Note: "
+"Each field supports wild card searches (%)"
+msgstr ""
+
+msgid "Directory Query Failed"
+msgstr ""
+
+msgid "Could not query the directory server."
+msgstr ""
+
+#. Try to translate the message (see static message
+#. list in jabber_user_dir_comments[])
+#, c-format
+msgid "Server Instructions: %s"
+msgstr ""
+
+msgid "Fill in one or more fields to search for any matching XMPP users."
+msgstr ""
+
+msgid "Email Address"
+msgstr ""
+
+msgid "Search for XMPP users"
+msgstr ""
+
+#. "Search"
+msgid "Search"
+msgstr ""
+
+msgid "Invalid Directory"
+msgstr ""
+
+msgid "Enter a User Directory"
+msgstr ""
+
+msgid "Select a user directory to search"
+msgstr ""
+
+msgid "Search Directory"
+msgstr ""
+
+msgid "_Room:"
+msgstr ""
+
+msgid "_Server:"
+msgstr ""
+
+msgid "_Handle:"
+msgstr ""
+
+#, c-format
+msgid "%s is not a valid room name"
+msgstr ""
+
+msgid "Invalid Room Name"
+msgstr ""
+
+#, c-format
+msgid "%s is not a valid server name"
+msgstr ""
+
+msgid "Invalid Server Name"
+msgstr ""
+
+#, c-format
+msgid "%s is not a valid room handle"
+msgstr ""
+
+msgid "Invalid Room Handle"
+msgstr ""
+
+msgid "Configuration error"
+msgstr ""
+
+msgid "Unable to configure"
+msgstr ""
+
+msgid "Room Configuration Error"
+msgstr ""
+
+msgid "This room is not capable of being configured"
+msgstr ""
+
+msgid "Registration error"
+msgstr ""
+
+msgid "Nick changing not supported in non-MUC chatrooms"
+msgstr ""
+
+msgid "Error retrieving room list"
+msgstr ""
+
+msgid "Invalid Server"
+msgstr ""
+
+msgid "Enter a Conference Server"
+msgstr ""
+
+msgid "Select a conference server to query"
+msgstr ""
+
+msgid "Find Rooms"
+msgstr ""
+
+msgid "Affiliations:"
+msgstr ""
+
+msgid "No users found"
+msgstr ""
+
+msgid "Roles:"
+msgstr ""
+
+msgid "Ping timeout"
+msgstr ""
+
+msgid "Read Error"
+msgstr ""
+
+#, c-format
+msgid ""
+"Could not find alternative XMPP connection methods after failing to connect "
+"directly.\n"
+msgstr ""
+
+msgid "Invalid XMPP ID"
+msgstr ""
+
+msgid "Invalid XMPP ID. Domain must be set."
+msgstr ""
+
+msgid "Malformed BOSH Connect Server"
+msgstr ""
+
+#, c-format
+msgid "Registration of %s@%s successful"
+msgstr ""
+
+#, c-format
+msgid "Registration to %s successful"
+msgstr ""
+
+msgid "Registration Successful"
+msgstr ""
+
+msgid "Registration Failed"
+msgstr ""
+
+#, c-format
+msgid "Registration from %s successfully removed"
+msgstr ""
+
+msgid "Unregistration Successful"
+msgstr ""
+
+msgid "Unregistration Failed"
+msgstr ""
+
+msgid "Already Registered"
+msgstr ""
+
+msgid "State"
+msgstr ""
+
+msgid "Postal code"
+msgstr ""
+
+msgid "Phone"
+msgstr ""
+
+msgid "Date"
+msgstr ""
+
+msgid "Unregister"
+msgstr ""
+
+msgid ""
+"Please fill out the information below to change your account registration."
+msgstr ""
+
+msgid "Please fill out the information below to register your new account."
+msgstr ""
+
+msgid "Register New XMPP Account"
+msgstr ""
+
+msgid "Register"
+msgstr ""
+
+#, c-format
+msgid "Change Account Registration at %s"
+msgstr ""
+
+#, c-format
+msgid "Register New Account at %s"
+msgstr ""
+
+msgid "Change Registration"
+msgstr ""
+
+msgid "Error unregistering account"
+msgstr ""
+
+msgid "Account successfully unregistered"
+msgstr ""
+
+msgid "Initializing Stream"
+msgstr ""
+
+msgid "Initializing SSL/TLS"
+msgstr ""
+
+msgid "Authenticating"
+msgstr ""
+
+msgid "Re-initializing Stream"
+msgstr ""
+
+msgid "Server doesn't support blocking"
+msgstr ""
+
+msgid "Not Authorized"
+msgstr ""
+
+msgid "Mood"
+msgstr ""
+
+msgid "Now Listening"
+msgstr ""
+
+msgid "Both"
+msgstr ""
+
+msgid "From (To pending)"
+msgstr ""
+
+msgid "From"
+msgstr ""
+
+msgid "To"
+msgstr ""
+
+msgid "None (To pending)"
+msgstr ""
+
+msgid "None"
+msgstr ""
+
+msgid "Subscription"
+msgstr ""
+
+msgid "Mood Text"
+msgstr ""
+
+msgid "Allow Buzz"
+msgstr ""
+
+msgid "Tune Artist"
+msgstr ""
+
+msgid "Tune Title"
+msgstr ""
+
+msgid "Tune Album"
+msgstr ""
+
+msgid "Tune Genre"
+msgstr ""
+
+msgid "Tune Comment"
+msgstr ""
+
+msgid "Tune Track"
+msgstr ""
+
+msgid "Tune Time"
+msgstr ""
+
+msgid "Tune Year"
+msgstr ""
+
+msgid "Tune URL"
+msgstr ""
+
+msgid "Password Changed"
+msgstr ""
+
+msgid "Your password has been changed."
+msgstr ""
+
+msgid "Error changing password"
+msgstr ""
+
+msgid "Password (again)"
+msgstr ""
+
+msgid "Change XMPP Password"
+msgstr ""
+
+msgid "Please enter your new password"
+msgstr ""
+
+msgid "Set User Info..."
+msgstr ""
+
+#. if (js->protocol_options & CHANGE_PASSWORD) {
+msgid "Change Password..."
+msgstr ""
+
+#. }
+msgid "Search for Users..."
+msgstr ""
+
+msgid "Bad Request"
+msgstr ""
+
+msgid "Conflict"
+msgstr ""
+
+msgid "Feature Not Implemented"
+msgstr ""
+
+msgid "Forbidden"
+msgstr ""
+
+msgid "Gone"
+msgstr ""
+
+msgid "Internal Server Error"
+msgstr ""
+
+msgid "Item Not Found"
+msgstr ""
+
+msgid "Malformed XMPP ID"
+msgstr ""
+
+msgid "Not Acceptable"
+msgstr ""
+
+msgid "Not Allowed"
+msgstr ""
+
+msgid "Payment Required"
+msgstr ""
+
+msgid "Recipient Unavailable"
+msgstr ""
+
+msgid "Registration Required"
+msgstr ""
+
+msgid "Remote Server Not Found"
+msgstr ""
+
+msgid "Remote Server Timeout"
+msgstr ""
+
+msgid "Server Overloaded"
+msgstr ""
+
+msgid "Service Unavailable"
+msgstr ""
+
+msgid "Subscription Required"
+msgstr ""
+
+msgid "Unexpected Request"
+msgstr ""
+
+msgid "Authorization Aborted"
+msgstr ""
+
+msgid "Incorrect encoding in authorization"
+msgstr ""
+
+msgid "Invalid authzid"
+msgstr ""
+
+msgid "Invalid Authorization Mechanism"
+msgstr ""
+
+msgid "Authorization mechanism too weak"
+msgstr ""
+
+msgid "Temporary Authentication Failure"
+msgstr ""
+
+msgid "Authentication Failure"
+msgstr ""
+
+msgid "Bad Format"
+msgstr ""
+
+msgid "Bad Namespace Prefix"
+msgstr ""
+
+msgid "Resource Conflict"
+msgstr ""
+
+msgid "Connection Timeout"
+msgstr ""
+
+msgid "Host Gone"
+msgstr ""
+
+msgid "Host Unknown"
+msgstr ""
+
+msgid "Improper Addressing"
+msgstr ""
+
+msgid "Invalid ID"
+msgstr ""
+
+msgid "Invalid Namespace"
+msgstr ""
+
+msgid "Invalid XML"
+msgstr ""
+
+msgid "Non-matching Hosts"
+msgstr ""
+
+msgid "Policy Violation"
+msgstr ""
+
+msgid "Remote Connection Failed"
+msgstr ""
+
+msgid "Resource Constraint"
+msgstr ""
+
+msgid "Restricted XML"
+msgstr ""
+
+msgid "See Other Host"
+msgstr ""
+
+msgid "System Shutdown"
+msgstr ""
+
+msgid "Undefined Condition"
+msgstr ""
+
+msgid "Unsupported Encoding"
+msgstr ""
+
+msgid "Unsupported Stanza Type"
+msgstr ""
+
+msgid "Unsupported Version"
+msgstr ""
+
+msgid "XML Not Well Formed"
+msgstr ""
+
+msgid "Stream Error"
+msgstr ""
+
+#, c-format
+msgid "Unable to ban user %s"
+msgstr ""
+
+#, c-format
+msgid "Unknown affiliation: \"%s\""
+msgstr ""
+
+#, c-format
+msgid "Unable to affiliate user %s as \"%s\""
+msgstr ""
+
+#, c-format
+msgid "Unknown role: \"%s\""
+msgstr ""
+
+#, c-format
+msgid "Unable to set role \"%s\" for user: %s"
+msgstr ""
+
+#, c-format
+msgid "Unable to kick user %s"
+msgstr ""
+
+#, c-format
+msgid "Unable to ping user %s"
+msgstr ""
+
+#, c-format
+msgid "Unable to buzz, because there is nothing known about %s."
+msgstr ""
+
+#, c-format
+msgid "Unable to buzz, because %s might be offline."
+msgstr ""
+
+#, c-format
+msgid ""
+"Unable to buzz, because %s does not support it or does not wish to receive "
+"buzzes now."
+msgstr ""
+
+#, c-format
+msgid "Buzzing %s..."
+msgstr ""
+
+#. Yahoo only supports one attention command: the 'buzz'.
+#. This is index number YAHOO_BUZZ.
+msgid "Buzz"
+msgstr ""
+
+#, c-format
+msgid "%s has buzzed you!"
+msgstr ""
+
+#, c-format
+msgid "Unable to initiate media with %s: invalid JID"
+msgstr ""
+
+#, c-format
+msgid "Unable to initiate media with %s: user is not online"
+msgstr ""
+
+#, c-format
+msgid "Unable to initiate media with %s: not subscribed to user presence"
+msgstr ""
+
+msgid "Media Initiation Failed"
+msgstr ""
+
+#, c-format
+msgid ""
+"Please select the resource of %s with which you would like to start a media "
+"session."
+msgstr ""
+
+msgid "Select a Resource"
+msgstr ""
+
+msgid "Initiate Media"
+msgstr ""
+
+msgid "config:  Configure a chat room."
+msgstr ""
+
+msgid "configure:  Configure a chat room."
+msgstr ""
+
+msgid "part [room]:  Leave the room."
+msgstr ""
+
+msgid "register:  Register with a chat room."
+msgstr ""
+
+msgid "topic [new topic]:  View or change the topic."
+msgstr ""
+
+msgid "ban &lt;user&gt; [reason]:  Ban a user from the room."
+msgstr ""
+
+msgid ""
+"affiliate &lt;owner|admin|member|outcast|none&gt; [nick1] [nick2] ...: Get "
+"the users with an affiliation or set users' affiliation with the room."
+msgstr ""
+
+msgid ""
+"role &lt;moderator|participant|visitor|none&gt; [nick1] [nick2] ...: Get the "
+"users with an role or set users' role with the room."
+msgstr ""
+
+msgid "invite &lt;user&gt; [message]:  Invite a user to the room."
+msgstr ""
+
+msgid "join: &lt;room&gt; [password]:  Join a chat on this server."
+msgstr ""
+
+msgid "kick &lt;user&gt; [reason]:  Kick a user from the room."
+msgstr ""
+
+msgid ""
+"msg &lt;user&gt; &lt;message&gt;:  Send a private message to another user."
+msgstr ""
+
+msgid "ping &lt;jid&gt;:\tPing a user/component/server."
+msgstr ""
+
+msgid "buzz: Buzz a user to get their attention"
+msgstr ""
+
+#. *< type
+#. *< ui_requirement
+#. *< flags
+#. *< dependencies
+#. *< priority
+#. *< id
+#. *< name
+#. *< version
+#. *  summary
+#. *  description
+msgid "XMPP Protocol Plugin"
+msgstr ""
+
+#. Translators: 'domain' is used here in the context of Internet domains, e.g. pidgin.im
+msgid "Domain"
+msgstr ""
+
+msgid "Require SSL/TLS"
+msgstr ""
+
+msgid "Force old (port 5223) SSL"
+msgstr ""
+
+msgid "Allow plaintext auth over unencrypted streams"
+msgstr ""
+
+msgid "Connect port"
+msgstr ""
+
+#. TODO: default to automatically try different ports. Make the user be
+#. * able to set the first port to try (like LastConnectedPort in Windows client).
+#. Account options
+msgid "Connect server"
+msgstr ""
+
+msgid "File transfer proxies"
+msgstr ""
+
+#. this should probably be part of global smiley theme settings later on,
+#. shared with MSN
+msgid "Show Custom Smileys"
+msgstr ""
+
+#, c-format
+msgid "%s has left the conversation."
+msgstr ""
+
+#, c-format
+msgid "Message from %s"
+msgstr ""
+
+#, c-format
+msgid "%s has set the topic to: %s"
+msgstr ""
+
+#, c-format
+msgid "The topic is: %s"
+msgstr ""
+
+#, c-format
+msgid "Message delivery to %s failed: %s"
+msgstr ""
+
+msgid "XMPP Message Error"
+msgstr ""
+
+#, c-format
+msgid "(Code %s)"
+msgstr ""
+
+msgid "XML Parse error"
+msgstr ""
+
+msgid "Unknown Error in presence"
+msgstr ""
+
+msgid "Create New Room"
+msgstr ""
+
+msgid ""
+"You are creating a new room.  Would you like to configure it, or accept the "
+"default settings?"
+msgstr ""
+
+msgid "_Configure Room"
+msgstr ""
+
+msgid "_Accept Defaults"
+msgstr ""
+
+#, c-format
+msgid "Error joining chat %s"
+msgstr ""
+
+#, c-format
+msgid "Error in chat %s"
+msgstr ""
+
+msgid "An error occured on the in-band bytestream transfer\n"
+msgstr ""
+
+msgid "Transfer was closed."
+msgstr ""
+
+msgid "Failed to open the file"
+msgstr ""
+
+msgid "Failed to open in-band bytestream"
+msgstr ""
+
+#, c-format
+msgid "Unable to send file to %s, user does not support file transfers"
+msgstr ""
+
+msgid "File Send Failed"
+msgstr ""
+
+#, c-format
+msgid "Unable to send file to %s, invalid JID"
+msgstr ""
+
+#, c-format
+msgid "Unable to send file to %s, user is not online"
+msgstr ""
+
+#, c-format
+msgid "Unable to send file to %s, not subscribed to user presence"
+msgstr ""
+
+#, c-format
+msgid "Please select the resource of %s to which you would like to send a file"
+msgstr ""
+
+msgid "Edit User Mood"
+msgstr ""
+
+msgid "Please select your mood from the list."
+msgstr ""
+
+msgid "Set"
+msgstr ""
+
+msgid "Set Mood..."
+msgstr ""
+
+msgid "Set User Nickname"
+msgstr ""
+
+msgid "Please specify a new nickname for you."
+msgstr ""
+
+msgid ""
+"This information is visible to all contacts on your contact list, so choose "
+"something appropriate."
+msgstr ""
+
+msgid "Set Nickname..."
+msgstr ""
+
+msgid "Actions"
+msgstr ""
+
+msgid "Select an action"
+msgstr ""
+
+#. only notify the user about problems adding to the friends list
+#. * maybe we should do something else for other lists, but it probably
+#. * won't cause too many problems if we just ignore it
+#, c-format
+msgid "Unable to add \"%s\"."
+msgstr ""
+
+msgid "Buddy Add error"
+msgstr ""
+
+msgid "The username specified does not exist."
+msgstr ""
+
+#, c-format
+msgid "Buddy list synchronization issue in %s (%s)"
+msgstr ""
+
+#, c-format
+msgid ""
+"%s on the local list is inside the group \"%s\" but not on the server list. "
+"Do you want this buddy to be added?"
+msgstr ""
+
+#, c-format
+msgid ""
+"%s is on the local list but not on the server list. Do you want this buddy "
+"to be added?"
+msgstr ""
+
+#, c-format
+msgid "Unable to parse message"
+msgstr ""
+
+#, c-format
+msgid "Syntax Error (probably a client bug)"
+msgstr ""
+
+#, c-format
+msgid "Invalid email address"
+msgstr ""
+
+#, c-format
+msgid "User does not exist"
+msgstr ""
+
+#, c-format
+msgid "Fully qualified domain name missing"
+msgstr ""
+
+#, c-format
+msgid "Already logged in"
+msgstr ""
+
+#, c-format
+msgid "Invalid username"
+msgstr ""
+
+#, c-format
+msgid "Invalid friendly name"
+msgstr ""
+
+#, c-format
+msgid "List full"
+msgstr ""
+
+#, c-format
+msgid "Already there"
+msgstr ""
+
+#, c-format
+msgid "Not on list"
+msgstr ""
+
+#, c-format
+msgid "User is offline"
+msgstr ""
+
+#, c-format
+msgid "Already in the mode"
+msgstr ""
+
+#, c-format
+msgid "Already in opposite list"
+msgstr ""
+
+#, c-format
+msgid "Too many groups"
+msgstr ""
+
+#, c-format
+msgid "Invalid group"
+msgstr ""
+
+#, c-format
+msgid "User not in group"
+msgstr ""
+
+#, c-format
+msgid "Group name too long"
+msgstr ""
+
+#, c-format
+msgid "Cannot remove group zero"
+msgstr ""
+
+#, c-format
+msgid "Tried to add a user to a group that doesn't exist"
+msgstr ""
+
+#, c-format
+msgid "Switchboard failed"
+msgstr ""
+
+#, c-format
+msgid "Notify transfer failed"
+msgstr ""
+
+#, c-format
+msgid "Required fields missing"
+msgstr ""
+
+#, c-format
+msgid "Too many hits to a FND"
+msgstr ""
+
+#, c-format
+msgid "Not logged in"
+msgstr ""
+
+#, c-format
+msgid "Service temporarily unavailable"
+msgstr ""
+
+#, c-format
+msgid "Database server error"
+msgstr ""
+
+#, c-format
+msgid "Command disabled"
+msgstr ""
+
+#, c-format
+msgid "File operation error"
+msgstr ""
+
+#, c-format
+msgid "Memory allocation error"
+msgstr ""
+
+#, c-format
+msgid "Wrong CHL value sent to server"
+msgstr ""
+
+#, c-format
+msgid "Server busy"
+msgstr ""
+
+#, c-format
+msgid "Server unavailable"
+msgstr ""
+
+#, c-format
+msgid "Peer notification server down"
+msgstr ""
+
+#, c-format
+msgid "Database connect error"
+msgstr ""
+
+#, c-format
+msgid "Server is going down (abandon ship)"
+msgstr ""
+
+#, c-format
+msgid "Error creating connection"
+msgstr ""
+
+#, c-format
+msgid "CVR parameters are either unknown or not allowed"
+msgstr ""
+
+#, c-format
+msgid "Unable to write"
+msgstr ""
+
+#, c-format
+msgid "Session overload"
+msgstr ""
+
+#, c-format
+msgid "User is too active"
+msgstr ""
+
+#, c-format
+msgid "Too many sessions"
+msgstr ""
+
+#, c-format
+msgid "Passport not verified"
+msgstr ""
+
+#, c-format
+msgid "Bad friend file"
+msgstr ""
+
+#, c-format
+msgid "Not expected"
+msgstr ""
+
+#, c-format
+msgid "Friendly name changes too rapidly"
+msgstr ""
+
+#, c-format
+msgid "Server too busy"
+msgstr ""
+
+#, c-format
+msgid "Authentication failed"
+msgstr ""
+
+#, c-format
+msgid "Not allowed when offline"
+msgstr ""
+
+#, c-format
+msgid "Not accepting new users"
+msgstr ""
+
+#, c-format
+msgid "Kids Passport without parental consent"
+msgstr ""
+
+#, c-format
+msgid "Passport account not yet verified"
+msgstr ""
+
+msgid "Passport account suspended"
+msgstr ""
+
+#, c-format
+msgid "Bad ticket"
+msgstr ""
+
+#, c-format
+msgid "Unknown Error Code %d"
+msgstr ""
+
+#, c-format
+msgid "MSN Error: %s\n"
+msgstr ""
+
+msgid "Other Contacts"
+msgstr ""
+
+msgid "Non-IM Contacts"
+msgstr ""
+
+msgid "Nudge"
+msgstr ""
+
+#, c-format
+msgid "%s has nudged you!"
+msgstr ""
+
+#, c-format
+msgid "Nudging %s..."
+msgstr ""
+
+msgid "Email Address..."
+msgstr ""
+
+msgid "Your new MSN friendly name is too long."
+msgstr ""
+
+msgid "Set your friendly name."
+msgstr ""
+
+msgid "This is the name that other MSN buddies will see you as."
+msgstr ""
+
+msgid "Set your home phone number."
+msgstr ""
+
+msgid "Set your work phone number."
+msgstr ""
+
+msgid "Set your mobile phone number."
+msgstr ""
+
+msgid "Allow MSN Mobile pages?"
+msgstr ""
+
+msgid ""
+"Do you want to allow or disallow people on your buddy list to send you MSN "
+"Mobile pages to your cell phone or other mobile device?"
+msgstr ""
+
+msgid "Allow"
+msgstr ""
+
+msgid "Disallow"
+msgstr ""
+
+#, c-format
+msgid "Blocked Text for %s"
+msgstr ""
+
+msgid "No text is blocked for this account."
+msgstr ""
+
+#, c-format
+msgid ""
+"MSN servers are currently blocking the following regular expressions:<br/>%s"
+msgstr ""
+
+msgid "This account does not have email enabled."
+msgstr ""
+
+msgid "Send a mobile message."
+msgstr ""
+
+msgid "Page"
+msgstr ""
+
+msgid "Playing a game"
+msgstr ""
+
+msgid "Working"
+msgstr ""
+
+msgid "Has you"
+msgstr ""
+
+msgid "Home Phone Number"
+msgstr ""
+
+msgid "Work Phone Number"
+msgstr ""
+
+msgid "Mobile Phone Number"
+msgstr ""
+
+msgid "Be Right Back"
+msgstr ""
+
+msgid "Busy"
+msgstr ""
+
+msgid "On the Phone"
+msgstr ""
+
+msgid "Out to Lunch"
+msgstr ""
+
+#. primitive
+#. ID
+#. name - use default
+#. saveable
+#. should be user_settable some day
+#. independent
+msgid "Artist"
+msgstr ""
+
+msgid "Album"
+msgstr ""
+
+msgid "Game Title"
+msgstr ""
+
+msgid "Office Title"
+msgstr ""
+
+msgid "Set Friendly Name..."
+msgstr ""
+
+msgid "Set Home Phone Number..."
+msgstr ""
+
+msgid "Set Work Phone Number..."
+msgstr ""
+
+msgid "Set Mobile Phone Number..."
+msgstr ""
+
+msgid "Enable/Disable Mobile Devices..."
+msgstr ""
+
+msgid "Allow/Disallow Mobile Pages..."
+msgstr ""
+
+msgid "View Blocked Text..."
+msgstr ""
+
+msgid "Open Hotmail Inbox"
+msgstr ""
+
+msgid "Send to Mobile"
+msgstr ""
+
+msgid "Initiate _Chat"
+msgstr ""
+
+msgid "SSL support is needed for MSN. Please install a supported SSL library."
+msgstr ""
+
+msgid "Failed to connect to server."
+msgstr ""
+
+msgid "Error retrieving profile"
+msgstr ""
+
+msgid "General"
+msgstr ""
+
+msgid "Age"
+msgstr ""
+
+msgid "Occupation"
+msgstr ""
+
+msgid "Location"
+msgstr ""
+
+msgid "Hobbies and Interests"
+msgstr ""
+
+msgid "A Little About Me"
+msgstr ""
+
+msgid "Social"
+msgstr ""
+
+msgid "Marital Status"
+msgstr ""
+
+msgid "Interests"
+msgstr ""
+
+msgid "Pets"
+msgstr ""
+
+msgid "Hometown"
+msgstr ""
+
+msgid "Places Lived"
+msgstr ""
+
+msgid "Fashion"
+msgstr ""
+
+msgid "Humor"
+msgstr ""
+
+msgid "Music"
+msgstr ""
+
+msgid "Favorite Quote"
+msgstr ""
+
+msgid "Contact Info"
+msgstr ""
+
+msgid "Personal"
+msgstr ""
+
+msgid "Significant Other"
+msgstr ""
+
+msgid "Home Phone"
+msgstr ""
+
+msgid "Home Phone 2"
+msgstr ""
+
+msgid "Home Address"
+msgstr ""
+
+msgid "Personal Mobile"
+msgstr ""
+
+msgid "Home Fax"
+msgstr ""
+
+msgid "Personal Email"
+msgstr ""
+
+msgid "Personal IM"
+msgstr ""
+
+msgid "Anniversary"
+msgstr ""
+
+#. Business
+msgid "Work"
+msgstr ""
+
+msgid "Job Title"
+msgstr ""
+
+msgid "Company"
+msgstr ""
+
+msgid "Department"
+msgstr ""
+
+msgid "Profession"
+msgstr ""
+
+msgid "Work Phone"
+msgstr ""
+
+msgid "Work Phone 2"
+msgstr ""
+
+msgid "Work Address"
+msgstr ""
+
+msgid "Work Mobile"
+msgstr ""
+
+msgid "Work Pager"
+msgstr ""
+
+msgid "Work Fax"
+msgstr ""
+
+msgid "Work Email"
+msgstr ""
+
+msgid "Work IM"
+msgstr ""
+
+msgid "Start Date"
+msgstr ""
+
+msgid "Favorite Things"
+msgstr ""
+
+msgid "Last Updated"
+msgstr ""
+
+msgid "Homepage"
+msgstr ""
+
+msgid "The user has not created a public profile."
+msgstr ""
+
+msgid ""
+"MSN reported not being able to find the user's profile. This either means "
+"that the user does not exist, or that the user exists but has not created a "
+"public profile."
+msgstr ""
+
+msgid ""
+"Could not find any information in the user's profile. The user most likely "
+"does not exist."
+msgstr ""
+
+msgid "View web profile"
+msgstr ""
+
+#. *< type
+#. *< ui_requirement
+#. *< flags
+#. *< dependencies
+#. *< priority
+#. *< id
+#. *< name
+#. *< version
+#. *< summary
+msgid "Windows Live Messenger Protocol Plugin"
+msgstr ""
+
+msgid "Use HTTP Method"
+msgstr ""
+
+msgid "HTTP Method Server"
+msgstr ""
+
+msgid "Show custom smileys"
+msgstr ""
+
+msgid "nudge: nudge a user to get their attention"
+msgstr ""
+
+msgid "Windows Live ID authentication:Unable to connect"
+msgstr ""
+
+msgid "Windows Live ID authentication:Invalid response"
+msgstr ""
+
+#, c-format
+msgid "%s just sent you a Nudge!"
+msgstr ""
+
+#, c-format
+msgid "Unknown error (%d): %s"
+msgstr ""
+
+msgid "Unable to add user"
+msgstr ""
+
+#, c-format
+msgid "Unknown error (%d)"
+msgstr ""
+
+msgid "The following users are missing from your addressbook"
+msgstr ""
+
+#, c-format
+msgid "Unable to add user on %s (%s)"
+msgstr ""
+
+#, c-format
+msgid "Unable to block user on %s (%s)"
+msgstr ""
+
+#, c-format
+msgid "Unable to permit user on %s (%s)"
+msgstr ""
+
+#, c-format
+msgid "%s could not be added because your buddy list is full."
+msgstr ""
+
+#, c-format
+msgid "%s is not a valid passport account."
+msgstr ""
+
+msgid "Service Temporarily Unavailable."
+msgstr ""
+
+msgid "Unknown error."
+msgstr ""
+
+msgid "Mobile message was not sent because it was too long."
+msgstr ""
+
+#, c-format
+msgid ""
+"The MSN server will shut down for maintenance in %d minute. You will "
+"automatically be signed out at that time.  Please finish any conversations "
+"in progress.\n"
+"\n"
+"After the maintenance has been completed, you will be able to successfully "
+"sign in."
+msgid_plural ""
+"The MSN server will shut down for maintenance in %d minutes. You will "
+"automatically be signed out at that time.  Please finish any conversations "
+"in progress.\n"
+"\n"
+"After the maintenance has been completed, you will be able to successfully "
+"sign in."
+msgstr[0] ""
+msgstr[1] ""
+
+msgid ""
+"Message was not sent because the system is unavailable. This normally "
+"happens when the user is blocked or does not exist."
+msgstr ""
+
+msgid "Message was not sent because messages are being sent too quickly."
+msgstr ""
+
+msgid "Message was not sent because an unknown encoding error occurred."
+msgstr ""
+
+msgid "Message was not sent because an unknown error occurred."
+msgstr ""
+
+msgid "Unable to connect"
+msgstr ""
+
+msgid "Writing error"
+msgstr ""
+
+msgid "Reading error"
+msgstr ""
+
+#, c-format
+msgid ""
+"Connection error from %s server:\n"
+"%s"
+msgstr ""
+
+msgid "Our protocol is not supported by the server."
+msgstr ""
+
+msgid "Error parsing HTTP."
+msgstr ""
+
+msgid "You have signed on from another location."
+msgstr ""
+
+msgid "The MSN servers are temporarily unavailable. Please wait and try again."
+msgstr ""
+
+msgid "The MSN servers are going down temporarily."
+msgstr ""
+
+#, c-format
+msgid "Unable to authenticate: %s"
+msgstr ""
+
+msgid ""
+"Your MSN buddy list is temporarily unavailable. Please wait and try again."
+msgstr ""
+
+msgid "Handshaking"
+msgstr ""
+
+msgid "Transferring"
+msgstr ""
+
+msgid "Starting authentication"
+msgstr ""
+
+msgid "Getting cookie"
+msgstr ""
+
+msgid "Sending cookie"
+msgstr ""
+
+msgid "Retrieving buddy list"
+msgstr ""
+
+msgid "Away From Computer"
+msgstr ""
+
+msgid "On The Phone"
+msgstr ""
+
+msgid "Out To Lunch"
+msgstr ""
+
+msgid "Message may have not been sent because a timeout occurred:"
+msgstr ""
+
+msgid "Message could not be sent, not allowed while invisible:"
+msgstr ""
+
+msgid "Message could not be sent because the user is offline:"
+msgstr ""
+
+msgid "Message could not be sent because a connection error occurred:"
+msgstr ""
+
+msgid "Message could not be sent because we are sending too quickly:"
+msgstr ""
+
+msgid ""
+"Message could not be sent because we were unable to establish a session with "
+"the server. This is likely a server problem, try again in a few minutes:"
+msgstr ""
+
+msgid ""
+"Message could not be sent because an error with the switchboard occurred:"
+msgstr ""
+
+msgid "Message may have not been sent because an unknown error occurred:"
+msgstr ""
+
+msgid "Delete Buddy from Address Book?"
+msgstr ""
+
+msgid "Do you want to delete this buddy from your address book as well?"
+msgstr ""
+
+msgid "The username specified is invalid."
+msgstr ""
+
+msgid "This Hotmail account may not be active."
+msgstr ""
+
+msgid "Profile URL"
+msgstr ""
+
+#. *< type
+#. *< ui_requirement
+#. *< flags
+#. *< dependencies
+#. *< priority
+#. *< id
+#. *< name
+#. *< version
+#. *  summary
+#. *  description
+msgid "MSN Protocol Plugin"
+msgstr ""
+
+#, c-format
+msgid "%s is not a valid group."
+msgstr ""
+
+#, c-format
+msgid "%s on %s (%s)"
+msgstr ""
+
+msgid "Unable to rename group"
+msgstr ""
+
+msgid "Unable to delete group"
+msgstr ""
+
+#, c-format
+msgid "%s has added you to his or her buddy list."
+msgstr ""
+
+#, c-format
+msgid "%s has removed you from his or her buddy list."
+msgstr ""
+
+#, c-format
+msgid "No such user: %s"
+msgstr ""
+
+msgid "User lookup"
+msgstr ""
+
+msgid "Reading challenge"
+msgstr ""
+
+msgid "Unexpected challenge length from server"
+msgstr ""
+
+msgid "Logging in"
+msgstr ""
+
+msgid "MySpaceIM - No Username Set"
+msgstr ""
+
+msgid "You appear to have no MySpace username."
+msgstr ""
+
+msgid "Would you like to set one now? (Note: THIS CANNOT BE CHANGED!)"
+msgstr ""
+
+msgid "Lost connection with server"
+msgstr ""
+
+#. Can't write _()'d strings in array initializers. Workaround.
+#. khc: then use N_() in the array initializer and use _() when they are
+#. used
+msgid "New mail messages"
+msgstr ""
+
+msgid "New blog comments"
+msgstr ""
+
+msgid "New profile comments"
+msgstr ""
+
+msgid "New friend requests!"
+msgstr ""
+
+msgid "New picture comments"
+msgstr ""
+
+msgid "MySpace"
+msgstr ""
+
+msgid "IM Friends"
+msgstr ""
+
+#, c-format
+msgid ""
+"%d buddy was added or updated from the server (including buddies already on "
+"the server-side list)"
+msgid_plural ""
+"%d buddies were added or updated from the server (including buddies already "
+"on the server-side list)"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Add contacts from server"
+msgstr ""
+
+#. The session is now set up, ready to be connected. This emits the
+#. * signedOn signal, so clients can now do anything with msimprpl, and
+#. * we're ready for it (session key, userid, username all setup).
+msgid "Connected"
+msgstr ""
+
+#, c-format
+msgid "Protocol error, code %d: %s"
+msgstr ""
+
+#, c-format
+msgid ""
+"%s Your password is %d characters, greater than the expected maximum length "
+"of %d for MySpaceIM. Please shorten your password at http://profileedit."
+"myspace.com/index.cfm?fuseaction=accountSettings.changePassword and try "
+"again."
+msgstr ""
+
+msgid "MySpaceIM Error"
+msgstr ""
+
+msgid "Invalid input condition"
+msgstr ""
+
+msgid "Read buffer full (2)"
+msgstr ""
+
+msgid "Unparseable message"
+msgstr ""
+
+#, c-format
+msgid "Couldn't connect to host: %s (%d)"
+msgstr ""
+
+msgid "Failed to add buddy"
+msgstr ""
+
+msgid "'addbuddy' command failed."
+msgstr ""
+
+msgid "persist command failed"
+msgstr ""
+
+msgid "Failed to remove buddy"
+msgstr ""
+
+msgid "'delbuddy' command failed"
+msgstr ""
+
+msgid "blocklist command failed"
+msgstr ""
+
+msgid "Missing Cipher"
+msgstr ""
+
+msgid "The RC4 cipher could not be found"
+msgstr ""
+
+msgid ""
+"Upgrade to a libpurple with RC4 support (>= 2.0.1). MySpaceIM plugin will "
+"not be loaded."
+msgstr ""
+
+msgid "Add friends from MySpace.com"
+msgstr ""
+
+msgid "Importing friends failed"
+msgstr ""
+
+#. TODO: find out how
+msgid "Find people..."
+msgstr ""
+
+msgid "Change IM name..."
+msgstr ""
+
+msgid "myim URL handler"
+msgstr ""
+
+msgid "No suitable MySpaceIM account could be found to open this myim URL."
+msgstr ""
+
+msgid "Enable the proper MySpaceIM account and try again."
+msgstr ""
+
+msgid "Show display name in status text"
+msgstr ""
+
+msgid "Show headline in status text"
+msgstr ""
+
+msgid "Send emoticons"
+msgstr ""
+
+msgid "Screen resolution (dots per inch)"
+msgstr ""
+
+msgid "Base font size (points)"
+msgstr ""
+
+msgid "User"
+msgstr ""
+
+msgid "Headline"
+msgstr ""
+
+msgid "Song"
+msgstr ""
+
+msgid "Total Friends"
+msgstr ""
+
+msgid "Client Version"
+msgstr ""
+
+msgid "MySpaceIM - Username Available"
+msgstr ""
+
+msgid "This username is available. Would you like to set it?"
+msgstr ""
+
+msgid "ONCE SET, THIS CANNOT BE CHANGED!"
+msgstr ""
+
+msgid "MySpaceIM - Please Set a Username"
+msgstr ""
+
+msgid "This username is unavailable."
+msgstr ""
+
+msgid "Please try another username:"
+msgstr ""
+
+#. Protocol won't log in now without a username set.. Disconnect
+msgid "No username set"
+msgstr ""
+
+msgid "Please enter a username to check its availability:"
+msgstr ""
+
+#. TODO: icons for each zap
+#. Lots of comments for translators:
+#. Zap means "to strike suddenly and forcefully as if with a
+#. * projectile or weapon."  This term often has an electrical
+#. * connotation, for example, "he was zapped by electricity when
+#. * he put a fork in the toaster."
+msgid "Zap"
+msgstr ""
+
+#, c-format
+msgid "%s has zapped you!"
+msgstr ""
+
+#, c-format
+msgid "Zapping %s..."
+msgstr ""
+
+#. Whack means "to hit or strike someone with a sharp blow"
+msgid "Whack"
+msgstr ""
+
+#, c-format
+msgid "%s has whacked you!"
+msgstr ""
+
+#, c-format
+msgid "Whacking %s..."
+msgstr ""
+
+#. Torch means "to set on fire."  Don't worry, this doesn't
+#. * make a whole lot of sense in English, either.  Feel free
+#. * to translate it literally.
+msgid "Torch"
+msgstr ""
+
+#, c-format
+msgid "%s has torched you!"
+msgstr ""
+
+#, c-format
+msgid "Torching %s..."
+msgstr ""
+
+#. Smooch means "to kiss someone, often enthusiastically"
+msgid "Smooch"
+msgstr ""
+
+#, c-format
+msgid "%s has smooched you!"
+msgstr ""
+
+#, c-format
+msgid "Smooching %s..."
+msgstr ""
+
+#. A hug is a display of affection; wrapping your arms around someone
+msgid "Hug"
+msgstr ""
+
+#, c-format
+msgid "%s has hugged you!"
+msgstr ""
+
+#, c-format
+msgid "Hugging %s..."
+msgstr ""
+
+#. Slap means "to hit someone with an open/flat hand"
+msgid "Slap"
+msgstr ""
+
+#, c-format
+msgid "%s has slapped you!"
+msgstr ""
+
+#, c-format
+msgid "Slapping %s..."
+msgstr ""
+
+#. Goose means "to pinch someone on their butt"
+msgid "Goose"
+msgstr ""
+
+#, c-format
+msgid "%s has goosed you!"
+msgstr ""
+
+#, c-format
+msgid "Goosing %s..."
+msgstr ""
+
+#. A high-five is when two people's hands slap each other
+#. * in the air above their heads.  It is done to celebrate
+#. * something, often a victory, or to congratulate someone.
+msgid "High-five"
+msgstr ""
+
+#, c-format
+msgid "%s has high-fived you!"
+msgstr ""
+
+#, c-format
+msgid "High-fiving %s..."
+msgstr ""
+
+#. We're not entirely sure what the MySpace people mean by
+#. * this... but we think it's the equivalent of "prank."  Or, for
+#. * someone to perform a mischievous trick or practical joke.
+msgid "Punk"
+msgstr ""
+
+#, c-format
+msgid "%s has punk'd you!"
+msgstr ""
+
+#, c-format
+msgid "Punking %s..."
+msgstr ""
+
+#. Raspberry is a slang term for the vibrating sound made
+#. * when you stick your tongue out of your mouth with your
+#. * lips closed and blow.  It is typically done when
+#. * gloating or bragging.  Nowadays it's a pretty silly
+#. * gesture, so it does not carry a harsh negative
+#. * connotation.  It is generally used in a playful tone
+#. * with friends.
+msgid "Raspberry"
+msgstr ""
+
+#, c-format
+msgid "%s has raspberried you!"
+msgstr ""
+
+#, c-format
+msgid "Raspberrying %s..."
+msgstr ""
+
+msgid "Required parameters not passed in"
+msgstr ""
+
+msgid "Unable to write to network"
+msgstr ""
+
+msgid "Unable to read from network"
+msgstr ""
+
+msgid "Error communicating with server"
+msgstr ""
+
+msgid "Conference not found"
+msgstr ""
+
+msgid "Conference does not exist"
+msgstr ""
+
+msgid "A folder with that name already exists"
+msgstr ""
+
+msgid "Not supported"
+msgstr ""
+
+msgid "Password has expired"
+msgstr ""
+
+msgid "Incorrect password"
+msgstr ""
+
+msgid "User not found"
+msgstr ""
+
+msgid "Account has been disabled"
+msgstr ""
+
+msgid "The server could not access the directory"
+msgstr ""
+
+msgid "Your system administrator has disabled this operation"
+msgstr ""
+
+msgid "The server is unavailable; try again later"
+msgstr ""
+
+msgid "Cannot add a contact to the same folder twice"
+msgstr ""
+
+msgid "Cannot add yourself"
+msgstr ""
+
+msgid "Master archive is misconfigured"
+msgstr ""
+
+msgid "Incorrect username or password"
+msgstr ""
+
+msgid "Could not recognize the host of the username you entered"
+msgstr ""
+
+msgid ""
+"Your account has been disabled because too many incorrect passwords were "
+"entered"
+msgstr ""
+
+msgid "You cannot add the same person twice to a conversation"
+msgstr ""
+
+msgid "You have reached your limit for the number of contacts allowed"
+msgstr ""
+
+msgid "You have entered an incorrect username"
+msgstr ""
+
+msgid "An error occurred while updating the directory"
+msgstr ""
+
+msgid "Incompatible protocol version"
+msgstr ""
+
+msgid "The user has blocked you"
+msgstr ""
+
+msgid ""
+"This evaluation version does not allow more than ten users to log in at one "
+"time"
+msgstr ""
+
+msgid "The user is either offline or you are blocked"
+msgstr ""
+
+#, c-format
+msgid "Unknown error: 0x%X"
+msgstr ""
+
+#, c-format
+msgid "Login failed (%s)."
+msgstr ""
+
+#, c-format
+msgid "Unable to send message. Could not get details for user (%s)."
+msgstr ""
+
+#, c-format
+msgid "Unable to add %s to your buddy list (%s)."
+msgstr ""
+
+#. TODO: Improve this! message to who or for what conference?
+#, c-format
+msgid "Unable to send message (%s)."
+msgstr ""
+
+#, c-format
+msgid "Unable to invite user (%s)."
+msgstr ""
+
+#, c-format
+msgid "Unable to send message to %s. Could not create the conference (%s)."
+msgstr ""
+
+#, c-format
+msgid "Unable to send message. Could not create the conference (%s)."
+msgstr ""
+
+#, c-format
+msgid ""
+"Unable to move user %s to folder %s in the server side list. Error while "
+"creating folder (%s)."
+msgstr ""
+
+#, c-format
+msgid ""
+"Unable to add %s to your buddy list. Error creating folder in server side "
+"list (%s)."
+msgstr ""
+
+#, c-format
+msgid "Could not get details for user %s (%s)."
+msgstr ""
+
+#, c-format
+msgid "Unable to add user to privacy list (%s)."
+msgstr ""
+
+#, c-format
+msgid "Unable to add %s to deny list (%s)."
+msgstr ""
+
+#, c-format
+msgid "Unable to add %s to permit list (%s)."
+msgstr ""
+
+#, c-format
+msgid "Unable to remove %s from privacy list (%s)."
+msgstr ""
+
+#, c-format
+msgid "Unable to change server side privacy settings (%s)."
+msgstr ""
+
+#, c-format
+msgid "Unable to create conference (%s)."
+msgstr ""
+
+msgid "Error communicating with server. Closing connection."
+msgstr ""
+
+msgid "Telephone Number"
+msgstr ""
+
+msgid "Personal Title"
+msgstr ""
+
+msgid "Mailstop"
+msgstr ""
+
+msgid "User ID"
+msgstr ""
+
+#. tag = _("DN");
+#. value = nm_user_record_get_dn(user_record);
+#. if (value) {
+#. purple_notify_user_info_add_pair(user_info, tag, value);
+#. }
+#.
+msgid "Full name"
+msgstr ""
+
+#, c-format
+msgid "GroupWise Conference %d"
+msgstr ""
+
+msgid "Authenticating..."
+msgstr ""
+
+msgid "Unable to connect to server."
+msgstr ""
+
+msgid "Waiting for response..."
+msgstr ""
+
+#, c-format
+msgid "%s has been invited to this conversation."
+msgstr ""
+
+msgid "Invitation to Conversation"
+msgstr ""
+
+#, c-format
+msgid ""
+"Invitation from: %s\n"
+"\n"
+"Sent: %s"
+msgstr ""
+
+msgid "Would you like to join the conversation?"
+msgstr ""
+
+msgid "You have been logged out because you logged in at another workstation."
+msgstr ""
+
+#, c-format
+msgid ""
+"%s appears to be offline and did not receive the message that you just sent."
+msgstr ""
+
+msgid ""
+"Unable to connect to server. Please enter the address of the server you wish "
+"to connect to."
+msgstr ""
+
+msgid "Error. SSL support is not installed."
+msgstr ""
+
+msgid "This conference has been closed. No more messages can be sent."
+msgstr ""
+
+#. *< type
+#. *< ui_requirement
+#. *< flags
+#. *< dependencies
+#. *< priority
+#. *< id
+#. *< name
+#. *< version
+#. *  summary
+#. *  description
+msgid "Novell GroupWise Messenger Protocol Plugin"
+msgstr ""
+
+msgid "Server address"
+msgstr ""
+
+msgid "Server port"
+msgstr ""
+
+msgid "Could not join chat room"
+msgstr ""
+
+msgid "Invalid chat room name"
+msgstr ""
+
+msgid "Server closed the connection."
+msgstr ""
+
+#, c-format
+msgid ""
+"Lost connection with server:\n"
+"%s"
+msgstr ""
+
+msgid "Received invalid data on connection with server."
+msgstr ""
+
+#. *< type
+#. *< ui_requirement
+#. *< flags
+#. *< dependencies
+#. *< priority
+#. *< id
+#. *< name
+#. *< version
+#. *  summary
+#. *  description
+msgid "AIM Protocol Plugin"
+msgstr ""
+
+msgid "ICQ UIN..."
+msgstr ""
+
+#. *< type
+#. *< ui_requirement
+#. *< flags
+#. *< dependencies
+#. *< priority
+#. *< id
+#. *< name
+#. *< version
+#. *  summary
+#. *  description
+msgid "ICQ Protocol Plugin"
+msgstr ""
+
+msgid "Encoding"
+msgstr ""
+
+msgid "The remote user has closed the connection."
+msgstr ""
+
+msgid "The remote user has declined your request."
+msgstr ""
+
+#, c-format
+msgid "Lost connection with the remote user:<br>%s"
+msgstr ""
+
+msgid "Received invalid data on connection with remote user."
+msgstr ""
+
+msgid "Could not establish a connection with the remote user."
+msgstr ""
+
+msgid "Direct IM established"
+msgstr ""
+
+#, 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 ""
+
+#, c-format
+msgid "File %s is %s, which is larger than the maximum size of %s."
+msgstr ""
+
+msgid "Invalid error"
+msgstr ""
+
+msgid "Invalid SNAC"
+msgstr ""
+
+msgid "Rate to host"
+msgstr ""
+
+msgid "Rate to client"
+msgstr ""
+
+msgid "Service unavailable"
+msgstr ""
+
+msgid "Service not defined"
+msgstr ""
+
+msgid "Obsolete SNAC"
+msgstr ""
+
+msgid "Not supported by host"
+msgstr ""
+
+msgid "Not supported by client"
+msgstr ""
+
+msgid "Refused by client"
+msgstr ""
+
+msgid "Reply too big"
+msgstr ""
+
+msgid "Responses lost"
+msgstr ""
+
+msgid "Request denied"
+msgstr ""
+
+msgid "Busted SNAC payload"
+msgstr ""
+
+msgid "Insufficient rights"
+msgstr ""
+
+msgid "In local permit/deny"
+msgstr ""
+
+msgid "Warning level too high (sender)"
+msgstr ""
+
+msgid "Warning level too high (receiver)"
+msgstr ""
+
+msgid "User temporarily unavailable"
+msgstr ""
+
+msgid "No match"
+msgstr ""
+
+msgid "List overflow"
+msgstr ""
+
+msgid "Request ambiguous"
+msgstr ""
+
+msgid "Queue full"
+msgstr ""
+
+msgid "Not while on AOL"
+msgstr ""
+
+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 "
+"encoding he is using, you can specify it in the advanced account options for "
+"your AIM/ICQ account.)"
+msgstr ""
+
+#, c-format
+msgid ""
+"(There was an error receiving this message.  Either you and %s have "
+"different encodings selected, or %s has a buggy client.)"
+msgstr ""
+
+#. Label
+msgid "Buddy Icon"
+msgstr ""
+
+msgid "Voice"
+msgstr ""
+
+msgid "AIM Direct IM"
+msgstr ""
+
+msgid "Get File"
+msgstr ""
+
+msgid "Games"
+msgstr ""
+
+msgid "Add-Ins"
+msgstr ""
+
+msgid "Send Buddy List"
+msgstr ""
+
+msgid "ICQ Direct Connect"
+msgstr ""
+
+msgid "AP User"
+msgstr ""
+
+msgid "ICQ RTF"
+msgstr ""
+
+msgid "Nihilist"
+msgstr ""
+
+msgid "ICQ Server Relay"
+msgstr ""
+
+msgid "Old ICQ UTF8"
+msgstr ""
+
+msgid "Trillian Encryption"
+msgstr ""
+
+msgid "ICQ UTF8"
+msgstr ""
+
+msgid "Hiptop"
+msgstr ""
+
+msgid "Security Enabled"
+msgstr ""
+
+msgid "Video Chat"
+msgstr ""
+
+msgid "iChat AV"
+msgstr ""
+
+msgid "Live Video"
+msgstr ""
+
+msgid "Camera"
+msgstr ""
+
+msgid "Screen Sharing"
+msgstr ""
+
+msgid "Free For Chat"
+msgstr ""
+
+msgid "Not Available"
+msgstr ""
+
+msgid "Occupied"
+msgstr ""
+
+msgid "Web Aware"
+msgstr ""
+
+msgid "Invisible"
+msgstr ""
+
+msgid "IP Address"
+msgstr ""
+
+msgid "Warning Level"
+msgstr ""
+
+msgid "Buddy Comment"
+msgstr ""
+
+#, c-format
+msgid ""
+"Could not connect to authentication server:\n"
+"%s"
+msgstr ""
+
+#, c-format
+msgid ""
+"Could not connect to BOS server:\n"
+"%s"
+msgstr ""
+
+msgid "Username sent"
+msgstr ""
+
+msgid "Connection established, cookie sent"
+msgstr ""
+
+#. TODO: Don't call this with ssi
+msgid "Finalizing connection"
+msgstr ""
+
+#, c-format
+msgid ""
+"Unable to login: Could not sign on as %s because the username is invalid.  "
+"Usernames must be a valid email address, or start with a letter and contain "
+"only letters, numbers and spaces, or contain only numbers."
+msgstr ""
+
+#. Unregistered username
+#. uid is not exist
+msgid "Invalid username."
+msgstr ""
+
+msgid "Incorrect password."
+msgstr ""
+
+#. Suspended account
+msgid "Your account is currently suspended."
+msgstr ""
+
+#. service temporarily unavailable
+msgid "The AOL Instant Messenger service is temporarily unavailable."
+msgstr ""
+
+#. username connecting too frequently
+#. IP address connecting too frequently
+msgid ""
+"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 ""
+
+#, c-format
+msgid "The client version you are using is too old. Please upgrade at %s"
+msgstr ""
+
+msgid "Could Not Connect"
+msgstr ""
+
+msgid "Received authorization"
+msgstr ""
+
+msgid "The SecurID key entered is invalid."
+msgstr ""
+
+msgid "Enter SecurID"
+msgstr ""
+
+msgid "Enter the 6 digit number from the digital display."
+msgstr ""
+
+#. *
+#. * A wrapper for purple_request_action() that uses @c OK and @c Cancel buttons.
+#.
+msgid "_OK"
+msgstr ""
+
+#, c-format
+msgid "You may be disconnected shortly.  If so, check %s for updates."
+msgstr ""
+
+msgid "Unable to get a valid AIM login hash."
+msgstr ""
+
+#, c-format
+msgid "You may be disconnected shortly.  Check %s for updates."
+msgstr ""
+
+msgid "Unable to get a valid login hash."
+msgstr ""
+
+msgid "Password sent"
+msgstr ""
+
+msgid "Unable to initialize connection"
+msgstr ""
+
+msgid "Please authorize me so I can add you to my buddy list."
+msgstr ""
+
+msgid "Authorization Request Message:"
+msgstr ""
+
+msgid "Please authorize me!"
+msgstr ""
+
+msgid "No reason given."
+msgstr ""
+
+msgid "Authorization Denied Message:"
+msgstr ""
+
+#, c-format
+msgid ""
+"The user %u has denied your request to add them to your buddy list for the "
+"following reason:\n"
+"%s"
+msgstr ""
+
+msgid "ICQ authorization denied."
+msgstr ""
+
+#. Someone has granted you authorization
+#, c-format
+msgid "The user %u has granted your request to add them to your buddy list."
+msgstr ""
+
+#, c-format
+msgid ""
+"You have received a special message\n"
+"\n"
+"From: %s [%s]\n"
+"%s"
+msgstr ""
+
+#, c-format
+msgid ""
+"You have received an ICQ page\n"
+"\n"
+"From: %s [%s]\n"
+"%s"
+msgstr ""
+
+#, c-format
+msgid ""
+"You have received an ICQ email from %s [%s]\n"
+"\n"
+"Message is:\n"
+"%s"
+msgstr ""
+
+#, c-format
+msgid "ICQ user %u has sent you a buddy: %s (%s)"
+msgstr ""
+
+msgid "Do you want to add this buddy to your buddy list?"
+msgstr ""
+
+msgid "_Add"
+msgstr ""
+
+msgid "_Decline"
+msgstr ""
+
+#, c-format
+msgid "You missed %hu message from %s because it was invalid."
+msgid_plural "You missed %hu messages from %s because they were invalid."
+msgstr[0] ""
+msgstr[1] ""
+
+#, c-format
+msgid "You missed %hu message from %s because it was too large."
+msgid_plural "You missed %hu messages from %s because they were too large."
+msgstr[0] ""
+msgstr[1] ""
+
+#, c-format
+msgid ""
+"You missed %hu message from %s because the rate limit has been exceeded."
+msgid_plural ""
+"You missed %hu messages from %s because the rate limit has been exceeded."
+msgstr[0] ""
+msgstr[1] ""
+
+#, c-format
+msgid ""
+"You missed %hu message from %s because his/her warning level is too high."
+msgid_plural ""
+"You missed %hu messages from %s because his/her warning level is too high."
+msgstr[0] ""
+msgstr[1] ""
+
+#, c-format
+msgid "You missed %hu message from %s because your warning level is too high."
+msgid_plural ""
+"You missed %hu messages from %s because your warning level is too high."
+msgstr[0] ""
+msgstr[1] ""
+
+#, c-format
+msgid "You missed %hu message from %s for an unknown reason."
+msgid_plural "You missed %hu messages from %s for an unknown reason."
+msgstr[0] ""
+msgstr[1] ""
+
+#. Data is assumed to be the destination bn
+#, c-format
+msgid "Unable to send message: %s"
+msgstr ""
+
+msgid "Unknown reason."
+msgstr ""
+
+#, c-format
+msgid "Unable to send message to %s:"
+msgstr ""
+
+#, c-format
+msgid "User information not available: %s"
+msgstr ""
+
+msgid "Online Since"
+msgstr ""
+
+msgid "Member Since"
+msgstr ""
+
+msgid "Profile"
+msgstr ""
+
+msgid "Your AIM connection may be lost."
+msgstr ""
+
+#. The conversion failed!
+msgid ""
+"[Unable to display a message from this user because it contained invalid "
+"characters.]"
+msgstr ""
+
+msgid ""
+"The last action you attempted could not be performed because you are over "
+"the rate limit. Please wait 10 seconds and try again."
+msgstr ""
+
+#, c-format
+msgid "You have been disconnected from chat room %s."
+msgstr ""
+
+msgid "Mobile Phone"
+msgstr ""
+
+msgid "Personal Web Page"
+msgstr ""
+
+#. aim_userinfo_t
+#. strip_html_tags
+msgid "Additional Information"
+msgstr ""
+
+msgid "Zip Code"
+msgstr ""
+
+msgid "Work Information"
+msgstr ""
+
+msgid "Division"
+msgstr ""
+
+msgid "Position"
+msgstr ""
+
+msgid "Web Page"
+msgstr ""
+
+msgid "Pop-Up Message"
+msgstr ""
+
+#, c-format
+msgid "The following username is associated with %s"
+msgid_plural "The following usernames are associated with %s"
+msgstr[0] ""
+msgstr[1] ""
+
+#, c-format
+msgid "No results found for email address %s"
+msgstr ""
+
+#, c-format
+msgid "You should receive an email asking to confirm %s."
+msgstr ""
+
+msgid "Account Confirmation Requested"
+msgstr ""
+
+#, c-format
+msgid ""
+"Error 0x%04x: Unable to format username because the requested name differs "
+"from the original."
+msgstr ""
+
+#, c-format
+msgid "Error 0x%04x: Unable to format username because it is invalid."
+msgstr ""
+
+#, c-format
+msgid ""
+"Error 0x%04x: Unable to format username because the requested name is too "
+"long."
+msgstr ""
+
+#, c-format
+msgid ""
+"Error 0x%04x: Unable to change email address because there is already a "
+"request pending for this username."
+msgstr ""
+
+#, c-format
+msgid ""
+"Error 0x%04x: Unable to change email address because the given address has "
+"too many usernames associated with it."
+msgstr ""
+
+#, c-format
+msgid ""
+"Error 0x%04x: Unable to change email address because the given address is "
+"invalid."
+msgstr ""
+
+#, c-format
+msgid "Error 0x%04x: Unknown error."
+msgstr ""
+
+msgid "Error Changing Account Info"
+msgstr ""
+
+#, c-format
+msgid "The email address for %s is %s"
+msgstr ""
+
+msgid "Account Info"
+msgstr ""
+
+msgid ""
+"Your IM Image was not sent. You must be Direct Connected to send IM Images."
+msgstr ""
+
+msgid "Unable to set AIM profile."
+msgstr ""
+
+msgid ""
+"You have probably requested to set your profile before the login procedure "
+"completed.  Your profile remains unset; try setting it again when you are "
+"fully connected."
+msgstr ""
+
+#, c-format
+msgid ""
+"The maximum profile length of %d byte has been exceeded.  It has been "
+"truncated for you."
+msgid_plural ""
+"The maximum profile length of %d bytes has been exceeded.  It has been "
+"truncated for you."
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Profile too long."
+msgstr ""
+
+#, c-format
+msgid ""
+"The maximum away message length of %d byte has been exceeded.  It has been "
+"truncated for you."
+msgid_plural ""
+"The maximum away message length of %d bytes has been exceeded.  It has been "
+"truncated for you."
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Away message too long."
+msgstr ""
+
+#, c-format
+msgid ""
+"Could not add the buddy %s because the username is invalid.  Usernames must "
+"be a valid email address, or start with a letter and contain only letters, "
+"numbers and spaces, or contain only numbers."
+msgstr ""
+
+msgid "Unable to Add"
+msgstr ""
+
+msgid "Unable to Retrieve Buddy List"
+msgstr ""
+
+msgid ""
+"The AIM servers were temporarily unable to send your buddy list.  Your buddy "
+"list is not lost, and will probably become available in a few minutes."
+msgstr ""
+
+msgid "Orphans"
+msgstr ""
+
+#, c-format
+msgid ""
+"Could not add the buddy %s because you have too many buddies in your buddy "
+"list.  Please remove one and try again."
+msgstr ""
+
+msgid "(no name)"
+msgstr ""
+
+#, c-format
+msgid "Could not add the buddy %s for an unknown reason."
+msgstr ""
+
+#, c-format
+msgid ""
+"The user %s has given you permission to add him or her to your buddy list.  "
+"Do you want to add this user?"
+msgstr ""
+
+msgid "Authorization Given"
+msgstr ""
+
+#. Granted
+#, c-format
+msgid "The user %s has granted your request to add them to your buddy list."
+msgstr ""
+
+msgid "Authorization Granted"
+msgstr ""
+
+#. Denied
+#, c-format
+msgid ""
+"The user %s has denied your request to add them to your buddy list for the "
+"following reason:\n"
+"%s"
+msgstr ""
+
+msgid "Authorization Denied"
+msgstr ""
+
+msgid "_Exchange:"
+msgstr ""
+
+msgid "Your IM Image was not sent. You cannot send IM Images in AIM chats."
+msgstr ""
+
+msgid "iTunes Music Store Link"
+msgstr ""
+
+#, c-format
+msgid "Buddy Comment for %s"
+msgstr ""
+
+msgid "Buddy Comment:"
+msgstr ""
+
+#, c-format
+msgid "You have selected to open a Direct IM connection with %s."
+msgstr ""
+
+msgid ""
+"Because this reveals your IP address, it may be considered a security risk.  "
+"Do you wish to continue?"
+msgstr ""
+
+msgid "C_onnect"
+msgstr ""
+
+msgid "Get AIM Info"
+msgstr ""
+
+#. We only do this if the user is in our buddy list
+msgid "Edit Buddy Comment"
+msgstr ""
+
+msgid "Get Status Msg"
+msgstr ""
+
+msgid "Direct IM"
+msgstr ""
+
+msgid "Re-request Authorization"
+msgstr ""
+
+msgid "Require authorization"
+msgstr ""
+
+msgid "Web aware (enabling this will cause you to receive SPAM!)"
+msgstr ""
+
+msgid "ICQ Privacy Options"
+msgstr ""
+
+msgid "The new formatting is invalid."
+msgstr ""
+
+msgid "Username formatting can change only capitalization and whitespace."
+msgstr ""
+
+msgid "Change Address To:"
+msgstr ""
+
+msgid "<i>you are not waiting for authorization</i>"
+msgstr ""
+
+msgid "You are awaiting authorization from the following buddies"
+msgstr ""
+
+msgid ""
+"You can re-request authorization from these buddies by right-clicking on "
+"them and selecting \"Re-request Authorization.\""
+msgstr ""
+
+msgid "Find Buddy by Email"
+msgstr ""
+
+msgid "Search for a buddy by email address"
+msgstr ""
+
+msgid "Type the email address of the buddy you are searching for."
+msgstr ""
+
+msgid "_Search"
+msgstr ""
+
+msgid "Set User Info (web)..."
+msgstr ""
+
+msgid "Change Password (web)"
+msgstr ""
+
+msgid "Configure IM Forwarding (web)"
+msgstr ""
+
+#. ICQ actions
+msgid "Set Privacy Options..."
+msgstr ""
+
+#. AIM actions
+msgid "Confirm Account"
+msgstr ""
+
+msgid "Display Currently Registered Email Address"
+msgstr ""
+
+msgid "Change Currently Registered Email Address..."
+msgstr ""
+
+msgid "Show Buddies Awaiting Authorization"
+msgstr ""
+
+msgid "Search for Buddy by Email Address..."
+msgstr ""
+
+msgid "Search for Buddy by Information"
+msgstr ""
+
+msgid ""
+"Always use AIM/ICQ proxy server for\n"
+"file transfers and direct IM (slower,\n"
+"but does not reveal your IP address)"
+msgstr ""
+
+msgid "Allow multiple simultaneous logins"
+msgstr ""
+
+#, c-format
+msgid "Asking %s to connect to us at %s:%hu for Direct IM."
+msgstr ""
+
+#, c-format
+msgid "Attempting to connect to %s:%hu."
+msgstr ""
+
+msgid "Attempting to connect via proxy server."
+msgstr ""
+
+#, c-format
+msgid "%s has just asked to directly connect to %s"
+msgstr ""
+
+msgid ""
+"This requires a direct connection between the two computers and is necessary "
+"for IM Images.  Because your IP address will be revealed, this may be "
+"considered a privacy risk."
+msgstr ""
+
+msgid "Aquarius"
+msgstr ""
+
+msgid "Pisces"
+msgstr ""
+
+msgid "Aries"
+msgstr ""
+
+msgid "Taurus"
+msgstr ""
+
+msgid "Gemini"
+msgstr ""
+
+msgid "Cancer"
+msgstr ""
+
+msgid "Leo"
+msgstr ""
+
+msgid "Virgo"
+msgstr ""
+
+msgid "Libra"
+msgstr ""
+
+msgid "Scorpio"
+msgstr ""
+
+msgid "Sagittarius"
+msgstr ""
+
+msgid "Capricorn"
+msgstr ""
+
+msgid "Rat"
+msgstr ""
+
+msgid "Ox"
+msgstr ""
+
+msgid "Tiger"
+msgstr ""
+
+msgid "Rabbit"
+msgstr ""
+
+msgid "Dragon"
+msgstr ""
+
+msgid "Snake"
+msgstr ""
+
+msgid "Horse"
+msgstr ""
+
+msgid "Goat"
+msgstr ""
+
+msgid "Monkey"
+msgstr ""
+
+msgid "Rooster"
+msgstr ""
+
+msgid "Dog"
+msgstr ""
+
+msgid "Pig"
+msgstr ""
+
+msgid "Other"
+msgstr ""
+
+msgid "Visible"
+msgstr ""
+
+msgid "Friend Only"
+msgstr ""
+
+msgid "Private"
+msgstr ""
+
+msgid "QQ Number"
+msgstr ""
+
+msgid "Country/Region"
+msgstr ""
+
+msgid "Province/State"
+msgstr ""
+
+msgid "Zipcode"
+msgstr ""
+
+msgid "Phone Number"
+msgstr ""
+
+msgid "Authorize adding"
+msgstr ""
+
+msgid "Cellphone Number"
+msgstr ""
+
+msgid "Personal Introduction"
+msgstr ""
+
+msgid "City/Area"
+msgstr ""
+
+msgid "Publish Mobile"
+msgstr ""
+
+msgid "Publish Contact"
+msgstr ""
+
+msgid "College"
+msgstr ""
+
+msgid "Horoscope"
+msgstr ""
+
+msgid "Zodiac"
+msgstr ""
+
+msgid "Blood"
+msgstr ""
+
+msgid "True"
+msgstr ""
+
+msgid "False"
+msgstr ""
+
+msgid "Modify Contact"
+msgstr ""
+
+msgid "Modify Address"
+msgstr ""
+
+msgid "Modify Extended Information"
+msgstr ""
+
+msgid "Modify Information"
+msgstr ""
+
+msgid "Update"
+msgstr ""
+
+msgid "Could not change buddy information."
+msgstr ""
+
+msgid "Mobile"
+msgstr ""
+
+msgid "Note"
+msgstr ""
+
+#. callback
+msgid "Buddy Memo"
+msgstr ""
+
+msgid "Change his/her memo as you like"
+msgstr ""
+
+msgid "_Modify"
+msgstr ""
+
+msgid "Memo Modify"
+msgstr ""
+
+msgid "Server says:"
+msgstr ""
+
+msgid "Your request was accepted."
+msgstr ""
+
+msgid "Your request was rejected."
+msgstr ""
+
+#, c-format
+msgid "%u requires verification"
+msgstr ""
+
+msgid "Add buddy question"
+msgstr ""
+
+msgid "Enter answer here"
+msgstr ""
+
+msgid "Send"
+msgstr ""
+
+msgid "Invalid answer."
+msgstr ""
+
+msgid "Authorization denied message:"
+msgstr ""
+
+msgid "Sorry, you're not my style."
+msgstr ""
+
+#, c-format
+msgid "%u needs authorization"
+msgstr ""
+
+msgid "Add buddy authorize"
+msgstr ""
+
+msgid "Enter request here"
+msgstr ""
+
+msgid "Would you be my friend?"
+msgstr ""
+
+msgid "QQ Buddy"
+msgstr ""
+
+msgid "Add buddy"
+msgstr ""
+
+msgid "Invalid QQ Number"
+msgstr ""
+
+msgid "Failed sending authorize"
+msgstr ""
+
+#, c-format
+msgid "Failed removing buddy %u"
+msgstr ""
+
+#, c-format
+msgid "Failed removing me from %d's buddy list"
+msgstr ""
+
+msgid "No reason given"
+msgstr ""
+
+#. only need to get value
+#, c-format
+msgid "You have been added by %s"
+msgstr ""
+
+msgid "Would you like to add him?"
+msgstr ""
+
+#, c-format
+msgid "Rejected by %s"
+msgstr ""
+
+#, c-format
+msgid "Message: %s"
+msgstr ""
+
+msgid "ID: "
+msgstr ""
+
+msgid "Group ID"
+msgstr ""
+
+msgid "QQ Qun"
+msgstr ""
+
+msgid "Please enter Qun number"
+msgstr ""
+
+msgid "You can only search for permanent Qun\n"
+msgstr ""
+
+msgid "(Invalid UTF-8 string)"
+msgstr ""
+
+msgid "Not member"
+msgstr ""
+
+msgid "Member"
+msgstr ""
+
+msgid "Requesting"
+msgstr ""
+
+msgid "Admin"
+msgstr ""
+
+msgid "Notice"
+msgstr ""
+
+msgid "Detail"
+msgstr ""
+
+msgid "Creator"
+msgstr ""
+
+msgid "About me"
+msgstr ""
+
+msgid "Category"
+msgstr ""
+
+msgid "The Qun does not allow others to join"
+msgstr ""
+
+msgid "Join QQ Qun"
+msgstr ""
+
+msgid "Input request here"
+msgstr ""
+
+#, c-format
+msgid "Successfully joined Qun %s (%u)"
+msgstr ""
+
+msgid "Successfully joined Qun"
+msgstr ""
+
+#, c-format
+msgid "Qun %u denied from joining"
+msgstr ""
+
+msgid "QQ Qun Operation"
+msgstr ""
+
+msgid "Failed:"
+msgstr ""
+
+msgid "Join Qun, Unknown Reply"
+msgstr ""
+
+msgid "Quit Qun"
+msgstr ""
+
+msgid ""
+"Note, if you are the creator, \n"
+"this operation will eventually remove this Qun."
+msgstr ""
+
+msgid "Sorry, you are not our style"
+msgstr ""
+
+msgid "Successfully changed Qun members"
+msgstr ""
+
+msgid "Successfully changed Qun information"
+msgstr ""
+
+msgid "You have successfully created a Qun"
+msgstr ""
+
+msgid "Would you like to set up detailed information now?"
+msgstr ""
+
+msgid "Setup"
+msgstr ""
+
+#, c-format
+msgid "%u requested to join Qun %u for %s"
+msgstr ""
+
+#, c-format
+msgid "%u request to join Qun %u"
+msgstr ""
+
+#, c-format
+msgid "Failed to join Qun %u, operated by admin %u"
+msgstr ""
+
+#, c-format
+msgid "<b>Joining Qun %u is approved by admin %u for %s</b>"
+msgstr ""
+
+#, c-format
+msgid "<b>Removed buddy %u.</b>"
+msgstr ""
+
+#, c-format
+msgid "<b>New buddy %u joined.</b>"
+msgstr ""
+
+#, c-format
+msgid "Unknown-%d"
+msgstr ""
+
+msgid "Level"
+msgstr ""
+
+msgid " VIP"
+msgstr ""
+
+msgid " TCP"
+msgstr ""
+
+msgid " FromMobile"
+msgstr ""
+
+msgid " BindMobile"
+msgstr ""
+
+msgid " Video"
+msgstr ""
+
+msgid " Zone"
+msgstr ""
+
+msgid "Flag"
+msgstr ""
+
+msgid "Ver"
+msgstr ""
+
+msgid "Invalid name"
+msgstr ""
+
+msgid "Select icon..."
+msgstr ""
+
+#, c-format
+msgid "<b>Login time</b>: %d-%d-%d, %d:%d:%d<br>\n"
+msgstr ""
+
+#, c-format
+msgid "<b>Total Online Buddies</b>: %d<br>\n"
+msgstr ""
+
+#, c-format
+msgid "<b>Last Refresh</b>: %d-%d-%d, %d:%d:%d<br>\n"
+msgstr ""
+
+#, c-format
+msgid "<b>Server</b>: %s<br>\n"
+msgstr ""
+
+#, c-format
+msgid "<b>Client Tag</b>: %s<br>\n"
+msgstr ""
+
+#, c-format
+msgid "<b>Connection Mode</b>: %s<br>\n"
+msgstr ""
+
+#, c-format
+msgid "<b>My Internet IP</b>: %s:%d<br>\n"
+msgstr ""
+
+#, c-format
+msgid "<b>Sent</b>: %lu<br>\n"
+msgstr ""
+
+#, c-format
+msgid "<b>Resend</b>: %lu<br>\n"
+msgstr ""
+
+#, c-format
+msgid "<b>Lost</b>: %lu<br>\n"
+msgstr ""
+
+#, c-format
+msgid "<b>Received</b>: %lu<br>\n"
+msgstr ""
+
+#, c-format
+msgid "<b>Received Duplicate</b>: %lu<br>\n"
+msgstr ""
+
+#, c-format
+msgid "<b>Time</b>: %d-%d-%d, %d:%d:%d<br>\n"
+msgstr ""
+
+#, c-format
+msgid "<b>IP</b>: %s<br>\n"
+msgstr ""
+
+msgid "Login Information"
+msgstr ""
+
+msgid "<p><b>Original Author</b>:<br>\n"
+msgstr ""
+
+msgid "<p><b>Code Contributors</b>:<br>\n"
+msgstr ""
+
+msgid "<p><b>Lovely Patch Writers</b>:<br>\n"
+msgstr ""
+
+msgid "<p><b>Acknowledgement</b>:<br>\n"
+msgstr ""
+
+msgid "<p><b>Scrupulous Testers</b>:<br>\n"
+msgstr ""
+
+msgid "and more, please let me know... thank you!))"
+msgstr ""
+
+msgid "<p><i>And, all the boys in the backroom...</i><br>\n"
+msgstr ""
+
+msgid "<i>Feel free to join us!</i> :)"
+msgstr ""
+
+#, c-format
+msgid "About OpenQ %s"
+msgstr ""
+
+msgid "Change Icon"
+msgstr ""
+
+msgid "Change Password"
+msgstr ""
+
+msgid "Account Information"
+msgstr ""
+
+msgid "Update all QQ Quns"
+msgstr ""
+
+msgid "About OpenQ"
+msgstr ""
+
+msgid "Modify Buddy Memo"
+msgstr ""
+
+#. *< type
+#. *< ui_requirement
+#. *< flags
+#. *< dependencies
+#. *< priority
+#. *< id
+#. *< name
+#. *< version
+#. *  summary
+#. *  description
+msgid "QQ Protocol Plugin"
+msgstr ""
+
+msgid "Auto"
+msgstr ""
+
+msgid "Select Server"
+msgstr ""
+
+msgid "QQ2005"
+msgstr ""
+
+msgid "QQ2007"
+msgstr ""
+
+msgid "QQ2008"
+msgstr ""
+
+msgid "Connect by TCP"
+msgstr ""
+
+msgid "Show server notice"
+msgstr ""
+
+msgid "Show server news"
+msgstr ""
+
+msgid "Show chat room when msg comes"
+msgstr ""
+
+msgid "Keep alive interval (seconds)"
+msgstr ""
+
+msgid "Update interval (seconds)"
+msgstr ""
+
+msgid "Cannot decrypt server reply"
+msgstr ""
+
+#, c-format
+msgid "Failed requesting token, 0x%02X"
+msgstr ""
+
+#, c-format
+msgid "Invalid token len, %d"
+msgstr ""
+
+#. extend redirect used in QQ2006
+msgid "Redirect_EX is not currently supported"
+msgstr ""
+
+#. need activation
+#. need activation
+#. need activation
+msgid "Activation required"
+msgstr ""
+
+#, c-format
+msgid "Unknown reply code when logging in (0x%02X)"
+msgstr ""
+
+msgid "Could not decrypt server reply"
+msgstr ""
+
+msgid "Requesting captcha"
+msgstr ""
+
+msgid "Checking captcha"
+msgstr ""
+
+msgid "Failed captcha verification"
+msgstr ""
+
+msgid "Captcha Image"
+msgstr ""
+
+msgid "Enter code"
+msgstr ""
+
+msgid "QQ Captcha Verification"
+msgstr ""
+
+msgid "Enter the text from the image"
+msgstr ""
+
+#, c-format
+msgid "Unknown reply when checking password (0x%02X)"
+msgstr ""
+
+#, c-format
+msgid ""
+"Unknown reply code when logging in (0x%02X):\n"
+"%s"
+msgstr ""
+
+msgid "Unable to connect."
+msgstr ""
+
+msgid "Socket error"
+msgstr ""
+
+msgid "Unable to read from socket"
+msgstr ""
+
+msgid "Write Error"
+msgstr ""
+
+msgid "Connection lost"
+msgstr ""
+
+msgid "Getting server"
+msgstr ""
+
+msgid "Requesting token"
+msgstr ""
+
+msgid "Couldn't resolve host"
+msgstr ""
+
+msgid "Invalid server or port"
+msgstr ""
+
+msgid "Connecting to server"
+msgstr ""
+
+msgid "QQ Error"
+msgstr ""
+
+#, c-format
+msgid ""
+"Server News:\n"
+"%s\n"
+"%s\n"
+"%s"
+msgstr ""
+
+#, c-format
+msgid "%s:%s"
+msgstr ""
+
+#, c-format
+msgid "From %s:"
+msgstr ""
+
+#, c-format
+msgid ""
+"Server notice From %s: \n"
+"%s"
+msgstr ""
+
+msgid "Unknown SERVER CMD"
+msgstr ""
+
+#, c-format
+msgid ""
+"Error reply of %s(0x%02X)\n"
+"Room %u, reply 0x%02X"
+msgstr ""
+
+msgid "QQ Qun Command"
+msgstr ""
+
+msgid "Could not decrypt login reply"
+msgstr ""
+
+msgid "Unknown LOGIN CMD"
+msgstr ""
+
+msgid "Unknown CLIENT CMD"
+msgstr ""
+
+#, c-format
+msgid "%d has declined the file %s"
+msgstr ""
+
+msgid "File Send"
+msgstr ""
+
+#, c-format
+msgid "%d canceled the transfer of %s"
+msgstr ""
+
+msgid "Connection closed (writing)"
+msgstr ""
+
+#, c-format
+msgid "<b>Group Title:</b> %s<br>"
+msgstr ""
+
+#, c-format
+msgid "<b>Notes Group ID:</b> %s<br>"
+msgstr ""
+
+#, c-format
+msgid "Info for Group %s"
+msgstr ""
+
+msgid "Notes Address Book Information"
+msgstr ""
+
+msgid "Invite Group to Conference..."
+msgstr ""
+
+msgid "Get Notes Address Book Info"
+msgstr ""
+
+msgid "Sending Handshake"
+msgstr ""
+
+msgid "Waiting for Handshake Acknowledgement"
+msgstr ""
+
+msgid "Handshake Acknowledged, Sending Login"
+msgstr ""
+
+msgid "Waiting for Login Acknowledgement"
+msgstr ""
+
+msgid "Login Redirected"
+msgstr ""
+
+msgid "Forcing Login"
+msgstr ""
+
+msgid "Login Acknowledged"
+msgstr ""
+
+msgid "Starting Services"
+msgstr ""
+
+#, c-format
+msgid ""
+"A Sametime administrator has issued the following announcement on server %s"
+msgstr ""
+
+msgid "Sametime Administrator Announcement"
+msgstr ""
+
+msgid "Connection reset"
+msgstr ""
+
+#, c-format
+msgid "Error reading from socket: %s"
+msgstr ""
+
+#. this is a regular connect, error out
+msgid "Unable to connect to host"
+msgstr ""
+
+#, c-format
+msgid "Announcement from %s"
+msgstr ""
+
+msgid "Conference Closed"
+msgstr ""
+
+msgid "Unable to send message: "
+msgstr ""
+
+msgid "Place Closed"
+msgstr ""
+
+msgid "Microphone"
+msgstr ""
+
+msgid "Speakers"
+msgstr ""
+
+msgid "Video Camera"
+msgstr ""
+
+msgid "Supports"
+msgstr ""
+
+msgid "External User"
+msgstr ""
+
+msgid "Create conference with user"
+msgstr ""
+
+#, c-format
+msgid ""
+"Please enter a topic for the new conference, and an invitation message to be "
+"sent to %s"
+msgstr ""
+
+msgid "New Conference"
+msgstr ""
+
+msgid "Create"
+msgstr ""
+
+msgid "Available Conferences"
+msgstr ""
+
+msgid "Create New Conference..."
+msgstr ""
+
+msgid "Invite user to a conference"
+msgstr ""
+
+#, c-format
+msgid ""
+"Select a conference from the list below to send an invite to user %s. Select "
+"\"Create New Conference\" if you'd like to create a new conference to invite "
+"this user to."
+msgstr ""
+
+msgid "Invite to Conference"
+msgstr ""
+
+msgid "Invite to Conference..."
+msgstr ""
+
+msgid "Send TEST Announcement"
+msgstr ""
+
+msgid "Topic:"
+msgstr ""
+
+msgid "No Sametime Community Server specified"
+msgstr ""
+
+#, c-format
+msgid ""
+"No host or IP address has been configured for the Meanwhile account %s. "
+"Please enter one below to continue logging in."
+msgstr ""
+
+msgid "Meanwhile Connection Setup"
+msgstr ""
+
+msgid "No Sametime Community Server Specified"
+msgstr ""
+
+msgid "Connect"
+msgstr ""
+
+#, c-format
+msgid "Unknown (0x%04x)<br>"
+msgstr ""
+
+msgid "Last Known Client"
+msgstr ""
+
+msgid "User Name"
+msgstr ""
+
+msgid "Sametime ID"
+msgstr ""
+
+msgid "An ambiguous user ID was entered"
+msgstr ""
+
+#, c-format
+msgid ""
+"The identifier '%s' may possibly refer to any of the following users. Please "
+"select the correct user from the list below to add them to your buddy list."
+msgstr ""
+
+msgid "Select User"
+msgstr ""
+
+msgid "Unable to add user: user not found"
+msgstr ""
+
+#, c-format
+msgid ""
+"The identifier '%s' did not match any users in your Sametime community. This "
+"entry has been removed from your buddy list."
+msgstr ""
+
+#, c-format
+msgid ""
+"Error reading file %s: \n"
+"%s\n"
+msgstr ""
+
+msgid "Remotely Stored Buddy List"
+msgstr ""
+
+msgid "Buddy List Storage Mode"
+msgstr ""
+
+msgid "Local Buddy List Only"
+msgstr ""
+
+msgid "Merge List from Server"
+msgstr ""
+
+msgid "Merge and Save List to Server"
+msgstr ""
+
+msgid "Synchronize List with Server"
+msgstr ""
+
+#, c-format
+msgid "Import Sametime List for Account %s"
+msgstr ""
+
+#, c-format
+msgid "Export Sametime List for Account %s"
+msgstr ""
+
+msgid "Unable to add group: group exists"
+msgstr ""
+
+#, c-format
+msgid "A group named '%s' already exists in your buddy list."
+msgstr ""
+
+msgid "Unable to add group"
+msgstr ""
+
+msgid "Possible Matches"
+msgstr ""
+
+msgid "Notes Address Book group results"
+msgstr ""
+
+#, c-format
+msgid ""
+"The identifier '%s' may possibly refer to any of the following Notes Address "
+"Book groups. Please select the correct group from the list below to add it "
+"to your buddy list."
+msgstr ""
+
+msgid "Select Notes Address Book"
+msgstr ""
+
+msgid "Unable to add group: group not found"
+msgstr ""
+
+#, c-format
+msgid ""
+"The identifier '%s' did not match any Notes Address Book groups in your "
+"Sametime community."
+msgstr ""
+
+msgid "Notes Address Book Group"
+msgstr ""
+
+msgid ""
+"Enter the name of a Notes Address Book group in the field below to add the "
+"group and its members to your buddy list."
+msgstr ""
+
+#, c-format
+msgid "Search results for '%s'"
+msgstr ""
+
+#, c-format
+msgid ""
+"The identifier '%s' may possibly refer to any of the following users. You "
+"may add these users to your buddy list or send them messages with the action "
+"buttons below."
+msgstr ""
+
+msgid "Search Results"
+msgstr ""
+
+msgid "No matches"
+msgstr ""
+
+#, c-format
+msgid "The identifier '%s' did not match any users in your Sametime community."
+msgstr ""
+
+msgid "No Matches"
+msgstr ""
+
+msgid "Search for a user"
+msgstr ""
+
+msgid ""
+"Enter a name or partial ID in the field below to search for matching users "
+"in your Sametime community."
+msgstr ""
+
+msgid "User Search"
+msgstr ""
+
+msgid "Import Sametime List..."
+msgstr ""
+
+msgid "Export Sametime List..."
+msgstr ""
+
+msgid "Add Notes Address Book Group..."
+msgstr ""
+
+msgid "User Search..."
+msgstr ""
+
+msgid "Force login (ignore server redirects)"
+msgstr ""
+
+#. pretend to be Sametime Connect
+msgid "Hide client identity"
+msgstr ""
+
+#, c-format
+msgid "User %s is not present in the network"
+msgstr ""
+
+msgid "Key Agreement"
+msgstr ""
+
+msgid "Cannot perform the key agreement"
+msgstr ""
+
+msgid "Error occurred during key agreement"
+msgstr ""
+
+msgid "Key Agreement failed"
+msgstr ""
+
+msgid "Timeout during key agreement"
+msgstr ""
+
+msgid "Key agreement was aborted"
+msgstr ""
+
+msgid "Key agreement is already started"
+msgstr ""
+
+msgid "Key agreement cannot be started with yourself"
+msgstr ""
+
+msgid "The remote user is not present in the network any more"
+msgstr ""
+
+#, c-format
+msgid ""
+"Key agreement request received from %s. Would you like to perform the key "
+"agreement?"
+msgstr ""
+
+#, c-format
+msgid ""
+"The remote user is waiting key agreement on:\n"
+"Remote host: %s\n"
+"Remote port: %d"
+msgstr ""
+
+msgid "Key Agreement Request"
+msgstr ""
+
+msgid "IM With Password"
+msgstr ""
+
+msgid "Cannot set IM key"
+msgstr ""
+
+msgid "Set IM Password"
+msgstr ""
+
+msgid "Get Public Key"
+msgstr ""
+
+msgid "Cannot fetch the public key"
+msgstr ""
+
+msgid "Show Public Key"
+msgstr ""
+
+msgid "Could not load public key"
+msgstr ""
+
+msgid "User Information"
+msgstr ""
+
+msgid "Cannot get user information"
+msgstr ""
+
+#, c-format
+msgid "The %s buddy is not trusted"
+msgstr ""
+
+msgid ""
+"You cannot receive buddy notifications until you import his/her public key.  "
+"You can use the Get Public Key command to get the public key."
+msgstr ""
+
+#. Open file selector to select the public key.
+msgid "Open..."
+msgstr ""
+
+#, c-format
+msgid "The %s buddy is not present in the network"
+msgstr ""
+
+msgid ""
+"To add the buddy you must import his/her public key. Press Import to import "
+"a public key."
+msgstr ""
+
+msgid "_Import..."
+msgstr ""
+
+msgid "Select correct user"
+msgstr ""
+
+msgid ""
+"More than one user was found with the same public key. Select the correct "
+"user from the list to add to the buddy list."
+msgstr ""
+
+msgid ""
+"More than one user was found with the same name. Select the correct user "
+"from the list to add to the buddy list."
+msgstr ""
+
+msgid "Detached"
+msgstr ""
+
+msgid "Indisposed"
+msgstr ""
+
+msgid "Wake Me Up"
+msgstr ""
+
+msgid "Hyper Active"
+msgstr ""
+
+msgid "Robot"
+msgstr ""
+
+msgid "Happy"
+msgstr ""
+
+msgid "Sad"
+msgstr ""
+
+msgid "Angry"
+msgstr ""
+
+msgid "Jealous"
+msgstr ""
+
+msgid "Ashamed"
+msgstr ""
+
+msgid "Invincible"
+msgstr ""
+
+msgid "In Love"
+msgstr ""
+
+msgid "Sleepy"
+msgstr ""
+
+msgid "Bored"
+msgstr ""
+
+msgid "Excited"
+msgstr ""
+
+msgid "Anxious"
+msgstr ""
+
+msgid "User Modes"
+msgstr ""
+
+msgid "Preferred Contact"
+msgstr ""
+
+msgid "Preferred Language"
+msgstr ""
+
+msgid "Device"
+msgstr ""
+
+msgid "Timezone"
+msgstr ""
+
+msgid "Geolocation"
+msgstr ""
+
+msgid "Reset IM Key"
+msgstr ""
+
+msgid "IM with Key Exchange"
+msgstr ""
+
+msgid "IM with Password"
+msgstr ""
+
+msgid "Get Public Key..."
+msgstr ""
+
+msgid "Kill User"
+msgstr ""
+
+msgid "Draw On Whiteboard"
+msgstr ""
+
+msgid "_Passphrase:"
+msgstr ""
+
+#, c-format
+msgid "Channel %s does not exist in the network"
+msgstr ""
+
+msgid "Channel Information"
+msgstr ""
+
+msgid "Cannot get channel information"
+msgstr ""
+
+#, c-format
+msgid "<b>Channel Name:</b> %s"
+msgstr ""
+
+#, c-format
+msgid "<br><b>User Count:</b> %d"
+msgstr ""
+
+#, c-format
+msgid "<br><b>Channel Founder:</b> %s"
+msgstr ""
+
+#, c-format
+msgid "<br><b>Channel Cipher:</b> %s"
+msgstr ""
+
+#. Definition of HMAC: http://en.wikipedia.org/wiki/HMAC
+#, c-format
+msgid "<br><b>Channel HMAC:</b> %s"
+msgstr ""
+
+#, c-format
+msgid "<br><b>Channel Topic:</b><br>%s"
+msgstr ""
+
+#, c-format
+msgid "<br><b>Channel Modes:</b> "
+msgstr ""
+
+#, c-format
+msgid "<br><b>Founder Key Fingerprint:</b><br>%s"
+msgstr ""
+
+#, c-format
+msgid "<br><b>Founder Key Babbleprint:</b><br>%s"
+msgstr ""
+
+msgid "Add Channel Public Key"
+msgstr ""
+
+#. Add new public key
+msgid "Open Public Key..."
+msgstr ""
+
+msgid "Channel Passphrase"
+msgstr ""
+
+msgid "Channel Public Keys List"
+msgstr ""
+
+#, c-format
+msgid ""
+"Channel authentication is used to secure the channel from unauthorized "
+"access. The authentication may be based on passphrase and digital "
+"signatures. If passphrase is set, it is required to be able to join. If "
+"channel public keys are set then only users whose public keys are listed are "
+"able to join."
+msgstr ""
+
+msgid "Channel Authentication"
+msgstr ""
+
+msgid "Add / Remove"
+msgstr ""
+
+msgid "Group Name"
+msgstr ""
+
+msgid "Passphrase"
+msgstr ""
+
+#, c-format
+msgid "Please enter the %s channel private group name and passphrase."
+msgstr ""
+
+msgid "Add Channel Private Group"
+msgstr ""
+
+msgid "User Limit"
+msgstr ""
+
+msgid "Set user limit on channel. Set to zero to reset user limit."
+msgstr ""
+
+msgid "Invite List"
+msgstr ""
+
+msgid "Ban List"
+msgstr ""
+
+msgid "Add Private Group"
+msgstr ""
+
+msgid "Reset Permanent"
+msgstr ""
+
+msgid "Set Permanent"
+msgstr ""
+
+msgid "Set User Limit"
+msgstr ""
+
+msgid "Reset Topic Restriction"
+msgstr ""
+
+msgid "Set Topic Restriction"
+msgstr ""
+
+msgid "Reset Private Channel"
+msgstr ""
+
+msgid "Set Private Channel"
+msgstr ""
+
+msgid "Reset Secret Channel"
+msgstr ""
+
+msgid "Set Secret Channel"
+msgstr ""
+
+#, c-format
+msgid ""
+"You have to join the %s channel before you are able to join the private group"
+msgstr ""
+
+msgid "Join Private Group"
+msgstr ""
+
+msgid "Cannot join private group"
+msgstr ""
+
+msgid "Call Command"
+msgstr ""
+
+msgid "Cannot call command"
+msgstr ""
+
+msgid "Unknown command"
+msgstr ""
+
+msgid "Secure File Transfer"
+msgstr ""
+
+msgid "Error during file transfer"
+msgstr ""
+
+msgid "Remote disconnected"
+msgstr ""
+
+msgid "Permission denied"
+msgstr ""
+
+msgid "Key agreement failed"
+msgstr ""
+
+msgid "Connection timed out"
+msgstr ""
+
+msgid "Creating connection failed"
+msgstr ""
+
+msgid "File transfer session does not exist"
+msgstr ""
+
+msgid "No file transfer session active"
+msgstr ""
+
+msgid "File transfer already started"
+msgstr ""
+
+msgid "Could not perform key agreement for file transfer"
+msgstr ""
+
+msgid "Could not start the file transfer"
+msgstr ""
+
+msgid "Cannot send file"
+msgstr ""
+
+msgid "Error occurred"
+msgstr ""
+
+#, c-format
+msgid "%s has changed the topic of <I>%s</I> to: %s"
+msgstr ""
+
+#, c-format
+msgid "<I>%s</I> set channel <I>%s</I> modes to: %s"
+msgstr ""
+
+#, c-format
+msgid "<I>%s</I> removed all channel <I>%s</I> modes"
+msgstr ""
+
+#, c-format
+msgid "<I>%s</I> set <I>%s's</I> modes to: %s"
+msgstr ""
+
+#, c-format
+msgid "<I>%s</I> removed all <I>%s's</I> modes"
+msgstr ""
+
+#, c-format
+msgid "You have been kicked off <I>%s</I> by <I>%s</I> (%s)"
+msgstr ""
+
+#, c-format
+msgid "You have been killed by %s (%s)"
+msgstr ""
+
+#, c-format
+msgid "Killed by %s (%s)"
+msgstr ""
+
+msgid "Server signoff"
+msgstr ""
+
+msgid "Personal Information"
+msgstr ""
+
+msgid "Birth Day"
+msgstr ""
+
+msgid "Job Role"
+msgstr ""
+
+msgid "Organization"
+msgstr ""
+
+msgid "Unit"
+msgstr ""
+
+msgid "Join Chat"
+msgstr ""
+
+#, c-format
+msgid "You are channel founder on <I>%s</I>"
+msgstr ""
+
+#, c-format
+msgid "Channel founder on <I>%s</I> is <I>%s</I>"
+msgstr ""
+
+msgid "Real Name"
+msgstr ""
+
+msgid "Status Text"
+msgstr ""
+
+msgid "Public Key Fingerprint"
+msgstr ""
+
+msgid "Public Key Babbleprint"
+msgstr ""
+
+msgid "_More..."
+msgstr ""
+
+msgid "Detach From Server"
+msgstr ""
+
+msgid "Cannot detach"
+msgstr ""
+
+msgid "Cannot set topic"
+msgstr ""
+
+msgid "Failed to change nickname"
+msgstr ""
+
+msgid "Roomlist"
+msgstr ""
+
+msgid "Cannot get room list"
+msgstr ""
+
+msgid "Network is empty"
+msgstr ""
+
+msgid "No public key was received"
+msgstr ""
+
+msgid "Server Information"
+msgstr ""
+
+msgid "Cannot get server information"
+msgstr ""
+
+msgid "Server Statistics"
+msgstr ""
+
+msgid "Cannot get server statistics"
+msgstr ""
+
+#, c-format
+msgid ""
+"Local server start time: %s\n"
+"Local server uptime: %s\n"
+"Local server clients: %d\n"
+"Local server channels: %d\n"
+"Local server operators: %d\n"
+"Local router operators: %d\n"
+"Local cell clients: %d\n"
+"Local cell channels: %d\n"
+"Local cell servers: %d\n"
+"Total clients: %d\n"
+"Total channels: %d\n"
+"Total servers: %d\n"
+"Total routers: %d\n"
+"Total server operators: %d\n"
+"Total router operators: %d\n"
+msgstr ""
+
+msgid "Network Statistics"
+msgstr ""
+
+msgid "Ping failed"
+msgstr ""
+
+msgid "Ping reply received from server"
+msgstr ""
+
+msgid "Could not kill user"
+msgstr ""
+
+msgid "WATCH"
+msgstr ""
+
+msgid "Cannot watch user"
+msgstr ""
+
+msgid "Resuming session"
+msgstr ""
+
+msgid "Authenticating connection"
+msgstr ""
+
+msgid "Verifying server public key"
+msgstr ""
+
+msgid "Passphrase required"
+msgstr ""
+
+#, c-format
+msgid ""
+"Received %s's public key. Your local copy does not match this key. Would you "
+"still like to accept this public key?"
+msgstr ""
+
+#, c-format
+msgid "Received %s's public key. Would you like to accept this public key?"
+msgstr ""
+
+#, c-format
+msgid ""
+"Fingerprint and babbleprint for the %s key are:\n"
+"\n"
+"%s\n"
+"%s\n"
+msgstr ""
+
+msgid "Verify Public Key"
+msgstr ""
+
+msgid "_View..."
+msgstr ""
+
+msgid "Unsupported public key type"
+msgstr ""
+
+msgid "Disconnected by server"
+msgstr ""
+
+msgid "Error during connecting to SILC Server"
+msgstr ""
+
+msgid "Key Exchange failed"
+msgstr ""
+
+msgid ""
+"Resuming detached session failed. Press Reconnect to create new connection."
+msgstr ""
+
+msgid "Connection failed"
+msgstr ""
+
+msgid "Performing key exchange"
+msgstr ""
+
+msgid "Unable to create connection"
+msgstr ""
+
+msgid "Could not load SILC key pair"
+msgstr ""
+
+#. Progress
+msgid "Connecting to SILC Server"
+msgstr ""
+
+msgid "Out of memory"
+msgstr ""
+
+msgid "Cannot initialize SILC protocol"
+msgstr ""
+
+msgid "Error loading SILC key pair"
+msgstr ""
+
+#, c-format
+msgid "Download %s: %s"
+msgstr ""
+
+msgid "Your Current Mood"
+msgstr ""
+
+#, c-format
+msgid "Normal"
+msgstr ""
+
+msgid "In love"
+msgstr ""
+
+msgid ""
+"\n"
+"Your Preferred Contact Methods"
+msgstr ""
+
+msgid "SMS"
+msgstr ""
+
+msgid "MMS"
+msgstr ""
+
+msgid "Video conferencing"
+msgstr ""
+
+msgid "Your Current Status"
+msgstr ""
+
+msgid "Online Services"
+msgstr ""
+
+msgid "Let others see what services you are using"
+msgstr ""
+
+msgid "Let others see what computer you are using"
+msgstr ""
+
+msgid "Your VCard File"
+msgstr ""
+
+msgid "Timezone (UTC)"
+msgstr ""
+
+msgid "User Online Status Attributes"
+msgstr ""
+
+msgid ""
+"You can let other users see your online status information and your personal "
+"information. Please fill the information you would like other users to see "
+"about yourself."
+msgstr ""
+
+msgid "Message of the Day"
+msgstr ""
+
+msgid "No Message of the Day available"
+msgstr ""
+
+msgid "There is no Message of the Day associated with this connection"
+msgstr ""
+
+msgid "Create New SILC Key Pair"
+msgstr ""
+
+msgid "Passphrases do not match"
+msgstr ""
+
+msgid "Key Pair Generation failed"
+msgstr ""
+
+msgid "Key length"
+msgstr ""
+
+msgid "Public key file"
+msgstr ""
+
+msgid "Private key file"
+msgstr ""
+
+msgid "Passphrase (retype)"
+msgstr ""
+
+msgid "Generate Key Pair"
+msgstr ""
+
+msgid "Online Status"
+msgstr ""
+
+msgid "View Message of the Day"
+msgstr ""
+
+msgid "Create SILC Key Pair..."
+msgstr ""
+
+#, c-format
+msgid "User <I>%s</I> is not present in the network"
+msgstr ""
+
+msgid "Topic too long"
+msgstr ""
+
+msgid "You must specify a nick"
+msgstr ""
+
+#, c-format
+msgid "channel %s not found"
+msgstr ""
+
+#, c-format
+msgid "channel modes for %s: %s"
+msgstr ""
+
+#, c-format
+msgid "no channel modes are set on %s"
+msgstr ""
+
+#, c-format
+msgid "Failed to set cmodes for %s"
+msgstr ""
+
+#, c-format
+msgid "Unknown command: %s, (may be a client bug)"
+msgstr ""
+
+msgid "part [channel]:  Leave the chat"
+msgstr ""
+
+msgid "leave [channel]:  Leave the chat"
+msgstr ""
+
+msgid "topic [&lt;new topic&gt;]:  View or change the topic"
+msgstr ""
+
+msgid "join &lt;channel&gt; [&lt;password&gt;]:  Join a chat on this network"
+msgstr ""
+
+msgid "list:  List channels on this network"
+msgstr ""
+
+msgid "whois &lt;nick&gt;:  View nick's information"
+msgstr ""
+
+msgid "msg &lt;nick&gt; &lt;message&gt;:  Send a private message to a user"
+msgstr ""
+
+msgid "query &lt;nick&gt; [&lt;message&gt;]:  Send a private message to a user"
+msgstr ""
+
+msgid "motd:  View the server's Message Of The Day"
+msgstr ""
+
+msgid "detach:  Detach this session"
+msgstr ""
+
+msgid "quit [message]:  Disconnect from the server, with an optional message"
+msgstr ""
+
+msgid "call &lt;command&gt;:  Call any silc client command"
+msgstr ""
+
+msgid "kill &lt;nick&gt; [-pubkey|&lt;reason&gt;]:  Kill nick"
+msgstr ""
+
+msgid "nick &lt;newnick&gt;:  Change your nickname"
+msgstr ""
+
+msgid "whowas &lt;nick&gt;:  View nick's information"
+msgstr ""
+
+msgid ""
+"cmode &lt;channel&gt; [+|-&lt;modes&gt;] [arguments]:  Change or display "
+"channel modes"
+msgstr ""
+
+msgid ""
+"cumode &lt;channel&gt; +|-&lt;modes&gt; &lt;nick&gt;:  Change nick's modes "
+"on channel"
+msgstr ""
+
+msgid "umode &lt;usermodes&gt;:  Set your modes in the network"
+msgstr ""
+
+msgid "oper &lt;nick&gt; [-pubkey]:  Get server operator privileges"
+msgstr ""
+
+msgid ""
+"invite &lt;channel&gt; [-|+]&lt;nick&gt;:  invite nick or add/remove from "
+"channel invite list"
+msgstr ""
+
+msgid "kick &lt;channel&gt; &lt;nick&gt; [comment]:  Kick client from channel"
+msgstr ""
+
+msgid "info [server]:  View server administrative details"
+msgstr ""
+
+msgid "ban [&lt;channel&gt; +|-&lt;nick&gt;]:  Ban client from channel"
+msgstr ""
+
+msgid "getkey &lt;nick|server&gt;:  Retrieve client's or server's public key"
+msgstr ""
+
+msgid "stats:  View server and network statistics"
+msgstr ""
+
+msgid "ping:  Send PING to the connected server"
+msgstr ""
+
+msgid "users &lt;channel&gt;:  List users in channel"
+msgstr ""
+
+msgid ""
+"names [-count|-ops|-halfops|-voices|-normal] &lt;channel(s)&gt;:  List "
+"specific users in channel(s)"
+msgstr ""
+
+#. *< type
+#. *< ui_requirement
+#. *< flags
+#. *< dependencies
+#. *< priority
+#. *< id
+#. *< name
+#. *< version
+#. *  summary
+msgid "SILC Protocol Plugin"
+msgstr ""
+
+#. *  description
+msgid "Secure Internet Live Conferencing (SILC) Protocol"
+msgstr ""
+
+msgid "Network"
+msgstr ""
+
+msgid "Public Key file"
+msgstr ""
+
+msgid "Private Key file"
+msgstr ""
+
+msgid "Cipher"
+msgstr ""
+
+msgid "HMAC"
+msgstr ""
+
+msgid "Use Perfect Forward Secrecy"
+msgstr ""
+
+msgid "Public key authentication"
+msgstr ""
+
+msgid "Block IMs without Key Exchange"
+msgstr ""
+
+msgid "Block messages to whiteboard"
+msgstr ""
+
+msgid "Automatically open whiteboard"
+msgstr ""
+
+msgid "Digitally sign and verify all messages"
+msgstr ""
+
+msgid "Creating SILC key pair..."
+msgstr ""
+
+msgid "Cannot create SILC key pair\n"
+msgstr ""
+
+#. Hint for translators: Please check the tabulator width here and in
+#. the next strings (short strings: 2 tabs, longer strings 1 tab,
+#. sum: 3 tabs or 24 characters)
+#, c-format
+msgid "Real Name: \t%s\n"
+msgstr ""
+
+#, c-format
+msgid "User Name: \t%s\n"
+msgstr ""
+
+#, c-format
+msgid "Email: \t\t%s\n"
+msgstr ""
+
+#, c-format
+msgid "Host Name: \t%s\n"
+msgstr ""
+
+#, c-format
+msgid "Organization: \t%s\n"
+msgstr ""
+
+#, c-format
+msgid "Country: \t%s\n"
+msgstr ""
+
+#, c-format
+msgid "Algorithm: \t%s\n"
+msgstr ""
+
+#, c-format
+msgid "Key Length: \t%d bits\n"
+msgstr ""
+
+#, c-format
+msgid "Version: \t%s\n"
+msgstr ""
+
+#, c-format
+msgid ""
+"Public Key Fingerprint:\n"
+"%s\n"
+"\n"
+msgstr ""
+
+#, c-format
+msgid ""
+"Public Key Babbleprint:\n"
+"%s"
+msgstr ""
+
+msgid "Public Key Information"
+msgstr ""
+
+msgid "Paging"
+msgstr ""
+
+msgid "Video Conferencing"
+msgstr ""
+
+msgid "Computer"
+msgstr ""
+
+msgid "PDA"
+msgstr ""
+
+msgid "Terminal"
+msgstr ""
+
+#, c-format
+msgid "%s sent message to whiteboard. Would you like to open the whiteboard?"
+msgstr ""
+
+#, c-format
+msgid ""
+"%s sent message to whiteboard on %s channel. Would you like to open the "
+"whiteboard?"
+msgstr ""
+
+msgid "Whiteboard"
+msgstr ""
+
+msgid "No server statistics available"
+msgstr ""
+
+#, c-format
+msgid "Failure: Version mismatch, upgrade your client"
+msgstr ""
+
+#, c-format
+msgid "Failure: Remote does not trust/support your public key"
+msgstr ""
+
+#, c-format
+msgid "Failure: Remote does not support proposed KE group"
+msgstr ""
+
+#, c-format
+msgid "Failure: Remote does not support proposed cipher"
+msgstr ""
+
+#, c-format
+msgid "Failure: Remote does not support proposed PKCS"
+msgstr ""
+
+#, c-format
+msgid "Failure: Remote does not support proposed hash function"
+msgstr ""
+
+#, c-format
+msgid "Failure: Remote does not support proposed HMAC"
+msgstr ""
+
+#, c-format
+msgid "Failure: Incorrect signature"
+msgstr ""
+
+#, c-format
+msgid "Failure: Invalid cookie"
+msgstr ""
+
+#, c-format
+msgid "Failure: Authentication failed"
+msgstr ""
+
+msgid "Cannot initialize SILC Client connection"
+msgstr ""
+
+msgid "John Noname"
+msgstr ""
+
+#, c-format
+msgid "Could not load SILC key pair: %s"
+msgstr ""
+
+msgid "Could not write"
+msgstr ""
+
+msgid "Could not connect"
+msgstr ""
+
+msgid "Unknown server response."
+msgstr ""
+
+msgid "Could not create listen socket"
+msgstr ""
+
+msgid "Could not resolve hostname"
+msgstr ""
+
+msgid "SIP usernames may not contain whitespaces or @ symbols"
+msgstr ""
+
+msgid "SIP connect server not specified"
+msgstr ""
+
+#. *< type
+#. *< ui_requirement
+#. *< flags
+#. *< dependencies
+#. *< priority
+#. *< id
+#. *< name
+#. *< version
+msgid "SIP/SIMPLE Protocol Plugin"
+msgstr ""
+
+#. *  summary
+msgid "The SIP/SIMPLE Protocol Plugin"
+msgstr ""
+
+msgid "Publish status (note: everyone may watch you)"
+msgstr ""
+
+msgid "Use UDP"
+msgstr ""
+
+msgid "Use proxy"
+msgstr ""
+
+msgid "Proxy"
+msgstr ""
+
+msgid "Auth User"
+msgstr ""
+
+msgid "Auth Domain"
+msgstr ""
+
+#, c-format
+msgid "%s has sent you a webcam invite, which is not yet supported."
+msgstr ""
+
+msgid "Your SMS was not delivered"
+msgstr ""
+
+msgid "Your Yahoo! message did not get sent."
+msgstr ""
+
+#, c-format
+msgid "Yahoo! system message for %s:"
+msgstr ""
+
+#, c-format
+msgid ""
+"%s has (retroactively) denied your request to add them to your list for the "
+"following reason: %s."
+msgstr ""
+
+#, c-format
+msgid "%s has (retroactively) denied your request to add them to your list."
+msgstr ""
+
+msgid "Add buddy rejected"
+msgstr ""
+
+#. Some error in the received stream
+msgid "Received invalid data"
+msgstr ""
+
+#. Password incorrect
+msgid "Incorrect Password"
+msgstr ""
+
+#. security lock from too many failed login attempts
+msgid "Account locked: Too many failed login attempts"
+msgstr ""
+
+#. the username does not exist
+msgid "Username does not exist"
+msgstr ""
+
+#. indicates a lock of some description
+msgid "Account locked: See the debug log"
+msgstr ""
+
+#. username or password missing
+msgid "Username or password missing"
+msgstr ""
+
+#, c-format
+msgid ""
+"The Yahoo server has requested the use of an unrecognized authentication "
+"method.  You will probably not be able to successfully sign on to Yahoo.  "
+"Check %s for updates."
+msgstr ""
+
+msgid "Failed Yahoo! Authentication"
+msgstr ""
+
+#, c-format
+msgid ""
+"You have tried to ignore %s, but the user is on your buddy list.  Clicking "
+"\"Yes\" will remove and ignore the buddy."
+msgstr ""
+
+msgid "Ignore buddy?"
+msgstr ""
+
+msgid "Your account is locked, please log in to the Yahoo! website."
+msgstr ""
+
+#, c-format
+msgid "Unknown error number %d. Logging into the Yahoo! website may fix this."
+msgstr ""
+
+#, c-format
+msgid "Could not add buddy %s to group %s to the server list on account %s."
+msgstr ""
+
+msgid "Could not add buddy to server list"
+msgstr ""
+
+#, c-format
+msgid "[ Audible %s/%s/%s.swf ] %s"
+msgstr ""
+
+msgid "Received unexpected HTTP response from server."
+msgstr ""
+
+msgid "Connection problem"
+msgstr ""
+
+#, c-format
+msgid ""
+"Lost connection with %s:\n"
+"%s"
+msgstr ""
+
+#, c-format
+msgid ""
+"Could not establish a connection with %s:\n"
+"%s"
+msgstr ""
+
+msgid "Not at Home"
+msgstr ""
+
+msgid "Not at Desk"
+msgstr ""
+
+msgid "Not in Office"
+msgstr ""
+
+msgid "On Vacation"
+msgstr ""
+
+msgid "Stepped Out"
+msgstr ""
+
+msgid "Not on server list"
+msgstr ""
+
+msgid "Appear Online"
+msgstr ""
+
+msgid "Appear Permanently Offline"
+msgstr ""
+
+msgid "Presence"
+msgstr ""
+
+msgid "Appear Offline"
+msgstr ""
+
+msgid "Don't Appear Permanently Offline"
+msgstr ""
+
+msgid "Join in Chat"
+msgstr ""
+
+msgid "Initiate Conference"
+msgstr ""
+
+msgid "Presence Settings"
+msgstr ""
+
+msgid "Start Doodling"
+msgstr ""
+
+msgid "Activate which ID?"
+msgstr ""
+
+msgid "Join whom in chat?"
+msgstr ""
+
+msgid "Activate ID..."
+msgstr ""
+
+msgid "Join User in Chat..."
+msgstr ""
+
+msgid "Open Inbox"
+msgstr ""
+
+msgid "join &lt;room&gt;:  Join a chat room on the Yahoo network"
+msgstr ""
+
+msgid "list: List rooms on the Yahoo network"
+msgstr ""
+
+msgid "doodle: Request user to start a Doodle session"
+msgstr ""
+
+msgid "Yahoo ID..."
+msgstr ""
+
+#. *< type
+#. *< ui_requirement
+#. *< flags
+#. *< dependencies
+#. *< priority
+#. *< id
+#. *< name
+#. *< version
+#. *  summary
+#. *  description
+msgid "Yahoo Protocol Plugin"
+msgstr ""
+
+msgid "Yahoo Japan"
+msgstr ""
+
+msgid "Pager server"
+msgstr ""
+
+msgid "Japan Pager server"
+msgstr ""
+
+msgid "Pager port"
+msgstr ""
+
+msgid "File transfer server"
+msgstr ""
+
+msgid "Japan file transfer server"
+msgstr ""
+
+msgid "File transfer port"
+msgstr ""
+
+msgid "Chat room locale"
+msgstr ""
+
+msgid "Ignore conference and chatroom invitations"
+msgstr ""
+
+msgid "Chat room list URL"
+msgstr ""
+
+msgid "Yahoo Chat server"
+msgstr ""
+
+msgid "Yahoo Chat port"
+msgstr ""
+
+#. Write a local message to this conversation showing that a request for a
+#. * Doodle session has been made
+#.
+msgid "Sent Doodle request."
+msgstr ""
+
+msgid "Unable to establish file descriptor."
+msgstr ""
+
+#, c-format
+msgid "%s is trying to send you a group of %d files.\n"
+msgstr ""
+
+msgid "Yahoo! Japan Profile"
+msgstr ""
+
+msgid "Yahoo! Profile"
+msgstr ""
+
+msgid ""
+"Sorry, profiles marked as containing adult content are not supported at this "
+"time."
+msgstr ""
+
+msgid ""
+"If you wish to view this profile, you will need to visit this link in your "
+"web browser:"
+msgstr ""
+
+msgid "Yahoo! ID"
+msgstr ""
+
+msgid "Hobbies"
+msgstr ""
+
+msgid "Latest News"
+msgstr ""
+
+msgid "Home Page"
+msgstr ""
+
+msgid "Cool Link 1"
+msgstr ""
+
+msgid "Cool Link 2"
+msgstr ""
+
+msgid "Cool Link 3"
+msgstr ""
+
+msgid "Last Update"
+msgstr ""
+
+msgid ""
+"This profile is in a language or format that is not supported at this time."
+msgstr ""
+
+msgid ""
+"Could not retrieve the user's profile. This most likely is a temporary "
+"server-side problem. Please try again later."
+msgstr ""
+
+msgid ""
+"Could not retrieve the user's profile. This most likely means that the user "
+"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 ""
+
+msgid "The user's profile is empty."
+msgstr ""
+
+#, c-format
+msgid "%s declined your conference invitation to room \"%s\" because \"%s\"."
+msgstr ""
+
+msgid "Invitation Rejected"
+msgstr ""
+
+msgid "Failed to join chat"
+msgstr ""
+
+#. -6
+msgid "Unknown room"
+msgstr ""
+
+#. -15
+msgid "Maybe the room is full"
+msgstr ""
+
+#. -35
+msgid "Not available"
+msgstr ""
+
+msgid ""
+"Unknown error. You may need to logout and wait five minutes before being "
+"able to rejoin a chatroom"
+msgstr ""
+
+#, c-format
+msgid "You are now chatting in %s."
+msgstr ""
+
+msgid "Failed to join buddy in chat"
+msgstr ""
+
+msgid "Maybe they're not in a chat?"
+msgstr ""
+
+msgid "Fetching the room list failed."
+msgstr ""
+
+msgid "Voices"
+msgstr ""
+
+msgid "Webcams"
+msgstr ""
+
+msgid "Unable to fetch room list."
+msgstr ""
+
+msgid "User Rooms"
+msgstr ""
+
+msgid "Connection problem with the YCHT server."
+msgstr ""
+
+#, c-format
+msgid ""
+"Lost connection with server\n"
+"%s"
+msgstr ""
+
+msgid ""
+"(There was an error converting this message.\t Check the 'Encoding' option "
+"in the Account Editor)"
+msgstr ""
+
+#, c-format
+msgid "Unable to send to chat %s,%s,%s"
+msgstr ""
+
+msgid "Hidden or not logged-in"
+msgstr ""
+
+#, c-format
+msgid "<br>At %s since %s"
+msgstr ""
+
+msgid "Anyone"
+msgstr ""
+
+msgid "_Class:"
+msgstr ""
+
+msgid "_Instance:"
+msgstr ""
+
+msgid "_Recipient:"
+msgstr ""
+
+#, c-format
+msgid "Attempt to subscribe to %s,%s,%s failed"
+msgstr ""
+
+msgid "zlocate &lt;nick&gt;: Locate user"
+msgstr ""
+
+msgid "zl &lt;nick&gt;: Locate user"
+msgstr ""
+
+msgid "instance &lt;instance&gt;: Set the instance to be used on this class"
+msgstr ""
+
+msgid "inst &lt;instance&gt;: Set the instance to be used on this class"
+msgstr ""
+
+msgid "topic &lt;instance&gt;: Set the instance to be used on this class"
+msgstr ""
+
+msgid "sub &lt;class&gt; &lt;instance&gt; &lt;recipient&gt;: Join a new chat"
+msgstr ""
+
+msgid ""
+"zi &lt;instance&gt;: Send a message to &lt;message,<i>instance</i>,*&gt;"
+msgstr ""
+
+msgid ""
+"zci &lt;class&gt; &lt;instance&gt;: Send a message to &lt;<i>class</i>,"
+"<i>instance</i>,*&gt;"
+msgstr ""
+
+msgid ""
+"zcir &lt;class&gt; &lt;instance&gt; &lt;recipient&gt;: Send a message to &lt;"
+"<i>class</i>,<i>instance</i>,<i>recipient</i>&gt;"
+msgstr ""
+
+msgid ""
+"zir &lt;instance&gt; &lt;recipient&gt;: Send a message to &lt;MESSAGE,"
+"<i>instance</i>,<i>recipient</i>&gt;"
+msgstr ""
+
+msgid "zc &lt;class&gt;: Send a message to &lt;<i>class</i>,PERSONAL,*&gt;"
+msgstr ""
+
+msgid "Resubscribe"
+msgstr ""
+
+msgid "Retrieve subscriptions from server"
+msgstr ""
+
+#. *< type
+#. *< ui_requirement
+#. *< flags
+#. *< dependencies
+#. *< priority
+#. *< id
+#. *< name
+#. *< version
+#. *  summary
+#. *  description
+msgid "Zephyr Protocol Plugin"
+msgstr ""
+
+msgid "Use tzc"
+msgstr ""
+
+msgid "tzc command"
+msgstr ""
+
+msgid "Export to .anyone"
+msgstr ""
+
+msgid "Export to .zephyr.subs"
+msgstr ""
+
+msgid "Import from .anyone"
+msgstr ""
+
+msgid "Import from .zephyr.subs"
+msgstr ""
+
+msgid "Realm"
+msgstr ""
+
+msgid "Exposure"
+msgstr ""
+
+#, c-format
+msgid ""
+"Unable to create socket:\n"
+"%s"
+msgstr ""
+
+#, c-format
+msgid "Unable to parse response from HTTP proxy: %s\n"
+msgstr ""
+
+#, c-format
+msgid "HTTP proxy connection error %d"
+msgstr ""
+
+#, c-format
+msgid "Access denied: HTTP proxy server forbids port %d tunneling."
+msgstr ""
+
+#, c-format
+msgid "Error resolving %s"
+msgstr ""
+
+msgid "Could not resolve host name"
+msgstr ""
+
+#, c-format
+msgid "Requesting %s's attention..."
+msgstr ""
+
+#, c-format
+msgid "%s has requested your attention!"
+msgstr ""
+
+#. *
+#. * A wrapper for purple_request_action() that uses @c Yes and @c No buttons.
+#.
+msgid "_Yes"
+msgstr ""
+
+msgid "_No"
+msgstr ""
+
+#. *
+#. * A wrapper for purple_request_action() that uses Accept and Cancel buttons.
+#.
+msgid "_Accept"
+msgstr ""
+
+#. *
+#. * The default message to use when the user becomes auto-away.
+#.
+msgid "I'm not here right now"
+msgstr ""
+
+msgid "saved statuses"
+msgstr ""
+
+#, c-format
+msgid "%s is now known as %s.\n"
+msgstr ""
+
+#, c-format
+msgid ""
+"%s has invited %s to the chat room %s:\n"
+"%s"
+msgstr ""
+
+#, c-format
+msgid "%s has invited %s to the chat room %s\n"
+msgstr ""
+
+msgid "Accept chat invitation?"
+msgstr ""
+
+#. Shortcut
+msgid "Shortcut"
+msgstr ""
+
+msgid "The text-shortcut for the smiley"
+msgstr ""
+
+#. Stored Image
+msgid "Stored Image"
+msgstr ""
+
+msgid "Stored Image. (that'll have to do for now)"
+msgstr ""
+
+msgid "SSL Connection Failed"
+msgstr ""
+
+msgid "SSL Handshake Failed"
+msgstr ""
+
+msgid "SSL peer presented an invalid certificate"
+msgstr ""
+
+msgid "Unknown SSL error"
+msgstr ""
+
+msgid "Unset"
+msgstr ""
+
+msgid "Do not disturb"
+msgstr ""
+
+msgid "Extended away"
+msgstr ""
+
+msgid "Listening to music"
+msgstr ""
+
+#, c-format
+msgid "%s (%s) changed status from %s to %s"
+msgstr ""
+
+#, c-format
+msgid "%s (%s) is now %s"
+msgstr ""
+
+#, c-format
+msgid "%s (%s) is no longer %s"
+msgstr ""
+
+#, c-format
+msgid "%s became idle"
+msgstr ""
+
+#, c-format
+msgid "%s became unidle"
+msgstr ""
+
+#, c-format
+msgid "+++ %s became idle"
+msgstr ""
+
+#, c-format
+msgid "+++ %s became unidle"
+msgstr ""
+
+#.
+#. * This string determines how some dates are displayed.  The default
+#. * string "%x %X" shows the date then the time.  Translators can
+#. * change this to "%X %x" if they want the time to be shown first,
+#. * followed by the date.
+#.
+#, c-format
+msgid "%x %X"
+msgstr ""
+
+msgid "Calculating..."
+msgstr ""
+
+msgid "Unknown."
+msgstr ""
+
+#, c-format
+msgid "%d second"
+msgid_plural "%d seconds"
+msgstr[0] ""
+msgstr[1] ""
+
+#, c-format
+msgid "%d day"
+msgid_plural "%d days"
+msgstr[0] ""
+msgstr[1] ""
+
+#, c-format
+msgid "%s, %d hour"
+msgid_plural "%s, %d hours"
+msgstr[0] ""
+msgstr[1] ""
+
+#, c-format
+msgid "%d hour"
+msgid_plural "%d hours"
+msgstr[0] ""
+msgstr[1] ""
+
+#, c-format
+msgid "%s, %d minute"
+msgid_plural "%s, %d minutes"
+msgstr[0] ""
+msgstr[1] ""
+
+#, c-format
+msgid "%d minute"
+msgid_plural "%d minutes"
+msgstr[0] ""
+msgstr[1] ""
+
+#, c-format
+msgid "Could not open %s: Redirected too many times"
+msgstr ""
+
+#, c-format
+msgid "Unable to connect to %s"
+msgstr ""
+
+#, c-format
+msgid "Error reading from %s: response too long (%d bytes limit)"
+msgstr ""
+
+#, c-format
+msgid ""
+"Unable to allocate enough memory to hold the contents from %s.  The web "
+"server may be trying something malicious."
+msgstr ""
+
+#, c-format
+msgid "Error reading from %s: %s"
+msgstr ""
+
+#, c-format
+msgid "Error writing to %s: %s"
+msgstr ""
+
+#, c-format
+msgid "Unable to connect to %s: %s"
+msgstr ""
+
+#, c-format
+msgid ""
+"Unable to connect to %s: Server requires TLS/SSL, but no TLS/SSL support was "
+"found."
+msgstr ""
+
+#, c-format
+msgid " - %s"
+msgstr ""
+
+#, c-format
+msgid " (%s)"
+msgstr ""
+
+#. 10053
+#, c-format
+msgid "Connection interrupted by other software on your computer."
+msgstr ""
+
+#. 10054
+#, c-format
+msgid "Remote host closed connection."
+msgstr ""
+
+#. 10060
+#, c-format
+msgid "Connection timed out."
+msgstr ""
+
+#. 10061
+#, c-format
+msgid "Connection refused."
+msgstr ""
+
+#. 10048
+#, c-format
+msgid "Address already in use."
+msgstr ""
+
+#, c-format
+msgid "Error Reading %s"
+msgstr ""
+
+#, c-format
+msgid ""
+"An error was encountered reading your %s.  The file has not been loaded, and "
+"the old file has been renamed to %s~."
+msgstr ""
+
+msgid "Internet Messenger"
+msgstr ""
+
+msgid "Pidgin Internet Messenger"
+msgstr ""
+
+msgid "Send instant messages over multiple protocols"
+msgstr ""
+
+msgid "Orientation"
+msgstr ""
+
+msgid "The orientation of the tray."
+msgstr ""
+
+#. Build the login options frame.
+msgid "Login Options"
+msgstr ""
+
+msgid "Pro_tocol:"
+msgstr ""
+
+msgid "_Username:"
+msgstr ""
+
+msgid "Remember pass_word"
+msgstr ""
+
+#. Build the user options frame.
+msgid "User Options"
+msgstr ""
+
+msgid "_Local alias:"
+msgstr ""
+
+msgid "New _mail notifications"
+msgstr ""
+
+#. Buddy icon
+msgid "Use this buddy _icon for this account:"
+msgstr ""
+
+msgid "_Advanced"
+msgstr ""
+
+msgid "Use GNOME Proxy Settings"
+msgstr ""
+
+msgid "Use Global Proxy Settings"
+msgstr ""
+
+msgid "No Proxy"
+msgstr ""
+
+msgid "HTTP"
+msgstr ""
+
+msgid "SOCKS 4"
+msgstr ""
+
+msgid "SOCKS 5"
+msgstr ""
+
+msgid "Use Environmental Settings"
+msgstr ""
+
+#. This is an easter egg.
+#. It means one of two things, both intended as humourus:
+#. A) your network is really slow and you have nothing better to do than
+#. look at butterflies.
+#. B)You are looking really closely at something that shouldn't matter.
+msgid "If you look real closely"
+msgstr ""
+
+#. This is an easter egg. See the comment on the previous line in the source.
+msgid "you can see the butterflies mating"
+msgstr ""
+
+msgid "Proxy _type:"
+msgstr ""
+
+msgid "_Host:"
+msgstr ""
+
+msgid "_Port:"
+msgstr ""
+
+msgid "Pa_ssword:"
+msgstr ""
+
+msgid "Unable to save new account"
+msgstr ""
+
+msgid "An account already exists with the specified criteria."
+msgstr ""
+
+msgid "Add Account"
+msgstr ""
+
+msgid "_Basic"
+msgstr ""
+
+msgid "Create _this new account on the server"
+msgstr ""
+
+msgid "_Proxy"
+msgstr ""
+
+msgid "Enabled"
+msgstr ""
+
+msgid "Protocol"
+msgstr ""
+
+#, c-format
+msgid ""
+"<span size='larger' weight='bold'>Welcome to %s!</span>\n"
+"\n"
+"You have no IM accounts configured. To start connecting with %s press the "
+"<b>Add...</b> button below and configure your first account. If you want %s "
+"to connect to multiple IM accounts, press <b>Add...</b> again to configure "
+"them all.\n"
+"\n"
+"You can come back to this window to add, edit, or remove accounts from "
+"<b>Accounts->Manage Accounts</b> in the Buddy List window"
+msgstr ""
+
+#, c-format
+msgid "You have %d contact named %s. Would you like to merge them?"
+msgid_plural ""
+"You currently have %d contacts named %s. Would you like to merge them?"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid ""
+"Merging these contacts will cause them to share a single entry on the buddy "
+"list and use a single conversation window. You can separate them again by "
+"choosing 'Expand' from the contact's context menu"
+msgstr ""
+
+msgid "Please update the necessary fields."
+msgstr ""
+
+msgid "A_ccount"
+msgstr ""
+
+msgid ""
+"Please enter the appropriate information about the chat you would like to "
+"join.\n"
+msgstr ""
+
+msgid "Room _List"
+msgstr ""
+
+msgid "_Block"
+msgstr ""
+
+msgid "Un_block"
+msgstr ""
+
+msgid "Move to"
+msgstr ""
+
+msgid "Get _Info"
+msgstr ""
+
+msgid "I_M"
+msgstr ""
+
+msgid "_Audio Call"
+msgstr ""
+
+msgid "Audio/_Video Call"
+msgstr ""
+
+msgid "_Video Call"
+msgstr ""
+
+msgid "_Send File..."
+msgstr ""
+
+msgid "Add Buddy _Pounce..."
+msgstr ""
+
+msgid "View _Log"
+msgstr ""
+
+msgid "Hide when offline"
+msgstr ""
+
+msgid "_Alias..."
+msgstr ""
+
+msgid "_Remove"
+msgstr ""
+
+msgid "Set Custom Icon"
+msgstr ""
+
+msgid "Remove Custom Icon"
+msgstr ""
+
+msgid "Add _Buddy..."
+msgstr ""
+
+msgid "Add C_hat..."
+msgstr ""
+
+msgid "_Delete Group"
+msgstr ""
+
+msgid "_Rename"
+msgstr ""
+
+#. join button
+msgid "_Join"
+msgstr ""
+
+msgid "Auto-Join"
+msgstr ""
+
+msgid "Persistent"
+msgstr ""
+
+msgid "_Edit Settings..."
+msgstr ""
+
+msgid "_Collapse"
+msgstr ""
+
+msgid "_Expand"
+msgstr ""
+
+msgid "/Tools/Mute Sounds"
+msgstr ""
+
+msgid ""
+"You are not currently signed on with an account that can add that buddy."
+msgstr ""
+
+#. I don't believe this can happen currently, I think
+#. * everything that calls this function checks for one of the
+#. * above node types first.
+msgid "Unknown node type"
+msgstr ""
+
+#. Buddies menu
+msgid "/_Buddies"
+msgstr ""
+
+msgid "/Buddies/New Instant _Message..."
+msgstr ""
+
+msgid "/Buddies/Join a _Chat..."
+msgstr ""
+
+msgid "/Buddies/Get User _Info..."
+msgstr ""
+
+msgid "/Buddies/View User _Log..."
+msgstr ""
+
+msgid "/Buddies/Sh_ow"
+msgstr ""
+
+msgid "/Buddies/Show/_Offline Buddies"
+msgstr ""
+
+msgid "/Buddies/Show/_Empty Groups"
+msgstr ""
+
+msgid "/Buddies/Show/Buddy _Details"
+msgstr ""
+
+msgid "/Buddies/Show/Idle _Times"
+msgstr ""
+
+msgid "/Buddies/Show/_Protocol Icons"
+msgstr ""
+
+msgid "/Buddies/_Sort Buddies"
+msgstr ""
+
+msgid "/Buddies/_Add Buddy..."
+msgstr ""
+
+msgid "/Buddies/Add C_hat..."
+msgstr ""
+
+msgid "/Buddies/Add _Group..."
+msgstr ""
+
+msgid "/Buddies/_Quit"
+msgstr ""
+
+#. Accounts menu
+msgid "/_Accounts"
+msgstr ""
+
+msgid "/Accounts/Manage Accounts"
+msgstr ""
+
+#. Tools
+msgid "/_Tools"
+msgstr ""
+
+msgid "/Tools/Buddy _Pounces"
+msgstr ""
+
+msgid "/Tools/_Certificates"
+msgstr ""
+
+msgid "/Tools/Custom Smile_ys"
+msgstr ""
+
+msgid "/Tools/Plu_gins"
+msgstr ""
+
+msgid "/Tools/Pr_eferences"
+msgstr ""
+
+msgid "/Tools/Pr_ivacy"
+msgstr ""
+
+msgid "/Tools/_File Transfers"
+msgstr ""
+
+msgid "/Tools/R_oom List"
+msgstr ""
+
+msgid "/Tools/System _Log"
+msgstr ""
+
+msgid "/Tools/Mute _Sounds"
+msgstr ""
+
+#. Help
+msgid "/_Help"
+msgstr ""
+
+msgid "/Help/Online _Help"
+msgstr ""
+
+msgid "/Help/_Debug Window"
+msgstr ""
+
+msgid "/Help/_About"
+msgstr ""
+
+#, c-format
+msgid "<b>Account:</b> %s"
+msgstr ""
+
+#, c-format
+msgid ""
+"\n"
+"<b>Occupants:</b> %d"
+msgstr ""
+
+#, c-format
+msgid ""
+"\n"
+"<b>Topic:</b> %s"
+msgstr ""
+
+msgid "(no topic set)"
+msgstr ""
+
+msgid "Buddy Alias"
+msgstr ""
+
+msgid "Logged In"
+msgstr ""
+
+msgid "Last Seen"
+msgstr ""
+
+msgid "Spooky"
+msgstr ""
+
+msgid "Awesome"
+msgstr ""
+
+msgid "Rockin'"
+msgstr ""
+
+msgid "Total Buddies"
+msgstr ""
+
+#, c-format
+msgid "Idle %dd %dh %02dm"
+msgstr ""
+
+#, c-format
+msgid "Idle %dh %02dm"
+msgstr ""
+
+#, c-format
+msgid "Idle %dm"
+msgstr ""
+
+msgid "/Buddies/New Instant Message..."
+msgstr ""
+
+msgid "/Buddies/Join a Chat..."
+msgstr ""
+
+msgid "/Buddies/Get User Info..."
+msgstr ""
+
+msgid "/Buddies/Add Buddy..."
+msgstr ""
+
+msgid "/Buddies/Add Chat..."
+msgstr ""
+
+msgid "/Buddies/Add Group..."
+msgstr ""
+
+msgid "/Tools/Privacy"
+msgstr ""
+
+msgid "/Tools/Room List"
+msgstr ""
+
+#, c-format
+msgid "%d unread message from %s\n"
+msgid_plural "%d unread messages from %s\n"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Manually"
+msgstr ""
+
+msgid "By status"
+msgstr ""
+
+msgid "By recent log activity"
+msgstr ""
+
+#, c-format
+msgid "%s disconnected"
+msgstr ""
+
+#, c-format
+msgid "%s disabled"
+msgstr ""
+
+msgid "Reconnect"
+msgstr ""
+
+msgid "Re-enable"
+msgstr ""
+
+msgid "SSL FAQs"
+msgstr ""
+
+msgid "Welcome back!"
+msgstr ""
+
+#, c-format
+msgid "%d account was disabled because you signed on from another location:"
+msgid_plural ""
+"%d accounts were disabled because you signed on from another location:"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "<b>Username:</b>"
+msgstr ""
+
+msgid "<b>Password:</b>"
+msgstr ""
+
+msgid "_Login"
+msgstr ""
+
+msgid "/Accounts"
+msgstr ""
+
+#. Translators: Please maintain the use of -> and <- to refer to menu heirarchy
+#, c-format
+msgid ""
+"<span weight='bold' size='larger'>Welcome to %s!</span>\n"
+"\n"
+"You have no accounts enabled. Enable your IM accounts from the <b>Accounts</"
+"b> window at <b>Accounts->Manage Accounts</b>. Once you enable accounts, "
+"you'll be able to sign on, set your status, and talk to your friends."
+msgstr ""
+
+#. set the Show Offline Buddies option. must be done
+#. * after the treeview or faceprint gets mad. -Robot101
+#.
+msgid "/Buddies/Show/Offline Buddies"
+msgstr ""
+
+msgid "/Buddies/Show/Empty Groups"
+msgstr ""
+
+msgid "/Buddies/Show/Buddy Details"
+msgstr ""
+
+msgid "/Buddies/Show/Idle Times"
+msgstr ""
+
+msgid "/Buddies/Show/Protocol Icons"
+msgstr ""
+
+msgid "Add a buddy.\n"
+msgstr ""
+
+msgid "Buddy's _username:"
+msgstr ""
+
+msgid "(Optional) A_lias:"
+msgstr ""
+
+msgid "Add buddy to _group:"
+msgstr ""
+
+msgid "This protocol does not support chat rooms."
+msgstr ""
+
+msgid ""
+"You are not currently signed on with any protocols that have the ability to "
+"chat."
+msgstr ""
+
+msgid ""
+"Please enter an alias, and the appropriate information about the chat you "
+"would like to add to your buddy list.\n"
+msgstr ""
+
+msgid "A_lias:"
+msgstr ""
+
+msgid "_Group:"
+msgstr ""
+
+msgid "Auto_join when account becomes online."
+msgstr ""
+
+msgid "_Remain in chat after window is closed."
+msgstr ""
+
+msgid "Please enter the name of the group to be added."
+msgstr ""
+
+msgid "Enable Account"
+msgstr ""
+
+msgid "<PurpleMain>/Accounts/Enable Account"
+msgstr ""
+
+msgid "<PurpleMain>/Accounts/"
+msgstr ""
+
+msgid "_Edit Account"
+msgstr ""
+
+msgid "No actions available"
+msgstr ""
+
+msgid "_Disable"
+msgstr ""
+
+msgid "/Tools"
+msgstr ""
+
+msgid "/Buddies/Sort Buddies"
+msgstr ""
+
+#. Widget creation function
+msgid "SSL Servers"
+msgstr ""
+
+msgid "Unknown command."
+msgstr ""
+
+msgid "That buddy is not on the same protocol as this chat."
+msgstr ""
+
+msgid ""
+"You are not currently signed on with an account that can invite that buddy."
+msgstr ""
+
+msgid "Invite Buddy Into Chat Room"
+msgstr ""
+
+msgid "_Buddy:"
+msgstr ""
+
+msgid "_Message:"
+msgstr ""
+
+#, c-format
+msgid "<h1>Conversation with %s</h1>\n"
+msgstr ""
+
+msgid "Save Conversation"
+msgstr ""
+
+msgid "Find"
+msgstr ""
+
+msgid "_Search for:"
+msgstr ""
+
+msgid "Un-Ignore"
+msgstr ""
+
+msgid "Ignore"
+msgstr ""
+
+msgid "Get Away Message"
+msgstr ""
+
+msgid "Last said"
+msgstr ""
+
+msgid "Unable to save icon file to disk."
+msgstr ""
+
+msgid "Save Icon"
+msgstr ""
+
+msgid "Animate"
+msgstr ""
+
+msgid "Hide Icon"
+msgstr ""
+
+msgid "Save Icon As..."
+msgstr ""
+
+msgid "Set Custom Icon..."
+msgstr ""
+
+msgid "Change Size"
+msgstr ""
+
+msgid "Show All"
+msgstr ""
+
+#. Conversation menu
+msgid "/_Conversation"
+msgstr ""
+
+msgid "/Conversation/New Instant _Message..."
+msgstr ""
+
+msgid "/Conversation/_Find..."
+msgstr ""
+
+msgid "/Conversation/View _Log"
+msgstr ""
+
+msgid "/Conversation/_Save As..."
+msgstr ""
+
+msgid "/Conversation/Clea_r Scrollback"
+msgstr ""
+
+msgid "/Conversation/M_edia"
+msgstr ""
+
+msgid "/Conversation/Media/_Audio Call"
+msgstr ""
+
+msgid "/Conversation/Media/_Video Call"
+msgstr ""
+
+msgid "/Conversation/Media/Audio\\/Video _Call"
+msgstr ""
+
+msgid "/Conversation/Se_nd File..."
+msgstr ""
+
+msgid "/Conversation/Add Buddy _Pounce..."
+msgstr ""
+
+msgid "/Conversation/_Get Info"
+msgstr ""
+
+msgid "/Conversation/In_vite..."
+msgstr ""
+
+msgid "/Conversation/M_ore"
+msgstr ""
+
+msgid "/Conversation/Al_ias..."
+msgstr ""
+
+msgid "/Conversation/_Block..."
+msgstr ""
+
+msgid "/Conversation/_Unblock..."
+msgstr ""
+
+msgid "/Conversation/_Add..."
+msgstr ""
+
+msgid "/Conversation/_Remove..."
+msgstr ""
+
+msgid "/Conversation/Insert Lin_k..."
+msgstr ""
+
+msgid "/Conversation/Insert Imag_e..."
+msgstr ""
+
+msgid "/Conversation/_Close"
+msgstr ""
+
+#. Options
+msgid "/_Options"
+msgstr ""
+
+msgid "/Options/Enable _Logging"
+msgstr ""
+
+msgid "/Options/Enable _Sounds"
+msgstr ""
+
+msgid "/Options/Show Formatting _Toolbars"
+msgstr ""
+
+msgid "/Options/Show Ti_mestamps"
+msgstr ""
+
+msgid "/Conversation/More"
+msgstr ""
+
+msgid "/Options"
+msgstr ""
+
+#. The menubar has been deactivated. Make sure the 'More' submenu is regenerated next time
+#. * the 'Conversation' menu pops up.
+#. Make sure the 'Conversation -> More' menuitems are regenerated whenever
+#. * the 'Conversation' menu pops up because the entries can change after the
+#. * conversation is created.
+msgid "/Conversation"
+msgstr ""
+
+msgid "/Conversation/View Log"
+msgstr ""
+
+msgid "/Conversation/Media/Audio Call"
+msgstr ""
+
+msgid "/Conversation/Media/Video Call"
+msgstr ""
+
+msgid "/Conversation/Media/Audio\\/Video Call"
+msgstr ""
+
+msgid "/Conversation/Send File..."
+msgstr ""
+
+msgid "/Conversation/Add Buddy Pounce..."
+msgstr ""
+
+msgid "/Conversation/Get Info"
+msgstr ""
+
+msgid "/Conversation/Invite..."
+msgstr ""
+
+msgid "/Conversation/Alias..."
+msgstr ""
+
+msgid "/Conversation/Block..."
+msgstr ""
+
+msgid "/Conversation/Unblock..."
+msgstr ""
+
+msgid "/Conversation/Add..."
+msgstr ""
+
+msgid "/Conversation/Remove..."
+msgstr ""
+
+msgid "/Conversation/Insert Link..."
+msgstr ""
+
+msgid "/Conversation/Insert Image..."
+msgstr ""
+
+msgid "/Options/Enable Logging"
+msgstr ""
+
+msgid "/Options/Enable Sounds"
+msgstr ""
+
+msgid "/Options/Show Formatting Toolbars"
+msgstr ""
+
+msgid "/Options/Show Timestamps"
+msgstr ""
+
+msgid "User is typing..."
+msgstr ""
+
+#, c-format
+msgid ""
+"\n"
+"%s has stopped typing"
+msgstr ""
+
+#. Build the Send To menu
+msgid "S_end To"
+msgstr ""
+
+msgid "_Send"
+msgstr ""
+
+#. Setup the label telling how many people are in the room.
+msgid "0 people in room"
+msgstr ""
+
+#, c-format
+msgid "%d person in room"
+msgid_plural "%d people in room"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Typing"
+msgstr ""
+
+msgid "Stopped Typing"
+msgstr ""
+
+msgid "Nick Said"
+msgstr ""
+
+msgid "Unread Messages"
+msgstr ""
+
+msgid "New Event"
+msgstr ""
+
+msgid "clear: Clears all conversation scrollbacks."
+msgstr ""
+
+msgid "Confirm close"
+msgstr ""
+
+msgid "You have unread messages. Are you sure you want to close the window?"
+msgstr ""
+
+msgid "Close other tabs"
+msgstr ""
+
+msgid "Close all tabs"
+msgstr ""
+
+msgid "Detach this tab"
+msgstr ""
+
+msgid "Close this tab"
+msgstr ""
+
+msgid "Close conversation"
+msgstr ""
+
+msgid "Last created window"
+msgstr ""
+
+msgid "Separate IM and Chat windows"
+msgstr ""
+
+msgid "New window"
+msgstr ""
+
+msgid "By group"
+msgstr ""
+
+msgid "By account"
+msgstr ""
+
+msgid "Save Debug Log"
+msgstr ""
+
+msgid "Invert"
+msgstr ""
+
+msgid "Highlight matches"
+msgstr ""
+
+msgid "_Icon Only"
+msgstr ""
+
+msgid "_Text Only"
+msgstr ""
+
+msgid "_Both Icon & Text"
+msgstr ""
+
+msgid "Filter"
+msgstr ""
+
+msgid "Right click for more options."
+msgstr ""
+
+msgid "Level "
+msgstr ""
+
+msgid "Select the debug filter level."
+msgstr ""
+
+msgid "All"
+msgstr ""
+
+msgid "Misc"
+msgstr ""
+
+msgid "Warning"
+msgstr ""
+
+msgid "Error "
+msgstr ""
+
+msgid "Fatal Error"
+msgstr ""
+
+msgid "bug master"
+msgstr ""
+
+msgid "artist"
+msgstr ""
+
+#. feel free to not translate this
+msgid "Ka-Hing Cheung"
+msgstr ""
+
+msgid "voice and video"
+msgstr ""
+
+msgid "support"
+msgstr ""
+
+msgid "webmaster"
+msgstr ""
+
+msgid "Senior Contributor/QA"
+msgstr ""
+
+msgid "win32 port"
+msgstr ""
+
+msgid "maintainer"
+msgstr ""
+
+msgid "libfaim maintainer"
+msgstr ""
+
+#. If "lazy bum" translates literally into a serious insult, use something else or omit it.
+msgid "hacker and designated driver [lazy bum]"
+msgstr ""
+
+msgid "support/QA"
+msgstr ""
+
+msgid "XMPP"
+msgstr ""
+
+msgid "original author"
+msgstr ""
+
+msgid "lead developer"
+msgstr ""
+
+msgid "Afrikaans"
+msgstr ""
+
+msgid "Arabic"
+msgstr ""
+
+msgid "Belarusian Latin"
+msgstr ""
+
+msgid "Bulgarian"
+msgstr ""
+
+msgid "Bengali"
+msgstr ""
+
+msgid "Bosnian"
+msgstr ""
+
+msgid "Catalan"
+msgstr ""
+
+msgid "Valencian-Catalan"
+msgstr ""
+
+msgid "Czech"
+msgstr ""
+
+msgid "Danish"
+msgstr ""
+
+msgid "German"
+msgstr ""
+
+msgid "Dzongkha"
+msgstr ""
+
+msgid "Greek"
+msgstr ""
+
+msgid "Australian English"
+msgstr ""
+
+msgid "Canadian English"
+msgstr ""
+
+msgid "British English"
+msgstr ""
+
+msgid "Esperanto"
+msgstr ""
+
+msgid "Spanish"
+msgstr ""
+
+msgid "Estonian"
+msgstr ""
+
+msgid "Euskera(Basque)"
+msgstr ""
+
+msgid "Persian"
+msgstr ""
+
+msgid "Finnish"
+msgstr ""
+
+msgid "French"
+msgstr ""
+
+msgid "Irish"
+msgstr ""
+
+msgid "Galician"
+msgstr ""
+
+msgid "Gujarati"
+msgstr ""
+
+msgid "Gujarati Language Team"
+msgstr ""
+
+msgid "Hebrew"
+msgstr ""
+
+msgid "Hindi"
+msgstr ""
+
+msgid "Hungarian"
+msgstr ""
+
+msgid "Armenian"
+msgstr ""
+
+msgid "Indonesian"
+msgstr ""
+
+msgid "Italian"
+msgstr ""
+
+msgid "Japanese"
+msgstr ""
+
+msgid "Georgian"
+msgstr ""
+
+msgid "Ubuntu Georgian Translators"
+msgstr ""
+
+msgid "Khmer"
+msgstr ""
+
+msgid "Kannada"
+msgstr ""
+
+msgid "Kannada Translation team"
+msgstr ""
+
+msgid "Korean"
+msgstr ""
+
+msgid "Kurdish"
+msgstr ""
+
+msgid "Lao"
+msgstr ""
+
+msgid "Lithuanian"
+msgstr ""
+
+msgid "Macedonian"
+msgstr ""
+
+msgid "Mongolian"
+msgstr ""
+
+msgid "Bokmål Norwegian"
+msgstr ""
+
+msgid "Nepali"
+msgstr ""
+
+msgid "Dutch, Flemish"
+msgstr ""
+
+msgid "Norwegian Nynorsk"
+msgstr ""
+
+msgid "Occitan"
+msgstr ""
+
+msgid "Punjabi"
+msgstr ""
+
+msgid "Polish"
+msgstr ""
+
+msgid "Portuguese"
+msgstr ""
+
+msgid "Portuguese-Brazil"
+msgstr ""
+
+msgid "Pashto"
+msgstr ""
+
+msgid "Romanian"
+msgstr ""
+
+msgid "Russian"
+msgstr ""
+
+msgid "Slovak"
+msgstr ""
+
+msgid "Slovenian"
+msgstr ""
+
+msgid "Albanian"
+msgstr ""
+
+msgid "Serbian"
+msgstr ""
+
+msgid "Sinhala"
+msgstr ""
+
+msgid "Swedish"
+msgstr ""
+
+msgid "Swahili"
+msgstr ""
+
+msgid "Tamil"
+msgstr ""
+
+msgid "Telugu"
+msgstr ""
+
+msgid "Thai"
+msgstr ""
+
+msgid "Turkish"
+msgstr ""
+
+msgid "Urdu"
+msgstr ""
+
+msgid "Vietnamese"
+msgstr ""
+
+msgid "T.M.Thanh and the Gnome-Vi Team"
+msgstr ""
+
+msgid "Simplified Chinese"
+msgstr ""
+
+msgid "Hong Kong Chinese"
+msgstr ""
+
+msgid "Traditional Chinese"
+msgstr ""
+
+msgid "Amharic"
+msgstr ""
+
+#, c-format
+msgid "About %s"
+msgstr ""
+
+#, c-format
+msgid ""
+"%s is a graphical modular messaging client based on libpurple which is "
+"capable of connecting to AIM, MSN, Yahoo!, XMPP, ICQ, IRC, SILC, SIP/SIMPLE, "
+"Novell GroupWise, Lotus Sametime, Bonjour, Zephyr, MySpaceIM, Gadu-Gadu, and "
+"QQ all at once.  It is written using GTK+.<BR><BR>You may modify and "
+"redistribute the program under the terms of the GPL (version 2 or later).  A "
+"copy of the GPL is contained in the 'COPYING' file distributed with %s.  %s "
+"is copyrighted by its contributors.  See the 'COPYRIGHT' file for the "
+"complete list of contributors.  We provide no warranty for this program."
+"<BR><BR>"
+msgstr ""
+
+#, c-format
+msgid ""
+"<FONT SIZE=\"4\">FAQ:</FONT> <A HREF=\"http://developer.pidgin.im/wiki/FAQ"
+"\">http://developer.pidgin.im/wiki/FAQ</A><BR/><BR/>"
+msgstr ""
+
+#, c-format
+msgid ""
+"<FONT SIZE=\"4\">Help via e-mail:</FONT> <A HREF=\"mailto:support@pidgin.im"
+"\">support@pidgin.im</A><BR/><BR/>"
+msgstr ""
+
+#, c-format
+msgid ""
+"<FONT SIZE=\"4\">IRC Channel:</FONT> #pidgin on irc.freenode.net<BR><BR>"
+msgstr ""
+
+#, c-format
+msgid "<FONT SIZE=\"4\">XMPP MUC:</FONT> devel@conference.pidgin.im<BR><BR>"
+msgstr ""
+
+msgid "Current Developers"
+msgstr ""
+
+msgid "Crazy Patch Writers"
+msgstr ""
+
+msgid "Retired Developers"
+msgstr ""
+
+msgid "Retired Crazy Patch Writers"
+msgstr ""
+
+msgid "Current Translators"
+msgstr ""
+
+msgid "Past Translators"
+msgstr ""
+
+msgid "Debugging Information"
+msgstr ""
+
+msgid "_Name"
+msgstr ""
+
+msgid "_Account"
+msgstr ""
+
+msgid "Get User Info"
+msgstr ""
+
+msgid ""
+"Please enter the username or alias of the person whose info you would like "
+"to view."
+msgstr ""
+
+msgid "View User Log"
+msgstr ""
+
+msgid "Alias Contact"
+msgstr ""
+
+msgid "Enter an alias for this contact."
+msgstr ""
+
+#, c-format
+msgid "Enter an alias for %s."
+msgstr ""
+
+msgid "Alias Buddy"
+msgstr ""
+
+msgid "Alias Chat"
+msgstr ""
+
+msgid "Enter an alias for this chat."
+msgstr ""
+
+#, c-format
+msgid ""
+"You are about to remove the contact containing %s and %d other buddy from "
+"your buddy list.  Do you want to continue?"
+msgid_plural ""
+"You are about to remove the contact containing %s and %d other buddies from "
+"your buddy list.  Do you want to continue?"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Remove Contact"
+msgstr ""
+
+msgid "_Remove Contact"
+msgstr ""
+
+#, c-format
+msgid ""
+"You are about to merge the group called %s into the group called %s. Do you "
+"want to continue?"
+msgstr ""
+
+msgid "Merge Groups"
+msgstr ""
+
+msgid "_Merge Groups"
+msgstr ""
+
+#, c-format
+msgid ""
+"You are about to remove the group %s and all its members from your buddy "
+"list.  Do you want to continue?"
+msgstr ""
+
+msgid "Remove Group"
+msgstr ""
+
+msgid "_Remove Group"
+msgstr ""
+
+#, c-format
+msgid ""
+"You are about to remove %s from your buddy list.  Do you want to continue?"
+msgstr ""
+
+msgid "Remove Buddy"
+msgstr ""
+
+msgid "_Remove Buddy"
+msgstr ""
+
+#, c-format
+msgid ""
+"You are about to remove the chat %s from your buddy list.  Do you want to "
+"continue?"
+msgstr ""
+
+msgid "Remove Chat"
+msgstr ""
+
+msgid "_Remove Chat"
+msgstr ""
+
+msgid "Right-click for more unread messages...\n"
+msgstr ""
+
+msgid "_Change Status"
+msgstr ""
+
+msgid "Show Buddy _List"
+msgstr ""
+
+msgid "_Unread Messages"
+msgstr ""
+
+msgid "New _Message..."
+msgstr ""
+
+msgid "_Accounts"
+msgstr ""
+
+msgid "Plu_gins"
+msgstr ""
+
+msgid "Pr_eferences"
+msgstr ""
+
+msgid "Mute _Sounds"
+msgstr ""
+
+msgid "_Blink on New Message"
+msgstr ""
+
+msgid "_Quit"
+msgstr ""
+
+msgid "Not started"
+msgstr ""
+
+msgid "<b>Receiving As:</b>"
+msgstr ""
+
+msgid "<b>Receiving From:</b>"
+msgstr ""
+
+msgid "<b>Sending To:</b>"
+msgstr ""
+
+msgid "<b>Sending As:</b>"
+msgstr ""
+
+msgid "There is no application configured to open this type of file."
+msgstr ""
+
+msgid "An error occurred while opening the file."
+msgstr ""
+
+#, c-format
+msgid "Error launching %s: %s"
+msgstr ""
+
+#, c-format
+msgid "Error running %s"
+msgstr ""
+
+#, c-format
+msgid "Process returned error code %d"
+msgstr ""
+
+msgid "Filename:"
+msgstr ""
+
+msgid "Local File:"
+msgstr ""
+
+msgid "Speed:"
+msgstr ""
+
+msgid "Time Elapsed:"
+msgstr ""
+
+msgid "Time Remaining:"
+msgstr ""
+
+msgid "Close this window when all transfers _finish"
+msgstr ""
+
+msgid "C_lear finished transfers"
+msgstr ""
+
+#. "Download Details" arrow
+msgid "File transfer _details"
+msgstr ""
+
+#. Pause button
+msgid "_Pause"
+msgstr ""
+
+#. Resume button
+msgid "_Resume"
+msgstr ""
+
+msgid "Paste as Plain _Text"
+msgstr ""
+
+msgid "_Reset formatting"
+msgstr ""
+
+msgid "Disable _smileys in selected text"
+msgstr ""
+
+msgid "Hyperlink color"
+msgstr ""
+
+msgid "Color to draw hyperlinks."
+msgstr ""
+
+msgid "Hyperlink visited color"
+msgstr ""
+
+msgid "Color to draw hyperlinks after it has been visited (or activated)."
+msgstr ""
+
+msgid "Hyperlink prelight color"
+msgstr ""
+
+msgid "Color to draw hyperlinks when mouse is over them."
+msgstr ""
+
+msgid "Sent Message Name Color"
+msgstr ""
+
+msgid "Color to draw the name of a message you sent."
+msgstr ""
+
+msgid "Received Message Name Color"
+msgstr ""
+
+msgid "Color to draw the name of a message you received."
+msgstr ""
+
+msgid "\"Attention\" Name Color"
+msgstr ""
+
+msgid "Color to draw the name of a message you received containing your name."
+msgstr ""
+
+msgid "Action Message Name Color"
+msgstr ""
+
+msgid "Color to draw the name of an action message."
+msgstr ""
+
+msgid "Action Message Name Color for Whispered Message"
+msgstr ""
+
+msgid "Whisper Message Name Color"
+msgstr ""
+
+msgid "Typing notification color"
+msgstr ""
+
+msgid "The color to use for the typing notification font"
+msgstr ""
+
+msgid "Typing notification font"
+msgstr ""
+
+msgid "The font to use for the typing notification"
+msgstr ""
+
+msgid "Enable typing notification"
+msgstr ""
+
+msgid ""
+"<span size='larger' weight='bold'>Unrecognized file type</span>\n"
+"\n"
+"Defaulting to PNG."
+msgstr ""
+
+msgid ""
+"Unrecognized file type\n"
+"\n"
+"Defaulting to PNG."
+msgstr ""
+
+#, c-format
+msgid ""
+"<span size='larger' weight='bold'>Error saving image</span>\n"
+"\n"
+"%s"
+msgstr ""
+
+#, c-format
+msgid ""
+"Error saving image\n"
+"\n"
+"%s"
+msgstr ""
+
+msgid "Save Image"
+msgstr ""
+
+msgid "_Save Image..."
+msgstr ""
+
+msgid "_Add Custom Smiley..."
+msgstr ""
+
+msgid "Select Font"
+msgstr ""
+
+msgid "Select Text Color"
+msgstr ""
+
+msgid "Select Background Color"
+msgstr ""
+
+msgid "_URL"
+msgstr ""
+
+msgid "_Description"
+msgstr ""
+
+msgid ""
+"Please enter the URL and description of the link that you want to insert. "
+"The description is optional."
+msgstr ""
+
+msgid "Please enter the URL of the link that you want to insert."
+msgstr ""
+
+msgid "Insert Link"
+msgstr ""
+
+msgid "_Insert"
+msgstr ""
+
+#, c-format
+msgid "Failed to store image: %s\n"
+msgstr ""
+
+msgid "Insert Image"
+msgstr ""
+
+#, c-format
+msgid ""
+"This smiley is disabled because a custom smiley exists for this shortcut:\n"
+" %s"
+msgstr ""
+
+msgid "Smile!"
+msgstr ""
+
+msgid "_Manage custom smileys"
+msgstr ""
+
+msgid "This theme has no available smileys."
+msgstr ""
+
+msgid "_Font"
+msgstr ""
+
+msgid "Group Items"
+msgstr ""
+
+msgid "Ungroup Items"
+msgstr ""
+
+msgid "Bold"
+msgstr ""
+
+msgid "Italic"
+msgstr ""
+
+msgid "Underline"
+msgstr ""
+
+msgid "Strikethrough"
+msgstr ""
+
+msgid "Increase Font Size"
+msgstr ""
+
+msgid "Decrease Font Size"
+msgstr ""
+
+msgid "Font Face"
+msgstr ""
+
+msgid "Background Color"
+msgstr ""
+
+msgid "Foreground Color"
+msgstr ""
+
+msgid "Reset Formatting"
+msgstr ""
+
+msgid "Insert IM Image"
+msgstr ""
+
+msgid "Insert Smiley"
+msgstr ""
+
+msgid "<b>_Bold</b>"
+msgstr ""
+
+msgid "<i>_Italic</i>"
+msgstr ""
+
+msgid "<u>_Underline</u>"
+msgstr ""
+
+msgid "<span strikethrough='true'>Strikethrough</span>"
+msgstr ""
+
+msgid "<span size='larger'>_Larger</span>"
+msgstr ""
+
+msgid "_Normal"
+msgstr ""
+
+msgid "<span size='smaller'>_Smaller</span>"
+msgstr ""
+
+#. If we want to show the formatting for the following items, we would
+#. * need to update them when formatting changes. The above items don't need
+#. * no updating nor nothin'
+msgid "_Font face"
+msgstr ""
+
+msgid "Foreground _color"
+msgstr ""
+
+msgid "Bac_kground color"
+msgstr ""
+
+msgid "_Image"
+msgstr ""
+
+msgid "_Link"
+msgstr ""
+
+msgid "_Horizontal rule"
+msgstr ""
+
+msgid "_Smile!"
+msgstr ""
+
+msgid "Log Deletion Failed"
+msgstr ""
+
+msgid "Check permissions and try again."
+msgstr ""
+
+#, c-format
+msgid ""
+"Are you sure you want to permanently delete the log of the conversation with "
+"%s which started at %s?"
+msgstr ""
+
+#, c-format
+msgid ""
+"Are you sure you want to permanently delete the log of the conversation in %"
+"s which started at %s?"
+msgstr ""
+
+#, c-format
+msgid ""
+"Are you sure you want to permanently delete the system log which started at %"
+"s?"
+msgstr ""
+
+msgid "Delete Log?"
+msgstr ""
+
+msgid "Delete Log..."
+msgstr ""
+
+#, c-format
+msgid "<span size='larger' weight='bold'>Conversation in %s on %s</span>"
+msgstr ""
+
+#, c-format
+msgid "<span size='larger' weight='bold'>Conversation with %s on %s</span>"
+msgstr ""
+
+#. Steal the "HELP" response and use it to trigger browsing to the logs folder
+msgid "_Browse logs folder"
+msgstr ""
+
+#, c-format
+msgid "%s %s. Try `%s -h' for more information.\n"
+msgstr ""
+
+#, c-format
+msgid ""
+"%s %s\n"
+"Usage: %s [OPTION]...\n"
+"\n"
+"  -c, --config=DIR    use DIR for config files\n"
+"  -d, --debug         print debugging messages to stdout\n"
+"  -f, --force-online  force online, regardless of network status\n"
+"  -h, --help          display this help and exit\n"
+"  -m, --multiple      do not ensure single instance\n"
+"  -n, --nologin       don't automatically login\n"
+"  -l, --login[=NAME]  enable specified account(s) (optional argument NAME\n"
+"                      specifies account(s) to use, separated by commas.\n"
+"                      Without this only the first account will be enabled).\n"
+"  --display=DISPLAY   X display to use\n"
+"  -v, --version       display the current version and exit\n"
+msgstr ""
+
+#, c-format
+msgid ""
+"%s %s\n"
+"Usage: %s [OPTION]...\n"
+"\n"
+"  -c, --config=DIR    use DIR for config files\n"
+"  -d, --debug         print debugging messages to stdout\n"
+"  -f, --force-online  force online, regardless of network status\n"
+"  -h, --help          display this help and exit\n"
+"  -m, --multiple      do not ensure single instance\n"
+"  -n, --nologin       don't automatically login\n"
+"  -l, --login[=NAME]  enable specified account(s) (optional argument NAME\n"
+"                      specifies account(s) to use, separated by commas.\n"
+"                      Without this only the first account will be enabled).\n"
+"  -v, --version       display the current version and exit\n"
+msgstr ""
+
+#, c-format
+msgid ""
+"%s %s has segfaulted and attempted to dump a core file.\n"
+"This is a bug in the software and has happened through\n"
+"no fault of your own.\n"
+"\n"
+"If you can reproduce the crash, please notify the developers\n"
+"by reporting a bug at:\n"
+"%ssimpleticket/\n"
+"\n"
+"Please make sure to specify what you were doing at the time\n"
+"and post the backtrace from the core file.  If you do not know\n"
+"how to get the backtrace, please read the instructions at\n"
+"%swiki/GetABacktrace\n"
+msgstr ""
+
+#. Translators may want to transliterate the name.
+#. It is not to be translated.
+msgid "Pidgin"
+msgstr ""
+
+#, c-format
+msgid "Exiting because another libpurple client is already running.\n"
+msgstr ""
+
+msgid "/_Media"
+msgstr ""
+
+msgid "/Media/_Hangup"
+msgstr ""
+
+msgid "Calling..."
+msgstr ""
+
+#, c-format
+msgid "%s wishes to start an audio/video session with you."
+msgstr ""
+
+#, c-format
+msgid "%s wishes to start a video session with you."
+msgstr ""
+
+#, c-format
+msgid "%s has %d new message."
+msgid_plural "%s has %d new messages."
+msgstr[0] ""
+msgstr[1] ""
+
+#, c-format
+msgid "<b>%d new email.</b>"
+msgid_plural "<b>%d new emails.</b>"
+msgstr[0] ""
+msgstr[1] ""
+
+#, c-format
+msgid "The browser command \"%s\" is invalid."
+msgstr ""
+
+msgid "Unable to open URL"
+msgstr ""
+
+#, c-format
+msgid "Error launching \"%s\": %s"
+msgstr ""
+
+msgid ""
+"The 'Manual' browser command has been chosen, but no command has been set."
+msgstr ""
+
+msgid "Open All Messages"
+msgstr ""
+
+msgid "<span weight=\"bold\" size=\"larger\">You have mail!</span>"
+msgstr ""
+
+msgid "New Pounces"
+msgstr ""
+
+msgid "Dismiss"
+msgstr ""
+
+msgid "<span weight=\"bold\" size=\"larger\">You have pounced!</span>"
+msgstr ""
+
+msgid "No message"
+msgstr ""
+
+msgid "The following plugins will be unloaded."
+msgstr ""
+
+msgid "Multiple plugins will be unloaded."
+msgstr ""
+
+msgid "Unload Plugins"
+msgstr ""
+
+msgid "Could not unload plugin"
+msgstr ""
+
+msgid ""
+"The plugin could not be unloaded now, but will be disabled at the next "
+"startup."
+msgstr ""
+
+#, c-format
+msgid ""
+"<span foreground=\"red\" weight=\"bold\">Error: %s\n"
+"Check the plugin website for an update.</span>"
+msgstr ""
+
+msgid "Author"
+msgstr ""
+
+msgid "<b>Written by:</b>"
+msgstr ""
+
+msgid "<b>Web site:</b>"
+msgstr ""
+
+msgid "<b>Filename:</b>"
+msgstr ""
+
+msgid "Configure Pl_ugin"
+msgstr ""
+
+msgid "<b>Plugin Details</b>"
+msgstr ""
+
+msgid "Select a file"
+msgstr ""
+
+msgid "Modify Buddy Pounce"
+msgstr ""
+
+#. Create the "Pounce on Whom" frame.
+msgid "Pounce on Whom"
+msgstr ""
+
+msgid "_Account:"
+msgstr ""
+
+msgid "_Buddy name:"
+msgstr ""
+
+msgid "Si_gns on"
+msgstr ""
+
+msgid "Signs o_ff"
+msgstr ""
+
+msgid "Goes a_way"
+msgstr ""
+
+msgid "Ret_urns from away"
+msgstr ""
+
+msgid "Becomes _idle"
+msgstr ""
+
+msgid "Is no longer i_dle"
+msgstr ""
+
+msgid "Starts _typing"
+msgstr ""
+
+msgid "P_auses while typing"
+msgstr ""
+
+msgid "Stops t_yping"
+msgstr ""
+
+msgid "Sends a _message"
+msgstr ""
+
+msgid "Ope_n an IM window"
+msgstr ""
+
+msgid "_Pop up a notification"
+msgstr ""
+
+msgid "Send a _message"
+msgstr ""
+
+msgid "E_xecute a command"
+msgstr ""
+
+msgid "P_lay a sound"
+msgstr ""
+
+msgid "Brows_e..."
+msgstr ""
+
+msgid "Br_owse..."
+msgstr ""
+
+msgid "Pre_view"
+msgstr ""
+
+msgid "P_ounce only when my status is not Available"
+msgstr ""
+
+msgid "_Recurring"
+msgstr ""
+
+msgid "Pounce Target"
+msgstr ""
+
+#, c-format
+msgid "Started typing"
+msgstr ""
+
+#, c-format
+msgid "Paused while typing"
+msgstr ""
+
+#, c-format
+msgid "Signed on"
+msgstr ""
+
+#, c-format
+msgid "Returned from being idle"
+msgstr ""
+
+#, c-format
+msgid "Returned from being away"
+msgstr ""
+
+#, c-format
+msgid "Stopped typing"
+msgstr ""
+
+#, c-format
+msgid "Signed off"
+msgstr ""
+
+#, c-format
+msgid "Became idle"
+msgstr ""
+
+#, c-format
+msgid "Went away"
+msgstr ""
+
+#, c-format
+msgid "Sent a message"
+msgstr ""
+
+#, c-format
+msgid "Unknown.... Please report this!"
+msgstr ""
+
+msgid "Smiley theme failed to unpack."
+msgstr ""
+
+msgid "Install Theme"
+msgstr ""
+
+msgid ""
+"Select a smiley theme that you would like to use from the list below. New "
+"themes can be installed by dragging and dropping them onto the theme list."
+msgstr ""
+
+msgid "Icon"
+msgstr ""
+
+msgid "Keyboard Shortcuts"
+msgstr ""
+
+msgid "Cl_ose conversations with the Escape key"
+msgstr ""
+
+#. Buddy List Themes
+msgid "Buddy List Theme"
+msgstr ""
+
+#. System Tray
+msgid "System Tray Icon"
+msgstr ""
+
+msgid "_Show system tray icon:"
+msgstr ""
+
+msgid "On unread messages"
+msgstr ""
+
+msgid "Conversation Window Hiding"
+msgstr ""
+
+msgid "_Hide new IM conversations:"
+msgstr ""
+
+msgid "When away"
+msgstr ""
+
+#. All the tab options!
+msgid "Tabs"
+msgstr ""
+
+msgid "Show IMs and chats in _tabbed windows"
+msgstr ""
+
+msgid "Show close b_utton on tabs"
+msgstr ""
+
+msgid "_Placement:"
+msgstr ""
+
+msgid "Top"
+msgstr ""
+
+msgid "Bottom"
+msgstr ""
+
+msgid "Left"
+msgstr ""
+
+msgid "Right"
+msgstr ""
+
+msgid "Left Vertical"
+msgstr ""
+
+msgid "Right Vertical"
+msgstr ""
+
+msgid "N_ew conversations:"
+msgstr ""
+
+msgid "Show _formatting on incoming messages"
+msgstr ""
+
+msgid "Close IMs immediately when the tab is closed"
+msgstr ""
+
+msgid "Show _detailed information"
+msgstr ""
+
+msgid "Enable buddy ic_on animation"
+msgstr ""
+
+msgid "_Notify buddies that you are typing to them"
+msgstr ""
+
+msgid "Highlight _misspelled words"
+msgstr ""
+
+msgid "Use smooth-scrolling"
+msgstr ""
+
+msgid "F_lash window when IMs are received"
+msgstr ""
+
+msgid "Minimi_ze new conversation windows"
+msgstr ""
+
+msgid "Minimum input area height in lines:"
+msgstr ""
+
+msgid "Font"
+msgstr ""
+
+msgid "Use document font from _theme"
+msgstr ""
+
+msgid "Use font from _theme"
+msgstr ""
+
+msgid "Conversation _font:"
+msgstr ""
+
+msgid "Default Formatting"
+msgstr ""
+
+msgid ""
+"This is how your outgoing message text will appear when you use protocols "
+"that support formatting."
+msgstr ""
+
+msgid "Cannot start proxy configuration program."
+msgstr ""
+
+msgid "Cannot start browser configuration program."
+msgstr ""
+
+msgid "<span style=\"italic\">Example: stunserver.org</span>"
+msgstr ""
+
+msgid "_Autodetect IP address"
+msgstr ""
+
+msgid "Public _IP:"
+msgstr ""
+
+msgid "Ports"
+msgstr ""
+
+msgid "_Enable automatic router port forwarding"
+msgstr ""
+
+msgid "_Manually specify range of ports to listen on"
+msgstr ""
+
+msgid "_Start port:"
+msgstr ""
+
+msgid "_End port:"
+msgstr ""
+
+#. TURN server
+msgid "Relay Server (TURN)"
+msgstr ""
+
+msgid "Proxy Server &amp; Browser"
+msgstr ""
+
+msgid "<b>Proxy configuration program was not found.</b>"
+msgstr ""
+
+msgid "<b>Browser configuration program was not found.</b>"
+msgstr ""
+
+msgid ""
+"Proxy & Browser preferences are configured\n"
+"in GNOME Preferences"
+msgstr ""
+
+msgid "Configure _Proxy"
+msgstr ""
+
+msgid "Configure _Browser"
+msgstr ""
+
+msgid "Proxy Server"
+msgstr ""
+
+msgid "No proxy"
+msgstr ""
+
+#. This is a global option that affects SOCKS4 usage even with account-specific proxy settings
+msgid "Use remote DNS with SOCKS4 proxies"
+msgstr ""
+
+msgid "_User:"
+msgstr ""
+
+msgid "Seamonkey"
+msgstr ""
+
+msgid "Opera"
+msgstr ""
+
+msgid "Netscape"
+msgstr ""
+
+msgid "Mozilla"
+msgstr ""
+
+msgid "Konqueror"
+msgstr ""
+
+msgid "Desktop Default"
+msgstr ""
+
+msgid "GNOME Default"
+msgstr ""
+
+msgid "Galeon"
+msgstr ""
+
+msgid "Firefox"
+msgstr ""
+
+msgid "Firebird"
+msgstr ""
+
+msgid "Epiphany"
+msgstr ""
+
+msgid "Manual"
+msgstr ""
+
+msgid "Browser Selection"
+msgstr ""
+
+msgid "_Browser:"
+msgstr ""
+
+msgid "_Open link in:"
+msgstr ""
+
+msgid "Browser default"
+msgstr ""
+
+msgid "Existing window"
+msgstr ""
+
+msgid "New tab"
+msgstr ""
+
+#, c-format
+msgid ""
+"_Manual:\n"
+"(%s for URL)"
+msgstr ""
+
+msgid "Log _format:"
+msgstr ""
+
+msgid "Log all _instant messages"
+msgstr ""
+
+msgid "Log all c_hats"
+msgstr ""
+
+msgid "Log all _status changes to system log"
+msgstr ""
+
+msgid "Sound Selection"
+msgstr ""
+
+#, c-format
+msgid "Quietest"
+msgstr ""
+
+#, c-format
+msgid "Quieter"
+msgstr ""
+
+#, c-format
+msgid "Quiet"
+msgstr ""
+
+#, c-format
+msgid "Loud"
+msgstr ""
+
+#, c-format
+msgid "Louder"
+msgstr ""
+
+#, c-format
+msgid "Loudest"
+msgstr ""
+
+msgid "_Method:"
+msgstr ""
+
+msgid "Console beep"
+msgstr ""
+
+msgid "No sounds"
+msgstr ""
+
+#, c-format
+msgid ""
+"Sound c_ommand:\n"
+"(%s for filename)"
+msgstr ""
+
+msgid "M_ute sounds"
+msgstr ""
+
+msgid "Sounds when conversation has _focus"
+msgstr ""
+
+msgid "_Enable sounds:"
+msgstr ""
+
+msgid "V_olume:"
+msgstr ""
+
+msgid "Play"
+msgstr ""
+
+msgid "_Browse..."
+msgstr ""
+
+msgid "_Reset"
+msgstr ""
+
+msgid "_Report idle time:"
+msgstr ""
+
+msgid "Based on keyboard or mouse use"
+msgstr ""
+
+msgid "_Auto-reply:"
+msgstr ""
+
+msgid "When both away and idle"
+msgstr ""
+
+#. Auto-away stuff
+msgid "Auto-away"
+msgstr ""
+
+msgid "_Minutes before becoming idle:"
+msgstr ""
+
+msgid "Change status when _idle"
+msgstr ""
+
+msgid "Change _status to:"
+msgstr ""
+
+#. Signon status stuff
+msgid "Status at Startup"
+msgstr ""
+
+msgid "Use status from last _exit at startup"
+msgstr ""
+
+msgid "Status to a_pply at startup:"
+msgstr ""
+
+msgid "Interface"
+msgstr ""
+
+msgid "Smiley Themes"
+msgstr ""
+
+msgid "Browser"
+msgstr ""
+
+msgid "Status / Idle"
+msgstr ""
+
+msgid "Allow all users to contact me"
+msgstr ""
+
+msgid "Allow only the users on my buddy list"
+msgstr ""
+
+msgid "Allow only the users below"
+msgstr ""
+
+msgid "Block all users"
+msgstr ""
+
+msgid "Block only the users below"
+msgstr ""
+
+msgid "Privacy"
+msgstr ""
+
+msgid "Changes to privacy settings take effect immediately."
+msgstr ""
+
+msgid "Set privacy for:"
+msgstr ""
+
+#. Remove All button
+msgid "Remove Al_l"
+msgstr ""
+
+msgid "Permit User"
+msgstr ""
+
+msgid "Type a user you permit to contact you."
+msgstr ""
+
+msgid "Please enter the name of the user you wish to be able to contact you."
+msgstr ""
+
+msgid "_Permit"
+msgstr ""
+
+#, c-format
+msgid "Allow %s to contact you?"
+msgstr ""
+
+#, c-format
+msgid "Are you sure you wish to allow %s to contact you?"
+msgstr ""
+
+msgid "Block User"
+msgstr ""
+
+msgid "Type a user to block."
+msgstr ""
+
+msgid "Please enter the name of the user you wish to block."
+msgstr ""
+
+#, c-format
+msgid "Block %s?"
+msgstr ""
+
+#, c-format
+msgid "Are you sure you want to block %s?"
+msgstr ""
+
+msgid "Apply"
+msgstr ""
+
+msgid "That file already exists"
+msgstr ""
+
+msgid "Would you like to overwrite it?"
+msgstr ""
+
+msgid "Overwrite"
+msgstr ""
+
+msgid "Choose New Name"
+msgstr ""
+
+msgid "Select Folder..."
+msgstr ""
+
+#. list button
+msgid "_Get List"
+msgstr ""
+
+#. add button
+msgid "_Add Chat"
+msgstr ""
+
+msgid "Are you sure you want to delete the selected saved statuses?"
+msgstr ""
+
+#. Use button
+msgid "_Use"
+msgstr ""
+
+msgid "Title already in use.  You must choose a unique title."
+msgstr ""
+
+msgid "Different"
+msgstr ""
+
+msgid "_Title:"
+msgstr ""
+
+msgid "_Status:"
+msgstr ""
+
+#. Different status message expander
+msgid "Use a _different status for some accounts"
+msgstr ""
+
+#. Save & Use button
+msgid "Sa_ve & Use"
+msgstr ""
+
+#, c-format
+msgid "Status for %s"
+msgstr ""
+
+#.
+#. * TODO: We should enable/disable the add button based on
+#. *       whether the user has entered all required data.  That
+#. *       would eliminate the need for this check and provide a
+#. *       better user experience.
+#.
+msgid "Custom Smiley"
+msgstr ""
+
+msgid "More Data needed"
+msgstr ""
+
+msgid "Please provide a shortcut to associate with the smiley."
+msgstr ""
+
+#, c-format
+msgid ""
+"A custom smiley for '%s' already exists.  Please use a different shortcut."
+msgstr ""
+
+msgid "Duplicate Shortcut"
+msgstr ""
+
+msgid "Please select an image for the smiley."
+msgstr ""
+
+msgid "Edit Smiley"
+msgstr ""
+
+msgid "Add Smiley"
+msgstr ""
+
+msgid "_Image:"
+msgstr ""
+
+#. Shortcut text
+msgid "S_hortcut text:"
+msgstr ""
+
+msgid "Smiley"
+msgstr ""
+
+msgid "Shortcut Text"
+msgstr ""
+
+msgid "Custom Smiley Manager"
+msgstr ""
+
+msgid "Select Buddy Icon"
+msgstr ""
+
+msgid "Click to change your buddyicon for this account."
+msgstr ""
+
+msgid "Click to change your buddyicon for all accounts."
+msgstr ""
+
+msgid "Waiting for network connection"
+msgstr ""
+
+msgid "New status..."
+msgstr ""
+
+msgid "Saved statuses..."
+msgstr ""
+
+msgid "Status Selector"
+msgstr ""
+
+msgid "Google Talk"
+msgstr ""
+
+#, c-format
+msgid "The following error has occurred loading %s: %s"
+msgstr ""
+
+msgid "Failed to load image"
+msgstr ""
+
+#, c-format
+msgid "Cannot send folder %s."
+msgstr ""
+
+#, c-format
+msgid ""
+"%s cannot transfer a folder. You will need to send the files within "
+"individually."
+msgstr ""
+
+msgid "You have dragged an image"
+msgstr ""
+
+msgid ""
+"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 ""
+
+msgid "Set as buddy icon"
+msgstr ""
+
+msgid "Send image file"
+msgstr ""
+
+msgid "Insert in message"
+msgstr ""
+
+msgid "Would you like to set it as the buddy icon for this user?"
+msgstr ""
+
+msgid ""
+"You can send this image as a file transfer, or use it as the buddy icon for "
+"this user."
+msgstr ""
+
+msgid ""
+"You can insert this image into this message, or use it as the buddy icon for "
+"this user"
+msgstr ""
+
+#. 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 clue how that would be a desktop item) and "Comment"... nothing we can really
+#. * send.  The only logical one is "Application," but do we really want to send a binary and nothing else?
+#. * Probably not.  I'll just give an error and return.
+#. The original patch sent the icon used by the launcher.  That's probably wrong
+msgid "Cannot send launcher"
+msgstr ""
+
+msgid ""
+"You dragged a desktop launcher. Most likely you wanted to send whatever this "
+"launcher points to instead of this launcher itself."
+msgstr ""
+
+#, c-format
+msgid ""
+"<b>File:</b> %s\n"
+"<b>File size:</b> %s\n"
+"<b>Image size:</b> %dx%d"
+msgstr ""
+
+#, c-format
+msgid "The file '%s' is too large for %s.  Please try a smaller image.\n"
+msgstr ""
+
+msgid "Icon Error"
+msgstr ""
+
+msgid "Could not set icon"
+msgstr ""
+
+#, c-format
+msgid "Failed to open file '%s': %s"
+msgstr ""
+
+#, c-format
+msgid ""
+"Failed to load image '%s': reason not known, probably a corrupt image file"
+msgstr ""
+
+msgid "_Open Link"
+msgstr ""
+
+msgid "_Copy Link Location"
+msgstr ""
+
+msgid "_Copy Email Address"
+msgstr ""
+
+msgid "Save File"
+msgstr ""
+
+msgid "Select color"
+msgstr ""
+
+msgid "_Alias"
+msgstr ""
+
+msgid "Close _tabs"
+msgstr ""
+
+msgid "_Get Info"
+msgstr ""
+
+msgid "_Invite"
+msgstr ""
+
+msgid "_Modify..."
+msgstr ""
+
+msgid "_Add..."
+msgstr ""
+
+msgid "_Open Mail"
+msgstr ""
+
+msgid "_Edit"
+msgstr ""
+
+msgid "Pidgin Tooltip"
+msgstr ""
+
+msgid "Pidgin smileys"
+msgstr ""
+
+msgid "Penguin Pimps"
+msgstr ""
+
+msgid "Selecting this disables graphical emoticons."
+msgstr ""
+
+msgid "none"
+msgstr ""
+
+msgid "Small"
+msgstr ""
+
+msgid "Smaller versions of the default smilies"
+msgstr ""
+
+msgid "Response Probability:"
+msgstr ""
+
+msgid "Statistics Configuration"
+msgstr ""
+
+#. msg_difference spinner
+msgid "Maximum response timeout:"
+msgstr ""
+
+msgid "minutes"
+msgstr ""
+
+#. last_seen spinner
+msgid "Maximum last-seen difference:"
+msgstr ""
+
+#. threshold spinner
+msgid "Threshold:"
+msgstr ""
+
+#. *< type
+#. *< ui_requirement
+#. *< flags
+#. *< dependencies
+#. *< priority
+#. *< id
+msgid "Contact Availability Prediction"
+msgstr ""
+
+#. *< name
+#. *< version
+msgid "Contact Availability Prediction plugin."
+msgstr ""
+
+#. *  summary
+msgid "Displays statistical information about your buddies' availability"
+msgstr ""
+
+msgid "Buddy is idle"
+msgstr ""
+
+msgid "Buddy is away"
+msgstr ""
+
+msgid "Buddy is \"extended\" away"
+msgstr ""
+
+#. Not used yet.
+msgid "Buddy is mobile"
+msgstr ""
+
+msgid "Buddy is offline"
+msgstr ""
+
+msgid "Point values to use when..."
+msgstr ""
+
+msgid ""
+"The buddy with the <i>largest score</i> is the buddy who will have priority "
+"in the contact.\n"
+msgstr ""
+
+msgid "Use last buddy when scores are equal"
+msgstr ""
+
+msgid "Point values to use for account..."
+msgstr ""
+
+#. *< type
+#. *< ui_requirement
+#. *< flags
+#. *< dependencies
+#. *< priority
+#. *< id
+msgid "Contact Priority"
+msgstr ""
+
+#. *< name
+#. *< version
+#. *< summary
+msgid ""
+"Allows for controlling the values associated with different buddy states."
+msgstr ""
+
+#. *< description
+msgid ""
+"Allows for changing the point values of idle/away/offline states for buddies "
+"in contact priority computations."
+msgstr ""
+
+msgid "Conversation Colors"
+msgstr ""
+
+msgid "Customize colors in the conversation window"
+msgstr ""
+
+msgid "Error Messages"
+msgstr ""
+
+msgid "Highlighted Messages"
+msgstr ""
+
+msgid "System Messages"
+msgstr ""
+
+msgid "Sent Messages"
+msgstr ""
+
+msgid "Received Messages"
+msgstr ""
+
+#, c-format
+msgid "Select Color for %s"
+msgstr ""
+
+msgid "Ignore incoming format"
+msgstr ""
+
+msgid "Apply in Chats"
+msgstr ""
+
+msgid "Apply in IMs"
+msgstr ""
+
+msgid "By conversation count"
+msgstr ""
+
+msgid "Conversation Placement"
+msgstr ""
+
+#. Translators: "New conversations" should match the text in the preferences dialog and "By conversation count" should be the same text used above
+msgid ""
+"Note: The preference for \"New conversations\" must be set to \"By "
+"conversation count\"."
+msgstr ""
+
+msgid "Number of conversations per window"
+msgstr ""
+
+msgid "Separate IM and Chat windows when placing by number"
+msgstr ""
+
+#. *< type
+#. *< ui_requirement
+#. *< flags
+#. *< dependencies
+#. *< priority
+#. *< id
+msgid "ExtPlacement"
+msgstr ""
+
+#. *< name
+#. *< version
+msgid "Extra conversation placement options."
+msgstr ""
+
+#. *< summary
+#. *  description
+msgid ""
+"Restrict the number of conversations per windows, optionally separating IMs "
+"and Chats"
+msgstr ""
+
+#. Configuration frame
+msgid "Mouse Gestures Configuration"
+msgstr ""
+
+msgid "Middle mouse button"
+msgstr ""
+
+msgid "Right mouse button"
+msgstr ""
+
+#. "Visual gesture display" checkbox
+msgid "_Visual gesture display"
+msgstr ""
+
+#. *< type
+#. *< ui_requirement
+#. *< flags
+#. *< dependencies
+#. *< priority
+#. *< id
+msgid "Mouse Gestures"
+msgstr ""
+
+#. *< name
+#. *< version
+#. *  summary
+msgid "Provides support for mouse gestures"
+msgstr ""
+
+#. *  description
+msgid ""
+"Allows support for mouse gestures in conversation windows. Drag the middle "
+"mouse button to perform certain actions:\n"
+" • Drag down and then to the right to close a conversation.\n"
+" • Drag up and then to the left to switch to the previous conversation.\n"
+" • Drag up and then to the right to switch to the next conversation."
+msgstr ""
+
+msgid "Instant Messaging"
+msgstr ""
+
+#. Add the label.
+msgid "Select a person from your address book below, or add a new person."
+msgstr ""
+
+msgid "Group:"
+msgstr ""
+
+#. "New Person" button
+msgid "New Person"
+msgstr ""
+
+#. "Select Buddy" button
+msgid "Select Buddy"
+msgstr ""
+
+#. Add the label.
+msgid ""
+"Select a person from your address book to add this buddy to, or create a new "
+"person."
+msgstr ""
+
+#. Add the expander
+msgid "User _details"
+msgstr ""
+
+#. "Associate Buddy" button
+msgid "_Associate Buddy"
+msgstr ""
+
+msgid "Unable to send email"
+msgstr ""
+
+msgid "The evolution executable was not found in the PATH."
+msgstr ""
+
+msgid "An email address was not found for this buddy."
+msgstr ""
+
+msgid "Add to Address Book"
+msgstr ""
+
+msgid "Send Email"
+msgstr ""
+
+#. Configuration frame
+msgid "Evolution Integration Configuration"
+msgstr ""
+
+#. Label
+msgid "Select all accounts that buddies should be auto-added to."
+msgstr ""
+
+#. *< type
+#. *< ui_requirement
+#. *< flags
+#. *< dependencies
+#. *< priority
+#. *< id
+msgid "Evolution Integration"
+msgstr ""
+
+#. *< name
+#. *< version
+#. *  summary
+#. *  description
+msgid "Provides integration with Evolution."
+msgstr ""
+
+msgid "Please enter the person's information below."
+msgstr ""
+
+msgid "Please enter the buddy's username and account type below."
+msgstr ""
+
+msgid "Account type:"
+msgstr ""
+
+#. Optional Information section
+msgid "Optional information:"
+msgstr ""
+
+msgid "First name:"
+msgstr ""
+
+msgid "Last name:"
+msgstr ""
+
+msgid "Email:"
+msgstr ""
+
+#. *< type
+#. *< ui_requirement
+#. *< flags
+#. *< dependencies
+#. *< priority
+#. *< id
+msgid "GTK Signals Test"
+msgstr ""
+
+#. *< name
+#. *< version
+#. *  summary
+#. *  description
+msgid "Test to see that all ui signals are working properly."
+msgstr ""
+
+#, c-format
+msgid ""
+"\n"
+"<b>Buddy Note</b>: %s"
+msgstr ""
+
+msgid "History"
+msgstr ""
+
+#. *< type
+#. *< ui_requirement
+#. *< flags
+#. *< dependencies
+#. *< priority
+#. *< id
+msgid "Iconify on Away"
+msgstr ""
+
+#. *< name
+#. *< version
+#. *  summary
+#. *  description
+msgid "Iconifies the buddy list and your conversations when you go away."
+msgstr ""
+
+msgid "Mail Checker"
+msgstr ""
+
+msgid "Checks for new local mail."
+msgstr ""
+
+msgid "Adds a small box to the buddy list that shows if you have new mail."
+msgstr ""
+
+msgid "Markerline"
+msgstr ""
+
+msgid "Draw a line to indicate new messages in a conversation."
+msgstr ""
+
+msgid "Jump to markerline"
+msgstr ""
+
+msgid "Draw Markerline in "
+msgstr ""
+
+msgid "_IM windows"
+msgstr ""
+
+msgid "C_hat windows"
+msgstr ""
+
+msgid ""
+"A music messaging session has been requested. Please click the MM icon to "
+"accept."
+msgstr ""
+
+msgid "Music messaging session confirmed."
+msgstr ""
+
+msgid "Music Messaging"
+msgstr ""
+
+msgid "There was a conflict in running the command:"
+msgstr ""
+
+msgid "Error Running Editor"
+msgstr ""
+
+msgid "The following error has occurred:"
+msgstr ""
+
+#. Configuration frame
+msgid "Music Messaging Configuration"
+msgstr ""
+
+msgid "Score Editor Path"
+msgstr ""
+
+msgid "_Apply"
+msgstr ""
+
+#. *< type
+#. *< ui_requirement
+#. *< flags
+#. *< dependencies
+#. *< priority
+#. *< id
+#. *< name
+#. *< version
+msgid "Music Messaging Plugin for collaborative composition."
+msgstr ""
+
+#. *  summary
+msgid ""
+"The Music Messaging Plugin allows a number of users to simultaneously work "
+"on a piece of music by editting a common score in real-time."
+msgstr ""
+
+#. ---------- "Notify For" ----------
+msgid "Notify For"
+msgstr ""
+
+msgid "\t_Only when someone says your username"
+msgstr ""
+
+msgid "_Focused windows"
+msgstr ""
+
+#. ---------- "Notification Methods" ----------
+msgid "Notification Methods"
+msgstr ""
+
+msgid "Prepend _string into window title:"
+msgstr ""
+
+#. Count method button
+msgid "Insert c_ount of new messages into window title"
+msgstr ""
+
+#. Count xprop method button
+msgid "Insert count of new message into _X property"
+msgstr ""
+
+#. Urgent method button
+msgid "Set window manager \"_URGENT\" hint"
+msgstr ""
+
+msgid "_Flash window"
+msgstr ""
+
+#. Raise window method button
+msgid "R_aise conversation window"
+msgstr ""
+
+#. Present conversation method button
+msgid "_Present conversation window"
+msgstr ""
+
+#. ---------- "Notification Removals" ----------
+msgid "Notification Removal"
+msgstr ""
+
+#. Remove on focus button
+msgid "Remove when conversation window _gains focus"
+msgstr ""
+
+#. Remove on click button
+msgid "Remove when conversation window _receives click"
+msgstr ""
+
+#. Remove on type button
+msgid "Remove when _typing in conversation window"
+msgstr ""
+
+#. Remove on message send button
+msgid "Remove when a _message gets sent"
+msgstr ""
+
+#. Remove on conversation switch button
+msgid "Remove on switch to conversation ta_b"
+msgstr ""
+
+#. *< type
+#. *< ui_requirement
+#. *< flags
+#. *< dependencies
+#. *< priority
+#. *< id
+msgid "Message Notification"
+msgstr ""
+
+#. *< name
+#. *< version
+#. *  summary
+#. *  description
+msgid "Provides a variety of ways of notifying you of unread messages."
+msgstr ""
+
+#. *< type
+#. *< ui_requirement
+#. *< flags
+#. *< dependencies
+#. *< priority
+#. *< id
+msgid "Pidgin Demonstration Plugin"
+msgstr ""
+
+#. *< name
+#. *< version
+#. *  summary
+msgid "An example plugin that does stuff - see the description."
+msgstr ""
+
+#. *  description
+msgid ""
+"This is a really cool plugin that does a lot of stuff:\n"
+"- It tells you who wrote the program when you log in\n"
+"- It reverses all incoming text\n"
+"- It sends a message to people on your list immediately when they sign on"
+msgstr ""
+
+msgid "Cursor Color"
+msgstr ""
+
+msgid "Secondary Cursor Color"
+msgstr ""
+
+msgid "Hyperlink Color"
+msgstr ""
+
+msgid "Visited Hyperlink Color"
+msgstr ""
+
+msgid "Highlighted Message Name Color"
+msgstr ""
+
+msgid "GtkTreeView Horizontal Separation"
+msgstr ""
+
+msgid "Conversation Entry"
+msgstr ""
+
+msgid "Request Dialog"
+msgstr ""
+
+msgid "Notify Dialog"
+msgstr ""
+
+msgid "Select Color"
+msgstr ""
+
+#, c-format
+msgid "Select Interface Font"
+msgstr ""
+
+#, c-format
+msgid "Select Font for %s"
+msgstr ""
+
+msgid "GTK+ Interface Font"
+msgstr ""
+
+msgid "GTK+ Text Shortcut Theme"
+msgstr ""
+
+#.
+#. for (i = 0; i < G_N_ELEMENTS(widget_bool_prefs); i++) {
+#. hbox = gtk_hbox_new(FALSE, PIDGIN_HIG_CAT_SPACE);
+#. gtk_box_pack_start(GTK_BOX(frame), hbox, FALSE, FALSE, 0);
+#.
+#. check = pidgin_prefs_checkbox(_(widget_bool_names[i]),
+#. widget_bool_prefs_set[i], hbox);
+#. gtk_size_group_add_widget(labelsg, check);
+#.
+#. widget_bool_widgets[i] = pidgin_prefs_checkbox("", widget_bool_prefs[i], hbox);
+#. *
+#. gtk_size_group_add_widget(widgetsb, widget_bool_widgets[i]);
+#. *
+#. gtk_widget_set_sensitive(widget_bool_widgets[i],
+#. purple_prefs_get_bool(widget_bool_prefs_set[i]));
+#. g_signal_connect(G_OBJECT(check), "toggled",
+#. G_CALLBACK(pidgin_toggle_sensitive),
+#. widget_bool_widgets[i]);
+#. }
+#.
+msgid "Interface colors"
+msgstr ""
+
+msgid "Widget Sizes"
+msgstr ""
+
+msgid "Fonts"
+msgstr ""
+
+msgid "Gtkrc File Tools"
+msgstr ""
+
+#, c-format
+msgid "Write settings to %s%sgtkrc-2.0"
+msgstr ""
+
+msgid "Re-read gtkrc files"
+msgstr ""
+
+msgid "Pidgin GTK+ Theme Control"
+msgstr ""
+
+msgid "Provides access to commonly used gtkrc settings."
+msgstr ""
+
+msgid "Raw"
+msgstr ""
+
+msgid "Lets you send raw input to text-based protocols."
+msgstr ""
+
+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 ""
+
+#, c-format
+msgid "You can upgrade to %s %s today."
+msgstr ""
+
+msgid "New Version Available"
+msgstr ""
+
+msgid "Later"
+msgstr ""
+
+msgid "Download Now"
+msgstr ""
+
+#. *< type
+#. *< ui_requirement
+#. *< flags
+#. *< dependencies
+#. *< priority
+#. *< id
+msgid "Release Notification"
+msgstr ""
+
+#. *< name
+#. *< version
+#. *  summary
+msgid "Checks periodically for new releases."
+msgstr ""
+
+#. *  description
+msgid ""
+"Checks periodically for new releases and notifies the user with the "
+"ChangeLog."
+msgstr ""
+
+#. *< major version
+#. *< minor version
+#. *< type
+#. *< ui_requirement
+#. *< flags
+#. *< dependencies
+#. *< priority
+#. *< id
+msgid "Send Button"
+msgstr ""
+
+#. *< name
+#. *< version
+msgid "Conversation Window Send Button."
+msgstr ""
+
+#. *< summary
+msgid ""
+"Adds a Send button to the entry area of the conversation window. Intended "
+"for when no physical keyboard is present."
+msgstr ""
+
+msgid "Duplicate Correction"
+msgstr ""
+
+msgid "The specified word already exists in the correction list."
+msgstr ""
+
+msgid "Text Replacements"
+msgstr ""
+
+msgid "You type"
+msgstr ""
+
+msgid "You send"
+msgstr ""
+
+msgid "Whole words only"
+msgstr ""
+
+msgid "Case sensitive"
+msgstr ""
+
+msgid "Add a new text replacement"
+msgstr ""
+
+msgid "You _type:"
+msgstr ""
+
+msgid "You _send:"
+msgstr ""
+
+#. Created here so it can be passed to whole_words_button_toggled.
+msgid "_Exact case match (uncheck for automatic case handling)"
+msgstr ""
+
+msgid "Only replace _whole words"
+msgstr ""
+
+msgid "General Text Replacement Options"
+msgstr ""
+
+msgid "Enable replacement of last word on send"
+msgstr ""
+
+msgid "Text replacement"
+msgstr ""
+
+msgid "Replaces text in outgoing messages according to user-defined rules."
+msgstr ""
+
+#. *< type
+#. *< ui_requirement
+#. *< flags
+#. *< dependencies
+#. *< priority
+#. *< id
+msgid "Buddy Ticker"
+msgstr ""
+
+#. *< name
+#. *< version
+#. *  summary
+#. *  description
+msgid "A horizontal scrolling version of the buddy list."
+msgstr ""
+
+msgid "Display Timestamps Every"
+msgstr ""
+
+#. *< type
+#. *< ui_requirement
+#. *< flags
+#. *< dependencies
+#. *< priority
+#. *< id
+msgid "Timestamp"
+msgstr ""
+
+#. *< name
+#. *< version
+#. *  summary
+msgid "Display iChat-style timestamps"
+msgstr ""
+
+#. *  description
+msgid "Display iChat-style timestamps every N minutes."
+msgstr ""
+
+msgid "Timestamp Format Options"
+msgstr ""
+
+#, c-format
+msgid "_Force 24-hour time format"
+msgstr ""
+
+msgid "Show dates in..."
+msgstr ""
+
+msgid "Co_nversations:"
+msgstr ""
+
+msgid "For delayed messages"
+msgstr ""
+
+msgid "For delayed messages and in chats"
+msgstr ""
+
+msgid "_Message Logs:"
+msgstr ""
+
+#. *< type
+#. *< ui_requirement
+#. *< flags
+#. *< dependencies
+#. *< priority
+#. *< id
+msgid "Message Timestamp Formats"
+msgstr ""
+
+#. *< name
+#. *< version
+#. *  summary
+msgid "Customizes the message timestamp formats."
+msgstr ""
+
+#. *  description
+msgid ""
+"This plugin allows the user to customize conversation and logging message "
+"timestamp formats."
+msgstr ""
+
+msgid "Opacity:"
+msgstr ""
+
+#. IM Convo trans options
+msgid "IM Conversation Windows"
+msgstr ""
+
+msgid "_IM window transparency"
+msgstr ""
+
+msgid "_Show slider bar in IM window"
+msgstr ""
+
+msgid "Remove IM window transparency on focus"
+msgstr ""
+
+msgid "Always on top"
+msgstr ""
+
+#. Buddy List trans options
+msgid "Buddy List Window"
+msgstr ""
+
+msgid "_Buddy List window transparency"
+msgstr ""
+
+msgid "Remove Buddy List window transparency on focus"
+msgstr ""
+
+#. *< type
+#. *< ui_requirement
+#. *< flags
+#. *< dependencies
+#. *< priority
+#. *< id
+msgid "Transparency"
+msgstr ""
+
+#. *< name
+#. *< version
+#. *  summary
+msgid "Variable Transparency for the buddy list and conversations."
+msgstr ""
+
+#. *  description
+msgid ""
+"This plugin enables variable alpha transparency on conversation windows and "
+"the buddy list.\n"
+"\n"
+"* Note: This plugin requires Win2000 or greater."
+msgstr ""
+
+msgid "GTK+ Runtime Version"
+msgstr ""
+
+#. Autostart
+msgid "Startup"
+msgstr ""
+
+#, c-format
+msgid "_Start %s on Windows startup"
+msgstr ""
+
+msgid "_Dockable Buddy List"
+msgstr ""
+
+#. Blist On Top
+msgid "_Keep Buddy List window on top:"
+msgstr ""
+
+#. XXX: Did this ever work?
+msgid "Only when docked"
+msgstr ""
+
+msgid "Windows Pidgin Options"
+msgstr ""
+
+msgid "Options specific to Pidgin for Windows."
+msgstr ""
+
+msgid ""
+"Provides options specific to Pidgin for Windows , such as buddy list docking."
+msgstr ""
+
+msgid "<font color='#777777'>Logged out.</font>"
+msgstr ""
+
+#. *< type
+#. *< ui_requirement
+#. *< flags
+#. *< dependencies
+#. *< priority
+#. *< id
+msgid "XMPP Console"
+msgstr ""
+
+msgid "Account: "
+msgstr ""
+
+msgid "<font color='#777777'>Not connected to XMPP</font>"
+msgstr ""
+
+msgid "Insert an <iq/> stanza."
+msgstr ""
+
+msgid "Insert a <presence/> stanza."
+msgstr ""
+
+msgid "Insert a <message/> stanza."
+msgstr ""
+
+#. *< name
+#. *< version
+#. *  summary
+msgid "Send and receive raw XMPP stanzas."
+msgstr ""
+
+#. *  description
+msgid "This plugin is useful for debbuging XMPP servers or clients."
+msgstr ""
--- a/po/lo.po	Mon May 25 19:27:33 2009 +0000
+++ b/po/lo.po	Mon Jun 08 18:28:31 2009 +0000
@@ -1,25 +1,26 @@
-# SOME DESCRIPTIVE TITLE.
+# translation of lo.po to Lao
 # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
 # This file is distributed under the same license as the PACKAGE package.
-# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
 #
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
+# Anousak Souphavanh <anousak@gmail.com>, 2007, 2009.
+msgid ""
+msgstr ""
+"Project-Id-Version: lo\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-04-30 10:39-0400\n"
-"PO-Revision-Date: 2007-09-28 09:52+0700\n"
+"POT-Creation-Date: 2009-05-26 22:29-0700\n"
+"PO-Revision-Date: 2009-04-29 09:28+0700\n"
 "Last-Translator: Anousak Souphavanh <anousak@gmail.com>\n"
-"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language-Team: Lao <lo@li.org>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
 
 # "Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
 #. Translators may want to transliterate the name.
 #. It is not to be translated.
 msgid "Finch"
-msgstr ""
+msgstr "ຟີນຊ໌"
 
 #, c-format
 msgid "%s. Try `%s -h' for more information.\n"
@@ -48,40 +49,40 @@
 msgstr "ຜິດພາດ"
 
 msgid "Account was not added"
-msgstr ""
+msgstr "ບໍ່ໃດ້ເພີ້ມບັນຊີ "
 
 msgid "Username of an account must be non-empty."
-msgstr ""
+msgstr "ລະຫັດຜູ້ໃຊ້ຕ້ອງໃຫ້ມີຂໍ້ມູນ"
 
 msgid "New mail notifications"
-msgstr ""
+msgstr "ອີເເມວລ໌ໃຫ່ມເຕືອນ"
 
 msgid "Remember password"
-msgstr ""
+msgstr "ຈື່ລະຫັດພານ"
 
 msgid "There are no protocol plugins installed."
 msgstr ""
 
 msgid "(You probably forgot to 'make install'.)"
-msgstr ""
+msgstr "ຄິດວ່າທ່ານລືມຂຽນ 'make install'"
 
 msgid "Modify Account"
-msgstr ""
+msgstr "ປັບບັນຊີ"
 
 msgid "New Account"
-msgstr ""
+msgstr "ບັນຊີໃຫມ່"
 
 msgid "Protocol:"
-msgstr ""
+msgstr "ໂປໂຕໂກນ:"
 
 msgid "Username:"
-msgstr ""
+msgstr "ຊື່ຜູ້ໃຊ້:"
 
 msgid "Password:"
-msgstr ""
+msgstr "ລະຫັດພ່ານ:"
 
 msgid "Alias:"
-msgstr ""
+msgstr "ຊື່ຫລີ້ນ:"
 
 #. Register checkbox
 msgid "Create this account on the server"
@@ -90,37 +91,37 @@
 #. Cancel button
 #. Cancel
 msgid "Cancel"
-msgstr ""
+msgstr "ຍົກເລີອກ"
 
 #. Save button
 #. Save
 msgid "Save"
-msgstr ""
+msgstr "ບັນທຶກ"
 
 #, c-format
 msgid "Are you sure you want to delete %s?"
-msgstr ""
+msgstr "ເເນ່ທີ່ຈະລຶບ %s?"
 
 msgid "Delete Account"
-msgstr ""
+msgstr "ລຶບບັນຊີ"
 
 #. Delete button
 msgid "Delete"
-msgstr ""
+msgstr "ລຶບ"
 
 msgid "Accounts"
-msgstr ""
+msgstr "ບັນຊີທົວໄປ"
 
 msgid "You can enable/disable accounts from the following list."
 msgstr ""
 
 #. Add button
 msgid "Add"
-msgstr ""
+msgstr "ເພີ້ມ"
 
 #. Modify button
 msgid "Modify"
-msgstr ""
+msgstr "ປັບ"
 
 #, c-format
 msgid "%s%s%s%s has made %s his or her buddy%s%s"
@@ -137,20 +138,22 @@
 msgstr ""
 
 msgid "Authorize"
-msgstr ""
+msgstr "ອະນຸມັດ"
 
 msgid "Deny"
-msgstr ""
+msgstr "ປະຕິເສດ"
 
 #, c-format
 msgid ""
 "Online: %d\n"
 "Total: %d"
 msgstr ""
+"ອອນລາຍ: %d\n"
+"ຈໍານວນລວມ: %d"
 
 #, c-format
 msgid "Account: %s (%s)"
-msgstr ""
+msgstr "ບັນຊີ: %s (%s)"
 
 #, c-format
 msgid ""
@@ -1669,6 +1672,8 @@
 msgid "+++ %s signed off"
 msgstr ""
 
+#. Unknown error
+#. Unknown error!
 msgid "Unknown error"
 msgstr ""
 
@@ -3480,6 +3485,9 @@
 msgid "Server does not use any supported authentication method"
 msgstr ""
 
+msgid "You require encryption, but it is not available on this server."
+msgstr ""
+
 msgid "Invalid challenge from server"
 msgstr ""
 
@@ -3739,6 +3747,13 @@
 msgid "Resource"
 msgstr ""
 
+#, c-format
+msgid "%s ago"
+msgstr ""
+
+msgid "Logged off"
+msgstr ""
+
 msgid "Middle Name"
 msgstr ""
 
@@ -3903,7 +3918,14 @@
 msgid "Find Rooms"
 msgstr ""
 
-msgid "You require encryption, but it is not available on this server."
+#, fuzzy
+msgid "Affiliations:"
+msgstr "ຊື່ຫລີ້ນ:"
+
+msgid "No users found"
+msgstr ""
+
+msgid "Roles:"
 msgstr ""
 
 msgid "Ping timeout"
@@ -4354,13 +4376,13 @@
 msgstr ""
 
 msgid ""
-"affiliate &lt;user&gt; &lt;owner|admin|member|outcast|none&gt;: Set a user's "
-"affiliation with the room."
-msgstr ""
-
-msgid ""
-"role &lt;user&gt; &lt;moderator|participant|visitor|none&gt;: Set a user's "
-"role in the room."
+"affiliate &lt;owner|admin|member|outcast|none&gt; [nick1] [nick2] ...: Get "
+"the users with an affiliation or set users' affiliation with the room."
+msgstr ""
+
+msgid ""
+"role &lt;moderator|participant|visitor|none&gt; [nick1] [nick2] ...: Get the "
+"users with an role or set users' role with the room."
 msgstr ""
 
 msgid "invite &lt;user&gt; [message]:  Invite a user to the room."
@@ -5140,28 +5162,20 @@
 msgstr ""
 
 #, c-format
-msgid "%s is not a valid group."
-msgstr ""
-
-msgid "Unknown error."
-msgstr ""
-
-#, c-format
-msgid "%s on %s (%s)"
-msgstr ""
-
-#, c-format
 msgid "%s just sent you a Nudge!"
 msgstr ""
 
-#. char *adl = g_strndup(payload, len);
-#, c-format
-msgid "Unknown error (%d)"
+#, c-format
+msgid "Unknown error (%d): %s"
 msgstr ""
 
 msgid "Unable to add user"
 msgstr ""
 
+#, c-format
+msgid "Unknown error (%d)"
+msgstr ""
+
 msgid "The following users are missing from your addressbook"
 msgstr ""
 
@@ -5188,15 +5202,12 @@
 msgid "Service Temporarily Unavailable."
 msgstr ""
 
+msgid "Unknown error."
+msgstr ""
+
 msgid "Mobile message was not sent because it was too long."
 msgstr ""
 
-msgid "Unable to rename group"
-msgstr ""
-
-msgid "Unable to delete group"
-msgstr ""
-
 #, c-format
 msgid ""
 "The MSN server will shut down for maintenance in %d minute. You will "
@@ -5321,14 +5332,6 @@
 msgid "Message may have not been sent because an unknown error occurred:"
 msgstr ""
 
-#, c-format
-msgid "%s has added you to his or her buddy list."
-msgstr ""
-
-#, c-format
-msgid "%s has removed you from his or her buddy list."
-msgstr ""
-
 msgid "Delete Buddy from Address Book?"
 msgstr ""
 
@@ -5358,6 +5361,28 @@
 msgstr ""
 
 #, c-format
+msgid "%s is not a valid group."
+msgstr ""
+
+#, c-format
+msgid "%s on %s (%s)"
+msgstr ""
+
+msgid "Unable to rename group"
+msgstr ""
+
+msgid "Unable to delete group"
+msgstr ""
+
+#, c-format
+msgid "%s has added you to his or her buddy list."
+msgstr ""
+
+#, c-format
+msgid "%s has removed you from his or her buddy list."
+msgstr ""
+
+#, c-format
 msgid "No such user: %s"
 msgstr ""
 
@@ -5386,6 +5411,8 @@
 msgstr ""
 
 #. Can't write _()'d strings in array initializers. Workaround.
+#. khc: then use N_() in the array initializer and use _() when they are
+#. used
 msgid "New mail messages"
 msgstr ""
 
@@ -8939,6 +8966,30 @@
 msgid "Add buddy rejected"
 msgstr ""
 
+#. Some error in the received stream
+msgid "Received invalid data"
+msgstr ""
+
+#. Password incorrect
+msgid "Incorrect Password"
+msgstr ""
+
+#. security lock from too many failed login attempts
+msgid "Account locked: Too many failed login attempts"
+msgstr ""
+
+#. the username does not exist
+msgid "Username does not exist"
+msgstr ""
+
+#. indicates a lock of some description
+msgid "Account locked: See the debug log"
+msgstr ""
+
+#. username or password missing
+msgid "Username or password missing"
+msgstr ""
+
 #, c-format
 msgid ""
 "The Yahoo server has requested the use of an unrecognized authentication "
@@ -9776,15 +9827,16 @@
 msgid "Please update the necessary fields."
 msgstr ""
 
-msgid "Room _List"
-msgstr ""
+#, fuzzy
+msgid "A_ccount"
+msgstr "ບັນຊີທົວໄປ"
 
 msgid ""
 "Please enter the appropriate information about the chat you would like to "
 "join.\n"
 msgstr ""
 
-msgid "_Account:"
+msgid "Room _List"
 msgstr ""
 
 msgid "_Block"
@@ -10695,6 +10747,9 @@
 msgid "Hungarian"
 msgstr ""
 
+msgid "Armenian"
+msgstr ""
+
 msgid "Indonesian"
 msgstr ""
 
@@ -10791,6 +10846,9 @@
 msgid "Swedish"
 msgstr ""
 
+msgid "Swahili"
+msgstr ""
+
 msgid "Tamil"
 msgstr ""
 
@@ -11183,11 +11241,9 @@
 msgid "Save Image"
 msgstr ""
 
-#, c-format
 msgid "_Save Image..."
 msgstr ""
 
-#, c-format
 msgid "_Add Custom Smiley..."
 msgstr ""
 
@@ -11551,6 +11607,9 @@
 msgid "Pounce on Whom"
 msgstr ""
 
+msgid "_Account:"
+msgstr ""
+
 msgid "_Buddy name:"
 msgstr ""
 
@@ -12207,6 +12266,9 @@
 msgid "Custom Smiley Manager"
 msgstr ""
 
+msgid "Select Buddy Icon"
+msgstr ""
+
 msgid "Click to change your buddyicon for this account."
 msgstr ""
 
--- a/po/sl.po	Mon May 25 19:27:33 2009 +0000
+++ b/po/sl.po	Mon Jun 08 18:28:31 2009 +0000
@@ -6,11 +6,11 @@
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: Pidgin 2.5.5\n"
+"Project-Id-Version: Pidgin 2.6\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-04-30 10:40-0400\n"
-"PO-Revision-Date: 2009-02-22 10:26+0100\n"
-"Last-Translator: Martin Srebotnjak <miles@filmsi.net>\n"
+"POT-Creation-Date: 2009-05-26 22:19-0700\n"
+"PO-Revision-Date: 2009-05-02 16:54+0100\n"
+"Last-Translator: Martin Srebotnjak  <miles@filmsi.net>\n"
 "Language-Team: Martin Srebotnjak <miles@filmsi.net>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -876,12 +876,11 @@
 msgid "System Log"
 msgstr "Sistemski dnevnik"
 
-#, fuzzy
 msgid "Calling ... "
-msgstr "Preračunavanje ..."
+msgstr "Klicanje ..."
 
 msgid "Hangup"
-msgstr ""
+msgstr "Odloži"
 
 #. Number of actions
 msgid "Accept"
@@ -891,25 +890,24 @@
 msgstr "Zavrni"
 
 msgid "Call in progress."
-msgstr ""
+msgstr "Klic je v teku."
 
 msgid "The call has been terminated."
-msgstr ""
+msgstr "Klic je bil končan."
 
 #, c-format
 msgid "%s wishes to start an audio session with you."
-msgstr ""
+msgstr "%s želi z vami začeti zvočno sejo."
 
 #, c-format
 msgid "%s is trying to start an unsupported media session type with you."
-msgstr ""
-
-#, fuzzy
+msgstr "%s poskuša z vami začeti sejo v nepodprtem mediju."
+
 msgid "You have rejected the call."
-msgstr "Zapustili ste kanal%s%s"
+msgstr "Zavrnili ste klic."
 
 msgid "call: Make an audio call."
-msgstr ""
+msgstr "call: Opravite zvočni klic."
 
 msgid "Emails"
 msgstr "E-naslovi"
@@ -1566,22 +1564,23 @@
 "\n"
 "Fetching TinyURL..."
 msgstr ""
+"\n"
+"Pridobivanje TinyURL ..."
 
 msgid "Only create TinyURL for urls of this length or greater"
-msgstr ""
+msgstr "Ustvari TinyURL le za naslove URL te dolžina ali daljše"
 
 msgid "TinyURL (or other) address prefix"
-msgstr ""
-
-#, fuzzy
+msgstr "Predpona naslova TinyURL (ali drugega)"
+
 msgid "TinyURL"
-msgstr "URL skladbe"
+msgstr "TinyURL"
 
 msgid "TinyURL plugin"
-msgstr ""
+msgstr "Vtičnik TinyURL"
 
 msgid "When receiving a message with URL(s), TinyURL for easier copying"
-msgstr ""
+msgstr "Ob prejemu sporočil z URL-ji uporabi TinyURL za enostavnejše kopiranje"
 
 msgid "accounts"
 msgstr "Računi"
@@ -1785,6 +1784,8 @@
 msgid "+++ %s signed off"
 msgstr "+++ %s se je odjavil(a)"
 
+#. Unknown error
+#. Unknown error!
 msgid "Unknown error"
 msgstr "Neznana napaka"
 
@@ -1831,9 +1832,8 @@
 msgid "%s left the room (%s)."
 msgstr "%s nas je zapustil (%s)."
 
-#, fuzzy
 msgid "Invite to chat"
-msgstr "Povabi na konferenčni pogovor"
+msgstr "Povabi na klepet"
 
 #. Put our happy label in it.
 msgid ""
@@ -2697,9 +2697,8 @@
 msgid "Do not ask. Always save in pounce."
 msgstr "Ne sprašuj. Vedno shrani v opozorilo."
 
-#, fuzzy
 msgid "One Time Password"
-msgstr "Vnesi geslo"
+msgstr "Enkratno geslo"
 
 #. *< type
 #. *< ui_requirement
@@ -2708,13 +2707,13 @@
 #. *< priority
 #. *< id
 msgid "One Time Password Support"
-msgstr ""
+msgstr "Podpora za enkratno geslo"
 
 #. *< name
 #. *< version
 #. *  summary
 msgid "Enforce that passwords are used only once."
-msgstr ""
+msgstr "Vsilite, da se gesla uporabijo le enkrat."
 
 #. *  description
 msgid ""
@@ -2722,6 +2721,9 @@
 "are only used in a single successful connection.\n"
 "Note: The account password must not be saved for this to work."
 msgstr ""
+"Omogoča, da vsilite (posebej za vsak račun), da so neshranjena gesla "
+"uporabljena le za posamezno uspešno povezavo.\n"
+"Opomba: Geslo računa ni potrebno shraniti, da bi to delovalo."
 
 #. *< type
 #. *< ui_requirement
@@ -2962,9 +2964,8 @@
 msgstr "Vijolična oseba"
 
 #. Creating the options for the protocol
-#, fuzzy
 msgid "Local Port"
-msgstr "Okraj"
+msgstr "Krajevna vrata"
 
 msgid "Bonjour"
 msgstr "Bonjour"
@@ -3473,13 +3474,12 @@
 #. We only want to do the following dance if the connection
 #. has not been successfully completed.  If it has, just
 #. notify the user that their /nick command didn't go.
-#, fuzzy, c-format
+#, c-format
 msgid "The nickname \"%s\" is already being used."
-msgstr "Ime za pomenek že obstaja"
-
-#, fuzzy
+msgstr "Vzdevek \"%s\" že obstaja."
+
 msgid "Nickname in use"
-msgstr "Vzdevek"
+msgstr "Vzdevek je zaseden"
 
 msgid "Cannot change nick"
 msgstr "Vzdevka ne morem spremeniti"
@@ -3747,6 +3747,9 @@
 msgid "Server does not use any supported authentication method"
 msgstr "Strežnik ne uporablja nobene podprte metode overovitve"
 
+msgid "You require encryption, but it is not available on this server."
+msgstr "Zahtevate šifriranje, vendar to na tem strežniku ni na voljo."
+
 msgid "Invalid challenge from server"
 msgstr "Neveljaven poziv strežnika"
 
@@ -3754,21 +3757,16 @@
 msgstr "Napaka SASL"
 
 msgid "The BOSH connection manager terminated your session."
-msgstr ""
-
-#, fuzzy
+msgstr "Upravitelj povezave BOSH je zaključil vašo sejo."
+
 msgid "No session ID given"
-msgstr "Ni podanega razloga"
-
-#, fuzzy
+msgstr "ID seje ni podan"
+
 msgid "Unsupported version of BOSH protocol"
-msgstr "Nepodprta različica"
-
-#, fuzzy
+msgstr "Nepodprta različica protokola BOSH"
+
 msgid "Unable to establish a connection with the server"
-msgstr ""
-"Povezave s strežnikom ni mogoče vzpostaviti:\n"
-"%s"
+msgstr "Povezave s strežnikom ni mogoče vzpostaviti"
 
 #, c-format
 msgid ""
@@ -3778,9 +3776,8 @@
 "Povezave s strežnikom ni mogoče vzpostaviti:\n"
 "%s"
 
-#, fuzzy
 msgid "Unable to establish SSL connection"
-msgstr "Povezave ni mogoče inicializirati"
+msgstr "Povezave SSL ni mogoče vzpostaviti"
 
 msgid "Unable to create socket"
 msgstr "Ni mogoče ustvariti vtičnice"
@@ -3852,9 +3849,8 @@
 msgid "Operating System"
 msgstr "Operacijski sistem"
 
-#, fuzzy
 msgid "Local Time"
-msgstr "Lokalna datoteka:"
+msgstr "Krajevni čas"
 
 msgid "Last Activity"
 msgstr "Zadnja dejavnost"
@@ -4015,6 +4011,14 @@
 msgid "Resource"
 msgstr "Vir"
 
+#, c-format
+msgid "%s ago"
+msgstr ""
+
+#, fuzzy
+msgid "Logged off"
+msgstr "Prijavljeni"
+
 msgid "Middle Name"
 msgstr "Drugo ime"
 
@@ -4181,8 +4185,17 @@
 msgid "Find Rooms"
 msgstr "Najdi sobe"
 
-msgid "You require encryption, but it is not available on this server."
-msgstr "Zahtevate šifriranje, vendar to na tem strežniku ni na voljo."
+#, fuzzy
+msgid "Affiliations:"
+msgstr "Psevdonim:"
+
+#, fuzzy
+msgid "No users found"
+msgstr "Ni najdenih uporabnikov"
+
+#, fuzzy
+msgid "Roles:"
+msgstr "Funkcija"
 
 msgid "Ping timeout"
 msgstr "Časovna prekoračitev pinga"
@@ -4195,6 +4208,8 @@
 "Could not find alternative XMPP connection methods after failing to connect "
 "directly.\n"
 msgstr ""
+"Po neuspehu neposredne povezave ni bilo mogoče najti drugih povezovalnih "
+"metod XMPP.\n"
 
 msgid "Invalid XMPP ID"
 msgstr "Neveljaven ID za XMPP"
@@ -4202,9 +4217,8 @@
 msgid "Invalid XMPP ID. Domain must be set."
 msgstr "Neveljaven ID za XMPP. Domena mora biti določena."
 
-#, fuzzy
 msgid "Malformed BOSH Connect Server"
-msgstr "Povezava na strežnik neuspešna."
+msgstr "Nepravilno oblikovan povezovalni strežnik BOSH"
 
 #, c-format
 msgid "Registration of %s@%s successful"
@@ -4562,19 +4576,21 @@
 msgid "Unable to ping user %s"
 msgstr "Uporabnika %s ni mogoče pingniti"
 
-#, fuzzy, c-format
+#, c-format
 msgid "Unable to buzz, because there is nothing known about %s."
-msgstr "Ni mogoče stresti, saj o uporabniku %s ni ničesar znanega."
-
-#, fuzzy, c-format
+msgstr "Ni mogoče stresti, saj o osebi %s ni ničesar znanega."
+
+#, c-format
 msgid "Unable to buzz, because %s might be offline."
-msgstr "Ni mogoče stresti, saj je uporabnik %s morda nepovezan."
-
-#, fuzzy, c-format
+msgstr "Ni mogoče stresti, saj je oseba %s morda nepovezana."
+
+#, c-format
 msgid ""
 "Unable to buzz, because %s does not support it or does not wish to receive "
 "buzzes now."
-msgstr "Uporabnika %s ni mogoče stresti, ker tega dejanja ne podpira."
+msgstr ""
+"Osebe %s ni mogoče stresti, ker tega dejanja ne podpira ali zdaj ne želi "
+"prejemati tresenja."
 
 #, c-format
 msgid "Buzzing %s..."
@@ -4589,36 +4605,33 @@
 msgid "%s has buzzed you!"
 msgstr "Uporabnik %s vas je stresel."
 
-#, fuzzy, c-format
+#, c-format
 msgid "Unable to initiate media with %s: invalid JID"
-msgstr "Sporočila k %s ni mogoče poslati, neveljaven JID"
-
-#, fuzzy, c-format
+msgstr "Medija z %s ni mogoče iniciirati: neveljaven JID"
+
+#, c-format
 msgid "Unable to initiate media with %s: user is not online"
-msgstr "Datoteke %s ni mogoče poslati, ker uporabnik ni povezan"
-
-#, fuzzy, c-format
+msgstr "Medija z %s ni mogoče iniciirati: uporabnik ni povezan"
+
+#, c-format
 msgid "Unable to initiate media with %s: not subscribed to user presence"
 msgstr ""
-"Datoteke %s ni mogoče poslati, ker nimate dostopa do stanja uporabnikove "
-"prisotnosti"
-
-#, fuzzy
+"Medija %s ni mogoče iniciirati: niste naročeni na stanja prisotnosti osebe"
+
 msgid "Media Initiation Failed"
-msgstr "Napaka pri registraciji"
-
-#, fuzzy, c-format
+msgstr "Iniciacija medija ni uspela"
+
+#, c-format
 msgid ""
 "Please select the resource of %s with which you would like to start a media "
 "session."
-msgstr "Izberite, kateremu viru %s bi radi poslali datoteko"
+msgstr "Izberite vir %s, s katerim bi radi začeli medijsko sejo."
 
 msgid "Select a Resource"
 msgstr "Izberite vir"
 
-#, fuzzy
 msgid "Initiate Media"
-msgstr "Začni _pogovor"
+msgstr "Iniciiraj medij"
 
 msgid "config:  Configure a chat room."
 msgstr "config:  Nastavi pogovorno sobo."
@@ -4638,16 +4651,18 @@
 msgid "ban &lt;user&gt; [reason]:  Ban a user from the room."
 msgstr "ban &lt;uporabnik&gt; [razlog]:  Prepovej uporabnika v sobi."
 
-msgid ""
-"affiliate &lt;user&gt; &lt;owner|admin|member|outcast|none&gt;: Set a user's "
-"affiliation with the room."
+#, fuzzy
+msgid ""
+"affiliate &lt;owner|admin|member|outcast|none&gt; [nick1] [nick2] ...: Get "
+"the users with an affiliation or set users' affiliation with the room."
 msgstr ""
 "affiliate &lt;uporabnik&gt; &lt;lastnik|skrbnik|član|izločenec|nihče&gt;: "
 "Nastavitev uporabnikovega statusa v sobi."
 
-msgid ""
-"role &lt;user&gt; &lt;moderator|participant|visitor|none&gt;: Set a user's "
-"role in the room."
+#, fuzzy
+msgid ""
+"role &lt;moderator|participant|visitor|none&gt; [nick1] [nick2] ...: Get the "
+"users with an role or set users' role with the room."
 msgstr ""
 "role &lt;uporabnik&gt; &lt;moderator|participant|visitor|none&gt;: "
 "Nastavitev uporabnikove vloge v sobi."
@@ -4773,20 +4788,17 @@
 msgid "Error in chat %s"
 msgstr "Napaka v pomenku %s"
 
-#, fuzzy
 msgid "An error occured on the in-band bytestream transfer\n"
-msgstr "Med odpiranjem datoteke je prišlo do napake."
-
-#, fuzzy
+msgstr "V notranje pasovnem zlogovnem pretoku je prišlo do napake\n"
+
 msgid "Transfer was closed."
-msgstr "Prenos datoteke ni uspel"
-
-#, fuzzy
+msgstr "Prenos je bil zaprt."
+
 msgid "Failed to open the file"
-msgstr "Datoteke '%s' ni mogoče odpreti: %s"
+msgstr "Datoteke ni mogoče odpreti"
 
 msgid "Failed to open in-band bytestream"
-msgstr ""
+msgstr "Znotraj pasovnega zlogovnega pretoka ni uspelo odpreti"
 
 #, c-format
 msgid "Unable to send file to %s, user does not support file transfers"
@@ -5459,28 +5471,20 @@
 msgstr "Overjanje Windows Live ID: Neveljaven odziv"
 
 #, c-format
-msgid "%s is not a valid group."
-msgstr "%s ni veljavna skupina."
-
-msgid "Unknown error."
-msgstr "Neznana napaka."
-
-#, c-format
-msgid "%s on %s (%s)"
-msgstr "%s na %s (%s)"
-
-#, c-format
 msgid "%s just sent you a Nudge!"
 msgstr "Uporabnik %s vam je ravnokar pomežiknil!"
 
-#. char *adl = g_strndup(payload, len);
-#, c-format
-msgid "Unknown error (%d)"
+#, fuzzy, c-format
+msgid "Unknown error (%d): %s"
 msgstr "Neznana napaka (%d)"
 
 msgid "Unable to add user"
 msgstr "Ni mogoče dodati uporabnika"
 
+#, c-format
+msgid "Unknown error (%d)"
+msgstr "Neznana napaka (%d)"
+
 msgid "The following users are missing from your addressbook"
 msgstr "Naslednji uporabniki manjkajo v vašem adresarju"
 
@@ -5507,15 +5511,12 @@
 msgid "Service Temporarily Unavailable."
 msgstr "Storitev je trenutno nedosegljiva."
 
+msgid "Unknown error."
+msgstr "Neznana napaka."
+
 msgid "Mobile message was not sent because it was too long."
 msgstr "Mobilnega sporočila ni mogoče poslati, ker je predolgo."
 
-msgid "Unable to rename group"
-msgstr "Skupine ni mogoče preimenovati"
-
-msgid "Unable to delete group"
-msgstr "Skupine ni mogoče izbrisati"
-
 #, c-format
 msgid ""
 "The MSN server will shut down for maintenance in %d minute. You will "
@@ -5670,14 +5671,6 @@
 msgid "Message may have not been sent because an unknown error occurred:"
 msgstr "Sporočila morda ni bilo poslano, ker je prišlo do neznane napake:"
 
-#, c-format
-msgid "%s has added you to his or her buddy list."
-msgstr "%s vas je dodal(a) na svoj seznam prijateljev."
-
-#, c-format
-msgid "%s has removed you from his or her buddy list."
-msgstr "%s vas je odstranil(a) s svojega seznama prijateljev."
-
 msgid "Delete Buddy from Address Book?"
 msgstr "Želite izbrisati prijatelja iz adresarja?"
 
@@ -5707,6 +5700,28 @@
 msgstr "Vtičnik za protokol MSN"
 
 #, c-format
+msgid "%s is not a valid group."
+msgstr "%s ni veljavna skupina."
+
+#, c-format
+msgid "%s on %s (%s)"
+msgstr "%s na %s (%s)"
+
+msgid "Unable to rename group"
+msgstr "Skupine ni mogoče preimenovati"
+
+msgid "Unable to delete group"
+msgstr "Skupine ni mogoče izbrisati"
+
+#, c-format
+msgid "%s has added you to his or her buddy list."
+msgstr "%s vas je dodal(a) na svoj seznam prijateljev."
+
+#, c-format
+msgid "%s has removed you from his or her buddy list."
+msgstr "%s vas je odstranil(a) s svojega seznama prijateljev."
+
+#, c-format
 msgid "No such user: %s"
 msgstr "Uporabnik ne obstaja: %s"
 
@@ -5735,6 +5750,8 @@
 msgstr "Izgubljena povezava s strežnikom"
 
 #. Can't write _()'d strings in array initializers. Workaround.
+#. khc: then use N_() in the array initializer and use _() when they are
+#. used
 msgid "New mail messages"
 msgstr "Nova prejeta sporočila"
 
@@ -7467,30 +7484,26 @@
 msgstr "Opomba"
 
 #. callback
-#, fuzzy
 msgid "Buddy Memo"
-msgstr "Ikona prijatelja"
+msgstr "Zapisek prijatelja"
 
 msgid "Change his/her memo as you like"
-msgstr ""
-
-#, fuzzy
+msgstr "Spremenite njegov/njen zapisek, kakor vam je drago"
+
 msgid "_Modify"
-msgstr "Spremeni"
-
-#, fuzzy
+msgstr "_Spremeni"
+
 msgid "Memo Modify"
-msgstr "Spremeni"
-
-#, fuzzy
+msgstr "Spremeni zapisek"
+
 msgid "Server says:"
-msgstr "Strežnik je zaposlen"
+msgstr "Strežnik pravi:"
 
 msgid "Your request was accepted."
-msgstr ""
+msgstr "Vaša zahteva je bila sprejeta."
 
 msgid "Your request was rejected."
-msgstr ""
+msgstr "Vaša zahteva je bila zavrnjena."
 
 #, c-format
 msgid "%u requires verification"
@@ -7798,14 +7811,13 @@
 msgstr "<p><b>Nori razvijalci obližev</b>:<br>\n"
 
 msgid "<p><b>Acknowledgement</b>:<br>\n"
-msgstr "<b>Zahvala</b>:<br>\n"
-
-#, fuzzy
+msgstr "<b>Zahvale</b>:<br>\n"
+
 msgid "<p><b>Scrupulous Testers</b>:<br>\n"
-msgstr "<p><b>Prvotni avtor</b>:<br>\n"
+msgstr "<p><b>Tankovestni preizkuševalci</b>:<br>\n"
 
 msgid "and more, please let me know... thank you!))"
-msgstr ""
+msgstr "in drugi, prosim, javite se ... hvala!))"
 
 msgid "<p><i>And, all the boys in the backroom...</i><br>\n"
 msgstr "<p><i>In vsi fantje iz ozadja ...</i><br>\n"
@@ -7832,9 +7844,8 @@
 msgid "About OpenQ"
 msgstr "O OpenQ"
 
-#, fuzzy
 msgid "Modify Buddy Memo"
-msgstr "Spremeni naslov"
+msgstr "Spremeni zapisek prijatelja"
 
 #. *< type
 #. *< ui_requirement
@@ -9532,7 +9543,7 @@
 msgstr "%s vam je poslal povabilo s spletno kamero, kar še ni podprto."
 
 msgid "Your SMS was not delivered"
-msgstr ""
+msgstr "Vaš SMS ni bil dostavljen"
 
 msgid "Your Yahoo! message did not get sent."
 msgstr "Vaše sporočilo za Yahoo! ni bilo poslano."
@@ -9557,6 +9568,34 @@
 msgid "Add buddy rejected"
 msgstr "Dodajanje prijatelja zavrnjeno"
 
+#. Some error in the received stream
+#, fuzzy
+msgid "Received invalid data"
+msgstr "Na povezavi s strežnikom prejeti neveljavni podatki."
+
+#. Password incorrect
+#, fuzzy
+msgid "Incorrect Password"
+msgstr "Neveljavno geslo"
+
+#. security lock from too many failed login attempts
+msgid "Account locked: Too many failed login attempts"
+msgstr ""
+
+#. the username does not exist
+#, fuzzy
+msgid "Username does not exist"
+msgstr "Uporabnik ne obstaja"
+
+#. indicates a lock of some description
+msgid "Account locked: See the debug log"
+msgstr ""
+
+#. username or password missing
+#, fuzzy
+msgid "Username or password missing"
+msgstr "Neveljavno uporabniško ime ali geslo"
+
 #, c-format
 msgid ""
 "The Yahoo server has requested the use of an unrecognized authentication "
@@ -10265,12 +10304,13 @@
 msgid "Unable to connect to %s: %s"
 msgstr "Napaka pri povezovanju z %s: %s"
 
-#, fuzzy, c-format
+#, c-format
 msgid ""
 "Unable to connect to %s: Server requires TLS/SSL, but no TLS/SSL support was "
 "found."
 msgstr ""
-"Strežnik zahteva TLS/SSL za prijavo. Podpore za TLS/SSL ni mogoče najti."
+"Povezava z %s ni uspela: strežnik zahteva TLS/SSL za prijavo, vendar podpore "
+"za TLS/SSL ni mogoče najti."
 
 #, c-format
 msgid " - %s"
@@ -10309,13 +10349,13 @@
 msgid "Error Reading %s"
 msgstr "Napaka pri branju %s"
 
-#, fuzzy, c-format
+#, c-format
 msgid ""
 "An error was encountered reading your %s.  The file has not been loaded, and "
 "the old file has been renamed to %s~."
 msgstr ""
-"Pri branju vašega %s je prišlo do napake, zato ni bil naložen. Stara "
-"datoteka se je preimenovala v %s~."
+"Pri branju vašega %s je prišlo do napake. Datoteka ni bial naložena, stara "
+"datoteka pa je bila preimenovana v %s~."
 
 msgid "Internet Messenger"
 msgstr "Spletni sel"
@@ -10422,9 +10462,8 @@
 msgid "Create _this new account on the server"
 msgstr "_Ustvari ta nov račun na strežniku"
 
-#, fuzzy
 msgid "_Proxy"
-msgstr "Posredovalni strežnik"
+msgstr "_Posredovalni strežnik"
 
 msgid "Enabled"
 msgstr "Omogočen"
@@ -10475,16 +10514,17 @@
 msgid "Please update the necessary fields."
 msgstr "Prosimo, posodobite potrebna polja."
 
-msgid "Room _List"
-msgstr "Se_znam sob"
+#, fuzzy
+msgid "A_ccount"
+msgstr "Ra_čun:"
 
 msgid ""
 "Please enter the appropriate information about the chat you would like to "
 "join.\n"
 msgstr "Vnesite ustrezne informacije o pomenku, ki se mu želite pridružiti.\n"
 
-msgid "_Account:"
-msgstr "_Račun:"
+msgid "Room _List"
+msgstr "Se_znam sob"
 
 msgid "_Block"
 msgstr "_Zavrni"
@@ -10501,16 +10541,14 @@
 msgid "I_M"
 msgstr "_Sporoči"
 
-#, fuzzy
 msgid "_Audio Call"
-msgstr "_Dodaj pomenek"
+msgstr "_Zvočni klic"
 
 msgid "Audio/_Video Call"
-msgstr ""
-
-#, fuzzy
+msgstr "Zvočni/_video klic"
+
 msgid "_Video Call"
-msgstr "Video.pomenek"
+msgstr "_Video klic"
 
 msgid "_Send File..."
 msgstr "_Pošlji datoteko ..."
@@ -10647,9 +10685,8 @@
 msgid "/Tools/_Certificates"
 msgstr "/Orodja/_Digitalna potrdila"
 
-#, fuzzy
 msgid "/Tools/Custom Smile_ys"
-msgstr "/Orodja/Smej_ček"
+msgstr "/Orodja/Smejč_ki po meri"
 
 msgid "/Tools/Plu_gins"
 msgstr "/Orodja/Vtični_ki"
@@ -10780,7 +10817,7 @@
 msgstr "po stanju"
 
 msgid "By recent log activity"
-msgstr ""
+msgstr "po zadnji dejavnosti"
 
 #, c-format
 msgid "%s disconnected"
@@ -10797,7 +10834,7 @@
 msgstr "Ponovno omogoči"
 
 msgid "SSL FAQs"
-msgstr ""
+msgstr "Pogosta vprašanja o SSL"
 
 msgid "Welcome back!"
 msgstr "Dobrodošli nazaj!"
@@ -11019,21 +11056,17 @@
 msgid "/Conversation/Clea_r Scrollback"
 msgstr "/Pogovor/Po_čisti pogovor"
 
-#, fuzzy
 msgid "/Conversation/M_edia"
-msgstr "/Pogovor/_Več"
-
-#, fuzzy
+msgstr "/Pogovor/M_ediji"
+
 msgid "/Conversation/Media/_Audio Call"
-msgstr "/Pogovor/_Več"
-
-#, fuzzy
+msgstr "/Pogovor/Mediji/_Zvočni klic"
+
 msgid "/Conversation/Media/_Video Call"
-msgstr "/Pogovor/_Več"
-
-#, fuzzy
+msgstr "/Pogovor/Mediji/_Video klic"
+
 msgid "/Conversation/Media/Audio\\/Video _Call"
-msgstr "/Pogovor/Pokaži _dnevnik ..."
+msgstr "/Pogovor/Mediji/Zvočni\\/Video _klic"
 
 msgid "/Conversation/Se_nd File..."
 msgstr "/Pogovor/_Pošlji datoteko ..."
@@ -11107,17 +11140,14 @@
 msgid "/Conversation/View Log"
 msgstr "/Pogovor/Pokaži dnevnik"
 
-#, fuzzy
 msgid "/Conversation/Media/Audio Call"
-msgstr "/Pogovor/Več"
-
-#, fuzzy
+msgstr "/Pogovor/Mediji/Zvočni klic"
+
 msgid "/Conversation/Media/Video Call"
-msgstr "/Pogovor/Pokaži dnevnik"
-
-#, fuzzy
+msgstr "/Pogovor/Mediji/Video klic"
+
 msgid "/Conversation/Media/Audio\\/Video Call"
-msgstr "/Pogovor/Več"
+msgstr "/Pogovor/Mediji/Zvočni\\/Video klic"
 
 msgid "/Conversation/Send File..."
 msgstr "/Pogovor/Pošlji datoteko ..."
@@ -11304,7 +11334,7 @@
 msgstr "Ka-Hing Čung"
 
 msgid "voice and video"
-msgstr ""
+msgstr "glas in video"
 
 msgid "support"
 msgstr "podpora"
@@ -11445,9 +11475,8 @@
 msgid "Ubuntu Georgian Translators"
 msgstr "gruzijski prevajalci za Ubuntu"
 
-#, fuzzy
 msgid "Khmer"
-msgstr "Drugo"
+msgstr "kmersko"
 
 msgid "Kannada"
 msgstr "kannadsko"
@@ -11959,11 +11988,9 @@
 msgid "Save Image"
 msgstr "Shrani sliko"
 
-#, c-format
 msgid "_Save Image..."
 msgstr "_Shrani sliko ..."
 
-#, c-format
 msgid "_Add Custom Smiley..."
 msgstr "_Dodaj smejčka po meri ..."
 
@@ -12163,7 +12190,7 @@
 msgid "%s %s. Try `%s -h' for more information.\n"
 msgstr "%s %s. Poskusite `%s -h' za več informacij.\n"
 
-#, fuzzy, c-format
+#, c-format
 msgid ""
 "%s %s\n"
 "Usage: %s [OPTION]...\n"
@@ -12185,6 +12212,7 @@
 "\n"
 "  -c, --config=DIR    uporabi DIR za nastavitvene datoteke\n"
 "  -d, --debug         izpiši sporočila za razhroščevanje na stdout\n"
+"  -f, --force-online  vsili povezanost ne glede na stanje omrežja\n"
 "  -h, --help          izpiši to pomoč in končaj program\n"
 "  -m, --multiple      ne dovoljuj le enega zagnanega programa\n"
 "  -n, --nologin       brez samodejne prijave\n"
@@ -12194,7 +12222,7 @@
 "  --display=DISPLAY   zaslon X, ki naj bo uporabljen\n"
 "  -v, --version       izpiši trenutno različico in zapri program\n"
 
-#, fuzzy, c-format
+#, c-format
 msgid ""
 "%s %s\n"
 "Usage: %s [OPTION]...\n"
@@ -12215,6 +12243,7 @@
 "\n"
 "  -c, --config=DIR    uporabi DIR za nastavitvene datoteke\n"
 "  -d, --debug         izpiši sporočila za razhroščevanje na stdout\n"
+"  -f, --force-online  vsili povezanost ne glede na stanje omrežja\n"
 "  -h, --help          izpiši to pomoč in končaj program\n"
 "  -m, --multiple      ne dovoljuj le enega zagnanega programa\n"
 "  -n, --nologin       brez samodejne prijave\n"
@@ -12260,22 +12289,21 @@
 msgstr "Program se bo zaprl, ker je že zagnan drug odjemalec libpurple.\n"
 
 msgid "/_Media"
-msgstr ""
+msgstr "/_Mediji"
 
 msgid "/Media/_Hangup"
-msgstr ""
-
-#, fuzzy
+msgstr "/Mediji/_Odloži"
+
 msgid "Calling..."
-msgstr "Preračunavanje ..."
+msgstr "Klicanje ..."
 
 #, c-format
 msgid "%s wishes to start an audio/video session with you."
-msgstr ""
+msgstr "%s želi z vami začeti zvočno/video sejo."
 
 #, c-format
 msgid "%s wishes to start a video session with you."
-msgstr ""
+msgstr "%s želi z vami začeti video sejo."
 
 #, c-format
 msgid "%s has %d new message."
@@ -12316,20 +12344,18 @@
 msgid "<span weight=\"bold\" size=\"larger\">You have mail!</span>"
 msgstr "<span weight=\"bold\" size=\"larger\">Dobili ste pošto!</span>"
 
-#, fuzzy
 msgid "New Pounces"
-msgstr "Novo opozorilo prijatelja"
+msgstr "Nova opozorila prijatelja"
 
 msgid "Dismiss"
-msgstr ""
-
-#, fuzzy
+msgstr "Opusti"
+
 msgid "<span weight=\"bold\" size=\"larger\">You have pounced!</span>"
-msgstr "<span weight=\"bold\" size=\"larger\">Dobili ste pošto!</span>"
-
-#, fuzzy
+msgstr ""
+"<span weight=\"bold\" size=\"larger\">Dobili ste opozorilo prijatelja!</span>"
+
 msgid "No message"
-msgstr "Neznano sporočilo"
+msgstr "Ni sporočil"
 
 msgid "The following plugins will be unloaded."
 msgstr "Odloženi bodo naslednji vtičniki."
@@ -12379,14 +12405,16 @@
 msgid "Select a file"
 msgstr "Izberi datoteko"
 
-#, fuzzy
 msgid "Modify Buddy Pounce"
-msgstr "Uredi opozorilo prijatelja"
+msgstr "Spremeni opozorilo prijatelja"
 
 #. Create the "Pounce on Whom" frame.
 msgid "Pounce on Whom"
 msgstr "Opozori koga"
 
+msgid "_Account:"
+msgstr "_Račun:"
+
 msgid "_Buddy name:"
 msgstr "_Ime prijatelja:"
 
@@ -12453,49 +12481,49 @@
 msgid "Pounce Target"
 msgstr "Tarča opozorila"
 
-#, fuzzy, c-format
+#, c-format
 msgid "Started typing"
-msgstr "začne tipkati"
-
-#, fuzzy, c-format
+msgstr "Začel je tipkati"
+
+#, c-format
 msgid "Paused while typing"
-msgstr "postane med tipkanjem"
-
-#, fuzzy, c-format
+msgstr "Postal je med tipkanjem"
+
+#, c-format
 msgid "Signed on"
-msgstr "se prijavi"
-
-#, fuzzy, c-format
+msgstr "Prijavil se je"
+
+#, c-format
 msgid "Returned from being idle"
-msgstr "%s je spet dejaven (%s)"
-
-#, fuzzy, c-format
+msgstr "Postal je spet dejaven"
+
+#, c-format
 msgid "Returned from being away"
-msgstr "se vrne iz odsotnosti"
-
-#, fuzzy, c-format
+msgstr "Vrnil se je iz odsotnosti"
+
+#, c-format
 msgid "Stopped typing"
-msgstr "Prenehal tipkati"
-
-#, fuzzy, c-format
+msgstr "Prenehal je tipkati"
+
+#, c-format
 msgid "Signed off"
-msgstr "se odjavi"
-
-#, fuzzy, c-format
+msgstr "Odjavil se je"
+
+#, c-format
 msgid "Became idle"
-msgstr "postane nedejaven"
-
-#, fuzzy, c-format
+msgstr "Postal je nedejaven"
+
+#, c-format
 msgid "Went away"
-msgstr "ob odsotnosti"
-
-#, fuzzy, c-format
+msgstr "Odšel je"
+
+#, c-format
 msgid "Sent a message"
-msgstr "Pošlji sporočilo"
-
-#, fuzzy, c-format
+msgstr "Poslal je sporočilo"
+
+#, c-format
 msgid "Unknown.... Please report this!"
-msgstr "Neznan dogodek opozorila. Poročajte o tem!"
+msgstr "Neznano ... Poročajte o tem!"
 
 msgid "Smiley theme failed to unpack."
 msgstr "Teme smejčkov ni mogoče razpakirati."
@@ -12520,9 +12548,8 @@
 msgstr "_Zapri pomenke s tipko Esc"
 
 #. Buddy List Themes
-#, fuzzy
 msgid "Buddy List Theme"
-msgstr "Seznam prijateljev"
+msgstr "Tema seznama prijateljev"
 
 #. System Tray
 msgid "System Tray Icon"
@@ -12661,7 +12688,7 @@
 
 #. TURN server
 msgid "Relay Server (TURN)"
-msgstr ""
+msgstr "Relejski strežnik (TURN)"
 
 msgid "Proxy Server &amp; Browser"
 msgstr "Posredovalni strežnik in brskalnik"
@@ -13023,12 +13050,10 @@
 msgid "Please provide a shortcut to associate with the smiley."
 msgstr "Podajte tipke za bližnjico, ki bodo povezane s smejčkom."
 
-#, fuzzy, c-format
+#, c-format
 msgid ""
 "A custom smiley for '%s' already exists.  Please use a different shortcut."
-msgstr ""
-"Smejček po meri za izbrano kombinacijo tipk že obstaja. Navedite druge tipke "
-"za bližnjico."
+msgstr "Smejček po meri za '%s' že obstaja. Navedite druge tipke za bližnjico."
 
 msgid "Duplicate Shortcut"
 msgstr "Podvojena tipka za bližnjico"
@@ -13042,25 +13067,26 @@
 msgid "Add Smiley"
 msgstr "Dodaj smejčka"
 
-#, fuzzy
 msgid "_Image:"
-msgstr "Sl_ika"
+msgstr "Sl_ika:"
 
 #. Shortcut text
-#, fuzzy
 msgid "S_hortcut text:"
-msgstr "Tipke za bližnjico"
+msgstr "_Besedilo za bližnjico:"
 
 msgid "Smiley"
 msgstr "Smejček"
 
-#, fuzzy
 msgid "Shortcut Text"
-msgstr "Tipke za bližnjico"
+msgstr "Besedilo za bližnjico"
 
 msgid "Custom Smiley Manager"
 msgstr "Upravitelj smejčkov po meri"
 
+#, fuzzy
+msgid "Select Buddy Icon"
+msgstr "Izberi prijatelja"
+
 msgid "Click to change your buddyicon for this account."
 msgstr "Kliknite, če želite za ta račun spremeniti ikono prijatelja."
 
@@ -13181,9 +13207,8 @@
 msgstr ""
 "Sliko '%s' ni mogoče naložiti: razlog ni znan, najbrž je datoteka okvarjena"
 
-#, fuzzy
 msgid "_Open Link"
-msgstr "_Odpri povezavo v:"
+msgstr "_Odpri povezavo"
 
 msgid "_Copy Link Location"
 msgstr "_Kopiraj lokacijo povezave"
@@ -14832,9 +14857,6 @@
 #~ "prijateljev. Vnesete lahko tudi psevdonim ali vzdevek prijatelja. Kjer bo "
 #~ "izvedljivo, bo namesto pojavnega imena prikazan vzdevek.\n"
 
-#~ msgid "A_ccount:"
-#~ msgstr "Ra_čun:"
-
 #~ msgid "Pounce only when my status is not available"
 #~ msgstr "Opozori le tedaj, ko moje stanje ni na voljo"
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/po/sw.po	Mon Jun 08 18:28:31 2009 +0000
@@ -0,0 +1,13972 @@
+# Copyright (C) 2009
+# This file is distributed under the same license as the Pidgin package.
+# , 2009.
+msgid ""
+msgstr ""
+"Project-Id-Version: pidgin\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2009-05-26 19:54-0700\n"
+"PO-Revision-Date: 2009-04-16 22:24+0300\n"
+"Last-Translator: \n"
+"Language-Team: American English <kde-i18n-doc@lists.kde.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Generator: Lokalize 0.2\n"
+
+#. Translators may want to transliterate the name.
+#. It is not to be translated.
+#, fuzzy
+msgid "Finch"
+msgstr "Maliza"
+
+#, fuzzy, c-format
+msgid "%s. Try `%s -h' for more information.\n"
+msgstr "\n"
+
+#, c-format
+msgid ""
+"%s\n"
+"Usage: %s [OPTION]...\n"
+"\n"
+"  -c, --config=DIR    use DIR for config files\n"
+"  -d, --debug         print debugging messages to stderr\n"
+"  -h, --help          display this help and exit\n"
+"  -n, --nologin       don't automatically login\n"
+"  -v, --version       display the current version and exit\n"
+msgstr ""
+
+#, c-format
+msgid ""
+"%s encountered errors migrating your settings from %s to %s. Please "
+"investigate and complete the migration by hand. Please report this error at "
+"http://developer.pidgin.im"
+msgstr ""
+
+msgid "Error"
+msgstr "Hitikafu "
+
+msgid "Account was not added"
+msgstr ""
+
+msgid "Username of an account must be non-empty."
+msgstr "Jina la mtumiaji haliwezi kuwa wazi "
+
+#, fuzzy
+msgid "New mail notifications"
+msgstr "Arifisho la Jumla"
+
+#, fuzzy
+msgid "Remember password"
+msgstr "Ingiza tena nywila:"
+
+msgid "There are no protocol plugins installed."
+msgstr ""
+
+msgid "(You probably forgot to 'make install'.)"
+msgstr ""
+
+msgid "Modify Account"
+msgstr ""
+
+msgid "New Account"
+msgstr ""
+
+#, fuzzy
+msgid "Protocol:"
+msgstr "Itifaki"
+
+#, fuzzy
+msgid "Username:"
+msgstr "Jina la mtumiaji"
+
+msgid "Password:"
+msgstr "Nywila:"
+
+msgid "Alias:"
+msgstr ""
+
+#. Register checkbox
+msgid "Create this account on the server"
+msgstr ""
+
+#. Cancel button
+#. Cancel
+msgid "Cancel"
+msgstr "Ghairi"
+
+#. Save button
+#. Save
+msgid "Save"
+msgstr "Hifadhi"
+
+#, fuzzy, c-format
+msgid "Are you sure you want to delete %s?"
+msgstr "Una uhakika unataka kufuta ithibati yako?"
+
+#, fuzzy
+msgid "Delete Account"
+msgstr "Futa mwenyeji"
+
+#. Delete button
+#, fuzzy
+msgid "Delete"
+msgstr "&Futa"
+
+msgid "Accounts"
+msgstr ""
+
+msgid "You can enable/disable accounts from the following list."
+msgstr ""
+
+#. Add button
+msgid "Add"
+msgstr "Ongeza"
+
+#. Modify button
+#, fuzzy
+msgid "Modify"
+msgstr "R&ekebisha"
+
+#, c-format
+msgid "%s%s%s%s has made %s his or her buddy%s%s"
+msgstr ""
+
+msgid "Add buddy to your list?"
+msgstr ""
+
+#, c-format
+msgid "%s%s%s%s wants to add %s to his or her buddy list%s%s"
+msgstr ""
+
+msgid "Authorize buddy?"
+msgstr ""
+
+#, fuzzy
+msgid "Authorize"
+msgstr "Mamlaka"
+
+msgid "Deny"
+msgstr "Kataa"
+
+#, c-format
+msgid ""
+"Online: %d\n"
+"Total: %d"
+msgstr ""
+
+#, c-format
+msgid "Account: %s (%s)"
+msgstr ""
+
+#, c-format
+msgid ""
+"\n"
+"Last Seen: %s ago"
+msgstr ""
+
+#, fuzzy
+msgid "Default"
+msgstr "chaguo-msingi"
+
+msgid "You must provide a username for the buddy."
+msgstr ""
+
+msgid "You must provide a group."
+msgstr ""
+
+msgid "You must select an account."
+msgstr ""
+
+msgid "The selected account is not online."
+msgstr ""
+
+msgid "Error adding buddy"
+msgstr ""
+
+msgid "Username"
+msgstr "Jina la mtumiaji"
+
+#, fuzzy
+msgid "Alias (optional)"
+msgstr "&Barua pepe (Uchaguzi):"
+
+msgid "Add in group"
+msgstr ""
+
+msgid "Account"
+msgstr ""
+
+msgid "Add Buddy"
+msgstr ""
+
+msgid "Please enter buddy information."
+msgstr ""
+
+#, fuzzy
+msgid "Chats"
+msgstr "Chad"
+
+#. Extract their Name and put it in
+msgid "Name"
+msgstr "Jina"
+
+msgid "Alias"
+msgstr ""
+
+msgid "Group"
+msgstr ""
+
+msgid "Auto-join"
+msgstr ""
+
+msgid "Add Chat"
+msgstr ""
+
+msgid "You can edit more information from the context menu later."
+msgstr ""
+
+#, fuzzy
+msgid "Error adding group"
+msgstr "Hitilafu katika Kutuma Taarifa"
+
+msgid "You must give a name for the group to add."
+msgstr ""
+
+msgid "Add Group"
+msgstr ""
+
+msgid "Enter the name of the group"
+msgstr ""
+
+msgid "Edit Chat"
+msgstr ""
+
+msgid "Please Update the necessary fields."
+msgstr ""
+
+#, fuzzy
+msgid "Edit"
+msgstr "&Hariri"
+
+#, fuzzy
+msgid "Edit Settings"
+msgstr "Vipimo"
+
+#, fuzzy
+msgid "Information"
+msgstr "Taarifa Zaidi"
+
+msgid "Retrieving..."
+msgstr ""
+
+msgid "Get Info"
+msgstr ""
+
+msgid "Add Buddy Pounce"
+msgstr ""
+
+#, fuzzy
+msgid "Send File"
+msgstr "Tuma Kwa:"
+
+msgid "Blocked"
+msgstr "Imezuiliwa"
+
+msgid "Show when offline"
+msgstr ""
+
+#, c-format
+msgid "Please enter the new name for %s"
+msgstr ""
+
+#, fuzzy
+msgid "Rename"
+msgstr "&Badili jina"
+
+msgid "Set Alias"
+msgstr ""
+
+msgid "Enter empty string to reset the name."
+msgstr ""
+
+msgid "Removing this contact will also remove all the buddies in the contact"
+msgstr ""
+
+msgid "Removing this group will also remove all the buddies in the group"
+msgstr ""
+
+#, fuzzy, c-format
+msgid "Are you sure you want to remove %s?"
+msgstr "Una uhakika unataka kuondoa nywila zote?"
+
+#. XXX: anything to do with the returned ui-handle?
+#, fuzzy
+msgid "Confirm Remove"
+msgstr "Thibitisha kufunga"
+
+msgid "Remove"
+msgstr "Ondoa"
+
+#. Buddy List
+msgid "Buddy List"
+msgstr ""
+
+msgid "Place tagged"
+msgstr ""
+
+msgid "Toggle Tag"
+msgstr ""
+
+msgid "View Log"
+msgstr ""
+
+#. General
+msgid "Nickname"
+msgstr ""
+
+#. Never know what those translations might end up like...
+#. Idle stuff
+msgid "Idle"
+msgstr ""
+
+msgid "On Mobile"
+msgstr ""
+
+msgid "New..."
+msgstr ""
+
+msgid "Saved..."
+msgstr ""
+
+msgid "Plugins"
+msgstr "Programu tumizi"
+
+msgid "Block/Unblock"
+msgstr ""
+
+msgid "Block"
+msgstr "Zuia"
+
+msgid "Unblock"
+msgstr ""
+
+msgid ""
+"Please enter the username or alias of the person you would like to Block/"
+"Unblock."
+msgstr ""
+
+#. Not multiline
+#. Not masked?
+#. No hints?
+msgid "OK"
+msgstr "Sawa"
+
+msgid "New Instant Message"
+msgstr ""
+
+msgid "Please enter the username or alias of the person you would like to IM."
+msgstr ""
+
+#, fuzzy
+msgid "Channel"
+msgstr "Ghairi"
+
+msgid "Join a Chat"
+msgstr ""
+
+msgid "Please enter the name of the chat you want to join."
+msgstr ""
+
+msgid "Join"
+msgstr ""
+
+msgid ""
+"Please enter the username or alias of the person whose log you would like to "
+"view."
+msgstr ""
+
+#. Create the "Options" frame.
+msgid "Options"
+msgstr "Machaguo"
+
+msgid "Send IM..."
+msgstr ""
+
+msgid "Block/Unblock..."
+msgstr ""
+
+msgid "Join Chat..."
+msgstr ""
+
+msgid "View Log..."
+msgstr ""
+
+msgid "View All Logs"
+msgstr ""
+
+#, fuzzy
+msgid "Show"
+msgstr "Onyesha:"
+
+msgid "Empty groups"
+msgstr ""
+
+#, fuzzy
+msgid "Offline buddies"
+msgstr "Namna ya Nje ya mkondo"
+
+#, fuzzy
+msgid "Sort"
+msgstr "&Panga"
+
+#, fuzzy
+msgid "By Status"
+msgstr "Hali"
+
+msgid "Alphabetically"
+msgstr ""
+
+msgid "By Log Size"
+msgstr ""
+
+msgid "Buddy"
+msgstr ""
+
+#, fuzzy
+msgid "Chat"
+msgstr "Chad"
+
+#, fuzzy
+msgid "Grouping"
+msgstr "Hakuna Mpangilio"
+
+#, fuzzy
+msgid "Certificate Import"
+msgstr "Hati ina"
+
+msgid "Specify a hostname"
+msgstr ""
+
+msgid "Type the host name this certificate is for."
+msgstr ""
+
+#, c-format
+msgid ""
+"File %s could not be imported.\n"
+"Make sure that the file is readable and in PEM format.\n"
+msgstr ""
+
+msgid "Certificate Import Error"
+msgstr ""
+
+msgid "X.509 certificate import failed"
+msgstr ""
+
+#, fuzzy
+msgid "Select a PEM certificate"
+msgstr "Teua Ithibati"
+
+#, c-format
+msgid ""
+"Export to file %s failed.\n"
+"Check that you have write permission to the target path\n"
+msgstr ""
+
+#, fuzzy
+msgid "Certificate Export Error"
+msgstr "Ithibati Ipo"
+
+msgid "X.509 certificate export failed"
+msgstr ""
+
+#, fuzzy
+msgid "PEM X.509 Certificate Export"
+msgstr "X.509 Ithibati (PEM)"
+
+#, fuzzy, c-format
+msgid "Certificate for %s"
+msgstr "Hati ina"
+
+#, c-format
+msgid ""
+"Common name: %s\n"
+"\n"
+"SHA1 fingerprint:\n"
+"%s"
+msgstr ""
+
+#, fuzzy
+msgid "SSL Host Certificate"
+msgstr "Ithibati SSL ya Mteja"
+
+#, c-format
+msgid "Really delete certificate for %s?"
+msgstr ""
+
+msgid "Confirm certificate delete"
+msgstr ""
+
+msgid "Certificate Manager"
+msgstr "Meneja Ithibati"
+
+#. Creating the user splits
+msgid "Hostname"
+msgstr ""
+
+#, fuzzy
+msgid "Info"
+msgstr "Taarifa:"
+
+#. Close button
+msgid "Close"
+msgstr "Funga"
+
+#, fuzzy, c-format
+msgid "%s (%s)"
+msgstr "%S (%S)"
+
+#, c-format
+msgid "%s disconnected."
+msgstr ""
+
+#, c-format
+msgid ""
+"%s\n"
+"\n"
+"Finch will not attempt to reconnect the account until you correct the error "
+"and re-enable the account."
+msgstr ""
+
+msgid "Re-enable Account"
+msgstr ""
+
+msgid ""
+"The account has disconnected and you are no longer in this chat. You will be "
+"automatically rejoined in the chat when the account reconnects."
+msgstr ""
+
+msgid "No such command."
+msgstr ""
+
+msgid "Syntax Error:  You typed the wrong number of arguments to that command."
+msgstr ""
+
+msgid "Your command failed for an unknown reason."
+msgstr ""
+
+msgid "That command only works in chats, not IMs."
+msgstr ""
+
+msgid "That command only works in IMs, not chats."
+msgstr ""
+
+msgid "That command doesn't work on this protocol."
+msgstr ""
+
+msgid "Message was not sent, because you are not signed on."
+msgstr ""
+
+#, c-format
+msgid "%s (%s -- %s)"
+msgstr ""
+
+#, c-format
+msgid "%s [%s]"
+msgstr ""
+
+#, c-format
+msgid ""
+"\n"
+"%s is typing..."
+msgstr ""
+
+msgid "You have left this chat."
+msgstr ""
+
+msgid "Logging started. Future messages in this conversation will be logged."
+msgstr ""
+
+msgid ""
+"Logging stopped. Future messages in this conversation will not be logged."
+msgstr ""
+
+#, fuzzy
+msgid "Send To"
+msgstr "Tuma kwa:"
+
+#, fuzzy
+msgid "Conversation"
+msgstr "Unganisho"
+
+msgid "Clear Scrollback"
+msgstr ""
+
+#, fuzzy
+msgid "Show Timestamps"
+msgstr "Onyesha Ufafanuzi"
+
+msgid "Add Buddy Pounce..."
+msgstr ""
+
+msgid "Invite..."
+msgstr ""
+
+msgid "Enable Logging"
+msgstr ""
+
+msgid "Enable Sounds"
+msgstr ""
+
+msgid "<AUTO-REPLY> "
+msgstr ""
+
+#, c-format
+msgid "List of %d user:\n"
+msgid_plural "List of %d users:\n"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Supported debug options are:  version"
+msgstr ""
+
+msgid "No such command (in this context)."
+msgstr ""
+
+msgid ""
+"Use \"/help &lt;command&gt;\" for help on a specific command.\n"
+"The following commands are available in this context:\n"
+msgstr ""
+
+#, c-format
+msgid ""
+"%s is not a valid message class. See '/help msgcolor' for valid message "
+"classes."
+msgstr ""
+
+#, c-format
+msgid "%s is not a valid color. See '/help msgcolor' for valid colors."
+msgstr ""
+
+msgid ""
+"say &lt;message&gt;:  Send a message normally as if you weren't using a "
+"command."
+msgstr ""
+
+msgid "me &lt;action&gt;:  Send an IRC style action to a buddy or chat."
+msgstr ""
+
+msgid ""
+"debug &lt;option&gt;:  Send various debug information to the current "
+"conversation."
+msgstr ""
+
+msgid "clear: Clears the conversation scrollback."
+msgstr ""
+
+msgid "help &lt;command&gt;:  Help on a specific command."
+msgstr ""
+
+msgid "users:  Show the list of users in the chat."
+msgstr ""
+
+msgid "plugins: Show the plugins window."
+msgstr ""
+
+msgid "buddylist: Show the buddylist."
+msgstr ""
+
+msgid "accounts: Show the accounts window."
+msgstr ""
+
+msgid "debugwin: Show the debug window."
+msgstr ""
+
+msgid "prefs: Show the preference window."
+msgstr ""
+
+msgid "statuses: Show the savedstatuses window."
+msgstr ""
+
+msgid ""
+"msgcolor &lt;class&gt; &lt;foreground&gt; &lt;background&gt;: Set the color "
+"for different classes of messages in the conversation window.<br>    &lt;"
+"class&gt;: receive, send, highlight, action, timestamp<br>    &lt;foreground/"
+"background&gt;: black, red, green, blue, white, gray, darkgray, magenta, "
+"cyan, default<br><br>EXAMPLE:<br>    msgcolor send cyan default"
+msgstr ""
+
+#, fuzzy
+msgid "Unable to open file."
+msgstr "Nimeshindwa Kusasisha"
+
+#, fuzzy
+msgid "Debug Window"
+msgstr "Dirisha Jipya"
+
+#. XXX: Setting the GROW_Y for the following widgets don't make sense. But right now
+#. * it's necessary to make the width of the debug window resizable ... like I said,
+#. * it doesn't make sense. The bug is likely in the packing in gntbox.c.
+#.
+#, fuzzy
+msgid "Clear"
+msgstr "&Safisha"
+
+#, fuzzy
+msgid "Filter:"
+msgstr "Ch&uja:"
+
+msgid "Pause"
+msgstr "Simamisha"
+
+#, c-format
+msgid "File Transfers - %d%% of %d file"
+msgid_plural "File Transfers - %d%% of %d files"
+msgstr[0] ""
+msgstr[1] ""
+
+#. Create the window.
+msgid "File Transfers"
+msgstr ""
+
+#, fuzzy
+msgid "Progress"
+msgstr "Hatua:"
+
+#, fuzzy
+msgid "Filename"
+msgstr "Jina la faili:"
+
+msgid "Size"
+msgstr "Saizi"
+
+#, fuzzy
+msgid "Speed"
+msgstr "Kilishi mkono"
+
+#, fuzzy
+msgid "Remaining"
+msgstr "#1 imebakia"
+
+#. XXX: Use of ggp_str_to_uin() is an ugly hack!
+msgid "Status"
+msgstr "Hali"
+
+msgid "Close this window when all transfers finish"
+msgstr ""
+
+msgid "Clear finished transfers"
+msgstr ""
+
+#, fuzzy
+msgid "Stop"
+msgstr "&Simama"
+
+msgid "Waiting for transfer to begin"
+msgstr ""
+
+msgid "Canceled"
+msgstr "Imeghairishwa"
+
+msgid "Failed"
+msgstr "Imeshindwa"
+
+#, c-format
+msgid "%.2f KiB/s"
+msgstr ""
+
+msgid "Sent"
+msgstr ""
+
+msgid "Received"
+msgstr ""
+
+msgid "Finished"
+msgstr "Imemaliza"
+
+#, c-format
+msgid "The file was saved as %s."
+msgstr ""
+
+#, fuzzy
+msgid "Sending"
+msgstr "kuumbia"
+
+#, fuzzy
+msgid "Receiving"
+msgstr "teremua"
+
+#, c-format
+msgid "Conversation in %s on %s"
+msgstr ""
+
+#, c-format
+msgid "Conversation with %s on %s"
+msgstr ""
+
+#, fuzzy
+msgid "%B %Y"
+msgstr "%S %S"
+
+msgid ""
+"System events will only be logged if the \"Log all status changes to system "
+"log\" preference is enabled."
+msgstr ""
+
+msgid ""
+"Instant messages will only be logged if the \"Log all instant messages\" "
+"preference is enabled."
+msgstr ""
+
+msgid ""
+"Chats will only be logged if the \"Log all chats\" preference is enabled."
+msgstr ""
+
+#, fuzzy
+msgid "No logs were found"
+msgstr "Hakuna masasisho yaliyopatikana."
+
+msgid "Total log size:"
+msgstr ""
+
+#. Search box *********
+msgid "Scroll/Search: "
+msgstr ""
+
+#, c-format
+msgid "Conversations in %s"
+msgstr ""
+
+#, c-format
+msgid "Conversations with %s"
+msgstr ""
+
+msgid "All Conversations"
+msgstr ""
+
+msgid "System Log"
+msgstr ""
+
+msgid "Calling ... "
+msgstr ""
+
+msgid "Hangup"
+msgstr ""
+
+#. Number of actions
+msgid "Accept"
+msgstr ""
+
+#, fuzzy
+msgid "Reject"
+msgstr "Seti upya"
+
+msgid "Call in progress."
+msgstr ""
+
+msgid "The call has been terminated."
+msgstr ""
+
+#, c-format
+msgid "%s wishes to start an audio session with you."
+msgstr ""
+
+#, c-format
+msgid "%s is trying to start an unsupported media session type with you."
+msgstr ""
+
+msgid "You have rejected the call."
+msgstr ""
+
+msgid "call: Make an audio call."
+msgstr ""
+
+#, fuzzy
+msgid "Emails"
+msgstr "Barua pepe"
+
+msgid "You have mail!"
+msgstr ""
+
+#, fuzzy
+msgid "Sender"
+msgstr "Seva"
+
+msgid "Subject"
+msgstr "Mhusika"
+
+#, c-format
+msgid "%s (%s) has %d new message."
+msgid_plural "%s (%s) has %d new messages."
+msgstr[0] ""
+msgstr[1] ""
+
+#, fuzzy
+msgid "New Mail"
+msgstr "Tabo mpya"
+
+#, c-format
+msgid "Info for %s"
+msgstr ""
+
+#, fuzzy
+msgid "Buddy Information"
+msgstr "Fic&ha Taarifa"
+
+msgid "Continue"
+msgstr "Endelea"
+
+msgid "IM"
+msgstr ""
+
+msgid "Invite"
+msgstr ""
+
+msgid "(none)"
+msgstr ""
+
+msgid "URI"
+msgstr "URI"
+
+msgid "ERROR"
+msgstr "HITILAFU"
+
+msgid "loading plugin failed"
+msgstr ""
+
+msgid "unloading plugin failed"
+msgstr ""
+
+#, c-format
+msgid ""
+"Name: %s\n"
+"Version: %s\n"
+"Description: %s\n"
+"Author: %s\n"
+"Website: %s\n"
+"Filename: %s\n"
+msgstr ""
+
+msgid "Plugin need to be loaded before you can configure it."
+msgstr ""
+
+msgid "No configuration options for this plugin."
+msgstr ""
+
+msgid "Error loading plugin"
+msgstr ""
+
+msgid "The selected file is not a valid plugin."
+msgstr ""
+
+msgid ""
+"Please open the debug window and try again to see the exact error message."
+msgstr ""
+
+#, fuzzy
+msgid "Select plugin to install"
+msgstr "Chagua mandhari kusakinisha"
+
+msgid "You can (un)load plugins from the following list."
+msgstr ""
+
+#, fuzzy
+msgid "Install Plugin..."
+msgstr "Usakinishaji Programu-jalizi"
+
+msgid "Configure Plugin"
+msgstr ""
+
+#. copy the preferences to tmp values...
+#. * I liked "take affect immediately" Oh well :-(
+#. (that should have been "effect," right?)
+#. Back to instant-apply! I win!  BU-HAHAHA!
+#. Create the window
+msgid "Preferences"
+msgstr "Mapendekezo"
+
+msgid "Please enter a buddy to pounce."
+msgstr ""
+
+msgid "New Buddy Pounce"
+msgstr ""
+
+msgid "Edit Buddy Pounce"
+msgstr ""
+
+msgid "Pounce Who"
+msgstr ""
+
+#. Account:
+msgid "Account:"
+msgstr ""
+
+msgid "Buddy name:"
+msgstr ""
+
+#. Create the "Pounce When Buddy..." frame.
+msgid "Pounce When Buddy..."
+msgstr ""
+
+msgid "Signs on"
+msgstr ""
+
+msgid "Signs off"
+msgstr ""
+
+msgid "Goes away"
+msgstr ""
+
+msgid "Returns from away"
+msgstr ""
+
+msgid "Becomes idle"
+msgstr ""
+
+msgid "Is no longer idle"
+msgstr ""
+
+msgid "Starts typing"
+msgstr ""
+
+msgid "Pauses while typing"
+msgstr ""
+
+msgid "Stops typing"
+msgstr ""
+
+msgid "Sends a message"
+msgstr ""
+
+#. Create the "Action" frame.
+#, fuzzy
+msgid "Action"
+msgstr "&Tendo"
+
+#, fuzzy
+msgid "Open an IM window"
+msgstr "Fungua dirisha jipya"
+
+msgid "Pop up a notification"
+msgstr ""
+
+msgid "Send a message"
+msgstr ""
+
+msgid "Execute a command"
+msgstr ""
+
+msgid "Play a sound"
+msgstr ""
+
+msgid "Pounce only when my status is not Available"
+msgstr ""
+
+msgid "Recurring"
+msgstr ""
+
+msgid "Cannot create pounce"
+msgstr ""
+
+msgid "You do not have any accounts."
+msgstr ""
+
+msgid "You must create an account first before you can create a pounce."
+msgstr ""
+
+#, fuzzy, c-format
+msgid "Are you sure you want to delete the pounce on %s for %s?"
+msgstr "Je una uhakika uantaka kufuta ithibati hizi?"
+
+msgid "Buddy Pounces"
+msgstr ""
+
+#, c-format
+msgid "%s has started typing to you (%s)"
+msgstr ""
+
+#, c-format
+msgid "%s has paused while typing to you (%s)"
+msgstr ""
+
+#, c-format
+msgid "%s has signed on (%s)"
+msgstr ""
+
+#, c-format
+msgid "%s has returned from being idle (%s)"
+msgstr ""
+
+#, c-format
+msgid "%s has returned from being away (%s)"
+msgstr ""
+
+#, c-format
+msgid "%s has stopped typing to you (%s)"
+msgstr ""
+
+#, c-format
+msgid "%s has signed off (%s)"
+msgstr ""
+
+#, c-format
+msgid "%s has become idle (%s)"
+msgstr ""
+
+#, c-format
+msgid "%s has gone away. (%s)"
+msgstr ""
+
+#, c-format
+msgid "%s has sent you a message. (%s)"
+msgstr ""
+
+msgid "Unknown pounce event. Please report this!"
+msgstr ""
+
+msgid "Based on keyboard use"
+msgstr ""
+
+msgid "From last sent message"
+msgstr ""
+
+#, fuzzy
+msgid "Never"
+msgstr "Seva"
+
+msgid "Show Idle Time"
+msgstr ""
+
+msgid "Show Offline Buddies"
+msgstr ""
+
+msgid "Notify buddies when you are typing"
+msgstr ""
+
+msgid "Log format"
+msgstr ""
+
+#, fuzzy
+msgid "Log IMs"
+msgstr "I&ngia"
+
+msgid "Log chats"
+msgstr ""
+
+msgid "Log status change events"
+msgstr ""
+
+msgid "Report Idle time"
+msgstr ""
+
+#, fuzzy
+msgid "Change status when idle"
+msgstr "&Badili matini ya ufito hali"
+
+msgid "Minutes before changing status"
+msgstr ""
+
+#, fuzzy
+msgid "Change status to"
+msgstr "&Badili matini ya ufito hali"
+
+#, fuzzy
+msgid "Conversations"
+msgstr "Unganisho"
+
+#, fuzzy
+msgid "Logging"
+msgstr "Inapakia"
+
+msgid "You must fill all the required fields."
+msgstr ""
+
+msgid "The required fields are underlined."
+msgstr ""
+
+msgid "Not implemented yet."
+msgstr ""
+
+#, fuzzy
+msgid "Save File..."
+msgstr "&Hifadhi faili"
+
+#, fuzzy
+msgid "Open File..."
+msgstr "Fungua Faili"
+
+msgid "Choose Location..."
+msgstr ""
+
+msgid "Hit 'Enter' to find more rooms of this category."
+msgstr ""
+
+msgid "Get"
+msgstr ""
+
+#. Create the window.
+msgid "Room List"
+msgstr ""
+
+msgid "Buddy logs in"
+msgstr ""
+
+msgid "Buddy logs out"
+msgstr ""
+
+msgid "Message received"
+msgstr ""
+
+msgid "Message received begins conversation"
+msgstr ""
+
+#, fuzzy
+msgid "Message sent"
+msgstr "Ujumbe haujaenda."
+
+msgid "Person enters chat"
+msgstr ""
+
+msgid "Person leaves chat"
+msgstr ""
+
+msgid "You talk in chat"
+msgstr ""
+
+msgid "Others talk in chat"
+msgstr ""
+
+msgid "Someone says your username in chat"
+msgstr ""
+
+msgid "GStreamer Failure"
+msgstr ""
+
+msgid "GStreamer failed to initialize."
+msgstr ""
+
+#, fuzzy
+msgid "(default)"
+msgstr "chaguo-msingi"
+
+msgid "Select Sound File ..."
+msgstr ""
+
+#, fuzzy
+msgid "Sound Preferences"
+msgstr "&Mapendekezo ya Tovuti"
+
+#, fuzzy
+msgid "Profiles"
+msgstr "Mafaili_%S"
+
+msgid "Automatic"
+msgstr ""
+
+msgid "Console Beep"
+msgstr ""
+
+msgid "Command"
+msgstr ""
+
+msgid "No Sound"
+msgstr ""
+
+msgid "Sound Method"
+msgstr ""
+
+msgid "Method: "
+msgstr ""
+
+#, c-format
+msgid ""
+"Sound Command\n"
+"(%s for filename)"
+msgstr ""
+
+#. Sound options
+msgid "Sound Options"
+msgstr ""
+
+msgid "Sounds when conversation has focus"
+msgstr ""
+
+#, fuzzy
+msgid "Always"
+msgstr "Uliza daima"
+
+msgid "Only when available"
+msgstr ""
+
+msgid "Only when not available"
+msgstr ""
+
+msgid "Volume(0-100):"
+msgstr ""
+
+#. Sound events
+msgid "Sound Events"
+msgstr ""
+
+msgid "Event"
+msgstr ""
+
+#, fuzzy
+msgid "File"
+msgstr "Faili:"
+
+#, fuzzy
+msgid "Test"
+msgstr "Matini"
+
+msgid "Reset"
+msgstr "Seti upya"
+
+#, fuzzy
+msgid "Choose..."
+msgstr "Chagua…"
+
+#, fuzzy, c-format
+msgid "Are you sure you want to delete \"%s\""
+msgstr "Una uhakika unataka kufuta ithibati yako?"
+
+#, fuzzy
+msgid "Delete Status"
+msgstr "Futa mwenyeji"
+
+msgid "Saved Statuses"
+msgstr ""
+
+msgid "Title"
+msgstr "Jina"
+
+msgid "Type"
+msgstr "Aina"
+
+#. Statuses are almost all the same. Define a macro to reduce code repetition.
+#. PurpleStatusPrimitive
+#. id - use default
+#. name - use default
+#. saveable
+#. user_settable
+#. not independent
+#. Attributes - each status can have a message.
+msgid "Message"
+msgstr "Ujumbe"
+
+#. Use
+msgid "Use"
+msgstr ""
+
+#, fuzzy
+msgid "Invalid title"
+msgstr "Kizuizi batili"
+
+msgid "Please enter a non-empty title for the status."
+msgstr ""
+
+#, fuzzy
+msgid "Duplicate title"
+msgstr "sifa rudufu"
+
+msgid "Please enter a different title for the status."
+msgstr ""
+
+#, fuzzy
+msgid "Substatus"
+msgstr "Hali"
+
+msgid "Status:"
+msgstr "Hali:"
+
+#, fuzzy
+msgid "Message:"
+msgstr "Ujumbe"
+
+#, fuzzy
+msgid "Edit Status"
+msgstr "Marekani"
+
+msgid "Use different status for following accounts"
+msgstr ""
+
+#. Save & Use
+#, fuzzy
+msgid "Save & Use"
+msgstr "Hifadhi Kama"
+
+msgid "Certificates"
+msgstr "Hati"
+
+msgid "Sounds"
+msgstr ""
+
+#, fuzzy
+msgid "Statuses"
+msgstr "Hali"
+
+msgid "Error loading the plugin."
+msgstr ""
+
+msgid "Couldn't find X display"
+msgstr ""
+
+msgid "Couldn't find window"
+msgstr ""
+
+msgid "This plugin cannot be loaded because it was not built with X11 support."
+msgstr ""
+
+msgid "GntClipboard"
+msgstr ""
+
+msgid "Clipboard plugin"
+msgstr ""
+
+msgid ""
+"When the gnt clipboard contents change, the contents are made available to "
+"X, if possible."
+msgstr ""
+
+#, c-format
+msgid "%s just signed on"
+msgstr ""
+
+#, c-format
+msgid "%s just signed off"
+msgstr ""
+
+#, c-format
+msgid "%s sent you a message"
+msgstr ""
+
+#, c-format
+msgid "%s said your nick in %s"
+msgstr ""
+
+#, c-format
+msgid "%s sent a message in %s"
+msgstr ""
+
+msgid "Buddy signs on/off"
+msgstr ""
+
+msgid "You receive an IM"
+msgstr ""
+
+msgid "Someone speaks in a chat"
+msgstr ""
+
+msgid "Someone says your name in a chat"
+msgstr ""
+
+msgid "Notify with a toaster when"
+msgstr ""
+
+msgid "Beep too!"
+msgstr ""
+
+msgid "Set URGENT for the terminal window."
+msgstr ""
+
+msgid "GntGf"
+msgstr ""
+
+msgid "Toaster plugin"
+msgstr ""
+
+#, c-format
+msgid "<b>Conversation with %s on %s:</b><br>"
+msgstr ""
+
+msgid "History Plugin Requires Logging"
+msgstr ""
+
+msgid ""
+"Logging can be enabled from Tools -> Preferences -> Logging.\n"
+"\n"
+"Enabling logs for instant messages and/or chats will activate history for "
+"the same conversation type(s)."
+msgstr ""
+
+#, fuzzy
+msgid "GntHistory"
+msgstr "Historia"
+
+msgid "Shows recently logged conversations in new conversations."
+msgstr ""
+
+msgid ""
+"When a new conversation is opened this plugin will insert the last "
+"conversation into the current conversation."
+msgstr ""
+
+#, fuzzy
+msgid "Online"
+msgstr "Nenda mkondoni"
+
+msgid "Offline"
+msgstr ""
+
+msgid "Online Buddies"
+msgstr ""
+
+#, fuzzy
+msgid "Offline Buddies"
+msgstr "Namna ya Nje ya mkondo"
+
+msgid "Online/Offline"
+msgstr ""
+
+msgid "Meebo"
+msgstr ""
+
+msgid "No Grouping"
+msgstr "Hakuna Mpangilio"
+
+msgid "Nested Subgroup"
+msgstr ""
+
+msgid "Nested Grouping (experimental)"
+msgstr ""
+
+msgid "Provides alternate buddylist grouping options."
+msgstr ""
+
+msgid "Lastlog"
+msgstr ""
+
+#. Translator Note: The "backlog" is the conversation buffer/history.
+msgid "lastlog: Searches for a substring in the backlog."
+msgstr ""
+
+msgid "GntLastlog"
+msgstr ""
+
+msgid "Lastlog plugin."
+msgstr ""
+
+#, c-format
+msgid ""
+"\n"
+"Fetching TinyURL..."
+msgstr ""
+
+msgid "Only create TinyURL for urls of this length or greater"
+msgstr ""
+
+msgid "TinyURL (or other) address prefix"
+msgstr ""
+
+msgid "TinyURL"
+msgstr ""
+
+msgid "TinyURL plugin"
+msgstr ""
+
+msgid "When receiving a message with URL(s), TinyURL for easier copying"
+msgstr ""
+
+msgid "accounts"
+msgstr ""
+
+msgid "Password is required to sign on."
+msgstr ""
+
+#, fuzzy, c-format
+msgid "Enter password for %s (%s)"
+msgstr "Ingiza nywila kwa ajili ya %1$S kwenye %2$S"
+
+#, fuzzy
+msgid "Enter Password"
+msgstr "Ingiza nywila mpya:"
+
+#, fuzzy
+msgid "Save password"
+msgstr "Nywila Zilizohifadhiwa"
+
+#, c-format
+msgid "Missing protocol plugin for %s"
+msgstr ""
+
+#, fuzzy
+msgid "Connection Error"
+msgstr "Hitilafu ya Sanidi"
+
+msgid "New passwords do not match."
+msgstr ""
+
+msgid "Fill out all fields completely."
+msgstr ""
+
+msgid "Original password"
+msgstr ""
+
+#, fuzzy
+msgid "New password"
+msgstr "Nyilwa mpya:"
+
+#, fuzzy
+msgid "New password (again)"
+msgstr "Nywila mpya (tena):"
+
+#, c-format
+msgid "Change password for %s"
+msgstr ""
+
+msgid "Please enter your current password and your new password."
+msgstr ""
+
+#, c-format
+msgid "Change user information for %s"
+msgstr ""
+
+msgid "Set User Info"
+msgstr ""
+
+msgid "Unknown"
+msgstr "Isiyojulikana"
+
+msgid "Buddies"
+msgstr ""
+
+msgid "buddy list"
+msgstr ""
+
+msgid "(DOES NOT MATCH)"
+msgstr ""
+
+#. Make messages
+#, c-format
+msgid "%s has presented the following certificate for just-this-once use:"
+msgstr ""
+
+#, c-format
+msgid ""
+"Common name: %s %s\n"
+"Fingerprint (SHA1): %s"
+msgstr ""
+
+#. TODO: Find what the handle ought to be
+msgid "Single-use Certificate Verification"
+msgstr ""
+
+#. Scheme name
+#. Pool name
+#, fuzzy
+msgid "Certificate Authorities"
+msgstr "Hatifisha Sera"
+
+#. Scheme name
+#. Pool name
+msgid "SSL Peers Cache"
+msgstr ""
+
+#. Make messages
+#, fuzzy, c-format
+msgid "Accept certificate for %s?"
+msgstr "Rekebisha cheli au ithibati ya uaminifu"
+
+#. TODO: Find what the handle ought to be
+#, fuzzy
+msgid "SSL Certificate Verification"
+msgstr "Kagua Uhalisia wa Hati"
+
+#, fuzzy
+msgid "_View Certificate..."
+msgstr "Angalia Hati"
+
+#. Prompt the user to authenticate the certificate
+#. vrq will be completed by user_auth
+#, c-format
+msgid ""
+"The certificate presented by \"%s\" is self-signed. It cannot be "
+"automatically checked."
+msgstr ""
+
+#, c-format
+msgid "The certificate chain presented for %s is not valid."
+msgstr ""
+
+#. TODO: Make this error either block the ensuing SSL
+#. connection error until the user dismisses this one, or
+#. stifle it.
+#. TODO: Probably wrong.
+#. TODO: Probably wrong
+#, fuzzy
+msgid "SSL Certificate Error"
+msgstr "Mamlaka ya Ithibati SSL"
+
+#, fuzzy
+msgid "Invalid certificate chain"
+msgstr "Hati Thibati"
+
+#. vrq will be completed by user_auth
+msgid ""
+"You have no database of root certificates, so this certificate cannot be "
+"validated."
+msgstr ""
+
+#. vrq will be completed by user_auth
+msgid ""
+"The root certificate this one claims to be issued by is unknown to Pidgin."
+msgstr ""
+
+#, c-format
+msgid ""
+"The certificate chain presented by %s does not have a valid digital "
+"signature from the Certificate Authority from which it claims to have a "
+"signature."
+msgstr ""
+
+msgid "Invalid certificate authority signature"
+msgstr ""
+
+#. Prompt the user to authenticate the certificate
+#. TODO: Provide the user with more guidance about why he is
+#. being prompted
+#. vrq will be completed by user_auth
+#, c-format
+msgid ""
+"The certificate presented by \"%s\" claims to be from \"%s\" instead.  This "
+"could mean that you are not connecting to the service you believe you are."
+msgstr ""
+
+#. Make messages
+#, c-format
+msgid ""
+"Common name: %s\n"
+"\n"
+"Fingerprint (SHA1): %s\n"
+"\n"
+"Activation date: %s\n"
+"Expiration date: %s\n"
+msgstr ""
+
+#. TODO: Find what the handle ought to be
+#, fuzzy
+msgid "Certificate Information"
+msgstr "Kagua Uhalisia wa Hati"
+
+#, fuzzy
+msgid "Registration Error"
+msgstr "Hitilafu ya Sanidi"
+
+#, fuzzy
+msgid "Unregistration Error"
+msgstr "Hitilafu ya Sanidi"
+
+#, c-format
+msgid "+++ %s signed on"
+msgstr ""
+
+#, c-format
+msgid "+++ %s signed off"
+msgstr ""
+
+#. Unknown error
+#. Unknown error!
+msgid "Unknown error"
+msgstr "Hitilafu isiyojulikana"
+
+msgid "Unable to send message: The message is too large."
+msgstr ""
+
+#, c-format
+msgid "Unable to send message to %s."
+msgstr ""
+
+msgid "The message is too large."
+msgstr ""
+
+#, fuzzy
+msgid "Unable to send message."
+msgstr "Haiwezi kuongeza moduli"
+
+msgid "Send Message"
+msgstr ""
+
+msgid "_Send Message"
+msgstr ""
+
+#, c-format
+msgid "%s entered the room."
+msgstr ""
+
+#, c-format
+msgid "%s [<I>%s</I>] entered the room."
+msgstr ""
+
+#, c-format
+msgid "You are now known as %s"
+msgstr ""
+
+#, c-format
+msgid "%s is now known as %s"
+msgstr ""
+
+#, c-format
+msgid "%s left the room."
+msgstr ""
+
+#, c-format
+msgid "%s left the room (%s)."
+msgstr ""
+
+msgid "Invite to chat"
+msgstr ""
+
+#. Put our happy label in it.
+msgid ""
+"Please enter the name of the user you wish to invite, along with an optional "
+"invite message."
+msgstr ""
+
+#, c-format
+msgid "Failed to get connection: %s"
+msgstr ""
+
+#, c-format
+msgid "Failed to get name: %s"
+msgstr ""
+
+#, c-format
+msgid "Failed to get serv name: %s"
+msgstr ""
+
+msgid "Purple's D-BUS server is not running for the reason listed below"
+msgstr ""
+
+#, fuzzy
+msgid "No name"
+msgstr "Jina la DNS"
+
+msgid "Unable to create new resolver process\n"
+msgstr ""
+
+msgid "Unable to send request to resolver process\n"
+msgstr ""
+
+#, c-format
+msgid ""
+"Error resolving %s:\n"
+"%s"
+msgstr ""
+
+#, c-format
+msgid "Error resolving %s: %d"
+msgstr ""
+
+#, c-format
+msgid ""
+"Error reading from resolver process:\n"
+"%s"
+msgstr ""
+
+#, c-format
+msgid "Resolver process exited without answering our request"
+msgstr ""
+
+#, c-format
+msgid "Thread creation failure: %s"
+msgstr ""
+
+#, fuzzy
+msgid "Unknown reason"
+msgstr "Hitilafu isiyojulikana"
+
+#, c-format
+msgid ""
+"Error reading %s: \n"
+"%s.\n"
+msgstr ""
+
+#, c-format
+msgid ""
+"Error writing %s: \n"
+"%s.\n"
+msgstr ""
+
+#, fuzzy, c-format
+msgid ""
+"Error accessing %s: \n"
+"%s.\n"
+msgstr "Hitilafu katika kufikia %S"
+
+#, fuzzy
+msgid "Directory is not writable."
+msgstr "Faili %S haliandikiki."
+
+msgid "Cannot send a file of 0 bytes."
+msgstr ""
+
+msgid "Cannot send a directory."
+msgstr ""
+
+#, c-format
+msgid "%s is not a regular file. Cowardly refusing to overwrite it.\n"
+msgstr ""
+
+#, c-format
+msgid "%s wants to send you %s (%s)"
+msgstr ""
+
+#, c-format
+msgid "%s wants to send you a file"
+msgstr ""
+
+#, c-format
+msgid "Accept file transfer request from %s?"
+msgstr ""
+
+#, c-format
+msgid ""
+"A file is available for download from:\n"
+"Remote host: %s\n"
+"Remote port: %d"
+msgstr ""
+
+#, c-format
+msgid "%s is offering to send file %s"
+msgstr ""
+
+#, c-format
+msgid "%s is not a valid filename.\n"
+msgstr ""
+
+#, c-format
+msgid "Offering to send %s to %s"
+msgstr ""
+
+#, c-format
+msgid "Starting transfer of %s from %s"
+msgstr ""
+
+#, c-format
+msgid "Transfer of file %s complete"
+msgstr ""
+
+msgid "File transfer complete"
+msgstr ""
+
+#, c-format
+msgid "You canceled the transfer of %s"
+msgstr ""
+
+msgid "File transfer cancelled"
+msgstr ""
+
+#, c-format
+msgid "%s canceled the transfer of %s"
+msgstr ""
+
+#, c-format
+msgid "%s canceled the file transfer"
+msgstr ""
+
+#, c-format
+msgid "File transfer to %s failed."
+msgstr ""
+
+#, c-format
+msgid "File transfer from %s failed."
+msgstr ""
+
+msgid "Run the command in a terminal"
+msgstr ""
+
+msgid "The command used to handle \"aim\" URLs, if enabled."
+msgstr ""
+
+msgid "The command used to handle \"gg\" URLs, if enabled."
+msgstr ""
+
+msgid "The command used to handle \"icq\" URLs, if enabled."
+msgstr ""
+
+msgid "The command used to handle \"irc\" URLs, if enabled."
+msgstr ""
+
+msgid "The command used to handle \"msnim\" URLs, if enabled."
+msgstr ""
+
+msgid "The command used to handle \"sip\" URLs, if enabled."
+msgstr ""
+
+msgid "The command used to handle \"xmpp\" URLs, if enabled."
+msgstr ""
+
+msgid "The command used to handle \"ymsgr\" URLs, if enabled."
+msgstr ""
+
+msgid "The handler for \"aim\" URLs"
+msgstr ""
+
+msgid "The handler for \"gg\" URLs"
+msgstr ""
+
+msgid "The handler for \"icq\" URLs"
+msgstr ""
+
+msgid "The handler for \"irc\" URLs"
+msgstr ""
+
+msgid "The handler for \"msnim\" URLs"
+msgstr ""
+
+msgid "The handler for \"sip\" URLs"
+msgstr ""
+
+msgid "The handler for \"xmpp\" URLs"
+msgstr ""
+
+msgid "The handler for \"ymsgr\" URLs"
+msgstr ""
+
+msgid ""
+"True if the command specified in the \"command\" key should handle \"aim\" "
+"URLs."
+msgstr ""
+
+msgid ""
+"True if the command specified in the \"command\" key should handle \"gg\" "
+"URLs."
+msgstr ""
+
+msgid ""
+"True if the command specified in the \"command\" key should handle \"icq\" "
+"URLs."
+msgstr ""
+
+msgid ""
+"True if the command specified in the \"command\" key should handle \"irc\" "
+"URLs."
+msgstr ""
+
+msgid ""
+"True if the command specified in the \"command\" key should handle \"msnim\" "
+"URLs."
+msgstr ""
+
+msgid ""
+"True if the command specified in the \"command\" key should handle \"sip\" "
+"URLs."
+msgstr ""
+
+msgid ""
+"True if the command specified in the \"command\" key should handle \"xmpp\" "
+"URLs."
+msgstr ""
+
+msgid ""
+"True if the command specified in the \"command\" key should handle \"ymsgr\" "
+"URLs."
+msgstr ""
+
+msgid ""
+"True if the command used to handle this type of URL should be run in a "
+"terminal."
+msgstr ""
+
+msgid "Whether the specified command should handle \"aim\" URLs"
+msgstr ""
+
+msgid "Whether the specified command should handle \"gg\" URLs"
+msgstr ""
+
+msgid "Whether the specified command should handle \"icq\" URLs"
+msgstr ""
+
+msgid "Whether the specified command should handle \"irc\" URLs"
+msgstr ""
+
+msgid "Whether the specified command should handle \"msnim\" URLs"
+msgstr ""
+
+msgid "Whether the specified command should handle \"sip\" URLs"
+msgstr ""
+
+msgid "Whether the specified command should handle \"xmpp\" URLs"
+msgstr ""
+
+msgid "Whether the specified command should handle \"ymsgr\" URLs"
+msgstr ""
+
+msgid "<b><font color=\"red\">The logger has no read function</font></b>"
+msgstr ""
+
+msgid "HTML"
+msgstr ""
+
+msgid "Plain text"
+msgstr ""
+
+msgid "Old flat format"
+msgstr ""
+
+msgid "Logging of this conversation failed."
+msgstr ""
+
+msgid "XML"
+msgstr "XML"
+
+#, c-format
+msgid ""
+"<font color=\"#16569E\"><font size=\"2\">(%s)</font> <b>%s &lt;AUTO-"
+"REPLY&gt;:</b></font> %s<br/>\n"
+msgstr ""
+
+#, c-format
+msgid ""
+"<font color=\"#A82F2F\"><font size=\"2\">(%s)</font> <b>%s &lt;AUTO-"
+"REPLY&gt;:</b></font> %s<br/>\n"
+msgstr ""
+
+msgid "<font color=\"red\"><b>Unable to find log path!</b></font>"
+msgstr ""
+
+#, c-format
+msgid "<font color=\"red\"><b>Could not read file: %s</b></font>"
+msgstr ""
+
+#, c-format
+msgid "(%s) %s <AUTO-REPLY>: %s\n"
+msgstr ""
+
+#, c-format
+msgid "You are using %s, but this plugin requires %s."
+msgstr ""
+
+msgid "This plugin has not defined an ID."
+msgstr ""
+
+#, c-format
+msgid "Plugin magic mismatch %d (need %d)"
+msgstr ""
+
+#, c-format
+msgid "ABI version mismatch %d.%d.x (need %d.%d.x)"
+msgstr ""
+
+msgid ""
+"Plugin does not implement all required functions (list_icon, login and close)"
+msgstr ""
+
+#, c-format
+msgid ""
+"The required plugin %s was not found. Please install this plugin and try "
+"again."
+msgstr ""
+
+msgid "Unable to load the plugin"
+msgstr ""
+
+#, c-format
+msgid "The required plugin %s was unable to load."
+msgstr ""
+
+msgid "Unable to load your plugin."
+msgstr ""
+
+#, c-format
+msgid "%s requires %s, but it failed to unload."
+msgstr ""
+
+msgid "Autoaccept"
+msgstr ""
+
+msgid "Auto-accept file transfer requests from selected users."
+msgstr ""
+
+#, c-format
+msgid "Autoaccepted file transfer of \"%s\" from \"%s\" completed."
+msgstr ""
+
+msgid "Autoaccept complete"
+msgstr ""
+
+#, c-format
+msgid "When a file-transfer request arrives from %s"
+msgstr ""
+
+msgid "Set Autoaccept Setting"
+msgstr ""
+
+#, fuzzy
+msgid "_Save"
+msgstr "Hifadhi"
+
+#, fuzzy
+msgid "_Cancel"
+msgstr "Ghairi"
+
+msgid "Ask"
+msgstr ""
+
+msgid "Auto Accept"
+msgstr ""
+
+#, fuzzy
+msgid "Auto Reject"
+msgstr "Gungu&a Kiotomati"
+
+msgid "Autoaccept File Transfers..."
+msgstr ""
+
+#. XXX: Is there a better way than this? There really should be.
+msgid ""
+"Path to save the files in\n"
+"(Please provide the full path)"
+msgstr ""
+
+msgid "Automatically reject from users not in buddy list"
+msgstr ""
+
+msgid ""
+"Notify with a popup when an autoaccepted file transfer is complete\n"
+"(only when there's no conversation with the sender)"
+msgstr ""
+
+msgid "Create a new directory for each user"
+msgstr ""
+
+#, fuzzy
+msgid "Notes"
+msgstr "Hakuna vitu"
+
+msgid "Enter your notes below..."
+msgstr ""
+
+msgid "Edit Notes..."
+msgstr ""
+
+#. *< major version
+#. *< minor version
+#. *< type
+#. *< ui_requirement
+#. *< flags
+#. *< dependencies
+#. *< priority
+#. *< id
+msgid "Buddy Notes"
+msgstr ""
+
+#. *< name
+#. *< version
+msgid "Store notes on particular buddies."
+msgstr ""
+
+#. *< summary
+msgid "Adds the option to store notes for buddies on your buddy list."
+msgstr ""
+
+#. *< type
+#. *< ui_requirement
+#. *< flags
+#. *< dependencies
+#. *< priority
+#. *< id
+msgid "Cipher Test"
+msgstr ""
+
+#. *< name
+#. *< version
+#. *  summary
+#. *  description
+msgid "Tests the ciphers that ship with libpurple."
+msgstr ""
+
+#. *< type
+#. *< ui_requirement
+#. *< flags
+#. *< dependencies
+#. *< priority
+#. *< id
+msgid "DBus Example"
+msgstr ""
+
+#. *< name
+#. *< version
+#. *  summary
+#. *  description
+msgid "DBus Plugin Example"
+msgstr ""
+
+#. *< type
+#. *< ui_requirement
+#. *< flags
+#. *< dependencies
+#. *< priority
+#. *< id
+#, fuzzy
+msgid "File Control"
+msgstr "Fi&cha Visisimamizi"
+
+#. *< name
+#. *< version
+#. *  summary
+#. *  description
+msgid "Allows control by entering commands in a file."
+msgstr ""
+
+msgid "Minutes"
+msgstr ""
+
+#. This is a cultural reference.  Dy'er Mak'er is a song by Led Zeppelin.
+#. If that doesn't translate well into your language, drop the 's before translating.
+msgid "I'dle Mak'er"
+msgstr ""
+
+msgid "Set Account Idle Time"
+msgstr ""
+
+msgid "_Set"
+msgstr ""
+
+msgid "None of your accounts are idle."
+msgstr ""
+
+msgid "Unset Account Idle Time"
+msgstr ""
+
+msgid "_Unset"
+msgstr ""
+
+msgid "Set Idle Time for All Accounts"
+msgstr ""
+
+msgid "Unset Idle Time for All Idled Accounts"
+msgstr ""
+
+msgid "Allows you to hand-configure how long you've been idle"
+msgstr ""
+
+#. *< type
+#. *< ui_requirement
+#. *< flags
+#. *< dependencies
+#. *< priority
+#. *< id
+msgid "IPC Test Client"
+msgstr ""
+
+#. *< name
+#. *< version
+#. *  summary
+msgid "Test plugin IPC support, as a client."
+msgstr ""
+
+#. *  description
+msgid ""
+"Test plugin IPC support, as a client. This locates the server plugin and "
+"calls the commands registered."
+msgstr ""
+
+#. *< type
+#. *< ui_requirement
+#. *< flags
+#. *< dependencies
+#. *< priority
+#. *< id
+msgid "IPC Test Server"
+msgstr ""
+
+#. *< name
+#. *< version
+#. *  summary
+msgid "Test plugin IPC support, as a server."
+msgstr ""
+
+#. *  description
+msgid "Test plugin IPC support, as a server. This registers the IPC commands."
+msgstr ""
+
+msgid "Join/Part Hiding Configuration"
+msgstr ""
+
+#, fuzzy
+msgid "Minimum Room Size"
+msgstr "Upe&ochini wa fonti size:"
+
+msgid "User Inactivity Timeout (in minutes)"
+msgstr ""
+
+msgid "Apply hiding rules to buddies"
+msgstr ""
+
+#. *< type
+#. *< ui_requirement
+#. *< flags
+#. *< dependencies
+#. *< priority
+#. *< id
+msgid "Join/Part Hiding"
+msgstr ""
+
+#. *< name
+#. *< version
+#. *  summary
+msgid "Hides extraneous join/part messages."
+msgstr ""
+
+#. *  description
+msgid ""
+"This plugin hides join/part messages in large rooms, except for those users "
+"actively taking part in a conversation."
+msgstr ""
+
+#. This is used in the place of a timezone abbreviation if the
+#. * offset is way off.  The user should never really see it, but
+#. * it's here just in case.  The parens are to make it clear it's
+#. * not a real timezone.
+msgid "(UTC)"
+msgstr ""
+
+msgid "User is offline."
+msgstr ""
+
+msgid "Auto-response sent:"
+msgstr ""
+
+#, c-format
+msgid "%s has signed off."
+msgstr ""
+
+msgid "One or more messages may have been undeliverable."
+msgstr ""
+
+msgid "You were disconnected from the server."
+msgstr ""
+
+msgid ""
+"You are currently disconnected. Messages will not be received unless you are "
+"logged in."
+msgstr ""
+
+msgid "Message could not be sent because the maximum length was exceeded."
+msgstr ""
+
+#, fuzzy
+msgid "Message could not be sent."
+msgstr "Ujumbe haujaenda."
+
+#. The names of IM clients are marked for translation at the request of
+#. translators who wanted to transliterate them.  Many translators
+#. choose to leave them alone.  Choose what's best for your language.
+msgid "Adium"
+msgstr ""
+
+#. The names of IM clients are marked for translation at the request of
+#. translators who wanted to transliterate them.  Many translators
+#. choose to leave them alone.  Choose what's best for your language.
+#, fuzzy
+msgid "Fire"
+msgstr "Faili:"
+
+#. The names of IM clients are marked for translation at the request of
+#. translators who wanted to transliterate them.  Many translators
+#. choose to leave them alone.  Choose what's best for your language.
+msgid "Messenger Plus!"
+msgstr ""
+
+#. The names of IM clients are marked for translation at the request of
+#. translators who wanted to transliterate them.  Many translators
+#. choose to leave them alone.  Choose what's best for your language.
+msgid "QIP"
+msgstr ""
+
+#. The names of IM clients are marked for translation at the request of
+#. translators who wanted to transliterate them.  Many translators
+#. choose to leave them alone.  Choose what's best for your language.
+msgid "MSN Messenger"
+msgstr ""
+
+#. The names of IM clients are marked for translation at the request of
+#. translators who wanted to transliterate them.  Many translators
+#. choose to leave them alone.  Choose what's best for your language.
+#, fuzzy
+msgid "Trillian"
+msgstr "Kifriul"
+
+#. The names of IM clients are marked for translation at the request of
+#. translators who wanted to transliterate them.  Many translators
+#. choose to leave them alone.  Choose what's best for your language.
+msgid "aMSN"
+msgstr ""
+
+#. Add general preferences.
+msgid "General Log Reading Configuration"
+msgstr ""
+
+msgid "Fast size calculations"
+msgstr ""
+
+msgid "Use name heuristics"
+msgstr ""
+
+#. Add Log Directory preferences.
+msgid "Log Directory"
+msgstr ""
+
+#. *< type
+#. *< ui_requirement
+#. *< flags
+#. *< dependencies
+#. *< priority
+#. *< id
+#, fuzzy
+msgid "Log Reader"
+msgstr "Kichwa cha kushoto"
+
+#. *< name
+#. *< version
+#. * summary
+msgid "Includes other IM clients' logs in the log viewer."
+msgstr ""
+
+#. * description
+msgid ""
+"When viewing logs, this plugin will include logs from other IM clients. "
+"Currently, this includes Adium, MSN Messenger, and Trillian.\n"
+"\n"
+"WARNING: This plugin is still alpha code and may crash frequently.  Use it "
+"at your own risk!"
+msgstr ""
+
+msgid "Mono Plugin Loader"
+msgstr ""
+
+msgid "Loads .NET plugins with Mono."
+msgstr ""
+
+msgid "Add new line in IMs"
+msgstr ""
+
+msgid "Add new line in Chats"
+msgstr ""
+
+#. *< magic
+#. *< major version
+#. *< minor version
+#. *< type
+#. *< ui_requirement
+#. *< flags
+#. *< dependencies
+#. *< priority
+#. *< id
+#, fuzzy
+msgid "New Line"
+msgstr "Dirisha jipya"
+
+#. *< name
+#. *< version
+msgid "Prepends a newline to displayed message."
+msgstr ""
+
+#. *< summary
+msgid ""
+"Prepends a newline to messages so that the rest of the message appears below "
+"the username in the conversation window."
+msgstr ""
+
+msgid "Offline Message Emulation"
+msgstr ""
+
+msgid "Save messages sent to an offline user as pounce."
+msgstr ""
+
+msgid ""
+"The rest of the messages will be saved as pounce. You can edit/delete the "
+"pounce from the `Buddy Pounce' dialog."
+msgstr ""
+
+#, c-format
+msgid ""
+"\"%s\" is currently offline. Do you want to save the rest of the messages in "
+"a pounce and automatically send them when \"%s\" logs back in?"
+msgstr ""
+
+#, fuzzy
+msgid "Offline Message"
+msgstr "Hifadhi ya nje ya Mkondo"
+
+msgid "You can edit/delete the pounce from the `Buddy Pounces' dialog"
+msgstr ""
+
+msgid "Yes"
+msgstr "Ndiyo"
+
+msgid "No"
+msgstr "Hapana"
+
+msgid "Save offline messages in pounce"
+msgstr ""
+
+msgid "Do not ask. Always save in pounce."
+msgstr ""
+
+#, fuzzy
+msgid "One Time Password"
+msgstr "Ingiza Nywila Kuu"
+
+#. *< type
+#. *< ui_requirement
+#. *< flags
+#. *< dependencies
+#. *< priority
+#. *< id
+msgid "One Time Password Support"
+msgstr ""
+
+#. *< name
+#. *< version
+#. *  summary
+msgid "Enforce that passwords are used only once."
+msgstr ""
+
+#. *  description
+msgid ""
+"Allows you to enforce on a per-account basis that passwords not being saved "
+"are only used in a single successful connection.\n"
+"Note: The account password must not be saved for this to work."
+msgstr ""
+
+#. *< type
+#. *< ui_requirement
+#. *< flags
+#. *< dependencies
+#. *< priority
+#. *< id
+msgid "Perl Plugin Loader"
+msgstr ""
+
+#. *< name
+#. *< version
+#. *< summary
+msgid "Provides support for loading perl plugins."
+msgstr ""
+
+msgid "Psychic Mode"
+msgstr ""
+
+msgid "Psychic mode for incoming conversation"
+msgstr ""
+
+msgid ""
+"Causes conversation windows to appear as other users begin to message you.  "
+"This works for AIM, ICQ, XMPP, Sametime, and Yahoo!"
+msgstr ""
+
+msgid "You feel a disturbance in the force..."
+msgstr ""
+
+msgid "Only enable for users on the buddy list"
+msgstr ""
+
+msgid "Disable when away"
+msgstr ""
+
+msgid "Display notification message in conversations"
+msgstr ""
+
+msgid "Raise psychic conversations"
+msgstr ""
+
+#. *< type
+#. *< ui_requirement
+#. *< flags
+#. *< dependencies
+#. *< priority
+#. *< id
+msgid "Signals Test"
+msgstr ""
+
+#. *< name
+#. *< version
+#. *  summary
+#. *  description
+msgid "Test to see that all signals are working properly."
+msgstr ""
+
+#. *< type
+#. *< ui_requirement
+#. *< flags
+#. *< dependencies
+#. *< priority
+#. *< id
+msgid "Simple Plugin"
+msgstr ""
+
+#. *< name
+#. *< version
+#. *  summary
+#. *  description
+msgid "Tests to see that most things are working."
+msgstr ""
+
+#. Scheme name
+#, fuzzy
+msgid "X.509 Certificates"
+msgstr "X.509 Ithibati (PEM)"
+
+#. *< type
+#. *< ui_requirement
+#. *< flags
+#. *< dependencies
+#. *< priority
+#. *< id
+msgid "GNUTLS"
+msgstr ""
+
+#. *< name
+#. *< version
+#. *  summary
+#. *  description
+msgid "Provides SSL support through GNUTLS."
+msgstr ""
+
+#. *< type
+#. *< ui_requirement
+#. *< flags
+#. *< dependencies
+#. *< priority
+#. *< id
+#, fuzzy
+msgid "NSS"
+msgstr "RSS"
+
+#. *< name
+#. *< version
+#. *  summary
+#. *  description
+msgid "Provides SSL support through Mozilla NSS."
+msgstr ""
+
+#. *< type
+#. *< ui_requirement
+#. *< flags
+#. *< dependencies
+#. *< priority
+#. *< id
+msgid "SSL"
+msgstr ""
+
+#. *< name
+#. *< version
+#. *  summary
+#. *  description
+msgid "Provides a wrapper around SSL support libraries."
+msgstr ""
+
+#, c-format
+msgid "%s is no longer away."
+msgstr ""
+
+#, c-format
+msgid "%s has gone away."
+msgstr ""
+
+#, c-format
+msgid "%s has become idle."
+msgstr ""
+
+#, c-format
+msgid "%s is no longer idle."
+msgstr ""
+
+#, c-format
+msgid "%s has signed on."
+msgstr ""
+
+msgid "Notify When"
+msgstr ""
+
+msgid "Buddy Goes _Away"
+msgstr ""
+
+msgid "Buddy Goes _Idle"
+msgstr ""
+
+msgid "Buddy _Signs On/Off"
+msgstr ""
+
+#. *< type
+#. *< ui_requirement
+#. *< flags
+#. *< dependencies
+#. *< priority
+#. *< id
+msgid "Buddy State Notification"
+msgstr ""
+
+#. *< name
+#. *< version
+#. *  summary
+#. *  description
+msgid ""
+"Notifies in a conversation window when a buddy goes or returns from away or "
+"idle."
+msgstr ""
+
+msgid "Tcl Plugin Loader"
+msgstr ""
+
+msgid "Provides support for loading Tcl plugins"
+msgstr ""
+
+msgid ""
+"Unable to detect ActiveTCL installation. If you wish to use TCL plugins, "
+"install ActiveTCL from http://www.activestate.com\n"
+msgstr ""
+
+msgid ""
+"The Apple Bonjour For Windows toolkit wasn't found, see the FAQ at: http://d."
+"pidgin.im/BonjourWindows for more information."
+msgstr ""
+
+msgid "Unable to listen for incoming IM connections\n"
+msgstr ""
+
+msgid ""
+"Unable to establish connection with the local mDNS server.  Is it running?"
+msgstr ""
+
+#, fuzzy
+msgid "First name"
+msgstr "Ukurasa wa kwanza"
+
+#, fuzzy
+msgid "Last name"
+msgstr "Ukurasa wa mwisho"
+
+msgid "Email"
+msgstr "Barua pepe"
+
+msgid "AIM Account"
+msgstr ""
+
+msgid "XMPP Account"
+msgstr ""
+
+#. *< type
+#. *< ui_requirement
+#. *< flags
+#. *< dependencies
+#. *< priority
+#. *< id
+#. *< name
+#. *< version
+#. *  summary
+#. *  description
+msgid "Bonjour Protocol Plugin"
+msgstr ""
+
+msgid "Purple Person"
+msgstr ""
+
+#. Creating the options for the protocol
+msgid "Local Port"
+msgstr ""
+
+msgid "Bonjour"
+msgstr ""
+
+#, fuzzy, c-format
+msgid "%s has closed the conversation."
+msgstr "Mwenzi SSL imefunga uunganisho huu"
+
+msgid "Unable to send the message, the conversation couldn't be started."
+msgstr ""
+
+#, fuzzy
+msgid "Cannot open socket"
+msgstr "Haiwezi kufungua %S"
+
+msgid "Could not bind socket to port"
+msgstr ""
+
+msgid "Could not listen on socket"
+msgstr ""
+
+msgid "Error communicating with local mDNSResponder."
+msgstr ""
+
+msgid "Invalid proxy settings"
+msgstr ""
+
+msgid ""
+"Either the host name or port number specified for your given proxy type is "
+"invalid."
+msgstr ""
+
+#, fuzzy
+msgid "Token Error"
+msgstr "Hitilafu ya Faili"
+
+msgid "Unable to fetch the token.\n"
+msgstr ""
+
+msgid "Save Buddylist..."
+msgstr ""
+
+msgid "Your buddylist is empty, nothing was written to the file."
+msgstr ""
+
+msgid "Buddylist saved successfully!"
+msgstr ""
+
+#, c-format
+msgid "Couldn't write buddy list for %s to %s"
+msgstr ""
+
+msgid "Couldn't load buddylist"
+msgstr ""
+
+msgid "Load Buddylist..."
+msgstr ""
+
+msgid "Buddylist loaded successfully!"
+msgstr ""
+
+msgid "Save buddylist..."
+msgstr ""
+
+msgid "Load buddylist from file..."
+msgstr ""
+
+msgid "Fill in the registration fields."
+msgstr ""
+
+msgid "Passwords do not match."
+msgstr ""
+
+msgid "Unable to register new account. Error occurred.\n"
+msgstr ""
+
+msgid "New Gadu-Gadu Account Registered"
+msgstr ""
+
+#, fuzzy
+msgid "Registration completed successfully!"
+msgstr "Sakinisho limemaliza kikamilifu"
+
+msgid "Password"
+msgstr "Nywila"
+
+msgid "Password (retype)"
+msgstr ""
+
+msgid "Enter current token"
+msgstr ""
+
+msgid "Current token"
+msgstr ""
+
+msgid "Register New Gadu-Gadu Account"
+msgstr ""
+
+msgid "Please, fill in the following fields"
+msgstr ""
+
+msgid "City"
+msgstr ""
+
+msgid "Year of birth"
+msgstr ""
+
+#, fuzzy
+msgid "Gender"
+msgstr "Katikati"
+
+msgid "Male or female"
+msgstr ""
+
+#, fuzzy
+msgid "Male"
+msgstr "Mali"
+
+msgid "Female"
+msgstr ""
+
+#, fuzzy
+msgid "Only online"
+msgstr "Baki Mkondoni"
+
+#, fuzzy
+msgid "Find buddies"
+msgstr "Ta&futa Masasisho"
+
+msgid "Please, enter your search criteria below"
+msgstr ""
+
+msgid "Fill in the fields."
+msgstr ""
+
+msgid "Your current password is different from the one that you specified."
+msgstr ""
+
+msgid "Unable to change password. Error occurred.\n"
+msgstr ""
+
+msgid "Change password for the Gadu-Gadu account"
+msgstr ""
+
+msgid "Password was changed successfully!"
+msgstr ""
+
+#, fuzzy
+msgid "Current password"
+msgstr "Nywila ya sasa hivi:"
+
+msgid "Please, enter your current password and your new password for UIN: "
+msgstr ""
+
+#, fuzzy
+msgid "Change Gadu-Gadu Password"
+msgstr "Badilisha Nywila Kuu"
+
+#, c-format
+msgid "Select a chat for buddy: %s"
+msgstr ""
+
+msgid "Add to chat..."
+msgstr ""
+
+#. Global
+#, fuzzy
+msgid "Available"
+msgstr "Haipatikani"
+
+#. get_yahoo_status_from_purple_status() returns YAHOO_STATUS_CUSTOM for
+#. * the generic away state (YAHOO_STATUS_TYPE_AWAY) with no message
+#. Away stuff
+msgid "Away"
+msgstr ""
+
+#, fuzzy
+msgid "UIN"
+msgstr "UID"
+
+#, fuzzy
+msgid "First Name"
+msgstr "Ukurasa wa kwanza"
+
+msgid "Birth Year"
+msgstr ""
+
+msgid "Unable to display the search results."
+msgstr ""
+
+msgid "Gadu-Gadu Public Directory"
+msgstr ""
+
+msgid "Search results"
+msgstr "Tafuta matokeo"
+
+#, fuzzy
+msgid "No matching users found"
+msgstr "Hamna uwiyano sawa na CRL uliopatikana."
+
+msgid "There are no users matching your search criteria."
+msgstr ""
+
+#, fuzzy
+msgid "Unable to read socket"
+msgstr "Haiwezi kuongeza moduli"
+
+msgid "Buddy list downloaded"
+msgstr ""
+
+msgid "Your buddy list was downloaded from the server."
+msgstr ""
+
+msgid "Buddy list uploaded"
+msgstr ""
+
+msgid "Your buddy list was stored on the server."
+msgstr ""
+
+#, fuzzy
+msgid "Connection failed."
+msgstr "Unganisho Limeshindikana"
+
+msgid "Add to chat"
+msgstr ""
+
+msgid "Chat _name:"
+msgstr ""
+
+#, fuzzy
+msgid "Chat error"
+msgstr "Kichamorro"
+
+msgid "This chat name is already in use"
+msgstr ""
+
+msgid "Not connected to the server."
+msgstr ""
+
+msgid "Find buddies..."
+msgstr ""
+
+#, fuzzy
+msgid "Change password..."
+msgstr "Badil &Nywila"
+
+msgid "Upload buddylist to Server"
+msgstr ""
+
+msgid "Download buddylist from Server"
+msgstr ""
+
+msgid "Delete buddylist from Server"
+msgstr ""
+
+msgid "Save buddylist to file..."
+msgstr ""
+
+#. magic
+#. major_version
+#. minor_version
+#. plugin type
+#. ui_requirement
+#. flags
+#. dependencies
+#. priority
+#. id
+#. name
+#. version
+msgid "Gadu-Gadu Protocol Plugin"
+msgstr ""
+
+#. summary
+msgid "Polish popular IM"
+msgstr ""
+
+msgid "Gadu-Gadu User"
+msgstr ""
+
+#, c-format
+msgid "Unknown command: %s"
+msgstr ""
+
+#, c-format
+msgid "current topic is: %s"
+msgstr ""
+
+#, fuzzy
+msgid "No topic is set"
+msgstr "Hakuna sifa zilizowekwa."
+
+msgid "File Transfer Failed"
+msgstr ""
+
+msgid "Could not open a listening port."
+msgstr ""
+
+msgid "Error displaying MOTD"
+msgstr ""
+
+#, fuzzy
+msgid "No MOTD available"
+msgstr "Haipatikani"
+
+msgid "There is no MOTD associated with this connection."
+msgstr ""
+
+#, c-format
+msgid "MOTD for %s"
+msgstr ""
+
+msgid "Server has disconnected"
+msgstr ""
+
+msgid "View MOTD"
+msgstr ""
+
+msgid "_Channel:"
+msgstr ""
+
+#, fuzzy
+msgid "_Password:"
+msgstr "Nywila:"
+
+msgid "IRC nicks may not contain whitespace"
+msgstr ""
+
+#. 1. connect to server
+#. connect to the server
+#, fuzzy
+msgid "Connecting"
+msgstr "Inaunganisha…"
+
+msgid "SSL support unavailable"
+msgstr ""
+
+msgid "Couldn't create socket"
+msgstr ""
+
+msgid "Couldn't connect to host"
+msgstr ""
+
+msgid "Read error"
+msgstr ""
+
+msgid "Users"
+msgstr ""
+
+msgid "Topic"
+msgstr ""
+
+#. *< type
+#. *< ui_requirement
+#. *< flags
+#. *< dependencies
+#. *< priority
+#. *< id
+#. *< name
+#. *< version
+msgid "IRC Protocol Plugin"
+msgstr ""
+
+#. *  summary
+msgid "The IRC Protocol Plugin that Sucks Less"
+msgstr ""
+
+#. host to connect to
+msgid "Server"
+msgstr "Seva"
+
+#. port to connect to
+#, fuzzy
+msgid "Port"
+msgstr "Lango:"
+
+#, fuzzy
+msgid "Encodings"
+msgstr "Kisimba:"
+
+msgid "Auto-detect incoming UTF-8"
+msgstr ""
+
+#, fuzzy
+msgid "Real name"
+msgstr "class name"
+
+#.
+#. option = purple_account_option_string_new(_("Quit message"), "quitmsg", IRC_DEFAULT_QUIT);
+#. prpl_info.protocol_options = g_list_append(prpl_info.protocol_options, option);
+#.
+#, fuzzy
+msgid "Use SSL"
+msgstr "Tumia %S"
+
+msgid "Bad mode"
+msgstr ""
+
+#, c-format
+msgid "Ban on %s by %s, set %s ago"
+msgstr ""
+
+#, c-format
+msgid "Ban on %s"
+msgstr ""
+
+msgid "End of ban list"
+msgstr ""
+
+#, c-format
+msgid "You are banned from %s."
+msgstr ""
+
+msgid "Banned"
+msgstr ""
+
+#, c-format
+msgid "Cannot ban %s: banlist is full"
+msgstr ""
+
+msgid " <i>(ircop)</i>"
+msgstr ""
+
+msgid " <i>(identified)</i>"
+msgstr ""
+
+#, fuzzy
+msgid "Nick"
+msgstr "Bofya"
+
+msgid "Currently on"
+msgstr ""
+
+msgid "Idle for"
+msgstr ""
+
+msgid "Online since"
+msgstr ""
+
+msgid "<b>Defining adjective:</b>"
+msgstr ""
+
+msgid "Glorious"
+msgstr ""
+
+#, c-format
+msgid "%s has changed the topic to: %s"
+msgstr ""
+
+#, c-format
+msgid "%s has cleared the topic."
+msgstr ""
+
+#, c-format
+msgid "The topic for %s is: %s"
+msgstr ""
+
+#, c-format
+msgid "Unknown message '%s'"
+msgstr ""
+
+#, fuzzy
+msgid "Unknown message"
+msgstr "Ukubwa usiojulikana"
+
+msgid "The IRC server received a message it did not understand."
+msgstr ""
+
+#, c-format
+msgid "Users on %s: %s"
+msgstr ""
+
+msgid "Time Response"
+msgstr ""
+
+msgid "The IRC server's local time is:"
+msgstr ""
+
+msgid "No such channel"
+msgstr ""
+
+#. does this happen?
+msgid "no such channel"
+msgstr ""
+
+msgid "User is not logged in"
+msgstr ""
+
+msgid "No such nick or channel"
+msgstr ""
+
+#, fuzzy
+msgid "Could not send"
+msgstr "\"Haikuweza kupakia: \""
+
+#, c-format
+msgid "Joining %s requires an invitation."
+msgstr ""
+
+msgid "Invitation only"
+msgstr ""
+
+#, c-format
+msgid "You have been kicked by %s: (%s)"
+msgstr ""
+
+#. Remove user from channel
+#, c-format
+msgid "Kicked by %s (%s)"
+msgstr ""
+
+#, c-format
+msgid "mode (%s %s) by %s"
+msgstr ""
+
+#, fuzzy
+msgid "Invalid nickname"
+msgstr "Jina la profaili ni batili"
+
+msgid ""
+"Your selected nickname was rejected by the server.  It probably contains "
+"invalid characters."
+msgstr ""
+
+msgid ""
+"Your selected account name was rejected by the server.  It probably contains "
+"invalid characters."
+msgstr ""
+
+#. We only want to do the following dance if the connection
+#. has not been successfully completed.  If it has, just
+#. notify the user that their /nick command didn't go.
+#, c-format
+msgid "The nickname \"%s\" is already being used."
+msgstr ""
+
+msgid "Nickname in use"
+msgstr ""
+
+msgid "Cannot change nick"
+msgstr ""
+
+msgid "Could not change nick"
+msgstr ""
+
+#, c-format
+msgid "You have parted the channel%s%s"
+msgstr ""
+
+msgid "Error: invalid PONG from server"
+msgstr ""
+
+#, c-format
+msgid "PING reply -- Lag: %lu seconds"
+msgstr ""
+
+#, c-format
+msgid "Cannot join %s: Registration is required."
+msgstr ""
+
+msgid "Cannot join channel"
+msgstr ""
+
+msgid "Nick or channel is temporarily unavailable."
+msgstr ""
+
+#, c-format
+msgid "Wallops from %s"
+msgstr ""
+
+msgid "action &lt;action to perform&gt;:  Perform an action."
+msgstr ""
+
+msgid ""
+"away [message]:  Set an away message, or use no message to return from being "
+"away."
+msgstr ""
+
+msgid "ctcp <nick> <msg>: sends ctcp msg to nick."
+msgstr ""
+
+msgid "chanserv: Send a command to chanserv"
+msgstr ""
+
+msgid ""
+"deop &lt;nick1&gt; [nick2] ...:  Remove channel operator status from "
+"someone. You must be a channel operator to do this."
+msgstr ""
+
+msgid ""
+"devoice &lt;nick1&gt; [nick2] ...:  Remove channel voice status from "
+"someone, preventing them from speaking if the channel is moderated (+m). You "
+"must be a channel operator to do this."
+msgstr ""
+
+msgid ""
+"invite &lt;nick&gt; [room]:  Invite someone to join you in the specified "
+"channel, or the current channel."
+msgstr ""
+
+msgid ""
+"j &lt;room1&gt;[,room2][,...] [key1[,key2][,...]]:  Enter one or more "
+"channels, optionally providing a channel key for each if needed."
+msgstr ""
+
+msgid ""
+"join &lt;room1&gt;[,room2][,...] [key1[,key2][,...]]:  Enter one or more "
+"channels, optionally providing a channel key for each if needed."
+msgstr ""
+
+msgid ""
+"kick &lt;nick&gt; [message]:  Remove someone from a channel. You must be a "
+"channel operator to do this."
+msgstr ""
+
+msgid ""
+"list:  Display a list of chat rooms on the network. <i>Warning, some servers "
+"may disconnect you upon doing this.</i>"
+msgstr ""
+
+msgid "me &lt;action to perform&gt;:  Perform an action."
+msgstr ""
+
+msgid "memoserv: Send a command to memoserv"
+msgstr ""
+
+msgid ""
+"mode &lt;+|-&gt;&lt;A-Za-z&gt; &lt;nick|channel&gt;:  Set or unset a channel "
+"or user mode."
+msgstr ""
+
+msgid ""
+"msg &lt;nick&gt; &lt;message&gt;:  Send a private message to a user (as "
+"opposed to a channel)."
+msgstr ""
+
+msgid "names [channel]:  List the users currently in a channel."
+msgstr ""
+
+msgid "nick &lt;new nickname&gt;:  Change your nickname."
+msgstr ""
+
+msgid "nickserv: Send a command to nickserv"
+msgstr ""
+
+msgid "notice &lt;target&lt;:  Send a notice to a user or channel."
+msgstr ""
+
+msgid ""
+"op &lt;nick1&gt; [nick2] ...:  Grant channel operator status to someone. You "
+"must be a channel operator to do this."
+msgstr ""
+
+msgid ""
+"operwall &lt;message&gt;:  If you don't know what this is, you probably "
+"can't use it."
+msgstr ""
+
+msgid "operserv: Send a command to operserv"
+msgstr ""
+
+msgid ""
+"part [room] [message]:  Leave the current channel, or a specified channel, "
+"with an optional message."
+msgstr ""
+
+msgid ""
+"ping [nick]:  Asks how much lag a user (or the server if no user specified) "
+"has."
+msgstr ""
+
+msgid ""
+"query &lt;nick&gt; &lt;message&gt;:  Send a private message to a user (as "
+"opposed to a channel)."
+msgstr ""
+
+msgid "quit [message]:  Disconnect from the server, with an optional message."
+msgstr ""
+
+msgid "quote [...]:  Send a raw command to the server."
+msgstr ""
+
+msgid ""
+"remove &lt;nick&gt; [message]:  Remove someone from a room. You must be a "
+"channel operator to do this."
+msgstr ""
+
+msgid "time: Displays the current local time at the IRC server."
+msgstr ""
+
+msgid "topic [new topic]:  View or change the channel topic."
+msgstr ""
+
+msgid "umode &lt;+|-&gt;&lt;A-Za-z&gt;:  Set or unset a user mode."
+msgstr ""
+
+msgid "version [nick]: send CTCP VERSION request to a user"
+msgstr ""
+
+msgid ""
+"voice &lt;nick1&gt; [nick2] ...:  Grant channel voice status to someone. You "
+"must be a channel operator to do this."
+msgstr ""
+
+msgid ""
+"wallops &lt;message&gt;:  If you don't know what this is, you probably can't "
+"use it."
+msgstr ""
+
+msgid "whois [server] &lt;nick&gt;:  Get information on a user."
+msgstr ""
+
+msgid "whowas &lt;nick&gt;: Get information on a user that has logged off."
+msgstr ""
+
+#, c-format
+msgid "Reply time from %s: %lu seconds"
+msgstr ""
+
+msgid "PONG"
+msgstr ""
+
+msgid "CTCP PING reply"
+msgstr ""
+
+msgid "Disconnected."
+msgstr ""
+
+msgid "Unknown Error"
+msgstr "Hitilafu isiyojulikana"
+
+msgid "Ad-Hoc Command Failed"
+msgstr ""
+
+msgid "execute"
+msgstr ""
+
+msgid "Server requires TLS/SSL for login.  No TLS/SSL support found."
+msgstr ""
+
+msgid "You require encryption, but no TLS/SSL support found."
+msgstr ""
+
+msgid "Server requires plaintext authentication over an unencrypted stream"
+msgstr ""
+
+#, c-format
+msgid ""
+"%s requires plaintext authentication over an unencrypted connection.  Allow "
+"this and continue authentication?"
+msgstr ""
+
+#, fuzzy
+msgid "Plaintext Authentication"
+msgstr "Ishara ya Uthibitisho Inayoulindwa"
+
+#, fuzzy
+msgid "Invalid response from server."
+msgstr "Mwitiko wa bila kutegemea kutoka kwa seva"
+
+msgid "Server does not use any supported authentication method"
+msgstr ""
+
+msgid "You require encryption, but it is not available on this server."
+msgstr ""
+
+msgid "Invalid challenge from server"
+msgstr ""
+
+#, fuzzy
+msgid "SASL error"
+msgstr "SSL Seva"
+
+msgid "The BOSH connection manager terminated your session."
+msgstr ""
+
+msgid "No session ID given"
+msgstr ""
+
+#, fuzzy
+msgid "Unsupported version of BOSH protocol"
+msgstr "Kivunge kisichokubaliwa"
+
+#, fuzzy
+msgid "Unable to establish a connection with the server"
+msgstr "Firefox haiwezi kuzindua unganisho katika seva ya %S."
+
+#, fuzzy, c-format
+msgid ""
+"Could not establish a connection with the server:\n"
+"%s"
+msgstr "Firefox haiwezi kuzindua unganisho katika seva ya %S."
+
+#, fuzzy
+msgid "Unable to establish SSL connection"
+msgstr "Haikuweza kuunganishwa"
+
+#, fuzzy
+msgid "Unable to create socket"
+msgstr "Haikuweza kuunganishwa"
+
+#, fuzzy
+msgid "Write error"
+msgstr "Hitilafu ya Printa"
+
+#, fuzzy
+msgid "Full Name"
+msgstr "Jina la faili:"
+
+msgid "Family Name"
+msgstr ""
+
+msgid "Given Name"
+msgstr ""
+
+msgid "URL"
+msgstr "URL"
+
+msgid "Street Address"
+msgstr ""
+
+msgid "Extended Address"
+msgstr ""
+
+#, fuzzy
+msgid "Locality"
+msgstr "Mahali"
+
+#, fuzzy
+msgid "Region"
+msgstr "Reunion"
+
+msgid "Postal Code"
+msgstr ""
+
+#, fuzzy
+msgid "Country"
+msgstr "Hesabu"
+
+#. lots of clients (including purple) do this, but it's
+#. * out of spec
+msgid "Telephone"
+msgstr ""
+
+#, fuzzy
+msgid "Organization Name"
+msgstr "Jumuiya(J)"
+
+#, fuzzy
+msgid "Organization Unit"
+msgstr "Jumuiya(J)"
+
+msgid "Role"
+msgstr ""
+
+msgid "Birthday"
+msgstr ""
+
+msgid "Description"
+msgstr "Maelezo"
+
+msgid "Edit XMPP vCard"
+msgstr ""
+
+msgid ""
+"All items below are optional. Enter only the information with which you feel "
+"comfortable."
+msgstr ""
+
+msgid "Client"
+msgstr "Mteja"
+
+msgid "Operating System"
+msgstr ""
+
+#, fuzzy
+msgid "Local Time"
+msgstr "faili la kikweti"
+
+msgid "Last Activity"
+msgstr ""
+
+msgid "Service Discovery Info"
+msgstr ""
+
+msgid "Service Discovery Items"
+msgstr ""
+
+msgid "Extended Stanza Addressing"
+msgstr ""
+
+msgid "Multi-User Chat"
+msgstr ""
+
+msgid "Multi-User Chat Extended Presence Information"
+msgstr ""
+
+msgid "In-Band Bytestreams"
+msgstr ""
+
+msgid "Ad-Hoc Commands"
+msgstr ""
+
+msgid "PubSub Service"
+msgstr ""
+
+msgid "SOCKS5 Bytestreams"
+msgstr ""
+
+msgid "Out of Band Data"
+msgstr ""
+
+msgid "XHTML-IM"
+msgstr ""
+
+msgid "In-Band Registration"
+msgstr ""
+
+#, fuzzy
+msgid "User Location"
+msgstr "Mapali pa &Tawanyiko:"
+
+msgid "User Avatar"
+msgstr ""
+
+msgid "Chat State Notifications"
+msgstr ""
+
+msgid "Software Version"
+msgstr ""
+
+msgid "Stream Initiation"
+msgstr ""
+
+msgid "File Transfer"
+msgstr ""
+
+msgid "User Mood"
+msgstr ""
+
+msgid "User Activity"
+msgstr ""
+
+msgid "Entity Capabilities"
+msgstr ""
+
+msgid "Encrypted Session Negotiations"
+msgstr ""
+
+#, fuzzy
+msgid "User Tune"
+msgstr "Jina la Mtumiaji:"
+
+msgid "Roster Item Exchange"
+msgstr ""
+
+msgid "Reachability Address"
+msgstr ""
+
+#, fuzzy
+msgid "User Profile"
+msgstr "Notisi za Mtumiaji"
+
+msgid "Jingle"
+msgstr ""
+
+msgid "Jingle Audio"
+msgstr ""
+
+#, fuzzy
+msgid "User Nickname"
+msgstr "Jina la mtumiaji"
+
+msgid "Jingle ICE UDP"
+msgstr ""
+
+msgid "Jingle ICE TCP"
+msgstr ""
+
+msgid "Jingle Raw UDP"
+msgstr ""
+
+msgid "Jingle Video"
+msgstr ""
+
+msgid "Jingle DTMF"
+msgstr ""
+
+msgid "Message Receipts"
+msgstr ""
+
+msgid "Public Key Publishing"
+msgstr ""
+
+msgid "User Chatting"
+msgstr ""
+
+#, fuzzy
+msgid "User Browsing"
+msgstr "Kuvinjari kwa kareti"
+
+#, fuzzy
+msgid "User Gaming"
+msgstr "Jina la Mtumiaji:"
+
+msgid "User Viewing"
+msgstr ""
+
+#, fuzzy
+msgid "Ping"
+msgstr "Chapisha"
+
+msgid "Stanza Encryption"
+msgstr ""
+
+msgid "Entity Time"
+msgstr ""
+
+msgid "Delayed Delivery"
+msgstr ""
+
+msgid "Collaborative Data Objects"
+msgstr ""
+
+msgid "File Repository and Sharing"
+msgstr ""
+
+msgid "STUN Service Discovery for Jingle"
+msgstr ""
+
+msgid "Simplified Encrypted Session Negotiation"
+msgstr ""
+
+#, fuzzy
+msgid "Hop Check"
+msgstr "Usikague"
+
+msgid "Capabilities"
+msgstr ""
+
+msgid "Priority"
+msgstr ""
+
+#, fuzzy
+msgid "Resource"
+msgstr "#1 rasilimali"
+
+#, c-format
+msgid "%s ago"
+msgstr ""
+
+#, fuzzy
+msgid "Logged off"
+msgstr "Ingia"
+
+#, fuzzy
+msgid "Middle Name"
+msgstr "Jina la Moduli:"
+
+msgid "Address"
+msgstr "Anuani"
+
+msgid "P.O. Box"
+msgstr ""
+
+msgid "Photo"
+msgstr ""
+
+#, fuzzy
+msgid "Logo"
+msgstr "Togo"
+
+msgid "Un-hide From"
+msgstr ""
+
+msgid "Temporarily Hide From"
+msgstr ""
+
+#. && NOT ME
+msgid "Cancel Presence Notification"
+msgstr ""
+
+msgid "(Re-)Request authorization"
+msgstr ""
+
+#. if(NOT ME)
+#. shouldn't this just happen automatically when the buddy is
+#. removed?
+#, fuzzy
+msgid "Unsubscribe"
+msgstr "Jiunge"
+
+#, fuzzy
+msgid "Log In"
+msgstr "I&ngia"
+
+#, fuzzy
+msgid "Log Out"
+msgstr "O&ndoka"
+
+msgid "Chatty"
+msgstr ""
+
+msgid "Extended Away"
+msgstr ""
+
+msgid "Do Not Disturb"
+msgstr ""
+
+#, fuzzy
+msgid "JID"
+msgstr "UID"
+
+#, fuzzy
+msgid "Last Name"
+msgstr "Ukurasa wa mwisho"
+
+#, fuzzy
+msgid "The following are the results of your search"
+msgstr "Kuki zifuatazo zinalingana na unazotafuta:"
+
+#. current comment from Jabber User Directory users.jabber.org
+msgid ""
+"Find a contact by entering the search criteria in the given fields. Note: "
+"Each field supports wild card searches (%)"
+msgstr ""
+
+msgid "Directory Query Failed"
+msgstr ""
+
+msgid "Could not query the directory server."
+msgstr ""
+
+#. Try to translate the message (see static message
+#. list in jabber_user_dir_comments[])
+#, c-format
+msgid "Server Instructions: %s"
+msgstr ""
+
+msgid "Fill in one or more fields to search for any matching XMPP users."
+msgstr ""
+
+msgid "Email Address"
+msgstr "Anwani ya Barua pepe"
+
+msgid "Search for XMPP users"
+msgstr ""
+
+#. "Search"
+msgid "Search"
+msgstr "Tafuta"
+
+msgid "Invalid Directory"
+msgstr ""
+
+msgid "Enter a User Directory"
+msgstr ""
+
+msgid "Select a user directory to search"
+msgstr ""
+
+#, fuzzy
+msgid "Search Directory"
+msgstr "Tafuta historia"
+
+msgid "_Room:"
+msgstr ""
+
+#, fuzzy
+msgid "_Server:"
+msgstr "Seva"
+
+msgid "_Handle:"
+msgstr ""
+
+#, c-format
+msgid "%s is not a valid room name"
+msgstr ""
+
+#, fuzzy
+msgid "Invalid Room Name"
+msgstr "Jina batili la moduli."
+
+#, c-format
+msgid "%s is not a valid server name"
+msgstr ""
+
+#, fuzzy
+msgid "Invalid Server Name"
+msgstr "Jina batili la moduli."
+
+#, c-format
+msgid "%s is not a valid room handle"
+msgstr ""
+
+msgid "Invalid Room Handle"
+msgstr ""
+
+#, fuzzy
+msgid "Configuration error"
+msgstr "Hitilafu ya Sanidi"
+
+#, fuzzy
+msgid "Unable to configure"
+msgstr "Haikuweza kuunganishwa"
+
+#, fuzzy
+msgid "Room Configuration Error"
+msgstr "Hitilafu ya Sanidi"
+
+msgid "This room is not capable of being configured"
+msgstr ""
+
+#, fuzzy
+msgid "Registration error"
+msgstr "Hitilafu ya Sanidi"
+
+msgid "Nick changing not supported in non-MUC chatrooms"
+msgstr ""
+
+msgid "Error retrieving room list"
+msgstr ""
+
+#, fuzzy
+msgid "Invalid Server"
+msgstr "Anuani batili"
+
+msgid "Enter a Conference Server"
+msgstr ""
+
+msgid "Select a conference server to query"
+msgstr ""
+
+msgid "Find Rooms"
+msgstr ""
+
+#, fuzzy
+msgid "Affiliations:"
+msgstr "Machaguo"
+
+#, fuzzy
+msgid "No users found"
+msgstr "Hamna uwiyano sawa na CRL uliopatikana."
+
+msgid "Roles:"
+msgstr ""
+
+msgid "Ping timeout"
+msgstr ""
+
+#, fuzzy
+msgid "Read Error"
+msgstr "Hitilafu ya Faili"
+
+#, c-format
+msgid ""
+"Could not find alternative XMPP connection methods after failing to connect "
+"directly.\n"
+msgstr ""
+
+#, fuzzy
+msgid "Invalid XMPP ID"
+msgstr "Kizuizi batili"
+
+msgid "Invalid XMPP ID. Domain must be set."
+msgstr ""
+
+msgid "Malformed BOSH Connect Server"
+msgstr ""
+
+#, c-format
+msgid "Registration of %s@%s successful"
+msgstr ""
+
+#, c-format
+msgid "Registration to %s successful"
+msgstr ""
+
+msgid "Registration Successful"
+msgstr ""
+
+#, fuzzy
+msgid "Registration Failed"
+msgstr "Usajili wa Chrome Umeshindikana"
+
+#, c-format
+msgid "Registration from %s successfully removed"
+msgstr ""
+
+msgid "Unregistration Successful"
+msgstr ""
+
+#, fuzzy
+msgid "Unregistration Failed"
+msgstr "Usajili wa Chrome Umeshindikana"
+
+#, fuzzy
+msgid "Already Registered"
+msgstr "Ipo"
+
+msgid "State"
+msgstr "Hali"
+
+msgid "Postal code"
+msgstr ""
+
+#, fuzzy
+msgid "Phone"
+msgstr "Bila"
+
+#, fuzzy
+msgid "Date"
+msgstr "Tarehe:"
+
+msgid "Unregister"
+msgstr ""
+
+msgid ""
+"Please fill out the information below to change your account registration."
+msgstr ""
+
+msgid "Please fill out the information below to register your new account."
+msgstr ""
+
+msgid "Register New XMPP Account"
+msgstr ""
+
+#, fuzzy
+msgid "Register"
+msgstr "Mwandishi wa habari"
+
+#, c-format
+msgid "Change Account Registration at %s"
+msgstr ""
+
+#, c-format
+msgid "Register New Account at %s"
+msgstr ""
+
+#, fuzzy
+msgid "Change Registration"
+msgstr "Usajili wa Chrome Umeshindikana"
+
+#, fuzzy
+msgid "Error unregistering account"
+msgstr "Hitilafu katika kusajili DLL"
+
+msgid "Account successfully unregistered"
+msgstr ""
+
+msgid "Initializing Stream"
+msgstr ""
+
+msgid "Initializing SSL/TLS"
+msgstr ""
+
+msgid "Authenticating"
+msgstr ""
+
+msgid "Re-initializing Stream"
+msgstr ""
+
+msgid "Server doesn't support blocking"
+msgstr ""
+
+msgid "Not Authorized"
+msgstr ""
+
+msgid "Mood"
+msgstr ""
+
+msgid "Now Listening"
+msgstr ""
+
+msgid "Both"
+msgstr ""
+
+msgid "From (To pending)"
+msgstr ""
+
+#, fuzzy
+msgid "From"
+msgstr "kutoka"
+
+#, fuzzy
+msgid "To"
+msgstr "Kwa:"
+
+msgid "None (To pending)"
+msgstr ""
+
+msgid "None"
+msgstr "Bila"
+
+#, fuzzy
+msgid "Subscription"
+msgstr "Maelezo"
+
+msgid "Mood Text"
+msgstr ""
+
+msgid "Allow Buzz"
+msgstr ""
+
+msgid "Tune Artist"
+msgstr ""
+
+#, fuzzy
+msgid "Tune Title"
+msgstr "Mada Fupi"
+
+msgid "Tune Album"
+msgstr ""
+
+msgid "Tune Genre"
+msgstr ""
+
+msgid "Tune Comment"
+msgstr ""
+
+msgid "Tune Track"
+msgstr ""
+
+msgid "Tune Time"
+msgstr ""
+
+msgid "Tune Year"
+msgstr ""
+
+msgid "Tune URL"
+msgstr ""
+
+#, fuzzy
+msgid "Password Changed"
+msgstr "Badilisho la Nywila limeshindikana"
+
+#, fuzzy
+msgid "Your password has been changed."
+msgstr "Nywila yako imesetiwa upya."
+
+msgid "Error changing password"
+msgstr ""
+
+#, fuzzy
+msgid "Password (again)"
+msgstr "Nywila mpya (tena):"
+
+#, fuzzy
+msgid "Change XMPP Password"
+msgstr "Badil &Nywila"
+
+msgid "Please enter your new password"
+msgstr ""
+
+msgid "Set User Info..."
+msgstr ""
+
+#. if (js->protocol_options & CHANGE_PASSWORD) {
+#, fuzzy
+msgid "Change Password..."
+msgstr "Badil &Nywila"
+
+#. }
+msgid "Search for Users..."
+msgstr ""
+
+msgid "Bad Request"
+msgstr ""
+
+#, fuzzy
+msgid "Conflict"
+msgstr "Thibitisha"
+
+msgid "Feature Not Implemented"
+msgstr ""
+
+msgid "Forbidden"
+msgstr ""
+
+#, fuzzy
+msgid "Gone"
+msgstr "Bila"
+
+#, fuzzy
+msgid "Internal Server Error"
+msgstr "Hitilafu ya ndani ya seva (500)"
+
+#, fuzzy
+msgid "Item Not Found"
+msgstr "Faili halipatikani"
+
+msgid "Malformed XMPP ID"
+msgstr ""
+
+#, fuzzy
+msgid "Not Acceptable"
+msgstr "Haipatikani"
+
+msgid "Not Allowed"
+msgstr ""
+
+#, fuzzy
+msgid "Payment Required"
+msgstr "Nywila inatakiwa"
+
+msgid "Recipient Unavailable"
+msgstr ""
+
+#, fuzzy
+msgid "Registration Required"
+msgstr "Uthibitisho unatakiwa"
+
+#, fuzzy
+msgid "Remote Server Not Found"
+msgstr "Wakala kompyuta tumishi hapatikani"
+
+msgid "Remote Server Timeout"
+msgstr ""
+
+msgid "Server Overloaded"
+msgstr ""
+
+msgid "Service Unavailable"
+msgstr ""
+
+#, fuzzy
+msgid "Subscription Required"
+msgstr "Uthibitisho unatakiwa"
+
+msgid "Unexpected Request"
+msgstr ""
+
+#, fuzzy
+msgid "Authorization Aborted"
+msgstr "Sainisho limetibuliwa"
+
+msgid "Incorrect encoding in authorization"
+msgstr ""
+
+#, fuzzy
+msgid "Invalid authzid"
+msgstr "Njia batili"
+
+msgid "Invalid Authorization Mechanism"
+msgstr ""
+
+msgid "Authorization mechanism too weak"
+msgstr ""
+
+msgid "Temporary Authentication Failure"
+msgstr ""
+
+#, fuzzy
+msgid "Authentication Failure"
+msgstr "Uthibitisho unatakiwa"
+
+#, fuzzy
+msgid "Bad Format"
+msgstr "Fomati"
+
+msgid "Bad Namespace Prefix"
+msgstr ""
+
+msgid "Resource Conflict"
+msgstr ""
+
+#, fuzzy
+msgid "Connection Timeout"
+msgstr "Muunganiko umepita muda"
+
+msgid "Host Gone"
+msgstr ""
+
+msgid "Host Unknown"
+msgstr ""
+
+msgid "Improper Addressing"
+msgstr ""
+
+#, fuzzy
+msgid "Invalid ID"
+msgstr "Kizuizi batili"
+
+msgid "Invalid Namespace"
+msgstr ""
+
+#, fuzzy
+msgid "Invalid XML"
+msgstr "Kizuizi batili"
+
+msgid "Non-matching Hosts"
+msgstr ""
+
+msgid "Policy Violation"
+msgstr ""
+
+#, fuzzy
+msgid "Remote Connection Failed"
+msgstr "Muunganiko salama umeshindikana"
+
+msgid "Resource Constraint"
+msgstr ""
+
+msgid "Restricted XML"
+msgstr ""
+
+msgid "See Other Host"
+msgstr ""
+
+msgid "System Shutdown"
+msgstr ""
+
+#, fuzzy
+msgid "Undefined Condition"
+msgstr "kitu ambacho hakijafafanuliwa"
+
+#, fuzzy
+msgid "Unsupported Encoding"
+msgstr "Kivunge kisichokubaliwa"
+
+#, fuzzy
+msgid "Unsupported Stanza Type"
+msgstr "Kivunge kisichokubaliwa"
+
+#, fuzzy
+msgid "Unsupported Version"
+msgstr "Kivunge kisichokubaliwa"
+
+msgid "XML Not Well Formed"
+msgstr ""
+
+msgid "Stream Error"
+msgstr ""
+
+#, c-format
+msgid "Unable to ban user %s"
+msgstr ""
+
+#, c-format
+msgid "Unknown affiliation: \"%s\""
+msgstr ""
+
+#, c-format
+msgid "Unable to affiliate user %s as \"%s\""
+msgstr ""
+
+#, c-format
+msgid "Unknown role: \"%s\""
+msgstr ""
+
+#, c-format
+msgid "Unable to set role \"%s\" for user: %s"
+msgstr ""
+
+#, c-format
+msgid "Unable to kick user %s"
+msgstr ""
+
+#, c-format
+msgid "Unable to ping user %s"
+msgstr ""
+
+#, c-format
+msgid "Unable to buzz, because there is nothing known about %s."
+msgstr ""
+
+#, c-format
+msgid "Unable to buzz, because %s might be offline."
+msgstr ""
+
+#, c-format
+msgid ""
+"Unable to buzz, because %s does not support it or does not wish to receive "
+"buzzes now."
+msgstr ""
+
+#, c-format
+msgid "Buzzing %s..."
+msgstr ""
+
+#. Yahoo only supports one attention command: the 'buzz'.
+#. This is index number YAHOO_BUZZ.
+msgid "Buzz"
+msgstr ""
+
+#, c-format
+msgid "%s has buzzed you!"
+msgstr ""
+
+#, c-format
+msgid "Unable to initiate media with %s: invalid JID"
+msgstr ""
+
+#, c-format
+msgid "Unable to initiate media with %s: user is not online"
+msgstr ""
+
+#, c-format
+msgid "Unable to initiate media with %s: not subscribed to user presence"
+msgstr ""
+
+msgid "Media Initiation Failed"
+msgstr ""
+
+#, c-format
+msgid ""
+"Please select the resource of %s with which you would like to start a media "
+"session."
+msgstr ""
+
+msgid "Select a Resource"
+msgstr ""
+
+msgid "Initiate Media"
+msgstr ""
+
+msgid "config:  Configure a chat room."
+msgstr ""
+
+msgid "configure:  Configure a chat room."
+msgstr ""
+
+msgid "part [room]:  Leave the room."
+msgstr ""
+
+msgid "register:  Register with a chat room."
+msgstr ""
+
+msgid "topic [new topic]:  View or change the topic."
+msgstr ""
+
+msgid "ban &lt;user&gt; [reason]:  Ban a user from the room."
+msgstr ""
+
+msgid ""
+"affiliate &lt;owner|admin|member|outcast|none&gt; [nick1] [nick2] ...: Get "
+"the users with an affiliation or set users' affiliation with the room."
+msgstr ""
+
+msgid ""
+"role &lt;moderator|participant|visitor|none&gt; [nick1] [nick2] ...: Get the "
+"users with an role or set users' role with the room."
+msgstr ""
+
+msgid "invite &lt;user&gt; [message]:  Invite a user to the room."
+msgstr ""
+
+msgid "join: &lt;room&gt; [password]:  Join a chat on this server."
+msgstr ""
+
+msgid "kick &lt;user&gt; [reason]:  Kick a user from the room."
+msgstr ""
+
+msgid ""
+"msg &lt;user&gt; &lt;message&gt;:  Send a private message to another user."
+msgstr ""
+
+msgid "ping &lt;jid&gt;:\tPing a user/component/server."
+msgstr ""
+
+msgid "buzz: Buzz a user to get their attention"
+msgstr ""
+
+#. *< type
+#. *< ui_requirement
+#. *< flags
+#. *< dependencies
+#. *< priority
+#. *< id
+#. *< name
+#. *< version
+#. *  summary
+#. *  description
+msgid "XMPP Protocol Plugin"
+msgstr ""
+
+#. Translators: 'domain' is used here in the context of Internet domains, e.g. pidgin.im
+#, fuzzy
+msgid "Domain"
+msgstr "Kikoa:"
+
+msgid "Require SSL/TLS"
+msgstr ""
+
+msgid "Force old (port 5223) SSL"
+msgstr ""
+
+msgid "Allow plaintext auth over unencrypted streams"
+msgstr ""
+
+#, fuzzy
+msgid "Connect port"
+msgstr "Unganisho"
+
+#. TODO: default to automatically try different ports. Make the user be
+#. * able to set the first port to try (like LastConnectedPort in Windows client).
+#. Account options
+msgid "Connect server"
+msgstr ""
+
+msgid "File transfer proxies"
+msgstr ""
+
+#. this should probably be part of global smiley theme settings later on,
+#. shared with MSN
+msgid "Show Custom Smileys"
+msgstr ""
+
+#, c-format
+msgid "%s has left the conversation."
+msgstr ""
+
+#, c-format
+msgid "Message from %s"
+msgstr ""
+
+#, c-format
+msgid "%s has set the topic to: %s"
+msgstr ""
+
+#, c-format
+msgid "The topic is: %s"
+msgstr ""
+
+#, c-format
+msgid "Message delivery to %s failed: %s"
+msgstr ""
+
+msgid "XMPP Message Error"
+msgstr ""
+
+#, c-format
+msgid "(Code %s)"
+msgstr ""
+
+msgid "XML Parse error"
+msgstr ""
+
+msgid "Unknown Error in presence"
+msgstr ""
+
+msgid "Create New Room"
+msgstr ""
+
+msgid ""
+"You are creating a new room.  Would you like to configure it, or accept the "
+"default settings?"
+msgstr ""
+
+msgid "_Configure Room"
+msgstr ""
+
+#, fuzzy
+msgid "_Accept Defaults"
+msgstr "Misingi ya mfumo"
+
+#, c-format
+msgid "Error joining chat %s"
+msgstr ""
+
+#, c-format
+msgid "Error in chat %s"
+msgstr ""
+
+msgid "An error occured on the in-band bytestream transfer\n"
+msgstr ""
+
+msgid "Transfer was closed."
+msgstr ""
+
+msgid "Failed to open the file"
+msgstr ""
+
+msgid "Failed to open in-band bytestream"
+msgstr ""
+
+#, c-format
+msgid "Unable to send file to %s, user does not support file transfers"
+msgstr ""
+
+msgid "File Send Failed"
+msgstr ""
+
+#, c-format
+msgid "Unable to send file to %s, invalid JID"
+msgstr ""
+
+#, c-format
+msgid "Unable to send file to %s, user is not online"
+msgstr ""
+
+#, c-format
+msgid "Unable to send file to %s, not subscribed to user presence"
+msgstr ""
+
+#, c-format
+msgid "Please select the resource of %s to which you would like to send a file"
+msgstr ""
+
+msgid "Edit User Mood"
+msgstr ""
+
+msgid "Please select your mood from the list."
+msgstr ""
+
+#, fuzzy
+msgid "Set"
+msgstr "Sep"
+
+msgid "Set Mood..."
+msgstr ""
+
+msgid "Set User Nickname"
+msgstr ""
+
+msgid "Please specify a new nickname for you."
+msgstr ""
+
+msgid ""
+"This information is visible to all contacts on your contact list, so choose "
+"something appropriate."
+msgstr ""
+
+msgid "Set Nickname..."
+msgstr ""
+
+#, fuzzy
+msgid "Actions"
+msgstr "Machaguo"
+
+msgid "Select an action"
+msgstr ""
+
+#. only notify the user about problems adding to the friends list
+#. * maybe we should do something else for other lists, but it probably
+#. * won't cause too many problems if we just ignore it
+#, fuzzy, c-format
+msgid "Unable to add \"%s\"."
+msgstr "Haiwezi kuongeza moduli"
+
+msgid "Buddy Add error"
+msgstr ""
+
+msgid "The username specified does not exist."
+msgstr ""
+
+#, c-format
+msgid "Buddy list synchronization issue in %s (%s)"
+msgstr ""
+
+#, c-format
+msgid ""
+"%s on the local list is inside the group \"%s\" but not on the server list. "
+"Do you want this buddy to be added?"
+msgstr ""
+
+#, c-format
+msgid ""
+"%s is on the local list but not on the server list. Do you want this buddy "
+"to be added?"
+msgstr ""
+
+#, fuzzy, c-format
+msgid "Unable to parse message"
+msgstr "Haiwezi kuongeza moduli"
+
+#, c-format
+msgid "Syntax Error (probably a client bug)"
+msgstr ""
+
+#, fuzzy, c-format
+msgid "Invalid email address"
+msgstr "Anuani batili"
+
+#, fuzzy, c-format
+msgid "User does not exist"
+msgstr "Faili %S halipo"
+
+#, c-format
+msgid "Fully qualified domain name missing"
+msgstr ""
+
+#, c-format
+msgid "Already logged in"
+msgstr ""
+
+#, fuzzy, c-format
+msgid "Invalid username"
+msgstr "Jina batili la moduli."
+
+#, fuzzy, c-format
+msgid "Invalid friendly name"
+msgstr "Jina la profaili ni batili"
+
+#, c-format
+msgid "List full"
+msgstr ""
+
+#, c-format
+msgid "Already there"
+msgstr ""
+
+#, c-format
+msgid "Not on list"
+msgstr ""
+
+#, fuzzy, c-format
+msgid "User is offline"
+msgstr "Fanya &kazi nje ya mkondo"
+
+#, c-format
+msgid "Already in the mode"
+msgstr ""
+
+#, c-format
+msgid "Already in opposite list"
+msgstr ""
+
+#, c-format
+msgid "Too many groups"
+msgstr ""
+
+#, fuzzy, c-format
+msgid "Invalid group"
+msgstr "Ingizo batili"
+
+#, c-format
+msgid "User not in group"
+msgstr ""
+
+#, c-format
+msgid "Group name too long"
+msgstr ""
+
+#, c-format
+msgid "Cannot remove group zero"
+msgstr ""
+
+#, c-format
+msgid "Tried to add a user to a group that doesn't exist"
+msgstr ""
+
+#, c-format
+msgid "Switchboard failed"
+msgstr ""
+
+#, c-format
+msgid "Notify transfer failed"
+msgstr ""
+
+#, c-format
+msgid "Required fields missing"
+msgstr ""
+
+#, c-format
+msgid "Too many hits to a FND"
+msgstr ""
+
+#, fuzzy, c-format
+msgid "Not logged in"
+msgstr "Hajaingia"
+
+#, c-format
+msgid "Service temporarily unavailable"
+msgstr ""
+
+#, c-format
+msgid "Database server error"
+msgstr ""
+
+#, c-format
+msgid "Command disabled"
+msgstr ""
+
+#, c-format
+msgid "File operation error"
+msgstr ""
+
+#, c-format
+msgid "Memory allocation error"
+msgstr ""
+
+#, c-format
+msgid "Wrong CHL value sent to server"
+msgstr ""
+
+#, fuzzy, c-format
+msgid "Server busy"
+msgstr "Seva"
+
+#, c-format
+msgid "Server unavailable"
+msgstr ""
+
+#, c-format
+msgid "Peer notification server down"
+msgstr ""
+
+#, c-format
+msgid "Database connect error"
+msgstr ""
+
+#, c-format
+msgid "Server is going down (abandon ship)"
+msgstr ""
+
+#, fuzzy, c-format
+msgid "Error creating connection"
+msgstr "Hitilafu kwenye utengenezaji wa saraka:"
+
+#, c-format
+msgid "CVR parameters are either unknown or not allowed"
+msgstr ""
+
+#, fuzzy, c-format
+msgid "Unable to write"
+msgstr "Nimeshindwa Kusasisha"
+
+#, c-format
+msgid "Session overload"
+msgstr ""
+
+#, c-format
+msgid "User is too active"
+msgstr ""
+
+#, c-format
+msgid "Too many sessions"
+msgstr ""
+
+#, fuzzy, c-format
+msgid "Passport not verified"
+msgstr "(Mwandishi hajathibitishwa)"
+
+#, c-format
+msgid "Bad friend file"
+msgstr ""
+
+#, fuzzy, c-format
+msgid "Not expected"
+msgstr "Hakuna iliyochaguliwa"
+
+#, c-format
+msgid "Friendly name changes too rapidly"
+msgstr ""
+
+#, fuzzy, c-format
+msgid "Server too busy"
+msgstr "Seva haipatikani"
+
+#, fuzzy, c-format
+msgid "Authentication failed"
+msgstr "Uthibitisho unatakiwa"
+
+#, c-format
+msgid "Not allowed when offline"
+msgstr ""
+
+#, c-format
+msgid "Not accepting new users"
+msgstr ""
+
+#, c-format
+msgid "Kids Passport without parental consent"
+msgstr ""
+
+#, c-format
+msgid "Passport account not yet verified"
+msgstr ""
+
+msgid "Passport account suspended"
+msgstr ""
+
+#, c-format
+msgid "Bad ticket"
+msgstr ""
+
+#, fuzzy, c-format
+msgid "Unknown Error Code %d"
+msgstr "Hitilafu isiyojulikana"
+
+#, c-format
+msgid "MSN Error: %s\n"
+msgstr ""
+
+#, fuzzy
+msgid "Other Contacts"
+msgstr "Lugha nyinginezo"
+
+msgid "Non-IM Contacts"
+msgstr ""
+
+msgid "Nudge"
+msgstr ""
+
+#, c-format
+msgid "%s has nudged you!"
+msgstr ""
+
+#, c-format
+msgid "Nudging %s..."
+msgstr ""
+
+#, fuzzy
+msgid "Email Address..."
+msgstr "Anwani ya Barua pepe"
+
+msgid "Your new MSN friendly name is too long."
+msgstr ""
+
+msgid "Set your friendly name."
+msgstr ""
+
+msgid "This is the name that other MSN buddies will see you as."
+msgstr ""
+
+msgid "Set your home phone number."
+msgstr ""
+
+msgid "Set your work phone number."
+msgstr ""
+
+msgid "Set your mobile phone number."
+msgstr ""
+
+msgid "Allow MSN Mobile pages?"
+msgstr ""
+
+msgid ""
+"Do you want to allow or disallow people on your buddy list to send you MSN "
+"Mobile pages to your cell phone or other mobile device?"
+msgstr ""
+
+msgid "Allow"
+msgstr "Ruhusu"
+
+#, fuzzy
+msgid "Disallow"
+msgstr "Lemaza"
+
+#, c-format
+msgid "Blocked Text for %s"
+msgstr ""
+
+msgid "No text is blocked for this account."
+msgstr ""
+
+#, c-format
+msgid ""
+"MSN servers are currently blocking the following regular expressions:<br/>%s"
+msgstr ""
+
+msgid "This account does not have email enabled."
+msgstr ""
+
+msgid "Send a mobile message."
+msgstr ""
+
+#, fuzzy
+msgid "Page"
+msgstr "Ukurasa wa #"
+
+msgid "Playing a game"
+msgstr ""
+
+#, fuzzy
+msgid "Working"
+msgstr "Tahadhari:"
+
+msgid "Has you"
+msgstr ""
+
+msgid "Home Phone Number"
+msgstr ""
+
+msgid "Work Phone Number"
+msgstr ""
+
+msgid "Mobile Phone Number"
+msgstr ""
+
+msgid "Be Right Back"
+msgstr ""
+
+msgid "Busy"
+msgstr ""
+
+msgid "On the Phone"
+msgstr ""
+
+msgid "Out to Lunch"
+msgstr ""
+
+#. primitive
+#. ID
+#. name - use default
+#. saveable
+#. should be user_settable some day
+#. independent
+msgid "Artist"
+msgstr ""
+
+msgid "Album"
+msgstr ""
+
+#, fuzzy
+msgid "Game Title"
+msgstr "Mada Fupi"
+
+msgid "Office Title"
+msgstr ""
+
+msgid "Set Friendly Name..."
+msgstr ""
+
+msgid "Set Home Phone Number..."
+msgstr ""
+
+msgid "Set Work Phone Number..."
+msgstr ""
+
+msgid "Set Mobile Phone Number..."
+msgstr ""
+
+msgid "Enable/Disable Mobile Devices..."
+msgstr ""
+
+msgid "Allow/Disallow Mobile Pages..."
+msgstr ""
+
+msgid "View Blocked Text..."
+msgstr ""
+
+msgid "Open Hotmail Inbox"
+msgstr ""
+
+msgid "Send to Mobile"
+msgstr ""
+
+msgid "Initiate _Chat"
+msgstr ""
+
+msgid "SSL support is needed for MSN. Please install a supported SSL library."
+msgstr ""
+
+msgid "Failed to connect to server."
+msgstr ""
+
+msgid "Error retrieving profile"
+msgstr ""
+
+msgid "General"
+msgstr "Ujumla"
+
+msgid "Age"
+msgstr ""
+
+#, fuzzy
+msgid "Occupation"
+msgstr "Mahali"
+
+msgid "Location"
+msgstr "Mahali"
+
+msgid "Hobbies and Interests"
+msgstr ""
+
+msgid "A Little About Me"
+msgstr ""
+
+msgid "Social"
+msgstr ""
+
+msgid "Marital Status"
+msgstr ""
+
+msgid "Interests"
+msgstr ""
+
+#, fuzzy
+msgid "Pets"
+msgstr "Bonyeza"
+
+msgid "Hometown"
+msgstr ""
+
+msgid "Places Lived"
+msgstr ""
+
+msgid "Fashion"
+msgstr ""
+
+msgid "Humor"
+msgstr ""
+
+msgid "Music"
+msgstr ""
+
+msgid "Favorite Quote"
+msgstr ""
+
+msgid "Contact Info"
+msgstr ""
+
+#, fuzzy
+msgid "Personal"
+msgstr "Kipersia"
+
+msgid "Significant Other"
+msgstr ""
+
+msgid "Home Phone"
+msgstr ""
+
+msgid "Home Phone 2"
+msgstr ""
+
+#, fuzzy
+msgid "Home Address"
+msgstr "Anwani-IP"
+
+msgid "Personal Mobile"
+msgstr ""
+
+msgid "Home Fax"
+msgstr ""
+
+msgid "Personal Email"
+msgstr ""
+
+msgid "Personal IM"
+msgstr ""
+
+#, fuzzy
+msgid "Anniversary"
+msgstr "Universal"
+
+#. Business
+msgid "Work"
+msgstr ""
+
+#, fuzzy
+msgid "Job Title"
+msgstr "Cheo cha &kazi:"
+
+msgid "Company"
+msgstr ""
+
+msgid "Department"
+msgstr ""
+
+msgid "Profession"
+msgstr ""
+
+msgid "Work Phone"
+msgstr ""
+
+msgid "Work Phone 2"
+msgstr ""
+
+#, fuzzy
+msgid "Work Address"
+msgstr "Anwani-IP"
+
+msgid "Work Mobile"
+msgstr ""
+
+msgid "Work Pager"
+msgstr ""
+
+msgid "Work Fax"
+msgstr ""
+
+msgid "Work Email"
+msgstr ""
+
+msgid "Work IM"
+msgstr ""
+
+#, fuzzy
+msgid "Start Date"
+msgstr "Anzisha Upya Baadae"
+
+#, fuzzy
+msgid "Favorite Things"
+msgstr "Vibwedo"
+
+#, fuzzy
+msgid "Last Updated"
+msgstr "Sasisho la mara ya mwisho"
+
+#, fuzzy
+msgid "Homepage"
+msgstr "Ukurasa wa &Nyumbani:"
+
+msgid "The user has not created a public profile."
+msgstr ""
+
+msgid ""
+"MSN reported not being able to find the user's profile. This either means "
+"that the user does not exist, or that the user exists but has not created a "
+"public profile."
+msgstr ""
+
+msgid ""
+"Could not find any information in the user's profile. The user most likely "
+"does not exist."
+msgstr ""
+
+msgid "View web profile"
+msgstr ""
+
+#. *< type
+#. *< ui_requirement
+#. *< flags
+#. *< dependencies
+#. *< priority
+#. *< id
+#. *< name
+#. *< version
+#. *< summary
+msgid "Windows Live Messenger Protocol Plugin"
+msgstr ""
+
+msgid "Use HTTP Method"
+msgstr ""
+
+msgid "HTTP Method Server"
+msgstr ""
+
+msgid "Show custom smileys"
+msgstr ""
+
+msgid "nudge: nudge a user to get their attention"
+msgstr ""
+
+msgid "Windows Live ID authentication:Unable to connect"
+msgstr ""
+
+msgid "Windows Live ID authentication:Invalid response"
+msgstr ""
+
+#, c-format
+msgid "%s just sent you a Nudge!"
+msgstr ""
+
+#, fuzzy, c-format
+msgid "Unknown error (%d): %s"
+msgstr "Hitilafu isiyojulikana"
+
+#, fuzzy
+msgid "Unable to add user"
+msgstr "Haiwezi kuongeza moduli"
+
+#, fuzzy, c-format
+msgid "Unknown error (%d)"
+msgstr "Hitilafu isiyojulikana"
+
+msgid "The following users are missing from your addressbook"
+msgstr ""
+
+#, c-format
+msgid "Unable to add user on %s (%s)"
+msgstr ""
+
+#, c-format
+msgid "Unable to block user on %s (%s)"
+msgstr ""
+
+#, c-format
+msgid "Unable to permit user on %s (%s)"
+msgstr ""
+
+#, c-format
+msgid "%s could not be added because your buddy list is full."
+msgstr ""
+
+#, c-format
+msgid "%s is not a valid passport account."
+msgstr ""
+
+msgid "Service Temporarily Unavailable."
+msgstr ""
+
+#, fuzzy
+msgid "Unknown error."
+msgstr "Hitilafu isiyojulikana"
+
+msgid "Mobile message was not sent because it was too long."
+msgstr ""
+
+#, c-format
+msgid ""
+"The MSN server will shut down for maintenance in %d minute. You will "
+"automatically be signed out at that time.  Please finish any conversations "
+"in progress.\n"
+"\n"
+"After the maintenance has been completed, you will be able to successfully "
+"sign in."
+msgid_plural ""
+"The MSN server will shut down for maintenance in %d minutes. You will "
+"automatically be signed out at that time.  Please finish any conversations "
+"in progress.\n"
+"\n"
+"After the maintenance has been completed, you will be able to successfully "
+"sign in."
+msgstr[0] ""
+msgstr[1] ""
+
+msgid ""
+"Message was not sent because the system is unavailable. This normally "
+"happens when the user is blocked or does not exist."
+msgstr ""
+
+msgid "Message was not sent because messages are being sent too quickly."
+msgstr ""
+
+msgid "Message was not sent because an unknown encoding error occurred."
+msgstr ""
+
+msgid "Message was not sent because an unknown error occurred."
+msgstr ""
+
+msgid "Unable to connect"
+msgstr "Haikuweza kuunganishwa"
+
+msgid "Writing error"
+msgstr ""
+
+msgid "Reading error"
+msgstr ""
+
+#, c-format
+msgid ""
+"Connection error from %s server:\n"
+"%s"
+msgstr ""
+
+msgid "Our protocol is not supported by the server."
+msgstr ""
+
+msgid "Error parsing HTTP."
+msgstr ""
+
+msgid "You have signed on from another location."
+msgstr ""
+
+msgid "The MSN servers are temporarily unavailable. Please wait and try again."
+msgstr ""
+
+msgid "The MSN servers are going down temporarily."
+msgstr ""
+
+#, c-format
+msgid "Unable to authenticate: %s"
+msgstr ""
+
+msgid ""
+"Your MSN buddy list is temporarily unavailable. Please wait and try again."
+msgstr ""
+
+msgid "Handshaking"
+msgstr ""
+
+msgid "Transferring"
+msgstr ""
+
+msgid "Starting authentication"
+msgstr ""
+
+#, fuzzy
+msgid "Getting cookie"
+msgstr "Anza"
+
+#, fuzzy
+msgid "Sending cookie"
+msgstr "Tuma Habari…"
+
+msgid "Retrieving buddy list"
+msgstr ""
+
+msgid "Away From Computer"
+msgstr ""
+
+msgid "On The Phone"
+msgstr ""
+
+msgid "Out To Lunch"
+msgstr ""
+
+msgid "Message may have not been sent because a timeout occurred:"
+msgstr ""
+
+msgid "Message could not be sent, not allowed while invisible:"
+msgstr ""
+
+msgid "Message could not be sent because the user is offline:"
+msgstr ""
+
+msgid "Message could not be sent because a connection error occurred:"
+msgstr ""
+
+msgid "Message could not be sent because we are sending too quickly:"
+msgstr ""
+
+msgid ""
+"Message could not be sent because we were unable to establish a session with "
+"the server. This is likely a server problem, try again in a few minutes:"
+msgstr ""
+
+msgid ""
+"Message could not be sent because an error with the switchboard occurred:"
+msgstr ""
+
+msgid "Message may have not been sent because an unknown error occurred:"
+msgstr ""
+
+msgid "Delete Buddy from Address Book?"
+msgstr ""
+
+msgid "Do you want to delete this buddy from your address book as well?"
+msgstr ""
+
+#, fuzzy
+msgid "The username specified is invalid."
+msgstr "Nambari mstari iliyoingizwa ni batili."
+
+msgid "This Hotmail account may not be active."
+msgstr ""
+
+#, fuzzy
+msgid "Profile URL"
+msgstr "Profile Linatumika"
+
+#. *< type
+#. *< ui_requirement
+#. *< flags
+#. *< dependencies
+#. *< priority
+#. *< id
+#. *< name
+#. *< version
+#. *  summary
+#. *  description
+msgid "MSN Protocol Plugin"
+msgstr ""
+
+#, c-format
+msgid "%s is not a valid group."
+msgstr ""
+
+#, c-format
+msgid "%s on %s (%s)"
+msgstr ""
+
+#, fuzzy
+msgid "Unable to rename group"
+msgstr "Haiwezi kufuta moduli"
+
+#, fuzzy
+msgid "Unable to delete group"
+msgstr "Haiwezi kufuta moduli"
+
+#, c-format
+msgid "%s has added you to his or her buddy list."
+msgstr ""
+
+#, c-format
+msgid "%s has removed you from his or her buddy list."
+msgstr ""
+
+#, c-format
+msgid "No such user: %s"
+msgstr ""
+
+msgid "User lookup"
+msgstr ""
+
+msgid "Reading challenge"
+msgstr ""
+
+#, fuzzy
+msgid "Unexpected challenge length from server"
+msgstr "Mwitiko wa bila kutegemea kutoka kwa seva"
+
+#, fuzzy
+msgid "Logging in"
+msgstr "Ingia"
+
+msgid "MySpaceIM - No Username Set"
+msgstr ""
+
+msgid "You appear to have no MySpace username."
+msgstr ""
+
+msgid "Would you like to set one now? (Note: THIS CANNOT BE CHANGED!)"
+msgstr ""
+
+msgid "Lost connection with server"
+msgstr ""
+
+#. Can't write _()'d strings in array initializers. Workaround.
+#. khc: then use N_() in the array initializer and use _() when they are
+#. used
+msgid "New mail messages"
+msgstr ""
+
+msgid "New blog comments"
+msgstr ""
+
+msgid "New profile comments"
+msgstr ""
+
+msgid "New friend requests!"
+msgstr ""
+
+msgid "New picture comments"
+msgstr ""
+
+#, fuzzy
+msgid "MySpace"
+msgstr "Nafasi"
+
+msgid "IM Friends"
+msgstr ""
+
+#, c-format
+msgid ""
+"%d buddy was added or updated from the server (including buddies already on "
+"the server-side list)"
+msgid_plural ""
+"%d buddies were added or updated from the server (including buddies already "
+"on the server-side list)"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Add contacts from server"
+msgstr ""
+
+#. The session is now set up, ready to be connected. This emits the
+#. * signedOn signal, so clients can now do anything with msimprpl, and
+#. * we're ready for it (session key, userid, username all setup).
+#, fuzzy
+msgid "Connected"
+msgstr "Unganisho"
+
+#, c-format
+msgid "Protocol error, code %d: %s"
+msgstr ""
+
+#, c-format
+msgid ""
+"%s Your password is %d characters, greater than the expected maximum length "
+"of %d for MySpaceIM. Please shorten your password at http://profileedit."
+"myspace.com/index.cfm?fuseaction=accountSettings.changePassword and try "
+"again."
+msgstr ""
+
+msgid "MySpaceIM Error"
+msgstr ""
+
+msgid "Invalid input condition"
+msgstr ""
+
+msgid "Read buffer full (2)"
+msgstr ""
+
+msgid "Unparseable message"
+msgstr ""
+
+#, c-format
+msgid "Couldn't connect to host: %s (%d)"
+msgstr ""
+
+msgid "Failed to add buddy"
+msgstr ""
+
+msgid "'addbuddy' command failed."
+msgstr ""
+
+msgid "persist command failed"
+msgstr ""
+
+msgid "Failed to remove buddy"
+msgstr ""
+
+msgid "'delbuddy' command failed"
+msgstr ""
+
+msgid "blocklist command failed"
+msgstr ""
+
+#, fuzzy
+msgid "Missing Cipher"
+msgstr "Faili linalokosekana"
+
+msgid "The RC4 cipher could not be found"
+msgstr ""
+
+msgid ""
+"Upgrade to a libpurple with RC4 support (>= 2.0.1). MySpaceIM plugin will "
+"not be loaded."
+msgstr ""
+
+msgid "Add friends from MySpace.com"
+msgstr ""
+
+msgid "Importing friends failed"
+msgstr ""
+
+#. TODO: find out how
+msgid "Find people..."
+msgstr ""
+
+msgid "Change IM name..."
+msgstr ""
+
+msgid "myim URL handler"
+msgstr ""
+
+msgid "No suitable MySpaceIM account could be found to open this myim URL."
+msgstr ""
+
+msgid "Enable the proper MySpaceIM account and try again."
+msgstr ""
+
+msgid "Show display name in status text"
+msgstr ""
+
+msgid "Show headline in status text"
+msgstr ""
+
+msgid "Send emoticons"
+msgstr ""
+
+msgid "Screen resolution (dots per inch)"
+msgstr ""
+
+msgid "Base font size (points)"
+msgstr ""
+
+msgid "User"
+msgstr ""
+
+msgid "Headline"
+msgstr ""
+
+#, fuzzy
+msgid "Song"
+msgstr "Kitonga"
+
+msgid "Total Friends"
+msgstr ""
+
+#, fuzzy
+msgid "Client Version"
+msgstr "Toleo Jipya"
+
+msgid "MySpaceIM - Username Available"
+msgstr ""
+
+msgid "This username is available. Would you like to set it?"
+msgstr ""
+
+msgid "ONCE SET, THIS CANNOT BE CHANGED!"
+msgstr ""
+
+msgid "MySpaceIM - Please Set a Username"
+msgstr ""
+
+msgid "This username is unavailable."
+msgstr ""
+
+msgid "Please try another username:"
+msgstr ""
+
+#. Protocol won't log in now without a username set.. Disconnect
+msgid "No username set"
+msgstr ""
+
+msgid "Please enter a username to check its availability:"
+msgstr ""
+
+#. TODO: icons for each zap
+#. Lots of comments for translators:
+#. Zap means "to strike suddenly and forcefully as if with a
+#. * projectile or weapon."  This term often has an electrical
+#. * connotation, for example, "he was zapped by electricity when
+#. * he put a fork in the toaster."
+msgid "Zap"
+msgstr ""
+
+#, c-format
+msgid "%s has zapped you!"
+msgstr ""
+
+#, c-format
+msgid "Zapping %s..."
+msgstr ""
+
+#. Whack means "to hit or strike someone with a sharp blow"
+#, fuzzy
+msgid "Whack"
+msgstr "Nyuma"
+
+#, c-format
+msgid "%s has whacked you!"
+msgstr ""
+
+#, c-format
+msgid "Whacking %s..."
+msgstr ""
+
+#. Torch means "to set on fire."  Don't worry, this doesn't
+#. * make a whole lot of sense in English, either.  Feel free
+#. * to translate it literally.
+#, fuzzy
+msgid "Torch"
+msgstr "Machi"
+
+#, c-format
+msgid "%s has torched you!"
+msgstr ""
+
+#, c-format
+msgid "Torching %s..."
+msgstr ""
+
+#. Smooch means "to kiss someone, often enthusiastically"
+msgid "Smooch"
+msgstr ""
+
+#, c-format
+msgid "%s has smooched you!"
+msgstr ""
+
+#, c-format
+msgid "Smooching %s..."
+msgstr ""
+
+#. A hug is a display of affection; wrapping your arms around someone
+#, fuzzy
+msgid "Hug"
+msgstr "Ago"
+
+#, c-format
+msgid "%s has hugged you!"
+msgstr ""
+
+#, c-format
+msgid "Hugging %s..."
+msgstr ""
+
+#. Slap means "to hit someone with an open/flat hand"
+msgid "Slap"
+msgstr ""
+
+#, c-format
+msgid "%s has slapped you!"
+msgstr ""
+
+#, c-format
+msgid "Slapping %s..."
+msgstr ""
+
+#. Goose means "to pinch someone on their butt"
+#, fuzzy
+msgid "Goose"
+msgstr "Google"
+
+#, c-format
+msgid "%s has goosed you!"
+msgstr ""
+
+#, c-format
+msgid "Goosing %s..."
+msgstr ""
+
+#. A high-five is when two people's hands slap each other
+#. * in the air above their heads.  It is done to celebrate
+#. * something, often a victory, or to congratulate someone.
+msgid "High-five"
+msgstr ""
+
+#, c-format
+msgid "%s has high-fived you!"
+msgstr ""
+
+#, c-format
+msgid "High-fiving %s..."
+msgstr ""
+
+#. We're not entirely sure what the MySpace people mean by
+#. * this... but we think it's the equivalent of "prank."  Or, for
+#. * someone to perform a mischievous trick or practical joke.
+msgid "Punk"
+msgstr ""
+
+#, c-format
+msgid "%s has punk'd you!"
+msgstr ""
+
+#, c-format
+msgid "Punking %s..."
+msgstr ""
+
+#. Raspberry is a slang term for the vibrating sound made
+#. * when you stick your tongue out of your mouth with your
+#. * lips closed and blow.  It is typically done when
+#. * gloating or bragging.  Nowadays it's a pretty silly
+#. * gesture, so it does not carry a harsh negative
+#. * connotation.  It is generally used in a playful tone
+#. * with friends.
+msgid "Raspberry"
+msgstr ""
+
+#, c-format
+msgid "%s has raspberried you!"
+msgstr ""
+
+#, c-format
+msgid "Raspberrying %s..."
+msgstr ""
+
+msgid "Required parameters not passed in"
+msgstr ""
+
+msgid "Unable to write to network"
+msgstr ""
+
+msgid "Unable to read from network"
+msgstr ""
+
+msgid "Error communicating with server"
+msgstr ""
+
+#, fuzzy
+msgid "Conference not found"
+msgstr "Mstari haujapatikana"
+
+#, fuzzy
+msgid "Conference does not exist"
+msgstr "Faili lililohitajiwa halipo"
+
+#, fuzzy
+msgid "A folder with that name already exists"
+msgstr "Ufunguo wenye lakabu kama hii tayari upo."
+
+#, fuzzy
+msgid "Not supported"
+msgstr "Haujaanza"
+
+#, fuzzy
+msgid "Password has expired"
+msgstr "Nywila inatakiwa"
+
+#, fuzzy
+msgid "Incorrect password"
+msgstr "Nywila ya sasa hivi:"
+
+#, fuzzy
+msgid "User not found"
+msgstr "Seva haipatikani"
+
+msgid "Account has been disabled"
+msgstr ""
+
+msgid "The server could not access the directory"
+msgstr ""
+
+msgid "Your system administrator has disabled this operation"
+msgstr ""
+
+msgid "The server is unavailable; try again later"
+msgstr ""
+
+msgid "Cannot add a contact to the same folder twice"
+msgstr ""
+
+msgid "Cannot add yourself"
+msgstr ""
+
+msgid "Master archive is misconfigured"
+msgstr ""
+
+msgid "Incorrect username or password"
+msgstr ""
+
+msgid "Could not recognize the host of the username you entered"
+msgstr ""
+
+msgid ""
+"Your account has been disabled because too many incorrect passwords were "
+"entered"
+msgstr ""
+
+msgid "You cannot add the same person twice to a conversation"
+msgstr ""
+
+msgid "You have reached your limit for the number of contacts allowed"
+msgstr ""
+
+msgid "You have entered an incorrect username"
+msgstr ""
+
+msgid "An error occurred while updating the directory"
+msgstr ""
+
+msgid "Incompatible protocol version"
+msgstr ""
+
+msgid "The user has blocked you"
+msgstr ""
+
+msgid ""
+"This evaluation version does not allow more than ten users to log in at one "
+"time"
+msgstr ""
+
+msgid "The user is either offline or you are blocked"
+msgstr ""
+
+#, fuzzy, c-format
+msgid "Unknown error: 0x%X"
+msgstr "Hitilafu isiyojulikana"
+
+#, c-format
+msgid "Login failed (%s)."
+msgstr ""
+
+#, c-format
+msgid "Unable to send message. Could not get details for user (%s)."
+msgstr ""
+
+#, c-format
+msgid "Unable to add %s to your buddy list (%s)."
+msgstr ""
+
+#. TODO: Improve this! message to who or for what conference?
+#, c-format
+msgid "Unable to send message (%s)."
+msgstr ""
+
+#, c-format
+msgid "Unable to invite user (%s)."
+msgstr ""
+
+#, c-format
+msgid "Unable to send message to %s. Could not create the conference (%s)."
+msgstr ""
+
+#, c-format
+msgid "Unable to send message. Could not create the conference (%s)."
+msgstr ""
+
+#, c-format
+msgid ""
+"Unable to move user %s to folder %s in the server side list. Error while "
+"creating folder (%s)."
+msgstr ""
+
+#, c-format
+msgid ""
+"Unable to add %s to your buddy list. Error creating folder in server side "
+"list (%s)."
+msgstr ""
+
+#, c-format
+msgid "Could not get details for user %s (%s)."
+msgstr ""
+
+#, c-format
+msgid "Unable to add user to privacy list (%s)."
+msgstr ""
+
+#, c-format
+msgid "Unable to add %s to deny list (%s)."
+msgstr ""
+
+#, c-format
+msgid "Unable to add %s to permit list (%s)."
+msgstr ""
+
+#, c-format
+msgid "Unable to remove %s from privacy list (%s)."
+msgstr ""
+
+#, c-format
+msgid "Unable to change server side privacy settings (%s)."
+msgstr ""
+
+#, c-format
+msgid "Unable to create conference (%s)."
+msgstr ""
+
+msgid "Error communicating with server. Closing connection."
+msgstr ""
+
+msgid "Telephone Number"
+msgstr ""
+
+msgid "Personal Title"
+msgstr ""
+
+msgid "Mailstop"
+msgstr ""
+
+msgid "User ID"
+msgstr ""
+
+#. tag = _("DN");
+#. value = nm_user_record_get_dn(user_record);
+#. if (value) {
+#. purple_notify_user_info_add_pair(user_info, tag, value);
+#. }
+#.
+#, fuzzy
+msgid "Full name"
+msgstr "Jina la faili:"
+
+#, c-format
+msgid "GroupWise Conference %d"
+msgstr ""
+
+msgid "Authenticating..."
+msgstr ""
+
+#, fuzzy
+msgid "Unable to connect to server."
+msgstr "Imeshindwa kuipata seva wakala"
+
+msgid "Waiting for response..."
+msgstr ""
+
+#, c-format
+msgid "%s has been invited to this conversation."
+msgstr ""
+
+msgid "Invitation to Conversation"
+msgstr ""
+
+#, c-format
+msgid ""
+"Invitation from: %s\n"
+"\n"
+"Sent: %s"
+msgstr ""
+
+#, fuzzy
+msgid "Would you like to join the conversation?"
+msgstr "Ungependa kuhifadhi faili hili?"
+
+msgid "You have been logged out because you logged in at another workstation."
+msgstr ""
+
+#, c-format
+msgid ""
+"%s appears to be offline and did not receive the message that you just sent."
+msgstr ""
+
+msgid ""
+"Unable to connect to server. Please enter the address of the server you wish "
+"to connect to."
+msgstr ""
+
+msgid "Error. SSL support is not installed."
+msgstr ""
+
+msgid "This conference has been closed. No more messages can be sent."
+msgstr ""
+
+#. *< type
+#. *< ui_requirement
+#. *< flags
+#. *< dependencies
+#. *< priority
+#. *< id
+#. *< name
+#. *< version
+#. *  summary
+#. *  description
+msgid "Novell GroupWise Messenger Protocol Plugin"
+msgstr ""
+
+msgid "Server address"
+msgstr ""
+
+msgid "Server port"
+msgstr ""
+
+msgid "Could not join chat room"
+msgstr ""
+
+msgid "Invalid chat room name"
+msgstr ""
+
+#, fuzzy
+msgid "Server closed the connection."
+msgstr "Mwenzi SSL imefunga uunganisho huu"
+
+#, c-format
+msgid ""
+"Lost connection with server:\n"
+"%s"
+msgstr ""
+
+msgid "Received invalid data on connection with server."
+msgstr ""
+
+#. *< type
+#. *< ui_requirement
+#. *< flags
+#. *< dependencies
+#. *< priority
+#. *< id
+#. *< name
+#. *< version
+#. *  summary
+#. *  description
+msgid "AIM Protocol Plugin"
+msgstr ""
+
+msgid "ICQ UIN..."
+msgstr ""
+
+#. *< type
+#. *< ui_requirement
+#. *< flags
+#. *< dependencies
+#. *< priority
+#. *< id
+#. *< name
+#. *< version
+#. *  summary
+#. *  description
+msgid "ICQ Protocol Plugin"
+msgstr ""
+
+#, fuzzy
+msgid "Encoding"
+msgstr "Kisimba:"
+
+#, fuzzy
+msgid "The remote user has closed the connection."
+msgstr "Mwenzi SSL imefunga uunganisho huu"
+
+msgid "The remote user has declined your request."
+msgstr ""
+
+#, c-format
+msgid "Lost connection with the remote user:<br>%s"
+msgstr ""
+
+msgid "Received invalid data on connection with remote user."
+msgstr ""
+
+msgid "Could not establish a connection with the remote user."
+msgstr ""
+
+msgid "Direct IM established"
+msgstr ""
+
+#, 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 ""
+
+#, c-format
+msgid "File %s is %s, which is larger than the maximum size of %s."
+msgstr ""
+
+#, fuzzy
+msgid "Invalid error"
+msgstr "Kizuizi batili"
+
+#, fuzzy
+msgid "Invalid SNAC"
+msgstr "Kizuizi batili"
+
+msgid "Rate to host"
+msgstr ""
+
+msgid "Rate to client"
+msgstr ""
+
+msgid "Service unavailable"
+msgstr ""
+
+msgid "Service not defined"
+msgstr ""
+
+msgid "Obsolete SNAC"
+msgstr ""
+
+msgid "Not supported by host"
+msgstr ""
+
+msgid "Not supported by client"
+msgstr ""
+
+msgid "Refused by client"
+msgstr ""
+
+msgid "Reply too big"
+msgstr ""
+
+msgid "Responses lost"
+msgstr ""
+
+#, fuzzy
+msgid "Request denied"
+msgstr "Ufikio umekataliwa"
+
+msgid "Busted SNAC payload"
+msgstr ""
+
+msgid "Insufficient rights"
+msgstr ""
+
+msgid "In local permit/deny"
+msgstr ""
+
+msgid "Warning level too high (sender)"
+msgstr ""
+
+msgid "Warning level too high (receiver)"
+msgstr ""
+
+msgid "User temporarily unavailable"
+msgstr ""
+
+#, fuzzy
+msgid "No match"
+msgstr "%S oanisho"
+
+msgid "List overflow"
+msgstr ""
+
+msgid "Request ambiguous"
+msgstr ""
+
+msgid "Queue full"
+msgstr ""
+
+msgid "Not while on AOL"
+msgstr ""
+
+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 "
+"encoding he is using, you can specify it in the advanced account options for "
+"your AIM/ICQ account.)"
+msgstr ""
+
+#, c-format
+msgid ""
+"(There was an error receiving this message.  Either you and %s have "
+"different encodings selected, or %s has a buggy client.)"
+msgstr ""
+
+#. Label
+msgid "Buddy Icon"
+msgstr ""
+
+msgid "Voice"
+msgstr ""
+
+msgid "AIM Direct IM"
+msgstr ""
+
+#, fuzzy
+msgid "Get File"
+msgstr "Mafaili ya Matini"
+
+#, fuzzy
+msgid "Games"
+msgstr "Jina"
+
+#, fuzzy
+msgid "Add-Ins"
+msgstr "Nyongeza"
+
+msgid "Send Buddy List"
+msgstr ""
+
+msgid "ICQ Direct Connect"
+msgstr ""
+
+msgid "AP User"
+msgstr ""
+
+msgid "ICQ RTF"
+msgstr ""
+
+msgid "Nihilist"
+msgstr ""
+
+msgid "ICQ Server Relay"
+msgstr ""
+
+msgid "Old ICQ UTF8"
+msgstr ""
+
+msgid "Trillian Encryption"
+msgstr ""
+
+msgid "ICQ UTF8"
+msgstr ""
+
+msgid "Hiptop"
+msgstr ""
+
+#, fuzzy
+msgid "Security Enabled"
+msgstr "Levo ya Usalama"
+
+#, fuzzy
+msgid "Video Chat"
+msgstr "Podikasti Video"
+
+msgid "iChat AV"
+msgstr ""
+
+#, fuzzy
+msgid "Live Video"
+msgstr "Hifadhi video"
+
+#, fuzzy
+msgid "Camera"
+msgstr "Cameroon"
+
+msgid "Screen Sharing"
+msgstr ""
+
+msgid "Free For Chat"
+msgstr ""
+
+msgid "Not Available"
+msgstr "Haipatikani"
+
+msgid "Occupied"
+msgstr ""
+
+msgid "Web Aware"
+msgstr ""
+
+msgid "Invisible"
+msgstr ""
+
+msgid "IP Address"
+msgstr "Anwani-IP"
+
+#, fuzzy
+msgid "Warning Level"
+msgstr "Jumbe za tahadhari"
+
+msgid "Buddy Comment"
+msgstr ""
+
+#, c-format
+msgid ""
+"Could not connect to authentication server:\n"
+"%s"
+msgstr ""
+
+#, c-format
+msgid ""
+"Could not connect to BOS server:\n"
+"%s"
+msgstr ""
+
+#, fuzzy
+msgid "Username sent"
+msgstr "Jina la mtumiaji"
+
+msgid "Connection established, cookie sent"
+msgstr ""
+
+#. TODO: Don't call this with ssi
+msgid "Finalizing connection"
+msgstr ""
+
+#, c-format
+msgid ""
+"Unable to login: Could not sign on as %s because the username is invalid.  "
+"Usernames must be a valid email address, or start with a letter and contain "
+"only letters, numbers and spaces, or contain only numbers."
+msgstr ""
+
+#. Unregistered username
+#. uid is not exist
+#, fuzzy
+msgid "Invalid username."
+msgstr "Jina batili la moduli."
+
+#, fuzzy
+msgid "Incorrect password."
+msgstr "Nywila ya sasa hivi:"
+
+#. Suspended account
+msgid "Your account is currently suspended."
+msgstr ""
+
+#. service temporarily unavailable
+msgid "The AOL Instant Messenger service is temporarily unavailable."
+msgstr ""
+
+#. username connecting too frequently
+#. IP address connecting too frequently
+msgid ""
+"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 ""
+
+#, c-format
+msgid "The client version you are using is too old. Please upgrade at %s"
+msgstr ""
+
+#, fuzzy
+msgid "Could Not Connect"
+msgstr "Imeshindwa kuunganisha"
+
+msgid "Received authorization"
+msgstr ""
+
+#, fuzzy
+msgid "The SecurID key entered is invalid."
+msgstr "Nambari mstari iliyoingizwa ni batili."
+
+msgid "Enter SecurID"
+msgstr ""
+
+msgid "Enter the 6 digit number from the digital display."
+msgstr ""
+
+#. *
+#. * A wrapper for purple_request_action() that uses @c OK and @c Cancel buttons.
+#.
+#, fuzzy
+msgid "_OK"
+msgstr "Sawa"
+
+#, c-format
+msgid "You may be disconnected shortly.  If so, check %s for updates."
+msgstr ""
+
+msgid "Unable to get a valid AIM login hash."
+msgstr ""
+
+#, c-format
+msgid "You may be disconnected shortly.  Check %s for updates."
+msgstr ""
+
+msgid "Unable to get a valid login hash."
+msgstr ""
+
+#, fuzzy
+msgid "Password sent"
+msgstr "Nywila"
+
+msgid "Unable to initialize connection"
+msgstr ""
+
+msgid "Please authorize me so I can add you to my buddy list."
+msgstr ""
+
+msgid "Authorization Request Message:"
+msgstr ""
+
+msgid "Please authorize me!"
+msgstr ""
+
+msgid "No reason given."
+msgstr ""
+
+msgid "Authorization Denied Message:"
+msgstr ""
+
+#, c-format
+msgid ""
+"The user %u has denied your request to add them to your buddy list for the "
+"following reason:\n"
+"%s"
+msgstr ""
+
+msgid "ICQ authorization denied."
+msgstr ""
+
+#. Someone has granted you authorization
+#, c-format
+msgid "The user %u has granted your request to add them to your buddy list."
+msgstr ""
+
+#, c-format
+msgid ""
+"You have received a special message\n"
+"\n"
+"From: %s [%s]\n"
+"%s"
+msgstr ""
+
+#, c-format
+msgid ""
+"You have received an ICQ page\n"
+"\n"
+"From: %s [%s]\n"
+"%s"
+msgstr ""
+
+#, c-format
+msgid ""
+"You have received an ICQ email from %s [%s]\n"
+"\n"
+"Message is:\n"
+"%s"
+msgstr ""
+
+#, c-format
+msgid "ICQ user %u has sent you a buddy: %s (%s)"
+msgstr ""
+
+msgid "Do you want to add this buddy to your buddy list?"
+msgstr ""
+
+#, fuzzy
+msgid "_Add"
+msgstr "Ongeza"
+
+msgid "_Decline"
+msgstr ""
+
+#, c-format
+msgid "You missed %hu message from %s because it was invalid."
+msgid_plural "You missed %hu messages from %s because they were invalid."
+msgstr[0] ""
+msgstr[1] ""
+
+#, c-format
+msgid "You missed %hu message from %s because it was too large."
+msgid_plural "You missed %hu messages from %s because they were too large."
+msgstr[0] ""
+msgstr[1] ""
+
+#, c-format
+msgid ""
+"You missed %hu message from %s because the rate limit has been exceeded."
+msgid_plural ""
+"You missed %hu messages from %s because the rate limit has been exceeded."
+msgstr[0] ""
+msgstr[1] ""
+
+#, c-format
+msgid ""
+"You missed %hu message from %s because his/her warning level is too high."
+msgid_plural ""
+"You missed %hu messages from %s because his/her warning level is too high."
+msgstr[0] ""
+msgstr[1] ""
+
+#, c-format
+msgid "You missed %hu message from %s because your warning level is too high."
+msgid_plural ""
+"You missed %hu messages from %s because your warning level is too high."
+msgstr[0] ""
+msgstr[1] ""
+
+#, c-format
+msgid "You missed %hu message from %s for an unknown reason."
+msgid_plural "You missed %hu messages from %s for an unknown reason."
+msgstr[0] ""
+msgstr[1] ""
+
+#. Data is assumed to be the destination bn
+#, c-format
+msgid "Unable to send message: %s"
+msgstr ""
+
+#, fuzzy
+msgid "Unknown reason."
+msgstr "Hitilafu isiyojulikana"
+
+#, c-format
+msgid "Unable to send message to %s:"
+msgstr ""
+
+#, c-format
+msgid "User information not available: %s"
+msgstr ""
+
+msgid "Online Since"
+msgstr ""
+
+msgid "Member Since"
+msgstr ""
+
+msgid "Profile"
+msgstr ""
+
+msgid "Your AIM connection may be lost."
+msgstr ""
+
+#. The conversion failed!
+msgid ""
+"[Unable to display a message from this user because it contained invalid "
+"characters.]"
+msgstr ""
+
+msgid ""
+"The last action you attempted could not be performed because you are over "
+"the rate limit. Please wait 10 seconds and try again."
+msgstr ""
+
+#, c-format
+msgid "You have been disconnected from chat room %s."
+msgstr ""
+
+msgid "Mobile Phone"
+msgstr ""
+
+msgid "Personal Web Page"
+msgstr ""
+
+#. aim_userinfo_t
+#. strip_html_tags
+#, fuzzy
+msgid "Additional Information"
+msgstr "Inachunguza taarifa"
+
+msgid "Zip Code"
+msgstr ""
+
+#, fuzzy
+msgid "Work Information"
+msgstr "Taarifa Zaidi"
+
+msgid "Division"
+msgstr ""
+
+#, fuzzy
+msgid "Position"
+msgstr "Nafasi:"
+
+msgid "Web Page"
+msgstr ""
+
+msgid "Pop-Up Message"
+msgstr ""
+
+#, c-format
+msgid "The following username is associated with %s"
+msgid_plural "The following usernames are associated with %s"
+msgstr[0] ""
+msgstr[1] ""
+
+#, c-format
+msgid "No results found for email address %s"
+msgstr ""
+
+#, c-format
+msgid "You should receive an email asking to confirm %s."
+msgstr ""
+
+msgid "Account Confirmation Requested"
+msgstr ""
+
+#, c-format
+msgid ""
+"Error 0x%04x: Unable to format username because the requested name differs "
+"from the original."
+msgstr ""
+
+#, c-format
+msgid "Error 0x%04x: Unable to format username because it is invalid."
+msgstr ""
+
+#, c-format
+msgid ""
+"Error 0x%04x: Unable to format username because the requested name is too "
+"long."
+msgstr ""
+
+#, c-format
+msgid ""
+"Error 0x%04x: Unable to change email address because there is already a "
+"request pending for this username."
+msgstr ""
+
+#, c-format
+msgid ""
+"Error 0x%04x: Unable to change email address because the given address has "
+"too many usernames associated with it."
+msgstr ""
+
+#, c-format
+msgid ""
+"Error 0x%04x: Unable to change email address because the given address is "
+"invalid."
+msgstr ""
+
+#, c-format
+msgid "Error 0x%04x: Unknown error."
+msgstr ""
+
+msgid "Error Changing Account Info"
+msgstr ""
+
+#, c-format
+msgid "The email address for %s is %s"
+msgstr ""
+
+msgid "Account Info"
+msgstr ""
+
+msgid ""
+"Your IM Image was not sent. You must be Direct Connected to send IM Images."
+msgstr ""
+
+msgid "Unable to set AIM profile."
+msgstr ""
+
+msgid ""
+"You have probably requested to set your profile before the login procedure "
+"completed.  Your profile remains unset; try setting it again when you are "
+"fully connected."
+msgstr ""
+
+#, c-format
+msgid ""
+"The maximum profile length of %d byte has been exceeded.  It has been "
+"truncated for you."
+msgid_plural ""
+"The maximum profile length of %d bytes has been exceeded.  It has been "
+"truncated for you."
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Profile too long."
+msgstr ""
+
+#, c-format
+msgid ""
+"The maximum away message length of %d byte has been exceeded.  It has been "
+"truncated for you."
+msgid_plural ""
+"The maximum away message length of %d bytes has been exceeded.  It has been "
+"truncated for you."
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Away message too long."
+msgstr ""
+
+#, c-format
+msgid ""
+"Could not add the buddy %s because the username is invalid.  Usernames must "
+"be a valid email address, or start with a letter and contain only letters, "
+"numbers and spaces, or contain only numbers."
+msgstr ""
+
+#, fuzzy
+msgid "Unable to Add"
+msgstr "Nimeshindwa Kusasisha"
+
+msgid "Unable to Retrieve Buddy List"
+msgstr ""
+
+msgid ""
+"The AIM servers were temporarily unable to send your buddy list.  Your buddy "
+"list is not lost, and will probably become available in a few minutes."
+msgstr ""
+
+msgid "Orphans"
+msgstr ""
+
+#, c-format
+msgid ""
+"Could not add the buddy %s because you have too many buddies in your buddy "
+"list.  Please remove one and try again."
+msgstr ""
+
+#, fuzzy
+msgid "(no name)"
+msgstr "(hakuna lakabu)"
+
+#, c-format
+msgid "Could not add the buddy %s for an unknown reason."
+msgstr ""
+
+#, c-format
+msgid ""
+"The user %s has given you permission to add him or her to your buddy list.  "
+"Do you want to add this user?"
+msgstr ""
+
+msgid "Authorization Given"
+msgstr ""
+
+#. Granted
+#, c-format
+msgid "The user %s has granted your request to add them to your buddy list."
+msgstr ""
+
+msgid "Authorization Granted"
+msgstr ""
+
+#. Denied
+#, c-format
+msgid ""
+"The user %s has denied your request to add them to your buddy list for the "
+"following reason:\n"
+"%s"
+msgstr ""
+
+#, fuzzy
+msgid "Authorization Denied"
+msgstr "Uthibitisho unatakiwa"
+
+msgid "_Exchange:"
+msgstr ""
+
+msgid "Your IM Image was not sent. You cannot send IM Images in AIM chats."
+msgstr ""
+
+msgid "iTunes Music Store Link"
+msgstr ""
+
+#, c-format
+msgid "Buddy Comment for %s"
+msgstr ""
+
+msgid "Buddy Comment:"
+msgstr ""
+
+#, c-format
+msgid "You have selected to open a Direct IM connection with %s."
+msgstr ""
+
+msgid ""
+"Because this reveals your IP address, it may be considered a security risk.  "
+"Do you wish to continue?"
+msgstr ""
+
+#, fuzzy
+msgid "C_onnect"
+msgstr "Yaliyomo"
+
+msgid "Get AIM Info"
+msgstr ""
+
+#. We only do this if the user is in our buddy list
+msgid "Edit Buddy Comment"
+msgstr ""
+
+msgid "Get Status Msg"
+msgstr ""
+
+#, fuzzy
+msgid "Direct IM"
+msgstr "Mwelekeo"
+
+msgid "Re-request Authorization"
+msgstr ""
+
+msgid "Require authorization"
+msgstr ""
+
+msgid "Web aware (enabling this will cause you to receive SPAM!)"
+msgstr ""
+
+msgid "ICQ Privacy Options"
+msgstr ""
+
+msgid "The new formatting is invalid."
+msgstr ""
+
+msgid "Username formatting can change only capitalization and whitespace."
+msgstr ""
+
+msgid "Change Address To:"
+msgstr ""
+
+msgid "<i>you are not waiting for authorization</i>"
+msgstr ""
+
+msgid "You are awaiting authorization from the following buddies"
+msgstr ""
+
+msgid ""
+"You can re-request authorization from these buddies by right-clicking on "
+"them and selecting \"Re-request Authorization.\""
+msgstr ""
+
+msgid "Find Buddy by Email"
+msgstr ""
+
+msgid "Search for a buddy by email address"
+msgstr ""
+
+msgid "Type the email address of the buddy you are searching for."
+msgstr ""
+
+#, fuzzy
+msgid "_Search"
+msgstr "Tafuta"
+
+msgid "Set User Info (web)..."
+msgstr ""
+
+#, fuzzy
+msgid "Change Password (web)"
+msgstr "Badil &Nywila"
+
+msgid "Configure IM Forwarding (web)"
+msgstr ""
+
+#. ICQ actions
+msgid "Set Privacy Options..."
+msgstr ""
+
+#. AIM actions
+#, fuzzy
+msgid "Confirm Account"
+msgstr "Thibitisha kufunga"
+
+msgid "Display Currently Registered Email Address"
+msgstr ""
+
+msgid "Change Currently Registered Email Address..."
+msgstr ""
+
+msgid "Show Buddies Awaiting Authorization"
+msgstr ""
+
+msgid "Search for Buddy by Email Address..."
+msgstr ""
+
+msgid "Search for Buddy by Information"
+msgstr ""
+
+msgid ""
+"Always use AIM/ICQ proxy server for\n"
+"file transfers and direct IM (slower,\n"
+"but does not reveal your IP address)"
+msgstr ""
+
+msgid "Allow multiple simultaneous logins"
+msgstr ""
+
+#, c-format
+msgid "Asking %s to connect to us at %s:%hu for Direct IM."
+msgstr ""
+
+#, c-format
+msgid "Attempting to connect to %s:%hu."
+msgstr ""
+
+msgid "Attempting to connect via proxy server."
+msgstr ""
+
+#, c-format
+msgid "%s has just asked to directly connect to %s"
+msgstr ""
+
+msgid ""
+"This requires a direct connection between the two computers and is necessary "
+"for IM Images.  Because your IP address will be revealed, this may be "
+"considered a privacy risk."
+msgstr ""
+
+msgid "Aquarius"
+msgstr ""
+
+msgid "Pisces"
+msgstr ""
+
+msgid "Aries"
+msgstr ""
+
+#, fuzzy
+msgid "Taurus"
+msgstr "Kinauru"
+
+msgid "Gemini"
+msgstr ""
+
+#, fuzzy
+msgid "Cancer"
+msgstr "Ghairi"
+
+#, fuzzy
+msgid "Leo"
+msgstr "Lao"
+
+msgid "Virgo"
+msgstr ""
+
+#, fuzzy
+msgid "Libra"
+msgstr "Libya"
+
+msgid "Scorpio"
+msgstr ""
+
+msgid "Sagittarius"
+msgstr ""
+
+msgid "Capricorn"
+msgstr ""
+
+#, fuzzy
+msgid "Rat"
+msgstr "Jmosi"
+
+msgid "Ox"
+msgstr ""
+
+#, fuzzy
+msgid "Tiger"
+msgstr "Niger"
+
+#, fuzzy
+msgid "Rabbit"
+msgstr "Mibbit"
+
+msgid "Dragon"
+msgstr ""
+
+#, fuzzy
+msgid "Snake"
+msgstr "Hifadhi"
+
+#, fuzzy
+msgid "Horse"
+msgstr "Nyumbani"
+
+msgid "Goat"
+msgstr ""
+
+#, fuzzy
+msgid "Monkey"
+msgstr "Jumatatu"
+
+#, fuzzy
+msgid "Rooster"
+msgstr "Mwandishi wa habari"
+
+msgid "Dog"
+msgstr ""
+
+msgid "Pig"
+msgstr ""
+
+#, fuzzy
+msgid "Other"
+msgstr "Wengine"
+
+#, fuzzy
+msgid "Visible"
+msgstr "Lemaza"
+
+msgid "Friend Only"
+msgstr ""
+
+#, fuzzy
+msgid "Private"
+msgstr "Faragha"
+
+msgid "QQ Number"
+msgstr ""
+
+msgid "Country/Region"
+msgstr ""
+
+msgid "Province/State"
+msgstr ""
+
+#, fuzzy
+msgid "Zipcode"
+msgstr "Folda la Zipu"
+
+msgid "Phone Number"
+msgstr ""
+
+msgid "Authorize adding"
+msgstr ""
+
+msgid "Cellphone Number"
+msgstr ""
+
+msgid "Personal Introduction"
+msgstr ""
+
+msgid "City/Area"
+msgstr ""
+
+msgid "Publish Mobile"
+msgstr ""
+
+msgid "Publish Contact"
+msgstr ""
+
+#, fuzzy
+msgid "College"
+msgstr "Kunja"
+
+msgid "Horoscope"
+msgstr ""
+
+msgid "Zodiac"
+msgstr ""
+
+#, fuzzy
+msgid "Blood"
+msgstr "Zuia"
+
+#, fuzzy
+msgid "True"
+msgstr "Jnne"
+
+#, fuzzy
+msgid "False"
+msgstr "si kweli"
+
+msgid "Modify Contact"
+msgstr ""
+
+#, fuzzy
+msgid "Modify Address"
+msgstr "Anwani ya Barua pepe"
+
+msgid "Modify Extended Information"
+msgstr ""
+
+#, fuzzy
+msgid "Modify Information"
+msgstr "Taarifa Zaidi"
+
+msgid "Update"
+msgstr "Sasisha"
+
+msgid "Could not change buddy information."
+msgstr ""
+
+#, fuzzy
+msgid "Mobile"
+msgstr "Moduli"
+
+#, fuzzy
+msgid "Note"
+msgstr "Bila"
+
+#. callback
+msgid "Buddy Memo"
+msgstr ""
+
+msgid "Change his/her memo as you like"
+msgstr ""
+
+#, fuzzy
+msgid "_Modify"
+msgstr "R&ekebisha"
+
+msgid "Memo Modify"
+msgstr ""
+
+msgid "Server says:"
+msgstr ""
+
+msgid "Your request was accepted."
+msgstr ""
+
+msgid "Your request was rejected."
+msgstr ""
+
+#, c-format
+msgid "%u requires verification"
+msgstr ""
+
+msgid "Add buddy question"
+msgstr ""
+
+#, fuzzy
+msgid "Enter answer here"
+msgstr "Ingiza neno tafuti:"
+
+#, fuzzy
+msgid "Send"
+msgstr "Kivenda"
+
+#, fuzzy
+msgid "Invalid answer."
+msgstr "Agumenti batili"
+
+msgid "Authorization denied message:"
+msgstr ""
+
+msgid "Sorry, you're not my style."
+msgstr ""
+
+#, c-format
+msgid "%u needs authorization"
+msgstr ""
+
+msgid "Add buddy authorize"
+msgstr ""
+
+msgid "Enter request here"
+msgstr ""
+
+msgid "Would you be my friend?"
+msgstr ""
+
+msgid "QQ Buddy"
+msgstr ""
+
+msgid "Add buddy"
+msgstr ""
+
+msgid "Invalid QQ Number"
+msgstr ""
+
+msgid "Failed sending authorize"
+msgstr ""
+
+#, c-format
+msgid "Failed removing buddy %u"
+msgstr ""
+
+#, c-format
+msgid "Failed removing me from %d's buddy list"
+msgstr ""
+
+msgid "No reason given"
+msgstr ""
+
+#. only need to get value
+#, c-format
+msgid "You have been added by %s"
+msgstr ""
+
+#, fuzzy
+msgid "Would you like to add him?"
+msgstr "Ungependa kuhifadhi faili hili?"
+
+#, c-format
+msgid "Rejected by %s"
+msgstr ""
+
+#, fuzzy, c-format
+msgid "Message: %s"
+msgstr "Ujumbe"
+
+msgid "ID: "
+msgstr ""
+
+#, fuzzy
+msgid "Group ID"
+msgstr "Kusanya kwa:"
+
+msgid "QQ Qun"
+msgstr ""
+
+msgid "Please enter Qun number"
+msgstr ""
+
+msgid "You can only search for permanent Qun\n"
+msgstr ""
+
+msgid "(Invalid UTF-8 string)"
+msgstr ""
+
+#, fuzzy
+msgid "Not member"
+msgstr "Novemba"
+
+#, fuzzy
+msgid "Member"
+msgstr "Novemba"
+
+msgid "Requesting"
+msgstr ""
+
+msgid "Admin"
+msgstr ""
+
+msgid "Notice"
+msgstr ""
+
+#, fuzzy
+msgid "Detail"
+msgstr "Ufafanuzi"
+
+msgid "Creator"
+msgstr ""
+
+#, fuzzy
+msgid "About me"
+msgstr "Kuhusu %S"
+
+msgid "Category"
+msgstr ""
+
+msgid "The Qun does not allow others to join"
+msgstr ""
+
+msgid "Join QQ Qun"
+msgstr ""
+
+msgid "Input request here"
+msgstr ""
+
+#, c-format
+msgid "Successfully joined Qun %s (%u)"
+msgstr ""
+
+#, fuzzy
+msgid "Successfully joined Qun"
+msgstr "Imesakinishwa kimafanikio %S."
+
+#, c-format
+msgid "Qun %u denied from joining"
+msgstr ""
+
+msgid "QQ Qun Operation"
+msgstr ""
+
+#, fuzzy
+msgid "Failed:"
+msgstr "Imeshindwa"
+
+msgid "Join Qun, Unknown Reply"
+msgstr ""
+
+#, fuzzy
+msgid "Quit Qun"
+msgstr "Funga %s"
+
+msgid ""
+"Note, if you are the creator, \n"
+"this operation will eventually remove this Qun."
+msgstr ""
+
+msgid "Sorry, you are not our style"
+msgstr ""
+
+msgid "Successfully changed Qun members"
+msgstr ""
+
+msgid "Successfully changed Qun information"
+msgstr ""
+
+msgid "You have successfully created a Qun"
+msgstr ""
+
+msgid "Would you like to set up detailed information now?"
+msgstr ""
+
+#, fuzzy
+msgid "Setup"
+msgstr "Sep"
+
+#, c-format
+msgid "%u requested to join Qun %u for %s"
+msgstr ""
+
+#, c-format
+msgid "%u request to join Qun %u"
+msgstr ""
+
+#, c-format
+msgid "Failed to join Qun %u, operated by admin %u"
+msgstr ""
+
+#, c-format
+msgid "<b>Joining Qun %u is approved by admin %u for %s</b>"
+msgstr ""
+
+#, c-format
+msgid "<b>Removed buddy %u.</b>"
+msgstr ""
+
+#, c-format
+msgid "<b>New buddy %u joined.</b>"
+msgstr ""
+
+#, fuzzy, c-format
+msgid "Unknown-%d"
+msgstr "Isiyojulikana: %S"
+
+#, fuzzy
+msgid "Level"
+msgstr "Lebo"
+
+msgid " VIP"
+msgstr ""
+
+msgid " TCP"
+msgstr ""
+
+msgid " FromMobile"
+msgstr ""
+
+msgid " BindMobile"
+msgstr ""
+
+#, fuzzy
+msgid " Video"
+msgstr "Hifadhi video"
+
+#, fuzzy
+msgid " Zone"
+msgstr "Bila"
+
+#, fuzzy
+msgid "Flag"
+msgstr "Kifulah"
+
+msgid "Ver"
+msgstr ""
+
+#, fuzzy
+msgid "Invalid name"
+msgstr "Njia batili"
+
+msgid "Select icon..."
+msgstr ""
+
+#, c-format
+msgid "<b>Login time</b>: %d-%d-%d, %d:%d:%d<br>\n"
+msgstr ""
+
+#, c-format
+msgid "<b>Total Online Buddies</b>: %d<br>\n"
+msgstr ""
+
+#, c-format
+msgid "<b>Last Refresh</b>: %d-%d-%d, %d:%d:%d<br>\n"
+msgstr ""
+
+#, c-format
+msgid "<b>Server</b>: %s<br>\n"
+msgstr ""
+
+#, c-format
+msgid "<b>Client Tag</b>: %s<br>\n"
+msgstr ""
+
+#, c-format
+msgid "<b>Connection Mode</b>: %s<br>\n"
+msgstr ""
+
+#, c-format
+msgid "<b>My Internet IP</b>: %s:%d<br>\n"
+msgstr ""
+
+#, c-format
+msgid "<b>Sent</b>: %lu<br>\n"
+msgstr ""
+
+#, c-format
+msgid "<b>Resend</b>: %lu<br>\n"
+msgstr ""
+
+#, c-format
+msgid "<b>Lost</b>: %lu<br>\n"
+msgstr ""
+
+#, c-format
+msgid "<b>Received</b>: %lu<br>\n"
+msgstr ""
+
+#, c-format
+msgid "<b>Received Duplicate</b>: %lu<br>\n"
+msgstr ""
+
+#, c-format
+msgid "<b>Time</b>: %d-%d-%d, %d:%d:%d<br>\n"
+msgstr ""
+
+#, c-format
+msgid "<b>IP</b>: %s<br>\n"
+msgstr ""
+
+#, fuzzy
+msgid "Login Information"
+msgstr "Taarifa Zaidi"
+
+msgid "<p><b>Original Author</b>:<br>\n"
+msgstr ""
+
+msgid "<p><b>Code Contributors</b>:<br>\n"
+msgstr ""
+
+msgid "<p><b>Lovely Patch Writers</b>:<br>\n"
+msgstr ""
+
+msgid "<p><b>Acknowledgement</b>:<br>\n"
+msgstr ""
+
+msgid "<p><b>Scrupulous Testers</b>:<br>\n"
+msgstr ""
+
+msgid "and more, please let me know... thank you!))"
+msgstr ""
+
+msgid "<p><i>And, all the boys in the backroom...</i><br>\n"
+msgstr ""
+
+msgid "<i>Feel free to join us!</i> :)"
+msgstr ""
+
+#, c-format
+msgid "About OpenQ %s"
+msgstr ""
+
+msgid "Change Icon"
+msgstr ""
+
+#, fuzzy
+msgid "Change Password"
+msgstr "Badil &Nywila"
+
+#, fuzzy
+msgid "Account Information"
+msgstr "Inachunguza taarifa"
+
+msgid "Update all QQ Quns"
+msgstr ""
+
+msgid "About OpenQ"
+msgstr ""
+
+msgid "Modify Buddy Memo"
+msgstr ""
+
+#. *< type
+#. *< ui_requirement
+#. *< flags
+#. *< dependencies
+#. *< priority
+#. *< id
+#. *< name
+#. *< version
+#. *  summary
+#. *  description
+msgid "QQ Protocol Plugin"
+msgstr ""
+
+msgid "Auto"
+msgstr ""
+
+#, fuzzy
+msgid "Select Server"
+msgstr "SSL Seva"
+
+msgid "QQ2005"
+msgstr ""
+
+msgid "QQ2007"
+msgstr ""
+
+msgid "QQ2008"
+msgstr ""
+
+msgid "Connect by TCP"
+msgstr ""
+
+msgid "Show server notice"
+msgstr ""
+
+msgid "Show server news"
+msgstr ""
+
+msgid "Show chat room when msg comes"
+msgstr ""
+
+msgid "Keep alive interval (seconds)"
+msgstr ""
+
+msgid "Update interval (seconds)"
+msgstr ""
+
+msgid "Cannot decrypt server reply"
+msgstr ""
+
+#, c-format
+msgid "Failed requesting token, 0x%02X"
+msgstr ""
+
+#, c-format
+msgid "Invalid token len, %d"
+msgstr ""
+
+#. extend redirect used in QQ2006
+msgid "Redirect_EX is not currently supported"
+msgstr ""
+
+#. need activation
+#. need activation
+#. need activation
+#, fuzzy
+msgid "Activation required"
+msgstr "Uthibitisho unatakiwa"
+
+#, c-format
+msgid "Unknown reply code when logging in (0x%02X)"
+msgstr ""
+
+msgid "Could not decrypt server reply"
+msgstr ""
+
+msgid "Requesting captcha"
+msgstr ""
+
+msgid "Checking captcha"
+msgstr ""
+
+msgid "Failed captcha verification"
+msgstr ""
+
+#, fuzzy
+msgid "Captcha Image"
+msgstr "Naki&li Picha"
+
+msgid "Enter code"
+msgstr ""
+
+msgid "QQ Captcha Verification"
+msgstr ""
+
+msgid "Enter the text from the image"
+msgstr ""
+
+#, c-format
+msgid "Unknown reply when checking password (0x%02X)"
+msgstr ""
+
+#, c-format
+msgid ""
+"Unknown reply code when logging in (0x%02X):\n"
+"%s"
+msgstr ""
+
+#, fuzzy
+msgid "Unable to connect."
+msgstr "Haikuweza kuunganishwa"
+
+#, fuzzy
+msgid "Socket error"
+msgstr "Hitilafu ya hati"
+
+msgid "Unable to read from socket"
+msgstr ""
+
+#, fuzzy
+msgid "Write Error"
+msgstr "Hitilafu ya Printa"
+
+#, fuzzy
+msgid "Connection lost"
+msgstr "Unganisho"
+
+#, fuzzy
+msgid "Getting server"
+msgstr "Anza"
+
+msgid "Requesting token"
+msgstr ""
+
+msgid "Couldn't resolve host"
+msgstr ""
+
+msgid "Invalid server or port"
+msgstr ""
+
+#, fuzzy
+msgid "Connecting to server"
+msgstr "Naunganisha na %1$S…"
+
+#, fuzzy
+msgid "QQ Error"
+msgstr "Hitikafu "
+
+#, c-format
+msgid ""
+"Server News:\n"
+"%s\n"
+"%s\n"
+"%s"
+msgstr ""
+
+#, c-format
+msgid "%s:%s"
+msgstr ""
+
+#, fuzzy, c-format
+msgid "From %s:"
+msgstr "Kutoka %S"
+
+#, c-format
+msgid ""
+"Server notice From %s: \n"
+"%s"
+msgstr ""
+
+msgid "Unknown SERVER CMD"
+msgstr ""
+
+#, c-format
+msgid ""
+"Error reply of %s(0x%02X)\n"
+"Room %u, reply 0x%02X"
+msgstr ""
+
+msgid "QQ Qun Command"
+msgstr ""
+
+msgid "Could not decrypt login reply"
+msgstr ""
+
+msgid "Unknown LOGIN CMD"
+msgstr ""
+
+msgid "Unknown CLIENT CMD"
+msgstr ""
+
+#, c-format
+msgid "%d has declined the file %s"
+msgstr ""
+
+msgid "File Send"
+msgstr ""
+
+#, c-format
+msgid "%d canceled the transfer of %s"
+msgstr ""
+
+msgid "Connection closed (writing)"
+msgstr ""
+
+#, c-format
+msgid "<b>Group Title:</b> %s<br>"
+msgstr ""
+
+#, c-format
+msgid "<b>Notes Group ID:</b> %s<br>"
+msgstr ""
+
+#, c-format
+msgid "Info for Group %s"
+msgstr ""
+
+msgid "Notes Address Book Information"
+msgstr ""
+
+msgid "Invite Group to Conference..."
+msgstr ""
+
+msgid "Get Notes Address Book Info"
+msgstr ""
+
+msgid "Sending Handshake"
+msgstr ""
+
+msgid "Waiting for Handshake Acknowledgement"
+msgstr ""
+
+msgid "Handshake Acknowledged, Sending Login"
+msgstr ""
+
+msgid "Waiting for Login Acknowledgement"
+msgstr ""
+
+msgid "Login Redirected"
+msgstr ""
+
+msgid "Forcing Login"
+msgstr ""
+
+msgid "Login Acknowledged"
+msgstr ""
+
+msgid "Starting Services"
+msgstr ""
+
+#, c-format
+msgid ""
+"A Sametime administrator has issued the following announcement on server %s"
+msgstr ""
+
+msgid "Sametime Administrator Announcement"
+msgstr ""
+
+#, fuzzy
+msgid "Connection reset"
+msgstr "Muunganisho ulikataliwa"
+
+#, fuzzy, c-format
+msgid "Error reading from socket: %s"
+msgstr "Hitilafu ya upakiaji lahamtindo: %S"
+
+#. this is a regular connect, error out
+#, fuzzy
+msgid "Unable to connect to host"
+msgstr "Haikuweza kuunganishwa"
+
+#, c-format
+msgid "Announcement from %s"
+msgstr ""
+
+msgid "Conference Closed"
+msgstr ""
+
+msgid "Unable to send message: "
+msgstr ""
+
+msgid "Place Closed"
+msgstr ""
+
+msgid "Microphone"
+msgstr ""
+
+#, fuzzy
+msgid "Speakers"
+msgstr "Seva"
+
+#, fuzzy
+msgid "Video Camera"
+msgstr "Kicheza Video"
+
+msgid "Supports"
+msgstr ""
+
+msgid "External User"
+msgstr ""
+
+msgid "Create conference with user"
+msgstr ""
+
+#, c-format
+msgid ""
+"Please enter a topic for the new conference, and an invitation message to be "
+"sent to %s"
+msgstr ""
+
+msgid "New Conference"
+msgstr ""
+
+#, fuzzy
+msgid "Create"
+msgstr "Kicree"
+
+#, fuzzy
+msgid "Available Conferences"
+msgstr "Profaili Zipatikanazo"
+
+msgid "Create New Conference..."
+msgstr ""
+
+msgid "Invite user to a conference"
+msgstr ""
+
+#, c-format
+msgid ""
+"Select a conference from the list below to send an invite to user %s. Select "
+"\"Create New Conference\" if you'd like to create a new conference to invite "
+"this user to."
+msgstr ""
+
+msgid "Invite to Conference"
+msgstr ""
+
+msgid "Invite to Conference..."
+msgstr ""
+
+msgid "Send TEST Announcement"
+msgstr ""
+
+msgid "Topic:"
+msgstr ""
+
+msgid "No Sametime Community Server specified"
+msgstr ""
+
+#, c-format
+msgid ""
+"No host or IP address has been configured for the Meanwhile account %s. "
+"Please enter one below to continue logging in."
+msgstr ""
+
+msgid "Meanwhile Connection Setup"
+msgstr ""
+
+msgid "No Sametime Community Server Specified"
+msgstr ""
+
+#, fuzzy
+msgid "Connect"
+msgstr "Yaliyomo"
+
+#, c-format
+msgid "Unknown (0x%04x)<br>"
+msgstr ""
+
+msgid "Last Known Client"
+msgstr ""
+
+#, fuzzy
+msgid "User Name"
+msgstr "Jina la Mtumiaji:"
+
+msgid "Sametime ID"
+msgstr ""
+
+msgid "An ambiguous user ID was entered"
+msgstr ""
+
+#, c-format
+msgid ""
+"The identifier '%s' may possibly refer to any of the following users. Please "
+"select the correct user from the list below to add them to your buddy list."
+msgstr ""
+
+#, fuzzy
+msgid "Select User"
+msgstr "Chagua &Yote"
+
+msgid "Unable to add user: user not found"
+msgstr ""
+
+#, c-format
+msgid ""
+"The identifier '%s' did not match any users in your Sametime community. This "
+"entry has been removed from your buddy list."
+msgstr ""
+
+#, c-format
+msgid ""
+"Error reading file %s: \n"
+"%s\n"
+msgstr ""
+
+msgid "Remotely Stored Buddy List"
+msgstr ""
+
+msgid "Buddy List Storage Mode"
+msgstr ""
+
+msgid "Local Buddy List Only"
+msgstr ""
+
+msgid "Merge List from Server"
+msgstr ""
+
+msgid "Merge and Save List to Server"
+msgstr ""
+
+msgid "Synchronize List with Server"
+msgstr ""
+
+#, c-format
+msgid "Import Sametime List for Account %s"
+msgstr ""
+
+#, c-format
+msgid "Export Sametime List for Account %s"
+msgstr ""
+
+msgid "Unable to add group: group exists"
+msgstr ""
+
+#, c-format
+msgid "A group named '%s' already exists in your buddy list."
+msgstr ""
+
+#, fuzzy
+msgid "Unable to add group"
+msgstr "Haiwezi kuongeza moduli"
+
+msgid "Possible Matches"
+msgstr ""
+
+msgid "Notes Address Book group results"
+msgstr ""
+
+#, c-format
+msgid ""
+"The identifier '%s' may possibly refer to any of the following Notes Address "
+"Book groups. Please select the correct group from the list below to add it "
+"to your buddy list."
+msgstr ""
+
+msgid "Select Notes Address Book"
+msgstr ""
+
+msgid "Unable to add group: group not found"
+msgstr ""
+
+#, c-format
+msgid ""
+"The identifier '%s' did not match any Notes Address Book groups in your "
+"Sametime community."
+msgstr ""
+
+msgid "Notes Address Book Group"
+msgstr ""
+
+msgid ""
+"Enter the name of a Notes Address Book group in the field below to add the "
+"group and its members to your buddy list."
+msgstr ""
+
+#, fuzzy, c-format
+msgid "Search results for '%s'"
+msgstr "Majibu ya kutafutwa kwa"
+
+#, c-format
+msgid ""
+"The identifier '%s' may possibly refer to any of the following users. You "
+"may add these users to your buddy list or send them messages with the action "
+"buttons below."
+msgstr ""
+
+#, fuzzy
+msgid "Search Results"
+msgstr "Tafuta matokeo"
+
+#, fuzzy
+msgid "No matches"
+msgstr "%S maoanisho"
+
+#, c-format
+msgid "The identifier '%s' did not match any users in your Sametime community."
+msgstr ""
+
+#, fuzzy
+msgid "No Matches"
+msgstr "%S maoanisho"
+
+msgid "Search for a user"
+msgstr ""
+
+msgid ""
+"Enter a name or partial ID in the field below to search for matching users "
+"in your Sametime community."
+msgstr ""
+
+#, fuzzy
+msgid "User Search"
+msgstr "Tafuti Mpya"
+
+msgid "Import Sametime List..."
+msgstr ""
+
+msgid "Export Sametime List..."
+msgstr ""
+
+msgid "Add Notes Address Book Group..."
+msgstr ""
+
+msgid "User Search..."
+msgstr ""
+
+msgid "Force login (ignore server redirects)"
+msgstr ""
+
+#. pretend to be Sametime Connect
+msgid "Hide client identity"
+msgstr ""
+
+#, c-format
+msgid "User %s is not present in the network"
+msgstr ""
+
+msgid "Key Agreement"
+msgstr "Makubaliano Muhimu"
+
+msgid "Cannot perform the key agreement"
+msgstr ""
+
+msgid "Error occurred during key agreement"
+msgstr ""
+
+#, fuzzy
+msgid "Key Agreement failed"
+msgstr "Makubaliano Muhimu"
+
+msgid "Timeout during key agreement"
+msgstr ""
+
+msgid "Key agreement was aborted"
+msgstr ""
+
+msgid "Key agreement is already started"
+msgstr ""
+
+msgid "Key agreement cannot be started with yourself"
+msgstr ""
+
+msgid "The remote user is not present in the network any more"
+msgstr ""
+
+#, c-format
+msgid ""
+"Key agreement request received from %s. Would you like to perform the key "
+"agreement?"
+msgstr ""
+
+#, c-format
+msgid ""
+"The remote user is waiting key agreement on:\n"
+"Remote host: %s\n"
+"Remote port: %d"
+msgstr ""
+
+#, fuzzy
+msgid "Key Agreement Request"
+msgstr "Makubaliano Muhimu"
+
+msgid "IM With Password"
+msgstr ""
+
+msgid "Cannot set IM key"
+msgstr ""
+
+#, fuzzy
+msgid "Set IM Password"
+msgstr "Onyesha Nywila"
+
+#, fuzzy
+msgid "Get Public Key"
+msgstr "Ufunguo Huria wa Muhusika"
+
+msgid "Cannot fetch the public key"
+msgstr ""
+
+#, fuzzy
+msgid "Show Public Key"
+msgstr "Ufunguo Huria wa Muhusika"
+
+msgid "Could not load public key"
+msgstr ""
+
+#, fuzzy
+msgid "User Information"
+msgstr "Taarifa Zaidi"
+
+msgid "Cannot get user information"
+msgstr ""
+
+#, c-format
+msgid "The %s buddy is not trusted"
+msgstr ""
+
+msgid ""
+"You cannot receive buddy notifications until you import his/her public key.  "
+"You can use the Get Public Key command to get the public key."
+msgstr ""
+
+#. Open file selector to select the public key.
+msgid "Open..."
+msgstr ""
+
+#, c-format
+msgid "The %s buddy is not present in the network"
+msgstr ""
+
+msgid ""
+"To add the buddy you must import his/her public key. Press Import to import "
+"a public key."
+msgstr ""
+
+#, fuzzy
+msgid "_Import..."
+msgstr "&Leta…"
+
+msgid "Select correct user"
+msgstr ""
+
+msgid ""
+"More than one user was found with the same public key. Select the correct "
+"user from the list to add to the buddy list."
+msgstr ""
+
+msgid ""
+"More than one user was found with the same name. Select the correct user "
+"from the list to add to the buddy list."
+msgstr ""
+
+#, fuzzy
+msgid "Detached"
+msgstr "Haijakechiwa"
+
+msgid "Indisposed"
+msgstr ""
+
+msgid "Wake Me Up"
+msgstr ""
+
+msgid "Hyper Active"
+msgstr ""
+
+msgid "Robot"
+msgstr ""
+
+msgid "Happy"
+msgstr ""
+
+#, fuzzy
+msgid "Sad"
+msgstr "Jm"
+
+msgid "Angry"
+msgstr ""
+
+msgid "Jealous"
+msgstr ""
+
+#, fuzzy
+msgid "Ashamed"
+msgstr "Kiassame"
+
+msgid "Invincible"
+msgstr ""
+
+msgid "In Love"
+msgstr ""
+
+msgid "Sleepy"
+msgstr ""
+
+msgid "Bored"
+msgstr ""
+
+msgid "Excited"
+msgstr ""
+
+msgid "Anxious"
+msgstr ""
+
+#, fuzzy
+msgid "User Modes"
+msgstr "Jina la Mtumiaji:"
+
+msgid "Preferred Contact"
+msgstr ""
+
+msgid "Preferred Language"
+msgstr ""
+
+#, fuzzy
+msgid "Device"
+msgstr "Huduma"
+
+msgid "Timezone"
+msgstr ""
+
+#, fuzzy
+msgid "Geolocation"
+msgstr "Mahali"
+
+msgid "Reset IM Key"
+msgstr ""
+
+msgid "IM with Key Exchange"
+msgstr ""
+
+msgid "IM with Password"
+msgstr ""
+
+msgid "Get Public Key..."
+msgstr ""
+
+msgid "Kill User"
+msgstr ""
+
+msgid "Draw On Whiteboard"
+msgstr ""
+
+msgid "_Passphrase:"
+msgstr ""
+
+#, c-format
+msgid "Channel %s does not exist in the network"
+msgstr ""
+
+#, fuzzy
+msgid "Channel Information"
+msgstr "Inachunguza taarifa"
+
+msgid "Cannot get channel information"
+msgstr ""
+
+#, c-format
+msgid "<b>Channel Name:</b> %s"
+msgstr ""
+
+#, c-format
+msgid "<br><b>User Count:</b> %d"
+msgstr ""
+
+#, c-format
+msgid "<br><b>Channel Founder:</b> %s"
+msgstr ""
+
+#, c-format
+msgid "<br><b>Channel Cipher:</b> %s"
+msgstr ""
+
+#. Definition of HMAC: http://en.wikipedia.org/wiki/HMAC
+#, c-format
+msgid "<br><b>Channel HMAC:</b> %s"
+msgstr ""
+
+#, c-format
+msgid "<br><b>Channel Topic:</b><br>%s"
+msgstr ""
+
+#, c-format
+msgid "<br><b>Channel Modes:</b> "
+msgstr ""
+
+#, c-format
+msgid "<br><b>Founder Key Fingerprint:</b><br>%s"
+msgstr ""
+
+#, c-format
+msgid "<br><b>Founder Key Babbleprint:</b><br>%s"
+msgstr ""
+
+msgid "Add Channel Public Key"
+msgstr ""
+
+#. Add new public key
+msgid "Open Public Key..."
+msgstr ""
+
+msgid "Channel Passphrase"
+msgstr ""
+
+msgid "Channel Public Keys List"
+msgstr ""
+
+#, c-format
+msgid ""
+"Channel authentication is used to secure the channel from unauthorized "
+"access. The authentication may be based on passphrase and digital "
+"signatures. If passphrase is set, it is required to be able to join. If "
+"channel public keys are set then only users whose public keys are listed are "
+"able to join."
+msgstr ""
+
+msgid "Channel Authentication"
+msgstr ""
+
+msgid "Add / Remove"
+msgstr ""
+
+#, fuzzy
+msgid "Group Name"
+msgstr "Kusanya kwa:"
+
+#, fuzzy
+msgid "Passphrase"
+msgstr "Nywila"
+
+#, c-format
+msgid "Please enter the %s channel private group name and passphrase."
+msgstr ""
+
+msgid "Add Channel Private Group"
+msgstr ""
+
+#, fuzzy
+msgid "User Limit"
+msgstr "Jina la Mtumiaji:"
+
+msgid "Set user limit on channel. Set to zero to reset user limit."
+msgstr ""
+
+msgid "Invite List"
+msgstr ""
+
+msgid "Ban List"
+msgstr ""
+
+msgid "Add Private Group"
+msgstr ""
+
+#, fuzzy
+msgid "Reset Permanent"
+msgstr "Kudumu"
+
+#, fuzzy
+msgid "Set Permanent"
+msgstr "Kudumu"
+
+msgid "Set User Limit"
+msgstr ""
+
+msgid "Reset Topic Restriction"
+msgstr ""
+
+msgid "Set Topic Restriction"
+msgstr ""
+
+msgid "Reset Private Channel"
+msgstr ""
+
+msgid "Set Private Channel"
+msgstr ""
+
+msgid "Reset Secret Channel"
+msgstr ""
+
+msgid "Set Secret Channel"
+msgstr ""
+
+#, c-format
+msgid ""
+"You have to join the %s channel before you are able to join the private group"
+msgstr ""
+
+msgid "Join Private Group"
+msgstr ""
+
+msgid "Cannot join private group"
+msgstr ""
+
+msgid "Call Command"
+msgstr ""
+
+msgid "Cannot call command"
+msgstr ""
+
+msgid "Unknown command"
+msgstr ""
+
+msgid "Secure File Transfer"
+msgstr ""
+
+msgid "Error during file transfer"
+msgstr ""
+
+msgid "Remote disconnected"
+msgstr ""
+
+msgid "Permission denied"
+msgstr ""
+
+#, fuzzy
+msgid "Key agreement failed"
+msgstr "Makubaliano Muhimu"
+
+msgid "Connection timed out"
+msgstr "Muunganiko umepita muda"
+
+#, fuzzy
+msgid "Creating connection failed"
+msgstr "Muunganiko salama umeshindikana"
+
+msgid "File transfer session does not exist"
+msgstr ""
+
+msgid "No file transfer session active"
+msgstr ""
+
+msgid "File transfer already started"
+msgstr ""
+
+msgid "Could not perform key agreement for file transfer"
+msgstr ""
+
+msgid "Could not start the file transfer"
+msgstr ""
+
+msgid "Cannot send file"
+msgstr ""
+
+msgid "Error occurred"
+msgstr ""
+
+#, c-format
+msgid "%s has changed the topic of <I>%s</I> to: %s"
+msgstr ""
+
+#, c-format
+msgid "<I>%s</I> set channel <I>%s</I> modes to: %s"
+msgstr ""
+
+#, c-format
+msgid "<I>%s</I> removed all channel <I>%s</I> modes"
+msgstr ""
+
+#, c-format
+msgid "<I>%s</I> set <I>%s's</I> modes to: %s"
+msgstr ""
+
+#, c-format
+msgid "<I>%s</I> removed all <I>%s's</I> modes"
+msgstr ""
+
+#, c-format
+msgid "You have been kicked off <I>%s</I> by <I>%s</I> (%s)"
+msgstr ""
+
+#, c-format
+msgid "You have been killed by %s (%s)"
+msgstr ""
+
+#, c-format
+msgid "Killed by %s (%s)"
+msgstr ""
+
+msgid "Server signoff"
+msgstr ""
+
+#, fuzzy
+msgid "Personal Information"
+msgstr "Taarifa Zaidi"
+
+msgid "Birth Day"
+msgstr ""
+
+msgid "Job Role"
+msgstr ""
+
+#, fuzzy
+msgid "Organization"
+msgstr "Shirika:"
+
+#, fuzzy
+msgid "Unit"
+msgstr "Kizio:"
+
+msgid "Join Chat"
+msgstr ""
+
+#, c-format
+msgid "You are channel founder on <I>%s</I>"
+msgstr ""
+
+#, c-format
+msgid "Channel founder on <I>%s</I> is <I>%s</I>"
+msgstr ""
+
+msgid "Real Name"
+msgstr ""
+
+#, fuzzy
+msgid "Status Text"
+msgstr "M&wambaa Hali"
+
+msgid "Public Key Fingerprint"
+msgstr ""
+
+msgid "Public Key Babbleprint"
+msgstr ""
+
+msgid "_More..."
+msgstr ""
+
+msgid "Detach From Server"
+msgstr ""
+
+msgid "Cannot detach"
+msgstr ""
+
+msgid "Cannot set topic"
+msgstr ""
+
+msgid "Failed to change nickname"
+msgstr ""
+
+msgid "Roomlist"
+msgstr ""
+
+msgid "Cannot get room list"
+msgstr ""
+
+#, fuzzy
+msgid "Network is empty"
+msgstr "Muda wa mtandao umeisha"
+
+msgid "No public key was received"
+msgstr ""
+
+#, fuzzy
+msgid "Server Information"
+msgstr "Taarifa Zaidi"
+
+msgid "Cannot get server information"
+msgstr ""
+
+msgid "Server Statistics"
+msgstr ""
+
+msgid "Cannot get server statistics"
+msgstr ""
+
+#, c-format
+msgid ""
+"Local server start time: %s\n"
+"Local server uptime: %s\n"
+"Local server clients: %d\n"
+"Local server channels: %d\n"
+"Local server operators: %d\n"
+"Local router operators: %d\n"
+"Local cell clients: %d\n"
+"Local cell channels: %d\n"
+"Local cell servers: %d\n"
+"Total clients: %d\n"
+"Total channels: %d\n"
+"Total servers: %d\n"
+"Total routers: %d\n"
+"Total server operators: %d\n"
+"Total router operators: %d\n"
+msgstr ""
+
+msgid "Network Statistics"
+msgstr ""
+
+#, fuzzy
+msgid "Ping failed"
+msgstr "Imeshindwa kunakili"
+
+msgid "Ping reply received from server"
+msgstr ""
+
+msgid "Could not kill user"
+msgstr ""
+
+msgid "WATCH"
+msgstr ""
+
+msgid "Cannot watch user"
+msgstr ""
+
+#, fuzzy
+msgid "Resuming session"
+msgstr "Rejesha Awamu"
+
+msgid "Authenticating connection"
+msgstr ""
+
+msgid "Verifying server public key"
+msgstr ""
+
+#, fuzzy
+msgid "Passphrase required"
+msgstr "Nywila inatakiwa"
+
+#, c-format
+msgid ""
+"Received %s's public key. Your local copy does not match this key. Would you "
+"still like to accept this public key?"
+msgstr ""
+
+#, c-format
+msgid "Received %s's public key. Would you like to accept this public key?"
+msgstr ""
+
+#, c-format
+msgid ""
+"Fingerprint and babbleprint for the %s key are:\n"
+"\n"
+"%s\n"
+"%s\n"
+msgstr ""
+
+#, fuzzy
+msgid "Verify Public Key"
+msgstr "Ufunguo Huria wa Muhusika"
+
+msgid "_View..."
+msgstr ""
+
+#, fuzzy
+msgid "Unsupported public key type"
+msgstr "Aina ya faili isiyo stahimiliwa."
+
+msgid "Disconnected by server"
+msgstr ""
+
+msgid "Error during connecting to SILC Server"
+msgstr ""
+
+msgid "Key Exchange failed"
+msgstr ""
+
+msgid ""
+"Resuming detached session failed. Press Reconnect to create new connection."
+msgstr ""
+
+#, fuzzy
+msgid "Connection failed"
+msgstr "Unganisho Limeshindikana"
+
+msgid "Performing key exchange"
+msgstr ""
+
+#, fuzzy
+msgid "Unable to create connection"
+msgstr "Haikuweza kuunganishwa"
+
+msgid "Could not load SILC key pair"
+msgstr ""
+
+#. Progress
+#, fuzzy
+msgid "Connecting to SILC Server"
+msgstr "Inaunganisha kwenye seva ya sasisho…"
+
+msgid "Out of memory"
+msgstr "Nje ya kumbukumbu"
+
+msgid "Cannot initialize SILC protocol"
+msgstr ""
+
+msgid "Error loading SILC key pair"
+msgstr ""
+
+#, fuzzy, c-format
+msgid "Download %s: %s"
+msgstr "Inapakua: %S"
+
+msgid "Your Current Mood"
+msgstr ""
+
+#, fuzzy, c-format
+msgid "Normal"
+msgstr "&Kawaida"
+
+msgid "In love"
+msgstr ""
+
+msgid ""
+"\n"
+"Your Preferred Contact Methods"
+msgstr ""
+
+msgid "SMS"
+msgstr ""
+
+msgid "MMS"
+msgstr ""
+
+msgid "Video conferencing"
+msgstr ""
+
+msgid "Your Current Status"
+msgstr ""
+
+#, fuzzy
+msgid "Online Services"
+msgstr "Huduma za tovuti"
+
+msgid "Let others see what services you are using"
+msgstr ""
+
+msgid "Let others see what computer you are using"
+msgstr ""
+
+msgid "Your VCard File"
+msgstr ""
+
+msgid "Timezone (UTC)"
+msgstr ""
+
+msgid "User Online Status Attributes"
+msgstr ""
+
+msgid ""
+"You can let other users see your online status information and your personal "
+"information. Please fill the information you would like other users to see "
+"about yourself."
+msgstr ""
+
+msgid "Message of the Day"
+msgstr ""
+
+msgid "No Message of the Day available"
+msgstr ""
+
+msgid "There is no Message of the Day associated with this connection"
+msgstr ""
+
+msgid "Create New SILC Key Pair"
+msgstr ""
+
+msgid "Passphrases do not match"
+msgstr ""
+
+msgid "Key Pair Generation failed"
+msgstr ""
+
+msgid "Key length"
+msgstr ""
+
+msgid "Public key file"
+msgstr ""
+
+msgid "Private key file"
+msgstr ""
+
+msgid "Passphrase (retype)"
+msgstr ""
+
+msgid "Generate Key Pair"
+msgstr ""
+
+#, fuzzy
+msgid "Online Status"
+msgstr "Marekani"
+
+msgid "View Message of the Day"
+msgstr ""
+
+msgid "Create SILC Key Pair..."
+msgstr ""
+
+#, c-format
+msgid "User <I>%s</I> is not present in the network"
+msgstr ""
+
+msgid "Topic too long"
+msgstr ""
+
+msgid "You must specify a nick"
+msgstr ""
+
+#, fuzzy, c-format
+msgid "channel %s not found"
+msgstr "Mstari haujapatikana"
+
+#, c-format
+msgid "channel modes for %s: %s"
+msgstr ""
+
+#, c-format
+msgid "no channel modes are set on %s"
+msgstr ""
+
+#, c-format
+msgid "Failed to set cmodes for %s"
+msgstr ""
+
+#, c-format
+msgid "Unknown command: %s, (may be a client bug)"
+msgstr ""
+
+msgid "part [channel]:  Leave the chat"
+msgstr ""
+
+msgid "leave [channel]:  Leave the chat"
+msgstr ""
+
+msgid "topic [&lt;new topic&gt;]:  View or change the topic"
+msgstr ""
+
+msgid "join &lt;channel&gt; [&lt;password&gt;]:  Join a chat on this network"
+msgstr ""
+
+msgid "list:  List channels on this network"
+msgstr ""
+
+msgid "whois &lt;nick&gt;:  View nick's information"
+msgstr ""
+
+msgid "msg &lt;nick&gt; &lt;message&gt;:  Send a private message to a user"
+msgstr ""
+
+msgid "query &lt;nick&gt; [&lt;message&gt;]:  Send a private message to a user"
+msgstr ""
+
+msgid "motd:  View the server's Message Of The Day"
+msgstr ""
+
+msgid "detach:  Detach this session"
+msgstr ""
+
+msgid "quit [message]:  Disconnect from the server, with an optional message"
+msgstr ""
+
+msgid "call &lt;command&gt;:  Call any silc client command"
+msgstr ""
+
+msgid "kill &lt;nick&gt; [-pubkey|&lt;reason&gt;]:  Kill nick"
+msgstr ""
+
+msgid "nick &lt;newnick&gt;:  Change your nickname"
+msgstr ""
+
+msgid "whowas &lt;nick&gt;:  View nick's information"
+msgstr ""
+
+msgid ""
+"cmode &lt;channel&gt; [+|-&lt;modes&gt;] [arguments]:  Change or display "
+"channel modes"
+msgstr ""
+
+msgid ""
+"cumode &lt;channel&gt; +|-&lt;modes&gt; &lt;nick&gt;:  Change nick's modes "
+"on channel"
+msgstr ""
+
+msgid "umode &lt;usermodes&gt;:  Set your modes in the network"
+msgstr ""
+
+msgid "oper &lt;nick&gt; [-pubkey]:  Get server operator privileges"
+msgstr ""
+
+msgid ""
+"invite &lt;channel&gt; [-|+]&lt;nick&gt;:  invite nick or add/remove from "
+"channel invite list"
+msgstr ""
+
+msgid "kick &lt;channel&gt; &lt;nick&gt; [comment]:  Kick client from channel"
+msgstr ""
+
+msgid "info [server]:  View server administrative details"
+msgstr ""
+
+msgid "ban [&lt;channel&gt; +|-&lt;nick&gt;]:  Ban client from channel"
+msgstr ""
+
+msgid "getkey &lt;nick|server&gt;:  Retrieve client's or server's public key"
+msgstr ""
+
+msgid "stats:  View server and network statistics"
+msgstr ""
+
+msgid "ping:  Send PING to the connected server"
+msgstr ""
+
+msgid "users &lt;channel&gt;:  List users in channel"
+msgstr ""
+
+msgid ""
+"names [-count|-ops|-halfops|-voices|-normal] &lt;channel(s)&gt;:  List "
+"specific users in channel(s)"
+msgstr ""
+
+#. *< type
+#. *< ui_requirement
+#. *< flags
+#. *< dependencies
+#. *< priority
+#. *< id
+#. *< name
+#. *< version
+#. *  summary
+msgid "SILC Protocol Plugin"
+msgstr ""
+
+#. *  description
+msgid "Secure Internet Live Conferencing (SILC) Protocol"
+msgstr ""
+
+msgid "Network"
+msgstr "Mtandao"
+
+msgid "Public Key file"
+msgstr ""
+
+msgid "Private Key file"
+msgstr ""
+
+msgid "Cipher"
+msgstr ""
+
+msgid "HMAC"
+msgstr ""
+
+msgid "Use Perfect Forward Secrecy"
+msgstr ""
+
+#, fuzzy
+msgid "Public key authentication"
+msgstr "Ishara ya Uthibitisho Inayoulindwa"
+
+msgid "Block IMs without Key Exchange"
+msgstr ""
+
+msgid "Block messages to whiteboard"
+msgstr ""
+
+msgid "Automatically open whiteboard"
+msgstr ""
+
+msgid "Digitally sign and verify all messages"
+msgstr ""
+
+msgid "Creating SILC key pair..."
+msgstr ""
+
+msgid "Cannot create SILC key pair\n"
+msgstr ""
+
+#. Hint for translators: Please check the tabulator width here and in
+#. the next strings (short strings: 2 tabs, longer strings 1 tab,
+#. sum: 3 tabs or 24 characters)
+#, c-format
+msgid "Real Name: \t%s\n"
+msgstr ""
+
+#, fuzzy, c-format
+msgid "User Name: \t%s\n"
+msgstr "Jina la Mtumiaji:"
+
+#, c-format
+msgid "Email: \t\t%s\n"
+msgstr ""
+
+#, c-format
+msgid "Host Name: \t%s\n"
+msgstr ""
+
+#, fuzzy, c-format
+msgid "Organization: \t%s\n"
+msgstr "Jumuiya: \"%S\""
+
+#, c-format
+msgid "Country: \t%s\n"
+msgstr ""
+
+#, c-format
+msgid "Algorithm: \t%s\n"
+msgstr ""
+
+#, c-format
+msgid "Key Length: \t%d bits\n"
+msgstr ""
+
+#, fuzzy, c-format
+msgid "Version: \t%s\n"
+msgstr "Toleo la 1"
+
+#, c-format
+msgid ""
+"Public Key Fingerprint:\n"
+"%s\n"
+"\n"
+msgstr ""
+
+#, c-format
+msgid ""
+"Public Key Babbleprint:\n"
+"%s"
+msgstr ""
+
+#, fuzzy
+msgid "Public Key Information"
+msgstr "Fic&ha Taarifa"
+
+#, fuzzy
+msgid "Paging"
+msgstr "Inahifadhi"
+
+msgid "Video Conferencing"
+msgstr ""
+
+#, fuzzy
+msgid "Computer"
+msgstr "Imemaliza"
+
+msgid "PDA"
+msgstr ""
+
+msgid "Terminal"
+msgstr ""
+
+#, c-format
+msgid "%s sent message to whiteboard. Would you like to open the whiteboard?"
+msgstr ""
+
+#, c-format
+msgid ""
+"%s sent message to whiteboard on %s channel. Would you like to open the "
+"whiteboard?"
+msgstr ""
+
+msgid "Whiteboard"
+msgstr ""
+
+msgid "No server statistics available"
+msgstr ""
+
+#, c-format
+msgid "Failure: Version mismatch, upgrade your client"
+msgstr ""
+
+#, c-format
+msgid "Failure: Remote does not trust/support your public key"
+msgstr ""
+
+#, c-format
+msgid "Failure: Remote does not support proposed KE group"
+msgstr ""
+
+#, c-format
+msgid "Failure: Remote does not support proposed cipher"
+msgstr ""
+
+#, c-format
+msgid "Failure: Remote does not support proposed PKCS"
+msgstr ""
+
+#, c-format
+msgid "Failure: Remote does not support proposed hash function"
+msgstr ""
+
+#, c-format
+msgid "Failure: Remote does not support proposed HMAC"
+msgstr ""
+
+#, c-format
+msgid "Failure: Incorrect signature"
+msgstr ""
+
+#, c-format
+msgid "Failure: Invalid cookie"
+msgstr ""
+
+#, c-format
+msgid "Failure: Authentication failed"
+msgstr ""
+
+msgid "Cannot initialize SILC Client connection"
+msgstr ""
+
+msgid "John Noname"
+msgstr ""
+
+#, c-format
+msgid "Could not load SILC key pair: %s"
+msgstr ""
+
+msgid "Could not write"
+msgstr ""
+
+#, fuzzy
+msgid "Could not connect"
+msgstr "\"Haikuweza kupakia: \""
+
+msgid "Unknown server response."
+msgstr ""
+
+msgid "Could not create listen socket"
+msgstr ""
+
+msgid "Could not resolve hostname"
+msgstr ""
+
+msgid "SIP usernames may not contain whitespaces or @ symbols"
+msgstr ""
+
+msgid "SIP connect server not specified"
+msgstr ""
+
+#. *< type
+#. *< ui_requirement
+#. *< flags
+#. *< dependencies
+#. *< priority
+#. *< id
+#. *< name
+#. *< version
+msgid "SIP/SIMPLE Protocol Plugin"
+msgstr ""
+
+#. *  summary
+msgid "The SIP/SIMPLE Protocol Plugin"
+msgstr ""
+
+msgid "Publish status (note: everyone may watch you)"
+msgstr ""
+
+msgid "Use UDP"
+msgstr ""
+
+msgid "Use proxy"
+msgstr ""
+
+msgid "Proxy"
+msgstr ""
+
+msgid "Auth User"
+msgstr ""
+
+msgid "Auth Domain"
+msgstr ""
+
+#, c-format
+msgid "%s has sent you a webcam invite, which is not yet supported."
+msgstr ""
+
+msgid "Your SMS was not delivered"
+msgstr ""
+
+msgid "Your Yahoo! message did not get sent."
+msgstr ""
+
+#, c-format
+msgid "Yahoo! system message for %s:"
+msgstr ""
+
+#, c-format
+msgid ""
+"%s has (retroactively) denied your request to add them to your list for the "
+"following reason: %s."
+msgstr ""
+
+#, c-format
+msgid "%s has (retroactively) denied your request to add them to your list."
+msgstr ""
+
+msgid "Add buddy rejected"
+msgstr ""
+
+#. Some error in the received stream
+msgid "Received invalid data"
+msgstr ""
+
+#. Password incorrect
+#, fuzzy
+msgid "Incorrect Password"
+msgstr "Nywila ya sasa hivi:"
+
+#. security lock from too many failed login attempts
+msgid "Account locked: Too many failed login attempts"
+msgstr ""
+
+#. the username does not exist
+#, fuzzy
+msgid "Username does not exist"
+msgstr "Faili %S halipo"
+
+#. indicates a lock of some description
+msgid "Account locked: See the debug log"
+msgstr ""
+
+#. username or password missing
+msgid "Username or password missing"
+msgstr ""
+
+#, c-format
+msgid ""
+"The Yahoo server has requested the use of an unrecognized authentication "
+"method.  You will probably not be able to successfully sign on to Yahoo.  "
+"Check %s for updates."
+msgstr ""
+
+msgid "Failed Yahoo! Authentication"
+msgstr ""
+
+#, c-format
+msgid ""
+"You have tried to ignore %s, but the user is on your buddy list.  Clicking "
+"\"Yes\" will remove and ignore the buddy."
+msgstr ""
+
+msgid "Ignore buddy?"
+msgstr ""
+
+msgid "Your account is locked, please log in to the Yahoo! website."
+msgstr ""
+
+#, c-format
+msgid "Unknown error number %d. Logging into the Yahoo! website may fix this."
+msgstr ""
+
+#, c-format
+msgid "Could not add buddy %s to group %s to the server list on account %s."
+msgstr ""
+
+msgid "Could not add buddy to server list"
+msgstr ""
+
+#, c-format
+msgid "[ Audible %s/%s/%s.swf ] %s"
+msgstr ""
+
+#, fuzzy
+msgid "Received unexpected HTTP response from server."
+msgstr "Mwitiko wa bila kutegemea kutoka kwa seva"
+
+#, fuzzy
+msgid "Connection problem"
+msgstr "Unganisho Limeshindikana"
+
+#, c-format
+msgid ""
+"Lost connection with %s:\n"
+"%s"
+msgstr ""
+
+#, c-format
+msgid ""
+"Could not establish a connection with %s:\n"
+"%s"
+msgstr ""
+
+msgid "Not at Home"
+msgstr ""
+
+msgid "Not at Desk"
+msgstr ""
+
+msgid "Not in Office"
+msgstr ""
+
+#, fuzzy
+msgid "On Vacation"
+msgstr "Fungua &Mahali…"
+
+msgid "Stepped Out"
+msgstr ""
+
+msgid "Not on server list"
+msgstr ""
+
+#, fuzzy
+msgid "Appear Online"
+msgstr "Baki Mkondoni"
+
+msgid "Appear Permanently Offline"
+msgstr ""
+
+#, fuzzy
+msgid "Presence"
+msgstr "Mapendekezo"
+
+msgid "Appear Offline"
+msgstr ""
+
+msgid "Don't Appear Permanently Offline"
+msgstr ""
+
+msgid "Join in Chat"
+msgstr ""
+
+msgid "Initiate Conference"
+msgstr ""
+
+msgid "Presence Settings"
+msgstr ""
+
+msgid "Start Doodling"
+msgstr ""
+
+msgid "Activate which ID?"
+msgstr ""
+
+msgid "Join whom in chat?"
+msgstr ""
+
+msgid "Activate ID..."
+msgstr ""
+
+msgid "Join User in Chat..."
+msgstr ""
+
+#, fuzzy
+msgid "Open Inbox"
+msgstr "Fungua katika:"
+
+msgid "join &lt;room&gt;:  Join a chat room on the Yahoo network"
+msgstr ""
+
+msgid "list: List rooms on the Yahoo network"
+msgstr ""
+
+msgid "doodle: Request user to start a Doodle session"
+msgstr ""
+
+msgid "Yahoo ID..."
+msgstr ""
+
+#. *< type
+#. *< ui_requirement
+#. *< flags
+#. *< dependencies
+#. *< priority
+#. *< id
+#. *< name
+#. *< version
+#. *  summary
+#. *  description
+msgid "Yahoo Protocol Plugin"
+msgstr ""
+
+msgid "Yahoo Japan"
+msgstr ""
+
+msgid "Pager server"
+msgstr ""
+
+msgid "Japan Pager server"
+msgstr ""
+
+#, fuzzy
+msgid "Pager port"
+msgstr "Page Down"
+
+msgid "File transfer server"
+msgstr ""
+
+msgid "Japan file transfer server"
+msgstr ""
+
+msgid "File transfer port"
+msgstr ""
+
+msgid "Chat room locale"
+msgstr ""
+
+msgid "Ignore conference and chatroom invitations"
+msgstr ""
+
+msgid "Chat room list URL"
+msgstr ""
+
+msgid "Yahoo Chat server"
+msgstr ""
+
+msgid "Yahoo Chat port"
+msgstr ""
+
+#. Write a local message to this conversation showing that a request for a
+#. * Doodle session has been made
+#.
+msgid "Sent Doodle request."
+msgstr ""
+
+msgid "Unable to establish file descriptor."
+msgstr ""
+
+#, c-format
+msgid "%s is trying to send you a group of %d files.\n"
+msgstr ""
+
+msgid "Yahoo! Japan Profile"
+msgstr ""
+
+#, fuzzy
+msgid "Yahoo! Profile"
+msgstr "Yahoo! Barua"
+
+msgid ""
+"Sorry, profiles marked as containing adult content are not supported at this "
+"time."
+msgstr ""
+
+msgid ""
+"If you wish to view this profile, you will need to visit this link in your "
+"web browser:"
+msgstr ""
+
+#, fuzzy
+msgid "Yahoo! ID"
+msgstr "Yahoo! Barua"
+
+msgid "Hobbies"
+msgstr ""
+
+msgid "Latest News"
+msgstr ""
+
+#, fuzzy
+msgid "Home Page"
+msgstr "Ukurasa wa &Nyumbani:"
+
+msgid "Cool Link 1"
+msgstr ""
+
+msgid "Cool Link 2"
+msgstr ""
+
+msgid "Cool Link 3"
+msgstr ""
+
+msgid "Last Update"
+msgstr "Sasisho la mara ya mwisho"
+
+msgid ""
+"This profile is in a language or format that is not supported at this time."
+msgstr ""
+
+msgid ""
+"Could not retrieve the user's profile. This most likely is a temporary "
+"server-side problem. Please try again later."
+msgstr ""
+
+msgid ""
+"Could not retrieve the user's profile. This most likely means that the user "
+"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 ""
+
+msgid "The user's profile is empty."
+msgstr ""
+
+#, c-format
+msgid "%s declined your conference invitation to room \"%s\" because \"%s\"."
+msgstr ""
+
+msgid "Invitation Rejected"
+msgstr ""
+
+#, fuzzy
+msgid "Failed to join chat"
+msgstr "Imeshindwa kuunganisha"
+
+#. -6
+#, fuzzy
+msgid "Unknown room"
+msgstr "Hitilafu isiyojulikana"
+
+#. -15
+msgid "Maybe the room is full"
+msgstr ""
+
+#. -35
+msgid "Not available"
+msgstr "Haipatikani"
+
+msgid ""
+"Unknown error. You may need to logout and wait five minutes before being "
+"able to rejoin a chatroom"
+msgstr ""
+
+#, c-format
+msgid "You are now chatting in %s."
+msgstr ""
+
+msgid "Failed to join buddy in chat"
+msgstr ""
+
+msgid "Maybe they're not in a chat?"
+msgstr ""
+
+msgid "Fetching the room list failed."
+msgstr ""
+
+msgid "Voices"
+msgstr ""
+
+msgid "Webcams"
+msgstr ""
+
+msgid "Unable to fetch room list."
+msgstr ""
+
+msgid "User Rooms"
+msgstr ""
+
+msgid "Connection problem with the YCHT server."
+msgstr ""
+
+#, c-format
+msgid ""
+"Lost connection with server\n"
+"%s"
+msgstr ""
+
+msgid ""
+"(There was an error converting this message.\t Check the 'Encoding' option "
+"in the Account Editor)"
+msgstr ""
+
+#, c-format
+msgid "Unable to send to chat %s,%s,%s"
+msgstr ""
+
+msgid "Hidden or not logged-in"
+msgstr ""
+
+#, c-format
+msgid "<br>At %s since %s"
+msgstr ""
+
+msgid "Anyone"
+msgstr ""
+
+msgid "_Class:"
+msgstr ""
+
+#, fuzzy
+msgid "_Instance:"
+msgstr "Imesakinishwa"
+
+msgid "_Recipient:"
+msgstr ""
+
+#, c-format
+msgid "Attempt to subscribe to %s,%s,%s failed"
+msgstr ""
+
+msgid "zlocate &lt;nick&gt;: Locate user"
+msgstr ""
+
+msgid "zl &lt;nick&gt;: Locate user"
+msgstr ""
+
+msgid "instance &lt;instance&gt;: Set the instance to be used on this class"
+msgstr ""
+
+msgid "inst &lt;instance&gt;: Set the instance to be used on this class"
+msgstr ""
+
+msgid "topic &lt;instance&gt;: Set the instance to be used on this class"
+msgstr ""
+
+msgid "sub &lt;class&gt; &lt;instance&gt; &lt;recipient&gt;: Join a new chat"
+msgstr ""
+
+msgid ""
+"zi &lt;instance&gt;: Send a message to &lt;message,<i>instance</i>,*&gt;"
+msgstr ""
+
+msgid ""
+"zci &lt;class&gt; &lt;instance&gt;: Send a message to &lt;<i>class</i>,"
+"<i>instance</i>,*&gt;"
+msgstr ""
+
+msgid ""
+"zcir &lt;class&gt; &lt;instance&gt; &lt;recipient&gt;: Send a message to &lt;"
+"<i>class</i>,<i>instance</i>,<i>recipient</i>&gt;"
+msgstr ""
+
+msgid ""
+"zir &lt;instance&gt; &lt;recipient&gt;: Send a message to &lt;MESSAGE,"
+"<i>instance</i>,<i>recipient</i>&gt;"
+msgstr ""
+
+msgid "zc &lt;class&gt;: Send a message to &lt;<i>class</i>,PERSONAL,*&gt;"
+msgstr ""
+
+#, fuzzy
+msgid "Resubscribe"
+msgstr "Jiunge"
+
+msgid "Retrieve subscriptions from server"
+msgstr ""
+
+#. *< type
+#. *< ui_requirement
+#. *< flags
+#. *< dependencies
+#. *< priority
+#. *< id
+#. *< name
+#. *< version
+#. *  summary
+#. *  description
+msgid "Zephyr Protocol Plugin"
+msgstr ""
+
+msgid "Use tzc"
+msgstr ""
+
+msgid "tzc command"
+msgstr ""
+
+msgid "Export to .anyone"
+msgstr ""
+
+msgid "Export to .zephyr.subs"
+msgstr ""
+
+msgid "Import from .anyone"
+msgstr ""
+
+msgid "Import from .zephyr.subs"
+msgstr ""
+
+#, fuzzy
+msgid "Realm"
+msgstr "Tayari"
+
+msgid "Exposure"
+msgstr ""
+
+#, c-format
+msgid ""
+"Unable to create socket:\n"
+"%s"
+msgstr ""
+
+#, c-format
+msgid "Unable to parse response from HTTP proxy: %s\n"
+msgstr ""
+
+#, c-format
+msgid "HTTP proxy connection error %d"
+msgstr ""
+
+#, c-format
+msgid "Access denied: HTTP proxy server forbids port %d tunneling."
+msgstr ""
+
+#, fuzzy, c-format
+msgid "Error resolving %s"
+msgstr "Hitilafu katika kuhifadhi %S"
+
+msgid "Could not resolve host name"
+msgstr ""
+
+#, c-format
+msgid "Requesting %s's attention..."
+msgstr ""
+
+#, c-format
+msgid "%s has requested your attention!"
+msgstr ""
+
+#. *
+#. * A wrapper for purple_request_action() that uses @c Yes and @c No buttons.
+#.
+#, fuzzy
+msgid "_Yes"
+msgstr "Ndiyo"
+
+#, fuzzy
+msgid "_No"
+msgstr "Hapana"
+
+#. *
+#. * A wrapper for purple_request_action() that uses Accept and Cancel buttons.
+#.
+msgid "_Accept"
+msgstr ""
+
+#. *
+#. * The default message to use when the user becomes auto-away.
+#.
+msgid "I'm not here right now"
+msgstr ""
+
+msgid "saved statuses"
+msgstr ""
+
+#, c-format
+msgid "%s is now known as %s.\n"
+msgstr ""
+
+#, c-format
+msgid ""
+"%s has invited %s to the chat room %s:\n"
+"%s"
+msgstr ""
+
+#, c-format
+msgid "%s has invited %s to the chat room %s\n"
+msgstr ""
+
+msgid "Accept chat invitation?"
+msgstr ""
+
+#. Shortcut
+msgid "Shortcut"
+msgstr ""
+
+msgid "The text-shortcut for the smiley"
+msgstr ""
+
+#. Stored Image
+#, fuzzy
+msgid "Stored Image"
+msgstr "Hifadhi Taswira"
+
+msgid "Stored Image. (that'll have to do for now)"
+msgstr ""
+
+#, fuzzy
+msgid "SSL Connection Failed"
+msgstr "Unganisho Limeshindikana"
+
+msgid "SSL Handshake Failed"
+msgstr ""
+
+msgid "SSL peer presented an invalid certificate"
+msgstr ""
+
+#, fuzzy
+msgid "Unknown SSL error"
+msgstr "Hitilafu isiyojulikana"
+
+#, fuzzy
+msgid "Unset"
+msgstr "Haitumiki"
+
+msgid "Do not disturb"
+msgstr ""
+
+msgid "Extended away"
+msgstr ""
+
+msgid "Listening to music"
+msgstr ""
+
+#, c-format
+msgid "%s (%s) changed status from %s to %s"
+msgstr ""
+
+#, c-format
+msgid "%s (%s) is now %s"
+msgstr ""
+
+#, c-format
+msgid "%s (%s) is no longer %s"
+msgstr ""
+
+#, c-format
+msgid "%s became idle"
+msgstr ""
+
+#, c-format
+msgid "%s became unidle"
+msgstr ""
+
+#, c-format
+msgid "+++ %s became idle"
+msgstr ""
+
+#, c-format
+msgid "+++ %s became unidle"
+msgstr ""
+
+#.
+#. * This string determines how some dates are displayed.  The default
+#. * string "%x %X" shows the date then the time.  Translators can
+#. * change this to "%X %x" if they want the time to be shown first,
+#. * followed by the date.
+#.
+#, fuzzy, c-format
+msgid "%x %X"
+msgstr "%S %S"
+
+msgid "Calculating..."
+msgstr ""
+
+#, fuzzy
+msgid "Unknown."
+msgstr "Isiyojulikana"
+
+#, c-format
+msgid "%d second"
+msgid_plural "%d seconds"
+msgstr[0] ""
+msgstr[1] ""
+
+#, c-format
+msgid "%d day"
+msgid_plural "%d days"
+msgstr[0] ""
+msgstr[1] ""
+
+#, c-format
+msgid "%s, %d hour"
+msgid_plural "%s, %d hours"
+msgstr[0] ""
+msgstr[1] ""
+
+#, c-format
+msgid "%d hour"
+msgid_plural "%d hours"
+msgstr[0] ""
+msgstr[1] ""
+
+#, c-format
+msgid "%s, %d minute"
+msgid_plural "%s, %d minutes"
+msgstr[0] ""
+msgstr[1] ""
+
+#, c-format
+msgid "%d minute"
+msgid_plural "%d minutes"
+msgstr[0] ""
+msgstr[1] ""
+
+#, c-format
+msgid "Could not open %s: Redirected too many times"
+msgstr ""
+
+#, fuzzy, c-format
+msgid "Unable to connect to %s"
+msgstr "Haikuweza kuunganishwa"
+
+#, c-format
+msgid "Error reading from %s: response too long (%d bytes limit)"
+msgstr ""
+
+#, c-format
+msgid ""
+"Unable to allocate enough memory to hold the contents from %s.  The web "
+"server may be trying something malicious."
+msgstr ""
+
+#, c-format
+msgid "Error reading from %s: %s"
+msgstr ""
+
+#, c-format
+msgid "Error writing to %s: %s"
+msgstr ""
+
+#, fuzzy, c-format
+msgid "Unable to connect to %s: %s"
+msgstr "Haikuweza kuunganishwa"
+
+#, c-format
+msgid ""
+"Unable to connect to %s: Server requires TLS/SSL, but no TLS/SSL support was "
+"found."
+msgstr ""
+
+#, c-format
+msgid " - %s"
+msgstr ""
+
+#, fuzzy, c-format
+msgid " (%s)"
+msgstr "(%S)"
+
+#. 10053
+#, c-format
+msgid "Connection interrupted by other software on your computer."
+msgstr ""
+
+#. 10054
+#, fuzzy, c-format
+msgid "Remote host closed connection."
+msgstr "Mwenzi SSL imefunga uunganisho huu"
+
+#. 10060
+#, fuzzy, c-format
+msgid "Connection timed out."
+msgstr "Muunganiko umepita muda"
+
+#. 10061
+#, fuzzy, c-format
+msgid "Connection refused."
+msgstr "Muunganisho ulikataliwa"
+
+#. 10048
+#, c-format
+msgid "Address already in use."
+msgstr ""
+
+#, fuzzy, c-format
+msgid "Error Reading %s"
+msgstr "Hitilafu wakati natengeneza %S"
+
+#, c-format
+msgid ""
+"An error was encountered reading your %s.  The file has not been loaded, and "
+"the old file has been renamed to %s~."
+msgstr ""
+
+#, fuzzy
+msgid "Internet Messenger"
+msgstr "Internet Explorer"
+
+msgid "Pidgin Internet Messenger"
+msgstr ""
+
+msgid "Send instant messages over multiple protocols"
+msgstr ""
+
+#, fuzzy
+msgid "Orientation"
+msgstr "Mkao:"
+
+msgid "The orientation of the tray."
+msgstr ""
+
+#. Build the login options frame.
+msgid "Login Options"
+msgstr ""
+
+#, fuzzy
+msgid "Pro_tocol:"
+msgstr "Itifaki"
+
+#, fuzzy
+msgid "_Username:"
+msgstr "Jina la mtumiaji"
+
+#, fuzzy
+msgid "Remember pass_word"
+msgstr "Ingiza tena nywila:"
+
+#. Build the user options frame.
+#, fuzzy
+msgid "User Options"
+msgstr "Machaguo ya Mtandao"
+
+msgid "_Local alias:"
+msgstr ""
+
+#, fuzzy
+msgid "New _mail notifications"
+msgstr "Arifisho la Jumla"
+
+#. Buddy icon
+msgid "Use this buddy _icon for this account:"
+msgstr ""
+
+#, fuzzy
+msgid "_Advanced"
+msgstr "Pevu"
+
+#, fuzzy
+msgid "Use GNOME Proxy Settings"
+msgstr "&Tumia vipimo vya wakala vya mfumo"
+
+#, fuzzy
+msgid "Use Global Proxy Settings"
+msgstr "&Tumia vipimo vya wakala vya mfumo"
+
+#, fuzzy
+msgid "No Proxy"
+msgstr "Hakuna waka&la"
+
+msgid "HTTP"
+msgstr ""
+
+#, fuzzy
+msgid "SOCKS 4"
+msgstr "SOC&KS v4"
+
+#, fuzzy
+msgid "SOCKS 5"
+msgstr "SOCKS &v5"
+
+msgid "Use Environmental Settings"
+msgstr ""
+
+#. This is an easter egg.
+#. It means one of two things, both intended as humourus:
+#. A) your network is really slow and you have nothing better to do than
+#. look at butterflies.
+#. B)You are looking really closely at something that shouldn't matter.
+msgid "If you look real closely"
+msgstr ""
+
+#. This is an easter egg. See the comment on the previous line in the source.
+msgid "you can see the butterflies mating"
+msgstr ""
+
+msgid "Proxy _type:"
+msgstr ""
+
+#, fuzzy
+msgid "_Host:"
+msgstr "Mwenyeji:"
+
+#, fuzzy
+msgid "_Port:"
+msgstr "Lango:"
+
+#, fuzzy
+msgid "Pa_ssword:"
+msgstr "Nywila:"
+
+msgid "Unable to save new account"
+msgstr ""
+
+msgid "An account already exists with the specified criteria."
+msgstr ""
+
+msgid "Add Account"
+msgstr ""
+
+msgid "_Basic"
+msgstr ""
+
+msgid "Create _this new account on the server"
+msgstr ""
+
+msgid "_Proxy"
+msgstr ""
+
+msgid "Enabled"
+msgstr "Imeamshwa"
+
+#, fuzzy
+msgid "Protocol"
+msgstr "Itifaki"
+
+#, c-format
+msgid ""
+"<span size='larger' weight='bold'>Welcome to %s!</span>\n"
+"\n"
+"You have no IM accounts configured. To start connecting with %s press the "
+"<b>Add...</b> button below and configure your first account. If you want %s "
+"to connect to multiple IM accounts, press <b>Add...</b> again to configure "
+"them all.\n"
+"\n"
+"You can come back to this window to add, edit, or remove accounts from "
+"<b>Accounts->Manage Accounts</b> in the Buddy List window"
+msgstr ""
+
+#, c-format
+msgid "You have %d contact named %s. Would you like to merge them?"
+msgid_plural ""
+"You currently have %d contacts named %s. Would you like to merge them?"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid ""
+"Merging these contacts will cause them to share a single entry on the buddy "
+"list and use a single conversation window. You can separate them again by "
+"choosing 'Expand' from the contact's context menu"
+msgstr ""
+
+msgid "Please update the necessary fields."
+msgstr ""
+
+#, fuzzy
+msgid "A_ccount"
+msgstr "hesabu ya matembeleo"
+
+msgid ""
+"Please enter the appropriate information about the chat you would like to "
+"join.\n"
+msgstr ""
+
+msgid "Room _List"
+msgstr ""
+
+#, fuzzy
+msgid "_Block"
+msgstr "Zuia"
+
+msgid "Un_block"
+msgstr ""
+
+#, fuzzy
+msgid "Move to"
+msgstr "Sogeza kwenda:"
+
+msgid "Get _Info"
+msgstr ""
+
+msgid "I_M"
+msgstr ""
+
+msgid "_Audio Call"
+msgstr ""
+
+msgid "Audio/_Video Call"
+msgstr ""
+
+msgid "_Video Call"
+msgstr ""
+
+msgid "_Send File..."
+msgstr ""
+
+msgid "Add Buddy _Pounce..."
+msgstr ""
+
+msgid "View _Log"
+msgstr ""
+
+msgid "Hide when offline"
+msgstr ""
+
+msgid "_Alias..."
+msgstr ""
+
+#, fuzzy
+msgid "_Remove"
+msgstr "Ondoa"
+
+msgid "Set Custom Icon"
+msgstr ""
+
+msgid "Remove Custom Icon"
+msgstr ""
+
+msgid "Add _Buddy..."
+msgstr ""
+
+msgid "Add C_hat..."
+msgstr ""
+
+#, fuzzy
+msgid "_Delete Group"
+msgstr "Futa mwenyeji"
+
+#, fuzzy
+msgid "_Rename"
+msgstr "&Badili jina"
+
+#. join button
+msgid "_Join"
+msgstr ""
+
+msgid "Auto-Join"
+msgstr ""
+
+#, fuzzy
+msgid "Persistent"
+msgstr "Kipersia"
+
+msgid "_Edit Settings..."
+msgstr ""
+
+#, fuzzy
+msgid "_Collapse"
+msgstr "Kunja"
+
+#, fuzzy
+msgid "_Expand"
+msgstr "Tanua"
+
+msgid "/Tools/Mute Sounds"
+msgstr ""
+
+msgid ""
+"You are not currently signed on with an account that can add that buddy."
+msgstr ""
+
+#. I don't believe this can happen currently, I think
+#. * everything that calls this function checks for one of the
+#. * above node types first.
+#, fuzzy
+msgid "Unknown node type"
+msgstr "Utambulisho usiojulikana"
+
+#. Buddies menu
+msgid "/_Buddies"
+msgstr ""
+
+msgid "/Buddies/New Instant _Message..."
+msgstr ""
+
+msgid "/Buddies/Join a _Chat..."
+msgstr ""
+
+msgid "/Buddies/Get User _Info..."
+msgstr ""
+
+msgid "/Buddies/View User _Log..."
+msgstr ""
+
+msgid "/Buddies/Sh_ow"
+msgstr ""
+
+msgid "/Buddies/Show/_Offline Buddies"
+msgstr ""
+
+msgid "/Buddies/Show/_Empty Groups"
+msgstr ""
+
+msgid "/Buddies/Show/Buddy _Details"
+msgstr ""
+
+msgid "/Buddies/Show/Idle _Times"
+msgstr ""
+
+msgid "/Buddies/Show/_Protocol Icons"
+msgstr ""
+
+msgid "/Buddies/_Sort Buddies"
+msgstr ""
+
+msgid "/Buddies/_Add Buddy..."
+msgstr ""
+
+msgid "/Buddies/Add C_hat..."
+msgstr ""
+
+msgid "/Buddies/Add _Group..."
+msgstr ""
+
+msgid "/Buddies/_Quit"
+msgstr ""
+
+#. Accounts menu
+msgid "/_Accounts"
+msgstr ""
+
+msgid "/Accounts/Manage Accounts"
+msgstr ""
+
+#. Tools
+#, fuzzy
+msgid "/_Tools"
+msgstr "&Zana"
+
+msgid "/Tools/Buddy _Pounces"
+msgstr ""
+
+#, fuzzy
+msgid "/Tools/_Certificates"
+msgstr "Ithibati Zako"
+
+msgid "/Tools/Custom Smile_ys"
+msgstr ""
+
+msgid "/Tools/Plu_gins"
+msgstr ""
+
+msgid "/Tools/Pr_eferences"
+msgstr ""
+
+msgid "/Tools/Pr_ivacy"
+msgstr ""
+
+msgid "/Tools/_File Transfers"
+msgstr ""
+
+msgid "/Tools/R_oom List"
+msgstr ""
+
+msgid "/Tools/System _Log"
+msgstr ""
+
+msgid "/Tools/Mute _Sounds"
+msgstr ""
+
+#. Help
+#, fuzzy
+msgid "/_Help"
+msgstr "Msaada"
+
+msgid "/Help/Online _Help"
+msgstr ""
+
+msgid "/Help/_Debug Window"
+msgstr ""
+
+msgid "/Help/_About"
+msgstr ""
+
+#, c-format
+msgid "<b>Account:</b> %s"
+msgstr ""
+
+#, c-format
+msgid ""
+"\n"
+"<b>Occupants:</b> %d"
+msgstr ""
+
+#, c-format
+msgid ""
+"\n"
+"<b>Topic:</b> %s"
+msgstr ""
+
+#, fuzzy
+msgid "(no topic set)"
+msgstr "(haijawekwa)"
+
+msgid "Buddy Alias"
+msgstr ""
+
+msgid "Logged In"
+msgstr "Ingia"
+
+msgid "Last Seen"
+msgstr ""
+
+msgid "Spooky"
+msgstr ""
+
+msgid "Awesome"
+msgstr ""
+
+msgid "Rockin'"
+msgstr ""
+
+msgid "Total Buddies"
+msgstr ""
+
+#, c-format
+msgid "Idle %dd %dh %02dm"
+msgstr ""
+
+#, c-format
+msgid "Idle %dh %02dm"
+msgstr ""
+
+#, c-format
+msgid "Idle %dm"
+msgstr ""
+
+msgid "/Buddies/New Instant Message..."
+msgstr ""
+
+msgid "/Buddies/Join a Chat..."
+msgstr ""
+
+msgid "/Buddies/Get User Info..."
+msgstr ""
+
+msgid "/Buddies/Add Buddy..."
+msgstr ""
+
+msgid "/Buddies/Add Chat..."
+msgstr ""
+
+msgid "/Buddies/Add Group..."
+msgstr ""
+
+msgid "/Tools/Privacy"
+msgstr ""
+
+msgid "/Tools/Room List"
+msgstr ""
+
+#, c-format
+msgid "%d unread message from %s\n"
+msgid_plural "%d unread messages from %s\n"
+msgstr[0] ""
+msgstr[1] ""
+
+#, fuzzy
+msgid "Manually"
+msgstr "Januari"
+
+msgid "By status"
+msgstr ""
+
+msgid "By recent log activity"
+msgstr ""
+
+#, c-format
+msgid "%s disconnected"
+msgstr ""
+
+#, fuzzy, c-format
+msgid "%s disabled"
+msgstr "Imelemazwa"
+
+msgid "Reconnect"
+msgstr ""
+
+msgid "Re-enable"
+msgstr ""
+
+#, fuzzy
+msgid "SSL FAQs"
+msgstr "SSL CA"
+
+#, fuzzy
+msgid "Welcome back!"
+msgstr "Karibu Wanadamu!"
+
+#, c-format
+msgid "%d account was disabled because you signed on from another location:"
+msgid_plural ""
+"%d accounts were disabled because you signed on from another location:"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "<b>Username:</b>"
+msgstr ""
+
+msgid "<b>Password:</b>"
+msgstr ""
+
+msgid "_Login"
+msgstr ""
+
+msgid "/Accounts"
+msgstr ""
+
+#. Translators: Please maintain the use of -> and <- to refer to menu heirarchy
+#, c-format
+msgid ""
+"<span weight='bold' size='larger'>Welcome to %s!</span>\n"
+"\n"
+"You have no accounts enabled. Enable your IM accounts from the <b>Accounts</"
+"b> window at <b>Accounts->Manage Accounts</b>. Once you enable accounts, "
+"you'll be able to sign on, set your status, and talk to your friends."
+msgstr ""
+
+#. set the Show Offline Buddies option. must be done
+#. * after the treeview or faceprint gets mad. -Robot101
+#.
+msgid "/Buddies/Show/Offline Buddies"
+msgstr ""
+
+msgid "/Buddies/Show/Empty Groups"
+msgstr ""
+
+msgid "/Buddies/Show/Buddy Details"
+msgstr ""
+
+msgid "/Buddies/Show/Idle Times"
+msgstr ""
+
+msgid "/Buddies/Show/Protocol Icons"
+msgstr ""
+
+msgid "Add a buddy.\n"
+msgstr ""
+
+msgid "Buddy's _username:"
+msgstr ""
+
+msgid "(Optional) A_lias:"
+msgstr ""
+
+msgid "Add buddy to _group:"
+msgstr ""
+
+msgid "This protocol does not support chat rooms."
+msgstr ""
+
+msgid ""
+"You are not currently signed on with any protocols that have the ability to "
+"chat."
+msgstr ""
+
+msgid ""
+"Please enter an alias, and the appropriate information about the chat you "
+"would like to add to your buddy list.\n"
+msgstr ""
+
+msgid "A_lias:"
+msgstr ""
+
+msgid "_Group:"
+msgstr ""
+
+msgid "Auto_join when account becomes online."
+msgstr ""
+
+msgid "_Remain in chat after window is closed."
+msgstr ""
+
+msgid "Please enter the name of the group to be added."
+msgstr ""
+
+msgid "Enable Account"
+msgstr ""
+
+msgid "<PurpleMain>/Accounts/Enable Account"
+msgstr ""
+
+msgid "<PurpleMain>/Accounts/"
+msgstr ""
+
+#, fuzzy
+msgid "_Edit Account"
+msgstr "hesabu ya matembeleo"
+
+#, fuzzy
+msgid "No actions available"
+msgstr "Haipatikani"
+
+#, fuzzy
+msgid "_Disable"
+msgstr "Lemaza"
+
+#, fuzzy
+msgid "/Tools"
+msgstr "&Zana"
+
+msgid "/Buddies/Sort Buddies"
+msgstr ""
+
+#. Widget creation function
+#, fuzzy
+msgid "SSL Servers"
+msgstr "SSL Seva"
+
+msgid "Unknown command."
+msgstr ""
+
+msgid "That buddy is not on the same protocol as this chat."
+msgstr ""
+
+msgid ""
+"You are not currently signed on with an account that can invite that buddy."
+msgstr ""
+
+msgid "Invite Buddy Into Chat Room"
+msgstr ""
+
+msgid "_Buddy:"
+msgstr ""
+
+#, fuzzy
+msgid "_Message:"
+msgstr "Ujumbe"
+
+#, c-format
+msgid "<h1>Conversation with %s</h1>\n"
+msgstr ""
+
+msgid "Save Conversation"
+msgstr ""
+
+msgid "Find"
+msgstr "Tafuta"
+
+msgid "_Search for:"
+msgstr ""
+
+msgid "Un-Ignore"
+msgstr ""
+
+msgid "Ignore"
+msgstr ""
+
+msgid "Get Away Message"
+msgstr ""
+
+#, fuzzy
+msgid "Last said"
+msgstr "Ukurasa wa mwisho"
+
+msgid "Unable to save icon file to disk."
+msgstr ""
+
+#, fuzzy
+msgid "Save Icon"
+msgstr "Hifadhi Taswira"
+
+#, fuzzy
+msgid "Animate"
+msgstr "Fanya hai"
+
+msgid "Hide Icon"
+msgstr ""
+
+msgid "Save Icon As..."
+msgstr ""
+
+msgid "Set Custom Icon..."
+msgstr ""
+
+msgid "Change Size"
+msgstr ""
+
+msgid "Show All"
+msgstr "Onyesha Zote"
+
+#. Conversation menu
+msgid "/_Conversation"
+msgstr ""
+
+msgid "/Conversation/New Instant _Message..."
+msgstr ""
+
+msgid "/Conversation/_Find..."
+msgstr ""
+
+msgid "/Conversation/View _Log"
+msgstr ""
+
+msgid "/Conversation/_Save As..."
+msgstr ""
+
+msgid "/Conversation/Clea_r Scrollback"
+msgstr ""
+
+msgid "/Conversation/M_edia"
+msgstr ""
+
+msgid "/Conversation/Media/_Audio Call"
+msgstr ""
+
+msgid "/Conversation/Media/_Video Call"
+msgstr ""
+
+msgid "/Conversation/Media/Audio\\/Video _Call"
+msgstr ""
+
+msgid "/Conversation/Se_nd File..."
+msgstr ""
+
+msgid "/Conversation/Add Buddy _Pounce..."
+msgstr ""
+
+msgid "/Conversation/_Get Info"
+msgstr ""
+
+msgid "/Conversation/In_vite..."
+msgstr ""
+
+msgid "/Conversation/M_ore"
+msgstr ""
+
+msgid "/Conversation/Al_ias..."
+msgstr ""
+
+msgid "/Conversation/_Block..."
+msgstr ""
+
+msgid "/Conversation/_Unblock..."
+msgstr ""
+
+msgid "/Conversation/_Add..."
+msgstr ""
+
+msgid "/Conversation/_Remove..."
+msgstr ""
+
+msgid "/Conversation/Insert Lin_k..."
+msgstr ""
+
+msgid "/Conversation/Insert Imag_e..."
+msgstr ""
+
+msgid "/Conversation/_Close"
+msgstr ""
+
+#. Options
+#, fuzzy
+msgid "/_Options"
+msgstr "Machaguo"
+
+msgid "/Options/Enable _Logging"
+msgstr ""
+
+msgid "/Options/Enable _Sounds"
+msgstr ""
+
+msgid "/Options/Show Formatting _Toolbars"
+msgstr ""
+
+msgid "/Options/Show Ti_mestamps"
+msgstr ""
+
+msgid "/Conversation/More"
+msgstr ""
+
+#, fuzzy
+msgid "/Options"
+msgstr "Machaguo"
+
+#. The menubar has been deactivated. Make sure the 'More' submenu is regenerated next time
+#. * the 'Conversation' menu pops up.
+#. Make sure the 'Conversation -> More' menuitems are regenerated whenever
+#. * the 'Conversation' menu pops up because the entries can change after the
+#. * conversation is created.
+#, fuzzy
+msgid "/Conversation"
+msgstr "Unganisho"
+
+msgid "/Conversation/View Log"
+msgstr ""
+
+msgid "/Conversation/Media/Audio Call"
+msgstr ""
+
+msgid "/Conversation/Media/Video Call"
+msgstr ""
+
+msgid "/Conversation/Media/Audio\\/Video Call"
+msgstr ""
+
+msgid "/Conversation/Send File..."
+msgstr ""
+
+msgid "/Conversation/Add Buddy Pounce..."
+msgstr ""
+
+msgid "/Conversation/Get Info"
+msgstr ""
+
+msgid "/Conversation/Invite..."
+msgstr ""
+
+msgid "/Conversation/Alias..."
+msgstr ""
+
+msgid "/Conversation/Block..."
+msgstr ""
+
+msgid "/Conversation/Unblock..."
+msgstr ""
+
+msgid "/Conversation/Add..."
+msgstr ""
+
+msgid "/Conversation/Remove..."
+msgstr ""
+
+msgid "/Conversation/Insert Link..."
+msgstr ""
+
+msgid "/Conversation/Insert Image..."
+msgstr ""
+
+msgid "/Options/Enable Logging"
+msgstr ""
+
+msgid "/Options/Enable Sounds"
+msgstr ""
+
+msgid "/Options/Show Formatting Toolbars"
+msgstr ""
+
+msgid "/Options/Show Timestamps"
+msgstr ""
+
+msgid "User is typing..."
+msgstr ""
+
+#, c-format
+msgid ""
+"\n"
+"%s has stopped typing"
+msgstr ""
+
+#. Build the Send To menu
+#, fuzzy
+msgid "S_end To"
+msgstr "Tuma kwa:"
+
+msgid "_Send"
+msgstr ""
+
+#. Setup the label telling how many people are in the room.
+msgid "0 people in room"
+msgstr ""
+
+#, c-format
+msgid "%d person in room"
+msgid_plural "%d people in room"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Typing"
+msgstr ""
+
+msgid "Stopped Typing"
+msgstr ""
+
+msgid "Nick Said"
+msgstr ""
+
+#, fuzzy
+msgid "Unread Messages"
+msgstr "Jumbe za tahadhari"
+
+msgid "New Event"
+msgstr ""
+
+msgid "clear: Clears all conversation scrollbacks."
+msgstr ""
+
+msgid "Confirm close"
+msgstr "Thibitisha kufunga"
+
+msgid "You have unread messages. Are you sure you want to close the window?"
+msgstr ""
+
+#, fuzzy
+msgid "Close other tabs"
+msgstr "Funga Tab&o Nyingine"
+
+#, fuzzy
+msgid "Close all tabs"
+msgstr "Funga tabo"
+
+msgid "Detach this tab"
+msgstr ""
+
+#, fuzzy
+msgid "Close this tab"
+msgstr "Funga ujumbe huu"
+
+msgid "Close conversation"
+msgstr ""
+
+msgid "Last created window"
+msgstr ""
+
+msgid "Separate IM and Chat windows"
+msgstr ""
+
+msgid "New window"
+msgstr "Dirisha jipya"
+
+msgid "By group"
+msgstr ""
+
+msgid "By account"
+msgstr ""
+
+msgid "Save Debug Log"
+msgstr ""
+
+msgid "Invert"
+msgstr ""
+
+#, fuzzy
+msgid "Highlight matches"
+msgstr "&Angaza yote"
+
+msgid "_Icon Only"
+msgstr ""
+
+#, fuzzy
+msgid "_Text Only"
+msgstr "Kuza Saizi ya Maandishi &Tu"
+
+msgid "_Both Icon & Text"
+msgstr ""
+
+#, fuzzy
+msgid "Filter"
+msgstr "Ch&uja:"
+
+msgid "Right click for more options."
+msgstr ""
+
+msgid "Level "
+msgstr ""
+
+msgid "Select the debug filter level."
+msgstr ""
+
+#, fuzzy
+msgid "All"
+msgstr "&Yote"
+
+msgid "Misc"
+msgstr ""
+
+#, fuzzy
+msgid "Warning"
+msgstr "Tahadhari:"
+
+#, fuzzy
+msgid "Error "
+msgstr "Hitikafu "
+
+#, fuzzy
+msgid "Fatal Error"
+msgstr "Hitilafu katika kusakinisha"
+
+msgid "bug master"
+msgstr ""
+
+msgid "artist"
+msgstr ""
+
+#. feel free to not translate this
+msgid "Ka-Hing Cheung"
+msgstr ""
+
+msgid "voice and video"
+msgstr ""
+
+msgid "support"
+msgstr ""
+
+msgid "webmaster"
+msgstr ""
+
+msgid "Senior Contributor/QA"
+msgstr ""
+
+msgid "win32 port"
+msgstr ""
+
+msgid "maintainer"
+msgstr ""
+
+msgid "libfaim maintainer"
+msgstr ""
+
+#. If "lazy bum" translates literally into a serious insult, use something else or omit it.
+msgid "hacker and designated driver [lazy bum]"
+msgstr ""
+
+msgid "support/QA"
+msgstr ""
+
+msgid "XMPP"
+msgstr ""
+
+msgid "original author"
+msgstr ""
+
+msgid "lead developer"
+msgstr ""
+
+msgid "Afrikaans"
+msgstr "Kiafriakansi"
+
+msgid "Arabic"
+msgstr "Kiarabu"
+
+#, fuzzy
+msgid "Belarusian Latin"
+msgstr "Kibelarusi"
+
+msgid "Bulgarian"
+msgstr "Kibulgaria"
+
+msgid "Bengali"
+msgstr "Kibengalia"
+
+msgid "Bosnian"
+msgstr "Kibosnia"
+
+msgid "Catalan"
+msgstr "Kicatala"
+
+msgid "Valencian-Catalan"
+msgstr ""
+
+msgid "Czech"
+msgstr "Kiczech"
+
+msgid "Danish"
+msgstr "Kidanishi"
+
+msgid "German"
+msgstr "Kijerumani"
+
+msgid "Dzongkha"
+msgstr "Kidzongkha"
+
+msgid "Greek"
+msgstr "Kigiriki"
+
+msgid "Australian English"
+msgstr ""
+
+msgid "Canadian English"
+msgstr ""
+
+msgid "British English"
+msgstr ""
+
+msgid "Esperanto"
+msgstr "Kiesperanto"
+
+msgid "Spanish"
+msgstr "Kihispania"
+
+msgid "Estonian"
+msgstr "Kiestonia"
+
+msgid "Euskera(Basque)"
+msgstr ""
+
+msgid "Persian"
+msgstr "Kipersia"
+
+msgid "Finnish"
+msgstr "Kifinishi"
+
+msgid "French"
+msgstr "Kifaransa"
+
+msgid "Irish"
+msgstr "Kiirishi"
+
+msgid "Galician"
+msgstr "Kigalacy"
+
+msgid "Gujarati"
+msgstr "Kigujarati"
+
+msgid "Gujarati Language Team"
+msgstr ""
+
+msgid "Hebrew"
+msgstr "Kiebrania"
+
+msgid "Hindi"
+msgstr "Kihindi"
+
+msgid "Hungarian"
+msgstr "Kihungaria"
+
+msgid "Indonesian"
+msgstr "Kindonesia"
+
+msgid "Italian"
+msgstr "Kiitalia"
+
+msgid "Japanese"
+msgstr "Kijapani"
+
+msgid "Georgian"
+msgstr "Kigeorgia"
+
+msgid "Ubuntu Georgian Translators"
+msgstr ""
+
+msgid "Khmer"
+msgstr "Kihemeri"
+
+msgid "Kannada"
+msgstr "Kikanada"
+
+msgid "Kannada Translation team"
+msgstr ""
+
+msgid "Korean"
+msgstr "Kikorea"
+
+msgid "Kurdish"
+msgstr "Kikurdi"
+
+msgid "Lao"
+msgstr "Lao"
+
+msgid "Lithuanian"
+msgstr "Kilithuania"
+
+msgid "Macedonian"
+msgstr "Kimacedonia"
+
+msgid "Mongolian"
+msgstr "Kimongolia"
+
+msgid "Bokmål Norwegian"
+msgstr ""
+
+msgid "Nepali"
+msgstr "Kinepali"
+
+msgid "Dutch, Flemish"
+msgstr ""
+
+msgid "Norwegian Nynorsk"
+msgstr "Kinynorsk cha Norway"
+
+msgid "Occitan"
+msgstr "Kioccita"
+
+msgid "Punjabi"
+msgstr "Kipunjabi"
+
+msgid "Polish"
+msgstr "Kipolishi"
+
+msgid "Portuguese"
+msgstr "Kireno"
+
+msgid "Portuguese-Brazil"
+msgstr ""
+
+msgid "Pashto"
+msgstr "Kipashto"
+
+msgid "Romanian"
+msgstr "Kiromania"
+
+msgid "Russian"
+msgstr "Kirusi"
+
+msgid "Slovak"
+msgstr "Kislovaki"
+
+msgid "Slovenian"
+msgstr "Kislovenia"
+
+msgid "Albanian"
+msgstr "Kialbania"
+
+msgid "Serbian"
+msgstr "Kiserbia"
+
+msgid "Sinhala"
+msgstr "Kisinihala"
+
+msgid "Swedish"
+msgstr "Kiswidi"
+
+msgid "Swahili Tanzania"
+msgstr ""
+
+msgid "Tamil"
+msgstr "Kitamilia"
+
+msgid "Telugu"
+msgstr "Kitelugu"
+
+msgid "Thai"
+msgstr "Kitai"
+
+msgid "Turkish"
+msgstr "Kituruki"
+
+msgid "Urdu"
+msgstr "Kiurdu"
+
+msgid "Vietnamese"
+msgstr "Kivietnamu"
+
+msgid "T.M.Thanh and the Gnome-Vi Team"
+msgstr ""
+
+msgid "Simplified Chinese"
+msgstr "Kichina Rahisi"
+
+msgid "Hong Kong Chinese"
+msgstr ""
+
+msgid "Traditional Chinese"
+msgstr "Kichina Asili"
+
+msgid "Amharic"
+msgstr "Kiamharic"
+
+#, fuzzy, c-format
+msgid "About %s"
+msgstr "Kuhusu %S"
+
+#, c-format
+msgid ""
+"%s is a graphical modular messaging client based on libpurple which is "
+"capable of connecting to AIM, MSN, Yahoo!, XMPP, ICQ, IRC, SILC, SIP/SIMPLE, "
+"Novell GroupWise, Lotus Sametime, Bonjour, Zephyr, MySpaceIM, Gadu-Gadu, and "
+"QQ all at once.  It is written using GTK+.<BR><BR>You may modify and "
+"redistribute the program under the terms of the GPL (version 2 or later).  A "
+"copy of the GPL is contained in the 'COPYING' file distributed with %s.  %s "
+"is copyrighted by its contributors.  See the 'COPYRIGHT' file for the "
+"complete list of contributors.  We provide no warranty for this program."
+"<BR><BR>"
+msgstr ""
+
+#, c-format
+msgid ""
+"<FONT SIZE=\"4\">FAQ:</FONT> <A HREF=\"http://developer.pidgin.im/wiki/FAQ"
+"\">http://developer.pidgin.im/wiki/FAQ</A><BR/><BR/>"
+msgstr ""
+
+#, c-format
+msgid ""
+"<FONT SIZE=\"4\">Help via e-mail:</FONT> <A HREF=\"mailto:support@pidgin.im"
+"\">support@pidgin.im</A><BR/><BR/>"
+msgstr ""
+
+#, c-format
+msgid ""
+"<FONT SIZE=\"4\">IRC Channel:</FONT> #pidgin on irc.freenode.net<BR><BR>"
+msgstr ""
+
+#, c-format
+msgid "<FONT SIZE=\"4\">XMPP MUC:</FONT> devel@conference.pidgin.im<BR><BR>"
+msgstr ""
+
+msgid "Current Developers"
+msgstr ""
+
+msgid "Crazy Patch Writers"
+msgstr ""
+
+msgid "Retired Developers"
+msgstr ""
+
+msgid "Retired Crazy Patch Writers"
+msgstr ""
+
+msgid "Current Translators"
+msgstr ""
+
+#, fuzzy
+msgid "Past Translators"
+msgstr "Watafsiri:"
+
+#, fuzzy
+msgid "Debugging Information"
+msgstr "Inachunguza taarifa"
+
+#, fuzzy
+msgid "_Name"
+msgstr "Jina"
+
+msgid "_Account"
+msgstr ""
+
+msgid "Get User Info"
+msgstr ""
+
+msgid ""
+"Please enter the username or alias of the person whose info you would like "
+"to view."
+msgstr ""
+
+msgid "View User Log"
+msgstr ""
+
+msgid "Alias Contact"
+msgstr ""
+
+msgid "Enter an alias for this contact."
+msgstr ""
+
+#, c-format
+msgid "Enter an alias for %s."
+msgstr ""
+
+msgid "Alias Buddy"
+msgstr ""
+
+msgid "Alias Chat"
+msgstr ""
+
+msgid "Enter an alias for this chat."
+msgstr ""
+
+#, c-format
+msgid ""
+"You are about to remove the contact containing %s and %d other buddy from "
+"your buddy list.  Do you want to continue?"
+msgid_plural ""
+"You are about to remove the contact containing %s and %d other buddies from "
+"your buddy list.  Do you want to continue?"
+msgstr[0] ""
+msgstr[1] ""
+
+#, fuzzy
+msgid "Remove Contact"
+msgstr "Ondoa Kuki"
+
+#, fuzzy
+msgid "_Remove Contact"
+msgstr "Ondoa Kuki"
+
+#, c-format
+msgid ""
+"You are about to merge the group called %s into the group called %s. Do you "
+"want to continue?"
+msgstr ""
+
+msgid "Merge Groups"
+msgstr ""
+
+msgid "_Merge Groups"
+msgstr ""
+
+#, c-format
+msgid ""
+"You are about to remove the group %s and all its members from your buddy "
+"list.  Do you want to continue?"
+msgstr ""
+
+#, fuzzy
+msgid "Remove Group"
+msgstr "Ondoa Kuki"
+
+msgid "_Remove Group"
+msgstr ""
+
+#, fuzzy, c-format
+msgid ""
+"You are about to remove %s from your buddy list.  Do you want to continue?"
+msgstr "Unakaribia kufunga tabo ya %S. Unauhakika unataka kuendelea?"
+
+msgid "Remove Buddy"
+msgstr ""
+
+msgid "_Remove Buddy"
+msgstr ""
+
+#, fuzzy, c-format
+msgid ""
+"You are about to remove the chat %s from your buddy list.  Do you want to "
+"continue?"
+msgstr "Unakaribia kufunga tabo ya %S. Unauhakika unataka kuendelea?"
+
+#, fuzzy
+msgid "Remove Chat"
+msgstr "Ondoa &All"
+
+msgid "_Remove Chat"
+msgstr ""
+
+msgid "Right-click for more unread messages...\n"
+msgstr ""
+
+msgid "_Change Status"
+msgstr ""
+
+msgid "Show Buddy _List"
+msgstr ""
+
+msgid "_Unread Messages"
+msgstr ""
+
+msgid "New _Message..."
+msgstr ""
+
+msgid "_Accounts"
+msgstr ""
+
+#, fuzzy
+msgid "Plu_gins"
+msgstr "Programu tumizi"
+
+#, fuzzy
+msgid "Pr_eferences"
+msgstr "Mapendekezo"
+
+msgid "Mute _Sounds"
+msgstr ""
+
+msgid "_Blink on New Message"
+msgstr ""
+
+#, fuzzy
+msgid "_Quit"
+msgstr "&Funga"
+
+#, fuzzy
+msgid "Not started"
+msgstr "Haujaanza"
+
+msgid "<b>Receiving As:</b>"
+msgstr ""
+
+msgid "<b>Receiving From:</b>"
+msgstr ""
+
+msgid "<b>Sending To:</b>"
+msgstr ""
+
+msgid "<b>Sending As:</b>"
+msgstr ""
+
+msgid "There is no application configured to open this type of file."
+msgstr ""
+
+msgid "An error occurred while opening the file."
+msgstr ""
+
+#, c-format
+msgid "Error launching %s: %s"
+msgstr ""
+
+#, fuzzy, c-format
+msgid "Error running %s"
+msgstr "Hitilafu katika kufungua %S"
+
+#, c-format
+msgid "Process returned error code %d"
+msgstr ""
+
+#, fuzzy
+msgid "Filename:"
+msgstr "Jina la faili:"
+
+#, fuzzy
+msgid "Local File:"
+msgstr "faili la kikweti"
+
+msgid "Speed:"
+msgstr ""
+
+msgid "Time Elapsed:"
+msgstr "Muda Uliotumika:"
+
+#, fuzzy
+msgid "Time Remaining:"
+msgstr "#1 imebakia"
+
+msgid "Close this window when all transfers _finish"
+msgstr ""
+
+msgid "C_lear finished transfers"
+msgstr ""
+
+#. "Download Details" arrow
+msgid "File transfer _details"
+msgstr ""
+
+#. Pause button
+#, fuzzy
+msgid "_Pause"
+msgstr "Simamisha"
+
+#. Resume button
+#, fuzzy
+msgid "_Resume"
+msgstr "Endelea"
+
+msgid "Paste as Plain _Text"
+msgstr ""
+
+msgid "_Reset formatting"
+msgstr ""
+
+msgid "Disable _smileys in selected text"
+msgstr ""
+
+msgid "Hyperlink color"
+msgstr ""
+
+msgid "Color to draw hyperlinks."
+msgstr ""
+
+msgid "Hyperlink visited color"
+msgstr ""
+
+msgid "Color to draw hyperlinks after it has been visited (or activated)."
+msgstr ""
+
+msgid "Hyperlink prelight color"
+msgstr ""
+
+msgid "Color to draw hyperlinks when mouse is over them."
+msgstr ""
+
+msgid "Sent Message Name Color"
+msgstr ""
+
+msgid "Color to draw the name of a message you sent."
+msgstr ""
+
+msgid "Received Message Name Color"
+msgstr ""
+
+msgid "Color to draw the name of a message you received."
+msgstr ""
+
+msgid "\"Attention\" Name Color"
+msgstr ""
+
+msgid "Color to draw the name of a message you received containing your name."
+msgstr ""
+
+msgid "Action Message Name Color"
+msgstr ""
+
+msgid "Color to draw the name of an action message."
+msgstr ""
+
+msgid "Action Message Name Color for Whispered Message"
+msgstr ""
+
+msgid "Whisper Message Name Color"
+msgstr ""
+
+msgid "Typing notification color"
+msgstr ""
+
+msgid "The color to use for the typing notification font"
+msgstr ""
+
+msgid "Typing notification font"
+msgstr ""
+
+msgid "The font to use for the typing notification"
+msgstr ""
+
+msgid "Enable typing notification"
+msgstr ""
+
+msgid ""
+"<span size='larger' weight='bold'>Unrecognized file type</span>\n"
+"\n"
+"Defaulting to PNG."
+msgstr ""
+
+msgid ""
+"Unrecognized file type\n"
+"\n"
+"Defaulting to PNG."
+msgstr ""
+
+#, c-format
+msgid ""
+"<span size='larger' weight='bold'>Error saving image</span>\n"
+"\n"
+"%s"
+msgstr ""
+
+#, fuzzy, c-format
+msgid ""
+"Error saving image\n"
+"\n"
+"%s"
+msgstr "Hitilafu katika kuhifadhi %S"
+
+msgid "Save Image"
+msgstr "Hifadhi Taswira"
+
+#, fuzzy
+msgid "_Save Image..."
+msgstr "Hifadhi Taswira"
+
+msgid "_Add Custom Smiley..."
+msgstr ""
+
+#, fuzzy
+msgid "Select Font"
+msgstr "&Uchanguzi"
+
+msgid "Select Text Color"
+msgstr ""
+
+#, fuzzy
+msgid "Select Background Color"
+msgstr "Chapisha rangi za usuli"
+
+#, fuzzy
+msgid "_URL"
+msgstr "URL"
+
+#, fuzzy
+msgid "_Description"
+msgstr "Maelezo"
+
+msgid ""
+"Please enter the URL and description of the link that you want to insert. "
+"The description is optional."
+msgstr ""
+
+msgid "Please enter the URL of the link that you want to insert."
+msgstr ""
+
+msgid "Insert Link"
+msgstr ""
+
+msgid "_Insert"
+msgstr ""
+
+#, c-format
+msgid "Failed to store image: %s\n"
+msgstr ""
+
+msgid "Insert Image"
+msgstr ""
+
+#, c-format
+msgid ""
+"This smiley is disabled because a custom smiley exists for this shortcut:\n"
+" %s"
+msgstr ""
+
+msgid "Smile!"
+msgstr ""
+
+msgid "_Manage custom smileys"
+msgstr ""
+
+msgid "This theme has no available smileys."
+msgstr ""
+
+#, fuzzy
+msgid "_Font"
+msgstr "Fonti"
+
+msgid "Group Items"
+msgstr ""
+
+msgid "Ungroup Items"
+msgstr ""
+
+msgid "Bold"
+msgstr ""
+
+#, fuzzy
+msgid "Italic"
+msgstr "Kiitalia"
+
+#, fuzzy
+msgid "Underline"
+msgstr "Interlingue"
+
+msgid "Strikethrough"
+msgstr ""
+
+msgid "Increase Font Size"
+msgstr ""
+
+msgid "Decrease Font Size"
+msgstr ""
+
+msgid "Font Face"
+msgstr ""
+
+#, fuzzy
+msgid "Background Color"
+msgstr "Chapisha rangi za usuli"
+
+msgid "Foreground Color"
+msgstr ""
+
+msgid "Reset Formatting"
+msgstr ""
+
+msgid "Insert IM Image"
+msgstr ""
+
+msgid "Insert Smiley"
+msgstr ""
+
+msgid "<b>_Bold</b>"
+msgstr ""
+
+msgid "<i>_Italic</i>"
+msgstr ""
+
+msgid "<u>_Underline</u>"
+msgstr ""
+
+msgid "<span strikethrough='true'>Strikethrough</span>"
+msgstr ""
+
+msgid "<span size='larger'>_Larger</span>"
+msgstr ""
+
+#, fuzzy
+msgid "_Normal"
+msgstr "&Kawaida"
+
+msgid "<span size='smaller'>_Smaller</span>"
+msgstr ""
+
+#. If we want to show the formatting for the following items, we would
+#. * need to update them when formatting changes. The above items don't need
+#. * no updating nor nothin'
+msgid "_Font face"
+msgstr ""
+
+msgid "Foreground _color"
+msgstr ""
+
+msgid "Bac_kground color"
+msgstr ""
+
+#, fuzzy
+msgid "_Image"
+msgstr "Taswira"
+
+msgid "_Link"
+msgstr ""
+
+msgid "_Horizontal rule"
+msgstr ""
+
+msgid "_Smile!"
+msgstr ""
+
+#, fuzzy
+msgid "Log Deletion Failed"
+msgstr "Unganisho Limeshindikana"
+
+msgid "Check permissions and try again."
+msgstr ""
+
+#, c-format
+msgid ""
+"Are you sure you want to permanently delete the log of the conversation with "
+"%s which started at %s?"
+msgstr ""
+
+#, c-format
+msgid ""
+"Are you sure you want to permanently delete the log of the conversation in %"
+"s which started at %s?"
+msgstr ""
+
+#, c-format
+msgid ""
+"Are you sure you want to permanently delete the system log which started at %"
+"s?"
+msgstr ""
+
+#, fuzzy
+msgid "Delete Log?"
+msgstr "Futa mwenyeji"
+
+#, fuzzy
+msgid "Delete Log..."
+msgstr "Futa mwenyeji"
+
+#, c-format
+msgid "<span size='larger' weight='bold'>Conversation in %s on %s</span>"
+msgstr ""
+
+#, c-format
+msgid "<span size='larger' weight='bold'>Conversation with %s on %s</span>"
+msgstr ""
+
+#. Steal the "HELP" response and use it to trigger browsing to the logs folder
+msgid "_Browse logs folder"
+msgstr ""
+
+#, fuzzy, c-format
+msgid "%s %s. Try `%s -h' for more information.\n"
+msgstr "\n"
+
+#, c-format
+msgid ""
+"%s %s\n"
+"Usage: %s [OPTION]...\n"
+"\n"
+"  -c, --config=DIR    use DIR for config files\n"
+"  -d, --debug         print debugging messages to stdout\n"
+"  -f, --force-online  force online, regardless of network status\n"
+"  -h, --help          display this help and exit\n"
+"  -m, --multiple      do not ensure single instance\n"
+"  -n, --nologin       don't automatically login\n"
+"  -l, --login[=NAME]  enable specified account(s) (optional argument NAME\n"
+"                      specifies account(s) to use, separated by commas.\n"
+"                      Without this only the first account will be enabled).\n"
+"  --display=DISPLAY   X display to use\n"
+"  -v, --version       display the current version and exit\n"
+msgstr ""
+
+#, c-format
+msgid ""
+"%s %s\n"
+"Usage: %s [OPTION]...\n"
+"\n"
+"  -c, --config=DIR    use DIR for config files\n"
+"  -d, --debug         print debugging messages to stdout\n"
+"  -f, --force-online  force online, regardless of network status\n"
+"  -h, --help          display this help and exit\n"
+"  -m, --multiple      do not ensure single instance\n"
+"  -n, --nologin       don't automatically login\n"
+"  -l, --login[=NAME]  enable specified account(s) (optional argument NAME\n"
+"                      specifies account(s) to use, separated by commas.\n"
+"                      Without this only the first account will be enabled).\n"
+"  -v, --version       display the current version and exit\n"
+msgstr ""
+
+#, c-format
+msgid ""
+"%s %s has segfaulted and attempted to dump a core file.\n"
+"This is a bug in the software and has happened through\n"
+"no fault of your own.\n"
+"\n"
+"If you can reproduce the crash, please notify the developers\n"
+"by reporting a bug at:\n"
+"%ssimpleticket/\n"
+"\n"
+"Please make sure to specify what you were doing at the time\n"
+"and post the backtrace from the core file.  If you do not know\n"
+"how to get the backtrace, please read the instructions at\n"
+"%swiki/GetABacktrace\n"
+msgstr ""
+
+#. Translators may want to transliterate the name.
+#. It is not to be translated.
+#, fuzzy
+msgid "Pidgin"
+msgstr "Programu-unganishi"
+
+#, c-format
+msgid "Exiting because another libpurple client is already running.\n"
+msgstr ""
+
+#, fuzzy
+msgid "/_Media"
+msgstr "Media"
+
+msgid "/Media/_Hangup"
+msgstr ""
+
+msgid "Calling..."
+msgstr ""
+
+#, c-format
+msgid "%s wishes to start an audio/video session with you."
+msgstr ""
+
+#, c-format
+msgid "%s wishes to start a video session with you."
+msgstr ""
+
+#, c-format
+msgid "%s has %d new message."
+msgid_plural "%s has %d new messages."
+msgstr[0] ""
+msgstr[1] ""
+
+#, c-format
+msgid "<b>%d new email.</b>"
+msgid_plural "<b>%d new emails.</b>"
+msgstr[0] ""
+msgstr[1] ""
+
+#, c-format
+msgid "The browser command \"%s\" is invalid."
+msgstr ""
+
+#, fuzzy
+msgid "Unable to open URL"
+msgstr "Nimeshindwa Kusasisha"
+
+#, c-format
+msgid "Error launching \"%s\": %s"
+msgstr ""
+
+msgid ""
+"The 'Manual' browser command has been chosen, but no command has been set."
+msgstr ""
+
+#, fuzzy
+msgid "Open All Messages"
+msgstr "Fungua kwenye Tabo zote"
+
+msgid "<span weight=\"bold\" size=\"larger\">You have mail!</span>"
+msgstr ""
+
+msgid "New Pounces"
+msgstr ""
+
+msgid "Dismiss"
+msgstr ""
+
+msgid "<span weight=\"bold\" size=\"larger\">You have pounced!</span>"
+msgstr ""
+
+#, fuzzy
+msgid "No message"
+msgstr "Ujumbe"
+
+#, fuzzy
+msgid "The following plugins will be unloaded."
+msgstr "Programu-jalizi zifuatazo zinapatikana:"
+
+msgid "Multiple plugins will be unloaded."
+msgstr ""
+
+#, fuzzy
+msgid "Unload Plugins"
+msgstr "Kuhusu Program-jalizi"
+
+msgid "Could not unload plugin"
+msgstr ""
+
+msgid ""
+"The plugin could not be unloaded now, but will be disabled at the next "
+"startup."
+msgstr ""
+
+#, c-format
+msgid ""
+"<span foreground=\"red\" weight=\"bold\">Error: %s\n"
+"Check the plugin website for an update.</span>"
+msgstr ""
+
+msgid "Author"
+msgstr ""
+
+msgid "<b>Written by:</b>"
+msgstr ""
+
+msgid "<b>Web site:</b>"
+msgstr ""
+
+msgid "<b>Filename:</b>"
+msgstr ""
+
+msgid "Configure Pl_ugin"
+msgstr ""
+
+msgid "<b>Plugin Details</b>"
+msgstr ""
+
+#, fuzzy
+msgid "Select a file"
+msgstr "Chagua Profaili"
+
+msgid "Modify Buddy Pounce"
+msgstr ""
+
+#. Create the "Pounce on Whom" frame.
+msgid "Pounce on Whom"
+msgstr ""
+
+msgid "_Account:"
+msgstr ""
+
+msgid "_Buddy name:"
+msgstr ""
+
+msgid "Si_gns on"
+msgstr ""
+
+msgid "Signs o_ff"
+msgstr ""
+
+msgid "Goes a_way"
+msgstr ""
+
+msgid "Ret_urns from away"
+msgstr ""
+
+msgid "Becomes _idle"
+msgstr ""
+
+msgid "Is no longer i_dle"
+msgstr ""
+
+msgid "Starts _typing"
+msgstr ""
+
+msgid "P_auses while typing"
+msgstr ""
+
+msgid "Stops t_yping"
+msgstr ""
+
+msgid "Sends a _message"
+msgstr ""
+
+#, fuzzy
+msgid "Ope_n an IM window"
+msgstr "Fungua dirisha jipya"
+
+msgid "_Pop up a notification"
+msgstr ""
+
+msgid "Send a _message"
+msgstr ""
+
+msgid "E_xecute a command"
+msgstr ""
+
+msgid "P_lay a sound"
+msgstr ""
+
+#, fuzzy
+msgid "Brows_e..."
+msgstr "Vinjari…"
+
+#, fuzzy
+msgid "Br_owse..."
+msgstr "Vinjari…"
+
+#, fuzzy
+msgid "Pre_view"
+msgstr "Hakiki"
+
+msgid "P_ounce only when my status is not Available"
+msgstr ""
+
+msgid "_Recurring"
+msgstr ""
+
+msgid "Pounce Target"
+msgstr ""
+
+#, c-format
+msgid "Started typing"
+msgstr ""
+
+#, c-format
+msgid "Paused while typing"
+msgstr ""
+
+#, c-format
+msgid "Signed on"
+msgstr ""
+
+#, c-format
+msgid "Returned from being idle"
+msgstr ""
+
+#, c-format
+msgid "Returned from being away"
+msgstr ""
+
+#, c-format
+msgid "Stopped typing"
+msgstr ""
+
+#, c-format
+msgid "Signed off"
+msgstr ""
+
+#, c-format
+msgid "Became idle"
+msgstr ""
+
+#, c-format
+msgid "Went away"
+msgstr ""
+
+#, fuzzy, c-format
+msgid "Sent a message"
+msgstr "Weka Ukurasa Nyumbani"
+
+#, c-format
+msgid "Unknown.... Please report this!"
+msgstr ""
+
+msgid "Smiley theme failed to unpack."
+msgstr ""
+
+#, fuzzy
+msgid "Install Theme"
+msgstr "Sakinisha Mandhari"
+
+msgid ""
+"Select a smiley theme that you would like to use from the list below. New "
+"themes can be installed by dragging and dropping them onto the theme list."
+msgstr ""
+
+msgid "Icon"
+msgstr "Ikoni"
+
+#, fuzzy
+msgid "Keyboard Shortcuts"
+msgstr "Uwekaji wa Mikato"
+
+msgid "Cl_ose conversations with the Escape key"
+msgstr ""
+
+#. Buddy List Themes
+msgid "Buddy List Theme"
+msgstr ""
+
+#. System Tray
+msgid "System Tray Icon"
+msgstr ""
+
+msgid "_Show system tray icon:"
+msgstr ""
+
+msgid "On unread messages"
+msgstr ""
+
+msgid "Conversation Window Hiding"
+msgstr ""
+
+msgid "_Hide new IM conversations:"
+msgstr ""
+
+msgid "When away"
+msgstr ""
+
+#. All the tab options!
+msgid "Tabs"
+msgstr "Tabo"
+
+msgid "Show IMs and chats in _tabbed windows"
+msgstr ""
+
+msgid "Show close b_utton on tabs"
+msgstr ""
+
+msgid "_Placement:"
+msgstr ""
+
+#, fuzzy
+msgid "Top"
+msgstr "Kwa:"
+
+#, fuzzy
+msgid "Bottom"
+msgstr "&Chini:"
+
+msgid "Left"
+msgstr "Kushoto"
+
+msgid "Right"
+msgstr "Kulia"
+
+msgid "Left Vertical"
+msgstr ""
+
+msgid "Right Vertical"
+msgstr ""
+
+msgid "N_ew conversations:"
+msgstr ""
+
+msgid "Show _formatting on incoming messages"
+msgstr ""
+
+msgid "Close IMs immediately when the tab is closed"
+msgstr ""
+
+msgid "Show _detailed information"
+msgstr ""
+
+msgid "Enable buddy ic_on animation"
+msgstr ""
+
+msgid "_Notify buddies that you are typing to them"
+msgstr ""
+
+msgid "Highlight _misspelled words"
+msgstr ""
+
+#, fuzzy
+msgid "Use smooth-scrolling"
+msgstr "Tu&mia ubiringizaji taratibu"
+
+msgid "F_lash window when IMs are received"
+msgstr ""
+
+msgid "Minimi_ze new conversation windows"
+msgstr ""
+
+msgid "Minimum input area height in lines:"
+msgstr ""
+
+#, fuzzy
+msgid "Font"
+msgstr "Fonti"
+
+msgid "Use document font from _theme"
+msgstr ""
+
+msgid "Use font from _theme"
+msgstr ""
+
+msgid "Conversation _font:"
+msgstr ""
+
+msgid "Default Formatting"
+msgstr ""
+
+msgid ""
+"This is how your outgoing message text will appear when you use protocols "
+"that support formatting."
+msgstr ""
+
+msgid "Cannot start proxy configuration program."
+msgstr ""
+
+msgid "Cannot start browser configuration program."
+msgstr ""
+
+msgid "<span style=\"italic\">Example: stunserver.org</span>"
+msgstr ""
+
+msgid "_Autodetect IP address"
+msgstr ""
+
+msgid "Public _IP:"
+msgstr ""
+
+#, fuzzy
+msgid "Ports"
+msgstr "Lango:"
+
+msgid "_Enable automatic router port forwarding"
+msgstr ""
+
+msgid "_Manually specify range of ports to listen on"
+msgstr ""
+
+msgid "_Start port:"
+msgstr ""
+
+#, fuzzy
+msgid "_End port:"
+msgstr "Tuma Kwa:"
+
+#. TURN server
+msgid "Relay Server (TURN)"
+msgstr ""
+
+msgid "Proxy Server &amp; Browser"
+msgstr ""
+
+msgid "<b>Proxy configuration program was not found.</b>"
+msgstr ""
+
+msgid "<b>Browser configuration program was not found.</b>"
+msgstr ""
+
+msgid ""
+"Proxy & Browser preferences are configured\n"
+"in GNOME Preferences"
+msgstr ""
+
+msgid "Configure _Proxy"
+msgstr ""
+
+msgid "Configure _Browser"
+msgstr ""
+
+msgid "Proxy Server"
+msgstr ""
+
+#, fuzzy
+msgid "No proxy"
+msgstr "Hakuna waka&la"
+
+#. This is a global option that affects SOCKS4 usage even with account-specific proxy settings
+msgid "Use remote DNS with SOCKS4 proxies"
+msgstr ""
+
+msgid "_User:"
+msgstr ""
+
+msgid "Seamonkey"
+msgstr ""
+
+msgid "Opera"
+msgstr "Opera"
+
+#, fuzzy
+msgid "Netscape"
+msgstr "Netscape 4"
+
+msgid "Mozilla"
+msgstr "Mozilla"
+
+msgid "Konqueror"
+msgstr "Konqueror"
+
+#, fuzzy
+msgid "Desktop Default"
+msgstr "Rejesha Misingi"
+
+#, fuzzy
+msgid "GNOME Default"
+msgstr "WPS Msingi"
+
+msgid "Galeon"
+msgstr "Galeon"
+
+msgid "Firefox"
+msgstr "Firefox"
+
+msgid "Firebird"
+msgstr ""
+
+msgid "Epiphany"
+msgstr "Epiphany"
+
+msgid "Manual"
+msgstr ""
+
+msgid "Browser Selection"
+msgstr ""
+
+#, fuzzy
+msgid "_Browser:"
+msgstr "Vinjari…"
+
+msgid "_Open link in:"
+msgstr ""
+
+#, fuzzy
+msgid "Browser default"
+msgstr "Tumia Msingi"
+
+msgid "Existing window"
+msgstr ""
+
+msgid "New tab"
+msgstr "Tabo mpya"
+
+#, c-format
+msgid ""
+"_Manual:\n"
+"(%s for URL)"
+msgstr ""
+
+msgid "Log _format:"
+msgstr ""
+
+msgid "Log all _instant messages"
+msgstr ""
+
+msgid "Log all c_hats"
+msgstr ""
+
+msgid "Log all _status changes to system log"
+msgstr ""
+
+#, fuzzy
+msgid "Sound Selection"
+msgstr "&Uchanguzi"
+
+#, c-format
+msgid "Quietest"
+msgstr ""
+
+#, c-format
+msgid "Quieter"
+msgstr ""
+
+#, fuzzy, c-format
+msgid "Quiet"
+msgstr "&Funga"
+
+#, fuzzy, c-format
+msgid "Loud"
+msgstr "&Pakia upya"
+
+#, fuzzy, c-format
+msgid "Louder"
+msgstr "folda"
+
+#, c-format
+msgid "Loudest"
+msgstr ""
+
+msgid "_Method:"
+msgstr ""
+
+msgid "Console beep"
+msgstr ""
+
+msgid "No sounds"
+msgstr ""
+
+#, c-format
+msgid ""
+"Sound c_ommand:\n"
+"(%s for filename)"
+msgstr ""
+
+msgid "M_ute sounds"
+msgstr ""
+
+msgid "Sounds when conversation has _focus"
+msgstr ""
+
+msgid "_Enable sounds:"
+msgstr ""
+
+#, fuzzy
+msgid "V_olume:"
+msgstr "Safu-wima:"
+
+#, fuzzy
+msgid "Play"
+msgstr "Che&za"
+
+#, fuzzy
+msgid "_Browse..."
+msgstr "Vinjari…"
+
+#, fuzzy
+msgid "_Reset"
+msgstr "Seti upya"
+
+msgid "_Report idle time:"
+msgstr ""
+
+msgid "Based on keyboard or mouse use"
+msgstr ""
+
+msgid "_Auto-reply:"
+msgstr ""
+
+msgid "When both away and idle"
+msgstr ""
+
+#. Auto-away stuff
+msgid "Auto-away"
+msgstr ""
+
+msgid "_Minutes before becoming idle:"
+msgstr ""
+
+msgid "Change status when _idle"
+msgstr ""
+
+#, fuzzy
+msgid "Change _status to:"
+msgstr "&Badili matini ya ufito hali"
+
+#. Signon status stuff
+msgid "Status at Startup"
+msgstr ""
+
+msgid "Use status from last _exit at startup"
+msgstr ""
+
+msgid "Status to a_pply at startup:"
+msgstr ""
+
+msgid "Interface"
+msgstr ""
+
+#, fuzzy
+msgid "Smiley Themes"
+msgstr "Pata Mandhari"
+
+#, fuzzy
+msgid "Browser"
+msgstr "Vinjari…"
+
+msgid "Status / Idle"
+msgstr ""
+
+msgid "Allow all users to contact me"
+msgstr ""
+
+msgid "Allow only the users on my buddy list"
+msgstr ""
+
+msgid "Allow only the users below"
+msgstr ""
+
+msgid "Block all users"
+msgstr ""
+
+msgid "Block only the users below"
+msgstr ""
+
+msgid "Privacy"
+msgstr "Faragha"
+
+msgid "Changes to privacy settings take effect immediately."
+msgstr ""
+
+msgid "Set privacy for:"
+msgstr ""
+
+#. Remove All button
+#, fuzzy
+msgid "Remove Al_l"
+msgstr "Ondoa &All"
+
+msgid "Permit User"
+msgstr ""
+
+msgid "Type a user you permit to contact you."
+msgstr ""
+
+msgid "Please enter the name of the user you wish to be able to contact you."
+msgstr ""
+
+msgid "_Permit"
+msgstr ""
+
+#, c-format
+msgid "Allow %s to contact you?"
+msgstr ""
+
+#, fuzzy, c-format
+msgid "Are you sure you wish to allow %s to contact you?"
+msgstr "Una uhakika unataka kuOnyesha nywila zako?"
+
+#, fuzzy
+msgid "Block User"
+msgstr "Imezuiliwa"
+
+msgid "Type a user to block."
+msgstr ""
+
+msgid "Please enter the name of the user you wish to block."
+msgstr ""
+
+#, c-format
+msgid "Block %s?"
+msgstr ""
+
+#, c-format
+msgid "Are you sure you want to block %s?"
+msgstr ""
+
+msgid "Apply"
+msgstr ""
+
+#, fuzzy
+msgid "That file already exists"
+msgstr "Ithibati tayari ipo."
+
+#, fuzzy
+msgid "Would you like to overwrite it?"
+msgstr "Ungependa kuhifadhi faili hili?"
+
+msgid "Overwrite"
+msgstr ""
+
+#, fuzzy
+msgid "Choose New Name"
+msgstr "Jina la Kuki"
+
+#, fuzzy
+msgid "Select Folder..."
+msgstr "Fold&a Lililochaguliwa"
+
+#. list button
+msgid "_Get List"
+msgstr ""
+
+#. add button
+msgid "_Add Chat"
+msgstr ""
+
+#, fuzzy
+msgid "Are you sure you want to delete the selected saved statuses?"
+msgstr "Je una uhakika uantaka kufuta ithibati hizi?"
+
+#. Use button
+msgid "_Use"
+msgstr ""
+
+msgid "Title already in use.  You must choose a unique title."
+msgstr ""
+
+msgid "Different"
+msgstr ""
+
+#, fuzzy
+msgid "_Title:"
+msgstr "Jina:"
+
+#, fuzzy
+msgid "_Status:"
+msgstr "Hali:"
+
+#. Different status message expander
+msgid "Use a _different status for some accounts"
+msgstr ""
+
+#. Save & Use button
+msgid "Sa_ve & Use"
+msgstr ""
+
+#, c-format
+msgid "Status for %s"
+msgstr ""
+
+#.
+#. * TODO: We should enable/disable the add button based on
+#. *       whether the user has entered all required data.  That
+#. *       would eliminate the need for this check and provide a
+#. *       better user experience.
+#.
+#, fuzzy
+msgid "Custom Smiley"
+msgstr "Kipimo cha kaida..."
+
+msgid "More Data needed"
+msgstr ""
+
+msgid "Please provide a shortcut to associate with the smiley."
+msgstr ""
+
+#, c-format
+msgid ""
+"A custom smiley for '%s' already exists.  Please use a different shortcut."
+msgstr ""
+
+#, fuzzy
+msgid "Duplicate Shortcut"
+msgstr "sifa rudufu"
+
+msgid "Please select an image for the smiley."
+msgstr ""
+
+msgid "Edit Smiley"
+msgstr ""
+
+msgid "Add Smiley"
+msgstr ""
+
+#, fuzzy
+msgid "_Image:"
+msgstr "Taswira"
+
+#. Shortcut text
+msgid "S_hortcut text:"
+msgstr ""
+
+msgid "Smiley"
+msgstr ""
+
+msgid "Shortcut Text"
+msgstr ""
+
+msgid "Custom Smiley Manager"
+msgstr ""
+
+#, fuzzy
+msgid "Select Buddy Icon"
+msgstr "&Uchanguzi"
+
+msgid "Click to change your buddyicon for this account."
+msgstr ""
+
+msgid "Click to change your buddyicon for all accounts."
+msgstr ""
+
+msgid "Waiting for network connection"
+msgstr ""
+
+msgid "New status..."
+msgstr ""
+
+msgid "Saved statuses..."
+msgstr ""
+
+msgid "Status Selector"
+msgstr ""
+
+msgid "Google Talk"
+msgstr ""
+
+#, c-format
+msgid "The following error has occurred loading %s: %s"
+msgstr ""
+
+#, fuzzy
+msgid "Failed to load image"
+msgstr "Imeshindwa Kuingia"
+
+#, c-format
+msgid "Cannot send folder %s."
+msgstr ""
+
+#, c-format
+msgid ""
+"%s cannot transfer a folder. You will need to send the files within "
+"individually."
+msgstr ""
+
+msgid "You have dragged an image"
+msgstr ""
+
+msgid ""
+"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 ""
+
+msgid "Set as buddy icon"
+msgstr ""
+
+msgid "Send image file"
+msgstr ""
+
+#, fuzzy
+msgid "Insert in message"
+msgstr "Funga ujumbe huu"
+
+msgid "Would you like to set it as the buddy icon for this user?"
+msgstr ""
+
+msgid ""
+"You can send this image as a file transfer, or use it as the buddy icon for "
+"this user."
+msgstr ""
+
+msgid ""
+"You can insert this image into this message, or use it as the buddy icon for "
+"this user"
+msgstr ""
+
+#. 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 clue how that would be a desktop item) and "Comment"... nothing we can really
+#. * send.  The only logical one is "Application," but do we really want to send a binary and nothing else?
+#. * Probably not.  I'll just give an error and return.
+#. The original patch sent the icon used by the launcher.  That's probably wrong
+msgid "Cannot send launcher"
+msgstr ""
+
+msgid ""
+"You dragged a desktop launcher. Most likely you wanted to send whatever this "
+"launcher points to instead of this launcher itself."
+msgstr ""
+
+#, c-format
+msgid ""
+"<b>File:</b> %s\n"
+"<b>File size:</b> %s\n"
+"<b>Image size:</b> %dx%d"
+msgstr ""
+
+#, c-format
+msgid "The file '%s' is too large for %s.  Please try a smaller image.\n"
+msgstr ""
+
+#, fuzzy
+msgid "Icon Error"
+msgstr "Hitilafu isiyojulikana"
+
+msgid "Could not set icon"
+msgstr ""
+
+#, c-format
+msgid "Failed to open file '%s': %s"
+msgstr ""
+
+#, c-format
+msgid ""
+"Failed to load image '%s': reason not known, probably a corrupt image file"
+msgstr ""
+
+#, fuzzy
+msgid "_Open Link"
+msgstr "Fungua katika:"
+
+#, fuzzy
+msgid "_Copy Link Location"
+msgstr "&Nakili Mahali pa Kiungo"
+
+#, fuzzy
+msgid "_Copy Email Address"
+msgstr "Nakili Anwani ya Barua-p&epe"
+
+#, fuzzy
+msgid "Save File"
+msgstr "&Hifadhi faili"
+
+#, fuzzy
+msgid "Select color"
+msgstr "Chagua &Yote"
+
+msgid "_Alias"
+msgstr ""
+
+#, fuzzy
+msgid "Close _tabs"
+msgstr "Funga tabo"
+
+msgid "_Get Info"
+msgstr ""
+
+msgid "_Invite"
+msgstr ""
+
+#, fuzzy
+msgid "_Modify..."
+msgstr "R&ekebisha"
+
+msgid "_Add..."
+msgstr ""
+
+#, fuzzy
+msgid "_Open Mail"
+msgstr "Fungua tabo"
+
+#, fuzzy
+msgid "_Edit"
+msgstr "&Hariri"
+
+msgid "Pidgin Tooltip"
+msgstr ""
+
+msgid "Pidgin smileys"
+msgstr ""
+
+msgid "Penguin Pimps"
+msgstr ""
+
+msgid "Selecting this disables graphical emoticons."
+msgstr ""
+
+#, fuzzy
+msgid "none"
+msgstr "Bila"
+
+#, fuzzy
+msgid "Small"
+msgstr "Kisomali"
+
+msgid "Smaller versions of the default smilies"
+msgstr ""
+
+msgid "Response Probability:"
+msgstr ""
+
+msgid "Statistics Configuration"
+msgstr ""
+
+#. msg_difference spinner
+msgid "Maximum response timeout:"
+msgstr ""
+
+msgid "minutes"
+msgstr ""
+
+#. last_seen spinner
+msgid "Maximum last-seen difference:"
+msgstr ""
+
+#. threshold spinner
+msgid "Threshold:"
+msgstr ""
+
+#. *< type
+#. *< ui_requirement
+#. *< flags
+#. *< dependencies
+#. *< priority
+#. *< id
+msgid "Contact Availability Prediction"
+msgstr ""
+
+#. *< name
+#. *< version
+msgid "Contact Availability Prediction plugin."
+msgstr ""
+
+#. *  summary
+msgid "Displays statistical information about your buddies' availability"
+msgstr ""
+
+msgid "Buddy is idle"
+msgstr ""
+
+msgid "Buddy is away"
+msgstr ""
+
+msgid "Buddy is \"extended\" away"
+msgstr ""
+
+#. Not used yet.
+msgid "Buddy is mobile"
+msgstr ""
+
+msgid "Buddy is offline"
+msgstr ""
+
+msgid "Point values to use when..."
+msgstr ""
+
+msgid ""
+"The buddy with the <i>largest score</i> is the buddy who will have priority "
+"in the contact.\n"
+msgstr ""
+
+msgid "Use last buddy when scores are equal"
+msgstr ""
+
+msgid "Point values to use for account..."
+msgstr ""
+
+#. *< type
+#. *< ui_requirement
+#. *< flags
+#. *< dependencies
+#. *< priority
+#. *< id
+msgid "Contact Priority"
+msgstr ""
+
+#. *< name
+#. *< version
+#. *< summary
+msgid ""
+"Allows for controlling the values associated with different buddy states."
+msgstr ""
+
+#. *< description
+msgid ""
+"Allows for changing the point values of idle/away/offline states for buddies "
+"in contact priority computations."
+msgstr ""
+
+msgid "Conversation Colors"
+msgstr ""
+
+msgid "Customize colors in the conversation window"
+msgstr ""
+
+#, fuzzy
+msgid "Error Messages"
+msgstr "Ufafanuzi wa Hitilafu"
+
+msgid "Highlighted Messages"
+msgstr ""
+
+#, fuzzy
+msgid "System Messages"
+msgstr "Misingi ya mfumo"
+
+#, fuzzy
+msgid "Sent Messages"
+msgstr "Jumbe za tahadhari"
+
+msgid "Received Messages"
+msgstr ""
+
+#, c-format
+msgid "Select Color for %s"
+msgstr ""
+
+msgid "Ignore incoming format"
+msgstr ""
+
+msgid "Apply in Chats"
+msgstr ""
+
+msgid "Apply in IMs"
+msgstr ""
+
+msgid "By conversation count"
+msgstr ""
+
+msgid "Conversation Placement"
+msgstr ""
+
+#. Translators: "New conversations" should match the text in the preferences dialog and "By conversation count" should be the same text used above
+msgid ""
+"Note: The preference for \"New conversations\" must be set to \"By "
+"conversation count\"."
+msgstr ""
+
+msgid "Number of conversations per window"
+msgstr ""
+
+msgid "Separate IM and Chat windows when placing by number"
+msgstr ""
+
+#. *< type
+#. *< ui_requirement
+#. *< flags
+#. *< dependencies
+#. *< priority
+#. *< id
+msgid "ExtPlacement"
+msgstr ""
+
+#. *< name
+#. *< version
+msgid "Extra conversation placement options."
+msgstr ""
+
+#. *< summary
+#. *  description
+msgid ""
+"Restrict the number of conversations per windows, optionally separating IMs "
+"and Chats"
+msgstr ""
+
+#. Configuration frame
+msgid "Mouse Gestures Configuration"
+msgstr ""
+
+msgid "Middle mouse button"
+msgstr ""
+
+msgid "Right mouse button"
+msgstr ""
+
+#. "Visual gesture display" checkbox
+msgid "_Visual gesture display"
+msgstr ""
+
+#. *< type
+#. *< ui_requirement
+#. *< flags
+#. *< dependencies
+#. *< priority
+#. *< id
+msgid "Mouse Gestures"
+msgstr ""
+
+#. *< name
+#. *< version
+#. *  summary
+msgid "Provides support for mouse gestures"
+msgstr ""
+
+#. *  description
+msgid ""
+"Allows support for mouse gestures in conversation windows. Drag the middle "
+"mouse button to perform certain actions:\n"
+" • Drag down and then to the right to close a conversation.\n"
+" • Drag up and then to the left to switch to the previous conversation.\n"
+" • Drag up and then to the right to switch to the next conversation."
+msgstr ""
+
+msgid "Instant Messaging"
+msgstr ""
+
+#. Add the label.
+msgid "Select a person from your address book below, or add a new person."
+msgstr ""
+
+#, fuzzy
+msgid "Group:"
+msgstr "Kusanya kwa:"
+
+#. "New Person" button
+#, fuzzy
+msgid "New Person"
+msgstr "Toleo Jipya"
+
+#. "Select Buddy" button
+msgid "Select Buddy"
+msgstr ""
+
+#. Add the label.
+msgid ""
+"Select a person from your address book to add this buddy to, or create a new "
+"person."
+msgstr ""
+
+#. Add the expander
+#, fuzzy
+msgid "User _details"
+msgstr "Onyesha &ufafanuzi"
+
+#. "Associate Buddy" button
+msgid "_Associate Buddy"
+msgstr ""
+
+#, fuzzy
+msgid "Unable to send email"
+msgstr "Haiwezi kufuta moduli"
+
+msgid "The evolution executable was not found in the PATH."
+msgstr ""
+
+msgid "An email address was not found for this buddy."
+msgstr ""
+
+msgid "Add to Address Book"
+msgstr ""
+
+msgid "Send Email"
+msgstr ""
+
+#. Configuration frame
+msgid "Evolution Integration Configuration"
+msgstr ""
+
+#. Label
+msgid "Select all accounts that buddies should be auto-added to."
+msgstr ""
+
+#. *< type
+#. *< ui_requirement
+#. *< flags
+#. *< dependencies
+#. *< priority
+#. *< id
+msgid "Evolution Integration"
+msgstr ""
+
+#. *< name
+#. *< version
+#. *  summary
+#. *  description
+msgid "Provides integration with Evolution."
+msgstr ""
+
+msgid "Please enter the person's information below."
+msgstr ""
+
+msgid "Please enter the buddy's username and account type below."
+msgstr ""
+
+msgid "Account type:"
+msgstr ""
+
+#. Optional Information section
+#, fuzzy
+msgid "Optional information:"
+msgstr "Taarifa zaidi"
+
+#, fuzzy
+msgid "First name:"
+msgstr "Ukurasa wa kwanza"
+
+#, fuzzy
+msgid "Last name:"
+msgstr "Ukurasa wa mwisho"
+
+#, fuzzy
+msgid "Email:"
+msgstr "Barua pepe"
+
+#. *< type
+#. *< ui_requirement
+#. *< flags
+#. *< dependencies
+#. *< priority
+#. *< id
+msgid "GTK Signals Test"
+msgstr ""
+
+#. *< name
+#. *< version
+#. *  summary
+#. *  description
+msgid "Test to see that all ui signals are working properly."
+msgstr ""
+
+#, c-format
+msgid ""
+"\n"
+"<b>Buddy Note</b>: %s"
+msgstr ""
+
+msgid "History"
+msgstr "Historia"
+
+#. *< type
+#. *< ui_requirement
+#. *< flags
+#. *< dependencies
+#. *< priority
+#. *< id
+msgid "Iconify on Away"
+msgstr ""
+
+#. *< name
+#. *< version
+#. *  summary
+#. *  description
+msgid "Iconifies the buddy list and your conversations when you go away."
+msgstr ""
+
+msgid "Mail Checker"
+msgstr ""
+
+msgid "Checks for new local mail."
+msgstr ""
+
+msgid "Adds a small box to the buddy list that shows if you have new mail."
+msgstr ""
+
+msgid "Markerline"
+msgstr ""
+
+msgid "Draw a line to indicate new messages in a conversation."
+msgstr ""
+
+msgid "Jump to markerline"
+msgstr ""
+
+msgid "Draw Markerline in "
+msgstr ""
+
+#, fuzzy
+msgid "_IM windows"
+msgstr "Dirisha jipya"
+
+msgid "C_hat windows"
+msgstr ""
+
+msgid ""
+"A music messaging session has been requested. Please click the MM icon to "
+"accept."
+msgstr ""
+
+msgid "Music messaging session confirmed."
+msgstr ""
+
+msgid "Music Messaging"
+msgstr ""
+
+msgid "There was a conflict in running the command:"
+msgstr ""
+
+#, fuzzy
+msgid "Error Running Editor"
+msgstr "Hitilafu katika Kutuma Taarifa"
+
+msgid "The following error has occurred:"
+msgstr ""
+
+#. Configuration frame
+msgid "Music Messaging Configuration"
+msgstr ""
+
+msgid "Score Editor Path"
+msgstr ""
+
+msgid "_Apply"
+msgstr ""
+
+#. *< type
+#. *< ui_requirement
+#. *< flags
+#. *< dependencies
+#. *< priority
+#. *< id
+#. *< name
+#. *< version
+msgid "Music Messaging Plugin for collaborative composition."
+msgstr ""
+
+#. *  summary
+msgid ""
+"The Music Messaging Plugin allows a number of users to simultaneously work "
+"on a piece of music by editting a common score in real-time."
+msgstr ""
+
+#. ---------- "Notify For" ----------
+msgid "Notify For"
+msgstr ""
+
+msgid "\t_Only when someone says your username"
+msgstr ""
+
+msgid "_Focused windows"
+msgstr ""
+
+#. ---------- "Notification Methods" ----------
+msgid "Notification Methods"
+msgstr ""
+
+msgid "Prepend _string into window title:"
+msgstr ""
+
+#. Count method button
+msgid "Insert c_ount of new messages into window title"
+msgstr ""
+
+#. Count xprop method button
+msgid "Insert count of new message into _X property"
+msgstr ""
+
+#. Urgent method button
+msgid "Set window manager \"_URGENT\" hint"
+msgstr ""
+
+#, fuzzy
+msgid "_Flash window"
+msgstr "Dirisha sawa"
+
+#. Raise window method button
+msgid "R_aise conversation window"
+msgstr ""
+
+#. Present conversation method button
+msgid "_Present conversation window"
+msgstr ""
+
+#. ---------- "Notification Removals" ----------
+msgid "Notification Removal"
+msgstr ""
+
+#. Remove on focus button
+msgid "Remove when conversation window _gains focus"
+msgstr ""
+
+#. Remove on click button
+msgid "Remove when conversation window _receives click"
+msgstr ""
+
+#. Remove on type button
+msgid "Remove when _typing in conversation window"
+msgstr ""
+
+#. Remove on message send button
+msgid "Remove when a _message gets sent"
+msgstr ""
+
+#. Remove on conversation switch button
+msgid "Remove on switch to conversation ta_b"
+msgstr ""
+
+#. *< type
+#. *< ui_requirement
+#. *< flags
+#. *< dependencies
+#. *< priority
+#. *< id
+#, fuzzy
+msgid "Message Notification"
+msgstr "Arifisho la Jumla"
+
+#. *< name
+#. *< version
+#. *  summary
+#. *  description
+msgid "Provides a variety of ways of notifying you of unread messages."
+msgstr ""
+
+#. *< type
+#. *< ui_requirement
+#. *< flags
+#. *< dependencies
+#. *< priority
+#. *< id
+msgid "Pidgin Demonstration Plugin"
+msgstr ""
+
+#. *< name
+#. *< version
+#. *  summary
+msgid "An example plugin that does stuff - see the description."
+msgstr ""
+
+#. *  description
+msgid ""
+"This is a really cool plugin that does a lot of stuff:\n"
+"- It tells you who wrote the program when you log in\n"
+"- It reverses all incoming text\n"
+"- It sends a message to people on your list immediately when they sign on"
+msgstr ""
+
+msgid "Cursor Color"
+msgstr ""
+
+msgid "Secondary Cursor Color"
+msgstr ""
+
+msgid "Hyperlink Color"
+msgstr ""
+
+msgid "Visited Hyperlink Color"
+msgstr ""
+
+msgid "Highlighted Message Name Color"
+msgstr ""
+
+msgid "GtkTreeView Horizontal Separation"
+msgstr ""
+
+msgid "Conversation Entry"
+msgstr ""
+
+msgid "Request Dialog"
+msgstr ""
+
+msgid "Notify Dialog"
+msgstr ""
+
+#, fuzzy
+msgid "Select Color"
+msgstr "Chagua &Yote"
+
+#, c-format
+msgid "Select Interface Font"
+msgstr ""
+
+#, c-format
+msgid "Select Font for %s"
+msgstr ""
+
+msgid "GTK+ Interface Font"
+msgstr ""
+
+msgid "GTK+ Text Shortcut Theme"
+msgstr ""
+
+#.
+#. for (i = 0; i < G_N_ELEMENTS(widget_bool_prefs); i++) {
+#. hbox = gtk_hbox_new(FALSE, PIDGIN_HIG_CAT_SPACE);
+#. gtk_box_pack_start(GTK_BOX(frame), hbox, FALSE, FALSE, 0);
+#.
+#. check = pidgin_prefs_checkbox(_(widget_bool_names[i]),
+#. widget_bool_prefs_set[i], hbox);
+#. gtk_size_group_add_widget(labelsg, check);
+#.
+#. widget_bool_widgets[i] = pidgin_prefs_checkbox("", widget_bool_prefs[i], hbox);
+#. *
+#. gtk_size_group_add_widget(widgetsb, widget_bool_widgets[i]);
+#. *
+#. gtk_widget_set_sensitive(widget_bool_widgets[i],
+#. purple_prefs_get_bool(widget_bool_prefs_set[i]));
+#. g_signal_connect(G_OBJECT(check), "toggled",
+#. G_CALLBACK(pidgin_toggle_sensitive),
+#. widget_bool_widgets[i]);
+#. }
+#.
+msgid "Interface colors"
+msgstr ""
+
+msgid "Widget Sizes"
+msgstr ""
+
+msgid "Fonts"
+msgstr "Fonti"
+
+msgid "Gtkrc File Tools"
+msgstr ""
+
+#, c-format
+msgid "Write settings to %s%sgtkrc-2.0"
+msgstr ""
+
+msgid "Re-read gtkrc files"
+msgstr ""
+
+msgid "Pidgin GTK+ Theme Control"
+msgstr ""
+
+msgid "Provides access to commonly used gtkrc settings."
+msgstr ""
+
+msgid "Raw"
+msgstr ""
+
+msgid "Lets you send raw input to text-based protocols."
+msgstr ""
+
+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 ""
+
+#, c-format
+msgid "You can upgrade to %s %s today."
+msgstr ""
+
+msgid "New Version Available"
+msgstr "Toleo Jipya Linapatikana"
+
+msgid "Later"
+msgstr "Baadae"
+
+#, fuzzy
+msgid "Download Now"
+msgstr "Hitilafu ya upakuzi"
+
+#. *< type
+#. *< ui_requirement
+#. *< flags
+#. *< dependencies
+#. *< priority
+#. *< id
+#, fuzzy
+msgid "Release Notification"
+msgstr "Arifisho la Jumla"
+
+#. *< name
+#. *< version
+#. *  summary
+msgid "Checks periodically for new releases."
+msgstr ""
+
+#. *  description
+msgid ""
+"Checks periodically for new releases and notifies the user with the "
+"ChangeLog."
+msgstr ""
+
+#. *< major version
+#. *< minor version
+#. *< type
+#. *< ui_requirement
+#. *< flags
+#. *< dependencies
+#. *< priority
+#. *< id
+#, fuzzy
+msgid "Send Button"
+msgstr "Tuma kwa:"
+
+#. *< name
+#. *< version
+msgid "Conversation Window Send Button."
+msgstr ""
+
+#. *< summary
+msgid ""
+"Adds a Send button to the entry area of the conversation window. Intended "
+"for when no physical keyboard is present."
+msgstr ""
+
+msgid "Duplicate Correction"
+msgstr ""
+
+msgid "The specified word already exists in the correction list."
+msgstr ""
+
+msgid "Text Replacements"
+msgstr ""
+
+#, fuzzy
+msgid "You type"
+msgstr "Aina ya uunganishi"
+
+msgid "You send"
+msgstr ""
+
+msgid "Whole words only"
+msgstr ""
+
+#, fuzzy
+msgid "Case sensitive"
+msgstr "(Nyepesi huhisi herufi kubwa au ndogo)"
+
+msgid "Add a new text replacement"
+msgstr ""
+
+msgid "You _type:"
+msgstr ""
+
+msgid "You _send:"
+msgstr ""
+
+#. Created here so it can be passed to whole_words_button_toggled.
+msgid "_Exact case match (uncheck for automatic case handling)"
+msgstr ""
+
+msgid "Only replace _whole words"
+msgstr ""
+
+msgid "General Text Replacement Options"
+msgstr ""
+
+msgid "Enable replacement of last word on send"
+msgstr ""
+
+msgid "Text replacement"
+msgstr ""
+
+msgid "Replaces text in outgoing messages according to user-defined rules."
+msgstr ""
+
+#. *< type
+#. *< ui_requirement
+#. *< flags
+#. *< dependencies
+#. *< priority
+#. *< id
+msgid "Buddy Ticker"
+msgstr ""
+
+#. *< name
+#. *< version
+#. *  summary
+#. *  description
+msgid "A horizontal scrolling version of the buddy list."
+msgstr ""
+
+msgid "Display Timestamps Every"
+msgstr ""
+
+#. *< type
+#. *< ui_requirement
+#. *< flags
+#. *< dependencies
+#. *< priority
+#. *< id
+#, fuzzy
+msgid "Timestamp"
+msgstr "Uchapaji wa Muda"
+
+#. *< name
+#. *< version
+#. *  summary
+msgid "Display iChat-style timestamps"
+msgstr ""
+
+#. *  description
+msgid "Display iChat-style timestamps every N minutes."
+msgstr ""
+
+msgid "Timestamp Format Options"
+msgstr ""
+
+#, c-format
+msgid "_Force 24-hour time format"
+msgstr ""
+
+msgid "Show dates in..."
+msgstr ""
+
+msgid "Co_nversations:"
+msgstr ""
+
+msgid "For delayed messages"
+msgstr ""
+
+msgid "For delayed messages and in chats"
+msgstr ""
+
+msgid "_Message Logs:"
+msgstr ""
+
+#. *< type
+#. *< ui_requirement
+#. *< flags
+#. *< dependencies
+#. *< priority
+#. *< id
+msgid "Message Timestamp Formats"
+msgstr ""
+
+#. *< name
+#. *< version
+#. *  summary
+msgid "Customizes the message timestamp formats."
+msgstr ""
+
+#. *  description
+msgid ""
+"This plugin allows the user to customize conversation and logging message "
+"timestamp formats."
+msgstr ""
+
+msgid "Opacity:"
+msgstr ""
+
+#. IM Convo trans options
+msgid "IM Conversation Windows"
+msgstr ""
+
+msgid "_IM window transparency"
+msgstr ""
+
+msgid "_Show slider bar in IM window"
+msgstr ""
+
+msgid "Remove IM window transparency on focus"
+msgstr ""
+
+#, fuzzy
+msgid "Always on top"
+msgstr "&Juu Daima"
+
+#. Buddy List trans options
+msgid "Buddy List Window"
+msgstr ""
+
+msgid "_Buddy List window transparency"
+msgstr ""
+
+msgid "Remove Buddy List window transparency on focus"
+msgstr ""
+
+#. *< type
+#. *< ui_requirement
+#. *< flags
+#. *< dependencies
+#. *< priority
+#. *< id
+msgid "Transparency"
+msgstr ""
+
+#. *< name
+#. *< version
+#. *  summary
+msgid "Variable Transparency for the buddy list and conversations."
+msgstr ""
+
+#. *  description
+msgid ""
+"This plugin enables variable alpha transparency on conversation windows and "
+"the buddy list.\n"
+"\n"
+"* Note: This plugin requires Win2000 or greater."
+msgstr ""
+
+msgid "GTK+ Runtime Version"
+msgstr ""
+
+#. Autostart
+msgid "Startup"
+msgstr "Kila unapoanzisha"
+
+#, c-format
+msgid "_Start %s on Windows startup"
+msgstr ""
+
+msgid "_Dockable Buddy List"
+msgstr ""
+
+#. Blist On Top
+msgid "_Keep Buddy List window on top:"
+msgstr ""
+
+#. XXX: Did this ever work?
+msgid "Only when docked"
+msgstr ""
+
+msgid "Windows Pidgin Options"
+msgstr ""
+
+msgid "Options specific to Pidgin for Windows."
+msgstr ""
+
+msgid ""
+"Provides options specific to Pidgin for Windows , such as buddy list docking."
+msgstr ""
+
+msgid "<font color='#777777'>Logged out.</font>"
+msgstr ""
+
+#. *< type
+#. *< ui_requirement
+#. *< flags
+#. *< dependencies
+#. *< priority
+#. *< id
+#, fuzzy
+msgid "XMPP Console"
+msgstr "Kiweko cha Hitilafu"
+
+msgid "Account: "
+msgstr ""
+
+msgid "<font color='#777777'>Not connected to XMPP</font>"
+msgstr ""
+
+msgid "Insert an <iq/> stanza."
+msgstr ""
+
+msgid "Insert a <presence/> stanza."
+msgstr ""
+
+msgid "Insert a <message/> stanza."
+msgstr ""
+
+#. *< name
+#. *< version
+#. *  summary
+msgid "Send and receive raw XMPP stanzas."
+msgstr ""
+
+#. *  description
+msgid "This plugin is useful for debbuging XMPP servers or clients."
+msgstr ""
--- a/share/ca-certs/Makefile.am	Mon May 25 19:27:33 2009 +0000
+++ b/share/ca-certs/Makefile.am	Mon Jun 08 18:28:31 2009 +0000
@@ -4,6 +4,7 @@
 		CAcert_Class3.pem \
 		Equifax_Secure_CA.pem \
 		GTE_CyberTrust_Global_Root.pem \
+		StartCom_Certification_Authority.pem \
 		StartCom_Free_SSL_CA.pem \
 		Verisign_RSA_Secure_Server_CA.pem \
 		Verisign_Class3_Primary_CA.pem \
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/share/ca-certs/StartCom_Certification_Authority.pem	Mon Jun 08 18:28:31 2009 +0000
@@ -0,0 +1,44 @@
+-----BEGIN CERTIFICATE-----
+MIIHyTCCBbGgAwIBAgIBATANBgkqhkiG9w0BAQUFADB9MQswCQYDVQQGEwJJTDEW
+MBQGA1UEChMNU3RhcnRDb20gTHRkLjErMCkGA1UECxMiU2VjdXJlIERpZ2l0YWwg
+Q2VydGlmaWNhdGUgU2lnbmluZzEpMCcGA1UEAxMgU3RhcnRDb20gQ2VydGlmaWNh
+dGlvbiBBdXRob3JpdHkwHhcNMDYwOTE3MTk0NjM2WhcNMzYwOTE3MTk0NjM2WjB9
+MQswCQYDVQQGEwJJTDEWMBQGA1UEChMNU3RhcnRDb20gTHRkLjErMCkGA1UECxMi
+U2VjdXJlIERpZ2l0YWwgQ2VydGlmaWNhdGUgU2lnbmluZzEpMCcGA1UEAxMgU3Rh
+cnRDb20gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUA
+A4ICDwAwggIKAoICAQDBiNsJvGxGfHiflXu1M5DycmLWwTYgIiRezul38kMKogZk
+pMyONvg45iPwbm2xPN1yo4UcodM9tDMr0y+v/uqwQVlntsQGfQqedIXWeUyAN3rf
+OQVSWff0G0ZDpNKFhdLDcfN1YjS6LIp/Ho/u7TTQEceWzVI9ujPW3U3eCztKS5/C
+Ji/6tRYccjV3yjxd5srhJosaNnZcAdt0FCX+7bWgiA/deMotHweXMAEtcnn6RtYT
+Kqi5pquDSR3l8u/d5AGOGAqPY1MWhWKpDhk6zLVmpsJrdAfkK+F2PrRt2PZE4XNi
+HzvEvqBTViVsUQn3qqvKv3b9bZvzndu/PWa8DFaqr5hIlTpL36dYUNk4dalb6kMM
+Av+Z6+hsTXBbKWWc3apdzK8BMewM69KN6Oqce+Zu9ydmDBpI125C4z/eIT574Q1w
++2OqqGwaVLRcJXrJosmLFqa7LH4XXgVNWG4SHQHuEhANxjJ/GP/89PrNbpHoNkm+
+Gkhpi8KWTRoSsmkXwQqQ1vp5Iki/untp+HDH+no32NgN0nZPV/+Qt+OR0t3vwmC3
+Zzrd/qqc8NSLf3Iizsafl7b4r4qgEKjZ+xjGtrVcUjyJthkqcwEKDwOzEmDyei+B
+26Nu/yYwl/WL3YlXtq09s68rxbd2AvCl1iuahhQqcvbjM4xdCUsT37uMdBNSSwID
+AQABo4ICUjCCAk4wDAYDVR0TBAUwAwEB/zALBgNVHQ8EBAMCAa4wHQYDVR0OBBYE
+FE4L7xqkQFulF2mHMMo0aEPQQa7yMGQGA1UdHwRdMFswLKAqoCiGJmh0dHA6Ly9j
+ZXJ0LnN0YXJ0Y29tLm9yZy9zZnNjYS1jcmwuY3JsMCugKaAnhiVodHRwOi8vY3Js
+LnN0YXJ0Y29tLm9yZy9zZnNjYS1jcmwuY3JsMIIBXQYDVR0gBIIBVDCCAVAwggFM
+BgsrBgEEAYG1NwEBATCCATswLwYIKwYBBQUHAgEWI2h0dHA6Ly9jZXJ0LnN0YXJ0
+Y29tLm9yZy9wb2xpY3kucGRmMDUGCCsGAQUFBwIBFilodHRwOi8vY2VydC5zdGFy
+dGNvbS5vcmcvaW50ZXJtZWRpYXRlLnBkZjCB0AYIKwYBBQUHAgIwgcMwJxYgU3Rh
+cnQgQ29tbWVyY2lhbCAoU3RhcnRDb20pIEx0ZC4wAwIBARqBl0xpbWl0ZWQgTGlh
+YmlsaXR5LCByZWFkIHRoZSBzZWN0aW9uICpMZWdhbCBMaW1pdGF0aW9ucyogb2Yg
+dGhlIFN0YXJ0Q29tIENlcnRpZmljYXRpb24gQXV0aG9yaXR5IFBvbGljeSBhdmFp
+bGFibGUgYXQgaHR0cDovL2NlcnQuc3RhcnRjb20ub3JnL3BvbGljeS5wZGYwEQYJ
+YIZIAYb4QgEBBAQDAgAHMDgGCWCGSAGG+EIBDQQrFilTdGFydENvbSBGcmVlIFNT
+TCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTANBgkqhkiG9w0BAQUFAAOCAgEAFmyZ
+9GYMNPXQhV59CuzaEE44HF7fpiUFS5Eyweg78T3dRAlbB0mKKctmArexmvclmAk8
+jhvh3TaHK0u7aNM5Zj2gJsfyOZEdUauCe37Vzlrk4gNXcGmXCPleWKYK34wGmkUW
+FjgKXlf2Ysd6AgXmvB618p70qSmD+LIU424oh0TDkBreOKk8rENNZEXO3SipXPJz
+ewT4F+irsfMuXGRuczE6Eri8sxHkfY+BUZo7jYn0TZNmezwD7dOaHZrzZVD1oNB1
+ny+v8OqCQ5j4aZyJecRDjkZy42Q2Eq/3JR44iZB3fsNrarnDy0RLrHiQi+fHLB5L
+EUTINFInzQpdn4XBidUaePKVEFMy3YCEZnXZtWgo+2EuvoSoOMCZEoalHmdkrQYu
+L6lwhceWD3yJZfWOQ1QOq92lgDmUYMA0yZZwLKMS9R9Ie70cfmu3nZD0Ijuu+Pwq
+yvqCUqDvr0tVk+vBtfAii6w0TiYiBKGHLHVKt+V9E9e4DGTANtLJL4YSjCMJwRuC
+O3NJo2pXh5Tl1njFmUNj403gdy3hZZlyaQQaRwnmDwFWJPsfvw55qVguucQJAX6V
+um0ABj6y6koQOdjQK/W/7HW/lwLFCRsI3FU34oH7N4RDYiDK51ZLZer+bMEkkySh
+NOsF/5oirpt9P/FlUQqmMGqz9IgcgA38corog14=
+-----END CERTIFICATE-----