Mercurial > pidgin
changeset 30321:00851eae12c7
merge of 'a7d49884941697519567616ac54f4c2884df05e2'
and 'e15c002b6cf19a3cf1843b35457ff8b1efa78a5a'
author | Elliott Sales de Andrade <qulogic@pidgin.im> |
---|---|
date | Sat, 31 Jul 2010 23:43:39 +0000 |
parents | 66c175a474a6 (current diff) e9fbbfe1ab70 (diff) |
children | 2244a84407a4 |
files | |
diffstat | 8 files changed, 195 insertions(+), 257 deletions(-) [+] |
line wrap: on
line diff
--- a/ChangeLog Sat Jul 31 20:58:10 2010 +0000 +++ b/ChangeLog Sat Jul 31 23:43:39 2010 +0000 @@ -22,6 +22,10 @@ IRC: * Fix non-ASCII arguments to /mode et al. (thanks to Max Ulidtko) + MSN: + * Support for web-based buddy icons, used when a buddy logs in to the + messenger on the Live website. + MXit: * Fix filename for the Shocked emoticon. (#12364) * Implement the new naming conventions where possible. (MXitId, etc)
--- a/libpurple/protocols/msn/msn.c Sat Jul 31 20:58:10 2010 +0000 +++ b/libpurple/protocols/msn/msn.c Sat Jul 31 23:43:39 2010 +0000 @@ -2204,6 +2204,7 @@ const gchar *url_text, size_t len, const gchar *error_message) { MsnGetInfoData *info_data = (MsnGetInfoData *)data; + MsnSession *session; PurpleNotifyUserInfo *user_info; char *stripped, *p, *q, *tmp; char *user_url = NULL; @@ -2221,15 +2222,8 @@ purple_debug_info("msn", "In msn_got_info,url_text:{%s}\n",url_text); - /* Make sure the connection is still valid */ - /* TODO: Instead of this, we should be canceling this when we disconnect */ - if (g_list_find(purple_connections_get_all(), info_data->gc) == NULL) - { - purple_debug_warning("msn", "invalid connection. ignoring buddy info.\n"); - g_free(info_data->name); - g_free(info_data); - return; - } + session = purple_connection_get_protocol_data(info_data->gc); + session->url_datas = g_slist_remove(session->url_datas, url_data); user_info = purple_notify_user_info_new(); has_tooltip_text = msn_tooltip_extract_info_text(user_info, info_data); @@ -2614,13 +2608,14 @@ /* Try to put the photo in there too, if there's one */ if (photo_url_text) { - purple_util_fetch_url_len(photo_url_text, FALSE, NULL, FALSE, MAX_HTTP_BUDDYICON_BYTES, msn_got_photo, - info2_data); + url_data = purple_util_fetch_url_len(photo_url_text, FALSE, NULL, FALSE, + MAX_HTTP_BUDDYICON_BYTES, + msn_got_photo, info2_data); + session->url_datas = g_slist_prepend(session->url_datas, url_data); } else { - /* Emulate a callback */ - /* TODO: Huh? */ + /* Finish the Get Info and show the user something */ msn_got_photo(NULL, info2_data, NULL, 0, NULL); } } @@ -2639,10 +2634,12 @@ PurpleNotifyUserInfo *user_info = info2_data->user_info; char *photo_url_text = info2_data->photo_url_text; - /* Make sure the connection is still valid if we got here by fetching a photo url */ - /* TODO: Instead of this, we should be canceling this when we disconnect */ - if (url_text && (error_message != NULL || - g_list_find(purple_connections_get_all(), info_data->gc) == NULL)) + if (url_data) { + MsnSession *session = purple_connection_get_protocol_data(info_data->gc); + session->url_datas = g_slist_remove(session->url_datas, url_data); + } + + if (url_text && error_message) { purple_debug_warning("msn", "invalid connection. ignoring buddy photo info.\n"); g_free(stripped); @@ -2697,8 +2694,10 @@ static void msn_get_info(PurpleConnection *gc, const char *name) { + MsnSession *session = purple_connection_get_protocol_data(gc); MsnGetInfoData *data; char *url; + PurpleUtilFetchUrlData *url_data; data = g_new0(MsnGetInfoData, 1); data->gc = gc; @@ -2706,9 +2705,10 @@ url = g_strdup_printf("%s%s", PROFILE_URL, name); - purple_util_fetch_url(url, FALSE, - "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)", - TRUE, msn_got_info, data); + url_data = purple_util_fetch_url(url, FALSE, + "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)", + TRUE, msn_got_info, data); + session->url_datas = g_slist_prepend(session->url_datas, url_data); g_free(url); }
--- a/libpurple/protocols/msn/object.c Sat Jul 31 20:58:10 2010 +0000 +++ b/libpurple/protocols/msn/object.c Sat Jul 31 23:43:39 2010 +0000 @@ -96,15 +96,29 @@ GET_STRING_TAG(friendly, "Friendly"); GET_STRING_TAG(sha1d, "SHA1D"); GET_STRING_TAG(sha1c, "SHA1C"); + GET_STRING_TAG(url, "Url"); + GET_STRING_TAG(url1, "Url1"); /* If we are missing any of the required elements then discard the object */ - /* SHA1C is not always sent anymore */ if (obj->creator == NULL || obj->size == 0 || obj->type == 0 - || obj->location == NULL || obj->friendly == NULL - || obj->sha1d == NULL /*|| obj->sha1c == NULL*/) { + || obj->sha1d == NULL) { purple_debug_error("msn", "Discarding invalid msnobj: '%s'\n", str); msn_object_destroy(obj); - obj = NULL; + return NULL; + } + + if (obj->location == NULL || obj->friendly == NULL) { + /* Location/friendly are required for non-buddyicon objects */ + if (obj->type != MSN_OBJECT_USERTILE) { + purple_debug_error("msn", "Discarding invalid msnobj: '%s'\n", str); + msn_object_destroy(obj); + return NULL; + /* Buddy icon object can contain Url/Url1 instead */ + } else if (obj->url == NULL || obj->url1 == NULL) { + purple_debug_error("msn", "Discarding invalid msnobj: '%s'\n", str); + msn_object_destroy(obj); + return NULL; + } } return obj; @@ -284,6 +298,24 @@ obj->sha1c = g_strdup(sha1c); } +void +msn_object_set_url(MsnObject *obj, const char *url) +{ + g_return_if_fail(obj != NULL); + + g_free(obj->url); + obj->url = g_strdup(url); +} + +void +msn_object_set_url1(MsnObject *obj, const char *url) +{ + g_return_if_fail(obj != NULL); + + g_free(obj->url1); + obj->url1 = g_strdup(url); +} + const char * msn_object_get_creator(const MsnObject *obj) { @@ -352,6 +384,22 @@ } } +const char * +msn_object_get_url(const MsnObject *obj) +{ + g_return_val_if_fail(obj != NULL, NULL); + + return obj->url; +} + +const char * +msn_object_get_url1(const MsnObject *obj) +{ + g_return_val_if_fail(obj != NULL, NULL); + + return obj->url1; +} + static MsnObject * msn_object_find_local(const char *sha1) {
--- a/libpurple/protocols/msn/object.h Sat Jul 31 20:58:10 2010 +0000 +++ b/libpurple/protocols/msn/object.h Sat Jul 31 23:43:39 2010 +0000 @@ -50,6 +50,8 @@ char *friendly; char *sha1d; char *sha1c; + char *url; + char *url1; } MsnObject; /** @@ -155,6 +157,20 @@ void msn_object_set_image(MsnObject *obj, PurpleStoredImage *img); /** + * Sets the url field in a MsnObject. + * + * @param url The url value. + */ +void msn_object_set_url(MsnObject *obj, const char *url); + +/** + * Sets the url1 field in a MsnObject. + * + * @param url1 The url1 value. + */ +void msn_object_set_url1(MsnObject *obj, const char *url); + +/** * Returns a MsnObject's creator value. * * @param obj The object. @@ -235,6 +251,24 @@ */ PurpleStoredImage *msn_object_get_image(const MsnObject *obj); +/** + * Returns a MsnObject's url value. + * + * @param obj The object. + * + * @return The url value. + */ +const char *msn_object_get_url(const MsnObject *obj); + +/** + * Returns a MsnObject's url1 value. + * + * @param obj The object. + * + * @return The url1 value. + */ +const char *msn_object_get_url1(const MsnObject *obj); + void msn_object_set_local(MsnObject *obj); #endif /* MSN_OBJECT_H */
--- a/libpurple/protocols/msn/session.c Sat Jul 31 20:58:10 2010 +0000 +++ b/libpurple/protocols/msn/session.c Sat Jul 31 23:43:39 2010 +0000 @@ -57,6 +57,11 @@ session->destroying = TRUE; + while (session->url_datas) { + purple_util_fetch_url_cancel(session->url_datas->data); + session->url_datas = g_slist_delete_link(session->url_datas, session->url_datas); + } + if (session->connected) msn_session_disconnect(session);
--- a/libpurple/protocols/msn/session.h Sat Jul 31 20:58:10 2010 +0000 +++ b/libpurple/protocols/msn/session.h Sat Jul 31 23:43:39 2010 +0000 @@ -122,6 +122,8 @@ GHashTable *soap_table; guint soap_cleanup_handle; + + GSList *url_datas; /**< PurpleUtilFetchUrlData to be cancelled on exit */ }; /**
--- a/libpurple/protocols/msn/slp.c Sat Jul 31 20:58:10 2010 +0000 +++ b/libpurple/protocols/msn/slp.c Sat Jul 31 23:43:39 2010 +0000 @@ -39,6 +39,11 @@ static void request_user_display(MsnUser *user); +typedef struct { + MsnSession *session; + const char *remote_user; + const char *sha1; +} MsnFetchUserDisplayData; /************************************************************************** * Util @@ -1405,6 +1410,26 @@ } static void +fetched_user_display(PurpleUtilFetchUrlData *url_data, gpointer user_data, + const gchar *url_text, gsize len, const gchar *error_message) +{ + MsnFetchUserDisplayData *data = user_data; + MsnSession *session = data->session; + + session->url_datas = g_slist_remove(session->url_datas, url_data); + + if (url_text) { + purple_buddy_icons_set_for_user(session->account, data->remote_user, + g_memdup(url_text, len), len, + data->sha1); + } + + end_user_display(NULL, session); + + g_free(user_data); +} + +static void request_user_display(MsnUser *user) { PurpleAccount *account; @@ -1425,8 +1450,20 @@ if (g_ascii_strcasecmp(user->passport, purple_account_get_username(account))) { - msn_slplink_request_object(slplink, info, got_user_display, - end_user_display, obj); + const char *url = msn_object_get_url1(obj); + if (url) { + MsnFetchUserDisplayData *data = g_new0(MsnFetchUserDisplayData, 1); + PurpleUtilFetchUrlData *url_data; + data->session = session; + data->remote_user = user->passport; + data->sha1 = info; + url_data = purple_util_fetch_url_len(url, TRUE, NULL, TRUE, 200*1024, + fetched_user_display, data); + session->url_datas = g_slist_prepend(session->url_datas, url_data); + } else { + msn_slplink_request_object(slplink, info, got_user_display, + end_user_display, obj); + } } else {
--- a/po/de.po Sat Jul 31 20:58:10 2010 +0000 +++ b/po/de.po Sat Jul 31 23:43:39 2010 +0000 @@ -11,14 +11,14 @@ msgstr "" "Project-Id-Version: de\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-07-27 01:17-0400\n" -"PO-Revision-Date: 2010-07-20 18:52+0200\n" -"Last-Translator: Björn Voigt <bjoern@cs.tu-berlin.de>\n" +"POT-Creation-Date: 2010-08-01 00:18+0200\n" +"PO-Revision-Date: 2010-08-01 00:16+0200\n" +"Last-Translator: Jochen Kemnade <jochenkemnade@web.de>\n" "Language-Team: Deutsch <de@li.org>\n" -"Language: de\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"Language: de\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #. Translators may want to transliterate the name. @@ -6002,8 +6002,8 @@ msgid "The two PINs you entered do not match." msgstr "Die beiden PINs, die Sie eingegeben haben, stimmen nicht überein." -msgid "The name you entered is invalid." -msgstr "Der eingegebene Name ist ungültig." +msgid "The Display Name you entered is invalid." +msgstr "Der eingegebene Anzeigename ist ungültig." msgid "" "The birthday you entered is invalid. The correct format is: 'YYYY-MM-DD'." @@ -6025,9 +6025,8 @@ "Ihre Profil-Informationen wurden noch nicht abgerufen. Bitte versuchen Sie " "es später noch einmal." -#, fuzzy msgid "Your UID" -msgstr "Ihre MXit-ID" +msgstr "Ihre UID" #. pin #. pin (required) @@ -6099,16 +6098,12 @@ msgid "Connecting..." msgstr "Verbinde..." -#, fuzzy -msgid "The Display Name you entered is invalid." -msgstr "Der eingegebene Name ist ungültig." - msgid "The PIN you entered has an invalid length [7-10]." msgstr "Die eingegebene PIN hat eine ungültige Länge [7-10]." #. mxit login name msgid "MXit ID" -msgstr "" +msgstr "MXit-ID" #. show the form to the user to complete msgid "Register New MXit Account" @@ -6143,16 +6138,15 @@ msgid "Invalid country selected. Please try again." msgstr "Ungültiges Land gewählt. Bitte versuchen Sie es noch einmal." -#, fuzzy msgid "The MXit ID you entered is not registered. Please register first." msgstr "" -"Benutzername ist nicht registriert. Bitte registrieren Sie Sich zuerst." - -#, fuzzy +"Die von Ihnen eingegebene MXit-ID ist nicht registriert. Bitte registrieren " +"Sie Sich zuerst." + msgid "The MXit ID you entered is already registered. Please choose another." msgstr "" -"Der Benutzername ist bereits registriert. Bitte wählen Sie einen anderen " -"Benutzernamen." +"Die von Ihnen eingegebene MXit-ID ist bereits registriert. Bitte wählen Sie " +"eine andere." msgid "Internal error. Please try again later." msgstr "Internet Fehler. Versuchen Sie es später noch einmal." @@ -6196,9 +6190,8 @@ msgid "Hidden Number" msgstr "Versteckte Nummer" -#, fuzzy msgid "Your MXit ID..." -msgstr "Ihre MXit-ID" +msgstr "Ihre MXit-ID..." #. Configuration options #. WAP server (reference: "libpurple/accountopt.h") @@ -6222,13 +6215,11 @@ msgstr "_Raumname:" #. Display system message in chat window -#, fuzzy msgid "You have invited" -msgstr "Sie haben Post!" - -#, fuzzy +msgstr "Sie haben eingeladen" + msgid "Last Online" -msgstr "Online" +msgstr "Zuletzt online" #. we must have lost the connection, so terminate it so that we can reconnect msgid "We have lost the connection to MXit. Please reconnect." @@ -6810,8 +6801,8 @@ #, c-format msgid "Unable to send message. Could not get details for user (%s)." msgstr "" -"Kann die Nachricht nicht senden. Kann die Details vom Benutzer nicht holen " -"(%s)." +"Kann die Nachricht nicht senden. Kann die Details vom Benutzer nicht holen (%" +"s)." #, c-format msgid "Unable to add %s to your buddy list (%s)." @@ -6829,8 +6820,8 @@ #, c-format msgid "Unable to send message to %s. Could not create the conference (%s)." msgstr "" -"Kann die Nachricht nicht an %s senden. Kann die Konferenz nicht erstellen " -"(%s)." +"Kann die Nachricht nicht an %s senden. Kann die Konferenz nicht erstellen (%" +"s)." #, c-format msgid "Unable to send message. Could not create the conference (%s)." @@ -7243,8 +7234,8 @@ "(There was an error receiving this message. Either you and %s have " "different encodings selected, or %s has a buggy client.)" msgstr "" -"(Es gab einen Fehler beim Empfang dieser Nachricht. Entweder haben Sie und " -"%s unterschiedliche Kodierungen gesetzt oder %s hat einen fehlerhaften " +"(Es gab einen Fehler beim Empfang dieser Nachricht. Entweder haben Sie und %" +"s unterschiedliche Kodierungen gesetzt oder %s hat einen fehlerhaften " "Client.)" #. Label @@ -8471,8 +8462,8 @@ #, c-format msgid "<b>Joining Qun %u is approved by admin %u for %s</b>" msgstr "" -"<b>Das Betreten des Qun %u wurde vom Admin bestätigt wegen by admin %u for " -"%s</b>" +"<b>Das Betreten des Qun %u wurde vom Admin bestätigt wegen by admin %u for %" +"s</b>" #, c-format msgid "<b>Removed buddy %u.</b>" @@ -12544,8 +12535,8 @@ "to multiple messaging services at once. %s is written in C using GTK+. %s " "is released, and may be modified and redistributed, under the terms of the " "GPL version 2 (or later). A copy of the GPL is distributed with %s. %s is " -"copyrighted by its contributors, a list of whom is also distributed with " -"%s. There is no warranty for %s.<BR><BR>" +"copyrighted by its contributors, a list of whom is also distributed with %" +"s. There is no warranty for %s.<BR><BR>" msgstr "" "%s ist ein Nachrichtendienst, basierend auf libpurple, der die Verbindung zu " "mehreren Nachrichtendiensten gleichzeitig unterstützt. %s wird in C " @@ -13117,16 +13108,16 @@ #, c-format msgid "" -"Are you sure you want to permanently delete the log of the conversation in " -"%s which started at %s?" +"Are you sure you want to permanently delete the log of the conversation in %" +"s which started at %s?" msgstr "" "Wollen Sie wirklich den Mitschnitt der Unterhaltung in %s, gestartet am %s, " "permanent löschen?" #, c-format msgid "" -"Are you sure you want to permanently delete the system log which started at " -"%s?" +"Are you sure you want to permanently delete the system log which started at %" +"s?" msgstr "" "Wollen Sie wirklich den Systemmitschnitt, gestartet am %s, permanent löschen?" @@ -13234,13 +13225,11 @@ msgid "Exiting because another libpurple client is already running.\n" msgstr "Wird geschlossen, da bereits ein anderer libpurple-Client läuft\n" -#, fuzzy msgid "_Media" -msgstr "/_Medien" - -#, fuzzy +msgstr "_Medien" + msgid "_Hangup" -msgstr "Auflegen" +msgstr "_Auflegen" #, c-format msgid "%s wishes to start an audio/video session with you." @@ -15471,13 +15460,13 @@ #, no-c-format msgid "" "Error Installing Spellchecking ($R3).$\\rIf retrying fails, manual " -"installation instructions are at: http://developer.pidgin.im/wiki/Installing" -"%20Pidgin#manual_win32_spellcheck_installation" +"installation instructions are at: http://developer.pidgin.im/wiki/Installing%" +"20Pidgin#manual_win32_spellcheck_installation" msgstr "" "Fehler beim Installieren der Rechtschreibkontrolle ($R3).$\\rFalls ein " "erneuter Versuch fehlschlägt, finden Sie Anweisungen zur manuellen " -"Installation unter: http://developer.pidgin.im/wiki/Installing" -"%20Pidgin#manual_win32_spellcheck_installation" +"Installation unter: http://developer.pidgin.im/wiki/Installing%" +"20Pidgin#manual_win32_spellcheck_installation" #. Installer Subsection Text msgid "GTK+ Runtime (required if not present)" @@ -15552,188 +15541,7 @@ #. Text displayed on Installer Finish Page msgid "Visit the Pidgin Web Page" -msgstr "Besuchen Sie die Pidgin Webseite" +msgstr "Besuchen Sie die Pidgin-Webseite" msgid "You do not have permission to uninstall this application." msgstr "Sie haben keine Berechtigung, diese Anwendung zu deinstallieren." - -#~ msgid "The nick name you entered is invalid." -#~ msgstr "Der eingegebene Spitzname ist ungültig." - -#~ msgid "MXit Login Name" -#~ msgstr "MXit-Login-Name" - -#~ msgid "Nick Name" -#~ msgstr "Spitzname" - -#~ msgid "Your Mobile Number..." -#~ msgstr "Ihre Handynummer..." - -#~ msgid "/Media/_Hangup" -#~ msgstr "/Medien/_Auflegen" - -#~ msgid "The certificate is not valid yet." -#~ msgstr "Das Zertifikat ist noch nicht gültig." - -#~ msgid "Rate to host" -#~ msgstr "Bewertung zum Host" - -#~ msgid "Rate to client" -#~ msgstr "Bewertung zum Client" - -#~ msgid "Unknown reason." -#~ msgstr "Unbekannter Grund." - -#~ msgid "Current Mood" -#~ msgstr "Momentane Stimmung" - -#~ msgid "New Mood" -#~ msgstr "Neue Stimmung" - -#~ msgid "Change your Mood" -#~ msgstr "Ihre Stimmung ändern" - -#~ msgid "How do you feel right now?" -#~ msgstr "Wie fühlen Sie sich gerade?" - -#~ msgid "Change Mood..." -#~ msgstr "Stimmung ändern..." - -#~ msgid "Artist" -#~ msgstr "Interpret" - -#~ msgid "Album" -#~ msgstr "Album" - -#~ msgid "Pager server" -#~ msgstr "Pager-Server" - -#~ msgid "Yahoo Chat server" -#~ msgstr "Yahoo-Chat-Server" - -#~ msgid "Yahoo Chat port" -#~ msgstr "Yahoo-Chat-Port" - -#~ msgid "Orientation" -#~ msgstr "Ausrichtung" - -#~ msgid "The orientation of the tray." -#~ msgstr "Die Ausrichtung der Kontrollleiste." - -#~ msgid "Error creating conference." -#~ msgstr "Fehler beim Erstellen der Konferenz." - -#~ msgid "Unable to bind socket to port: %s" -#~ msgstr "Kann die Socket nicht an den Port binden: %s" - -#~ msgid "Unable to listen on socket: %s" -#~ msgstr "Lauschen auf Socket nicht möglich: %s" - -#~ msgid "%s just sent you a Nudge!" -#~ msgstr "%s hat Sie gerade angestoßen!" - -#~ msgid "Friendly name changes too rapidly" -#~ msgstr "Benutzernamen werden zu oft geändert" - -#~ msgid "This Hotmail account may not be active." -#~ msgstr "Dieses Hotmail-Konto ist vielleicht nicht aktiv." - -#~ msgid "Profile URL" -#~ msgstr "URL des Profils" - -#~ msgid "MSN Protocol Plugin" -#~ msgstr "MSN-Protokoll-Plugin" - -#~ msgid "%s is not a valid group." -#~ msgstr "%s ist keine gültige Gruppe." - -#~ msgid "Unknown error." -#~ msgstr "Unbekannter Fehler." - -#~ msgid "%s on %s (%s)" -#~ msgstr "%s auf %s (%s)" - -#~ msgid "Unable to add user on %s (%s)" -#~ msgstr "Kann den Benutzer nicht zu %s (%s) hinzufügen" - -#~ msgid "Unable to block user on %s (%s)" -#~ msgstr "Kann den Benutzer nicht für %s (%s) blockieren" - -#~ msgid "Unable to permit user on %s (%s)" -#~ msgstr "Kann den Benutzer nicht für %s (%s) erlauben" - -#~ msgid "%s could not be added because your buddy list is full." -#~ msgstr "%s konnte nicht hinzugefügt werden, da Ihre Buddy-Liste voll ist." - -#~ msgid "%s is not a valid passport account." -#~ msgstr "%s ist kein gültiges Passport-Konto." - -#~ msgid "Service Temporarily Unavailable." -#~ msgstr "Dienst momentan nicht verfügbar." - -#~ msgid "Unable to rename group" -#~ msgstr "Kann die Gruppe nicht umbenennen" - -#~ msgid "Unable to delete group" -#~ msgstr "Kann die Gruppe nicht löschen" - -#~ msgid "%s has added you to his or her buddy list." -#~ msgstr "Der Benutzer %s hat Sie zu seiner Buddy-Liste hinzugefügt." - -#~ msgid "%s has removed you from his or her buddy list." -#~ msgstr "Der Benutzer %s hat Sie von seiner Buddy-Liste gelöscht." - -#~ msgid "" -#~ "<FONT SIZE=\"4\">FAQ:</FONT> <A HREF=\"http://developer.pidgin.im/wiki/FAQ" -#~ "\">http://developer.pidgin.im/wiki/FAQ</A><BR/><BR/>" -#~ msgstr "" -#~ "<FONT SIZE=\"4\">FAQ:</FONT> <A HREF=\"http://developer.pidgin.im/wiki/FAQ" -#~ "\">http://developer.pidgin.im/wiki/FAQ</A><BR/><BR/>" - -#~ msgid "" -#~ "<FONT SIZE=\"4\">IRC Channel:</FONT> #pidgin on irc.freenode.net<BR><BR>" -#~ msgstr "" -#~ "<FONT SIZE=\"4\">IRC-Kanal:</FONT> #pidgin auf irc.freenode.net<BR><BR>" - -#~ msgid "<FONT SIZE=\"4\">XMPP MUC:</FONT> devel@conference.pidgin.im<BR><BR>" -#~ msgstr "" -#~ "<FONT SIZE=\"4\">XMPP-MUC:</FONT> devel@conference.pidgin.im<BR><BR>" - -#~ msgid "Debugging Information" -#~ msgstr "Debugging-Information" - -#~ msgid "" -#~ "Unrecognized file type\n" -#~ "\n" -#~ "Defaulting to PNG." -#~ msgstr "" -#~ "Nicht erkannter Dateityp\n" -#~ "\n" -#~ "Verwende Standard (PNG)." - -#~ msgid "" -#~ "Error saving image\n" -#~ "\n" -#~ "%s" -#~ msgstr "" -#~ "Fehler beim Speichern des Bildes\n" -#~ "\n" -#~ "%s" - -#~ msgid "Failed to open file '%s': %s" -#~ msgstr "Öffnen der Datei '%s' fehlgeschlagen: %s" - -#~ msgid "" -#~ "Failed to load image '%s': reason not known, probably a corrupt image file" -#~ msgstr "" -#~ "Bild '%s' konnte nicht geladen werden: Grund unbekannt, vermutlich eine " -#~ "korrupte Bilddatei" - -#~ msgid "Insert an <iq/> stanza." -#~ msgstr "Einen <iq/> Block einfügen." - -#~ msgid "Insert a <presence/> stanza." -#~ msgstr "Einen <presence/> Block einfügen." - -#~ msgid "Insert a <message/> stanza." -#~ msgstr "Einen <message/> Block einfügen."